]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.cpp
Revert "Revert "Configurable Show hidden files and folders last toggle""
[dolphin.git] / src / views / dolphinview.cpp
index f5c21a2c5561ecf16898f98b5aefeb5d61f9b3ed..39fd20bde82a5410c36db490b3928c1e1be8259f 100644 (file)
@@ -7,7 +7,9 @@
 
 #include "dolphinview.h"
 
+#include "dolphin_compactmodesettings.h"
 #include "dolphin_detailsmodesettings.h"
+#include "dolphin_iconsmodesettings.h"
 #include "dolphin_generalsettings.h"
 #include "dolphinitemlistview.h"
 #include "dolphinnewfilemenuobserver.h"
@@ -463,6 +465,18 @@ bool DolphinView::sortFoldersFirst() const
     return m_model->sortDirectoriesFirst();
 }
 
+void DolphinView::setSortHiddenLast(bool hiddenLast)
+{
+    if (sortHiddenLast() != hiddenLast) {
+        updateSortHiddenLast(hiddenLast);
+    }
+}
+
+bool DolphinView::sortHiddenLast() const
+{
+    return m_model->sortHiddenLast();
+}
+
 void DolphinView::setVisibleRoles(const QList<QByteArray>& roles)
 {
     const QList<QByteArray> previousRoles = roles;
@@ -1373,6 +1387,17 @@ void DolphinView::updateSortFoldersFirst(bool foldersFirst)
     Q_EMIT sortFoldersFirstChanged(foldersFirst);
 }
 
+void DolphinView::updateSortHiddenLast(bool hiddenLast)
+{
+    ViewProperties props(viewPropertiesUrl());
+    props.setSortHiddenLast(hiddenLast);
+
+    m_model->setSortHiddenLast(hiddenLast);
+
+    Q_EMIT sortHiddenLastChanged(hiddenLast);
+}
+
+
 QPair<bool, QString> DolphinView::pasteInfo() const
 {
     const QMimeData *mimeData = QApplication::clipboard()->mimeData();
@@ -1508,16 +1533,30 @@ QUrl DolphinView::openItemAsFolderUrl(const KFileItem& item, const bool browseTh
 
 void DolphinView::resetZoomLevel()
 {
-    ViewModeSettings::ViewMode mode;
-
+    // TODO : Switch to using ViewModeSettings after MR #256 is merged
+    int defaultIconSize = KIconLoader::SizeSmall;
     switch (m_mode) {
-    case IconsView:     mode = ViewModeSettings::IconsMode;   break;
-    case CompactView:   mode = ViewModeSettings::CompactMode; break;
-    case DetailsView:   mode = ViewModeSettings::DetailsMode; break;
+    case IconsView:
+        IconsModeSettings::self()->useDefaults(true);
+        defaultIconSize = IconsModeSettings::iconSize();
+        IconsModeSettings::self()->useDefaults(false);
+        break;
+    case DetailsView:
+        DetailsModeSettings::self()->useDefaults(true);
+        defaultIconSize = DetailsModeSettings::iconSize();
+        DetailsModeSettings::self()->useDefaults(false);
+        break;
+    case CompactView:
+        CompactModeSettings::self()->useDefaults(true);
+        defaultIconSize = CompactModeSettings::iconSize();
+        CompactModeSettings::self()->useDefaults(false);
+        break;
+    default:
+        Q_ASSERT(false);
+        break;
     }
-    const ViewModeSettings settings(mode);
-    const QSize iconSize = QSize(settings.iconSize(), settings.iconSize());
-    setZoomLevel(ZoomLevelInfo::zoomLevelForIconSize(iconSize));
+
+    setZoomLevel(ZoomLevelInfo::zoomLevelForIconSize(QSize(defaultIconSize, defaultIconSize)));
 }
 
 void DolphinView::observeCreatedItem(const QUrl& url)
@@ -1903,6 +1942,12 @@ void DolphinView::applyViewProperties(const ViewProperties& props)
         Q_EMIT sortFoldersFirstChanged(sortFoldersFirst);
     }
 
+    const bool sortHiddenLast = props.sortHiddenLast();
+    if (sortHiddenLast != m_model->sortHiddenLast()) {
+        m_model->setSortHiddenLast(sortHiddenLast);
+        Q_EMIT sortHiddenLastChanged(sortHiddenLast);
+    }
+
     const QList<QByteArray> visibleRoles = props.visibleRoles();
     if (visibleRoles != m_visibleRoles) {
         const QList<QByteArray> previousVisibleRoles = m_visibleRoles;