author | kergoth <kergoth> | 2002-01-25 22:14:26 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-01-25 22:14:26 (UTC) |
commit | 15318cad33835e4e2dc620d033e43cd930676cdd (patch) (unidiff) | |
tree | c2fa0399a2c47fda8e2cd0092c73a809d17f68eb /library/config.h | |
download | opie-15318cad33835e4e2dc620d033e43cd930676cdd.zip opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.gz opie-15318cad33835e4e2dc620d033e43cd930676cdd.tar.bz2 |
Initial revision
-rw-r--r-- | library/config.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/library/config.h b/library/config.h new file mode 100644 index 0000000..1dc32fa --- a/dev/null +++ b/library/config.h | |||
@@ -0,0 +1,102 @@ | |||
1 | /********************************************************************** | ||
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | ||
3 | ** | ||
4 | ** This file is part of Qtopia Environment. | ||
5 | ** | ||
6 | ** This file may be distributed and/or modified under the terms of the | ||
7 | ** GNU General Public License version 2 as published by the Free Software | ||
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
9 | ** packaging of this file. | ||
10 | ** | ||
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
13 | ** | ||
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | ||
15 | ** | ||
16 | ** Contact info@trolltech.com if any conditions of this licensing are | ||
17 | ** not clear to you. | ||
18 | ** | ||
19 | **********************************************************************/ | ||
20 | |||
21 | #ifndef CONFIG_H | ||
22 | #define CONFIG_H | ||
23 | |||
24 | // ##### could use QSettings with Qt 3.0 | ||
25 | |||
26 | #include <qmap.h> | ||
27 | #include <qstringlist.h> | ||
28 | |||
29 | class ConfigPrivate; | ||
30 | class Config | ||
31 | { | ||
32 | public: | ||
33 | typedef QMap< QString, QString > ConfigGroup; | ||
34 | |||
35 | enum Domain { File, User }; | ||
36 | Config( const QString &name, Domain domain=User ); | ||
37 | ~Config(); | ||
38 | |||
39 | bool operator == ( const Config & other ) const { return (filename == other.filename); } | ||
40 | bool operator != ( const Config & other ) const { return (filename != other.filename); } | ||
41 | |||
42 | bool isValid() const; | ||
43 | bool hasKey( const QString &key ) const; | ||
44 | |||
45 | void setGroup( const QString &gname ); | ||
46 | void writeEntry( const QString &key, const char* value ); | ||
47 | void writeEntry( const QString &key, const QString &value ); | ||
48 | void writeEntryCrypt( const QString &key, const QString &value ); | ||
49 | void writeEntry( const QString &key, int num ); | ||
50 | #ifdef Q_HAS_BOOL_TYPE | ||
51 | void writeEntry( const QString &key, bool b ); | ||
52 | #endif | ||
53 | void writeEntry( const QString &key, const QStringList &lst, const QChar &sep ); | ||
54 | void removeEntry( const QString &key ); | ||
55 | |||
56 | QString readEntry( const QString &key, const QString &deflt = QString::null ) const; | ||
57 | QString readEntryCrypt( const QString &key, const QString &deflt = QString::null ) const; | ||
58 | QString readEntryDirect( const QString &key, const QString &deflt = QString::null ) const; | ||
59 | int readNumEntry( const QString &key, int deflt = -1 ) const; | ||
60 | bool readBoolEntry( const QString &key, bool deflt = FALSE ) const; | ||
61 | QStringList readListEntry( const QString &key, const QChar &sep ) const; | ||
62 | |||
63 | // For compatibility, non-const versions. | ||
64 | QString readEntry( const QString &key, const QString &deflt ); | ||
65 | QString readEntryCrypt( const QString &key, const QString &deflt ); | ||
66 | QString readEntryDirect( const QString &key, const QString &deflt ); | ||
67 | int readNumEntry( const QString &key, int deflt ); | ||
68 | bool readBoolEntry( const QString &key, bool deflt ); | ||
69 | QStringList readListEntry( const QString &key, const QChar &sep ); | ||
70 | |||
71 | void clearGroup(); | ||
72 | |||
73 | void write( const QString &fn = QString::null ); | ||
74 | |||
75 | protected: | ||
76 | void read(); | ||
77 | bool parse( const QString &line ); | ||
78 | |||
79 | QMap< QString, ConfigGroup > groups; | ||
80 | QMap< QString, ConfigGroup >::Iterator git; | ||
81 | QString filename; | ||
82 | QString lang; | ||
83 | QString glang; | ||
84 | bool changed; | ||
85 | ConfigPrivate *d; | ||
86 | static QString configFilename(const QString& name, Domain); | ||
87 | }; | ||
88 | |||
89 | inline QString Config::readEntry( const QString &key, const QString &deflt ) const | ||
90 | { return ((Config*)this)->readEntry(key,deflt); } | ||
91 | inline QString Config::readEntryCrypt( const QString &key, const QString &deflt ) const | ||
92 | { return ((Config*)this)->readEntryCrypt(key,deflt); } | ||
93 | inline QString Config::readEntryDirect( const QString &key, const QString &deflt ) const | ||
94 | { return ((Config*)this)->readEntryDirect(key,deflt); } | ||
95 | inline int Config::readNumEntry( const QString &key, int deflt ) const | ||
96 | { return ((Config*)this)->readNumEntry(key,deflt); } | ||
97 | inline bool Config::readBoolEntry( const QString &key, bool deflt ) const | ||
98 | { return ((Config*)this)->readBoolEntry(key,deflt); } | ||
99 | inline QStringList Config::readListEntry( const QString &key, const QChar &sep ) const | ||
100 | { return ((Config*)this)->readListEntry(key,sep); } | ||
101 | |||
102 | #endif | ||