[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