diff options
author | Javier S. Pedro <maemo@javispedro.com> | 2012-08-09 04:03:20 +0200 |
---|---|---|
committer | Javier S. Pedro <maemo@javispedro.com> | 2012-08-09 04:03:20 +0200 |
commit | 406332eb6b3199d19388f359d04c9f184e6082b5 (patch) | |
tree | 0560e8dabcd715cdf1932b7ac6105df5d20025e5 /sowatchd/daemon.cpp | |
parent | 3aa62b0543d978c1a01c5cf05a898fd8d805c44b (diff) | |
download | sowatch-406332eb6b3199d19388f359d04c9f184e6082b5.tar.gz sowatch-406332eb6b3199d19388f359d04c9f184e6082b5.zip |
watch status UI
Diffstat (limited to 'sowatchd/daemon.cpp')
-rw-r--r-- | sowatchd/daemon.cpp | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/sowatchd/daemon.cpp b/sowatchd/daemon.cpp index f8cfa00..2a6c84f 100644 --- a/sowatchd/daemon.cpp +++ b/sowatchd/daemon.cpp @@ -7,9 +7,14 @@ using namespace sowatch; Daemon::Daemon(QObject *parent) : QObject(parent), _registry(Registry::registry()), - _settings(new GConfKey("/apps/sowatch", this)) + _settings(new GConfKey("/apps/sowatch", this)), + _status_mapper(new QSignalMapper(this)) { - connect(_settings, SIGNAL(subkeyChanged(QString)), SLOT(settingsChanged(QString))); + connect(_settings, SIGNAL(subkeyChanged(QString)), + SLOT(handleSettingsChanged(QString))); + connect(_status_mapper, SIGNAL(mapped(QString)), + SLOT(handleWatchStatusChange(QString))); + QStringList activeWatches = _settings->value("active-watches").toStringList(); foreach (const QString& s, activeWatches) { startWatch(s); @@ -63,6 +68,13 @@ void Daemon::startWatch(const QString &name) WatchServer* server = new WatchServer(watch, this); _servers[name] = server; + // Connect watch status signals + _status_mapper->setMapping(watch, name); + connect(watch, SIGNAL(connected()), + _status_mapper, SLOT(map())); + connect(watch, SIGNAL(disconnected()), + _status_mapper, SLOT(map())); + // Configure the server server->setNextWatchletButton(watchSettings->value("next-watchlet-button").toString()); @@ -101,7 +113,7 @@ void Daemon::stopWatch(const QString &name) qDebug() << "Stopping watch" << name; } -void Daemon::settingsChanged(const QString &subkey) +void Daemon::handleSettingsChanged(const QString &subkey) { qDebug() << "Daemon settings changed" << subkey; if (subkey == "active-watches") { @@ -117,3 +129,14 @@ void Daemon::settingsChanged(const QString &subkey) } } } + +void Daemon::handleWatchStatusChange(const QString &name) +{ + WatchServer* server = _servers[name]; + Watch* watch = server->watch(); + if (watch->isConnected()) { + emit WatchStatusChanged(name, QLatin1String("connected")); + } else { + emit WatchStatusChanged(name, QLatin1String("enabled")); + } +} |