Use of const arg in KConfigGroup constructors doesn't work with language bindings
Richard Dale
rdale at foton.es
Tue Mar 4 20:09:52 GMT 2008
I've had a problem with these two pairs of constructors in kconfiggroup.h:
KConfigGroup(KConfigBase *master, const QString &group);
KConfigGroup(KConfigBase *master, const char *group);
KConfigGroup(const KConfigBase *master, const QString &group);
KConfigGroup(const KConfigBase *master, const char *group);
They only differ by the const-ness of the first argument, and this is
impossible to get working with any other language than c++. I would prefer an
enum to be passed, like KConfigBase::AccessType to specify whether or not the
KConfigGroup can be written too. I've worked round the problem by just
ignoring the read-only const method calls, and so bindings will always get a
writable KConfigGroup.
A comment in the header says this:
/**
* Construct a read-only config group. A read-only group will silently
ignore
* any attempts to write to it.
...
I think something like this is clearer and less error prone:
KConfigGroup(KConfigBase *master, const QString &group, AccessType mode =
ReadOnly);
KConfigGroup(KConfigBase *master, const char *group, AccessType mode =
ReadOnly);
-- Richard
More information about the kde-core-devel
mailing list