31#include <QtCore/QExplicitlySharedDataPointer>
32#include <QtCore/QVariant>
33#include <QtCore/QStringList>
36class KConfigGroupPrivate;
109 bool isValid()
const;
152#ifndef KDE_NO_DEPRECATED
153 KDE_DEPRECATED
void changeGroup(
const QString &group);
161#ifndef KDE_NO_DEPRECATED
162 KDE_DEPRECATED
void changeGroup(
const char *group);
176 void copyTo(
KConfigBase *other, WriteConfigFlags pFlags = Normal)
const;
193 void reparent(
KConfigBase *parent, WriteConfigFlags pFlags = Normal);
222 void deleteGroup(WriteConfigFlags pFlags = Normal);
247 template <
typename T>
249 {
return readCheck(key.toUtf8().constData(), aDefault); }
251 template <
typename T>
253 {
return readCheck(key, aDefault); }
296 QVariantList
readEntry(
const QString &key,
const QVariantList &aDefault)
const;
298 QVariantList
readEntry(
const char *key,
const QVariantList &aDefault)
const;
324 {
return readListCheck(key.toUtf8().constData(), aDefault); }
328 {
return readListCheck(key, aDefault); }
357 QString readPathEntry(
const char *key,
const QString &aDefault)
const;
386 QString readEntryUntranslated(
const char *key,
399 WriteConfigFlags pFlags = Normal);
401 void writeEntry(
const char *key,
const QVariant &value,
402 WriteConfigFlags pFlags = Normal);
406 WriteConfigFlags pFlags = Normal);
408 void writeEntry(
const char *key,
const QString &value,
409 WriteConfigFlags pFlags = Normal);
412 void writeEntry(
const QString &key,
const QByteArray &value,
413 WriteConfigFlags pFlags = Normal);
415 void writeEntry(
const char *key,
const QByteArray &value,
416 WriteConfigFlags pFlags = Normal);
419 void writeEntry(
const QString &key,
const char *value, WriteConfigFlags pFlags = Normal);
421 void writeEntry(
const char *key,
const char *value, WriteConfigFlags pFlags = Normal);
424 template <
typename T>
425 inline void writeEntry(
const char *key,
const T &value, WriteConfigFlags pFlags = Normal)
426 { writeCheck( key, value, pFlags ); }
428 template <
typename T>
430 { writeCheck( key.toUtf8().constData(), value, pFlags ); }
434 WriteConfigFlags pFlags = Normal);
436 void writeEntry(
const char *key,
const QStringList &value,
437 WriteConfigFlags pFlags = Normal);
440 void writeEntry(
const QString &key,
const QVariantList &value,
441 WriteConfigFlags pFlags = Normal);
443 void writeEntry(
const char *key,
const QVariantList &value,
444 WriteConfigFlags pFlags = Normal);
447 template <
typename T>
449 { writeListCheck( key.toUtf8().constData(), value, pFlags ); }
451 template <
typename T>
453 { writeListCheck( key, value, pFlags ); }
466 WriteConfigFlags pFlags = Normal);
468 void writeXdgListEntry(
const char *pKey,
const QStringList &value,
469 WriteConfigFlags pFlags = Normal);
485 WriteConfigFlags pFlags = Normal);
487 void writePathEntry(
const char *pKey,
const QString &path,
488 WriteConfigFlags pFlags = Normal);
504 WriteConfigFlags pFlags = Normal);
506 void writePathEntry(
const char *pKey,
const QStringList &value,
507 WriteConfigFlags pFlags = Normal);
519 void deleteEntry(
const QString &pKey, WriteConfigFlags pFlags = Normal);
521 void deleteEntry(
const char *pKey, WriteConfigFlags pFlags = Normal);
538 bool hasKey(
const QString &key)
const;
540 bool hasKey(
const char *key)
const;
547 bool isImmutable()
const;
559 bool isEntryImmutable(
const QString &key)
const;
561 bool isEntryImmutable(
const char *key)
const;
579 void revertToDefault(
const QString &key);
581 void revertToDefault(
const char* key);
610 bool hasDefault(
const QString &key)
const;
612 bool hasDefault(
const char *key)
const;
625 bool hasGroupImpl(
const QByteArray &group)
const;
627 const KConfigGroup groupImpl(
const QByteArray &b)
const;
628 void deleteGroupImpl(
const QByteArray &group, WriteConfigFlags flags);
629 bool isGroupImmutableImpl(
const QByteArray &aGroup)
const;
632 QExplicitlySharedDataPointer<KConfigGroupPrivate> d;
641 inline void writeCheck(
const char *key,
const T &value, WriteConfigFlags pFlags);
644 inline void writeListCheck(
const char *key,
const QList<T> &value, WriteConfigFlags pFlags);
646 friend class KConfigGroupPrivate;
657 static QVariant convertToQVariant(
const char *pKey,
const QByteArray &value,
const QVariant &aDefault);
661#define KCONFIGGROUP_ENUMERATOR_ERROR(ENUM) \
662"The Qt MetaObject system does not seem to know about \"" ENUM \
663"\" please use Q_ENUMS or Q_FLAGS to register it."
676#define KCONFIGGROUP_DECLARE_ENUM_QOBJECT(Class, Enum) \
677inline Class::Enum readEntry(const KConfigGroup& group, const char* key, const Class::Enum& def) \
679const QMetaObject* M_obj = &Class::staticMetaObject; \
680const int M_index = M_obj->indexOfEnumerator(#Enum); \
681kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Enum) << endl; \
682const QMetaEnum M_enum = M_obj->enumerator(M_index); \
683const QByteArray M_data = group.readEntry(key, QByteArray(M_enum.valueToKey(def)));\
684return static_cast<Class::Enum>(M_enum.keyToValue(M_data.constData())); \
686inline void writeEntry(KConfigGroup& group, const char* key, const Class::Enum& value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\
688const QMetaObject* M_obj = &Class::staticMetaObject; \
689const int M_index = M_obj->indexOfEnumerator(#Enum); \
690kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Enum) << endl; \
691const QMetaEnum M_enum = M_obj->enumerator(M_index); \
692group.writeEntry(key, QByteArray(M_enum.valueToKey(value)), flags); \
699#define KCONFIGGROUP_DECLARE_FLAGS_QOBJECT(Class, Flags) \
700inline Class::Flags readEntry(const KConfigGroup& group, const char* key, const Class::Flags& def) \
702const QMetaObject* M_obj = &Class::staticMetaObject; \
703const int M_index = M_obj->indexOfEnumerator(#Flags); \
704kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Flags) << endl; \
705const QMetaEnum M_enum = M_obj->enumerator(M_index); \
706const QByteArray M_data = group.readEntry(key, QByteArray(M_enum.valueToKeys(def)));\
707return static_cast<Class::Flags>(M_enum.keysToValue(M_data.constData())); \
709inline void writeEntry(KConfigGroup& group, const char* key, const Class::Flags& value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\
711const QMetaObject* M_obj = &Class::staticMetaObject; \
712const int M_index = M_obj->indexOfEnumerator(#Flags); \
713kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Flags) << endl; \
714const QMetaEnum M_enum = M_obj->enumerator(M_index); \
715group.writeEntry(key, QByteArray(M_enum.valueToKeys(value)), flags); \
721T KConfigGroup::readCheck(
const char *key,
const T &
defaultValue)
const
723 ConversionCheck::to_QVariant<T>();
730 ConversionCheck::to_QVariant<T>();
731 ConversionCheck::to_QString<T>();
736 data.append(qVariantFromValue(value));
739 Q_FOREACH (
const QVariant &value, readEntry<QVariantList>(key, data)) {
740 Q_ASSERT(qVariantCanConvert<T>(value));
741 list.append(qvariant_cast<T>(value));
748void KConfigGroup::writeCheck(
const char *key,
const T &value,
749 WriteConfigFlags pFlags)
751 ConversionCheck::to_QVariant<T>();
752 writeEntry(key, qVariantFromValue(value), pFlags);
756void KConfigGroup::writeListCheck(
const char *key,
const QList<T> &list,
757 WriteConfigFlags pFlags)
759 ConversionCheck::to_QVariant<T>();
760 ConversionCheck::to_QString<T>();
762 Q_FOREACH(
const T &value, list) {
763 data.append(qVariantFromValue(value));
void deleteGroup(const QByteArray &group, WriteConfigFlags flags=Normal)
Delete aGroup.
AccessMode
Possible return values for accessMode().
A class for one specific group in a KConfig object.
T readEntry(const QString &key, const T &aDefault) const
Reads the value of an entry specified by pKey in the current group.
void writeEntry(const QString &key, const QVariant &value, WriteConfigFlags pFlags=Normal)
Writes a value to the configuration object.
void writeEntry(const char *key, const T &value, WriteConfigFlags pFlags=Normal)
Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags)
T readEntry(const char *key, const T &aDefault) const
Overload for readEntry(const QString&, const T&) const.
void writeEntry(const QString &key, const QList< T > &value, WriteConfigFlags pFlags=Normal)
Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags)
void writeEntry(const char *key, const QList< T > &value, WriteConfigFlags pFlags=Normal)
Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags)
QList< T > readEntry(const QString &key, const QList< T > &aDefault) const
Reads a list of values from the config object.
void writeEntry(const QString &key, const T &value, WriteConfigFlags pFlags=Normal)
Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags)
QList< T > readEntry(const char *key, const QList< T > &aDefault) const
Overload for readEntry(const QString&, const QList<T>&)
The central class of the KDE configuration data system.
KConfig variant using shared memory.
Can be used to control the lifetime of an object that has derived QSharedData.
KAutostart::StartPhase readEntry(const KConfigGroup &group, const char *key, const KAutostart::StartPhase &aDefault)
QString defaultValue(const QString &t)
KSharedPtr< KSharedConfig > KSharedConfigPtr