]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Scroll to newly pasted files.
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Tue, 23 Apr 2013 20:50:01 +0000 (22:50 +0200)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Tue, 23 Apr 2013 20:50:01 +0000 (22:50 +0200)
If multiple files are pasted, scroll to the first pasted file.

BUG: 315722
REVIEW: 109950
FIXED-IN: 4.11.0

src/views/dolphinview.cpp
src/views/dolphinview.h

index d1e154f68a5d1c9b5e3a8a1cd5f34dd2290c11f3..abf572fec8f873e8262010d39d72f42e23590d69 100644 (file)
@@ -102,6 +102,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
     m_restoredContentsPosition(),
     m_selectedUrls(),
     m_clearSelectionBeforeSelectingNewItems(false),
     m_restoredContentsPosition(),
     m_selectedUrls(),
     m_clearSelectionBeforeSelectingNewItems(false),
+    m_markFirstNewlySelectedItemAsCurrent(false),
     m_versionControlObserver(0)
 {
     m_topLayout = new QVBoxLayout(this);
     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)
 {
 
 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)
 }
 
 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_view->scrollToItem(currentIndex);
                 m_scrollToCurrentItem = false;
             }
+
+            m_currentItemUrl = KUrl();
         } else {
             selectionManager->setCurrentItem(0);
         }
         } else {
             selectionManager->setCurrentItem(0);
         }
-        m_currentItemUrl = KUrl();
     }
 
     if (!m_restoredContentsPosition.isNull()) {
     }
 
     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;
     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)));
     }
 }
         connect(op, SIGNAL(aboutToCreate(KUrl::List)), this, SLOT(slotAboutToCreate(KUrl::List)));
     }
 }
index 13cc66545533b3a34fc419889a699f26e3ad254e..e50dffcd8146c1ccae10314e41ed5916916260fa 100644 (file)
@@ -769,6 +769,7 @@ private:
 
     QList<KUrl> m_selectedUrls; // Used for making the view to remember selections after F5
     bool m_clearSelectionBeforeSelectingNewItems;
 
     QList<KUrl> m_selectedUrls; // Used for making the view to remember selections after F5
     bool m_clearSelectionBeforeSelectingNewItems;
+    bool m_markFirstNewlySelectedItemAsCurrent;
 
     VersionControlObserver* m_versionControlObserver;
 
 
     VersionControlObserver* m_versionControlObserver;