2 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
3 * SPDX-FileCopyrightText: 2021 Felix Ernst <fe.a.ernst@gmail.com>
5 * SPDX-License-Identifier: GPL-2.0-or-later
8 #include "viewmodesettings.h"
10 #include "dolphin_compactmodesettings.h"
11 #include "dolphin_detailsmodesettings.h"
12 #include "dolphin_iconsmodesettings.h"
14 #include "dolphin_generalsettings.h"
16 ViewModeSettings::ViewModeSettings()
18 auto removeEntries
= [](KConfigGroup
&group
) {
19 group
.deleteEntry("FontFamily");
20 group
.deleteEntry("FontWeight");
21 group
.deleteEntry("ItalicFont");
24 KSharedConfig::Ptr config
= KSharedConfig::openConfig();
25 // Migrate old config entries
26 if (GeneralSettings::version() < 202) {
27 for (const char *groupName
: {"CompactMode", "DetailsMode", "IconsMode"}) {
28 KConfigGroup group
= config
->group(groupName
);
29 const QString family
= group
.readEntry("FontFamily", QString
{});
30 if (family
.isEmpty()) {
36 font
.setFamily(family
);
37 font
.setWeight(group
.readEntry
<int>("FontWeight", QFont::Normal
));
38 font
.setItalic(group
.readEntry("ItalicFont", false));
41 // Write the new config entry
42 group
.writeEntry("ViewFont", font
);
49 ViewModeSettings::ViewModeSettings(DolphinView::Mode mode
)
53 case DolphinView::IconsView
: m_viewModeSettingsVariant
= IconsModeSettings::self(); return;
54 case DolphinView::CompactView
: m_viewModeSettingsVariant
= CompactModeSettings::self(); return;
55 case DolphinView::DetailsView
: m_viewModeSettingsVariant
= DetailsModeSettings::self(); return;
61 ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode
)
65 case ViewSettingsTab::IconsMode
: m_viewModeSettingsVariant
= IconsModeSettings::self(); return;
66 case ViewSettingsTab::CompactMode
: m_viewModeSettingsVariant
= CompactModeSettings::self(); return;
67 case ViewSettingsTab::DetailsMode
: m_viewModeSettingsVariant
= DetailsModeSettings::self(); return;
73 ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout
)
77 case KStandardItemListView::IconsLayout
: m_viewModeSettingsVariant
= IconsModeSettings::self(); return;
78 case KStandardItemListView::CompactLayout
: m_viewModeSettingsVariant
= CompactModeSettings::self(); return;
79 case KStandardItemListView::DetailsLayout
: m_viewModeSettingsVariant
= DetailsModeSettings::self(); return;
85 void ViewModeSettings::setIconSize(int iconSize
)
87 std::visit([iconSize
](auto &&v
) {
88 v
->setIconSize(iconSize
);
89 }, m_viewModeSettingsVariant
);
92 int ViewModeSettings::iconSize() const
94 return std::visit([](auto &&v
) {
96 }, m_viewModeSettingsVariant
);
99 void ViewModeSettings::setPreviewSize(int previewSize
)
101 std::visit([previewSize
](auto &&v
) {
102 v
->setPreviewSize(previewSize
);
103 }, m_viewModeSettingsVariant
);
106 int ViewModeSettings::previewSize() const
108 return std::visit([](auto &&v
) {
109 return v
->previewSize();
110 }, m_viewModeSettingsVariant
);
113 void ViewModeSettings::setUseSystemFont(bool useSystemFont
)
115 std::visit([useSystemFont
](auto &&v
) {
116 v
->setUseSystemFont(useSystemFont
);
117 }, m_viewModeSettingsVariant
);
120 bool ViewModeSettings::useSystemFont() const
122 return std::visit([](auto &&v
) {
123 return v
->useSystemFont();
124 }, m_viewModeSettingsVariant
);
127 void ViewModeSettings::setViewFont(const QFont
&font
)
129 std::visit([&font
](auto &&v
) {
130 v
->setViewFont(font
);
131 }, m_viewModeSettingsVariant
);
134 QFont
ViewModeSettings::viewFont() const
136 return std::visit([](auto &&v
) {
137 return v
->viewFont();
138 }, m_viewModeSettingsVariant
);
141 void ViewModeSettings::useDefaults(bool useDefaults
)
143 std::visit([useDefaults
](auto &&v
) {
144 v
->useDefaults(useDefaults
);
145 }, m_viewModeSettingsVariant
);
148 void ViewModeSettings::readConfig()
150 std::visit([](auto &&v
) {
152 }, m_viewModeSettingsVariant
);
155 void ViewModeSettings::save()
157 std::visit([](auto &&v
) {
159 }, m_viewModeSettingsVariant
);