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 const int weight
= group
.readEntry
<int>("FontWeight", QFont::Normal
);
38 font
.setWeight(static_cast<QFont::Weight
>(weight
));
39 font
.setItalic(group
.readEntry("ItalicFont", false));
42 // Write the new config entry
43 group
.writeEntry("ViewFont", font
);
50 ViewModeSettings::ViewModeSettings(DolphinView::Mode mode
)
54 case DolphinView::IconsView
: m_viewModeSettingsVariant
= IconsModeSettings::self(); return;
55 case DolphinView::CompactView
: m_viewModeSettingsVariant
= CompactModeSettings::self(); return;
56 case DolphinView::DetailsView
: m_viewModeSettingsVariant
= DetailsModeSettings::self(); return;
62 ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode
)
66 case ViewSettingsTab::IconsMode
: m_viewModeSettingsVariant
= IconsModeSettings::self(); return;
67 case ViewSettingsTab::CompactMode
: m_viewModeSettingsVariant
= CompactModeSettings::self(); return;
68 case ViewSettingsTab::DetailsMode
: m_viewModeSettingsVariant
= DetailsModeSettings::self(); return;
74 ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout
)
78 case KStandardItemListView::IconsLayout
: m_viewModeSettingsVariant
= IconsModeSettings::self(); return;
79 case KStandardItemListView::CompactLayout
: m_viewModeSettingsVariant
= CompactModeSettings::self(); return;
80 case KStandardItemListView::DetailsLayout
: m_viewModeSettingsVariant
= DetailsModeSettings::self(); return;
86 void ViewModeSettings::setIconSize(int iconSize
)
88 std::visit([iconSize
](auto &&v
) {
89 v
->setIconSize(iconSize
);
90 }, m_viewModeSettingsVariant
);
93 int ViewModeSettings::iconSize() const
95 return std::visit([](auto &&v
) {
97 }, m_viewModeSettingsVariant
);
100 void ViewModeSettings::setPreviewSize(int previewSize
)
102 std::visit([previewSize
](auto &&v
) {
103 v
->setPreviewSize(previewSize
);
104 }, m_viewModeSettingsVariant
);
107 int ViewModeSettings::previewSize() const
109 return std::visit([](auto &&v
) {
110 return v
->previewSize();
111 }, m_viewModeSettingsVariant
);
114 void ViewModeSettings::setUseSystemFont(bool useSystemFont
)
116 std::visit([useSystemFont
](auto &&v
) {
117 v
->setUseSystemFont(useSystemFont
);
118 }, m_viewModeSettingsVariant
);
121 bool ViewModeSettings::useSystemFont() const
123 return std::visit([](auto &&v
) {
124 return v
->useSystemFont();
125 }, m_viewModeSettingsVariant
);
128 void ViewModeSettings::setViewFont(const QFont
&font
)
130 std::visit([&font
](auto &&v
) {
131 v
->setViewFont(font
);
132 }, m_viewModeSettingsVariant
);
135 QFont
ViewModeSettings::viewFont() const
137 return std::visit([](auto &&v
) {
138 return v
->viewFont();
139 }, m_viewModeSettingsVariant
);
142 void ViewModeSettings::useDefaults(bool useDefaults
)
144 std::visit([useDefaults
](auto &&v
) {
145 v
->useDefaults(useDefaults
);
146 }, m_viewModeSettingsVariant
);
149 void ViewModeSettings::readConfig()
151 std::visit([](auto &&v
) {
153 }, m_viewModeSettingsVariant
);
156 void ViewModeSettings::save()
158 std::visit([](auto &&v
) {
160 }, m_viewModeSettingsVariant
);