From: Peter Penz Date: Tue, 27 Mar 2007 20:19:19 +0000 (+0000) Subject: use sort proxy model X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/c9eec20c3d8d8fa73364681389e5c682fbd3dc20 use sort proxy model svn path=/trunk/KDE/kdebase/apps/; revision=647265 --- diff --git a/src/treeviewsidebarpage.cpp b/src/treeviewsidebarpage.cpp index 523e21a78..19142d6ea 100644 --- a/src/treeviewsidebarpage.cpp +++ b/src/treeviewsidebarpage.cpp @@ -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&))); @@ -112,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 @@ -153,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); @@ -178,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); @@ -222,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());