[Telepathy-commits] [telepathy-qt4/master] Make onMembersChanged just a wrapper for onMembersChangedDetailed

Olli Salli olli.salli at collabora.co.uk
Wed Feb 11 04:55:42 PST 2009


---
 TelepathyQt4/Client/channel.cpp |   34 ++++++++++++++--------------------
 1 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/TelepathyQt4/Client/channel.cpp b/TelepathyQt4/Client/channel.cpp
index 5df7978..0b65b0d 100644
--- a/TelepathyQt4/Client/channel.cpp
+++ b/TelepathyQt4/Client/channel.cpp
@@ -2114,28 +2114,23 @@ void Channel::onMembersChanged(const QString &message,
         "added," << removed.size() << "removed," << localPending.size() <<
         "moved to LP," << remotePending.size() << "moved to RP," << actor <<
         "being the actor," << reason << "the reason and" << message << "the message";
+    debug() << " synthesizing a corresponding MembersChangedDetailed signal";
 
-    if (!mPriv->groupHaveMembers) {
-        debug() << "Still waiting for initial group members, "
-            "so ignoring delta signal...";
-        return;
-    }
+    QVariantMap details;
 
-    if (added.isEmpty() && removed.isEmpty() &&
-        localPending.isEmpty() && remotePending.isEmpty()) {
-        debug() << "Nothing really changed, so skipping membersChanged";
-        return;
+    if (!message.isEmpty()) {
+        details.insert("message", message);
     }
 
-    mPriv->groupMembersChangedQueue.enqueue(
-            new Private::GroupMembersChangedInfo(added, removed,
-                localPending, remotePending, actor, reason, message));
+    if (actor != 0) {
+        details.insert("actor", actor);
+    }
 
-    if (!mPriv->buildingContacts) {
-        // if we are building contacts, we should wait it to finish so we don't
-        // present the user with wrong information
-        mPriv->processMembersChanged();
+    if (reason != ChannelGroupChangeReasonNone) {
+        details.insert("change-reason", reason);
     }
+
+    onMembersChangedDetailed(added, removed, localPending, remotePending, details);
 }
 
 void Channel::onMembersChangedDetailed(
@@ -2145,9 +2140,8 @@ void Channel::onMembersChangedDetailed(
 {
     debug() << "Got Channel.Interface.Group::MembersChangedDetailed with" << added.size() <<
         "added," << removed.size() << "removed," << localPending.size() <<
-        "moved to LP," << remotePending.size() << "moved to RP," << details.value("actor").value<uint>() <<
-        "being the actor," << details.value("change-reason").value<uint>() << "the reason and" <<
-        details.value("message").value<QString>() << "the message";
+        "moved to LP," << remotePending.size() << "moved to RP and with" << details.size() <<
+        "details";
 
     if (!mPriv->groupHaveMembers) {
         debug() << "Still waiting for initial group members, "
@@ -2166,7 +2160,7 @@ void Channel::onMembersChangedDetailed(
                 added, removed,
                 localPending, remotePending,
                 details.value("actor").value<uint>(),
-                details.value("reason").value<uint>(),
+                details.value("change-reason").value<uint>(),
                 details.value("message").value<QString>(),
                 details.value("contact-ids").value<HandleIdentifierMap>(),
                 details.value("error").value<QString>(),
-- 
1.5.6.5




More information about the telepathy-commits mailing list