summaryrefslogtreecommitdiff
path: root/TelepathyQt
diff options
context:
space:
mode:
authorAndre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>2012-04-03 18:53:53 -0300
committerAndre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>2012-04-03 18:53:53 -0300
commit575067ad597d2cf324a9f711b16fe2e0a6ce4119 (patch)
tree903862efd441c496d8bf4e794d42061e882dde92 /TelepathyQt
parent9c168d5dd156ae8a4dc1d452373ebe936572075b (diff)
*DBusService*: Add public immutableProperties virtual method to be reimplemented by services and optinal interfaces.
Diffstat (limited to 'TelepathyQt')
-rw-r--r--TelepathyQt/base-connection-manager.cpp7
-rw-r--r--TelepathyQt/base-connection-manager.h2
-rw-r--r--TelepathyQt/base-connection.cpp6
-rw-r--r--TelepathyQt/base-connection.h2
-rw-r--r--TelepathyQt/base-protocol.cpp50
-rw-r--r--TelepathyQt/base-protocol.h6
-rw-r--r--TelepathyQt/dbus-service.h5
7 files changed, 71 insertions, 7 deletions
diff --git a/TelepathyQt/base-connection-manager.cpp b/TelepathyQt/base-connection-manager.cpp
index 387a05d0..54f4c7f8 100644
--- a/TelepathyQt/base-connection-manager.cpp
+++ b/TelepathyQt/base-connection-manager.cpp
@@ -182,6 +182,13 @@ QString BaseConnectionManager::name() const
return mPriv->name;
}
+QVariantMap BaseConnectionManager::immutableProperties() const
+{
+ QVariantMap ret;
+ ret.insert(TP_QT_IFACE_CONNECTION_MANAGER + QLatin1String(".Protocols"), qVariantFromValue(mPriv->adaptee->protocols()));
+ return ret;
+}
+
QList<BaseProtocolPtr> BaseConnectionManager::protocols() const
{
return mPriv->protocols.values();
diff --git a/TelepathyQt/base-connection-manager.h b/TelepathyQt/base-connection-manager.h
index 4aa18213..ca337a91 100644
--- a/TelepathyQt/base-connection-manager.h
+++ b/TelepathyQt/base-connection-manager.h
@@ -71,6 +71,8 @@ public:
QString name() const;
+ QVariantMap immutableProperties() const;
+
QList<BaseProtocolPtr> protocols() const;
BaseProtocolPtr protocol(const QString &protocolName) const;
bool hasProtocol(const QString &protocolName) const;
diff --git a/TelepathyQt/base-connection.cpp b/TelepathyQt/base-connection.cpp
index 3a75845a..980812e6 100644
--- a/TelepathyQt/base-connection.cpp
+++ b/TelepathyQt/base-connection.cpp
@@ -93,6 +93,12 @@ QVariantMap BaseConnection::parameters() const
return mPriv->parameters;
}
+QVariantMap BaseConnection::immutableProperties() const
+{
+ // FIXME
+ return QVariantMap();
+}
+
QString BaseConnection::uniqueName() const
{
return QString(QLatin1String("_%1")).arg((intptr_t) this, 0, 16);
diff --git a/TelepathyQt/base-connection.h b/TelepathyQt/base-connection.h
index 4e197872..d2aa5d7f 100644
--- a/TelepathyQt/base-connection.h
+++ b/TelepathyQt/base-connection.h
@@ -78,6 +78,8 @@ public:
QString protocolName() const;
QVariantMap parameters() const;
+ QVariantMap immutableProperties() const;
+
virtual QString uniqueName() const;
bool registerObject(DBusError *error = NULL);
diff --git a/TelepathyQt/base-protocol.cpp b/TelepathyQt/base-protocol.cpp
index 21e14a93..9710209d 100644
--- a/TelepathyQt/base-protocol.cpp
+++ b/TelepathyQt/base-protocol.cpp
@@ -78,13 +78,6 @@ BaseProtocol::Adaptee::~Adaptee()
{
}
-QVariantMap BaseProtocol::immutableProperties() const
-{
- // FIXME
- // Ps.: also include optional interfaces immutable properties
- return QVariantMap();
-}
-
QStringList BaseProtocol::Adaptee::interfaces() const
{
QStringList ret;
@@ -182,6 +175,23 @@ QString BaseProtocol::name() const
return mPriv->name;
}
+QVariantMap BaseProtocol::immutableProperties() const
+{
+ QVariantMap ret;
+ foreach (const AbstractProtocolInterfacePtr &iface, mPriv->interfaces) {
+ ret.unite(iface->immutableProperties());
+ }
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".Interfaces"), qVariantFromValue(mPriv->adaptee->interfaces()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".Parameters"), qVariantFromValue(mPriv->adaptee->parameters()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".ConnectionInterfaces"), qVariantFromValue(mPriv->adaptee->connectionInterfaces()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".RequestableChannelClasses"), qVariantFromValue(mPriv->adaptee->requestableChannelClasses()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".VCardField"), qVariantFromValue(mPriv->adaptee->vCardField()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".EnglishName"), qVariantFromValue(mPriv->adaptee->englishName()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".Icon"), qVariantFromValue(mPriv->adaptee->icon()));
+ ret.insert(TP_QT_IFACE_PROTOCOL + QLatin1String(".AuthenticationTypes"), qVariantFromValue(mPriv->adaptee->authenticationTypes()));
+ return ret;
+}
+
QStringList BaseProtocol::connectionInterfaces() const
{
return mPriv->connInterfaces;
@@ -464,6 +474,12 @@ BaseProtocolAddressingInterface::~BaseProtocolAddressingInterface()
delete mPriv;
}
+QVariantMap BaseProtocolAddressingInterface::immutableProperties() const
+{
+ // no immutable property
+ return QVariantMap();
+}
+
QStringList BaseProtocolAddressingInterface::addressableVCardFields() const
{
return mPriv->addressableVCardFields;
@@ -596,6 +612,20 @@ BaseProtocolAvatarsInterface::~BaseProtocolAvatarsInterface()
delete mPriv;
}
+QVariantMap BaseProtocolAvatarsInterface::immutableProperties() const
+{
+ QVariantMap ret;
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".SupportedAvatarMIMETypes"), mPriv->adaptee->supportedAvatarMIMETypes());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".MinimumAvatarHeight"), mPriv->adaptee->minimumAvatarHeight());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".MinimumAvatarWidth"), mPriv->adaptee->minimumAvatarWidth());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".RecommendedAvatarHeight"), mPriv->adaptee->recommendedAvatarHeight());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".RecommendedAvatarWidth"), mPriv->adaptee->recommendedAvatarWidth());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".MaximumAvatarHeight"), mPriv->adaptee->maximumAvatarHeight());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".MaximumAvatarWidth"), mPriv->adaptee->maximumAvatarWidth());
+ ret.insert(TP_QT_IFACE_PROTOCOL_INTERFACE_AVATARS + QLatin1String(".MaximumAvatarBytes"), mPriv->adaptee->maximumAvatarBytes());
+ return ret;
+}
+
AvatarSpec BaseProtocolAvatarsInterface::avatarDetails() const
{
return mPriv->avatarDetails;
@@ -657,6 +687,12 @@ BaseProtocolPresenceInterface::~BaseProtocolPresenceInterface()
delete mPriv;
}
+QVariantMap BaseProtocolPresenceInterface::immutableProperties() const
+{
+ // no immutable property
+ return QVariantMap();
+}
+
PresenceSpecList BaseProtocolPresenceInterface::statuses() const
{
return mPriv->statuses;
diff --git a/TelepathyQt/base-protocol.h b/TelepathyQt/base-protocol.h
index 210721a2..d65251a1 100644
--- a/TelepathyQt/base-protocol.h
+++ b/TelepathyQt/base-protocol.h
@@ -160,6 +160,8 @@ public:
virtual ~BaseProtocolAddressingInterface();
+ QVariantMap immutableProperties() const;
+
QStringList addressableVCardFields() const;
void setAddressableVCardFields(const QStringList &vcardFields);
@@ -204,6 +206,8 @@ public:
virtual ~BaseProtocolAvatarsInterface();
+ QVariantMap immutableProperties() const;
+
AvatarSpec avatarDetails() const;
void setAvatarDetails(const AvatarSpec &spec);
@@ -237,6 +241,8 @@ public:
virtual ~BaseProtocolPresenceInterface();
+ QVariantMap immutableProperties() const;
+
PresenceSpecList statuses() const;
void setStatuses(const PresenceSpecList &statuses);
diff --git a/TelepathyQt/dbus-service.h b/TelepathyQt/dbus-service.h
index 0582bbd1..11a68a51 100644
--- a/TelepathyQt/dbus-service.h
+++ b/TelepathyQt/dbus-service.h
@@ -32,6 +32,7 @@
#include <TelepathyQt/Object>
#include <QObject>
+#include <QVariantMap>
class QDBusConnection;
class QString;
@@ -48,6 +49,8 @@ public:
DBusService(const QDBusConnection &dbusConnection);
virtual ~DBusService();
+ virtual QVariantMap immutableProperties() const = 0;
+
QDBusConnection dbusConnection() const;
QString busName() const;
QString objectPath() const;
@@ -75,6 +78,8 @@ public:
QString interfaceName() const;
+ virtual QVariantMap immutableProperties() const = 0;
+
QDBusConnection dbusConnection() const;
QObject *dbusObject() const;
bool isRegistered() const;