┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/treeviewsidebarpage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/treeviewsidebarpage.cpp')
-rw-r--r--src/treeviewsidebarpage.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp
index eac1e6cf4..8096b966a 100644
--- a/src/treeviewsidebarpage.cpp
+++ b/src/treeviewsidebarpage.cpp
@@ -38,6 +38,7 @@
TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) :
SidebarPage(parent),
+ m_dirListerCompleted(false),
m_dirLister(0),
m_dolphinModel(0),
m_proxyModel(0),
@@ -89,6 +90,12 @@ 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()));
+
Q_ASSERT(m_dolphinModel == 0);
m_dolphinModel = new DolphinModel(this);
m_dolphinModel->setDirLister(m_dirLister);
@@ -237,10 +244,23 @@ void TreeViewSidebarPage::loadSubTree()
// 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.
+ Q_ASSERT(m_dirListerCompleted);
m_dolphinModel->expandToUrl(m_leafDir);
}
}
+void TreeViewSidebarPage::slotDirListerStarted(const KUrl& url)
+{
+ Q_UNUSED(url);
+ m_dirListerCompleted = false;
+}
+
+void TreeViewSidebarPage::slotDirListerCompleted()
+{
+ m_dirListerCompleted = true;
+}
+
+
void TreeViewSidebarPage::loadTree(const KUrl& url)
{
Q_ASSERT(m_dirLister != 0);
@@ -257,7 +277,7 @@ void TreeViewSidebarPage::loadTree(const KUrl& url)
connect(m_dirLister, SIGNAL(completed()),
this, SLOT(loadSubTree()));
- if (m_dirLister->url() != baseUrl) {
+ if ((m_dirLister->url() != baseUrl) || !m_dirListerCompleted) {
m_dirLister->stop();
m_dirLister->openUrl(baseUrl);
} else {