From 24c7c2f6f1429103d922ef940c0e17a3d4778059 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Sun, 5 May 2013 01:44:40 +0200 Subject: ABI change: Watchlet now depends on Watch, not WatchServer --- libsowatch/watchserver.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'libsowatch/watchserver.cpp') diff --git a/libsowatch/watchserver.cpp b/libsowatch/watchserver.cpp index 3d9db24..d3328df 100644 --- a/libsowatch/watchserver.cpp +++ b/libsowatch/watchserver.cpp @@ -65,11 +65,13 @@ void WatchServer::addWatchlet(Watchlet *watchlet) void WatchServer::insertWatchlet(int position, Watchlet *watchlet) { Q_ASSERT(watchlet); - Q_ASSERT(watchlet->_server == this); + Q_ASSERT(watchlet->watch() == _watch); const QString id = watchlet->id(); Q_ASSERT(!_watchletIds.contains(id)); + setWatchletProperties(watchlet); + _watchlets.insert(position, watchlet); _watchletIds[id] = watchlet; } @@ -79,7 +81,7 @@ void WatchServer::moveWatchlet(const Watchlet *watchlet, int to) const QString id = watchlet->id(); int index = _watchlets.indexOf(const_cast(watchlet)); - Q_ASSERT(watchlet->_server == this); + Q_ASSERT(watchlet->watch() == _watch); Q_ASSERT(_watchletIds.contains(id)); Q_ASSERT(index >= 0); @@ -90,13 +92,15 @@ void WatchServer::removeWatchlet(const Watchlet *watchlet) { const QString id = watchlet->id(); - Q_ASSERT(watchlet->_server == this); + Q_ASSERT(watchlet->watch() == _watch); Q_ASSERT(_watchletIds.contains(id)); if (_currentWatchlet == watchlet) { closeWatchlet(); } + unsetWatchletProperties(const_cast(watchlet)); + _watchlets.removeAll(const_cast(watchlet)); _watchletIds.remove(id); } @@ -177,7 +181,7 @@ void WatchServer::nextNotification() void WatchServer::runWatchlet(Watchlet *watchlet) { - Q_ASSERT(watchlet->_server == this); + Q_ASSERT(watchlet->watch() == _watch); if (_currentWatchlet && _currentWatchletActive) { deactivateCurrentWatchlet(); } @@ -278,6 +282,18 @@ void WatchServer::removeNotification(Notification::Type type, Notification *n) disconnect(n, 0, this, 0); } +void WatchServer::setWatchletProperties(Watchlet *watchlet) +{ + Q_ASSERT(watchlet->watch() == _watch); + watchlet->setNotificationsModel(_notifications); +} + +void WatchServer::unsetWatchletProperties(Watchlet *watchlet) +{ + Q_ASSERT(watchlet->watch() == _watch); + watchlet->setNotificationsModel(0); +} + void WatchServer::goToIdle() { Q_ASSERT(!_currentWatchletActive); -- cgit v1.2.3