X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/802ecc92d2ac9c0dd32687b5d9e535f6b1618652..628a2bbb64d08e5aff524b264847699a1f55a611:/src/settings/viewmodes/viewmodesettings.cpp diff --git a/src/settings/viewmodes/viewmodesettings.cpp b/src/settings/viewmodes/viewmodesettings.cpp index 73a91a272..5936e2970 100644 --- a/src/settings/viewmodes/viewmodesettings.cpp +++ b/src/settings/viewmodes/viewmodesettings.cpp @@ -11,7 +11,44 @@ #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("FontWeight", QFont::Normal); + font.setWeight(static_cast(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;