From: Peter Penz Date: Sat, 29 Aug 2009 18:15:37 +0000 (+0000) Subject: restore sorting functionality in a generic way which also works for the column view X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/baaab6d17beb78e3209c2d6fa87c04f7b97abfe2?ds=sidebyside restore sorting functionality in a generic way which also works for the column view svn path=/trunk/KDE/kdebase/apps/; revision=1017106 --- diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 575bc7aa2..6f1b5dc77 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -99,14 +99,6 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, this, SLOT(slotEntered(const QModelIndex&))); const DolphinView* dolphinView = m_container->m_controller->dolphinView(); - connect(dolphinView, SIGNAL(sortingChanged(DolphinView::Sorting)), - this, SLOT(slotSortingChanged(DolphinView::Sorting))); - connect(dolphinView, SIGNAL(sortOrderChanged(Qt::SortOrder)), - this, SLOT(slotSortOrderChanged(Qt::SortOrder))); - connect(dolphinView, SIGNAL(sortFoldersFirstChanged(bool)), - this, SLOT(slotSortFoldersFirstChanged(bool))); - connect(dolphinView, SIGNAL(showHiddenFilesChanged()), - this, SLOT(slotShowHiddenFilesChanged())); connect(dolphinView, SIGNAL(showPreviewChanged()), this, SLOT(slotShowPreviewChanged())); @@ -131,8 +123,6 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, setModel(m_proxyModel); - //m_dirLister->openUrl(url, KDirLister::NoFlags); - connect(KGlobalSettings::self(), SIGNAL(kdisplayFontChanged()), this, SLOT(updateFont())); @@ -184,38 +174,6 @@ void DolphinColumnView::setActive(bool active) } } -/*void DolphinColumnView::setSorting(DolphinView::Sorting sorting) -{ - m_proxyModel->setSorting(sorting); -} - -void DolphinColumnView::setSortOrder(Qt::SortOrder order) -{ - m_proxyModel->setSortOrder(order); -} - -void DolphinColumnView::setSortFoldersFirst(bool foldersFirst) -{ - m_proxyModel->setSortFoldersFirst(foldersFirst); -} - -void DolphinColumnView::setShowHiddenFiles(bool show) -{ - if (show != m_dirLister->showingDotFiles()) { - m_dirLister->setShowingDotFiles(show); - m_dirLister->stop(); - m_dirLister->openUrl(m_url, KDirLister::Reload); - } -} - -void DolphinColumnView::setShowPreview(bool show) -{ - m_previewGenerator->setPreviewShown(show); - - m_dirLister->stop(); - m_dirLister->openUrl(m_url, KDirLister::Reload); -}*/ - void DolphinColumnView::updateBackground() { // TODO: The alpha-value 150 is copied from DolphinView::setActive(). When diff --git a/src/viewextensionsfactory.cpp b/src/viewextensionsfactory.cpp index 2a2153a94..90517f614 100644 --- a/src/viewextensionsfactory.cpp +++ b/src/viewextensionsfactory.cpp @@ -85,8 +85,15 @@ ViewExtensionsFactory::ViewExtensionsFactory(QAbstractItemView* view, view->setItemDelegate(m_fileItemDelegate); // react on view property changes - connect(controller->dolphinView(), SIGNAL(showHiddenFilesChanged()), + const DolphinView* dolphinView = controller->dolphinView(); + connect(dolphinView, SIGNAL(showHiddenFilesChanged()), this, SLOT(slotShowHiddenFilesChanged())); + connect(dolphinView, SIGNAL(sortingChanged(DolphinView::Sorting)), + this, SLOT(slotSortingChanged(DolphinView::Sorting))); + connect(dolphinView, SIGNAL(sortOrderChanged(Qt::SortOrder)), + this, SLOT(slotSortOrderChanged(Qt::SortOrder))); + connect(dolphinView, SIGNAL(sortFoldersFirstChanged(bool)), + this, SLOT(slotSortFoldersFirstChanged(bool))); view->viewport()->installEventFilter(this); } @@ -134,8 +141,7 @@ void ViewExtensionsFactory::slotShowPreviewChanged() void ViewExtensionsFactory::slotShowHiddenFilesChanged() { - DolphinSortFilterProxyModel* proxyModel = static_cast(m_view->model()); - KDirModel* dirModel = static_cast(proxyModel->sourceModel()); + KDirModel* dirModel = static_cast(proxyModel()->sourceModel()); KDirLister* dirLister = dirModel->dirLister(); dirLister->stop(); @@ -149,10 +155,30 @@ void ViewExtensionsFactory::slotShowHiddenFilesChanged() } } +void ViewExtensionsFactory::slotSortingChanged(DolphinView::Sorting sorting) +{ + proxyModel()->setSorting(sorting); +} + +void ViewExtensionsFactory::slotSortOrderChanged(Qt::SortOrder order) +{ + proxyModel()->setSortOrder(order); +} + +void ViewExtensionsFactory::slotSortFoldersFirstChanged(bool foldersFirst) +{ + proxyModel()->setSortFoldersFirst(foldersFirst); +} + void ViewExtensionsFactory::requestActivation() { m_controller->requestActivation(); } +DolphinSortFilterProxyModel* ViewExtensionsFactory::proxyModel() const +{ + return static_cast(m_view->model()); +} + #include "viewextensionsfactory.moc" diff --git a/src/viewextensionsfactory.h b/src/viewextensionsfactory.h index b218ffa92..4659b1714 100644 --- a/src/viewextensionsfactory.h +++ b/src/viewextensionsfactory.h @@ -22,8 +22,11 @@ #include +#include "dolphinview.h" + class DolphinController; class DolphinFileItemDelegate; +class DolphinSortFilterProxyModel; class DolphinViewAutoScroller; class KFilePreviewGenerator; class QModelIndex; @@ -66,8 +69,14 @@ private slots: void cancelPreviews(); void slotShowPreviewChanged(); void slotShowHiddenFilesChanged(); + void slotSortingChanged(DolphinView::Sorting sorting); + void slotSortOrderChanged(Qt::SortOrder order); + void slotSortFoldersFirstChanged(bool foldersFirst); void requestActivation(); +private: + DolphinSortFilterProxyModel* proxyModel() const; + private: QAbstractItemView* m_view; DolphinController* m_controller;