┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAhmad Samir <[email protected]>2022-05-05 20:31:30 +0200
committerAhmad Samir <[email protected]>2022-05-31 14:25:13 +0000
commit5cbe6b530249ab5f5b1b9f57cf794a2b7faec269 (patch)
tree459032dd1c18b916545629784b0b941262545697 /src
parent802ecc92d2ac9c0dd32687b5d9e535f6b1618652 (diff)
Migrate old custom view font config entries
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp6
-rw-r--r--src/settings/dolphin_generalsettings.kcfg2
-rw-r--r--src/settings/viewmodes/viewmodesettings.cpp38
-rw-r--r--src/settings/viewmodes/viewmodesettings.h2
4 files changed, 45 insertions, 3 deletions
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 @@
<default>true</default>
</entry>
<entry name="Version" type="Int">
- <label>Internal version of Dolphin, containing 3 digits for major, minor, bugfix</label>
+ <label>Internal config version of Dolphin, mainly Used to determine whether an updated version of Dolphin is running, so as to migrate config entries that were removed/renamed ...etc</label>
<default>0</default>
</entry>
<entry name="ModifiedStartupSettings" type="Bool">
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<int>("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<IconsModeSettings *, CompactModeSettings *, DetailsModeSettings *> m_viewModeSettingsVariant;
};