Changeset View
Changeset View
Standalone View
Standalone View
src/kcmodule.cpp
Show All 37 Lines | |||||
38 | { | 38 | { | ||
39 | public: | 39 | public: | ||
40 | KCModulePrivate(): | 40 | KCModulePrivate(): | ||
41 | _buttons(KCModule::Help | KCModule::Default | KCModule::Apply), | 41 | _buttons(KCModule::Help | KCModule::Default | KCModule::Apply), | ||
42 | _about(nullptr), | 42 | _about(nullptr), | ||
43 | _useRootOnlyMessage(false), | 43 | _useRootOnlyMessage(false), | ||
44 | _firstshow(true), | 44 | _firstshow(true), | ||
45 | _needsAuthorization(false), | 45 | _needsAuthorization(false), | ||
46 | _unmanagedWidgetChangeState(false) | 46 | _unmanagedWidgetChangeState(false), | ||
47 | _unmanagedWidgetDefaultState(false), | ||||
48 | _unmanagedWidgetDefaultStateCalled(false) | ||||
47 | { } | 49 | { } | ||
48 | 50 | | |||
49 | void authStatusChanged(int status); | 51 | void authStatusChanged(int status); | ||
50 | 52 | | |||
51 | KCModule::Buttons _buttons; | 53 | KCModule::Buttons _buttons; | ||
52 | const KAboutData *_about; | 54 | const KAboutData *_about; | ||
53 | QString _rootOnlyMessage; | 55 | QString _rootOnlyMessage; | ||
54 | QList<KConfigDialogManager *> managers; | 56 | QList<KConfigDialogManager *> managers; | ||
Show All 9 Lines | 65 | #ifndef KCONFIGWIDGETS_NO_KAUTH | |||
64 | KAuth::Action _authAction; | 66 | KAuth::Action _authAction; | ||
65 | #endif | 67 | #endif | ||
66 | 68 | | |||
67 | // this member is used to record the state on non-automatically | 69 | // this member is used to record the state on non-automatically | ||
68 | // managed widgets, allowing for mixed KConfigXT-drive and manual | 70 | // managed widgets, allowing for mixed KConfigXT-drive and manual | ||
69 | // widgets to coexist peacefully and do the correct thing with | 71 | // widgets to coexist peacefully and do the correct thing with | ||
70 | // the changed(bool) signal | 72 | // the changed(bool) signal | ||
71 | bool _unmanagedWidgetChangeState : 1; | 73 | bool _unmanagedWidgetChangeState : 1; | ||
74 | bool _unmanagedWidgetDefaultState : 1; | ||||
75 | bool _unmanagedWidgetDefaultStateCalled : 1; | ||||
72 | }; | 76 | }; | ||
73 | 77 | | |||
74 | KCModule::KCModule(const KAboutData *aboutData, QWidget *parent, const QVariantList &) | 78 | KCModule::KCModule(const KAboutData *aboutData, QWidget *parent, const QVariantList &) | ||
75 | : QWidget(parent), d(new KCModulePrivate) | 79 | : QWidget(parent), d(new KCModulePrivate) | ||
76 | { | 80 | { | ||
77 | setAboutData(aboutData); | 81 | setAboutData(aboutData); | ||
78 | } | 82 | } | ||
79 | 83 | | |||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Line(s) | 189 | { | |||
189 | delete d; | 193 | delete d; | ||
190 | } | 194 | } | ||
191 | 195 | | |||
192 | void KCModule::load() | 196 | void KCModule::load() | ||
193 | { | 197 | { | ||
194 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | 198 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | ||
195 | manager->updateWidgets(); | 199 | manager->updateWidgets(); | ||
196 | } | 200 | } | ||
197 | emit changed(false); | 201 | widgetChanged(); | ||
davidedmundson: this line becomes redundant as widgetChanged() will always emit it | |||||
198 | } | 202 | } | ||
199 | 203 | | |||
200 | void KCModule::save() | 204 | void KCModule::save() | ||
201 | { | 205 | { | ||
202 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | 206 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | ||
203 | manager->updateSettings(); | 207 | manager->updateSettings(); | ||
204 | } | 208 | } | ||
205 | emit changed(false); | 209 | emit changed(false); | ||
206 | } | 210 | } | ||
207 | 211 | | |||
208 | void KCModule::defaults() | 212 | void KCModule::defaults() | ||
209 | { | 213 | { | ||
210 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | 214 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | ||
211 | manager->updateWidgetsDefault(); | 215 | manager->updateWidgetsDefault(); | ||
212 | } | 216 | } | ||
213 | } | 217 | } | ||
214 | 218 | | |||
215 | void KCModule::widgetChanged() | 219 | void KCModule::widgetChanged() | ||
216 | { | 220 | { | ||
217 | emit changed(d->_unmanagedWidgetChangeState || managedWidgetChangeState()); | 221 | emit changed(d->_unmanagedWidgetChangeState || managedWidgetChangeState()); | ||
222 | if (d->_unmanagedWidgetDefaultStateCalled) { | ||||
223 | emit defaulted(d->_unmanagedWidgetDefaultState && managedWidgetDefaultState()); | ||||
224 | } else { | ||||
225 | emit defaulted(!d->managers.isEmpty() && managedWidgetDefaultState()); | ||||
226 | } | ||||
218 | } | 227 | } | ||
219 | 228 | | |||
220 | bool KCModule::managedWidgetChangeState() const | 229 | bool KCModule::managedWidgetChangeState() const | ||
221 | { | 230 | { | ||
222 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | 231 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | ||
223 | if (manager->hasChanged()) { | 232 | if (manager->hasChanged()) { | ||
224 | return true; | 233 | return true; | ||
225 | } | 234 | } | ||
226 | } | 235 | } | ||
227 | 236 | | |||
228 | return false; | 237 | return false; | ||
229 | } | 238 | } | ||
230 | 239 | | |||
240 | bool KCModule::managedWidgetDefaultState() const | ||||
241 | { | ||||
242 | for (KConfigDialogManager *manager : qAsConst(d->managers)) { | ||||
243 | if (!manager->isDefault()) { | ||||
244 | return false; | ||||
245 | } | ||||
246 | } | ||||
247 | | ||||
248 | return true; | ||||
249 | } | ||||
250 | | ||||
231 | void KCModule::unmanagedWidgetChangeState(bool changed) | 251 | void KCModule::unmanagedWidgetChangeState(bool changed) | ||
232 | { | 252 | { | ||
233 | d->_unmanagedWidgetChangeState = changed; | 253 | d->_unmanagedWidgetChangeState = changed; | ||
234 | widgetChanged(); | 254 | widgetChanged(); | ||
235 | } | 255 | } | ||
236 | 256 | | |||
257 | void KCModule::unmanagedWidgetDefaultState(bool defaulted) | ||||
258 | { | ||||
259 | d->_unmanagedWidgetDefaultStateCalled = true; | ||||
260 | d->_unmanagedWidgetDefaultState = defaulted; | ||||
261 | widgetChanged(); | ||||
262 | } | ||||
263 | | ||||
237 | const KAboutData *KCModule::aboutData() const | 264 | const KAboutData *KCModule::aboutData() const | ||
238 | { | 265 | { | ||
239 | return d->_about; | 266 | return d->_about; | ||
240 | } | 267 | } | ||
241 | 268 | | |||
242 | void KCModule::setAboutData(const KAboutData *about) | 269 | void KCModule::setAboutData(const KAboutData *about) | ||
243 | { | 270 | { | ||
244 | if (about != d->_about) { | 271 | if (about != d->_about) { | ||
▲ Show 20 Lines • Show All 74 Lines • Show Last 20 Lines |
this line becomes redundant as widgetChanged() will always emit it