]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix issue that removing an item is not recognized
authorPeter Penz <peter.penz19@gmail.com>
Fri, 26 Aug 2011 06:08:11 +0000 (08:08 +0200)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 26 Aug 2011 06:09:50 +0000 (08:09 +0200)
Thanks to Tirtha Chatterjee for the patch!

REVIEW: 102435

src/kitemviews/kfileitemmodel.cpp
src/tests/kfileitemmodeltest.cpp
src/tests/testdir.cpp
src/tests/testdir.h

index 189aa75e0eb45af9e330a214c559a0f470fd76f3..f36ab83807ab9528f5bee950db4c2371e0eede67 100644 (file)
@@ -517,7 +517,7 @@ void KFileItemModel::removeItems(const KFileItemList& items)
     foreach (const KFileItem& itemToRemove, sortedItems) {
         const int previousTargetIndex = targetIndex;
         while (targetIndex < m_sortedItems.count()) {
-            if (m_sortedItems.at(targetIndex) == itemToRemove) {
+            if (m_sortedItems.at(targetIndex).url() == itemToRemove.url()) {
                 break;
             }
             ++targetIndex;
index 7315083fa2ec797c60c65ecbb613b7c9890203da..091632eab3840cbb01949367e3d153a704534eed 100644 (file)
@@ -41,6 +41,7 @@ private slots:
     void testDefaultSortRole();
     void testDefaultGroupRole();
     void testNewItems();
+    void testRemoveItems();
     void testModelConsistencyWhenInsertingItems();
     void testItemRangeConsistencyWhenInsertingItems();
     void testExpandItems();
@@ -124,6 +125,19 @@ void KFileItemModelTest::testNewItems()
     QVERIFY(isModelConsistent());
 }
 
+void KFileItemModelTest::testRemoveItems()
+{
+    m_testDir->createFile("a.txt");
+    m_dirLister->openUrl(m_testDir->url());
+    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout));
+    QCOMPARE(m_model->count(), 1);
+
+    m_testDir->removeFile("a.txt");
+    m_dirLister->updateDirectory(m_testDir->url());
+    QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsRemoved(KItemRangeList)), DefaultTimeout));
+    QCOMPARE(m_model->count(), 0);
+}
+
 void KFileItemModelTest::testModelConsistencyWhenInsertingItems()
 {
     QSKIP("Temporary disabled", SkipSingle);
index 5e961d2abecd1858c9b362b5750eb9b7fd24392d..a7f3cd4dc4186d6ee63e69d512d342c355e54656 100644 (file)
@@ -93,6 +93,16 @@ void TestDir::createDir(const QString& path, const QDateTime& time)
     Q_ASSERT(QFile::exists(absolutePath));
 }
 
+void TestDir::removeFile(const QString& path)
+{
+    QString absolutePath = path;
+    QFileInfo fileInfo(absolutePath);
+    if (!fileInfo.isAbsolute()) {
+        absolutePath = name() + path;
+    }
+    QFile::remove(absolutePath);
+}
+
 void TestDir::makePathAbsoluteAndCreateParents(QString& path)
 {
     QFileInfo fileInfo(path);
index bcaa034b58604855456172430e7278822aa44f4e..80e519e6bc870102bb79f01fe8c5aac637b69076 100644 (file)
@@ -49,6 +49,8 @@ public:
     void createFiles(const QStringList& files);
     void createDir(const QString& path, const QDateTime& time = QDateTime());
 
+    void removeFile(const QString& path);
+
 private:
     void makePathAbsoluteAndCreateParents(QString& path);