From: Frank Reininghaus Date: Tue, 16 Feb 2010 11:12:00 +0000 (+0000) Subject: Make sure that DolphinView's m_expanderActive member is handled X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/c7515e9e90c5fd81790759444b82cdc3f71fcbf6?ds=sidebyside Make sure that DolphinView's m_expanderActive member is handled 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 --- diff --git a/src/dolphindetailsviewexpander.cpp b/src/dolphindetailsviewexpander.cpp index cfab3bf12..0f3d3fde1 100644 --- a/src/dolphindetailsviewexpander.cpp +++ b/src/dolphindetailsviewexpander.cpp @@ -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(); } diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index a2689b8c8..3911b92bd 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -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);