From: Emmanuel Pescosta Date: Fri, 9 Nov 2012 13:52:32 +0000 (+0100) Subject: Fix Bug 217575 - Auto select pasted files doesn't select all files if some have been... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/ce1bdf40cf6f8c9b6c7d330df91cd79947617212?ds=inline Fix Bug 217575 - Auto select pasted files doesn't select all files if some have been skipped BUG: 217575 REVIEW: 107237 FIXED-IN: 4.9.4 --- diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 8e1a19108..c4fe2d330 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -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 selectedItems = selectionManager->selectedItems(); - foreach (const KUrl& url, m_selectedUrls) { - const int index = m_model->index(url); + for (QList::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(); } }