19 #ifndef UNITY_ACCOUNTSSERVICEDBUSADAPTOR_H
20 #define UNITY_ACCOUNTSSERVICEDBUSADAPTOR_H
22 #include <QDBusArgument>
23 #include <QDBusContext>
24 #include <QDBusInterface>
29 class AccountsServiceDBusAdaptor:
public QObject,
public QDBusContext
34 explicit AccountsServiceDBusAdaptor(QObject *parent = 0);
36 Q_INVOKABLE QVariant getUserProperty(
const QString &user,
const QString &interface,
const QString &property);
39 inline T getUserProperty(
const QString &user,
const QString &interface,
const QString &property) {
40 QVariant variant = getUserProperty(user, interface, property);
41 if (variant.isValid() && variant.canConvert<QDBusArgument>()) {
42 return qdbus_cast<T>(variant.value<QDBusArgument>());
47 Q_INVOKABLE
void setUserProperty(
const QString &user,
const QString &interface,
const QString &property,
const QVariant &value);
48 Q_INVOKABLE
void setUserPropertyAsync(
const QString &user,
const QString &interface,
const QString &property,
const QVariant &value);
51 void propertiesChanged(
const QString &user,
const QString &interface,
const QStringList &changed);
52 void maybeChanged(
const QString &user);
55 void propertiesChangedSlot(
const QString &interface,
const QVariantMap &changed,
const QStringList &invalid);
56 void maybeChangedSlot();
59 QDBusInterface *getUserInterface(
const QString &user);
60 QString getUserForPath(
const QString &path);
62 QDBusInterface *m_accountsManager;
63 QMap<QString, QDBusInterface *> m_users;