]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/viewmodes/viewmodesettings.cpp
GIT_SILENT Sync po/docbooks with svn
[dolphin.git] / src / settings / viewmodes / viewmodesettings.cpp
index 8c11bde5b348790b10550a46bab4026494593963..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;
@@ -86,59 +125,17 @@ bool ViewModeSettings::useSystemFont() const
     }, m_viewModeSettingsVariant);
 }
 
-void ViewModeSettings::setFontFamily(const QString &fontFamily)
-{
-    std::visit([&fontFamily](auto &&v) {
-        v->setFontFamily(fontFamily);
-    }, m_viewModeSettingsVariant);
-}
-
-QString ViewModeSettings::fontFamily() const
-{
-    return std::visit([](auto &&v) {
-        return v->fontFamily();
-    }, m_viewModeSettingsVariant);
-}
-
-void ViewModeSettings::setFontSize(qreal fontSize)
-{
-    std::visit([fontSize](auto &&v) {
-        v->setFontSize(fontSize);
-    }, m_viewModeSettingsVariant);
-}
-
-qreal ViewModeSettings::fontSize() const
-{
-    return std::visit([](auto &&v) {
-        return v->fontSize();
-    }, m_viewModeSettingsVariant);
-}
-
-void ViewModeSettings::setItalicFont(bool italic)
-{
-    std::visit([italic](auto &&v) {
-        v->setItalicFont(italic);
-    }, m_viewModeSettingsVariant);
-}
-
-bool ViewModeSettings::italicFont() const
-{
-    return std::visit([](auto &&v) {
-        return v->italicFont();
-    }, m_viewModeSettingsVariant);
-}
-
-void ViewModeSettings::setFontWeight(int fontWeight)
+void ViewModeSettings::setViewFont(const QFont &font)
 {
-    std::visit([fontWeight](auto &&v) {
-        v->setFontWeight(fontWeight);
+    std::visit([&font](auto &&v) {
+        v->setViewFont(font);
     }, m_viewModeSettingsVariant);
 }
 
-int ViewModeSettings::fontWeight() const
+QFont ViewModeSettings::viewFont() const
 {
     return std::visit([](auto &&v) {
-        return v->fontWeight();
+        return v->viewFont();
     }, m_viewModeSettingsVariant);
 }