From 83d3db78d63b1b8e21277fafd1ee0238fd7e3ddd Mon Sep 17 00:00:00 2001 From: Tomasz Sterna Date: Sun, 6 Jul 2014 09:34:43 +0200 Subject: Moved DBus service related properties to DBusProxy class --- daemon/manager.cpp | 11 +++++------ daemon/manager.h | 31 ++++++++++++++++++++----------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/daemon/manager.cpp b/daemon/manager.cpp index ae757e6..4ba2a8b 100644 --- a/daemon/manager.cpp +++ b/daemon/manager.cpp @@ -37,12 +37,13 @@ Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallMan dbus->findPebble(); } - DBusAdaptor *adaptor = new DBusAdaptor(this); + DBusProxy *proxy = new DBusProxy(this); + DBusAdaptor *adaptor = new DBusAdaptor(proxy); QDBusConnection connection = QDBusConnection::sessionBus(); - connection.registerObject("/", this); + connection.registerObject("/", proxy); connection.registerService("org.pebbled"); - connect(this, SIGNAL(pebbleChanged()), adaptor, SIGNAL(pebbleChanged())); - connect(this, SIGNAL(connectedChanged()), adaptor, SIGNAL(connectedChanged())); + connect(dbus, SIGNAL(pebbleChanged()), adaptor, SIGNAL(pebbleChanged())); + connect(watch, SIGNAL(connectedChanged()), adaptor, SIGNAL(connectedChanged())); } void Manager::onPebbleChanged() @@ -54,7 +55,6 @@ void Manager::onPebbleChanged() } else { watch->deviceConnect(name, pebble["Address"].toString()); } - emit pebbleChanged(); } void Manager::onConnectedChanged() @@ -70,7 +70,6 @@ void Manager::onConnectedChanged() if (!notification.publish()) { qDebug() << "Failed publishing notification"; } - emit connectedChanged(); } void Manager::onActiveVoiceCallChanged() diff --git a/daemon/manager.h b/daemon/manager.h index 04dd7d4..b052355 100644 --- a/daemon/manager.h +++ b/daemon/manager.h @@ -18,10 +18,8 @@ using namespace CommHistory; class Manager : public QObject { Q_OBJECT - Q_PROPERTY(QVariantMap pebble READ pebble NOTIFY pebbleChanged) - Q_PROPERTY(QString name READ pebbleName NOTIFY pebbleChanged) - Q_PROPERTY(QString address READ pebbleAddress NOTIFY pebbleChanged) - Q_PROPERTY(bool connected READ pebbleConnected NOTIFY connectedChanged) + + friend class DBusProxy; QBluetoothLocalDevice btDevice; @@ -41,14 +39,7 @@ public: Q_INVOKABLE QString findPersonByNumber(QString number); Q_INVOKABLE void processUnreadMessages(GroupObject *group); - QVariantMap pebble() { return dbus->pebble(); } - QString pebbleName() { return dbus->pebble()["Name"].toString(); } - QString pebbleAddress() { return dbus->pebble()["Address"].toString(); } - bool pebbleConnected() { return watch->isConnected(); } - signals: - void pebbleChanged(); - void connectedChanged(); public slots: void hangupAll(); @@ -64,4 +55,22 @@ protected slots: }; +class DBusProxy : public QObject +{ + Q_OBJECT + Q_PROPERTY(QVariantMap pebble READ pebble) + Q_PROPERTY(QString name READ pebbleName) + Q_PROPERTY(QString address READ pebbleAddress) + Q_PROPERTY(bool connected READ pebbleConnected) + + QVariantMap pebble() { return static_cast(parent())->dbus->pebble(); } + QString pebbleName() { return static_cast(parent())->dbus->pebble()["Name"].toString(); } + QString pebbleAddress() { return static_cast(parent())->dbus->pebble()["Address"].toString(); } + bool pebbleConnected() { return static_cast(parent())->watch->isConnected(); } + +public: + explicit DBusProxy(QObject *parent) : QObject(parent) {} + +}; + #endif // MANAGER_H -- cgit v1.2.3