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