]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.cpp
Merge remote-tracking branch 'origin/KDE/4.10'
[dolphin.git] / src / views / dolphinview.cpp
index d1e154f68a5d1c9b5e3a8a1cd5f34dd2290c11f3..abf572fec8f873e8262010d39d72f42e23590d69 100644 (file)
@@ -102,6 +102,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
     m_restoredContentsPosition(),
     m_selectedUrls(),
     m_clearSelectionBeforeSelectingNewItems(false),
+    m_markFirstNewlySelectedItemAsCurrent(false),
     m_versionControlObserver(0)
 {
     m_topLayout = new QVBoxLayout(this);
@@ -1070,7 +1071,13 @@ void DolphinView::slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons
 
 void DolphinView::slotAboutToCreate(const KUrl::List& urls)
 {
-    m_selectedUrls << urls;
+    if (!urls.isEmpty()) {
+        if (m_markFirstNewlySelectedItemAsCurrent) {
+            markUrlAsCurrent(urls.first());
+            m_markFirstNewlySelectedItemAsCurrent = false;
+        }
+        m_selectedUrls << urls;
+    }
 }
 
 void DolphinView::slotSelectionChanged(const QSet<int>& current, const QSet<int>& previous)
@@ -1225,10 +1232,11 @@ void DolphinView::updateViewState()
                 m_view->scrollToItem(currentIndex);
                 m_scrollToCurrentItem = false;
             }
+
+            m_currentItemUrl = KUrl();
         } else {
             selectionManager->setCurrentItem(0);
         }
-        m_currentItemUrl = KUrl();
     }
 
     if (!m_restoredContentsPosition.isNull()) {
@@ -1533,6 +1541,7 @@ void DolphinView::pasteToUrl(const KUrl& url)
     KonqOperations* op = KonqOperations::doPasteV2(this, url);
     if (op) {
         m_clearSelectionBeforeSelectingNewItems = true;
+        m_markFirstNewlySelectedItemAsCurrent = true;
         connect(op, SIGNAL(aboutToCreate(KUrl::List)), this, SLOT(slotAboutToCreate(KUrl::List)));
     }
 }