[Telepathy-commits] [telepathy-qt4/master] Use Telepathy::Avatar instead of avatarData/avatarMimeType.
Andre Moreira Magalhaes (andrunko)
andre.magalhaes at collabora.co.uk
Tue Jan 13 09:05:11 PST 2009
---
TelepathyQt4/Client/account-internal.h | 5 +--
TelepathyQt4/Client/account.cpp | 61 ++++++++-----------------------
TelepathyQt4/Client/account.h | 7 ++--
3 files changed, 21 insertions(+), 52 deletions(-)
diff --git a/TelepathyQt4/Client/account-internal.h b/TelepathyQt4/Client/account-internal.h
index cca4ded..90a83ec 100644
--- a/TelepathyQt4/Client/account-internal.h
+++ b/TelepathyQt4/Client/account-internal.h
@@ -80,8 +80,7 @@ public:
QString icon;
QString connectionObjectPath;
QString normalizedName;
- QString avatarMimeType;
- QByteArray avatarData;
+ Telepathy::Avatar avatar;
ConnectionManager *cm;
ProtocolInfo *protocolInfo;
Telepathy::ConnectionStatus connectionStatus;
@@ -99,7 +98,7 @@ Q_SIGNALS:
void validityChanged(bool);
void parametersChanged(const QVariantMap &);
void presenceChanged(const Telepathy::SimplePresence &) const;
- void avatarChanged(const QByteArray &, const QString &);
+ void avatarChanged(const Telepathy::Avatar &);
void connectionStatusChanged(Telepathy::ConnectionStatus,
Telepathy::ConnectionStatusReason);
diff --git a/TelepathyQt4/Client/account.cpp b/TelepathyQt4/Client/account.cpp
index f96de04..c893684 100644
--- a/TelepathyQt4/Client/account.cpp
+++ b/TelepathyQt4/Client/account.cpp
@@ -289,7 +289,7 @@ void Account::Private::onGetAllAccountReturn(QDBusPendingCallWatcher *watcher)
void Account::Private::onGetAvatarReturn(QDBusPendingCallWatcher *watcher)
{
- QDBusPendingReply<QByteArray, QString> reply = *watcher;
+ QDBusPendingReply<QVariant> reply = *watcher;
pendingFeatures ^= Account::FeatureAvatar;
@@ -297,10 +297,9 @@ void Account::Private::onGetAvatarReturn(QDBusPendingCallWatcher *watcher)
features |= Account::FeatureAvatar;
debug() << "Got reply to GetAvatar(Account)";
- avatarData = reply.argumentAt<0>();
- avatarMimeType = reply.argumentAt<1>();
+ avatar = qdbus_cast<Telepathy::Avatar>(reply);
- Q_EMIT avatarChanged(avatarData, avatarMimeType);
+ Q_EMIT avatarChanged(avatar);
} else {
// add it to missing features so we don't try to retrieve the avatar
// again
@@ -318,6 +317,7 @@ void Account::Private::onGetAvatarReturn(QDBusPendingCallWatcher *watcher)
void Account::Private::onAvatarChanged()
{
+ debug() << "Avatar changed, retrieving it";
retrieveAvatar();
}
@@ -515,8 +515,8 @@ Account::Account(AccountManager *am, const QDBusObjectPath &objectPath,
SIGNAL(presenceChanged(const Telepathy::SimplePresence &)),
SIGNAL(presenceChanged(const Telepathy::SimplePresence &)));
connect(mPriv,
- SIGNAL(avatarChanged(const QByteArray &, const QString &)),
- SIGNAL(avatarChanged(const QByteArray &, const QString &)));
+ SIGNAL(avatarChanged(const Telepathy::Avatar &)),
+ SIGNAL(avatarChanged(const Telepathy::Avatar &)));
connect(mPriv,
SIGNAL(connectionStatusChanged(Telepathy::ConnectionStatus,
Telepathy::ConnectionStatusReason)),
@@ -669,47 +669,25 @@ PendingOperation *Account::setNickname(const QString &value)
}
/**
- * Get this account avatar data.
+ * Get this account avatar.
*
* Note that in order to make this method works you should call
* Account::becomeReady(FeatureAvatar) and wait for it to finish
* successfully.
*
- * \return Account avatar data.
+ * \return Account avatar.
*/
-QByteArray Account::avatarData() const
+const Telepathy::Avatar &Account::avatar() const
{
if (mPriv->missingFeatures & FeatureAvatar) {
- warning() << "Trying to retrieve avatar data from account, but "
+ warning() << "Trying to retrieve avatar from account, but "
"avatar is not supported";
}
else if (!(mPriv->features & FeatureAvatar)) {
- warning() << "Trying to retrieve avatar data from account without "
+ warning() << "Trying to retrieve avatar from account without "
"calling Account::becomeReady(FeatureAvatar)";
}
- return mPriv->avatarData;
-}
-
-/**
- * Get this account avatar mimetype.
- *
- * Note that in order to make this method works you should call
- * Account::becomeReady(FeatureAvatar) and wait for it to finish
- * successfully.
- *
- * \return Avatar mimetype.
- */
-QString Account::avatarMimeType() const
-{
- if (mPriv->missingFeatures & FeatureAvatar) {
- warning() << "Trying to retrieve avatar mimetype from account, but "
- "avatar is not supported";
- }
- else if (!(mPriv->features & FeatureAvatar)) {
- warning() << "Trying to retrieve avatar mimetype from account without "
- "calling Account::becomeReady(FeatureAvatar)";
- }
- return mPriv->avatarMimeType;
+ return mPriv->avatar;
}
/**
@@ -720,8 +698,7 @@ QString Account::avatarMimeType() const
* \return A PendingOperation which will emit PendingOperation::finished
* when the call has finished.
*/
-PendingOperation *Account::setAvatar(const QByteArray &data,
- const QString &mimeType)
+PendingOperation *Account::setAvatar(const Telepathy::Avatar &avatar)
{
AccountInterfaceAvatarInterface *iface = avatarInterface();
if (!iface) {
@@ -731,11 +708,9 @@ PendingOperation *Account::setAvatar(const QByteArray &data,
DBus::PropertiesInterface *propertiesIface =
OptionalInterfaceFactory::interface<DBus::PropertiesInterface>(*iface);
- QDBusArgument arg;
- arg << data << mimeType;
return new PendingVoidMethodCall(this,
propertiesIface->Set(TELEPATHY_INTERFACE_ACCOUNT_INTERFACE_AVATAR,
- "Avatar", QDBusVariant(arg.asVariant())));
+ "Avatar", QDBusVariant(QVariant::fromValue(avatar))));
}
/**
@@ -854,11 +829,9 @@ Telepathy::SimplePresence Account::automaticPresence() const
PendingOperation *Account::setAutomaticPresence(
const Telepathy::SimplePresence &value)
{
- QDBusArgument arg;
- arg << value;
return new PendingVoidMethodCall(this,
propertiesInterface()->Set(TELEPATHY_INTERFACE_ACCOUNT,
- "AutomaticPresence", QDBusVariant(arg.asVariant())));
+ "AutomaticPresence", QDBusVariant(QVariant::fromValue(value))));
}
/**
@@ -898,11 +871,9 @@ Telepathy::SimplePresence Account::requestedPresence() const
PendingOperation *Account::setRequestedPresence(
const Telepathy::SimplePresence &value)
{
- QDBusArgument arg;
- arg << value;
return new PendingVoidMethodCall(this,
propertiesInterface()->Set(TELEPATHY_INTERFACE_ACCOUNT,
- "RequestedPresence", QDBusVariant(arg.asVariant())));
+ "RequestedPresence", QDBusVariant(QVariant::fromValue(value))));
}
/**
diff --git a/TelepathyQt4/Client/account.h b/TelepathyQt4/Client/account.h
index 840c1f9..328154f 100644
--- a/TelepathyQt4/Client/account.h
+++ b/TelepathyQt4/Client/account.h
@@ -97,9 +97,8 @@ public:
PendingOperation *setNickname(const QString &value);
// requires spec 0.17.16
- QByteArray avatarData() const;
- QString avatarMimeType() const;
- PendingOperation *setAvatar(const QByteArray &data, const QString &mimeType);
+ const Telepathy::Avatar &avatar() const;
+ PendingOperation *setAvatar(const Telepathy::Avatar &avatar);
QVariantMap parameters() const;
PendingOperation *updateParameters(const QVariantMap &set,
@@ -174,7 +173,7 @@ Q_SIGNALS:
void validityChanged(bool);
void parametersChanged(const QVariantMap &);
void presenceChanged(const Telepathy::SimplePresence &) const;
- void avatarChanged(const QByteArray &, const QString &);
+ void avatarChanged(const Telepathy::Avatar &);
void connectionStatusChanged(Telepathy::ConnectionStatus,
Telepathy::ConnectionStatusReason);
--
1.5.6.5
More information about the Telepathy-commits
mailing list