on xenial help sign in
AbstractDBusServiceMonitor: expose system or session bus option
6b44b20Gerry Boland
plugins/Unity/DashCommunicator/dashcommunicator.cpp+1−2
@@ -16,7 +16,6 @@
16
16
17#include "dashcommunicator.h"
17#include "dashcommunicator.h"
18
18
19−#include <QDBusConnection>
20#include <QDBusConnectionInterface>
19#include <QDBusConnectionInterface>
21#include <QDBusInterface>
20#include <QDBusInterface>
22#include <QDebug>
21#include <QDebug>
@@ -24,7 +23,7 @@
24DashCommunicator::DashCommunicator(QObject *parent)
23DashCommunicator::DashCommunicator(QObject *parent)
25 : AbstractDBusServiceMonitor("com.canonical.UnityDash",
24 : AbstractDBusServiceMonitor("com.canonical.UnityDash",
26 "/com/canonical/UnityDash",
25 "/com/canonical/UnityDash",
27− "", parent)
26+ "", SessionBus, parent)
28{
27{
29}
28}
30
29
src/libunity8-private/abstractdbusservicemonitor.cpp+5−2
@@ -26,12 +26,15 @@
26#include <QDBusReply>
26#include <QDBusReply>
27
27
28AbstractDBusServiceMonitor::AbstractDBusServiceMonitor(const QString &service, const QString &path,
28AbstractDBusServiceMonitor::AbstractDBusServiceMonitor(const QString &service, const QString &path,
29− const QString &interface, QObject *parent)
29+ const QString &interface, const Bus bus,
30+ QObject *parent)
30 : QObject(parent)
31 : QObject(parent)
31 , m_service(service)
32 , m_service(service)
32 , m_path(path)
33 , m_path(path)
33 , m_interface(interface)
34 , m_interface(interface)
34− , m_watcher(new QDBusServiceWatcher(service, QDBusConnection::sessionBus()))
35+ , m_watcher(new QDBusServiceWatcher(service,
36+ (bus == SystemBus) ? QDBusConnection::systemBus()
37+ : QDBusConnection::sessionBus()))
35 , m_dbusInterface(nullptr)
38 , m_dbusInterface(nullptr)
36{
39{
37 connect(m_watcher, &QDBusServiceWatcher::serviceRegistered, this, &AbstractDBusServiceMonitor::createInterface);
40 connect(m_watcher, &QDBusServiceWatcher::serviceRegistered, this, &AbstractDBusServiceMonitor::createInterface);
src/libunity8-private/abstractdbusservicemonitor.h+10−2
@@ -22,6 +22,7 @@
22
22
23#include <QObject>
23#include <QObject>
24#include <QString>
24#include <QString>
25+#include <QDBusConnection>
25
26
26class QDBusInterface;
27class QDBusInterface;
27class QDBusServiceWatcher;
28class QDBusServiceWatcher;
@@ -29,11 +30,18 @@ class QDBusServiceWatcher;
29class AbstractDBusServiceMonitor : public QObject
30class AbstractDBusServiceMonitor : public QObject
30{
31{
31 Q_OBJECT
32 Q_OBJECT
33+ Q_ENUMS(Bus)
32 Q_PROPERTY(bool serviceAvailable READ serviceAvailable NOTIFY serviceAvailableChanged)
34 Q_PROPERTY(bool serviceAvailable READ serviceAvailable NOTIFY serviceAvailableChanged)
33
35
34public:
36public:
37+ enum Bus {
38+ SessionBus,
39+ SystemBus,
40+ };
41+
35− explicit AbstractDBusServiceMonitor(const QString &service, const QString &path,
42+ explicit AbstractDBusServiceMonitor(const QString &service, const QString &path, const QString &interface,
43+ const Bus bus = SessionBus,
36− const QString &interface, QObject *parent = 0);
44+ QObject *parent = 0);
37 ~AbstractDBusServiceMonitor();
45 ~AbstractDBusServiceMonitor();
38
46
39 QDBusInterface* dbusInterface() const;
47 QDBusInterface* dbusInterface() const;