[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [ktp-common-internals/mklapetek/SpaceBar] KTp/Declarative: [declarative] Add support for contact typ
From: Martin Klapetek <mklapetek () kde ! org>
Date: 2016-03-17 18:02:49
Message-ID: E1agcG1-000751-Eu () scm ! kde ! org
[Download RAW message or body]
Git commit d6e0f70b6bad0c75ee552a203ce3e7d8d58afbba by Martin Klapetek.
Committed on 17/03/2016 at 18:02.
Pushed by mklapetek into branch 'mklapetek/SpaceBar'.
[declarative] Add support for contact typing notifications
M +12 -0 KTp/Declarative/conversation.cpp
M +4 -0 KTp/Declarative/conversation.h
http://commits.kde.org/telepathy-common-internals/d6e0f70b6bad0c75ee552a203ce3e7d8d58afbba
diff --git a/KTp/Declarative/conversation.cpp b/KTp/Declarative/conversation.cpp
index 22e46d1..b79748d 100644
--- a/KTp/Declarative/conversation.cpp
+++ b/KTp/Declarative/conversation.cpp
@@ -103,6 +103,8 @@ void Conversation::setTextChannel(const Tp::TextChannelPtr \
&channel)
connect(channel.data(), SIGNAL(invalidated(Tp::DBusProxy*,QString,QString)),
SLOT(onChannelInvalidated(Tp::DBusProxy*,QString,QString)));
+ connect(channel.data(), &Tp::TextChannel::chatStateChanged, this, \
&Conversation::contactTypingChanged); +
if (channel->targetContact().isNull()) {
d->isGroupChat = true;
} else {
@@ -115,6 +117,7 @@ void Conversation::setTextChannel(const Tp::TextChannelPtr \
&channel)
connect(d->targetContact.constData(), \
SIGNAL(avatarDataChanged(Tp::AvatarData)), SIGNAL(avatarChanged())); }
+
Q_EMIT avatarChanged();
Q_EMIT titleChanged();
Q_EMIT presenceIconChanged();
@@ -296,3 +299,12 @@ KPeople::PersonData* Conversation::personData() const
{
return d->personData;
}
+
+bool Conversation::isContactTyping() const
+{
+ if (d->messages->textChannel()) {
+ return d->messages->textChannel()->chatState(d->targetContact) == \
Tp::ChannelChatStateComposing; + }
+
+ return false;
+}
diff --git a/KTp/Declarative/conversation.h b/KTp/Declarative/conversation.h
index 5b112d3..2fe8991 100644
--- a/KTp/Declarative/conversation.h
+++ b/KTp/Declarative/conversation.h
@@ -43,6 +43,7 @@ class Conversation : public QObject
Q_PROPERTY(KTp::ContactPtr targetContact READ targetContact CONSTANT)
Q_PROPERTY(KPeople::PersonData *personData READ personData CONSTANT)
Q_PROPERTY(bool hasUnreadMessages READ hasUnreadMessages NOTIFY \
unreadMessagesChanged) + Q_PROPERTY(bool isContactTyping READ isContactTyping \
NOTIFY contactTypingChanged)
public:
Conversation(const Tp::TextChannelPtr &channel, const Tp::AccountPtr &account, \
QObject *parent = 0); @@ -76,6 +77,8 @@ public:
bool hasUnreadMessages() const;
+ bool isContactTyping() const;
+
Q_SIGNALS:
void validityChanged(bool isValid);
void avatarChanged();
@@ -84,6 +87,7 @@ Q_SIGNALS:
void conversationCloseRequested();
void unreadMessagesChanged();
void lastMessageChanged();
+ void contactTypingChanged();
public Q_SLOTS:
void delegateToProperClient();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic