X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/bafaf9496cc439c461e249057e5d913e9aa734fc..d6488887ecf69d7f192b94de8dce34fae0b7eb76:/src/treeviewsidebarpage.h diff --git a/src/treeviewsidebarpage.h b/src/treeviewsidebarpage.h index b7c5e25ff..978323f40 100644 --- a/src/treeviewsidebarpage.h +++ b/src/treeviewsidebarpage.h @@ -24,7 +24,7 @@ #include class KDirLister; -class KDirModel; +class DolphinModel; class DolphinSortFilterProxyModel; class SidebarTreeView; @@ -32,7 +32,7 @@ class QModelIndex; /** * @brief Shows a tree view of the directories starting from - * the currently selected bookmark. + * the currently selected place. * * The tree view is always synchronized with the currently active view * from the main window. @@ -45,6 +45,9 @@ public: TreeViewSidebarPage(QWidget* parent = 0); virtual ~TreeViewSidebarPage(); + /** @see QWidget::sizeHint() */ + virtual QSize sizeHint() const; + public slots: /** * Changes the current selection inside the tree to \a url. @@ -59,13 +62,6 @@ protected: virtual void contextMenuEvent(QContextMenuEvent* event); private slots: - /** - * Expands the tree in a way that the item with the URL m_selectedUrl - * gets visible. Is called by TreeViewSidebarPage::updateSelection() - * if the dir lister has been completed. - */ - void expandSelectionParent(); - /** * Updates the active view to the URL * which is given by the item with the index \a index. @@ -78,11 +74,46 @@ private slots: void dropUrls(const KUrl::List& urls, const QModelIndex& index); + /** + * Invokes expandToLeafDir() asynchronously (the expanding + * may not be done in the context of this slot). + */ + 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 + * adjusts the selection. + */ + void expandToLeafDir(); + + /** + * Loads the sub tree to make m_leafDir visible. Is invoked + * indirectly by loadTree() after the directory lister has + * finished loading the root items. + */ + void loadSubTree(); + +private: + /** + * Initializes the base URL of the tree and expands all + * directories until \a url. + * @param url URL of the leaf directory that should get expanded. + */ + void loadTree(const KUrl& url); + private: + bool m_dirListerCompleted; KDirLister* m_dirLister; - KDirModel* m_dirModel; + DolphinModel* m_dolphinModel; DolphinSortFilterProxyModel* m_proxyModel; SidebarTreeView* m_treeView; + KUrl m_leafDir; }; #endif // TREEVIEWSIDEBARPAGE_H