1 #ifndef breezesettingsprovider_h
2 #define breezesettingsprovider_h
3 /*
4  * SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
5  *
6  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
7  */
8 
9 #include "breezedecoration.h"
10 #include "breezesettings.h"
11 #include "breeze.h"
12 
13 #include <KSharedConfig>
14 
15 #include <QObject>
16 
17 namespace Breeze
18 {
19 
20     class SettingsProvider: public QObject
21     {
22 
23         Q_OBJECT
24 
25         public:
26 
27         //* destructor
28         ~SettingsProvider();
29 
30         //* singleton
31         static SettingsProvider *self();
32 
33         //* internal settings for given decoration
34         InternalSettingsPtr internalSettings(Decoration *) const;
35 
36         public Q_SLOTS:
37 
38         //* reconfigure
39         void reconfigure();
40 
41         private:
42 
43         //* constructor
44         SettingsProvider();
45 
46         //* default configuration
47         InternalSettingsPtr m_defaultSettings;
48 
49         //* exceptions
50         InternalSettingsList m_exceptions;
51 
52         //* config object
53         KSharedConfigPtr m_config;
54 
55         //* singleton
56         static SettingsProvider *s_self;
57 
58     };
59 
60 }
61 
62 #endif
63