File indexing completed on 2024-04-28 05:31:28

0001 /*
0002  *  SPDX-FileCopyrightText: 2012-2014 Daniel Vrátil <dvratil@redhat.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QObject>
0010 #include <QPointer>
0011 
0012 #include "config.h"
0013 #include "kscreen_export.h"
0014 
0015 namespace KScreen
0016 {
0017 class AbstractBackend;
0018 class BackendManager;
0019 
0020 class KSCREEN_EXPORT ConfigMonitor : public QObject
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     static ConfigMonitor *instance();
0026 
0027     void addConfig(const KScreen::ConfigPtr &config);
0028     void removeConfig(const KScreen::ConfigPtr &config);
0029 
0030 Q_SIGNALS:
0031     void configurationChanged();
0032 
0033 private:
0034     explicit ConfigMonitor();
0035     ~ConfigMonitor() override;
0036 
0037     Q_DISABLE_COPY(ConfigMonitor)
0038 
0039     friend BackendManager;
0040     void connectInProcessBackend(KScreen::AbstractBackend *backend);
0041 
0042     class Private;
0043     Private *const d;
0044 };
0045 
0046 } /* namespace KScreen */