File indexing completed on 2024-04-21 05:26:55
0001 /* 0002 * SPDX-FileCopyrightText: 2019 Mikhail Zolotukhin <zomial@protonmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <QTemporaryDir> 0010 0011 #include <KSharedConfig> 0012 0013 class QString; 0014 class QFont; 0015 0016 class ConfigValueProvider 0017 { 0018 public: 0019 ConfigValueProvider(); 0020 0021 QString fontName() const; 0022 QString iconThemeName() const; 0023 QString cursorThemeName() const; 0024 QString soundThemeName() const; 0025 bool eventSoundsEnabled() const; 0026 int cursorSize() const; 0027 bool iconsOnButtons() const; 0028 bool iconsInMenus() const; 0029 int toolbarStyle() const; 0030 bool scrollbarBehavior() const; 0031 bool preferDarkTheme() const; 0032 QString windowDecorationsButtonsOrder() const; 0033 QStringList windowDecorationsButtonsImages() const; 0034 bool enableAnimations() const; 0035 int doubleClickInterval() const; 0036 QMap<QString, QColor> colors() const; 0037 0038 // The global scale factor, as X11 doesn't support mixed-DPI 0039 // setups. It's useful both for Plasma/X11 sessions and for 0040 // XWayland apps in Plasma/Wayland sessions. 0041 // 0042 // On Wayland sessions returns 1.0 if XWayland client scaling 0043 // is disabled. 0044 double x11GlobalScaleFactor() const; 0045 0046 // The Force Font DPI setting from the fonts kcm. Returns 0 0047 // if disabled 0048 int fontDpi() const; 0049 0050 private: 0051 QString fontStyleHelper(const QFont &font) const; 0052 QString windowDecorationButtonsOrderInGtkNotation(const QString &kdeConfigValue) const; 0053 QString currentWindowDecorationPluginPath() const; 0054 0055 KSharedConfigPtr kdeglobalsConfig; 0056 KSharedConfigPtr fontsConfig; 0057 KSharedConfigPtr inputConfig; 0058 KSharedConfigPtr kwinConfig; 0059 0060 QTemporaryDir generatedCSDTempPath; 0061 };