┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels
diff options
context:
space:
mode:
authorVishesh Handa <[email protected]>2013-05-06 18:41:21 +0530
committerVishesh Handa <[email protected]>2013-05-07 01:36:37 +0530
commit38bb5f1547e2a18d40a01fabf9b4478f5fe66130 (patch)
tree9a3b4f69e52949376d9e90090cc5a902854aba06 /src/panels
parentff3b009e68f485a1a65a7535b01eeeb7128463d2 (diff)
Dolphin Places: React to Nepomuk system changes
Reload the places panel when Nepomuk starts up and shutsdown. This way the user does not need to restart Dolphin to see the custom searches and places after Nepomuk switches on. BUG: 304918 REVIEW: 110323
Diffstat (limited to 'src/panels')
-rw-r--r--src/panels/places/placesitemmodel.cpp40
-rw-r--r--src/panels/places/placesitemmodel.h3
2 files changed, 42 insertions, 1 deletions
diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp
index 1acbb5771..caf6b7566 100644
--- a/src/panels/places/placesitemmodel.cpp
+++ b/src/panels/places/placesitemmodel.cpp
@@ -88,7 +88,11 @@ PlacesItemModel::PlacesItemModel(QObject* parent) :
m_storageSetupInProgress()
{
#ifdef HAVE_NEPOMUK
- if (Nepomuk2::ResourceManager::instance()->initialized()) {
+ Nepomuk2::ResourceManager* rm = Nepomuk2::ResourceManager::instance();
+ connect(rm, SIGNAL(nepomukSystemStarted()), this, SLOT(slotNepomukStarted()));
+ connect(rm, SIGNAL(nepomukSystemStopped()), this, SLOT(slotNepomukStopped()));
+
+ if (rm->initialized()) {
KConfig config("nepomukserverrc");
m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
}
@@ -949,6 +953,40 @@ void PlacesItemModel::createSystemBookmarks()
}
}
+void PlacesItemModel::clear() {
+ m_bookmarkedItems.clear();
+ KStandardItemModel::clear();
+}
+
+void PlacesItemModel::slotNepomukStarted()
+{
+ KConfig config("nepomukserverrc");
+ m_fileIndexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
+ if (m_fileIndexingEnabled) {
+ m_systemBookmarks.clear();
+ m_systemBookmarksIndexes.clear();
+ createSystemBookmarks();
+
+ clear();
+ loadBookmarks();
+ }
+}
+
+void PlacesItemModel::slotNepomukStopped()
+{
+ if (m_fileIndexingEnabled) {
+ m_fileIndexingEnabled = false;
+
+ m_systemBookmarks.clear();
+ m_systemBookmarksIndexes.clear();
+ createSystemBookmarks();
+
+ clear();
+ loadBookmarks();
+ }
+}
+
+
void PlacesItemModel::initializeAvailableDevices()
{
QString predicate("[[[[ StorageVolume.ignored == false AND [ StorageVolume.usage == 'FileSystem' OR StorageVolume.usage == 'Encrypted' ]]"
diff --git a/src/panels/places/placesitemmodel.h b/src/panels/places/placesitemmodel.h
index e42187860..693836033 100644
--- a/src/panels/places/placesitemmodel.h
+++ b/src/panels/places/placesitemmodel.h
@@ -133,6 +133,7 @@ public:
*/
static KUrl convertedUrl(const KUrl& url);
+ virtual void clear();
signals:
void errorMessage(const QString& message);
void storageSetupDone(int index, bool success);
@@ -163,6 +164,8 @@ private slots:
*/
void saveBookmarks();
+ void slotNepomukStarted();
+ void slotNepomukStopped();
private:
struct SystemBookmarkData;