X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c9eec20c3d8d8fa73364681389e5c682fbd3dc20..2060fa8d4676fb2d5116830c304db8fdb556d959:/src/treeviewsidebarpage.cpp diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index 19142d6ea..ef75baf95 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -19,13 +19,13 @@ #include "treeviewsidebarpage.h" -#include "kbookmarkmanager.h" #include "dolphinmainwindow.h" #include "dolphinsortfilterproxymodel.h" #include "dolphinview.h" #include "sidebartreeview.h" #include "treeviewcontextmenu.h" +#include #include #include #include @@ -37,11 +37,11 @@ #include "dolphinsettings.h" TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : - SidebarPage(parent), - m_dirLister(0), - m_dirModel(0), - m_proxyModel(0), - m_treeView(0) + SidebarPage(parent), + m_dirLister(0), + m_dirModel(0), + m_proxyModel(0), + m_treeView(0) { m_dirLister = new KDirLister(); m_dirLister->setDirOnlyMode(true); @@ -61,7 +61,7 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : m_treeView->setModel(m_proxyModel); m_proxyModel->setSorting(DolphinView::SortByName); - m_proxyModel->setSortOrder(Qt::Ascending); + m_proxyModel->setSortOrder(Qt::AscendingOrder); connect(m_treeView, SIGNAL(clicked(const QModelIndex&)), this, SLOT(updateActiveView(const QModelIndex&))); @@ -88,8 +88,14 @@ void TreeViewSidebarPage::setUrl(const KUrl& url) m_url = url; // adjust the root of the tree to the base bookmark - KBookmarkManager* bookmarkManager = DolphinSettings::instance().bookmarkManager(); - const KUrl baseUrl = bookmarkManager->root().closestBookmark(url).url(); + KFilePlacesModel* placesModel = DolphinSettings::instance().placesModel(); + KUrl baseUrl = placesModel->url(placesModel->closestItem(url)); + if (!baseUrl.isValid()) { + // it's possible that no closest item is available and hence an + // empty URL is returned + baseUrl = url; + } + if (m_dirLister->url() != baseUrl) { m_dirLister->stop(); m_dirLister->openUrl(baseUrl); @@ -105,8 +111,7 @@ void TreeViewSidebarPage::setUrl(const KUrl& url) const QModelIndex proxyIndex = m_proxyModel->mapFromSource(index); m_treeView->scrollTo(proxyIndex); selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); - } - else { + } else { // The item with the given URL is not loaded by the model yet. Iterate // backward to the base URL and trigger the loading of the items for // each hierarchy level.