]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Make sure that DolphinView's m_expanderActive member is handled
authorFrank Reininghaus <frank78ac@googlemail.com>
Tue, 16 Feb 2010 11:12:00 +0000 (11:12 +0000)
committerFrank Reininghaus <frank78ac@googlemail.com>
Tue, 16 Feb 2010 11:12:00 +0000 (11:12 +0000)
correctly, and emit DolphinDetailsViewExpander's completed() signal
only if the folder loading is really finished. This fixes possible
problems when restoring the current item and scroll position of the
view if these require a preceding folder expansion.

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

src/dolphindetailsviewexpander.cpp
src/dolphinview.cpp

index cfab3bf129c07770c5edc31bccdc74fa36f3c1e7..0f3d3fde19046e61b50022aa2e5ff47f97606828 100644 (file)
@@ -45,19 +45,13 @@ DolphinDetailsViewExpander::DolphinDetailsViewExpander(DolphinDetailsView* paren
     m_dirLister = m_dolphinModel->dirLister();
     Q_ASSERT(m_dirLister != 0);
 
-    if(!urlsToExpand.isEmpty()) {
-        // The URLs must be sorted. E.g. /home/user/ cannot be expanded before /home/
-        // because it is not known to the dir model before.
-        m_urlsToExpand = urlsToExpand.toList();
-        qSort(m_urlsToExpand);
+    // The URLs must be sorted. E.g. /home/user/ cannot be expanded before /home/
+    // because it is not known to the dir model before.
+    m_urlsToExpand = urlsToExpand.toList();
+    qSort(m_urlsToExpand);
 
-        // The dir lister must have completed the folder listing before a subfolder can be expanded.
-        connect(m_dirLister, SIGNAL(completed()), this, SLOT(slotDirListerCompleted()));
-    }
-    else {
-        // There is nothing to expand - destroy this object
-        deleteLater();
-    }
+    // The dir lister must have completed the folder listing before a subfolder can be expanded.
+    connect(m_dirLister, SIGNAL(completed()), this, SLOT(slotDirListerCompleted()));
 }
 
 DolphinDetailsViewExpander::~DolphinDetailsViewExpander()
@@ -86,8 +80,7 @@ void DolphinDetailsViewExpander::slotDirListerCompleted()
         const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex);
         m_detailsView->expand(proxyIndex);
     }
-
-    if(m_urlsToExpand.isEmpty()) {
+    else {
         emit completed();
         stop();
     }
index a2689b8c8bb664e21313f935617ccb6507381af2..3911b92bd21f811b2a6b900d462ac7ab52e8ec94 100644 (file)
@@ -1209,8 +1209,6 @@ void DolphinView::loadDirectory(const KUrl& url, bool reload)
         return;
     }
 
-    m_expanderActive = false;
-
     KDirLister* dirLister = m_viewAccessor.dirLister();
     dirLister->openUrl(url, reload ? KDirLister::Reload : KDirLister::NoFlags);