From ac182bd9bf076b4d03d4812e85b989edae32d756 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Sat, 11 May 2013 20:15:36 +0200 Subject: able to navigate watchlets in liveview --- libsowatch/watch.h | 6 +++++- libsowatch/watchserver.cpp | 50 +++++++++++++++------------------------------- libsowatch/watchserver.h | 5 ++--- 3 files changed, 23 insertions(+), 38 deletions(-) (limited to 'libsowatch') diff --git a/libsowatch/watch.h b/libsowatch/watch.h index 27e3d04..6a24d3e 100644 --- a/libsowatch/watch.h +++ b/libsowatch/watch.h @@ -91,8 +91,12 @@ signals: void buttonPressed(int button); /** A button has been pressed and then released. */ void buttonReleased(int button); - /** Emitted when e.g. either via the watch menu, or similar, a watchlet is requested. */ + /** Emitted when e.g. either via the watch menu, or similar, advancing watchlet carrousel is requested. */ + void nextWatchletRequested(); + /** Emitted when e.g. either via the watch menu, or similar, a given watchlet is requested. */ void watchletRequested(const QString& id); + /** Emitted when closing the current watchlet is requested. */ + void closeWatchledRequested(); }; } diff --git a/libsowatch/watchserver.cpp b/libsowatch/watchserver.cpp index c82c3ee..06a8189 100644 --- a/libsowatch/watchserver.cpp +++ b/libsowatch/watchserver.cpp @@ -11,7 +11,6 @@ using namespace sowatch; WatchServer::WatchServer(Watch* watch, QObject* parent) : QObject(parent), _watch(watch), - _nextWatchletButton(-1), _oldNotificationThreshold(300), _idleWatchlet(0), _notificationWatchlet(0), _watchlets(new WatchletsModel(this)), @@ -22,9 +21,10 @@ WatchServer::WatchServer(Watch* watch, QObject* parent) : connect(_watch, SIGNAL(connected()), SLOT(handleWatchConnected())); connect(_watch, SIGNAL(disconnected()), SLOT(handleWatchDisconnected())); connect(_watch, SIGNAL(idling()), SLOT(handleWatchIdling())); - connect(_watch, SIGNAL(buttonPressed(int)), SLOT(handleWatchButtonPress(int))); + connect(_watch, SIGNAL(nextWatchletRequested()), SLOT(handleNextWatchletRequested())); connect(_watch, SIGNAL(watchletRequested(QString)), SLOT(handleWatchletRequested(QString))); + connect(_watch, SIGNAL(closeWatchledRequested()), SLOT(handleCloseWatchletRequested())); connect(_syncTimeTimer, SIGNAL(timeout()), SLOT(syncTime())); _syncTimeTimer->setSingleShot(true); @@ -43,27 +43,6 @@ const Watch* WatchServer::watch() const return _watch; } -QString WatchServer::nextWatchletButton() const -{ - if (_nextWatchletButton >= 0) { - return _watch->buttons().at(_nextWatchletButton); - } else { - return QString(); - } -} - -void WatchServer::setNextWatchletButton(const QString& value) -{ - if (value.isEmpty()) { - _nextWatchletButton = -1; - return; - } - _nextWatchletButton = _watch->buttons().indexOf(value); - if (_nextWatchletButton < 0) { - qWarning() << "Invalid watch button" << value; - } -} - Watchlet * WatchServer::idleWatchlet() { return _idleWatchlet; @@ -392,18 +371,16 @@ void WatchServer::handleWatchIdling() } } -void WatchServer::handleWatchButtonPress(int button) +void WatchServer::handleNextWatchletRequested() { - if (button == _nextWatchletButton) { - qDebug() << "next watchlet button pressed"; - if (_pendingNotifications.empty()) { - // No notifications: either app or idle mode. - nextWatchlet(); - } else { - // Skip to next notification if any - _pendingNotifications.dequeue(); - nextNotification(); - } + qDebug() << "next watchlet button pressed"; + if (_pendingNotifications.empty()) { + // No notifications: either app or idle mode. + nextWatchlet(); + } else { + // Skip to next notification if any + _pendingNotifications.dequeue(); + nextNotification(); } } @@ -412,6 +389,11 @@ void WatchServer::handleWatchletRequested(const QString &id) openWatchlet(id); } +void WatchServer::handleCloseWatchletRequested() +{ + closeWatchlet(); +} + void WatchServer::handleNotificationChanged() { QObject *obj = sender(); diff --git a/libsowatch/watchserver.h b/libsowatch/watchserver.h index a1cda45..06f4e4b 100644 --- a/libsowatch/watchserver.h +++ b/libsowatch/watchserver.h @@ -79,8 +79,6 @@ signals: private: Watch* _watch; - /** The watch button that causes next watchlet to be run. */ - int _nextWatchletButton; /** The amount of seconds that have to pass for a notification to be considered "outdated" and not shown. */ int _oldNotificationThreshold; @@ -125,8 +123,9 @@ private slots: void handleWatchConnected(); void handleWatchDisconnected(); void handleWatchIdling(); - void handleWatchButtonPress(int button); + void handleNextWatchletRequested(); void handleWatchletRequested(const QString& id); + void handleCloseWatchletRequested(); void handleNotificationChanged(); void handleNotificationDismissed(); -- cgit v1.2.3