Diffstat (limited to 'microkde/kdecore/kconfigbase.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/kdecore/kconfigbase.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/microkde/kdecore/kconfigbase.h b/microkde/kdecore/kconfigbase.h new file mode 100644 index 0000000..7e56d11 --- a/dev/null +++ b/microkde/kdecore/kconfigbase.h | |||
@@ -0,0 +1,102 @@ | |||
1 | /* | ||
2 | This file is part of the KDE libraries | ||
3 | Copyright (c) 1999 Preston Brown <pbrown@kde.org> | ||
4 | Copyright (c) 1997 Matthias Kalle Dalheimer <kalle@kde.org> | ||
5 | Copyright (c) 2001 Waldo Bastian <bastian@kde.org> | ||
6 | |||
7 | This library is free software; you can redistribute it and/or | ||
8 | modify it under the terms of the GNU Library General Public | ||
9 | License as published by the Free Software Foundation; either | ||
10 | version 2 of the License, or (at your option) any later version. | ||
11 | |||
12 | This library is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
15 | Library General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU Library General Public License | ||
18 | along with this library; see the file COPYING.LIB. If not, write to | ||
19 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
20 | Boston, MA 02111-1307, USA. | ||
21 | */ | ||
22 | |||
23 | // $Id$ | ||
24 | |||
25 | #ifndef _KCONFIGBASE_H | ||
26 | #define _KCONFIGBASE_H | ||
27 | |||
28 | #include "kconfig.h" | ||
29 | |||
30 | /** | ||
31 | * Helper class to facilitate working with @ref KConfig / @ref KSimpleConfig | ||
32 | * groups. | ||
33 | * | ||
34 | * Careful programmers always set the group of a | ||
35 | * @ref KConfig @ref KSimpleConfig object to the group they want to read from | ||
36 | * and set it back to the old one of afterwards. This is usually | ||
37 | * written as: | ||
38 | * <pre> | ||
39 | * | ||
40 | * QString oldgroup config->group(); | ||
41 | * config->setGroup( "TheGroupThatIWant" ); | ||
42 | * ... | ||
43 | * config->writeEntry( "Blah", "Blubb" ); | ||
44 | * | ||
45 | * config->setGroup( oldgroup ); | ||
46 | * </pre> | ||
47 | * | ||
48 | * In order to facilitate this task, you can use | ||
49 | * KConfigGroupSaver. Simply construct such an object ON THE STACK | ||
50 | * when you want to switch to a new group. Then, when the object goes | ||
51 | * out of scope, the group will automatically be restored. If you | ||
52 | * want to use several different groups within a function or method, | ||
53 | * you can still use KConfigGroupSaver: Simply enclose all work with | ||
54 | * one group (including the creation of the KConfigGroupSaver object) | ||
55 | * in one block. | ||
56 | * | ||
57 | * @author Matthias Kalle Dalheimer <kalle@kde.org> | ||
58 | * @version $Id$ | ||
59 | * @see KConfigBase, KConfig, KSimpleConfig | ||
60 | * @short Helper class for easier use of KConfig/KSimpleConfig groups | ||
61 | */ | ||
62 | //US I converted the class in a way that it can be used with KConfig objects of microkde | ||
63 | |||
64 | class KConfigGroupSaver | ||
65 | { | ||
66 | public: | ||
67 | /** | ||
68 | * Constructor. You pass a pointer to the KConfigBase-derived | ||
69 | * object you want to work with and a string indicating the _new_ | ||
70 | * group. | ||
71 | * | ||
72 | * @param config The KConfigBase-derived object this | ||
73 | * KConfigGroupSaver works on. | ||
74 | * @param group The new group that the config object should switch to. | ||
75 | */ | ||
76 | KConfigGroupSaver( KConfig* config, QString group ) | ||
77 | /* KDE 4 : make the second parameter const QString & */ | ||
78 | : _config(config), _oldgroup(config->group()) | ||
79 | { _config->setGroup( group ); } | ||
80 | |||
81 | KConfigGroupSaver( KConfig* config, const char *group ) | ||
82 | : _config(config), _oldgroup(config->group()) | ||
83 | { _config->setGroup( group ); } | ||
84 | |||
85 | KConfigGroupSaver( KConfig* config, const QCString &group ) | ||
86 | : _config(config), _oldgroup(config->group()) | ||
87 | { _config->setGroup( group ); } | ||
88 | |||
89 | ~KConfigGroupSaver() { _config->setGroup( _oldgroup ); } | ||
90 | |||
91 | KConfig* config() { return _config; }; | ||
92 | |||
93 | private: | ||
94 | KConfig* _config; | ||
95 | QString _oldgroup; | ||
96 | |||
97 | KConfigGroupSaver(const KConfigGroupSaver&); | ||
98 | KConfigGroupSaver& operator=(const KConfigGroupSaver&); | ||
99 | |||
100 | }; | ||
101 | |||
102 | #endif | ||