7 bool loadStringFromDisk (const QString &fname, QString &s)
11 if ( !file.open( IO_ReadOnly ) ) return false;
13 QTextStream ts( &file );
14 ts.setEncoding (QTextStream::UnicodeUTF8);
16 s+=ts.readLine()+"\n";
21 bool saveStringToDisk (const QString &fname, const QString &s)
25 file.setName ( fname);
26 if ( !file.open( IO_WriteOnly ) )
32 // Write it finally, and write in UTF8, no matter what
33 QTextStream ts( &file );
34 ts.setEncoding (QTextStream::UnicodeUTF8);
40 /////////////////////////////////////////////////////////////////
42 /////////////////////////////////////////////////////////////////
43 SimpleSettings::SimpleSettings()
48 SimpleSettings::~SimpleSettings()
52 void SimpleSettings::clear()
58 void SimpleSettings::readSettings (const QString &path)
61 if (!loadStringFromDisk(path,s))
63 qWarning ("SimpleSettings::readSettings() Couldn't read "+path);
67 lines=QStringList::split (QRegExp("\n"),s,false);
69 QStringList::Iterator it=lines.begin();
70 while (it !=lines.end() )
73 keylist.append((*it).left(i));
74 valuelist.append((*it).right((*it).length()-i-1));
79 void SimpleSettings::writeSettings (const QString &path)
82 QStringList::Iterator itk=keylist.begin();
83 QStringList::Iterator itv=valuelist.begin();
85 // First search for value in settings saved in map
86 while (itk !=keylist.end() )
88 s+=*itk+"="+*itv+"\n";
92 if (!saveStringToDisk(path,s))
93 qWarning ("SimpleSettings::writeSettings() Couldn't write "+path);
96 QString SimpleSettings::readEntry (const QString &key)
98 QStringList::Iterator itk=keylist.begin();
99 QStringList::Iterator itv=valuelist.begin();
101 // First search for value in settings saved in map
102 while (itk !=keylist.end() )
109 qWarning ("SimpleSettings::readEntry() Couldn't find key "+key);
113 void SimpleSettings::setEntry (const QString &key, const QString &value)
115 QStringList::Iterator itk=keylist.begin();
116 QStringList::Iterator itv=valuelist.begin();
120 // Search for existing entry first
121 while (itk !=keylist.end() )
125 if (!value.isEmpty())
135 // If no entry exists, append a new one
136 keylist.append (key);
137 valuelist.append (value);
143 /////////////////////////////////////////////////////////////////
145 /////////////////////////////////////////////////////////////////
151 Settings::~Settings()
155 void Settings::clear()
162 void Settings::clearLocal(const QString &s)
164 QStringList::Iterator itp=pathlist.begin();
165 QStringList::Iterator itk=keylist.begin();
166 QStringList::Iterator itv=valuelist.begin();
168 while (itp !=pathlist.end() )
170 if ((*itk).startsWith (s))
172 itp=pathlist.remove (itp);
173 itk=keylist.remove (itk);
174 itv=valuelist.remove (itv);
184 QString Settings::readLocalEntry ( const QString &fpath, const QString & key, const QString & def = QString::null )
186 QStringList::Iterator itp=pathlist.begin();
187 QStringList::Iterator itk=keylist.begin();
188 QStringList::Iterator itv=valuelist.begin();
190 // First search for value in settings saved in map
191 while (itp !=pathlist.end() )
193 if (*itp == fpath && *itk == key)
200 // Fall back to global vym settings
202 return readEntry (key,def, &ok);
205 void Settings::setLocalEntry (const QString &fpath, const QString &key, const QString &value)
207 QStringList::Iterator itp=pathlist.begin();
208 QStringList::Iterator itk=keylist.begin();
209 QStringList::Iterator itv=valuelist.begin();
211 if (!fpath.isEmpty() && !key.isEmpty() && !value.isEmpty() )
213 // Search for existing entry first
214 while (itp !=pathlist.end() )
216 if (*itp == fpath && *itk == key)
226 // If no entry exists, append a new one
227 pathlist.append (fpath);
228 keylist.append (key);
229 valuelist.append (value);
233 QString Settings::getXMLData (const QString &fpath)
236 QStringList::Iterator itp=pathlist.begin();
237 QStringList::Iterator itk=keylist.begin();
238 QStringList::Iterator itv=valuelist.begin();
240 while (itp !=pathlist.end() )
243 if (!(*itv).isEmpty())
246 attribut ("key",*itk)
247 +attribut ("value",*itv)