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();
}
nepomukRunning = (Nepomuk2::ResourceManager::instance()->initialized());
if (nepomukRunning) {
KConfig config("nepomukserverrc");
- indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", false);
+ indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", true);
}
#endif
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);
+ QList<KUrl>::iterator it = m_selectedUrls.begin();
+ while (it != m_selectedUrls.end()) {
+ const int index = m_model->index(*it);
if (index >= 0) {
selectedItems.insert(index);
+ it = m_selectedUrls.erase(it);
+ } else {
+ ++it;
}
}
selectionManager->setSelectedItems(selectedItems);
- m_selectedUrls.clear();
}
}
destUrls << destination;
}
markUrlsAsSelected(destUrls);
+ m_clearSelectionBeforeSelectingNewItems = true;
}
void DolphinView::updateWritableState()