#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>
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&)));
void TreeViewSidebarPage::setUrl(const KUrl& url)
{
- if (!url.isValid() || (url == m_url)) {
+ if (!url.isValid() || (url == SidebarPage::url())) {
return;
}
- m_url = url;
+ SidebarPage::setUrl(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);
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.
this, SLOT(expandSelectionParent()));
// expand the parent folder of the selected item
- KUrl parentUrl = m_url.upUrl();
+ KUrl parentUrl = url().upUrl();
if (!m_dirLister->url().isParentOf(parentUrl)) {
return;
}
m_treeView->setExpanded(proxyIndex, true);
// select the item and assure that the item is visible
- index = m_dirModel->indexForUrl(m_url);
+ index = m_dirModel->indexForUrl(url());
if (index.isValid()) {
proxyIndex = m_proxyModel->mapFromSource(index);
m_treeView->scrollTo(proxyIndex);