File indexing completed on 2024-04-21 16:17:34
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 #include "mode.h" 0009 0010 using namespace KScreen; 0011 class Q_DECL_HIDDEN Mode::Private 0012 { 0013 public: 0014 Private() 0015 : rate(0) 0016 { 0017 } 0018 0019 Private(const Private &other) 0020 : id(other.id) 0021 , name(other.name) 0022 , size(other.size) 0023 , rate(other.rate) 0024 { 0025 } 0026 0027 QString id; 0028 QString name; 0029 QSize size; 0030 float rate; 0031 }; 0032 0033 Mode::Mode() 0034 : QObject(nullptr) 0035 , d(new Private()) 0036 { 0037 } 0038 0039 Mode::Mode(Mode::Private *dd) 0040 : QObject() 0041 , d(dd) 0042 { 0043 } 0044 0045 Mode::~Mode() 0046 { 0047 delete d; 0048 } 0049 0050 ModePtr Mode::clone() const 0051 { 0052 return ModePtr(new Mode(new Private(*d))); 0053 } 0054 0055 const QString Mode::id() const 0056 { 0057 return d->id; 0058 } 0059 0060 void Mode::setId(const QString &id) 0061 { 0062 if (d->id == id) { 0063 return; 0064 } 0065 0066 d->id = id; 0067 0068 Q_EMIT modeChanged(); 0069 } 0070 0071 QString Mode::name() const 0072 { 0073 return d->name; 0074 } 0075 0076 void Mode::setName(const QString &name) 0077 { 0078 if (d->name == name) { 0079 return; 0080 } 0081 0082 d->name = name; 0083 0084 Q_EMIT modeChanged(); 0085 } 0086 0087 QSize Mode::size() const 0088 { 0089 return d->size; 0090 } 0091 0092 void Mode::setSize(const QSize &size) 0093 { 0094 if (d->size == size) { 0095 return; 0096 } 0097 0098 d->size = size; 0099 0100 Q_EMIT modeChanged(); 0101 } 0102 0103 float Mode::refreshRate() const 0104 { 0105 return d->rate; 0106 } 0107 0108 void Mode::setRefreshRate(float refresh) 0109 { 0110 if (qFuzzyCompare(d->rate, refresh)) { 0111 return; 0112 } 0113 0114 d->rate = refresh; 0115 0116 Q_EMIT modeChanged(); 0117 } 0118 0119 QDebug operator<<(QDebug dbg, const KScreen::ModePtr &mode) 0120 { 0121 if (mode) { 0122 dbg << "KScreen::Mode(Id:" << mode->id() << ", Size:" << mode->size() << "@" << mode->refreshRate() << ")"; 0123 } else { 0124 dbg << "KScreen::Mode(NULL)"; 0125 } 0126 return dbg; 0127 }