]> cloud.milkyroute.net Git - dolphin.git/commitdiff
restore sorting functionality in a generic way which also works for the column view
authorPeter Penz <peter.penz19@gmail.com>
Sat, 29 Aug 2009 18:15:37 +0000 (18:15 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 29 Aug 2009 18:15:37 +0000 (18:15 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1017106

src/dolphincolumnview.cpp
src/viewextensionsfactory.cpp
src/viewextensionsfactory.h

index 575bc7aa2f73fed8f3f813cf63128cfae46e2d27..6f1b5dc77fbfca780e22a1145ad5ac115272dfde 100644 (file)
@@ -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
index 2a2153a94496101f00c8d3e6c88ccc9a8ed49b45..90517f61405a2ca99b04d6b6440787bc14fcaf9b 100644 (file)
@@ -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<DolphinSortFilterProxyModel*>(m_view->model());
-    KDirModel* dirModel = static_cast<KDirModel*>(proxyModel->sourceModel());
+    KDirModel* dirModel = static_cast<KDirModel*>(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<DolphinSortFilterProxyModel*>(m_view->model());
+}
+
 #include "viewextensionsfactory.moc"
 
index b218ffa92e344004171236ef28942b58ae43c394..4659b1714eaae368fed2d2056dece55b11d1ebce 100644 (file)
 
 #include <QObject>
 
+#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;