KConfig 5.109.0
kconfig.h
1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 2006, 2007 Thomas Braxton <kde.braxton@gmail.com>
4 SPDX-FileCopyrightText: 2001 Waldo Bastian <bastian@kde.org>
5 SPDX-FileCopyrightText: 1999 Preston Brown <pbrown@kde.org>
6 SPDX-FileCopyrightText: 1997 Matthias Kalle Dalheimer <kalle@kde.org>
7
8 SPDX-License-Identifier: LGPL-2.0-or-later
9*/
10
11#ifndef KCONFIG_H
12#define KCONFIG_H
13
14#include "kconfigbase.h"
15
16#include <kconfigcore_export.h>
17
18#include <QByteArray>
19#include <QList>
20#include <QStandardPaths>
21#include <QString>
22#include <QVariant>
23
24class KConfigGroup;
25class KEntryMap;
26class KConfigPrivate;
27
56class KCONFIGCORE_EXPORT KConfig : public KConfigBase
57{
58public:
82 enum OpenFlag {
83 IncludeGlobals = 0x01,
84 CascadeConfig = 0x02,
85
86 SimpleConfig = 0x00,
87 NoCascade = IncludeGlobals,
88 NoGlobals = CascadeConfig,
89 FullConfig = IncludeGlobals | CascadeConfig,
90 };
94 Q_DECLARE_FLAGS(OpenFlags, OpenFlag)
95
96
124 explicit KConfig(const QString &file = QString(),
125 OpenFlags mode = FullConfig,
126 QStandardPaths::StandardLocation type = QStandardPaths::GenericConfigLocation);
127
140 KConfig(const QString &file, const QString &backend, QStandardPaths::StandardLocation type = QStandardPaths::GenericConfigLocation);
141
142 ~KConfig() override;
143
149 QStandardPaths::StandardLocation locationType() const;
150
154 QString name() const;
155
160 OpenFlags openFlags() const;
161
163 bool sync() override;
164
167 bool isDirty() const;
168
170 void markAsClean() override;
171
174 AccessMode accessMode() const override;
175
194 bool isConfigWritable(bool warnUser);
196
214 KConfig *copyTo(const QString &file, KConfig *config = nullptr) const;
215
232 void checkUpdate(const QString &id, const QString &updateFile);
233
239 void reparseConfiguration();
240
242
269 void addConfigSources(const QStringList &sources);
270
274 QStringList additionalConfigSources() const;
275
278
281 QString locale() const;
294 bool setLocale(const QString &aLocale);
296
298
307 void setReadDefaults(bool b);
312 bool readDefaults() const;
314
317 bool isImmutable() const override;
319
321#if KCONFIGCORE_ENABLE_DEPRECATED_SINCE(4, 0)
330 KCONFIGCORE_DEPRECATED_VERSION(4, 0, "Not recommended")
331 void setForceGlobal(bool force);
332#endif
333
334#if KCONFIGCORE_ENABLE_DEPRECATED_SINCE(4, 0)
342 KCONFIGCORE_DEPRECATED_VERSION(4, 0, "Not recommended")
343 bool forceGlobal() const;
344#endif
346
348 QStringList groupList() const override;
349
361 QMap<QString, QString> entryMap(const QString &aGroup = QString()) const;
362
367 static void setMainConfigName(const QString &str);
368
373 static QString mainConfigName();
374
375protected:
376 bool hasGroupImpl(const QByteArray &group) const override;
377 KConfigGroup groupImpl(const QByteArray &b) override;
378 const KConfigGroup groupImpl(const QByteArray &b) const override;
379 void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags = Normal) override;
380 bool isGroupImmutableImpl(const QByteArray &aGroup) const override;
381
382 friend class KConfigGroup;
383 friend class KConfigGroupPrivate;
384 friend class KSharedConfig;
385
389 void virtual_hook(int id, void *data) override;
390
391 KConfigPrivate *const d_ptr;
392
393 KCONFIGCORE_NO_EXPORT explicit KConfig(KConfigPrivate &d);
394
395private:
396 friend class KConfigTest;
397
398 Q_DISABLE_COPY(KConfig)
399
400 Q_DECLARE_PRIVATE(KConfig)
401};
402Q_DECLARE_OPERATORS_FOR_FLAGS(KConfig::OpenFlags)
403
404#endif // KCONFIG_H
Interface to interact with configuration.
Definition kconfigbase.h:31
AccessMode
Possible return values for accessMode().
Definition kconfigbase.h:175
QFlags< WriteConfigFlag > WriteConfigFlags
Stores a combination of #WriteConfigFlag values.
Definition kconfigbase.h:67
A class for one specific group in a KConfig object.
Definition kconfiggroup.h:39
The central class of the KDE configuration data system.
Definition kconfig.h:57
static QString mainConfigName()
Get the name of application config file.
QMap< QString, QString > entryMap(const QString &aGroup=QString()) const
Returns a map (tree) of entries in a particular group.
void virtual_hook(int id, void *data) override
Virtual hook, used to add new "virtual" functions while maintaining binary compatibility.
QStringList groupList() const override
const KConfigGroup groupImpl(const QByteArray &b) const override
bool hasGroupImpl(const QByteArray &group) const override
KConfigGroup groupImpl(const QByteArray &b) override
void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags=Normal) override
OpenFlag
Determines how the system-wide and user's global settings will affect the reading of the configuratio...
Definition kconfig.h:82
bool isGroupImmutableImpl(const QByteArray &aGroup) const override
static void setMainConfigName(const QString &str)
Sets the name of the application config file.
QFlags< OpenFlag > OpenFlags
Stores a combination of #OpenFlag values.
Definition kconfig.h:94
KConfig variant using shared memory.
Definition ksharedconfig.h:32