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
:
55 m_viewModeSettingsVariant
= IconsModeSettings::self();
57 case DolphinView::CompactView
:
58 m_viewModeSettingsVariant
= CompactModeSettings::self();
60 case DolphinView::DetailsView
:
61 m_viewModeSettingsVariant
= DetailsModeSettings::self();
68 ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode
)
72 case ViewSettingsTab::IconsMode
:
73 m_viewModeSettingsVariant
= IconsModeSettings::self();
75 case ViewSettingsTab::CompactMode
:
76 m_viewModeSettingsVariant
= CompactModeSettings::self();
78 case ViewSettingsTab::DetailsMode
:
79 m_viewModeSettingsVariant
= DetailsModeSettings::self();
86 ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout
)
90 case KStandardItemListView::IconsLayout
:
91 m_viewModeSettingsVariant
= IconsModeSettings::self();
93 case KStandardItemListView::CompactLayout
:
94 m_viewModeSettingsVariant
= CompactModeSettings::self();
96 case KStandardItemListView::DetailsLayout
:
97 m_viewModeSettingsVariant
= DetailsModeSettings::self();
104 void ViewModeSettings::setIconSize(int iconSize
)
107 [iconSize
](auto &&v
) {
108 v
->setIconSize(iconSize
);
110 m_viewModeSettingsVariant
);
113 int ViewModeSettings::iconSize() const
117 return v
->iconSize();
119 m_viewModeSettingsVariant
);
122 void ViewModeSettings::setPreviewSize(int previewSize
)
125 [previewSize
](auto &&v
) {
126 v
->setPreviewSize(previewSize
);
128 m_viewModeSettingsVariant
);
131 int ViewModeSettings::previewSize() const
135 return v
->previewSize();
137 m_viewModeSettingsVariant
);
140 void ViewModeSettings::setUseSystemFont(bool useSystemFont
)
143 [useSystemFont
](auto &&v
) {
144 v
->setUseSystemFont(useSystemFont
);
146 m_viewModeSettingsVariant
);
149 bool ViewModeSettings::useSystemFont() const
153 return v
->useSystemFont();
155 m_viewModeSettingsVariant
);
158 void ViewModeSettings::setViewFont(const QFont
&font
)
162 v
->setViewFont(font
);
164 m_viewModeSettingsVariant
);
167 QFont
ViewModeSettings::viewFont() const
171 return v
->viewFont();
173 m_viewModeSettingsVariant
);
176 void ViewModeSettings::useDefaults(bool useDefaults
)
179 [useDefaults
](auto &&v
) {
180 v
->useDefaults(useDefaults
);
182 m_viewModeSettingsVariant
);
185 void ViewModeSettings::readConfig()
191 m_viewModeSettingsVariant
);
194 void ViewModeSettings::save()
200 m_viewModeSettingsVariant
);