diff --git a/src/kcmoduleqml.cpp b/src/kcmoduleqml.cpp --- a/src/kcmoduleqml.cpp +++ b/src/kcmoduleqml.cpp @@ -83,6 +83,11 @@ connect(d->configModule.get(), &KQuickAddons::ConfigModule::needsSaveChanged, this, [=] { emit changed(d->configModule->needsSave()); }); + + // changed is also manipulated externally by KCModule, we need to keep the Quick implementation in sync + // TODO KF6 remove the differed "emit changed" in KConfigModule and then we can remove this here + connect(this, &KCModule::changed, d->configModule.get(), &KQuickAddons::ConfigModule::setNeedsSave); + connect(d->configModule.get(), &KQuickAddons::ConfigModule::representsDefaultsChanged, this, [=] { emit defaulted(d->configModule->representsDefaults()); });