]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/viewmodes/viewmodesettings.h
e766c80e7115fc8d4e8065572bb04406d19073ef
[dolphin.git] / src / settings / viewmodes / viewmodesettings.h
1 /*
2 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #ifndef VIEWMODESETTINGS_H
8 #define VIEWMODESETTINGS_H
9
10 #include "kitemviews/kstandarditemlistview.h"
11 #include "viewsettingstab.h"
12 #include "views/dolphinview.h"
13
14 #include <QString>
15
16 #include <variant>
17
18 class CompactModeSettings;
19 class DetailsModeSettings;
20 class IconsModeSettings;
21
22 /**
23 * @short Helper class for accessing similar properties of IconsModeSettings,
24 * CompactModeSettings and DetailsModeSettings.
25 */
26 class ViewModeSettings
27 {
28 public:
29 explicit ViewModeSettings(DolphinView::Mode mode);
30 explicit ViewModeSettings(ViewSettingsTab::Mode mode);
31 explicit ViewModeSettings(KStandardItemListView::ItemLayout itemLayout);
32
33 void setIconSize(int iconSize);
34 int iconSize() const;
35
36 void setPreviewSize(int previewSize);
37 int previewSize() const;
38
39 void setUseSystemFont(bool useSystemFont);
40 bool useSystemFont() const;
41
42 void setViewFont(const QFont &font);
43 QFont viewFont() const;
44
45 void useDefaults(bool useDefaults);
46
47 void readConfig();
48 void save();
49
50 private:
51 explicit ViewModeSettings();
52
53 std::variant<IconsModeSettings *, CompactModeSettings *, DetailsModeSettings *> m_viewModeSettingsVariant;
54 };
55
56 #endif