[Telepathy-commits] [telepathy-qt4/master] Make Account::continueIntrospection scalable.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Fri Jan 16 10:51:54 PST 2009


---
 TelepathyQt4/Client/account.cpp |   23 ++++-------------------
 1 files changed, 4 insertions(+), 19 deletions(-)

diff --git a/TelepathyQt4/Client/account.cpp b/TelepathyQt4/Client/account.cpp
index 0bb8032..500a6e9 100644
--- a/TelepathyQt4/Client/account.cpp
+++ b/TelepathyQt4/Client/account.cpp
@@ -988,7 +988,7 @@ void Account::onConnectionManagerReady(PendingOperation *operation)
         mPriv->missingFeatures |= Account::FeatureProtocolInfo;
 
         // signal all pending operations that cares about protocol info that
-        // it failed
+        // it failed, as FeatureProtocolInfo is mandatory
         Q_FOREACH (Private::PendingReady *operation, mPriv->pendingOperations) {
             if (operation->features & FeatureProtocolInfo) {
                 operation->setFinishedWithError(operation->errorName(),
@@ -1018,24 +1018,9 @@ void Account::continueIntrospection()
 {
     if (mPriv->introspectQueue.isEmpty()) {
         Q_FOREACH (Private::PendingReady *operation, mPriv->pendingOperations) {
-            if (operation->features == 0 && mPriv->ready) {
-                operation->setFinished();
-            }
-            else if (operation->features == Account::FeatureAvatar &&
-                (mPriv->features & Account::FeatureAvatar ||
-                 mPriv->missingFeatures & Account::FeatureAvatar)) {
-                // if we don't have avatar we will just finish silently
-                operation->setFinished();
-            }
-            else if (operation->features == Account::FeatureProtocolInfo &&
-                     mPriv->features & Account::FeatureProtocolInfo) {
-                operation->setFinished();
-            }
-            else if (operation->features == (Account::FeatureAvatar | Account::FeatureProtocolInfo) &&
-                     ((mPriv->features == (Account::FeatureAvatar | Account::FeatureProtocolInfo)) ||
-                      (mPriv->features & Account::FeatureProtocolInfo &&
-                       mPriv->missingFeatures & Account::FeatureAvatar))) {
-                // if we don't have avatar we will just finish silently
+            if (mPriv->ready &&
+                ((operation->features &
+                    (mPriv->features | mPriv->missingFeatures)) == operation->features)) {
                 operation->setFinished();
             }
             if (operation->isFinished()) {
-- 
1.5.6.5




More information about the Telepathy-commits mailing list