void TreeViewSidebarPage::loadSubTree()
{
- disconnect(m_dirLister, SIGNAL(completed()),
- this, SLOT(loadSubTree()));
-
QItemSelectionModel* selModel = m_treeView->selectionModel();
selModel->clearSelection();
const QModelIndex proxyIndex = m_proxyModel->mapFromSource(index);
m_treeView->scrollTo(proxyIndex);
selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select);
- } else {
+ } else if (m_dirListerCompleted) {
// 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::slotDirListerCompleted()
{
m_dirListerCompleted = true;
+ QMetaObject::invokeMethod(this, "loadSubTree", Qt::QueuedConnection);
}
-
void TreeViewSidebarPage::loadTree(const KUrl& url)
{
Q_ASSERT(m_dirLister != 0);
baseUrl = url;
}
- connect(m_dirLister, SIGNAL(completed()),
- this, SLOT(loadSubTree()));
- if ((m_dirLister->url() != baseUrl) || !m_dirListerCompleted) {
+ if (m_dirLister->url() != baseUrl) {
m_dirLister->stop();
- m_dirLister->openUrl(baseUrl);
+ m_dirLister->openUrl(baseUrl, false, true);
} else {
loadSubTree();
}