m_scrollToCurrentItem(false),
m_restoredContentsPosition(),
m_selectedUrls(),
+ m_clearSelectionBeforeSelectingNewItems(false),
m_versionControlObserver(0)
{
m_topLayout = new QVBoxLayout(this);
return;
}
+ clearSelection();
+
emit urlAboutToBeChanged(url);
m_url = url;
void DolphinView::clearSelection()
{
+ m_selectedUrls.clear();
m_container->controller()->selectionManager()->clearSelection();
}
void DolphinView::observeCreatedItem(const KUrl& url)
{
- markUrlAsCurrent(url);
- markUrlsAsSelected(QList<KUrl>() << url);
+ if (m_active) {
+ clearSelection();
+ markUrlAsCurrent(url);
+ markUrlsAsSelected(QList<KUrl>() << url);
+ }
}
void DolphinView::slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl)
}
if (!m_selectedUrls.isEmpty()) {
- clearSelection();
-
KItemListSelectionManager* selectionManager = m_container->controller()->selectionManager();
+
+ if (m_clearSelectionBeforeSelectingNewItems) {
+ selectionManager->clearSelection();
+ m_clearSelectionBeforeSelectingNewItems = false;
+ }
+
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();
}
}
destUrls << destination;
}
markUrlsAsSelected(destUrls);
+ m_clearSelectionBeforeSelectingNewItems = true;
}
void DolphinView::updateWritableState()