File indexing completed on 2024-04-28 09:26:09
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 #pragma once 0009 0010 #include "kscreen_export.h" 0011 #include "types.h" 0012 0013 #include <QDebug> 0014 #include <QMetaType> 0015 #include <QObject> 0016 #include <QSize> 0017 0018 namespace KScreen 0019 { 0020 class KSCREEN_EXPORT Mode : public QObject 0021 { 0022 Q_OBJECT 0023 Q_PROPERTY(QString id READ id WRITE setId NOTIFY modeChanged) 0024 Q_PROPERTY(QString name READ name WRITE setName NOTIFY modeChanged) 0025 Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY modeChanged) 0026 Q_PROPERTY(float refreshRate READ refreshRate WRITE setRefreshRate NOTIFY modeChanged) 0027 0028 public: 0029 explicit Mode(); 0030 ~Mode() override; 0031 0032 ModePtr clone() const; 0033 0034 const QString id() const; 0035 void setId(const QString &id); 0036 0037 QString name() const; 0038 void setName(const QString &name); 0039 0040 QSize size() const; 0041 void setSize(const QSize &size); 0042 0043 float refreshRate() const; 0044 void setRefreshRate(float refresh); 0045 0046 Q_SIGNALS: 0047 void modeChanged(); 0048 0049 private: 0050 Q_DISABLE_COPY(Mode) 0051 0052 class Private; 0053 Private *const d; 0054 0055 Mode(Private *dd); 0056 }; 0057 0058 } // KSCreen namespace 0059 0060 KSCREEN_EXPORT QDebug operator<<(QDebug dbg, const KScreen::ModePtr &mode);