From f915a22bd680376dc47ff72bb00ac73df1dd09a7 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 9 Apr 2015 01:16:54 +0200 Subject: add UI skeleton and sniff rate workaround --- rpm/saltoq.spec | 9 ++++ rpm/saltoq.yaml | 7 +-- saltoq.pro | 3 +- saltoq/qml/cover/CoverPage.qml | 54 +++++++++++++++++++++++ saltoq/qml/pages/FirstPage.qml | 73 ++++++++++++++++++++++++++++++++ saltoq/qml/pages/SecondPage.qml | 62 +++++++++++++++++++++++++++ saltoq/qml/saltoq.qml | 41 ++++++++++++++++++ saltoq/saltoq.desktop | 6 +++ saltoq/saltoq.png | Bin 0 -> 2965 bytes saltoq/saltoq.pro | 31 ++++++++++++++ saltoq/src/saltoq.cpp | 51 ++++++++++++++++++++++ saltoq/translations/saltoq.ts | 37 ++++++++++++++++ saltoqd/saltoq-bt-sniff-subrate.service | 10 +++++ saltoqd/saltoqd.pro | 10 ++++- saltoqd/toqmanager.cpp | 9 +--- saltoqd/toqmanager.h | 24 +---------- saltoqd/toqmanageradaptor.cpp | 24 +++++++++++ saltoqd/toqmanageradaptor.h | 39 +++++++++++++++++ 18 files changed, 455 insertions(+), 35 deletions(-) create mode 100644 saltoq/qml/cover/CoverPage.qml create mode 100644 saltoq/qml/pages/FirstPage.qml create mode 100644 saltoq/qml/pages/SecondPage.qml create mode 100644 saltoq/qml/saltoq.qml create mode 100644 saltoq/saltoq.desktop create mode 100644 saltoq/saltoq.png create mode 100644 saltoq/saltoq.pro create mode 100644 saltoq/src/saltoq.cpp create mode 100644 saltoq/translations/saltoq.ts create mode 100644 saltoqd/saltoq-bt-sniff-subrate.service create mode 100644 saltoqd/toqmanageradaptor.cpp create mode 100644 saltoqd/toqmanageradaptor.h diff --git a/rpm/saltoq.spec b/rpm/saltoq.spec index 80ee58b..45af0cd 100644 --- a/rpm/saltoq.spec +++ b/rpm/saltoq.spec @@ -41,6 +41,7 @@ BuildRequires: pkgconfig(libmkcal-qt5) BuildRequires: pkgconfig(libkcalcoren-qt5) BuildRequires: pkgconfig(openobex) BuildRequires: qt5-qtconnectivity-qtbluetooth-devel +BuildRequires: desktop-file-utils %description Qualcomm Toq. @@ -72,6 +73,10 @@ rm -rf %{buildroot} # >> install post # << install post +desktop-file-install --delete-original \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/*.desktop + %post # >> post if [ "$1" -ge 1 ]; then @@ -92,6 +97,10 @@ fi %files %defattr(-,root,root,-) %{_bindir} +%{_datadir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/86x86/apps/%{name}.png %{_libdir}/systemd/user/saltoqd.service +%{_libdir}/systemd/system/saltoq-bt-sniff-subrate.service # >> files # << files diff --git a/rpm/saltoq.yaml b/rpm/saltoq.yaml index 59bf336..5a21166 100644 --- a/rpm/saltoq.yaml +++ b/rpm/saltoq.yaml @@ -42,7 +42,8 @@ Requires: Files: - '%{_bindir}' -# - '%{_datadir}/%{name}' -# - '%{_datadir}/applications/%{name}.desktop' -# - '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png' + - '%{_datadir}/%{name}' + - '%{_datadir}/applications/%{name}.desktop' + - '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png' - '%{_libdir}/systemd/user/saltoqd.service' + - '%{_libdir}/systemd/system/saltoq-bt-sniff-subrate.service' diff --git a/saltoq.pro b/saltoq.pro index 83f6021..272f452 100644 --- a/saltoq.pro +++ b/saltoq.pro @@ -1,6 +1,7 @@ TEMPLATE = subdirs SUBDIRS += \ - saltoqd + saltoqd \ + saltoq OTHER_FILES = rpm/saltoq.yaml rpm/saltoq.spec diff --git a/saltoq/qml/cover/CoverPage.qml b/saltoq/qml/cover/CoverPage.qml new file mode 100644 index 0000000..341b7f9 --- /dev/null +++ b/saltoq/qml/cover/CoverPage.qml @@ -0,0 +1,54 @@ +/* + Copyright (C) 2013 Jolla Ltd. + Contact: Thomas Perl + All rights reserved. + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Jolla Ltd nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +CoverBackground { + Label { + id: label + anchors.centerIn: parent + text: qsTr("My Cover") + } + + CoverActionList { + id: coverAction + + CoverAction { + iconSource: "image://theme/icon-cover-next" + } + + CoverAction { + iconSource: "image://theme/icon-cover-pause" + } + } +} + + diff --git a/saltoq/qml/pages/FirstPage.qml b/saltoq/qml/pages/FirstPage.qml new file mode 100644 index 0000000..f503e67 --- /dev/null +++ b/saltoq/qml/pages/FirstPage.qml @@ -0,0 +1,73 @@ +/* + Copyright (C) 2013 Jolla Ltd. + Contact: Thomas Perl + All rights reserved. + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Jolla Ltd nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import QtQuick 2.0 +import Sailfish.Silica 1.0 + + +Page { + id: page + + // To enable PullDownMenu, place our content in a SilicaFlickable + SilicaFlickable { + anchors.fill: parent + + // PullDownMenu and PushUpMenu must be declared in SilicaFlickable, SilicaListView or SilicaGridView + PullDownMenu { + MenuItem { + text: qsTr("Show Page 2") + onClicked: pageStack.push(Qt.resolvedUrl("SecondPage.qml")) + } + } + + // Tell SilicaFlickable the height of its content. + contentHeight: column.height + + // Place our content in a Column. The PageHeader is always placed at the top + // of the page, followed by our content. + Column { + id: column + + width: page.width + spacing: Theme.paddingLarge + PageHeader { + title: qsTr("Saltoq") + } + Label { + x: Theme.paddingLarge + text: qsTr("Hello Toq users") + color: Theme.secondaryHighlightColor + font.pixelSize: Theme.fontSizeExtraLarge + } + } + } +} + + diff --git a/saltoq/qml/pages/SecondPage.qml b/saltoq/qml/pages/SecondPage.qml new file mode 100644 index 0000000..c5b288d --- /dev/null +++ b/saltoq/qml/pages/SecondPage.qml @@ -0,0 +1,62 @@ +/* + Copyright (C) 2013 Jolla Ltd. + Contact: Thomas Perl + All rights reserved. + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Jolla Ltd nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import QtQuick 2.0 +import Sailfish.Silica 1.0 + + +Page { + id: page + SilicaListView { + id: listView + model: 20 + anchors.fill: parent + header: PageHeader { + title: qsTr("Nested Page") + } + delegate: BackgroundItem { + id: delegate + + Label { + x: Theme.paddingLarge + text: qsTr("Item") + " " + index + anchors.verticalCenter: parent.verticalCenter + color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor + } + onClicked: console.log("Clicked " + index) + } + VerticalScrollDecorator {} + } +} + + + + + diff --git a/saltoq/qml/saltoq.qml b/saltoq/qml/saltoq.qml new file mode 100644 index 0000000..ddbf376 --- /dev/null +++ b/saltoq/qml/saltoq.qml @@ -0,0 +1,41 @@ +/* + Copyright (C) 2013 Jolla Ltd. + Contact: Thomas Perl + All rights reserved. + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Jolla Ltd nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +import QtQuick 2.0 +import Sailfish.Silica 1.0 +import "pages" + +ApplicationWindow +{ + initialPage: Component { FirstPage { } } + cover: Qt.resolvedUrl("cover/CoverPage.qml") +} + + diff --git a/saltoq/saltoq.desktop b/saltoq/saltoq.desktop new file mode 100644 index 0000000..88ea59b --- /dev/null +++ b/saltoq/saltoq.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Application +X-Nemo-Application-Type=silica-qt5 +Icon=saltoq +Exec=saltoq +Name=Saltoq diff --git a/saltoq/saltoq.png b/saltoq/saltoq.png new file mode 100644 index 0000000..4c883a0 Binary files /dev/null and b/saltoq/saltoq.png differ diff --git a/saltoq/saltoq.pro b/saltoq/saltoq.pro new file mode 100644 index 0000000..b490a31 --- /dev/null +++ b/saltoq/saltoq.pro @@ -0,0 +1,31 @@ +# NOTICE: +# +# Application name defined in TARGET has a corresponding QML filename. +# If name defined in TARGET is changed, the following needs to be done +# to match new name: +# - corresponding QML filename must be changed +# - desktop icon filename must be changed +# - desktop filename must be changed +# - icon definition filename in desktop file must be changed +# - translation filenames have to be changed + +# The name of your application +TARGET = saltoq + +CONFIG += sailfishapp + +SOURCES += src/saltoq.cpp + +OTHER_FILES += qml/saltoq.qml \ + qml/cover/CoverPage.qml \ + qml/pages/FirstPage.qml \ + qml/pages/SecondPage.qml \ + rpm/saltoq.changes.in \ + rpm/saltoq.spec \ + rpm/saltoq.yaml \ + translations/*.ts \ + saltoq.desktop + +CONFIG += sailfishapp_i18n + +#TRANSLATIONS += translations/saltoq-de.ts diff --git a/saltoq/src/saltoq.cpp b/saltoq/src/saltoq.cpp new file mode 100644 index 0000000..df9646c --- /dev/null +++ b/saltoq/src/saltoq.cpp @@ -0,0 +1,51 @@ +/* + Copyright (C) 2013 Jolla Ltd. + Contact: Thomas Perl + All rights reserved. + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Jolla Ltd nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef QT_QML_DEBUG +#include +#endif + +#include + + +int main(int argc, char *argv[]) +{ + // SailfishApp::main() will display "qml/template.qml", if you need more + // control over initialization, you can use: + // + // - SailfishApp::application(int, char *[]) to get the QGuiApplication * + // - SailfishApp::createView() to get a new QQuickView * instance + // - SailfishApp::pathTo(QString) to get a QUrl to a resource file + // + // To display the view, call "show()" (will show fullscreen on device). + + return SailfishApp::main(argc, argv); +} + diff --git a/saltoq/translations/saltoq.ts b/saltoq/translations/saltoq.ts new file mode 100644 index 0000000..79326b9 --- /dev/null +++ b/saltoq/translations/saltoq.ts @@ -0,0 +1,37 @@ + + + + + CoverPage + + My Cover + + + + + FirstPage + + Show Page 2 + + + + Saltoq + + + + Hello Toq users + + + + + SecondPage + + Nested Page + + + + Item + + + + diff --git a/saltoqd/saltoq-bt-sniff-subrate.service b/saltoqd/saltoq-bt-sniff-subrate.service new file mode 100644 index 0000000..08bad83 --- /dev/null +++ b/saltoqd/saltoq-bt-sniff-subrate.service @@ -0,0 +1,10 @@ +[Unit] +Description=Set Bluetooth's sniff_max_interval +After=local-fs.target + +[Service] +Type=oneshot +ExecStart=/bin/sh -c "/bin/echo 1600 > /sys/class/bluetooth/hci0/sniff_max_interval" + +[Install] +WantedBy=multi-user.target diff --git a/saltoqd/saltoqd.pro b/saltoqd/saltoqd.pro index 4a51905..4337097 100644 --- a/saltoqd/saltoqd.pro +++ b/saltoqd/saltoqd.pro @@ -25,7 +25,8 @@ SOURCES += main.cpp \ cardmanager.cpp \ agendamanager.cpp \ settings.cpp \ - settingsmanager.cpp + settingsmanager.cpp \ + toqmanageradaptor.cpp HEADERS += \ toqconnection.h \ @@ -44,7 +45,8 @@ HEADERS += \ cardmanager.h \ agendamanager.h \ settings.h \ - settingsmanager.h + settingsmanager.h \ + toqmanageradaptor.h DBUS_INTERFACES += com.nokia.profiled.xml org.nemomobile.voicecall.VoiceCallManager.xml org.nemomobile.voicecall.VoiceCall.xml QDBUSXML2CPP_INTERFACE_HEADER_FLAGS = -i voicecallmanager.h @@ -55,3 +57,7 @@ INSTALLS += target unit.path = /usr/lib/systemd/user/ unit.files = saltoqd.service INSTALLS += unit + +workaround.path = /usr/lib/systemd/system/ +workaround.files = saltoq-bt-sniff-subrate.service +INSTALLS += workaround diff --git a/saltoqd/toqmanager.cpp b/saltoqd/toqmanager.cpp index 6e738fe..c319939 100644 --- a/saltoqd/toqmanager.cpp +++ b/saltoqd/toqmanager.cpp @@ -1,6 +1,7 @@ #include #include "toqmanager.h" +#include "toqmanageradaptor.h" #include "obexconnection.h" @@ -51,7 +52,7 @@ ToqManager::ToqManager(Settings *settings, QObject *parent) : _conn->setAddress(QBluetoothAddress(_settings->address())); - new ToqManagerAdaptor(this); + new ToqManagerAdaptor(_fmsManager, this); QDBusConnection::sessionBus().registerObject("/com/javispedro/saltoq/ToqManager", this); } @@ -126,9 +127,3 @@ 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 6cc8b8d..a7e99b2 100644 --- a/saltoqd/toqmanager.h +++ b/saltoqd/toqmanager.h @@ -2,7 +2,6 @@ #define TOQMANAGER_H #include -#include #include "toqconnection.h" #include "settings.h" @@ -27,6 +26,8 @@ class ToqManager : public QObject Q_OBJECT Q_PROPERTY(bool connected READ isConnected NOTIFY connectedChanged) + friend class ToqManagerAdaptor; + public: explicit ToqManager(Settings *settings, QObject *parent = 0); @@ -81,22 +82,6 @@ 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(); @@ -107,9 +92,4 @@ inline quint16 ToqManager::newTransactionId() return _conn->newTransactionId(); } -inline bool ToqManagerAdaptor::isConnected() const -{ - return static_cast(parent())->isConnected(); -} - #endif // TOQMANAGER_H diff --git a/saltoqd/toqmanageradaptor.cpp b/saltoqd/toqmanageradaptor.cpp new file mode 100644 index 0000000..d5ee41d --- /dev/null +++ b/saltoqd/toqmanageradaptor.cpp @@ -0,0 +1,24 @@ +#include + +#include "toqmanageradaptor.h" +#include "fmsmanager.h" + +ToqManagerAdaptor::ToqManagerAdaptor(FmsManager *fms, ToqManager *parent) + : QDBusAbstractAdaptor(parent), + _conn(QDBusConnection::sessionBus()), + _toq(parent), _fms(fms) +{ + setAutoRelaySignals(true); +} + +void ToqManagerAdaptor::PutFile(const QString &localFile, const QString &remoteFile, const QDBusMessage &msg) +{ + QFile f(localFile); + if (!f.open(QIODevice::ReadOnly)) { + QDBusMessage reply = msg.createErrorReply("com.javispedro.saltoq.InvalidFile", "File does not exist"); + _conn.send(reply); + return; + } + + _fms->updateFile(remoteFile, f.readAll()); +} diff --git a/saltoqd/toqmanageradaptor.h b/saltoqd/toqmanageradaptor.h new file mode 100644 index 0000000..c2e62e9 --- /dev/null +++ b/saltoqd/toqmanageradaptor.h @@ -0,0 +1,39 @@ +#ifndef TOQMANAGERADAPTOR_H +#define TOQMANAGERADAPTOR_H + +#include +#include +#include + +#include "toqmanager.h" + +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(FmsManager *fms, ToqManager *parent); + + bool isConnected() const; + +public slots: + void PutFile(const QString &localFile, const QString &remoteFile, const QDBusMessage &msg); + +signals: + void connectedChanged(); + +private: + QDBusConnection _conn; + ToqManager *_toq; + FmsManager *_fms; +}; + +inline bool ToqManagerAdaptor::isConnected() const +{ + return _toq->isConnected(); +} + +#endif // TOQMANAGERADAPTOR_H -- cgit v1.2.3