00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __INISECTION_H__
00024 #define __INISECTION_H__
00025
00026 #include <QVariant>
00027 #include <QVector>
00028 #include "global.h"
00029
00030 class Ini;
00031 class IniVariable;
00032
00038 class MAIN_EXPORT IniSection
00039 {
00040 public:
00045 IniSection();
00046
00059 IniSection(Ini* pIni, const QString& sectionName);
00060
00081 IniVariable createSetting(const QString& name, const QVariant& data);
00082
00090 void deleteSetting(const QString& name);
00091
00096 bool isNull() const { return d.pIni == NULL; }
00097
00107 IniVariable retrieveSetting(const QString& name);
00108
00112 const IniVariable retrieveSetting(const QString& name) const;
00113
00117 const QString& sectionName() const { return d.name; }
00118
00128 IniVariable setting(const QString& name);
00129
00139 void setValue(const QString& key, const QVariant& value);
00140
00144 IniVariable operator[](const QString& name);
00145
00149 const IniVariable operator[](const QString& name) const;
00150
00157 QVariant value(const QString& key) const;
00158
00159 private:
00160 class PrivData
00161 {
00162 public:
00166 QString name;
00167
00171 Ini* pIni;
00172 };
00173
00174 PrivData d;
00175
00179 void remove(const QString& key);
00180 };
00181
00182 typedef QHash<QString, IniSection> IniSections;
00183 typedef QHash<QString, IniSection>::iterator IniSectionsIt;
00184 typedef QHash<QString, IniSection>::const_iterator IniSectionsConstIt;
00185
00186 #endif