File indexing completed on 2024-04-21 05:27:34
0001 /* 0002 SPDX-FileCopyrightText: 2019 Kevin Ottens <kevin.ottens@enioka.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 #pragma once 0006 0007 #include <QKeySequence> 0008 0009 #include "kscreensaversettingsbase.h" 0010 0011 class QAction; 0012 class KActionCollection; 0013 0014 class KScreenSaverSettingsStore; 0015 0016 struct WallpaperInfo { 0017 Q_PROPERTY(QString name MEMBER name CONSTANT) 0018 Q_PROPERTY(QString id MEMBER id CONSTANT) 0019 QString name; 0020 QString id; 0021 Q_GADGET 0022 }; 0023 0024 class KScreenSaverSettings : public KScreenSaverSettingsBase 0025 { 0026 Q_OBJECT 0027 Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged) 0028 public: 0029 static KScreenSaverSettings &getInstance(); 0030 0031 static QList<QKeySequence> defaultShortcuts(); 0032 static QString defaultWallpaperPlugin(); 0033 0034 ~KScreenSaverSettings() override; 0035 0036 QList<WallpaperInfo> availableWallpaperPlugins() const; 0037 0038 QKeySequence shortcut() const; 0039 void setShortcut(const QKeySequence &sequence); 0040 0041 KScreenSaverSettings(KScreenSaverSettings const &) = delete; 0042 void operator=(KScreenSaverSettings const &) = delete; 0043 0044 Q_SIGNALS: 0045 void shortcutChanged(); 0046 0047 protected: 0048 KScreenSaverSettings(QObject *parent = nullptr); 0049 0050 private: 0051 QList<WallpaperInfo> m_availableWallpaperPlugins; 0052 KScreenSaverSettingsStore *m_store; 0053 };