]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/viewmodes/viewmodesettings.h
DolphinStatusbar: Fix background and margins for non-Breeze styles
[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 "views/dolphinview.h"
12 #include "viewsettingstab.h"
13
14 #include <variant>
15
16 class CompactModeSettings;
17 class DetailsModeSettings;
18 class IconsModeSettings;
19
20 /**
21 * @short Helper class for accessing similar properties of IconsModeSettings,
22 * CompactModeSettings and DetailsModeSettings.
23 */
24 class ViewModeSettings
25 {
26 public:
27 explicit ViewModeSettings(DolphinView::Mode mode);
28 explicit ViewModeSettings(ViewSettingsTab::Mode mode);
29 explicit ViewModeSettings(KStandardItemListView::ItemLayout itemLayout);
30
31 void setIconSize(int iconSize);
32 int iconSize() const;
33
34 void setPreviewSize(int previewSize);
35 int previewSize() const;
36
37 void setUseSystemFont(bool useSystemFont);
38 bool useSystemFont() const;
39
40 void setViewFont(const QFont &font);
41 QFont viewFont() const;
42
43 void useDefaults(bool useDefaults);
44
45 void readConfig();
46 void save();
47
48 private:
49 explicit ViewModeSettings();
50
51 std::variant<IconsModeSettings *, CompactModeSettings *, DetailsModeSettings *> m_viewModeSettingsVariant;
52 };
53
54 #endif