]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/viewproperties.cpp
Merge remote-tracking branch 'fork/work/zakharafoniam/useful-groups'
[dolphin.git] / src / views / viewproperties.cpp
index 5dbdd938eb2b796f4f8efea260207af413665af9..9c03cf598087b203d3882dbc3fea305b301c365c 100644 (file)
@@ -42,22 +42,14 @@ ViewPropertySettings *ViewProperties::loadProperties(const QString &folderPath)
         return new ViewPropertySettings(KSharedConfig::openConfig(settingsFile, KConfig::SimpleConfig));
     }
 
-    auto createTempFile = []() -> QTemporaryFile * {
-        QTemporaryFile *tempFile = new QTemporaryFile;
-        tempFile->setAutoRemove(false);
-        if (!tempFile->open()) {
-            qCWarning(DolphinDebug) << "Could not open temp file";
-            return nullptr;
-        }
-        return tempFile;
-    };
-
+    std::unique_ptr<QTemporaryFile> tempFile(new QTemporaryFile());
+    tempFile->setAutoRemove(false);
+    if (!tempFile->open()) {
+        qCWarning(DolphinDebug) << "Could not open temp file";
+        return nullptr;
+    }
     if (QFile::exists(settingsFile)) {
         // copy settings to tempfile to load them separately
-        const QTemporaryFile *tempFile = createTempFile();
-        if (!tempFile) {
-            return nullptr;
-        }
         QFile::remove(tempFile->fileName());
         QFile::copy(settingsFile, tempFile->fileName());
 
@@ -84,11 +76,6 @@ ViewPropertySettings *ViewProperties::loadProperties(const QString &folderPath)
         return nullptr;
     }
     // load view properties from xattr to temp file then loads into ViewPropertySettings
-    // clear the temp file
-    const QTemporaryFile *tempFile = createTempFile();
-    if (!tempFile) {
-        return nullptr;
-    }
     QFile outputFile(tempFile->fileName());
     outputFile.open(QIODevice::WriteOnly);
     outputFile.write(viewPropertiesString.toUtf8());
@@ -343,6 +330,32 @@ Qt::SortOrder ViewProperties::sortOrder() const
     return static_cast<Qt::SortOrder>(m_node->sortOrder());
 }
 
+void ViewProperties::setGroupRole(const QByteArray &role)
+{
+    if (m_node->groupRole() != role) {
+        m_node->setGroupRole(role);
+        update();
+    }
+}
+
+QByteArray ViewProperties::groupRole() const
+{
+    return m_node->groupRole().toLatin1();
+}
+
+void ViewProperties::setGroupOrder(Qt::SortOrder groupOrder)
+{
+    if (m_node->groupOrder() != groupOrder) {
+        m_node->setGroupOrder(groupOrder);
+        update();
+    }
+}
+
+Qt::SortOrder ViewProperties::groupOrder() const
+{
+    return static_cast<Qt::SortOrder>(m_node->groupOrder());
+}
+
 void ViewProperties::setSortFoldersFirst(bool foldersFirst)
 {
     if (m_node->sortFoldersFirst() != foldersFirst) {
@@ -369,6 +382,19 @@ bool ViewProperties::sortHiddenLast() const
     return m_node->sortHiddenLast();
 }
 
+void ViewProperties::setDynamicViewPassed(bool dynamicViewPassed)
+{
+    if (m_node->dynamicViewPassed() != dynamicViewPassed) {
+        m_node->setDynamicViewPassed(dynamicViewPassed);
+        update();
+    }
+}
+
+bool ViewProperties::dynamicViewPassed() const
+{
+    return m_node->dynamicViewPassed();
+}
+
 void ViewProperties::setVisibleRoles(const QList<QByteArray> &roles)
 {
     if (roles == visibleRoles()) {
@@ -474,6 +500,8 @@ void ViewProperties::setDirProperties(const ViewProperties &props)
     setGroupedSorting(props.groupedSorting());
     setSortRole(props.sortRole());
     setSortOrder(props.sortOrder());
+    setGroupRole(props.groupRole());
+    setGroupOrder(props.groupOrder());
     setSortFoldersFirst(props.sortFoldersFirst());
     setSortHiddenLast(props.sortHiddenLast());
     setVisibleRoles(props.visibleRoles());