]> cloud.milkyroute.net Git - dolphin.git/commitdiff
apply sorting + sort order to the column view
authorPeter Penz <peter.penz19@gmail.com>
Mon, 11 Feb 2008 18:27:49 +0000 (18:27 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Mon, 11 Feb 2008 18:27:49 +0000 (18:27 +0000)
BUG: 157343

svn path=/trunk/KDE/kdebase/apps/; revision=773766

src/dolphincolumnview.cpp
src/dolphincolumnview.h
src/dolphincolumnwidget.cpp
src/dolphincolumnwidget.h
src/dolphinview.cpp

index 7e74b7e3452e86b8efbe6da71f17eb2360ad5733..907daa0d67bb855c5390a7346c1ac39a6e3ce10e 100644 (file)
@@ -59,6 +59,10 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control
             this, SLOT(updateColumnsBackground(bool)));
 
     const DolphinView* view = controller->dolphinView();
+    connect(view, SIGNAL(sortingChanged(DolphinView::Sorting)),
+            this, SLOT(slotSortingChanged(DolphinView::Sorting)));
+    connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)),
+            this, SLOT(slotSortOrderChanged(Qt::SortOrder)));
     connect(view, SIGNAL(showHiddenFilesChanged()),
             this, SLOT(slotShowHiddenFilesChanged()));
     connect(view, SIGNAL(showPreviewChanged()),
@@ -408,6 +412,20 @@ void DolphinColumnView::updateColumnsBackground(bool active)
     }
 }
 
+void DolphinColumnView::slotSortingChanged(DolphinView::Sorting sorting)
+{
+    foreach (DolphinColumnWidget* column, m_columns) {
+        column->setSorting(sorting);
+    }
+}
+
+void DolphinColumnView::slotSortOrderChanged(Qt::SortOrder order)
+{
+    foreach (DolphinColumnWidget* column, m_columns) {
+        column->setSortOrder(order);
+    }
+}
+
 void DolphinColumnView::slotShowHiddenFilesChanged()
 {
     const bool show = m_controller->dolphinView()->showHiddenFiles();
index 30ac7ae710d8fda6b40514d04fea8764971ad594..1ebca0d674981692561cd84dc8716b26a7eafc44 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef DOLPHINCOLUMNVIEW_H
 #define DOLPHINCOLUMNVIEW_H
 
+#include "dolphinview.h"
+
 #include <kurl.h>
 
 #include <QAbstractItemView>
@@ -128,6 +130,8 @@ private slots:
      */
     void updateColumnsBackground(bool active);
 
+    void slotSortingChanged(DolphinView::Sorting sorting);
+    void slotSortOrderChanged(Qt::SortOrder order);
     void slotShowHiddenFilesChanged();
     void slotShowPreviewChanged();
 
index c2ba385ad0b635878c18f337c153a3f2fe9fc6ab..3eed9f4b3f5581aaa62b9a0d75a38a2a6600b59c 100644 (file)
@@ -118,6 +118,9 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent,
     m_proxyModel = new DolphinSortFilterProxyModel(this);
     m_proxyModel->setSourceModel(m_dolphinModel);
     m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+    const DolphinView* dolphinView = m_view->m_controller->dolphinView();
+    m_proxyModel->setSorting(dolphinView->sorting());
+    m_proxyModel->setSortOrder(dolphinView->sortOrder());
 
     setModel(m_proxyModel);
     const bool useSelManager = KGlobalSettings::singleClick() &&
@@ -173,6 +176,16 @@ void DolphinColumnWidget::reload()
     m_dirLister->openUrl(m_url, KDirLister::Reload);
 }
 
+void DolphinColumnWidget::setSorting(DolphinView::Sorting sorting)
+{
+    m_proxyModel->setSorting(sorting);
+}
+
+void DolphinColumnWidget::setSortOrder(Qt::SortOrder order)
+{
+    m_proxyModel->setSortOrder(order);
+}
+
 void DolphinColumnWidget::setShowHiddenFiles(bool show)
 {
     if (show != m_dirLister->showingDotFiles()) {
index 87c7ab5771b8f3d2fba1aec2513e290a099785ca..bacbc96092e5b515157c4e77262e5dd21e6a7515 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef DOLPHINCOLUMNWIDGET_H
 #define DOLPHINCOLUMNWIDGET_H
 
+#include "dolphinview.h"
+
 #include <QFont>
 #include <QListView>
 #include <QSize>
@@ -79,6 +81,8 @@ public:
     /** Reloads the directory DolphinColumnWidget::url(). */
     void reload();
 
+    void setSorting(DolphinView::Sorting sorting);
+    void setSortOrder(Qt::SortOrder order);
     void setShowHiddenFiles(bool show);
     void setShowPreview(bool show);
 
index 1ed8310a6404bc3bea0d6ee9b9dbd141b5cbbbd9..7d3fea96a85fd70b48a3018cce02f589ecba6336 100644 (file)
@@ -594,7 +594,7 @@ void DolphinView::loadDirectory(const KUrl& url, bool reload)
 KUrl DolphinView::viewPropertiesUrl() const
 {
     if (isColumnViewActive()) {
-        return m_dirLister->url();
+        return m_columnView->rootUrl();
     }
 
     return url();