Warning, file /plasma/oxygen/kdecoration/oxygensettingsprovider.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 #ifndef oxygensettingsprovider_h
0002 #define oxygensettingsprovider_h
0003 /*
0004  * SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0005  * SPDX-FileCopyrightText: 2015 David Edmundson <davidedmundson@kde.org>
0006  *
0007  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0008  */
0009 
0010 #include "oxygen.h"
0011 #include "oxygendecoration.h"
0012 
0013 #include <KSharedConfig>
0014 #include <QObject>
0015 
0016 namespace Oxygen
0017 {
0018 
0019 class DecoHelper;
0020 class ShadowCache;
0021 
0022 class SettingsProvider : public QObject
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     //* destructor
0028     ~SettingsProvider();
0029 
0030     //* singleton
0031     static SettingsProvider *self();
0032 
0033     //* helper
0034     DecoHelper *helper(void) const
0035     {
0036         return m_decoHelper;
0037     }
0038 
0039     //* shadow cache
0040     ShadowCache *shadowCache(void) const
0041     {
0042         return m_shadowCache;
0043     }
0044 
0045     //* internal settings for given decoration
0046     InternalSettingsPtr internalSettings(const Decoration *) const;
0047 
0048 public Q_SLOTS:
0049 
0050     //* reconfigure
0051     void reconfigure(void);
0052 
0053 private:
0054     //* contructor
0055     SettingsProvider(void);
0056 
0057     //* default configuration
0058     InternalSettingsPtr m_defaultSettings;
0059 
0060     //* exceptions
0061     InternalSettingsList m_exceptions;
0062 
0063     //* config object
0064     KSharedConfigPtr m_config;
0065 
0066     //* decoration helper
0067     DecoHelper *m_decoHelper = nullptr;
0068 
0069     //* shadow cache
0070     ShadowCache *m_shadowCache = nullptr;
0071 
0072     //* singleton
0073     static SettingsProvider *s_self;
0074 };
0075 }
0076 
0077 #endif