]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphindetailsview.cpp
Additionally to sorting by name, size and date it is now possible to sort by permissi...
[dolphin.git] / src / dolphindetailsview.cpp
index f434936dc0de3c7b9c9948b087934a0c972405b4..24692b5a83c20ca63c55858ec23cbb17b1e6051c 100644 (file)
@@ -21,6 +21,7 @@
 #include "dolphindetailsview.h"
 
 #include "dolphinmainwindow.h"
+#include "dolphinsortfilterproxymodel.h"
 #include "dolphinview.h"
 #include "viewproperties.h"
 
@@ -142,33 +143,21 @@ void DolphinDetailsView::synchronizeSortingState(int column)
     // The sorting has already been changed in QTreeView if this slot is
     // invoked, but Dolphin was not informed about this. This is bypassed by changing
     // the sorting and sort order to a temporary other value and readjust it again.
-    const bool update = (column == KDirModel::Name) || (column == KDirModel::Size) ||
-                        (column == KDirModel::ModifiedTime);
-    if (update) {
-        DolphinView::Sorting sorting = DolphinView::SortByName;
-        switch (column) {
-            case KDirModel::Size:         sorting = DolphinView::SortBySize; break;
-            case KDirModel::ModifiedTime: sorting = DolphinView::SortByDate; break;
-            case KDirModel::Name:
-            default: break;
-        }
-
-        const Qt::SortOrder sortOrder = header()->sortIndicatorOrder();
-
-        // temporary adjust the sorting and sort order to different values...
-        const DolphinView::Sorting tempSorting = (sorting == DolphinView::SortByName) ?
-                                                 DolphinView::SortBySize :
-                                                 DolphinView::SortByName;
-        m_dolphinView->setSorting(tempSorting);
-        const Qt::SortOrder tempSortOrder = (sortOrder == Qt::Ascending) ?
-                                            Qt::Descending : Qt::Ascending;
-        m_dolphinView->setSortOrder(tempSortOrder);
-
-        // ... so that setting them again results in storing the new setting.
-        m_dolphinView->setSorting(sorting);
-        m_dolphinView->setSortOrder(sortOrder);
-    }
-
+    DolphinView::Sorting sorting = DolphinSortFilterProxyModel::sortingForColumn(column);
+    const Qt::SortOrder sortOrder = header()->sortIndicatorOrder();
+
+    // temporary adjust the sorting and sort order to different values...
+    const DolphinView::Sorting tempSorting = (sorting == DolphinView::SortByName) ?
+                                             DolphinView::SortBySize :
+                                             DolphinView::SortByName;
+    m_dolphinView->setSorting(tempSorting);
+    const Qt::SortOrder tempSortOrder = (sortOrder == Qt::Ascending) ?
+                                        Qt::Descending : Qt::Ascending;
+    m_dolphinView->setSortOrder(tempSortOrder);
+
+    // ... so that setting them again results in storing the new setting.
+    m_dolphinView->setSorting(sorting);
+    m_dolphinView->setSortOrder(sortOrder);
 }
 
 #include "dolphindetailsview.moc"