KConfig Bug?

Benjamin Meyer ben at meyerhome.net
Sat Jun 28 04:04:05 BST 2003

Hash: SHA1

Just to summarize so we can move on to fixing this, there are four options I 

1) Added two new functions:
 void deleteLocalEntry( const QString& pKey, etc );
 bool hasGlobalEntry( const QString &pKey, etc );

2) Remove the ability to delete the applications's global entry.

3) Add an argument to deleteEntry() to specify if it should remove it from the 
global config and add a function to see if there is a global entry.
void  deleteEntry ( const QString& pKey, bool bNLS = false, bool bGlobal = 
false, bool deleteGlobal=false) 
bool hasGlobalEntry(const QString &pKey, etc);

4) Modify deleteEntry to just remove local entry rather then adding [$d] and 
add two new functions:
 void deleteGlobalEntry( const QString& pKey, etc ); // Same thing as 
deleteEntry currently does by adding a [$d] if globalEntry exists.
 bool hasGlobalEntry( const QString &pKey, etc );

The good and bad:
1) The only time that an application wouldn't want to call deleteLocalEntry() 
rather then deleteEntry would be in a case where it wants to force the 
application to use the default values compiled into the application and not 
the global config, but that destroys the kiosk mode if applications are going 
to ignore it.  Also if the application wants to use default values that it 
already knows about (sense they are compiled into the binary) going through 
the trouble of deleting the entries via the local config is overkill and 

2) Good: Global configs are treaded simply as default values with lower 
priority then local.  Bad: Unable to delete global entries, but applications 
already know what the binary entries are so it shouldn't need to anyway.

3) See #1, just different implementation

4) Same as #1, but much safer because by default an application wouldn't 
delete a global default entry, but if they needed to (which is questionable) 
the functionality is still there.

My votes is for #2 followed by #4, but I am not the maintainer and so this is 
simply my opinion

- -Benjamin Meyer

P.S. That actually brings up an interesting point.  In kiosk mode you might be 
able to get around things by editing the local config files and putting in 
[$d] for values, thus negating any default global settings that aren't set as 

- -Benjamin Meyer

- -- 
Public Key: http://www.csh.rit.edu/~benjamin/public_key.asc
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org


More information about the kde-core-devel mailing list