KConfigSkeleton and writing defaults..

Aaron J. Seigo aseigo at kde.org
Thu Sep 18 08:08:02 BST 2008

On Wednesday 17 September 2008, Aaron J. Seigo wrote:
> hi..
> in the KConfigSkeletonItem class's writeConfig methods, there is this code:
>     if ((mDefault == mReference) && !cg.hasDefault( mKey))
>        cg.revertToDefault( mKey );
> this doesn't seem to make much sense to me because KConfigGroup::hasDefault
> returns false only if there is no default ... so revertToDefault when
> !hasDefault is the same as setting the item to nothing.

i think i figured out what it's trying to do: if the value of the item is the 
default value, then write it to the config file but only if there is a default 
already in the file ... otherwise null it out because the default is kept in 
the KConfigSkeletonItem.

so if there is a default value in the config file, then it will always be 
overwritten by the value on the skeleton item; if there is no default value in 
the file, only when the value of the item is not the item default will it get 
written to the file.

of course, when the config file is not accessed with the KConfigSkeleton object, 
then the defaults (and the keys when there is no default in the file) are not 
accessible (e.g. via KConfigGroup).

i'm still not sure what code relies on this behaviour, if any, and if there 
are any useful ramifications of not writing out the defaults as defined in the 
KConfigSkeleton object .... =/

Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Trolltech

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080918/30697b0d/attachment.sig>

More information about the kde-core-devel mailing list