summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/qml/pages/ManagerPage.qml11
-rw-r--r--daemon/daemon.cpp4
-rw-r--r--daemon/daemon.pro3
-rw-r--r--daemon/manager.cpp18
-rw-r--r--daemon/manager.h7
-rw-r--r--daemon/settings.h25
6 files changed, 61 insertions, 7 deletions
diff --git a/app/qml/pages/ManagerPage.qml b/app/qml/pages/ManagerPage.qml
index 92d79b1..a6b6699 100644
--- a/app/qml/pages/ManagerPage.qml
+++ b/app/qml/pages/ManagerPage.qml
@@ -32,10 +32,17 @@
import QtQuick 2.0
import QtQml 2.1
import Sailfish.Silica 1.0
+import org.nemomobile.configuration 1.0
Page {
id: page
+ ConfigurationGroup {
+ id: settings
+ path: "/org/pebbled/settings"
+ property bool silentWhenConnected: false
+ }
+
SilicaFlickable {
anchors.fill: parent
@@ -121,10 +128,10 @@ Page {
}
TextSwitch {
text: qsTr("Silent when connected")
- checked: false
+ checked: settings.silentWhenConnected
automaticCheck: false
onClicked: {
- console.log('settings.silentConnected');
+ settings.silentWhenConnected = !settings.silentWhenConnected;
}
}
}
diff --git a/daemon/daemon.cpp b/daemon/daemon.cpp
index a2cb900..b891680 100644
--- a/daemon/daemon.cpp
+++ b/daemon/daemon.cpp
@@ -86,7 +86,9 @@ int main(int argc, char *argv[])
DBusConnector dbus;
VoiceCallManager voice;
- Manager manager(&watch, &dbus, &voice);
+ Settings settings;
+
+ Manager manager(&watch, &dbus, &voice, &settings);
signal(SIGINT, signalhandler);
signal(SIGTERM, signalhandler);
diff --git a/daemon/daemon.pro b/daemon/daemon.pro
index 3db6918..cf6d5b9 100644
--- a/daemon/daemon.pro
+++ b/daemon/daemon.pro
@@ -29,7 +29,8 @@ HEADERS += \
watchconnector.h \
dbusconnector.h \
dbusadaptor.h \
- watchcommands.h
+ watchcommands.h \
+ settings.h
OTHER_FILES += \
org.pebbled.xml \
diff --git a/daemon/manager.cpp b/daemon/manager.cpp
index a2365b4..8e07d52 100644
--- a/daemon/manager.cpp
+++ b/daemon/manager.cpp
@@ -5,10 +5,14 @@
#include <QtContacts/QContact>
#include <QtContacts/QContactPhoneNumber>
-Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice) :
+Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice, Settings *settings) :
QObject(0), watch(watch), dbus(dbus), voice(voice), commands(new WatchCommands(watch, this)),
- notification(MNotification::DeviceEvent)
+ settings(settings), notification(MNotification::DeviceEvent)
{
+ connect(settings, SIGNAL(valueChanged(QString)), SLOT(onSettingChanged(const QString&)));
+ connect(settings, SIGNAL(valuesChanged()), SLOT(onSettingsChanged()));
+ connect(settings, SIGNAL(silentWhenConnectedChanged()), SLOT(onSettingsChanged()));
+
// We don't need to handle presence changes, so report them separately and ignore them
QMap<QString, QString> parameters;
parameters.insert(QString::fromLatin1("mergePresenceChanges"), QString::fromLatin1("false"));
@@ -54,6 +58,16 @@ Manager::Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallMan
connect(this, SIGNAL(mprisMetadataChanged(QVariantMap)), commands, SLOT(onMprisMetadataChanged(QVariantMap)));
}
+void Manager::onSettingChanged(const QString &key)
+{
+ logger()->debug() << __FUNCTION__ << key << ":" << settings->property(qPrintable(key));
+}
+
+void Manager::onSettingsChanged()
+{
+ logger()->warn() << __FUNCTION__ << "Not implemented!";
+}
+
void Manager::onPebbleChanged()
{
const QVariantMap & pebble = dbus->pebble();
diff --git a/daemon/manager.h b/daemon/manager.h
index e967dae..64dbcce 100644
--- a/daemon/manager.h
+++ b/daemon/manager.h
@@ -5,6 +5,7 @@
#include "dbusconnector.h"
#include "voicecallmanager.h"
#include "watchcommands.h"
+#include "settings.h"
#include <QObject>
#include <QBluetoothLocalDevice>
@@ -38,6 +39,8 @@ class Manager :
WatchCommands *commands;
+ Settings *settings;
+
MNotification notification;
QContactManager *contacts;
@@ -47,7 +50,7 @@ class Manager :
QString lastSeenMpris;
public:
- explicit Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice);
+ explicit Manager(watch::WatchConnector *watch, DBusConnector *dbus, VoiceCallManager *voice, Settings *settings);
Q_INVOKABLE QString findPersonByNumber(QString number);
Q_INVOKABLE void processUnreadMessages(GroupObject *group);
@@ -62,6 +65,8 @@ public slots:
void hangupAll();
protected slots:
+ void onSettingChanged(const QString &key);
+ void onSettingsChanged();
void onPebbleChanged();
void onConnectedChanged();
void onActiveVoiceCallChanged();
diff --git a/daemon/settings.h b/daemon/settings.h
new file mode 100644
index 0000000..50ffd86
--- /dev/null
+++ b/daemon/settings.h
@@ -0,0 +1,25 @@
+#ifndef SETTINGS_H
+#define SETTINGS_H
+
+#include <MDConfGroup>
+
+class Settings : public MDConfGroup
+{
+ Q_OBJECT
+
+ Q_PROPERTY(bool silentWhenConnected MEMBER silentWhenConnected NOTIFY silentWhenConnectedChanged)
+ bool silentWhenConnected;
+
+public:
+ explicit Settings(QObject *parent = 0) :
+ MDConfGroup("/org/pebbled/settings", parent, BindProperties)
+ { resolveMetaObject(); }
+
+signals:
+ void silentWhenConnectedChanged(bool);
+
+public slots:
+
+};
+
+#endif // SETTINGS_H