From 5a4a7536d9975df843fffa8bba00b54f60c6f21b Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 4 Apr 2015 23:34:37 +0200 Subject: add dbus service --- rpm/saltoq.spec | 3 +-- rpm/saltoq.yaml | 3 +-- saltoqd/main.cpp | 3 +++ saltoqd/notificationmonitor.cpp | 1 - saltoqd/org.freedesktop.Notifications.xml | 20 -------------------- saltoqd/saltoqd.pro | 2 -- saltoqd/toqmanager.cpp | 13 +++++++++++++ saltoqd/toqmanager.h | 25 +++++++++++++++++++++++++ 8 files changed, 43 insertions(+), 27 deletions(-) delete mode 100644 saltoqd/org.freedesktop.Notifications.xml diff --git a/rpm/saltoq.spec b/rpm/saltoq.spec index cb629a6..80ee58b 100644 --- a/rpm/saltoq.spec +++ b/rpm/saltoq.spec @@ -13,7 +13,7 @@ Name: saltoq %{!?qtc_make:%define qtc_make make} %{?qtc_builddir:%define _builddir %qtc_builddir} Summary: Qualcomm Toq manager application -Version: 0.0.1 +Version: 0.1 Release: 1 Group: Communications/Bluetooth License: GPLv3 @@ -22,7 +22,6 @@ Source0: %{name}-%{version}.tar.bz2 Source100: saltoq.yaml Requires: sailfishsilica-qt5 >= 0.10.9 Requires: sailfish-components-bluetooth-qt5 -Requires: nemo-qml-plugin-configuration-qt5 Requires: systemd Requires: systemd-user-session-targets BuildRequires: pkgconfig(sailfishapp) >= 1.0.2 diff --git a/rpm/saltoq.yaml b/rpm/saltoq.yaml index f82b9ef..59bf336 100644 --- a/rpm/saltoq.yaml +++ b/rpm/saltoq.yaml @@ -1,6 +1,6 @@ Name: saltoq Summary: Qualcomm Toq manager application -Version: 0.0.1 +Version: 0.1 Release: 1 Group: Communications/Bluetooth URL: https://gitorious.org/javispedro-jolla-misc/salmeta/ @@ -37,7 +37,6 @@ PkgBR: Requires: - sailfishsilica-qt5 >= 0.10.9 - sailfish-components-bluetooth-qt5 - - nemo-qml-plugin-configuration-qt5 - systemd - systemd-user-session-targets diff --git a/saltoqd/main.cpp b/saltoqd/main.cpp index 4910dca..570f6c4 100644 --- a/saltoqd/main.cpp +++ b/saltoqd/main.cpp @@ -1,4 +1,5 @@ #include +#include #include "toqmanager.h" Q_DECL_EXPORT int main(int argc, char **argv) @@ -8,5 +9,7 @@ Q_DECL_EXPORT int main(int argc, char **argv) QScopedPointer settings(new Settings("/apps/saltoq")); QScopedPointer manager(new ToqManager(settings.data())); + QDBusConnection::sessionBus().registerService("com.javispedro.saltoq.daemon"); + return app.exec(); } diff --git a/saltoqd/notificationmonitor.cpp b/saltoqd/notificationmonitor.cpp index 107e165..83d9820 100644 --- a/saltoqd/notificationmonitor.cpp +++ b/saltoqd/notificationmonitor.cpp @@ -3,7 +3,6 @@ #include #include "notificationmonitor.h" -#include "notifications_adaptor.h" namespace { diff --git a/saltoqd/org.freedesktop.Notifications.xml b/saltoqd/org.freedesktop.Notifications.xml deleted file mode 100644 index 3e645a0..0000000 --- a/saltoqd/org.freedesktop.Notifications.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/saltoqd/saltoqd.pro b/saltoqd/saltoqd.pro index d7cb076..4a51905 100644 --- a/saltoqd/saltoqd.pro +++ b/saltoqd/saltoqd.pro @@ -46,8 +46,6 @@ HEADERS += \ settings.h \ settingsmanager.h -DBUS_ADAPTORS += org.freedesktop.Notifications.xml - DBUS_INTERFACES += com.nokia.profiled.xml org.nemomobile.voicecall.VoiceCallManager.xml org.nemomobile.voicecall.VoiceCall.xml QDBUSXML2CPP_INTERFACE_HEADER_FLAGS = -i voicecallmanager.h diff --git a/saltoqd/toqmanager.cpp b/saltoqd/toqmanager.cpp index dcc22f4..6e738fe 100644 --- a/saltoqd/toqmanager.cpp +++ b/saltoqd/toqmanager.cpp @@ -1,3 +1,5 @@ +#include + #include "toqmanager.h" #include "obexconnection.h" @@ -42,10 +44,15 @@ ToqManager::ToqManager(Settings *settings, QObject *parent) : this, &ToqManager::connected); connect(_conn, &ToqConnection::disconnected, this, &ToqManager::disconnected); + connect(_conn, &ToqConnection::connectedChanged, + this, &ToqManager::connectedChanged); connect(_settings, &Settings::addressChanged, this, &ToqManager::handleSettingsAddressChanged); _conn->setAddress(QBluetoothAddress(_settings->address())); + + new ToqManagerAdaptor(this); + QDBusConnection::sessionBus().registerObject("/com/javispedro/saltoq/ToqManager", this); } void ToqManager::setEndpointListener(ToqConnection::Endpoint ep, EndpointHandler *handler) @@ -119,3 +126,9 @@ void ToqManager::handleSettingsAddressChanged() { _conn->setAddress(QBluetoothAddress(_settings->address())); } + +ToqManagerAdaptor::ToqManagerAdaptor(ToqManager *parent) + : QDBusAbstractAdaptor(parent) +{ + setAutoRelaySignals(true); +} diff --git a/saltoqd/toqmanager.h b/saltoqd/toqmanager.h index 422884d..6cc8b8d 100644 --- a/saltoqd/toqmanager.h +++ b/saltoqd/toqmanager.h @@ -2,6 +2,7 @@ #define TOQMANAGER_H #include +#include #include "toqconnection.h" #include "settings.h" @@ -24,6 +25,8 @@ class NotificationManager; class ToqManager : public QObject { Q_OBJECT + Q_PROPERTY(bool connected READ isConnected NOTIFY connectedChanged) + public: explicit ToqManager(Settings *settings, QObject *parent = 0); @@ -51,6 +54,7 @@ public: signals: void connected(); void disconnected(); + void connectedChanged(); private slots: void handleToqMessage(const ToqConnection::Message &msg); @@ -77,6 +81,22 @@ private: NotificationManager *_notificationManager; }; +class ToqManagerAdaptor : public QDBusAbstractAdaptor +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "com.javispedro.saltoq.ToqManager") + + Q_PROPERTY(bool connected READ isConnected NOTIFY connectedChanged) + +public: + ToqManagerAdaptor(ToqManager *parent); + + bool isConnected() const; + +signals: + void connectedChanged(); +}; + inline bool ToqManager::isConnected() const { return _conn->isConnected(); @@ -87,4 +107,9 @@ inline quint16 ToqManager::newTransactionId() return _conn->newTransactionId(); } +inline bool ToqManagerAdaptor::isConnected() const +{ + return static_cast(parent())->isConnected(); +} + #endif // TOQMANAGER_H -- cgit v1.2.3