telepathy-qt: BaseChannelTextType: Added public acknowledgePendingMessages ()

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


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

Author: Alexandr Akulich <akulichalexander at gmail.com>
Date:   Mon Jul 11 19:53:18 2016 +0500

BaseChannelTextType: Added public acknowledgePendingMessages()

A message can be acknowledged by a different (not local telepathy) client,
so the method should be available for connection manager.

---

 TelepathyQt/base-channel.cpp | 22 ++++++++++++++++++++++
 TelepathyQt/base-channel.h   |  1 +
 2 files changed, 23 insertions(+)

diff --git a/TelepathyQt/base-channel.cpp b/TelepathyQt/base-channel.cpp
index 23a6a8b..08fb390 100644
--- a/TelepathyQt/base-channel.cpp
+++ b/TelepathyQt/base-channel.cpp
@@ -543,6 +543,28 @@ void BaseChannelTextType::setMessageAcknowledgedCallback(const MessageAcknowledg
     mPriv->messageAcknowledgedCB = cb;
 }
 
+void BaseChannelTextType::acknowledgePendingMessages(const QStringList &tokens, DBusError *error)
+{
+    Tp::UIntList IDs;
+
+    Q_FOREACH (const QString &token, tokens) {
+        Q_FOREACH (const Tp::MessagePartList &message, mPriv->pendingMessages) {
+            const MessagePart &header = message.front();
+            if (header.value(QLatin1String("message-token")).variant().toString() == token) {
+                uint id = mPriv->pendingMessages.key(message);
+                IDs.append(id);
+            }
+        }
+    }
+
+    if (tokens.count() != IDs.count()) {
+        error->set(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("Token not found"));
+        return;
+    }
+
+    removePendingMessages(IDs);
+}
+
 void BaseChannelTextType::acknowledgePendingMessages(const Tp::UIntList &IDs, DBusError* error)
 {
     Q_FOREACH (uint id, IDs) {
diff --git a/TelepathyQt/base-channel.h b/TelepathyQt/base-channel.h
index 4edcb4f..7e3bb85 100644
--- a/TelepathyQt/base-channel.h
+++ b/TelepathyQt/base-channel.h
@@ -142,6 +142,7 @@ public:
 
     /* Convenience function */
     void addReceivedMessage(const Tp::MessagePartList &message);
+    void acknowledgePendingMessages(const QStringList &tokens, DBusError *error);
 
 private Q_SLOTS:
     void sent(uint timestamp, uint type, QString text);



More information about the telepathy-commits mailing list