Update of /cvsroot/pclasses/pclasses2/src/App
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1010/src/App
Modified Files:
Config.cpp
Log Message:
- Changed ConfigSection::value_map from std::map to std::list to preserve order of config values
Index: Config.cpp
===================================================================
RCS file: /cvsroot/pclasses/pclasses2/src/App/Config.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Config.cpp 22 Jun 2005 11:35:19 -0000 1.1
+++ Config.cpp 29 Jun 2005 00:11:10 -0000 1.2
@@ -59,11 +59,15 @@
{
}
-const Unicode::String& ConfigValue::value() const throw()
+const Unicode::String& ConfigValue::toString() const throw()
{
return _value;
}
+StringList<Unicode::String> ConfigValue::toStringList() const
+{
+ return StringList<Unicode::String>(_value, ",");
+}
ConfigSection::ConfigSection(Config* cfg, const std::string& name)
: _cfg(cfg), _name(name)
@@ -193,13 +197,31 @@
ConfigSection::value_iterator
ConfigSection::findValue(const std::string& name) throw()
{
- return _values.find(name);
+ value_iterator i = _values.begin();
+ while(i != _values.end())
+ {
+ if((*i).first == name)
+ break;
+
+ ++i;
+ }
+
+ return i;
}
ConfigSection::value_const_iterator
ConfigSection::findValue(const std::string& name) const throw()
{
- return _values.find(name);
+ value_const_iterator i = _values.begin();
+ while(i != _values.end())
+ {
+ if((*i).first == name)
+ break;
+
+ ++i;
+ }
+
+ return i;
}
const ConfigValue& ConfigSection::value(const std::string& name,
@@ -207,14 +229,13 @@
{
value_iterator i = findValue(name);
if(i != _values.end())
- return i->second;
+ return (*i).second;
if(!add)
throw ConfigError("Value not found", P_SOURCEINFO);
const ConfigValue& val =
- _values.insert(_values.begin(),
- std::make_pair(name,ConfigValue()))->second;
+ (*_values.insert(_values.begin(), std::make_pair(name, ConfigValue()))).second;
_cfg->setModified();
@@ -231,8 +252,7 @@
const ConfigValue* v = &defaultVal;
if(add)
{
- v = &_values.insert(_values.begin(),
- std::make_pair(name,defaultVal))->second;
+ v = &(*_values.insert(_values.begin(), std::make_pair(name, ConfigValue()))).second;
_cfg->setModified();
}
@@ -249,7 +269,7 @@
}
else
{
- _values.insert(std::make_pair(name, val));
+ _values.push_back(std::make_pair(name, val));
}
}
|