diff --git a/src/core/ksharedconfig.h b/src/core/ksharedconfig.h --- a/src/core/ksharedconfig.h +++ b/src/core/ksharedconfig.h @@ -75,6 +75,28 @@ OpenFlags mode = FullConfig, QStandardPaths::StandardLocation type = QStandardPaths::GenericConfigLocation); + /** + * Creates a KSharedConfig object to manipulate a configuration file suitable + * for storing state information. Use this for storing information that is + * changing frequently and should not be saved by configuration backup + * utilities. + * + * If an absolute path is specified for @p fileName, that file will be used + * as the store for the configuration settings. If a non-absolute path + * is provided, the file will be looked for in the standard data directory + * (QStandardPaths::AppDataLocation). If no path is provided, a default + * configuration file will be used based on the name of the main + * application component. + * + * @param fileName the configuration file to open. If empty, it will be determined + * automatically from the application name + "staterc" + * + * @since 5.67 + * + * @sa KConfig + */ + static KSharedConfig::Ptr openStateConfig(const QString &fileName = QString()); + ~KSharedConfig() override; private: diff --git a/src/core/ksharedconfig.cpp b/src/core/ksharedconfig.cpp --- a/src/core/ksharedconfig.cpp +++ b/src/core/ksharedconfig.cpp @@ -121,6 +121,17 @@ return ptr; } +KSharedConfig::Ptr KSharedConfig::openStateConfig(const QString &_fileName) +{ + QString fileName(_fileName); + + if (fileName.isEmpty()) { + fileName = QCoreApplication::applicationName() + QLatin1String("staterc"); + } + + return openConfig(fileName, SimpleConfig, QStandardPaths::AppDataLocation); +} + KSharedConfig::KSharedConfig(const QString &fileName, OpenFlags flags, QStandardPaths::StandardLocation resType)