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);