]> cloud.milkyroute.net Git - dolphin.git/commitdiff
BUG: 187732
authorRahman Duran <a.rahman.duran@gmail.com>
Mon, 30 Mar 2009 07:18:32 +0000 (07:18 +0000)
committerRahman Duran <a.rahman.duran@gmail.com>
Mon, 30 Mar 2009 07:18:32 +0000 (07:18 +0000)
Make Dolphin to remember selected files after view refresh.

svn path=/trunk/KDE/kdebase/apps/; revision=946726

src/dolphinview.cpp
src/dolphinview.h

index 56fdf4ad1ae6c44ec04f3cc85d1388ba749af2e1..57a2551adf6c62f704d18756c8591f57e6d7e4ab 100644 (file)
@@ -106,6 +106,7 @@ DolphinView::DolphinView(QWidget* parent,
     m_rootUrl(),
     m_currentItemUrl(),
     m_createdItemUrl(),
+    m_selectedItems(),
     m_expandedDragSource(0)
 {
     m_topLayout = new QVBoxLayout(this);
@@ -1109,6 +1110,12 @@ void DolphinView::selectAndScrollToCreatedItem()
     m_createdItemUrl = KUrl();
 }
 
+void DolphinView::restoreSelection()
+{
+    disconnect(m_dirLister, SIGNAL(completed()), this, SLOT(restoreSelection()));
+    changeSelection(m_selectedItems);
+}
+
 void DolphinView::emitContentsMoved()
 {
     // only emit the contents moved signal if:
@@ -1183,6 +1190,11 @@ void DolphinView::loadDirectory(const KUrl& url, bool reload)
 
     m_loadingDirectory = true;
 
+    if (reload) {
+        m_selectedItems = selectedItems();
+        connect(m_dirLister, SIGNAL(completed()), this, SLOT(restoreSelection()));
+    }
+
     m_dirLister->stop();
     m_dirLister->openUrl(url, reload ? KDirLister::Reload : KDirLister::NoFlags);
 
@@ -1477,4 +1489,5 @@ QMimeData* DolphinView::selectionMimeData() const
     return m_dolphinModel->mimeData(selection.indexes());
 }
 
+
 #include "dolphinview.moc"
index c18785151cb7eda0c025d0d48f3ecfae850332f8..385bcd50f0faf6444a9d86ec180adb8f49d48281 100644 (file)
@@ -657,6 +657,11 @@ private slots:
      */
     void selectAndScrollToCreatedItem();
 
+    /**
+     * Restore selection after view refresh.
+     */
+    void restoreSelection();
+
 private:
     void loadDirectory(const KUrl& url, bool reload = false);
 
@@ -760,6 +765,7 @@ private:
     KUrl m_rootUrl;
     KUrl m_currentItemUrl;
     KUrl m_createdItemUrl; // URL for a new item that got created by the "Create New..." menu
+    KFileItemList m_selectedItems; //this is used for making the View to remember selections after F5
 
     QAbstractItemView* m_expandedDragSource;
 };