File indexing completed on 2024-04-28 16:49:41
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Sebastian Kügler <sebas@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #ifndef QSCREEN_CONFIG_H 0008 #define QSCREEN_CONFIG_H 0009 0010 #include "types.h" 0011 0012 #include <QScreen> 0013 0014 namespace KScreen 0015 { 0016 class Output; 0017 class QScreenOutput; 0018 class QScreenScreen; 0019 0020 class QScreenConfig : public QObject 0021 { 0022 Q_OBJECT 0023 0024 public: 0025 explicit QScreenConfig(QObject *parent = nullptr); 0026 ~QScreenConfig() override; 0027 0028 KScreen::ConfigPtr toKScreenConfig() const; 0029 void updateKScreenConfig(KScreen::ConfigPtr &config) const; 0030 0031 QMap<int, QScreenOutput *> outputMap() const; 0032 int outputId(const QScreen *qscreen); 0033 0034 private Q_SLOTS: 0035 void screenAdded(const QScreen *qscreen); 0036 void screenRemoved(QScreen *qscreen); 0037 0038 Q_SIGNALS: 0039 void configChanged(const KScreen::ConfigPtr &config); 0040 0041 private: 0042 QMap<int, QScreenOutput *> m_outputMap; 0043 QScreenScreen *m_screen; 0044 int m_lastOutputId = -1; 0045 bool m_blockSignals; 0046 }; 0047 0048 } // namespace 0049 0050 #endif // QSCREEN_CONFIG_H