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