17#include "lomiridbusobject.h"
20#include <QDBusMessage>
21#include <QMetaClassInfo>
24LomiriDBusObject::LomiriDBusObject(
const QString &path,
const QString &service,
bool async, QObject *parent)
26 , m_connection(QDBusConnection::sessionBus())
32 QTimer::singleShot(0,
this, &LomiriDBusObject::registerObject);
38LomiriDBusObject::~LomiriDBusObject()
42 m_connection.unregisterObject(path());
45QDBusConnection LomiriDBusObject::connection()
const
50QString LomiriDBusObject::path()
const
57void LomiriDBusObject::notifyPropertyChanged(
const QString& propertyName,
const QVariant &value)
61 QVariantMap changedProps;
63 interface = metaObject()->classInfo(metaObject()->indexOfClassInfo(
"D-Bus Interface")).value();
64 changedProps.insert(propertyName, value);
66 message = QDBusMessage::createSignal(path(),
67 QStringLiteral(
"org.freedesktop.DBus.Properties"),
68 QStringLiteral(
"PropertiesChanged"));
70 message << changedProps;
71 message << QStringList();
73 connection().send(message);
76void LomiriDBusObject::registerObject()
78 if (!m_connection.registerObject(m_path,
this, QDBusConnection::ExportScriptableContents)) {
79 qWarning() <<
"Unable to register DBus object" << m_path;
81 if (!m_service.isEmpty()) {
82 if (!m_connection.registerService(m_service)) {
83 qWarning() <<
"Unable to register DBus service" << m_service;