X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/581a2b1c642ae259a2e0990a5ea7bef3286cd412..bbc814c7fa79b545ceef3e6f7eaf00398eef896c:/src/treeviewsidebarpage.cpp diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index aef455c1e..19142d6ea 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -19,7 +19,7 @@ #include "treeviewsidebarpage.h" -#include "bookmarkselector.h" +#include "kbookmarkmanager.h" #include "dolphinmainwindow.h" #include "dolphinsortfilterproxymodel.h" #include "dolphinview.h" @@ -36,11 +36,6 @@ #include #include "dolphinsettings.h" -// TODO: currently when using a proxy model the strange effect occurs -// that items get duplicated. Activate the following define to have the proxy -// model: -//#define USE_PROXY_MODEL - TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : SidebarPage(parent), m_dirLister(0), @@ -59,8 +54,6 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : m_dirModel->setDirLister(m_dirLister); m_dirModel->setDropsAllowed(KDirModel::DropOnDirectory); - -#if defined(USE_PROXY_MODEL) m_proxyModel = new DolphinSortFilterProxyModel(this); m_proxyModel->setSourceModel(m_dirModel); @@ -69,10 +62,6 @@ TreeViewSidebarPage::TreeViewSidebarPage(QWidget* parent) : m_proxyModel->setSorting(DolphinView::SortByName); m_proxyModel->setSortOrder(Qt::Ascending); -#else - m_treeView = new SidebarTreeView(this); - m_treeView->setModel(m_dirModel); -#endif connect(m_treeView, SIGNAL(clicked(const QModelIndex&)), this, SLOT(updateActiveView(const QModelIndex&))); @@ -99,7 +88,8 @@ void TreeViewSidebarPage::setUrl(const KUrl& url) m_url = url; // adjust the root of the tree to the base bookmark - const KUrl baseUrl = BookmarkSelector::baseBookmark(DolphinSettings::instance().bookmarkManager(), url).url(); + KBookmarkManager* bookmarkManager = DolphinSettings::instance().bookmarkManager(); + const KUrl baseUrl = bookmarkManager->root().closestBookmark(url).url(); if (m_dirLister->url() != baseUrl) { m_dirLister->stop(); m_dirLister->openUrl(baseUrl); @@ -111,15 +101,10 @@ void TreeViewSidebarPage::setUrl(const KUrl& url) const QModelIndex index = m_dirModel->indexForUrl(url); if (index.isValid()) { -#if defined(USE_PROXY_MODEL) // the item with the given URL is already part of the model const QModelIndex proxyIndex = m_proxyModel->mapFromSource(index); m_treeView->scrollTo(proxyIndex); selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); -#else - m_treeView->scrollTo(index); - selModel->setCurrentIndex(index, QItemSelectionModel::Select); -#endif } else { // The item with the given URL is not loaded by the model yet. Iterate @@ -152,12 +137,8 @@ void TreeViewSidebarPage::contextMenuEvent(QContextMenuEvent* event) return; } -#if defined(USE_PROXY_MODEL) const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index); KFileItem* item = m_dirModel->itemForIndex(dirModelIndex); -#else - KFileItem* item = m_dirModel->itemForIndex(index); -#endif emit changeSelection(KFileItemList()); TreeViewContextMenu contextMenu(this, item); @@ -177,40 +158,25 @@ void TreeViewSidebarPage::expandSelectionParent() QModelIndex index = m_dirModel->indexForUrl(parentUrl); if (index.isValid()) { -#if defined(USE_PROXY_MODEL) QModelIndex proxyIndex = m_proxyModel->mapFromSource(index); m_treeView->setExpanded(proxyIndex, true); -#else - m_treeView->setExpanded(index, true); -#endif // select the item and assure that the item is visible index = m_dirModel->indexForUrl(m_url); if (index.isValid()) { -#if defined(USE_PROXY_MODEL) proxyIndex = m_proxyModel->mapFromSource(index); m_treeView->scrollTo(proxyIndex); QItemSelectionModel* selModel = m_treeView->selectionModel(); selModel->setCurrentIndex(proxyIndex, QItemSelectionModel::Select); -#else - m_treeView->scrollTo(index); - - QItemSelectionModel* selModel = m_treeView->selectionModel(); - selModel->setCurrentIndex(index, QItemSelectionModel::Select); -#endif } } } void TreeViewSidebarPage::updateActiveView(const QModelIndex& index) { -#if defined(USE_PROXY_MODEL) - const QModelIndex& dirIndex = m_proxyModel->mapToSource(index); + const QModelIndex dirIndex = m_proxyModel->mapToSource(index); const KFileItem* item = m_dirModel->itemForIndex(dirIndex); -#else - const KFileItem* item = m_dirModel->itemForIndex(index); -#endif if (item != 0) { const KUrl& url = item->url(); emit changeUrl(url); @@ -221,12 +187,8 @@ void TreeViewSidebarPage::dropUrls(const KUrl::List& urls, const QModelIndex& index) { if (index.isValid()) { -#if defined(USE_PROXY_MODEL) - const QModelIndex& dirIndex = m_proxyModel->mapToSource(index); + const QModelIndex dirIndex = m_proxyModel->mapToSource(index); KFileItem* item = m_dirModel->itemForIndex(dirIndex); -#else - KFileItem* item = m_dirModel->itemForIndex(index); -#endif Q_ASSERT(item != 0); if (item->isDir()) { emit urlsDropped(urls, item->url());