File indexing completed on 2024-04-28 13:26:13
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Alejandro Fiestas Olivares <afiestas@kde.org> 0003 * SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #ifndef MODE_CONFIG_H 0009 #define MODE_CONFIG_H 0010 0011 #include "kscreen_export.h" 0012 #include "types.h" 0013 0014 #include <QDebug> 0015 #include <QMetaType> 0016 #include <QObject> 0017 #include <QSize> 0018 0019 namespace KScreen 0020 { 0021 class KSCREEN_EXPORT Mode : public QObject 0022 { 0023 Q_OBJECT 0024 Q_PROPERTY(QString id READ id WRITE setId NOTIFY modeChanged) 0025 Q_PROPERTY(QString name READ name WRITE setName NOTIFY modeChanged) 0026 Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY modeChanged) 0027 Q_PROPERTY(float refreshRate READ refreshRate WRITE setRefreshRate NOTIFY modeChanged) 0028 0029 public: 0030 explicit Mode(); 0031 ~Mode() override; 0032 0033 ModePtr clone() const; 0034 0035 const QString id() const; 0036 void setId(const QString &id); 0037 0038 QString name() const; 0039 void setName(const QString &name); 0040 0041 QSize size() const; 0042 void setSize(const QSize &size); 0043 0044 float refreshRate() const; 0045 void setRefreshRate(float refresh); 0046 0047 Q_SIGNALS: 0048 void modeChanged(); 0049 0050 private: 0051 Q_DISABLE_COPY(Mode) 0052 0053 class Private; 0054 Private *const d; 0055 0056 Mode(Private *dd); 0057 }; 0058 0059 } // KSCreen namespace 0060 0061 KSCREEN_EXPORT QDebug operator<<(QDebug dbg, const KScreen::ModePtr &mode); 0062 0063 Q_DECLARE_METATYPE(KScreen::ModeList) 0064 0065 #endif // MODE_H