]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/viewmodes/viewmodesettings.cpp
Fix tooltip closing while mouse moves over item
[dolphin.git] / src / settings / viewmodes / viewmodesettings.cpp
1 /*
2 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
3 * SPDX-FileCopyrightText: 2021 Felix Ernst <fe.a.ernst@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8 #include "viewmodesettings.h"
9
10 #include "dolphin_compactmodesettings.h"
11 #include "dolphin_detailsmodesettings.h"
12 #include "dolphin_iconsmodesettings.h"
13
14 ViewModeSettings::ViewModeSettings(DolphinView::Mode mode)
15 {
16 switch (mode) {
17 case DolphinView::IconsView: m_viewModeSettingsVariant = IconsModeSettings::self(); return;
18 case DolphinView::CompactView: m_viewModeSettingsVariant = CompactModeSettings::self(); return;
19 case DolphinView::DetailsView: m_viewModeSettingsVariant = DetailsModeSettings::self(); return;
20 default:
21 Q_UNREACHABLE();
22 }
23 }
24
25 ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode)
26 {
27 switch (mode) {
28 case ViewSettingsTab::IconsMode: m_viewModeSettingsVariant = IconsModeSettings::self(); return;
29 case ViewSettingsTab::CompactMode: m_viewModeSettingsVariant = CompactModeSettings::self(); return;
30 case ViewSettingsTab::DetailsMode: m_viewModeSettingsVariant = DetailsModeSettings::self(); return;
31 default:
32 Q_UNREACHABLE();
33 }
34 }
35
36 ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout)
37 {
38 switch (itemLayout) {
39 case KStandardItemListView::IconsLayout: m_viewModeSettingsVariant = IconsModeSettings::self(); return;
40 case KStandardItemListView::CompactLayout: m_viewModeSettingsVariant = CompactModeSettings::self(); return;
41 case KStandardItemListView::DetailsLayout: m_viewModeSettingsVariant = DetailsModeSettings::self(); return;
42 default:
43 Q_UNREACHABLE();
44 }
45 }
46
47 void ViewModeSettings::setIconSize(int iconSize)
48 {
49 std::visit([iconSize](auto &&v) {
50 v->setIconSize(iconSize);
51 }, m_viewModeSettingsVariant);
52 }
53
54 int ViewModeSettings::iconSize() const
55 {
56 return std::visit([](auto &&v) {
57 return v->iconSize();
58 }, m_viewModeSettingsVariant);
59 }
60
61 void ViewModeSettings::setPreviewSize(int previewSize)
62 {
63 std::visit([previewSize](auto &&v) {
64 v->setPreviewSize(previewSize);
65 }, m_viewModeSettingsVariant);
66 }
67
68 int ViewModeSettings::previewSize() const
69 {
70 return std::visit([](auto &&v) {
71 return v->previewSize();
72 }, m_viewModeSettingsVariant);
73 }
74
75 void ViewModeSettings::setUseSystemFont(bool useSystemFont)
76 {
77 std::visit([useSystemFont](auto &&v) {
78 v->setUseSystemFont(useSystemFont);
79 }, m_viewModeSettingsVariant);
80 }
81
82 bool ViewModeSettings::useSystemFont() const
83 {
84 return std::visit([](auto &&v) {
85 return v->useSystemFont();
86 }, m_viewModeSettingsVariant);
87 }
88
89 void ViewModeSettings::setFontFamily(const QString &fontFamily)
90 {
91 std::visit([&fontFamily](auto &&v) {
92 v->setFontFamily(fontFamily);
93 }, m_viewModeSettingsVariant);
94 }
95
96 QString ViewModeSettings::fontFamily() const
97 {
98 return std::visit([](auto &&v) {
99 return v->fontFamily();
100 }, m_viewModeSettingsVariant);
101 }
102
103 void ViewModeSettings::setFontSize(qreal fontSize)
104 {
105 std::visit([fontSize](auto &&v) {
106 v->setFontSize(fontSize);
107 }, m_viewModeSettingsVariant);
108 }
109
110 qreal ViewModeSettings::fontSize() const
111 {
112 return std::visit([](auto &&v) {
113 return v->fontSize();
114 }, m_viewModeSettingsVariant);
115 }
116
117 void ViewModeSettings::setItalicFont(bool italic)
118 {
119 std::visit([italic](auto &&v) {
120 v->setItalicFont(italic);
121 }, m_viewModeSettingsVariant);
122 }
123
124 bool ViewModeSettings::italicFont() const
125 {
126 return std::visit([](auto &&v) {
127 return v->italicFont();
128 }, m_viewModeSettingsVariant);
129 }
130
131 void ViewModeSettings::setFontWeight(int fontWeight)
132 {
133 std::visit([fontWeight](auto &&v) {
134 v->setFontWeight(fontWeight);
135 }, m_viewModeSettingsVariant);
136 }
137
138 int ViewModeSettings::fontWeight() const
139 {
140 return std::visit([](auto &&v) {
141 return v->fontWeight();
142 }, m_viewModeSettingsVariant);
143 }
144
145 void ViewModeSettings::useDefaults(bool useDefaults)
146 {
147 std::visit([useDefaults](auto &&v) {
148 v->useDefaults(useDefaults);
149 }, m_viewModeSettingsVariant);
150 }
151
152 void ViewModeSettings::readConfig()
153 {
154 std::visit([](auto &&v) {
155 v->load();
156 }, m_viewModeSettingsVariant);
157 }
158
159 void ViewModeSettings::save()
160 {
161 std::visit([](auto &&v) {
162 return v->save();
163 }, m_viewModeSettingsVariant);
164 }