KConfig 5.109.0
kconfigbase.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 KCONFIGBASE_H
12#define KCONFIGBASE_H
13
14#include <kconfigcore_export.h>
15
16#include <QStringList>
17#include <QtGlobal>
18
19class KConfigGroup;
20class KConfigBasePrivate;
21
30class KCONFIGCORE_EXPORT KConfigBase
31{
32public:
38 Persistent = 0x01,
42 Global = 0x02,
47 Localized = 0x04,
51 Notify = 0x08 | Persistent,
57 Normal = Persistent,
63 };
68
69
72 virtual ~KConfigBase();
73
79 virtual QStringList groupList() const = 0;
80
87 bool hasGroup(const QString &group) const;
93 bool hasGroup(const char *group) const;
99 bool hasGroup(const QByteArray &group) const;
100
108 KConfigGroup group(const QString &group);
114 KConfigGroup group(const QByteArray &group);
120 KConfigGroup group(const char *group);
121
125 const KConfigGroup group(const QString &group) const;
131 const KConfigGroup group(const QByteArray &group) const;
137 const KConfigGroup group(const char *group) const;
138
144 void deleteGroup(const QString &group, WriteConfigFlags flags = Normal);
150 void deleteGroup(const QByteArray &group, WriteConfigFlags flags = Normal);
156 void deleteGroup(const char *group, WriteConfigFlags flags = Normal);
157
164 virtual bool sync() = 0;
165
170 virtual void markAsClean() = 0;
171
176 NoAccess,
177 ReadOnly,
178 ReadWrite,
179 };
180
193 virtual AccessMode accessMode() const = 0;
194
199 virtual bool isImmutable() const = 0;
200
207 bool isGroupImmutable(const QString &group) const;
213 bool isGroupImmutable(const QByteArray &group) const;
219 bool isGroupImmutable(const char *group) const;
220
221protected:
222 KConfigBase();
223
225 virtual bool hasGroupImpl(const QByteArray &group) const = 0;
227 virtual KConfigGroup groupImpl(const QByteArray &group) = 0;
229 virtual const KConfigGroup groupImpl(const QByteArray &group) const = 0;
231 virtual void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags = Normal) = 0;
233 virtual bool isGroupImmutableImpl(const QByteArray &group) const = 0;
234
238 virtual void virtual_hook(int id, void *data);
239};
240
241Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigBase::WriteConfigFlags)
242
243#endif // KCONFIG_H
Interface to interact with configuration.
Definition kconfigbase.h:31
virtual const KConfigGroup groupImpl(const QByteArray &group) const =0
bool isGroupImmutable(const QByteArray &group) const
Overload for isGroupImmutable(const QString&) const.
virtual void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags=Normal)=0
virtual bool isImmutable() const =0
Checks whether this configuration object can be modified.
WriteConfigFlag
Flags to control write entry.
Definition kconfigbase.h:37
virtual bool isGroupImmutableImpl(const QByteArray &group) const =0
virtual bool hasGroupImpl(const QByteArray &group) const =0
AccessMode
Possible return values for accessMode().
Definition kconfigbase.h:175
virtual void virtual_hook(int id, void *data)
Virtual hook, used to add new "virtual" functions while maintaining binary compatibility.
virtual KConfigGroup groupImpl(const QByteArray &group)=0
virtual AccessMode accessMode() const =0
Returns the access mode of the app-config object.
QFlags< WriteConfigFlag > WriteConfigFlags
Stores a combination of #WriteConfigFlag values.
Definition kconfigbase.h:67
bool isGroupImmutable(const QString &group) const
Can changes be made to the entries in group?
bool isGroupImmutable(const char *group) const
Overload for isGroupImmutable(const QString&) const.
A class for one specific group in a KConfig object.
Definition kconfiggroup.h:39