summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2014-07-06 09:34:43 +0200
committerTomasz Sterna <tomek@xiaoka.com>2014-07-09 01:57:32 +0200
commit83d3db78d63b1b8e21277fafd1ee0238fd7e3ddd (patch)
tree5c0fa8c74f8f3baa03cba6c6b25ae85adf2a4c06
parent1358e9c672eb186abec781900465988a04a1413e (diff)
Moved DBus service related properties to DBusProxy class
-rw-r--r--daemon/manager.cpp11
-rw-r--r--daemon/manager.h31
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<Manager*>(parent())->dbus->pebble(); }
+ QString pebbleName() { return static_cast<Manager*>(parent())->dbus->pebble()["Name"].toString(); }
+ QString pebbleAddress() { return static_cast<Manager*>(parent())->dbus->pebble()["Address"].toString(); }
+ bool pebbleConnected() { return static_cast<Manager*>(parent())->watch->isConnected(); }
+
+public:
+ explicit DBusProxy(QObject *parent) : QObject(parent) {}
+
+};
+
#endif // MANAGER_H