From c752ccafd8d826b3c0c9140e89ece09e90b34cb1 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Wed, 15 Aug 2012 15:48:47 +0200 Subject: avoid reloading watchlets when changing order only --- libsowatch/watchserver.cpp | 12 ++++++++++++ libsowatch/watchserver.h | 1 + 2 files changed, 13 insertions(+) (limited to 'libsowatch') diff --git a/libsowatch/watchserver.cpp b/libsowatch/watchserver.cpp index 01af063..511c2c5 100644 --- a/libsowatch/watchserver.cpp +++ b/libsowatch/watchserver.cpp @@ -71,6 +71,18 @@ void WatchServer::insertWatchlet(int position, Watchlet *watchlet) _watchletIds[id] = watchlet; } +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(_watchletIds.contains(id)); + Q_ASSERT(index >= 0); + + _watchlets.move(index, to); +} + void WatchServer::removeWatchlet(const Watchlet *watchlet) { const QString id = watchlet->id(); diff --git a/libsowatch/watchserver.h b/libsowatch/watchserver.h index 91f9b4e..67fcb81 100644 --- a/libsowatch/watchserver.h +++ b/libsowatch/watchserver.h @@ -35,6 +35,7 @@ public: void addWatchlet(Watchlet *watchlet); void insertWatchlet(int position, Watchlet *watchlet); + void moveWatchlet(const Watchlet *watchlet, int to); void removeWatchlet(const Watchlet *watchlet); void addProvider(NotificationProvider *provider); -- cgit v1.2.3