]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/treeviewsidebarpage.cpp
cleanup
[dolphin.git] / src / treeviewsidebarpage.cpp
index 19142d6ea45b64e9b739368f01bd3cb9598a0777..ef75baf952749aee02bc1573075fc4c01b001e53 100644 (file)
 
 #include "treeviewsidebarpage.h"
 
-#include "kbookmarkmanager.h"
 #include "dolphinmainwindow.h"
 #include "dolphinsortfilterproxymodel.h"
 #include "dolphinview.h"
 #include "sidebartreeview.h"
 #include "treeviewcontextmenu.h"
 
+#include <kfileplacesmodel.h>
 #include <kdirlister.h>
 #include <kdirmodel.h>
 #include <kfileitem.h>
 #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.