Warning, file /system/dolphin/src/settings/viewmodes/viewmodesettings.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com> 0003 * SPDX-FileCopyrightText: 2021 Felix Ernst <felixernst@kde.org> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "viewmodesettings.h" 0009 0010 #include "dolphin_compactmodesettings.h" 0011 #include "dolphin_detailsmodesettings.h" 0012 #include "dolphin_iconsmodesettings.h" 0013 0014 #include "dolphin_generalsettings.h" 0015 0016 ViewModeSettings::ViewModeSettings() 0017 { 0018 auto removeEntries = [](KConfigGroup &group) { 0019 group.deleteEntry("FontFamily"); 0020 group.deleteEntry("FontWeight"); 0021 group.deleteEntry("ItalicFont"); 0022 }; 0023 0024 KSharedConfig::Ptr config = KSharedConfig::openConfig(); 0025 // Migrate old config entries 0026 if (GeneralSettings::version() < 202) { 0027 for (const QString &groupName : {QStringLiteral("CompactMode"), QStringLiteral("DetailsMode"), QStringLiteral("IconsMode")}) { 0028 KConfigGroup group = config->group(groupName); 0029 const QString family = group.readEntry("FontFamily", QString{}); 0030 if (family.isEmpty()) { 0031 removeEntries(group); 0032 continue; 0033 } 0034 0035 QFont font; 0036 font.setFamily(family); 0037 const int weight = group.readEntry<int>("FontWeight", QFont::Normal); 0038 font.setWeight(static_cast<QFont::Weight>(weight)); 0039 font.setItalic(group.readEntry("ItalicFont", false)); 0040 removeEntries(group); 0041 0042 // Write the new config entry 0043 group.writeEntry("ViewFont", font); 0044 } 0045 0046 config->sync(); 0047 } 0048 } 0049 0050 ViewModeSettings::ViewModeSettings(DolphinView::Mode mode) 0051 : ViewModeSettings() 0052 { 0053 switch (mode) { 0054 case DolphinView::IconsView: 0055 m_viewModeSettingsVariant = IconsModeSettings::self(); 0056 return; 0057 case DolphinView::CompactView: 0058 m_viewModeSettingsVariant = CompactModeSettings::self(); 0059 return; 0060 case DolphinView::DetailsView: 0061 m_viewModeSettingsVariant = DetailsModeSettings::self(); 0062 return; 0063 default: 0064 Q_UNREACHABLE(); 0065 } 0066 } 0067 0068 ViewModeSettings::ViewModeSettings(ViewSettingsTab::Mode mode) 0069 : ViewModeSettings() 0070 { 0071 switch (mode) { 0072 case ViewSettingsTab::IconsMode: 0073 m_viewModeSettingsVariant = IconsModeSettings::self(); 0074 return; 0075 case ViewSettingsTab::CompactMode: 0076 m_viewModeSettingsVariant = CompactModeSettings::self(); 0077 return; 0078 case ViewSettingsTab::DetailsMode: 0079 m_viewModeSettingsVariant = DetailsModeSettings::self(); 0080 return; 0081 default: 0082 Q_UNREACHABLE(); 0083 } 0084 } 0085 0086 ViewModeSettings::ViewModeSettings(KStandardItemListView::ItemLayout itemLayout) 0087 : ViewModeSettings() 0088 { 0089 switch (itemLayout) { 0090 case KStandardItemListView::IconsLayout: 0091 m_viewModeSettingsVariant = IconsModeSettings::self(); 0092 return; 0093 case KStandardItemListView::CompactLayout: 0094 m_viewModeSettingsVariant = CompactModeSettings::self(); 0095 return; 0096 case KStandardItemListView::DetailsLayout: 0097 m_viewModeSettingsVariant = DetailsModeSettings::self(); 0098 return; 0099 default: 0100 Q_UNREACHABLE(); 0101 } 0102 } 0103 0104 void ViewModeSettings::setIconSize(int iconSize) 0105 { 0106 std::visit( 0107 [iconSize](auto &&v) { 0108 v->setIconSize(iconSize); 0109 }, 0110 m_viewModeSettingsVariant); 0111 } 0112 0113 int ViewModeSettings::iconSize() const 0114 { 0115 return std::visit( 0116 [](auto &&v) { 0117 return v->iconSize(); 0118 }, 0119 m_viewModeSettingsVariant); 0120 } 0121 0122 void ViewModeSettings::setPreviewSize(int previewSize) 0123 { 0124 std::visit( 0125 [previewSize](auto &&v) { 0126 v->setPreviewSize(previewSize); 0127 }, 0128 m_viewModeSettingsVariant); 0129 } 0130 0131 int ViewModeSettings::previewSize() const 0132 { 0133 return std::visit( 0134 [](auto &&v) { 0135 return v->previewSize(); 0136 }, 0137 m_viewModeSettingsVariant); 0138 } 0139 0140 void ViewModeSettings::setUseSystemFont(bool useSystemFont) 0141 { 0142 std::visit( 0143 [useSystemFont](auto &&v) { 0144 v->setUseSystemFont(useSystemFont); 0145 }, 0146 m_viewModeSettingsVariant); 0147 } 0148 0149 bool ViewModeSettings::useSystemFont() const 0150 { 0151 return std::visit( 0152 [](auto &&v) { 0153 return v->useSystemFont(); 0154 }, 0155 m_viewModeSettingsVariant); 0156 } 0157 0158 void ViewModeSettings::setViewFont(const QFont &font) 0159 { 0160 std::visit( 0161 [&font](auto &&v) { 0162 v->setViewFont(font); 0163 }, 0164 m_viewModeSettingsVariant); 0165 } 0166 0167 QFont ViewModeSettings::viewFont() const 0168 { 0169 return std::visit( 0170 [](auto &&v) { 0171 return v->viewFont(); 0172 }, 0173 m_viewModeSettingsVariant); 0174 } 0175 0176 void ViewModeSettings::useDefaults(bool useDefaults) 0177 { 0178 std::visit( 0179 [useDefaults](auto &&v) { 0180 v->useDefaults(useDefaults); 0181 }, 0182 m_viewModeSettingsVariant); 0183 } 0184 0185 void ViewModeSettings::readConfig() 0186 { 0187 std::visit( 0188 [](auto &&v) { 0189 v->load(); 0190 }, 0191 m_viewModeSettingsVariant); 0192 } 0193 0194 void ViewModeSettings::save() 0195 { 0196 std::visit( 0197 [](auto &&v) { 0198 return v->save(); 0199 }, 0200 m_viewModeSettingsVariant); 0201 }