QAbstractItemView(parent),
m_controller(controller),
m_restoreActiveColumnFocus(false),
- m_dirListerCompleted(false),
m_index(-1),
m_contentX(0),
m_columns(),
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);
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);
}
}
-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);
}
*/
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;
private:
DolphinController* m_controller;
bool m_restoreActiveColumnFocus;
- bool m_dirListerCompleted;
int m_index;
int m_contentX;
QList<ColumnWidget*> m_columns;
TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) :
SidebarPage(parent),
- m_dirListerCompleted(false),
m_dirLister(0),
m_dolphinModel(0),
m_proxyModel(0),
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);
}
}
-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
selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select);
}
+
void TreeViewSidebarPage::loadSubTree()
{
QItemSelectionModel* selModel = m_treeView->selectionModel();
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.
}
}
-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);
* 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
*/
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