[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/base/plasma/dataengines/presence
From:       Abner Silva <abner.silva () kdemail ! net>
Date:       2009-07-20 21:04:50
Message-ID: 1248123890.865584.18010.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1000114 by abnerf:

Implemented account avatar retrieval support.

 M  +16 -1     presencesource.cpp  
 M  +1 -0      presencesource.h  


--- trunk/playground/base/plasma/dataengines/presence/presencesource.cpp #1000113:1000114
@@ -39,7 +39,8 @@
     setObjectName(m_account->uniqueIdentifier());
 
     // Make the account become ready with the desired features
-    connect(m_account->becomeReady(Tp::Account::FeatureProtocolInfo),
+    connect(m_account->becomeReady(
+            Tp::Account::FeatureProtocolInfo|Tp::Account::FeatureAvatar),
             SIGNAL(finished(Tp::PendingOperation*)),
             SLOT(onAccountReady(Tp::PendingOperation*)));
 }
@@ -83,11 +84,15 @@
     connect(m_account.data(),
             SIGNAL(displayNameChanged(const QString &)),
             SLOT(onDisplayNameChanged(const QString &)));
+    connect(m_account.data(),
+            SIGNAL(avatarChanged(const Tp::Avatar &)),
+            SLOT(onAvatarChanged(const Tp::Avatar &)));
 
     // Force initial settings
     onAccountCurrentPresenceChanged(m_account->currentPresence());
     onNicknameChanged(m_account->nickname());
     onDisplayNameChanged(m_account->displayName());
+    onAvatarChanged(m_account->avatar());
 }
 
 void PresenceSource::onAccountCurrentPresenceChanged(
@@ -122,6 +127,16 @@
     checkForUpdate();
 }
 
+void PresenceSource::onAvatarChanged(
+        const Tp::Avatar &avatar)
+{
+    // Update the data of this source
+    setData("AccountAvatar", avatar.avatarData);
+
+    // Required to trigger emission of update signal after changing data
+    checkForUpdate();
+}
+
 QString PresenceSource::presenceTypeToString(uint type)
 {
     // This method converts a presence type from a telepathy SimplePresence
--- trunk/playground/base/plasma/dataengines/presence/presencesource.h #1000113:1000114
@@ -53,6 +53,7 @@
     void onAccountCurrentPresenceChanged(const Tp::SimplePresence &presence);
     void onNicknameChanged(const QString &nickname);
     void onDisplayNameChanged(const QString &displayName);
+    void onAvatarChanged(const Tp::Avatar &avatar);
 
 private:
     QString presenceTypeToString(uint type);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic