From 5d2ed13479a480111355657bf22324118fa576e9 Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Wed, 24 Apr 2019 16:20:56 +0200 Subject: Add Notify capability to KConfigXT Lets you specify Notifiers= in .kcfg for config entries that should be written with Notify flag, i.e. announce the change to KConfigWatcher Differential Revision: https://phabricator.kde.org/D20196 --- src/kconfig_compiler/kconfig_compiler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/kconfig_compiler/kconfig_compiler.cpp') diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp index b467a20a..abb8e115 100644 --- a/src/kconfig_compiler/kconfig_compiler.cpp +++ b/src/kconfig_compiler/kconfig_compiler.cpp @@ -94,6 +94,8 @@ public: setUserTexts = codegenConfig.value(QStringLiteral("SetUserTexts"), false).toBool(); defaultGetters = codegenConfig.value(QStringLiteral("DefaultValueGetters"), QStringList()).toStringList(); allDefaultGetters = (defaultGetters.count() == 1) && (defaultGetters.at(0).toLower() == QLatin1String("true")); + notifiers = codegenConfig.value(QStringLiteral("Notifiers"), QStringList()).toStringList(); + allNotifiers = ((notifiers.count() == 1) && (notifiers.at(0).toLower() == QLatin1String("true"))); globalEnums = codegenConfig.value(QStringLiteral("GlobalEnums"), false).toBool(); useEnumTypes = codegenConfig.value(QStringLiteral("UseEnumTypes"), false).toBool(); const QString trString = codegenConfig.value(QStringLiteral("TranslationSystem")).toString().toLower(); @@ -132,6 +134,7 @@ public: QStringList sourceIncludes; QStringList mutators; QStringList defaultGetters; + QStringList notifiers; QString qCategoryLoggingName; QString headerExtension; QString sourceExtension; @@ -142,6 +145,7 @@ public: bool globalEnums; bool useEnumTypes; bool itemAccessors; + bool allNotifiers; TranslationSystem translationSystem; QString translationDomain; bool generateProperties; @@ -2484,6 +2488,10 @@ int main(int argc, char **argv) cpp << userTextsFunctions((*itEntry), cfg); } + if (cfg.allNotifiers || cfg.notifiers.contains((*itEntry)->name())) { + cpp << " " << itemPath(*itEntry, cfg) << "->setWriteFlags(KConfigBase::Notify);" << endl; + } + cpp << " addItem( " << itemPath(*itEntry, cfg); QString quotedName = (*itEntry)->name(); addQuotes(quotedName); -- cgit v1.2.1