File indexing completed on 2025-01-19 13:55:17
0001 /* 0002 * Copyright 2018 Michail Vourlakos <mvourlakos@gmail.com> 0003 * 0004 * This file is part of Latte-Dock 0005 * 0006 * Latte-Dock is free software; you can redistribute it and/or 0007 * modify it under the terms of the GNU General Public License as 0008 * published by the Free Software Foundation; either version 2 of 0009 * the License, or (at your option) any later version. 0010 * 0011 * Latte-Dock is distributed in the hope that it will be useful, 0012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0014 * GNU General Public License for more details. 0015 * 0016 * You should have received a copy of the GNU General Public License 0017 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0018 */ 0019 0020 #ifndef PLASMASCREENPOOL_H 0021 #define PLASMASCREENPOOL_H 0022 0023 // Qt 0024 #include <QHash> 0025 #include <QMap> 0026 #include <QObject> 0027 0028 // KDE 0029 #include <KConfigGroup> 0030 0031 namespace Latte { 0032 namespace PlasmaExtended { 0033 0034 class ScreenPool: public QObject 0035 { 0036 Q_OBJECT 0037 0038 public: 0039 ScreenPool(QObject *parent = nullptr); 0040 ~ScreenPool() override; 0041 0042 int id(const QString &connector) const; 0043 QString connector(int id) const; 0044 0045 signals: 0046 void idsChanged(); 0047 0048 private slots: 0049 void load(); 0050 void insertScreenMapping(int id, const QString &connector); 0051 0052 private: 0053 QHash<int, QString> m_screens; 0054 0055 //order is important 0056 QMap<int, QString> m_connectorForId; 0057 QHash<QString, int> m_idForConnector; 0058 0059 KConfigGroup m_screensGroup; 0060 }; 0061 0062 } 0063 } 0064 0065 0066 #endif