Warning, /multimedia/amarok/HACKING/kconfig_guidelines.txt is written in an unsupported language. File is not indexed.

0001 Usage of Amarok::config()
0002 -------------------------
0003 We provide this method for convenience, but it is important to use it properly. By
0004 inspection, we can see that we may produce very obscure bugs in the wrong case:
0005 
0006  | KConfig
0007  | *config( const QString &group )
0008  | {
0009  |    //Slightly more useful config() that allows setting the group simultaneously
0010  |    KGlobal::config()->setGroup( group );
0011  |    return KGlobal::config();
0012  | }
0013 
0014 Take the following example:
0015 
0016  | void
0017  | f1()
0018  | {
0019  |    KConfig *config = Amarok::config( "Group 2" );
0020  |    config->writeEntry( "Group 2 Variable", true );
0021  | }
0022  |
0023  | void
0024  | doStuff()
0025  | {
0026  |   KConfig *config = Amarok::config( "Group 1" );
0027  |   f1();
0028  |   config->writeEntry( "Group 1 Variable", true );
0029  | }
0030 
0031 We would expect the following results:
0032 
0033  | [Group 1]
0034  | Group 1 Variable = true
0035  |
0036  | [Group 2]
0037  | Group 2 Variable = true
0038 
0039 However because the config group is changed before writing the entry:
0040  | [Group 1]
0041  |
0042  | [Group 2]
0043  | Group 1 Variable = true
0044  | Group 2 Variable = true
0045 
0046 Which is clearly incorrect. And hard to see when your wondering why f1() is not
0047 working. So do not store a value of Amarok::config, make it a habit to just 
0048 always call writeEntry or readEntry directly.
0049 
0050 Correct:
0051  | amarok::config( "Group 1" )->writeEntry( "Group 1 Variable", true );