File indexing completed on 2024-05-12 17:18:55
0001 /* 0002 * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef VIEWMODESETTINGS_H 0008 #define VIEWMODESETTINGS_H 0009 0010 #include "kitemviews/kstandarditemlistview.h" 0011 #include "views/dolphinview.h" 0012 #include "viewsettingstab.h" 0013 0014 #include <variant> 0015 0016 class CompactModeSettings; 0017 class DetailsModeSettings; 0018 class IconsModeSettings; 0019 0020 /** 0021 * @short Helper class for accessing similar properties of IconsModeSettings, 0022 * CompactModeSettings and DetailsModeSettings. 0023 */ 0024 class ViewModeSettings 0025 { 0026 public: 0027 explicit ViewModeSettings(DolphinView::Mode mode); 0028 explicit ViewModeSettings(ViewSettingsTab::Mode mode); 0029 explicit ViewModeSettings(KStandardItemListView::ItemLayout itemLayout); 0030 0031 void setIconSize(int iconSize); 0032 int iconSize() const; 0033 0034 void setPreviewSize(int previewSize); 0035 int previewSize() const; 0036 0037 void setUseSystemFont(bool useSystemFont); 0038 bool useSystemFont() const; 0039 0040 void setViewFont(const QFont &font); 0041 QFont viewFont() const; 0042 0043 void useDefaults(bool useDefaults); 0044 0045 void readConfig(); 0046 void save(); 0047 0048 private: 0049 explicit ViewModeSettings(); 0050 0051 std::variant<IconsModeSettings *, CompactModeSettings *, DetailsModeSettings *> m_viewModeSettingsVariant; 0052 }; 0053 0054 #endif