diff options
author | David Faure <faure@kde.org> | 2014-03-16 23:30:59 +0100 |
---|---|---|
committer | David Faure <faure@kde.org> | 2014-03-23 23:00:03 +0100 |
commit | c1980dbc51c9aa2770d09850e69529ea2211924b (patch) | |
tree | 2bbccf3cdebbd6d1149eb1ae615c832570cfa000 /src | |
parent | 41ccd7bcd61c478a4243165b1df0c48e2ecad0df (diff) | |
download | kconfig-c1980dbc51c9aa2770d09850e69529ea2211924b.tar.gz kconfig-c1980dbc51c9aa2770d09850e69529ea2211924b.tar.bz2 |
Add KCoreConfigSkeleton::read() which doesn't call reparseConfiguration.
Call it from generated singletons, since the constructor creates
a KConfig from a filename, which already loads from disk.
This removes the need for using DelayedParsing.
REVIEW: 116845
Diffstat (limited to 'src')
-rw-r--r-- | src/core/kcoreconfigskeleton.cpp | 7 | ||||
-rw-r--r-- | src/core/kcoreconfigskeleton.h | 12 | ||||
-rw-r--r-- | src/kconfig_compiler/kconfig_compiler.cpp | 4 |
3 files changed, 20 insertions, 3 deletions
diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp index 0c1a96fa..0a9b0dfe 100644 --- a/src/core/kcoreconfigskeleton.cpp +++ b/src/core/kcoreconfigskeleton.cpp @@ -986,7 +986,7 @@ KCoreConfigSkeleton::KCoreConfigSkeleton(const QString &configname, QObject *par { //qDebug() << "Creating KCoreConfigSkeleton (" << (void *)this << ")"; - d->mConfig = KSharedConfig::openConfig(configname, KConfig::FullConfig | KConfig::DelayedParsing); + d->mConfig = KSharedConfig::openConfig(configname, KConfig::FullConfig); } KCoreConfigSkeleton::KCoreConfigSkeleton(KSharedConfig::Ptr pConfig, QObject *parent) @@ -1065,6 +1065,11 @@ void KCoreConfigSkeleton::readConfig() { // qDebug(); d->mConfig->reparseConfiguration(); + read(); +} + +void KCoreConfigSkeleton::read() +{ KConfigSkeletonItem::List::ConstIterator it; for (it = d->mItems.constBegin(); it != d->mItems.constEnd(); ++it) { (*it)->readConfig(d->mConfig.data()); diff --git a/src/core/kcoreconfigskeleton.h b/src/core/kcoreconfigskeleton.h index a2b828a4..90562f45 100644 --- a/src/core/kcoreconfigskeleton.h +++ b/src/core/kcoreconfigskeleton.h @@ -1041,6 +1041,18 @@ public: virtual void readConfig(); /** + * Read preferences from the KConfig object. + * This method assumes that the KConfig object was previously loaded, + * i.e. it uses the in-memory values from KConfig without reloading from disk. + * + * This method calls usrReadConfig() after reading the settings of the + * registered items from the KConfig. You can overridde usrReadConfig() + * in derived classes if you have special requirements. + * @since 5.0 + */ + void read(); + + /** * Set the config file group for subsequent addItem() calls. It is valid * until setCurrentGroup() is called with a new argument. Call this before * you add any items. The default value is "No Group". diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp index 7d84cfbc..28b151c5 100644 --- a/src/kconfig_compiler/kconfig_compiler.cpp +++ b/src/kconfig_compiler/kconfig_compiler.cpp @@ -2249,7 +2249,7 @@ int main(int argc, char **argv) } else { cpp << " if (!s_global" << cfg.className << "()->q) {" << endl; cpp << " new " << cfg.className << ';' << endl; - cpp << " s_global" << cfg.className << "()->q->readConfig();" << endl; + cpp << " s_global" << cfg.className << "()->q->read();" << endl; cpp << " }" << endl << endl; } cpp << " return s_global" << cfg.className << "()->q;" << endl; @@ -2263,7 +2263,7 @@ int main(int argc, char **argv) cpp << " return;" << endl; cpp << " }" << endl; cpp << " new " << cfg.className << "(cfgfilename);" << endl; - cpp << " s_global" << cfg.className << "()->q->readConfig();" << endl; + cpp << " s_global" << cfg.className << "()->q->read();" << endl; cpp << "}" << endl << endl; } } |