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