File indexing completed on 2024-05-05 09:56:36
0001 /* 0002 SPDX-FileCopyrightText: 2014 Martin Klapetek <mklapetek@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QObject> 0010 #include <QString> 0011 #include <QUrl> 0012 0013 #include <KConfigGroup> 0014 #include <KSharedConfig> 0015 0016 namespace PlasmaQuick 0017 { 0018 class SharedQmlEngine; 0019 } 0020 0021 class QTimer; 0022 class ShellCorona; 0023 0024 class Osd : public QObject 0025 { 0026 Q_OBJECT 0027 Q_CLASSINFO("D-Bus Interface", "org.kde.osdService") 0028 public: 0029 Osd(const KSharedConfig::Ptr &config, ShellCorona *corona); 0030 ~Osd() override; 0031 0032 public Q_SLOTS: 0033 void brightnessChanged(int percent); 0034 void keyboardBrightnessChanged(int percent); 0035 void volumeChanged(int percent); 0036 void volumeChanged(int percent, int maximumPercent); 0037 void microphoneVolumeChanged(int percent); 0038 void mediaPlayerVolumeChanged(int percent, const QString &playerName, const QString &playerIconName); 0039 void kbdLayoutChanged(const QString &layoutName); 0040 void virtualDesktopChanged(const QString ¤tVirtualDesktopName); 0041 void touchpadEnabledChanged(bool touchpadEnabled); 0042 void wifiEnabledChanged(bool wifiEnabled); 0043 void bluetoothEnabledChanged(bool bluetoothEnabled); 0044 void wwanEnabledChanged(bool wwanEnabled); 0045 void virtualKeyboardEnabledChanged(bool virtualKeyboardEnabled); 0046 void showText(const QString &icon, const QString &text); 0047 0048 Q_SIGNALS: 0049 void osdProgress(const QString &icon, const int percent, const int maximumPercent, const QString &additionalText); 0050 void osdText(const QString &icon, const QString &text); 0051 0052 private Q_SLOTS: 0053 void hideOsd(); 0054 0055 private: 0056 bool init(); 0057 0058 void showProgress(const QString &icon, const int percent, const int maximumPercent, const QString &additionalText = QString()); 0059 void showOsd(); 0060 0061 QUrl m_osdUrl; 0062 PlasmaQuick::SharedQmlEngine *m_osdObject = nullptr; 0063 QTimer *m_osdTimer = nullptr; 0064 int m_timeout = 0; 0065 0066 KConfigGroup m_osdConfigGroup; 0067 };