Mercurial > hg > forks > UniversalIndentGUI
annotate src/UiGuiIniFileParser.cpp @ 768:f3631db17328
Updated all date occurrences to the year 2011.
git-svn-id: svn://svn.code.sf.net/p/universalindent/code/trunk@1045 59b1889a-e5ac-428c-b0c7-476e01d41282
author | thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282> |
---|---|
date | Thu, 21 Apr 2011 15:17:51 +0000 |
parents | 302411a51c00 |
children | fa7aa6f543f1 |
rev | line source |
---|---|
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
1 /*************************************************************************** |
768
f3631db17328
Updated all date occurrences to the year 2011.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
755
diff
changeset
|
2 * Copyright (C) 2006-2011 by Thomas Schweitzer * |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
3 * thomas-schweitzer(at)arcor.de * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
4 * * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
5 * This program is free software; you can redistribute it and/or modify * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
6 * it under the terms of the GNU General Public License version 2.0 as * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
8 * * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
9 * This program is distributed in the hope that it will be useful, * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
12 * GNU General Public License for more details. * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
13 * * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
14 * You should have received a copy of the GNU General Public License * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
15 * along with this program in the file LICENSE.GPL; if not, write to the * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
16 * Free Software Foundation, Inc., * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
17 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
18 ***************************************************************************/ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
19 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
20 #include "UiGuiIniFileParser.h" |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
21 |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
22 #include <QFile> |
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
23 #include <QStringList> |
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
24 #include <QVariant> |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
25 #include <QTextStream> |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
26 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
27 //! \defgroup grp_Settings All concerning applications settings. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
28 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
29 /*! |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
30 \class UiGuiIniFileParser |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
31 \ingroup grp_Settings |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
32 \brief UiGuiIniFileParser is a simple ini file format parser. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
33 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
34 These ini files need to have key-value pairs in the style |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
35 "keyname=keyvalue". Groups can be defined by writing the groupname |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
36 in the style [groupname] before some key-value pairs. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
37 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
38 The reason why I use my own class instead of QSettings is mainly, that |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
39 QSettings always internally sorts the groups alphabetically and also |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
40 rewrites a settings file sorted. Very annoying for me. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
41 */ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
42 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
43 /*! |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
44 \brief Init and empty all needed lists and strings. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
45 */ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
46 UiGuiIniFileParser::UiGuiIniFileParser(void) { |
755
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
47 init(); |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
48 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
49 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
50 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
51 /*! |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
52 \brief Directly loads and parses the file with name \a iniFileName. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
53 */ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
54 UiGuiIniFileParser::UiGuiIniFileParser(const QString &iniFileName) { |
755
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
55 init(); |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
56 _iniFileName = iniFileName; |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
57 parseIniFile(); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
58 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
59 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
60 |
755
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
61 void UiGuiIniFileParser::init() { |
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
62 _sections.clear(); |
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
63 _keyValueMap.clear(); |
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
64 _iniFileName = ""; |
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
65 } |
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
66 |
302411a51c00
[fix] Bug ID 3006513: Calling the default constructor out of another constructor is forbidden and does not compile with recent GCC versions. Fixed this by introducing an init function.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
751
diff
changeset
|
67 |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
68 UiGuiIniFileParser::~UiGuiIniFileParser(void) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
69 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
70 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
71 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
72 /*! |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
73 \brief Returns the group/section names in the same order as they occurr in the ini file as QStringList. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
74 */ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
75 QStringList UiGuiIniFileParser::childGroups() { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
76 QStringList sectionsStringList; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
77 |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
78 for( unsigned int i = 0; i < _sections.size(); i++ ) { |
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
79 sectionsStringList << _sections[i]; |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
80 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
81 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
82 return sectionsStringList; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
83 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
84 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
85 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
86 /*! |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
87 \brief Returns the value of the defined \a keyName as QVariant. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
88 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
89 The \a keyName is assembled by a section name, a slash and the key name itself. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
90 For example if you wish to access the value of the following setting: |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
91 <code>[NiceSection]</br>niceKeyName=2</code> you would have to call |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
92 value("NiceSection/niceKeyName"). |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
93 */ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
94 QVariant UiGuiIniFileParser::value(const QString &keyName, const QString &defaultValue) { |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
95 return _keyValueMap.value( keyName, defaultValue ); |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
96 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
97 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
98 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
99 /*! |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
100 \brief Parses the ini file and stores the key value pairs in the internal vectors \a keys and \a values. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
101 */ |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
102 void UiGuiIniFileParser::parseIniFile() { |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
103 QFile iniFile(_iniFileName); |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
104 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
105 if ( iniFile.open(QFile::ReadOnly) ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
106 // Clear the vectors holding the keys and values. |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
107 _sections.clear(); |
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
108 _keyValueMap.clear(); |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
109 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
110 QTextStream iniFileStream( &iniFile ); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
111 QString line; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
112 QString currentSectionName = ""; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
113 QString keyName = ""; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
114 QString valueAsString = ""; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
115 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
116 while ( !iniFileStream.atEnd() ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
117 line = iniFileStream.readLine().trimmed(); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
118 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
119 // Test if the read line is a section name and if so remeber it. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
120 if ( line.startsWith("[") && line.endsWith("]") ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
121 currentSectionName = line.remove(0, 1); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
122 currentSectionName.chop(1); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
123 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
124 // Store the section name. |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
125 _sections.push_back( currentSectionName ); |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
126 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
127 // Otherwise test whether the line has a assign char |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
128 else if ( line.contains("=") ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
129 int indexOfFirstAssign = line.indexOf("="); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
130 keyName = line.left(indexOfFirstAssign); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
131 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
132 if ( !keyName.isEmpty() ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
133 valueAsString = line.remove(0, indexOfFirstAssign+1); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
134 // Remove any existing double quotes from the value. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
135 if ( valueAsString.startsWith("\"") && valueAsString.endsWith("\"") ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
136 valueAsString = valueAsString.remove(0, 1); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
137 valueAsString.chop(1); |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
138 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
139 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
140 // Prepend an eventually section name to the key name. |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
141 if ( !currentSectionName.isEmpty() ) { |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
142 keyName = currentSectionName + "/" + keyName; |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
143 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
144 |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
145 // Store the key and value in the map. |
751
ac165b6ae67e
Done some refactoring:
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
732
diff
changeset
|
146 _keyValueMap.insert(keyName, valueAsString ); |
638
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
147 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
148 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
149 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
150 } |
94734b9eb54f
Renamed the source files and some classes to have consistent names. What a nice kind of work.
thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282>
parents:
diff
changeset
|
151 } |