From: Ahmad Samir Date: Thu, 5 May 2022 18:31:30 +0000 (+0200) Subject: Migrate old custom view font config entries X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/5cbe6b530249ab5f5b1b9f57cf794a2b7faec269 Migrate old custom view font config entries --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index e71790656..124ce4535 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -86,8 +86,10 @@ namespace { // Used for GeneralSettings::version() to determine whether - // an updated version of Dolphin is running. - const int CurrentDolphinVersion = 201; + // an updated version of Dolphin is running, so as to migrate + // removed/renamed ...etc config entries; increment it in such + // cases + const int CurrentDolphinVersion = 202; // The maximum number of entries in the back/forward popup menu const int MaxNumberOfNavigationentries = 12; // The maximum number of "Activate Tab" shortcuts diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg index 08f01d72c..b2460b11c 100644 --- a/src/settings/dolphin_generalsettings.kcfg +++ b/src/settings/dolphin_generalsettings.kcfg @@ -32,7 +32,7 @@ true - + 0 diff --git a/src/settings/viewmodes/viewmodesettings.cpp b/src/settings/viewmodes/viewmodesettings.cpp index 73a91a272..37675df29 100644 --- a/src/settings/viewmodes/viewmodesettings.cpp +++ b/src/settings/viewmodes/viewmodesettings.cpp @@ -11,7 +11,43 @@ #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); + font.setWeight(group.readEntry("FontWeight", QFont::Normal)); + 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 +59,7 @@ ViewModeSettings::ViewModeSettings(DolphinView::Mode mode) } ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode) + : ViewModeSettings() { switch (mode) { case ViewSettingsTab::IconsMode: m_viewModeSettingsVariant = IconsModeSettings::self(); return; @@ -34,6 +71,7 @@ ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode) } ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout) + : ViewModeSettings() { switch (itemLayout) { case KStandardItemListView::IconsLayout: m_viewModeSettingsVariant = IconsModeSettings::self(); return; diff --git a/src/settings/viewmodes/viewmodesettings.h b/src/settings/viewmodes/viewmodesettings.h index 6d8b3afb6..e766c80e7 100644 --- a/src/settings/viewmodes/viewmodesettings.h +++ b/src/settings/viewmodes/viewmodesettings.h @@ -48,6 +48,8 @@ public: void save(); private: + explicit ViewModeSettings(); + std::variant m_viewModeSettingsVariant; };