KDECore
kconfigbase.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KCONFIGBASE_H
00025 #define KCONFIGBASE_H
00026
00027 #include <kdecore_export.h>
00028
00029 #include <QtCore/QtGlobal>
00030
00031 class QStringList;
00032 class KConfigGroup;
00033 class KConfigBasePrivate;
00034
00038 class KDECORE_EXPORT KConfigBase
00039 {
00040 public:
00044 enum WriteConfigFlag
00045 {
00046 Persistent = 0x01,
00050 Global = 0x02,
00055 Localized = 0x04,
00059 Normal=Persistent
00065 };
00066 Q_DECLARE_FLAGS(WriteConfigFlags, WriteConfigFlag)
00067
00068
00071 virtual ~KConfigBase();
00072
00078 virtual QStringList groupList() const = 0;
00079
00086 bool hasGroup(const QString &group) const;
00087 bool hasGroup(const char *group) const;
00088 bool hasGroup(const QByteArray &group) const;
00089
00097 KConfigGroup group(const QByteArray &group);
00098 KConfigGroup group(const QString &group);
00099 KConfigGroup group(const char *group);
00100
00104 const KConfigGroup group(const QByteArray &group) const;
00105 const KConfigGroup group(const QString &group) const;
00106 const KConfigGroup group(const char *group) const;
00107
00112 void deleteGroup(const QByteArray &group, WriteConfigFlags flags = Normal);
00113 void deleteGroup(const QString &group, WriteConfigFlags flags = Normal);
00114 void deleteGroup(const char *group, WriteConfigFlags flags = Normal);
00115
00122 virtual void sync() = 0;
00123
00128 virtual void markAsClean() = 0;
00129
00133 enum AccessMode { NoAccess, ReadOnly, ReadWrite };
00134
00147 virtual AccessMode accessMode() const = 0;
00148
00153 virtual bool isImmutable() const = 0;
00154
00161 bool isGroupImmutable(const QByteArray& aGroup) const;
00162 bool isGroupImmutable(const QString& aGroup) const;
00163 bool isGroupImmutable(const char *aGroup) const;
00164
00165 protected:
00166 KConfigBase();
00167
00168 virtual bool hasGroupImpl(const QByteArray &group) const = 0;
00169 virtual KConfigGroup groupImpl( const QByteArray &b) = 0;
00170 virtual const KConfigGroup groupImpl(const QByteArray &b) const = 0;
00171 virtual void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags = Normal) = 0;
00172 virtual bool isGroupImmutableImpl(const QByteArray& aGroup) const = 0;
00173
00177 virtual void virtual_hook( int id, void* data );
00178 };
00179
00180 Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigBase::WriteConfigFlags)
00181
00182
00183
00184 #endif // KCONFIG_H