telepathy-qt: BaseChannelTextType: Refactored protected API

Alexandr Akulich kaffeine at kemper.freedesktop.org
Fri Sep 16 08:46:58 UTC 2016


Module: telepathy-qt
Branch: master
Commit: 58ba02778eb29f1f1412fd1a050bbdf55893ad09
URL:    http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=58ba02778eb29f1f1412fd1a050bbdf55893ad09

Author: Alexandr Akulich <akulichalexander at gmail.com>
Date:   Mon Jul 11 20:09:49 2016 +0500

BaseChannelTextType: Refactored protected API

Extracted method removePendingMessages() will be reused in the next commit.

---

 TelepathyQt/base-channel.cpp | 14 +++++++++++---
 TelepathyQt/base-channel.h   |  4 +++-
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/TelepathyQt/base-channel.cpp b/TelepathyQt/base-channel.cpp
index f551d2f..23a6a8b 100644
--- a/TelepathyQt/base-channel.cpp
+++ b/TelepathyQt/base-channel.cpp
@@ -545,7 +545,7 @@ void BaseChannelTextType::setMessageAcknowledgedCallback(const MessageAcknowledg
 
 void BaseChannelTextType::acknowledgePendingMessages(const Tp::UIntList &IDs, DBusError* error)
 {
-    foreach(uint id, IDs) {
+    Q_FOREACH (uint id, IDs) {
         QMap<uint, Tp::MessagePartList>::Iterator i = mPriv->pendingMessages.find(id);
         if (i == mPriv->pendingMessages.end()) {
             error->set(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("id not found"));
@@ -553,10 +553,18 @@ void BaseChannelTextType::acknowledgePendingMessages(const Tp::UIntList &IDs, DB
         }
 
         const MessagePart &header = i->front();
-        if (header.count(QLatin1String("message-token")) && mPriv->messageAcknowledgedCB.isValid())
+        if (header.count(QLatin1String("message-token")) && mPriv->messageAcknowledgedCB.isValid()) {
             mPriv->messageAcknowledgedCB(header[QLatin1String("message-token")].variant().toString());
+        }
+    }
 
-        mPriv->pendingMessages.erase(i);
+    removePendingMessages(IDs);
+}
+
+void BaseChannelTextType::removePendingMessages(const UIntList &IDs)
+{
+    foreach (uint id, IDs) {
+        mPriv->pendingMessages.remove(id);
     }
 
     /* Signal on ChannelMessagesInterface */
diff --git a/TelepathyQt/base-channel.h b/TelepathyQt/base-channel.h
index 46503fa..4edcb4f 100644
--- a/TelepathyQt/base-channel.h
+++ b/TelepathyQt/base-channel.h
@@ -142,11 +142,13 @@ public:
 
     /* Convenience function */
     void addReceivedMessage(const Tp::MessagePartList &message);
+
 private Q_SLOTS:
     void sent(uint timestamp, uint type, QString text);
 protected:
     BaseChannelTextType(BaseChannel* channel);
-    void acknowledgePendingMessages(const Tp::UIntList &IDs, DBusError* error);
+    void acknowledgePendingMessages(const Tp::UIntList &IDs, DBusError *error);
+    void removePendingMessages(const Tp::UIntList &IDs);
 
 private:
     void createAdaptor();



More information about the telepathy-commits mailing list