]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Merge remote-tracking branch 'origin/KDE/4.10'
authorFrank Reininghaus <frank78ac@googlemail.com>
Sat, 11 May 2013 16:47:58 +0000 (18:47 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Sat, 11 May 2013 16:47:58 +0000 (18:47 +0200)
Conflicts:
CMakeLists.txt

src/kitemviews/kstandarditemmodel.cpp
src/kitemviews/kstandarditemmodel.h
src/panels/places/placesitemmodel.cpp
src/panels/places/placesitemmodel.h
src/tests/CMakeLists.txt
src/views/dolphinviewactionhandler.cpp

index dbf608c92734fc8fa9808849030499675425443c..959d62cb8ad55a643f9263c25ea1c97570489d41 100644 (file)
@@ -122,6 +122,15 @@ void KStandardItemModel::removeItem(int index)
     }
 }
 
+void KStandardItemModel::clear()
+{
+    int size = m_items.size();
+    m_items.clear();
+    m_indexesForItems.clear();
+
+    emit itemsRemoved(KItemRangeList() << KItemRange(0, size));
+}
+
 KStandardItem* KStandardItemModel::item(int index) const
 {
     if (index < 0 || index >= m_items.count()) {
index 34032bf07319fde4814612e3f0a976664dee623b..0debd6a6fccc3e5c6a78b62f374fce3012e3ee7b 100644 (file)
@@ -78,6 +78,7 @@ public:
     virtual QString roleDescription(const QByteArray& role) const;
     virtual QList<QPair<int, QVariant> > groups() const;
 
+    virtual void clear();
 protected:
     /**
      * Is invoked after an item has been inserted and before the signal
index 1acbb57719c3a109f94e5aabec8b6b82d3319d3e..caf6b75662c4953fce522d86faf4f8dbfba0fe1e 100644 (file)
@@ -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' ]]"
index e42187860f5641f8af1e21566ea053fccb8d44d2..693836033265e2978f6981d9a10b05d37ef117ff 100644 (file)
@@ -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;
 
index 543261eac1ca88765c929a435b12a885b856ae9a..83989d22c7b9e5e7e4104240b37726d43f846f72 100644 (file)
@@ -20,7 +20,11 @@ set(kitemlistcontrollertest_SRCS
     ../kitemviews/kfileitemlistview.cpp
     ../kitemviews/kitemmodelbase.cpp
     ../kitemviews/kitemlistview.cpp
+    ../kitemviews/kitemlistcontainer.cpp
+    ../kitemviews/kitemlistwidget.cpp
     ../kitemviews/kitemlistviewaccessible.cpp
+    ../kitemviews/kstandarditemlistview.cpp
+    ../kitemviews/kstandarditemlistwidget.cpp
 )
 kde4_add_unit_test(kitemlistcontrollertest TEST ${kitemlistcontrollertest_SRCS})
 target_link_libraries(kitemlistcontrollertest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
@@ -34,6 +38,10 @@ set(kfileitemlistviewtest_SRCS
     ../kitemviews/kitemmodelbase.cpp
     ../kitemviews/kitemlistview.cpp
     ../kitemviews/kitemlistviewaccessible.cpp
+    ../kitemviews/kitemlistcontainer.cpp
+    ../kitemviews/kitemlistwidget.cpp
+    ../kitemviews/kstandarditemlistview.cpp
+    ../kitemviews/kstandarditemlistwidget.cpp
 )
 kde4_add_unit_test(kfileitemlistviewtest TEST ${kfileitemlistviewtest_SRCS})
 target_link_libraries(kfileitemlistviewtest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
index c7832d725e33839229e32045882f61eca2e6af20..730723785e78fbd423c1ab33454c64c1a5409483 100644 (file)
@@ -528,8 +528,10 @@ void DolphinViewActionHandler::slotSortRoleChanged(const QByteArray& role)
     if (action) {
         action->setChecked(true);
 
-        QAction* sortByMenu =  m_actionCollection->action("sort");
-        sortByMenu->setIcon(KIcon(action->icon()));
+        if (!action->icon().isNull()) {
+            QAction* sortByMenu = m_actionCollection->action("sort");
+            sortByMenu->setIcon(KIcon(action->icon()));
+        }
     }
 }