1 /*
2     SPDX-FileCopyrightText: 2007-2011 Aaron Seigo <aseigo@kde.org>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #ifndef PLASMA_CORONA_P_H
8 #define PLASMA_CORONA_P_H
9 
10 #include <QTimer>
11 
12 #include <KActionCollection>
13 
14 #include "package.h"
15 
16 namespace Plasma
17 {
18 class Containment;
19 
20 class CoronaPrivate
21 {
22 public:
23     CoronaPrivate(Corona *corona);
24     ~CoronaPrivate();
25 
26     void init();
27     void toggleImmutability();
28     void saveLayout(KSharedConfigPtr cg) const;
29     void updateContainmentImmutability();
30     void containmentDestroyed(QObject *obj);
31     void syncConfig();
32     void notifyContainmentsReady();
33     void containmentReady(bool ready);
34     Containment *addContainment(const QString &name, const QVariantList &args, uint id, int lastScreen, bool delayedInit = false);
35     QList<Plasma::Containment *> importLayout(const KConfigGroup &conf, bool mergeConfig);
36 
37     Corona *q;
38     KPackage::Package package;
39     KConfigGroup desktopDefaultsConfig;
40     Types::ImmutabilityType immutability;
41     QString configName;
42     KSharedConfigPtr config;
43     QTimer *configSyncTimer;
44     QList<Containment *> containments;
45     KActionCollection actions;
46     int containmentsStarting;
47     bool editMode = false;
48 };
49 
50 }
51 
52 #endif
53