From: Peter Penz Date: Wed, 3 Oct 2007 22:33:47 +0000 (+0000) Subject: there is no need anymore to check whether the KDirLister is currently loading before... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/7ac3ed4e749789ae348a80638cc18906c697b306 there is no need anymore to check whether the KDirLister is currently loading before invoking KDirModel::expandToUrl() svn path=/trunk/KDE/kdebase/apps/; revision=720870 --- diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 7cb87e654..d7fc15fc8 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -389,7 +389,6 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control QAbstractItemView(parent), m_controller(controller), m_restoreActiveColumnFocus(false), - m_dirListerCompleted(false), m_index(-1), m_contentX(0), m_columns(), @@ -477,10 +476,8 @@ void DolphinColumnView::setModel(QAbstractItemModel* model) this, SLOT(triggerReloadColumns(const QModelIndex&))); KDirLister* dirLister = m_dolphinModel->dirLister(); - connect(dirLister, SIGNAL(started(const KUrl&)), - this, SLOT(slotDirListerStarted(const KUrl&))); connect(dirLister, SIGNAL(completed()), - this, SLOT(slotDirListerCompleted())); + this, SLOT(triggerExpandToActiveUrl())); activeColumn()->setModel(model); QAbstractItemView::setModel(model); @@ -786,8 +783,7 @@ void DolphinColumnView::expandToActiveUrl() Q_ASSERT(lastIndex >= 0); const KUrl& activeUrl = m_columns[lastIndex]->url(); const KUrl rootUrl = m_dolphinModel->dirLister()->url(); - const bool expand = m_dirListerCompleted - && rootUrl.isParentOf(activeUrl) + const bool expand = rootUrl.isParentOf(activeUrl) && !rootUrl.equals(activeUrl, KUrl::CompareWithoutTrailingSlash); if (expand) { m_dolphinModel->expandToUrl(activeUrl); @@ -825,15 +821,8 @@ void DolphinColumnView::updateColumns() } } -void DolphinColumnView::slotDirListerStarted(const KUrl& url) +void DolphinColumnView::triggerExpandToActiveUrl() { - Q_UNUSED(url); - m_dirListerCompleted = false; -} - -void DolphinColumnView::slotDirListerCompleted() -{ - m_dirListerCompleted = true; QMetaObject::invokeMethod(this, "expandToActiveUrl", Qt::QueuedConnection); } diff --git a/src/dolphincolumnview.h b/src/dolphincolumnview.h index 1a59e3919..4a6e6140c 100644 --- a/src/dolphincolumnview.h +++ b/src/dolphincolumnview.h @@ -118,18 +118,11 @@ private slots: */ void updateColumns(); - /** - * Is invoked when the directory lister has started the loading - * of the URL \a url and sets the internal m_dirListerCompleted - * state to false. - */ - void slotDirListerStarted(const KUrl& url); - /** * Is invoked when the directory lister has completed the loading - * and sets the internal m_dirListerCompleted state to true. + * and invokes expandToActiveUrl() asynchronously. */ - void slotDirListerCompleted(); + void triggerExpandToActiveUrl(); private: bool isZoomInPossible() const; @@ -164,7 +157,6 @@ private: private: DolphinController* m_controller; bool m_restoreActiveColumnFocus; - bool m_dirListerCompleted; int m_index; int m_contentX; QList m_columns; diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index 27d8eddb8..d3ad163c9 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -38,7 +38,6 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : SidebarPage(parent), - m_dirListerCompleted(false), m_dirLister(0), m_dolphinModel(0), m_proxyModel(0), @@ -90,18 +89,17 @@ void TreeViewSidebarPage::showEvent(QShowEvent* event) m_dirLister->setDelayedMimeTypes(true); m_dirLister->setAutoErrorHandlingEnabled(false, this); - m_dirListerCompleted = true; connect(m_dirLister, SIGNAL(started(const KUrl&)), this, SLOT(slotDirListerStarted(const KUrl&))); connect(m_dirLister, SIGNAL(completed()), - this, SLOT(slotDirListerCompleted())); + this, SLOT(triggerLoadSubTree())); Q_ASSERT(m_dolphinModel == 0); m_dolphinModel = new DolphinModel(this); m_dolphinModel->setDirLister(m_dirLister); m_dolphinModel->setDropsAllowed(DolphinModel::DropOnDirectory); connect(m_dolphinModel, SIGNAL(expand(const QModelIndex&)), - this, SLOT(triggerExpanding(const QModelIndex&))); + this, SLOT(triggerExpanding())); Q_ASSERT(m_proxyModel == 0); m_proxyModel = new DolphinSortFilterProxyModel(this); @@ -167,14 +165,20 @@ void TreeViewSidebarPage::dropUrls(const KUrl::List& urls, } } -void TreeViewSidebarPage::triggerExpanding(const QModelIndex& index) +void TreeViewSidebarPage::triggerExpanding() { - Q_UNUSED(index); // the expanding of the folders may not be done in the context // of this slot QMetaObject::invokeMethod(this, "expandToLeafDir", Qt::QueuedConnection); } +void TreeViewSidebarPage::triggerLoadSubTree() +{ + // the loading of the sub tree may not be done in the context + // of this slot + QMetaObject::invokeMethod(this, "loadSubTree", Qt::QueuedConnection); +} + void TreeViewSidebarPage::expandToLeafDir() { // expand all directories until the parent directory of m_leafDir @@ -192,6 +196,7 @@ void TreeViewSidebarPage::expandToLeafDir() selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); } + void TreeViewSidebarPage::loadSubTree() { QItemSelectionModel* selModel = m_treeView->selectionModel(); @@ -209,7 +214,7 @@ void TreeViewSidebarPage::loadSubTree() const QModelIndex proxyIndex = m_proxyModel->mapFromSource(index); m_treeView->scrollTo(proxyIndex); selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); - } else if (m_dirListerCompleted) { + } else { // Load all sub directories that need to get expanded for making // the leaf directory visible. The slot triggerExpanding() will // get invoked if the expanding has been finished. @@ -217,18 +222,6 @@ void TreeViewSidebarPage::loadSubTree() } } -void TreeViewSidebarPage::slotDirListerStarted(const KUrl& url) -{ - Q_UNUSED(url); - m_dirListerCompleted = false; -} - -void TreeViewSidebarPage::slotDirListerCompleted() -{ - m_dirListerCompleted = true; - QMetaObject::invokeMethod(this, "loadSubTree", Qt::QueuedConnection); -} - void TreeViewSidebarPage::loadTree(const KUrl& url) { Q_ASSERT(m_dirLister != 0); diff --git a/src/treeviewsidebarpage.h b/src/treeviewsidebarpage.h index 524e18322..978323f40 100644 --- a/src/treeviewsidebarpage.h +++ b/src/treeviewsidebarpage.h @@ -78,7 +78,13 @@ private slots: * Invokes expandToLeafDir() asynchronously (the expanding * may not be done in the context of this slot). */ - void triggerExpanding(const QModelIndex& index); + void triggerExpanding(); + + /** + * Invokes loadSubTree() asynchronously (the loading + * may not be done in the context of this slot). + */ + void triggerLoadSubTree(); /** * Expands all directories to make m_leafDir visible and @@ -93,19 +99,6 @@ private slots: */ void loadSubTree(); - /** - * Is invoked when the directory lister has started the loading - * of the URL \a url and sets the internal m_dirListerCompleted - * state to false. - */ - void slotDirListerStarted(const KUrl& url); - - /** - * Is invoked when the directory lister has completed the loading - * and sets the internal m_dirListerCompleted state to true. - */ - void slotDirListerCompleted(); - private: /** * Initializes the base URL of the tree and expands all