File indexing completed on 2024-04-28 16:54:58
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 KDeclarative 0017 { 0018 class QmlObjectSharedEngine; 0019 } 0020 namespace Plasma 0021 { 0022 } 0023 0024 class QTimer; 0025 class ShellCorona; 0026 0027 class Osd : public QObject 0028 { 0029 Q_OBJECT 0030 Q_CLASSINFO("D-Bus Interface", "org.kde.osdService") 0031 public: 0032 Osd(const KSharedConfig::Ptr &config, ShellCorona *corona); 0033 ~Osd() override; 0034 0035 public Q_SLOTS: 0036 void brightnessChanged(int percent); 0037 void keyboardBrightnessChanged(int percent); 0038 void volumeChanged(int percent); 0039 void volumeChanged(int percent, int maximumPercent); 0040 void microphoneVolumeChanged(int percent); 0041 void mediaPlayerVolumeChanged(int percent, const QString &playerName, const QString &playerIconName); 0042 void kbdLayoutChanged(const QString &layoutName); 0043 void virtualDesktopChanged(const QString ¤tVirtualDesktopName); 0044 void touchpadEnabledChanged(bool touchpadEnabled); 0045 void wifiEnabledChanged(bool wifiEnabled); 0046 void bluetoothEnabledChanged(bool bluetoothEnabled); 0047 void wwanEnabledChanged(bool wwanEnabled); 0048 void virtualKeyboardEnabledChanged(bool virtualKeyboardEnabled); 0049 void showText(const QString &icon, const QString &text); 0050 0051 Q_SIGNALS: 0052 void osdProgress(const QString &icon, const int percent, const QString &additionalText); 0053 void osdText(const QString &icon, const QString &text); 0054 0055 private Q_SLOTS: 0056 void hideOsd(); 0057 0058 private: 0059 bool init(); 0060 0061 void showProgress(const QString &icon, const int percent, const int maximumPercent, const QString &additionalText = QString()); 0062 void showOsd(); 0063 0064 QUrl m_osdUrl; 0065 KDeclarative::QmlObjectSharedEngine *m_osdObject = nullptr; 0066 QTimer *m_osdTimer = nullptr; 0067 int m_timeout = 0; 0068 0069 KConfigGroup m_osdConfigGroup; 0070 };