24 #ifndef KCONFIGGROUP_H 25 #define KCONFIGGROUP_H 31 #include <QtCore/QExplicitlySharedDataPointer> 32 #include <QtCore/QVariant> 33 #include <QtCore/QStringList> 36 class 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;
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;
632 QExplicitlySharedDataPointer<KConfigGroupPrivate> d;
638 inline QList<T> readListCheck(
const char *key,
const QList<T> &defaultValue)
const;
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) \ 677 inline Class::Enum readEntry(const KConfigGroup& group, const char* key, const Class::Enum& def) \ 679 const QMetaObject* M_obj = &Class::staticMetaObject; \ 680 const int M_index = M_obj->indexOfEnumerator(#Enum); \ 681 kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Enum) << endl; \ 682 const QMetaEnum M_enum = M_obj->enumerator(M_index); \ 683 const QByteArray M_data = group.readEntry(key, QByteArray(M_enum.valueToKey(def)));\ 684 return static_cast<Class::Enum>(M_enum.keyToValue(M_data.constData())); \ 686 inline void writeEntry(KConfigGroup& group, const char* key, const Class::Enum& value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\ 688 const QMetaObject* M_obj = &Class::staticMetaObject; \ 689 const int M_index = M_obj->indexOfEnumerator(#Enum); \ 690 kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Enum) << endl; \ 691 const QMetaEnum M_enum = M_obj->enumerator(M_index); \ 692 group.writeEntry(key, QByteArray(M_enum.valueToKey(value)), flags); \ 699 #define KCONFIGGROUP_DECLARE_FLAGS_QOBJECT(Class, Flags) \ 700 inline Class::Flags readEntry(const KConfigGroup& group, const char* key, const Class::Flags& def) \ 702 const QMetaObject* M_obj = &Class::staticMetaObject; \ 703 const int M_index = M_obj->indexOfEnumerator(#Flags); \ 704 kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Flags) << endl; \ 705 const QMetaEnum M_enum = M_obj->enumerator(M_index); \ 706 const QByteArray M_data = group.readEntry(key, QByteArray(M_enum.valueToKeys(def)));\ 707 return static_cast<Class::Flags>(M_enum.keysToValue(M_data.constData())); \ 709 inline void writeEntry(KConfigGroup& group, const char* key, const Class::Flags& value, KConfigBase::WriteConfigFlags flags = KConfigBase::Normal)\ 711 const QMetaObject* M_obj = &Class::staticMetaObject; \ 712 const int M_index = M_obj->indexOfEnumerator(#Flags); \ 713 kFatal(M_index == -1) << KCONFIGGROUP_ENUMERATOR_ERROR(#Flags) << endl; \ 714 const QMetaEnum M_enum = M_obj->enumerator(M_index); \ 715 group.writeEntry(key, QByteArray(M_enum.valueToKeys(value)), flags); \ 720 template <
typename T>
721 T KConfigGroup::readCheck(
const char *key,
const T &
defaultValue)
const 723 ConversionCheck::to_QVariant<T>();
724 return qvariant_cast<
T>(
readEntry(key, qVariantFromValue(defaultValue)));
727 template <
typename T>
730 ConversionCheck::to_QVariant<T>();
731 ConversionCheck::to_QString<T>();
735 Q_FOREACH(
const T& value, defaultValue)
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));
747 template <
typename T>
748 void KConfigGroup::writeCheck(
const char *key,
const T &value,
749 WriteConfigFlags pFlags)
751 ConversionCheck::to_QVariant<T>();
752 writeEntry(key, qVariantFromValue(value), pFlags);
755 template <
typename T>
756 void 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));
766 writeEntry(key, data, pFlags);
769 #endif // KCONFIGGROUP_H
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)
KConfig variant using shared memory.
KSharedPtr< KSharedConfig > KSharedConfigPtr
virtual AccessMode accessMode() const =0
Returns the access mode of the app-config object.
void deleteGroup(const QByteArray &group, WriteConfigFlags flags=Normal)
Delete aGroup.
KSharedConfigPtr config()
Returns the general config object.
virtual QStringList groupList() const =0
Returns a list of groups that are known about.
virtual bool hasGroupImpl(const QByteArray &group) const =0
virtual bool isGroupImmutableImpl(const QByteArray &aGroup) const =0
virtual bool isImmutable() const =0
Checks whether this configuration object can be modified.
virtual KConfigGroup groupImpl(const QByteArray &b)=0
void writeEntry(const char *key, const T &value, WriteConfigFlags pFlags=Normal)
Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags)
virtual void deleteGroupImpl(const QByteArray &group, WriteConfigFlags flags=Normal)=0
void writeEntry(const QString &key, const QList< 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>&)
A class for one specific group in a KConfig object.
The central class of the KDE configuration data system.
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.
virtual void sync()=0
Syncs the configuration object that this group belongs to.
AccessMode
Possible return values for accessMode().
void writeEntry(const QString &key, const T &value, WriteConfigFlags pFlags=Normal)
Overload for writeEntry(const QString&, const QVariant&, WriteConfigFlags)
virtual void markAsClean()=0
Reset the dirty flags of all entries in the entry map, so the values will not be written to disk on a...
T readEntry(const QString &key, const T &aDefault) const
Reads the value of an entry specified by pKey in the current group.
T readEntry(const char *key, const T &aDefault) const
Overload for readEntry(const QString&, const T&) const.
QString defaultValue(const QString &t)