]> cloud.milkyroute.net Git - dolphin.git/commitdiff
[ViewProperties] Consider existing roles in convertAdditionalInfo
authorKai Uwe Broulik <kde@privat.broulik.de>
Fri, 25 Mar 2022 17:28:54 +0000 (18:28 +0100)
committerKai Uwe Broulik <kde@privat.broulik.de>
Mon, 28 Mar 2022 12:52:15 +0000 (14:52 +0200)
Otherwise all default overrides for roles we perform in this class are moot.

src/views/viewproperties.cpp

index 2bfdfe81b0d8c2da9aa70b6d8f695a24f53cda33..0274d509549e48f6a63b476b7f5df826df0619ed 100644 (file)
@@ -430,7 +430,7 @@ QString ViewProperties::viewModePrefix() const
 
 void ViewProperties::convertAdditionalInfo()
 {
-    QStringList visibleRoles;
+    QStringList visibleRoles = m_node->visibleRoles();
 
     const QStringList additionalInfo = m_node->additionalInfo();
     if (!additionalInfo.isEmpty()) {
@@ -438,7 +438,7 @@ void ViewProperties::convertAdditionalInfo()
         // to Icons_size, Details_date, ... where the suffix just represents
         // the internal role. One special-case must be handled: "LinkDestination"
         // has been used for "destination".
-        visibleRoles.reserve(additionalInfo.count());
+        visibleRoles.reserve(visibleRoles.count() + additionalInfo.count());
         for (const QString& info : additionalInfo) {
             QString visibleRole = info;
             int index = visibleRole.indexOf('_');
@@ -450,7 +450,9 @@ void ViewProperties::convertAdditionalInfo()
                     visibleRole[index] = visibleRole[index].toLower();
                 }
             }
-            visibleRoles.append(visibleRole);
+            if (!visibleRoles.contains(visibleRole)) {
+                visibleRoles.append(visibleRole);
+            }
         }
     }