File indexing completed on 2025-03-02 05:10:50
0001 // SPDX-FileCopyrightText: 2023 by Devin Lin <devin@kde.org> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <QDBusServiceWatcher> 0007 #include <QObject> 0008 0009 #include <kscreen/config.h> 0010 0011 #include "brightnesscontrolinterface.h" 0012 #include "colorssettings.h" 0013 0014 class PrepareUtil : public QObject 0015 { 0016 Q_OBJECT 0017 Q_PROPERTY(int scaling READ scaling WRITE setScaling NOTIFY scalingChanged); 0018 Q_PROPERTY(QStringList scalingOptions READ scalingOptions CONSTANT); 0019 Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged); 0020 Q_PROPERTY(int maxBrightness READ maxBrightness NOTIFY maxBrightnessChanged) 0021 Q_PROPERTY(bool brightnessAvailable READ brightnessAvailable NOTIFY brightnessAvailableChanged) 0022 Q_PROPERTY(bool usingDarkTheme READ usingDarkTheme WRITE setUsingDarkTheme NOTIFY usingDarkThemeChanged) 0023 0024 public: 0025 PrepareUtil(QObject *parent = nullptr); 0026 0027 int scaling() const; 0028 void setScaling(int scaling); 0029 0030 QStringList scalingOptions(); 0031 0032 int brightness() const; 0033 void setBrightness(int brightness); 0034 0035 int maxBrightness() const; 0036 0037 bool brightnessAvailable() const; 0038 0039 bool usingDarkTheme() const; 0040 void setUsingDarkTheme(bool usingDarkTheme); 0041 0042 Q_SIGNALS: 0043 void scalingChanged(); 0044 void brightnessChanged(); 0045 void maxBrightnessChanged(); 0046 void brightnessAvailableChanged(); 0047 void usingDarkThemeChanged(); 0048 0049 private Q_SLOTS: 0050 void fetchBrightness(); 0051 void fetchMaxBrightness(); 0052 0053 private: 0054 int m_scaling; 0055 int m_brightness; 0056 int m_maxBrightness; 0057 bool m_usingDarkTheme; 0058 0059 ColorsSettings *m_colorsSettings; 0060 KScreen::ConfigPtr m_config; 0061 org::kde::Solid::PowerManagement::Actions::BrightnessControl *m_brightnessInterface; 0062 QDBusServiceWatcher *m_brightnessInterfaceWatcher; 0063 };