]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix Bug 217575 - Auto select pasted files doesn't select all files if some have been...
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Fri, 9 Nov 2012 13:52:32 +0000 (14:52 +0100)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Fri, 9 Nov 2012 13:52:32 +0000 (14:52 +0100)
BUG: 217575
REVIEW: 107237
FIXED-IN: 4.9.4

src/views/dolphinview.cpp

index 8e1a191082dece7997388f05469b434a589fcded..c4fe2d330d1f7b122f79f748e490af919a79e972 100644 (file)
@@ -598,6 +598,8 @@ void DolphinView::setUrl(const KUrl& url)
         return;
     }
 
+    clearSelection();
+
     emit urlAboutToBeChanged(url);
     m_url = url;
 
@@ -628,6 +630,7 @@ void DolphinView::invertSelection()
 
 void DolphinView::clearSelection()
 {
+    m_selectedUrls.clear();
     m_container->controller()->selectionManager()->clearSelection();
 }
 
@@ -1211,20 +1214,18 @@ void DolphinView::updateViewState()
     }
 
     if (!m_selectedUrls.isEmpty()) {
-        clearSelection();
-
         KItemListSelectionManager* selectionManager = m_container->controller()->selectionManager();
         QSet<int> selectedItems = selectionManager->selectedItems();
 
-        foreach (const KUrl& url, m_selectedUrls) {
-            const int index = m_model->index(url);
+        for (QList<KUrl>::iterator it = m_selectedUrls.begin(); it != m_selectedUrls.end(); ++it) {
+            const int index = m_model->index(*it);
             if (index >= 0) {
                 selectedItems.insert(index);
+                m_selectedUrls.erase(it);
             }
         }
 
         selectionManager->setSelectedItems(selectedItems);
-        m_selectedUrls.clear();
     }
 }