[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 "canSendMessages" prope
From:       Martin Klapetek <mklapetek () kde ! org>
Date:       2016-05-14 18:47:48
Message-ID: E1b1ebM-0002yA-8w () scm ! kde ! org
[Download RAW message or body]

Git commit cf81976e04e3d9915fa7d44934798bc5ab70100d by Martin Klapetek.
Committed on 14/05/2016 at 18:47.
Pushed by mklapetek into branch 'mklapetek/SpaceBar'.

[declarative] Add "canSendMessages" property to Conversation

M  +9    -0    KTp/Declarative/conversation.cpp
M  +3    -0    KTp/Declarative/conversation.h
M  +5    -0    KTp/Declarative/messages-model.cpp

http://commits.kde.org/telepathy-common-internals/cf81976e04e3d9915fa7d44934798bc5ab70100d

diff --git a/KTp/Declarative/conversation.cpp b/KTp/Declarative/conversation.cpp
index b79748d..73487a2 100644
--- a/KTp/Declarative/conversation.cpp
+++ b/KTp/Declarative/conversation.cpp
@@ -308,3 +308,12 @@ bool Conversation::isContactTyping() const
 
     return false;
 }
+
+bool Conversation::canSendMessages() const
+{
+    if (d->messages && d->messages->textChannel()) {
+        return true;
+    }
+
+    return false;
+}
diff --git a/KTp/Declarative/conversation.h b/KTp/Declarative/conversation.h
index 2fe8991..4d30a22 100644
--- a/KTp/Declarative/conversation.h
+++ b/KTp/Declarative/conversation.h
@@ -44,6 +44,7 @@ class Conversation : public QObject
     Q_PROPERTY(KPeople::PersonData *personData READ personData CONSTANT)
     Q_PROPERTY(bool hasUnreadMessages READ hasUnreadMessages NOTIFY unreadMessagesChanged)
     Q_PROPERTY(bool isContactTyping READ isContactTyping NOTIFY contactTypingChanged)
+    Q_PROPERTY(bool canSendMessages READ canSendMessages NOTIFY canSendMessagesChanged)
 
 public:
     Conversation(const Tp::TextChannelPtr &channel, const Tp::AccountPtr &account, QObject *parent = 0);
@@ -78,6 +79,7 @@ public:
     bool hasUnreadMessages() const;
 
     bool isContactTyping() const;
+    bool canSendMessages() const;
 
 Q_SIGNALS:
     void validityChanged(bool isValid);
@@ -88,6 +90,7 @@ Q_SIGNALS:
     void unreadMessagesChanged();
     void lastMessageChanged();
     void contactTypingChanged();
+    void canSendMessagesChanged();
 
 public Q_SLOTS:
     void delegateToProperClient();
diff --git a/KTp/Declarative/messages-model.cpp b/KTp/Declarative/messages-model.cpp
index e17c4ae..db9e549 100644
--- a/KTp/Declarative/messages-model.cpp
+++ b/KTp/Declarative/messages-model.cpp
@@ -390,6 +390,11 @@ void MessagesModel::sendNewMessage(const QString &message)
     if (message.isEmpty()) {
         qCWarning(KTP_DECLARATIVE) << "Attempting to send empty string, this is not supported";
     } else {
+        if (!d->textChannel) {
+            qWarning(KTP_DECLARATIVE) << "Attempting to send a message without a channel, returning";
+            return;
+        }
+
         Tp::PendingOperation *op;
         QString modifiedMessage = message;
         if (d->textChannel->supportsMessageType(Tp::ChannelTextMessageTypeAction)
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic