[Telepathy-commits] [telepathy-qt4/master] Channel: Properly tries to create a Contact object for initiator even if group interface is not supported.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Mon Feb 9 12:20:48 PST 2009


---
 TelepathyQt4/Client/channel.cpp |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/TelepathyQt4/Client/channel.cpp b/TelepathyQt4/Client/channel.cpp
index af688a3..6b0214d 100644
--- a/TelepathyQt4/Client/channel.cpp
+++ b/TelepathyQt4/Client/channel.cpp
@@ -420,6 +420,14 @@ void Channel::Private::extract0177MainProps(const QVariantMap &props)
         requested = qdbus_cast<uint>(props["Requested"]);
         initiatorHandle = qdbus_cast<uint>(props["InitiatorHandle"]);
 
+        if (!interfaces.contains(TELEPATHY_INTERFACE_CHANNEL_INTERFACE_GROUP) &&
+            initiatorHandle) {
+            // there is no group interface, so lets true build the contact
+            // object for initiatorHandle now
+            buildingInitialContacts = true;
+            buildContacts();
+        }
+
         nowHaveInterfaces();
     }
 
@@ -478,12 +486,8 @@ void Channel::Private::nowHaveInterfaces()
     debug() << "Channel has" << interfaces.size() <<
         "optional interfaces:" << interfaces;
 
-    for (QStringList::const_iterator i = interfaces.begin();
-                                     i != interfaces.end();
-                                     ++i) {
-        if (*i == TELEPATHY_INTERFACE_CHANNEL_INTERFACE_GROUP) {
-            introspectQueue.enqueue(&Private::introspectGroup);
-        }
+    if (interfaces.contains(TELEPATHY_INTERFACE_CHANNEL_INTERFACE_GROUP)) {
+        introspectQueue.enqueue(&Private::introspectGroup);
     }
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list