21 #include "private/inifilesupport.h"
22 #include "configurationparameters.h"
29 IniFileLoaderSaver::IniFileLoaderSaver() :
30 ParametersFileLoaderSaver()
34 IniFileLoaderSaver::~IniFileLoaderSaver()
38 bool IniFileLoaderSaver::saveParameters(QTextStream &stream,
const ConfigurationParameters& configParams)
41 return writeGroupToStream(
"", stream, configParams );
44 bool IniFileLoaderSaver::writeGroupToStream(QString groupPath, QTextStream &outstream,
const ConfigurationParameters& configParams) {
46 QStringList paramList = configParams.getParametersList( groupPath );
47 foreach( QString param, paramList ) {
49 if ( ! value.isEmpty() ) {
50 outstream << param <<
" = " << value <<
"\n";
56 QStringList groupList = configParams.getGroupsList( groupPath );
57 foreach( QString group, groupList ) {
61 outstream <<
"[" << subgroup.section(
'/',1) <<
"]" <<
"\n";
62 writeGroupToStream( subgroup, outstream, configParams );
67 bool IniFileLoaderSaver::loadParameters(QTextStream &stream, ConfigurationParameters& configParams)
70 QRegExp comment(
"([#;]+.*)");
71 QRegExp group(
"^\\[(.*)\\]$");
72 QRegExp param(
"([^=]+)=(.+)");
74 QString groupPath =
"";
75 while(!stream.atEnd()) {
77 QString line = stream.readLine().remove(comment).simplified();
81 QString newgroup = group.cap(1).simplified();
82 if (!newgroup.isNull()) {
85 configParams.createGroup( groupPath );
91 QString name = param.cap(1).simplified();
92 QString value = param.cap(2).simplified();
93 if ((!name.isNull()) && (!value.isNull())) {
94 configParams.createParameter( groupPath, name );
static QString GroupSeparator()
The character used to split path in groups.