1 /* 2 SPDX-FileCopyrightText: 2014 Martin Klapetek <mklapetek@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include <QObject> 10 #include <QString> 11 #include <QUrl> 12 13 #include <KConfigGroup> 14 #include <KSharedConfig> 15 16 namespace KDeclarative 17 { 18 class QmlObjectSharedEngine; 19 } 20 namespace Plasma 21 { 22 } 23 24 class QTimer; 25 class ShellCorona; 26 27 class Osd : public QObject 28 { 29 Q_OBJECT 30 Q_CLASSINFO("D-Bus Interface", "org.kde.osdService") 31 public: 32 Osd(const KSharedConfig::Ptr &config, ShellCorona *corona); 33 ~Osd() override; 34 35 public Q_SLOTS: 36 void brightnessChanged(int percent); 37 void keyboardBrightnessChanged(int percent); 38 void volumeChanged(int percent); 39 void volumeChanged(int percent, int maximumPercent); 40 void microphoneVolumeChanged(int percent); 41 void mediaPlayerVolumeChanged(int percent, const QString &playerName, const QString &playerIconName); 42 void kbdLayoutChanged(const QString &layoutName); 43 void virtualDesktopChanged(const QString ¤tVirtualDesktopName); 44 void touchpadEnabledChanged(bool touchpadEnabled); 45 void wifiEnabledChanged(bool wifiEnabled); 46 void bluetoothEnabledChanged(bool bluetoothEnabled); 47 void wwanEnabledChanged(bool wwanEnabled); 48 void virtualKeyboardEnabledChanged(bool virtualKeyboardEnabled); 49 void showText(const QString &icon, const QString &text); 50 51 Q_SIGNALS: 52 void osdProgress(const QString &icon, const int percent, const QString &additionalText); 53 void osdText(const QString &icon, const QString &text); 54 55 private Q_SLOTS: 56 void hideOsd(); 57 58 private: 59 bool init(); 60 61 void showProgress(const QString &icon, const int percent, const int maximumPercent, const QString &additionalText = QString()); 62 void showOsd(); 63 64 QUrl m_osdUrl; 65 KDeclarative::QmlObjectSharedEngine *m_osdObject = nullptr; 66 QTimer *m_osdTimer = nullptr; 67 int m_timeout = 0; 68 69 KConfigGroup m_osdConfigGroup; 70 }; 71