1/*
2 SPDX-FileCopyrightText: 2023 Alexander Lohnau <alexander.lohnau@gmx.de>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6#include "kabstractconfigmodule.h"
7#include <kpluginmetadata.h>
8
9class KAbstractConfigModulePrivate
10{
11public:
12 KAbstractConfigModulePrivate(const KPluginMetaData &data)
13 : m_data(data)
14 {
15 }
16 const KPluginMetaData m_data;
17
18 QString m_rootOnlyMessage;
19 QString m_errorString;
20
21 bool m_useRootOnlyMessage = false;
22 bool m_needsSave = false;
23 bool m_representsDefaults = false;
24 bool m_defaultsIndicatorVisible = false;
25 bool m_supportsInstantApply = true;
26 QString m_authActionName;
27 KAbstractConfigModule::Buttons m_buttons = KAbstractConfigModule::Help | KAbstractConfigModule::Default | KAbstractConfigModule::Apply;
28};
29
30KAbstractConfigModule::KAbstractConfigModule(QObject *parent, const KPluginMetaData &metaData)
31 : QObject(parent)
32 , d(new KAbstractConfigModulePrivate(metaData))
33{
34}
35
36KAbstractConfigModule::~KAbstractConfigModule() = default;
37
38KAbstractConfigModule::Buttons KAbstractConfigModule::buttons() const
39{
40 return d->m_buttons;
41}
42
43void KAbstractConfigModule::setButtons(const KAbstractConfigModule::Buttons buttons)
44{
45 if (d->m_buttons == buttons) {
46 return;
47 }
48
49 d->m_buttons = buttons;
50 Q_EMIT buttonsChanged();
51}
52
53bool KAbstractConfigModule::needsAuthorization() const
54{
55 return !d->m_authActionName.isEmpty();
56}
57
58QString KAbstractConfigModule::name() const
59{
60 return d->m_data.name();
61}
62
63QString KAbstractConfigModule::description() const
64{
65 return d->m_data.description();
66}
67
68void KAbstractConfigModule::setAuthActionName(const QString &name)
69{
70 if (d->m_authActionName == name) {
71 return;
72 }
73
74 d->m_authActionName = name;
75 Q_EMIT authActionNameChanged();
76}
77
78QString KAbstractConfigModule::authActionName() const
79{
80 return d->m_authActionName;
81}
82
83void KAbstractConfigModule::load()
84{
85 setNeedsSave(false);
86}
87
88void KAbstractConfigModule::save()
89{
90 setNeedsSave(false);
91}
92
93void KAbstractConfigModule::defaults()
94{
95}
96
97void KAbstractConfigModule::setNeedsSave(bool needs)
98{
99 if (needs == d->m_needsSave) {
100 return;
101 }
102
103 d->m_needsSave = needs;
104 Q_EMIT needsSaveChanged();
105}
106
107bool KAbstractConfigModule::needsSave() const
108{
109 return d->m_needsSave;
110}
111
112void KAbstractConfigModule::setRepresentsDefaults(bool defaults)
113{
114 if (defaults == d->m_representsDefaults) {
115 return;
116 }
117
118 d->m_representsDefaults = defaults;
119 Q_EMIT representsDefaultsChanged();
120}
121
122bool KAbstractConfigModule::representsDefaults() const
123{
124 return d->m_representsDefaults;
125}
126
127bool KAbstractConfigModule::defaultsIndicatorsVisible() const
128{
129 return d->m_defaultsIndicatorVisible;
130}
131
132void KAbstractConfigModule::setDefaultsIndicatorsVisible(bool visible)
133{
134 if (d->m_defaultsIndicatorVisible == visible) {
135 return;
136 }
137 d->m_defaultsIndicatorVisible = visible;
138 Q_EMIT defaultsIndicatorsVisibleChanged();
139}
140
141bool KAbstractConfigModule::supportsInstantApply() const
142{
143 return d->m_supportsInstantApply;
144}
145
146void KAbstractConfigModule::setSupportsInstantApply(bool supported)
147{
148 if (d->m_supportsInstantApply == supported) {
149 return;
150 }
151 d->m_supportsInstantApply = supported;
152 Q_EMIT supportsInstantApplyChanged();
153}
154
155KPluginMetaData KAbstractConfigModule::metaData() const
156{
157 return d->m_data;
158}
159
160#include "moc_kabstractconfigmodule.cpp"
161

source code of kcmutils/src/core/kabstractconfigmodule.cpp