17 #include "unitydbusvirtualobject.h"
20 #include <QDBusMessage>
23 UnityDBusVirtualObject::UnityDBusVirtualObject(
const QString &path,
const QString &service,
bool async, QObject *parent)
24 : QDBusVirtualObject(parent)
25 , m_connection(QDBusConnection::sessionBus())
31 QTimer::singleShot(0,
this, &UnityDBusVirtualObject::registerObject);
37 UnityDBusVirtualObject::~UnityDBusVirtualObject()
41 m_connection.unregisterObject(path());
44 QDBusConnection UnityDBusVirtualObject::connection()
const
49 QString UnityDBusVirtualObject::path()
const
56 void UnityDBusVirtualObject::notifyPropertyChanged(
const QString& interface,
const QString& node,
const QString& propertyName,
const QVariant &value)
59 QVariantMap changedProps;
61 changedProps.insert(propertyName, value);
63 message = QDBusMessage::createSignal(path() +
"/" + node,
64 QStringLiteral(
"org.freedesktop.DBus.Properties"),
65 QStringLiteral(
"PropertiesChanged"));
67 message << changedProps;
68 message << QStringList();
70 connection().send(message);
73 void UnityDBusVirtualObject::registerObject()
75 if (!m_connection.registerVirtualObject(m_path,
this, QDBusConnection::VirtualObjectRegisterOption::SubPath)) {
76 qWarning() <<
"Unable to register DBus object" << m_path;
78 if (!m_service.isEmpty()) {
79 if (!m_connection.registerService(m_service)) {
80 qWarning() <<
"Unable to register DBus service" << m_service;