Moving KPrefs from libkdepim to kdelibs
    Cornelius Schumacher 
    schumacher at kde.org
       
    Mon Jul 21 23:39:05 BST 2003
    
    
  
On Monday 21 July 2003 17:10, Waldo Bastian wrote:
>
> 1) KPrefs::setDefaults() reverts to the default hard-coded in the
> application. As Benjamin pointed out in the "KConfig Bug" thread last
> month, the "Use Defaults" button in the KDE GUI should revert to the
> system-wide defaults provided by the system-admin, not to the
> application default. This needs fixing throughout KDE, see kcmkonsole
> for an example how to do it easy.
Ok. What exactly is the "system-wide" default, by the way? The first 
file in the config file chain, or the last one not writable by the 
user, or the last one outside KDEHOME or something completely 
different?
> Taking koprefs as an example: Ideally you would want to make
> mTimeZone a read-only variable if the corresponding configuration
> entry had been marked as immutable. That's not possible
> unfortunately. It would be possible if you defined accessor-functions
> for every variable like is done for mName and mEmail but that would
> lead to an explosion of functions.
I think we can't go without accessor functions if we want to have a 
clean solution to that problem. The problem of explosion of functions 
can be solved by autogenerating subclasses of KPrefs by something like 
a "config compiler" (see your point 4.).
> In addition to this it would also be essential to have a function
> available to check whether a setting is immutable or not. This way
> code that uses the settings can decide not to offer certain
> functionality at all in the first place. E.g. in the case of KMail,
> KMail could check if the identity-settings where immutable and if so,
> it could decide to not offer the "Add Identity" and "Remove Identity"
> buttons. (For that KPrefs should get a function to query whether a
> KprefsItem is immutable. using what as key? T &reference?)
For this I would also like to have an auto-generated function based on 
the name of the config option. So e.g. for a time zone setting we would 
get a "timeZone()" accessor function and a "timeZoneIsMutable()" 
function to check, if the option is immutable or not.
For generic access via the KPrefsItems we would of course also need 
something like "KPrefsItem::isMutable()".
> 3b) Reconsider the naming of KAutoConfig and KPrefs to better reflect
> the fact that KConfig, KAutoConfig and KPrefs are related and to
> better stress the individual function of each. KPrefs -> KConfigStub,
> KAutoConfig -> KConfigGUI ??
I have no strong preferences here. What do others think?
> 4) Auto-generation of KOPref like classes from a
> configuration-description file. A bit like dcopidl. (I secretly hope
> that Oswald wants to do this because my yacc-skills are rubbish :)
Why do you think this should be done with yacc?
-- 
Cornelius Schumacher <schumacher at kde.org>
    
    
More information about the kde-core-devel
mailing list