]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/viewmodes/viewmodesettings.cpp
We depend against kf5.91 => remove check
[dolphin.git] / src / settings / viewmodes / viewmodesettings.cpp
index 73a91a2723e7300b11e72b65d091d95c134174fb..5936e29701de7905acd5d1683a51ea8f5337c4c0 100644 (file)
 #include "dolphin_detailsmodesettings.h"
 #include "dolphin_iconsmodesettings.h"
 
+#include "dolphin_generalsettings.h"
+
+ViewModeSettings::ViewModeSettings()
+{
+    auto removeEntries = [](KConfigGroup &group) {
+        group.deleteEntry("FontFamily");
+        group.deleteEntry("FontWeight");
+        group.deleteEntry("ItalicFont");
+    };
+
+    KSharedConfig::Ptr config = KSharedConfig::openConfig();
+    // Migrate old config entries
+    if (GeneralSettings::version() < 202) {
+        for (const char *groupName : {"CompactMode", "DetailsMode", "IconsMode"}) {
+            KConfigGroup group = config->group(groupName);
+            const QString family = group.readEntry("FontFamily", QString{});
+            if (family.isEmpty()) {
+                removeEntries(group);
+                continue;
+            }
+
+            QFont font;
+            font.setFamily(family);
+            const int weight = group.readEntry<int>("FontWeight", QFont::Normal);
+            font.setWeight(static_cast<QFont::Weight>(weight));
+            font.setItalic(group.readEntry("ItalicFont", false));
+            removeEntries(group);
+
+            // Write the new config entry
+            group.writeEntry("ViewFont", font);
+        }
+
+        config->sync();
+    }
+}
+
 ViewModeSettings::ViewModeSettings(DolphinView::Mode mode)
+    : ViewModeSettings()
 {
     switch (mode) {
     case DolphinView::IconsView:    m_viewModeSettingsVariant = IconsModeSettings::self();   return;
@@ -23,6 +60,7 @@ ViewModeSettings::ViewModeSettings(DolphinView::Mode mode)
 }
 
 ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode)
+    : ViewModeSettings()
 {
     switch (mode) {
     case ViewSettingsTab::IconsMode:    m_viewModeSettingsVariant = IconsModeSettings::self();   return;
@@ -34,6 +72,7 @@ ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode)
 }
 
 ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout)
+    : ViewModeSettings()
 {
     switch (itemLayout) {
     case KStandardItemListView::IconsLayout:    m_viewModeSettingsVariant = IconsModeSettings::self();   return;