From d432679df0c7a4bcba210fed69df0699c1de12c0 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 11 Feb 2008 18:27:49 +0000 Subject: [PATCH] apply sorting + sort order to the column view BUG: 157343 svn path=/trunk/KDE/kdebase/apps/; revision=773766 --- src/dolphincolumnview.cpp | 18 ++++++++++++++++++ src/dolphincolumnview.h | 4 ++++ src/dolphincolumnwidget.cpp | 13 +++++++++++++ src/dolphincolumnwidget.h | 4 ++++ src/dolphinview.cpp | 2 +- 5 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 7e74b7e34..907daa0d6 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -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(); diff --git a/src/dolphincolumnview.h b/src/dolphincolumnview.h index 30ac7ae71..1ebca0d67 100644 --- a/src/dolphincolumnview.h +++ b/src/dolphincolumnview.h @@ -20,6 +20,8 @@ #ifndef DOLPHINCOLUMNVIEW_H #define DOLPHINCOLUMNVIEW_H +#include "dolphinview.h" + #include #include @@ -128,6 +130,8 @@ private slots: */ void updateColumnsBackground(bool active); + void slotSortingChanged(DolphinView::Sorting sorting); + void slotSortOrderChanged(Qt::SortOrder order); void slotShowHiddenFilesChanged(); void slotShowPreviewChanged(); diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index c2ba385ad..3eed9f4b3 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -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()) { diff --git a/src/dolphincolumnwidget.h b/src/dolphincolumnwidget.h index 87c7ab577..bacbc9609 100644 --- a/src/dolphincolumnwidget.h +++ b/src/dolphincolumnwidget.h @@ -20,6 +20,8 @@ #ifndef DOLPHINCOLUMNWIDGET_H #define DOLPHINCOLUMNWIDGET_H +#include "dolphinview.h" + #include #include #include @@ -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); diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 1ed8310a6..7d3fea96a 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -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(); -- 2.47.3