]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/viewproperties.cpp
Allow custom sorting of details-view columns
[dolphin.git] / src / views / viewproperties.cpp
index aeea67428feacaba1b36cd4144674484e91315b3..36ec6bdb087857531147b613cf115f0a5925cf7c 100644 (file)
@@ -33,8 +33,6 @@
 #include <QFile>
 #include <QFileInfo>
 
-#include "settings/dolphinsettings.h"
-
 namespace {
     // String representation to mark the additional properties of
     // the details view as customized by the user. See
@@ -47,7 +45,7 @@ ViewProperties::ViewProperties(const KUrl& url) :
     m_autoSave(true),
     m_node(0)
 {
-    GeneralSettings* settings = DolphinSettings::instance().generalSettings();
+    GeneralSettings* settings = GeneralSettings::self();
     const bool useGlobalViewProps = settings->globalViewProps();
     bool useDetailsViewWithPath = false;
 
@@ -118,7 +116,8 @@ void ViewProperties::setViewMode(DolphinView::Mode mode)
 
 DolphinView::Mode ViewProperties::viewMode() const
 {
-    return static_cast<DolphinView::Mode>(m_node->viewMode());
+    const int mode = qBound(0, m_node->viewMode(), 2);
+    return static_cast<DolphinView::Mode>(mode);
 }
 
 void ViewProperties::setPreviewsShown(bool show)
@@ -142,17 +141,17 @@ void ViewProperties::setHiddenFilesShown(bool show)
     }
 }
 
-void ViewProperties::setCategorizedSorting(bool categorized)
+void ViewProperties::setGroupedSorting(bool grouped)
 {
-    if (m_node->categorizedSorting() != categorized) {
-        m_node->setCategorizedSorting(categorized);
+    if (m_node->groupedSorting() != grouped) {
+        m_node->setGroupedSorting(grouped);
         update();
     }
 }
 
-bool ViewProperties::categorizedSorting() const
+bool ViewProperties::groupedSorting() const
 {
-    return m_node->categorizedSorting();
+    return m_node->groupedSorting();
 }
 
 bool ViewProperties::hiddenFilesShown() const
@@ -220,18 +219,7 @@ void ViewProperties::setAdditionalInfoList(const QList<DolphinView::AdditionalIn
         newInfoStringList.append(prefix + infoAccessor.value(info));
     }
 
-    // Only update the information if it has been changed
-    bool changed = oldInfoStringList.count() != newInfoStringList.count();
-    if (!changed) {
-        foreach (const QString& oldInfoString, oldInfoStringList) {
-            if (!newInfoStringList.contains(oldInfoString)) {
-                changed = true;
-                break;
-            }
-        }
-    }
-
-    if (changed) {
+    if (oldInfoStringList != newInfoStringList) {
         const bool markCustomizedDetails = (m_node->viewMode() == DolphinView::DetailsView)
                                            && !newInfoStringList.contains(CustomizedDetailsString);
         if (markCustomizedDetails) {
@@ -311,7 +299,7 @@ void ViewProperties::setDirProperties(const ViewProperties& props)
     setViewMode(props.viewMode());
     setPreviewsShown(props.previewsShown());
     setHiddenFilesShown(props.hiddenFilesShown());
-    setCategorizedSorting(props.categorizedSorting());
+    setGroupedSorting(props.groupedSorting());
     setSorting(props.sorting());
     setSortOrder(props.sortOrder());
     setSortFoldersFirst(props.sortFoldersFirst());