-rw-r--r-- | microkde/kconfig.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/microkde/kconfig.cpp b/microkde/kconfig.cpp index b9cf2f1..9598274 100644 --- a/microkde/kconfig.cpp +++ b/microkde/kconfig.cpp | |||
@@ -176,252 +176,252 @@ QFont KConfig::readFontEntry( const QString & e, QFont *def ) | |||
176 | f.setPointSize ( font[2].toInt()); | 176 | f.setPointSize ( font[2].toInt()); |
177 | f.setItalic( font[3] == "italic" ); | 177 | f.setItalic( font[3] == "italic" ); |
178 | return f; | 178 | return f; |
179 | } | 179 | } |
180 | 180 | ||
181 | QDateTime KConfig::readDateTimeEntry( const QString &key, const QDateTime *def ) | 181 | QDateTime KConfig::readDateTimeEntry( const QString &key, const QDateTime *def ) |
182 | { | 182 | { |
183 | QMap<QString,QDateTime>::ConstIterator it = mDateTimeMap.find( mGroup + key ); | 183 | QMap<QString,QDateTime>::ConstIterator it = mDateTimeMap.find( mGroup + key ); |
184 | 184 | ||
185 | if ( it == mDateTimeMap.end() ) { | 185 | if ( it == mDateTimeMap.end() ) { |
186 | if ( def ) return *def; | 186 | if ( def ) return *def; |
187 | else return QDateTime(); | 187 | else return QDateTime(); |
188 | } | 188 | } |
189 | 189 | ||
190 | return *it; | 190 | return *it; |
191 | } | 191 | } |
192 | 192 | ||
193 | //US added method | 193 | //US added method |
194 | void KConfig::writeEntry( const QString &key, const QValueList<int> &value) | 194 | void KConfig::writeEntry( const QString &key, const QValueList<int> &value) |
195 | { | 195 | { |
196 | QStringList valuesAsStrings; | 196 | QStringList valuesAsStrings; |
197 | 197 | ||
198 | QValueList<int>::ConstIterator it; | 198 | QValueList<int>::ConstIterator it; |
199 | 199 | ||
200 | for( it = value.begin(); it != value.end(); ++it ) | 200 | for( it = value.begin(); it != value.end(); ++it ) |
201 | { | 201 | { |
202 | valuesAsStrings << QString::number(*it); | 202 | valuesAsStrings << QString::number(*it); |
203 | } | 203 | } |
204 | 204 | ||
205 | mStringMap.insert( mGroup + key, valuesAsStrings.join(":") ); | 205 | mStringMap.insert( mGroup + key, valuesAsStrings.join(":") ); |
206 | mDirty = true; | 206 | mDirty = true; |
207 | } | 207 | } |
208 | 208 | ||
209 | void KConfig::writeEntry( const QString & key , int num ) | 209 | void KConfig::writeEntry( const QString & key , int num ) |
210 | { | 210 | { |
211 | writeEntry( key, QString::number ( num ) ); | 211 | writeEntry( key, QString::number ( num ) ); |
212 | } | 212 | } |
213 | 213 | ||
214 | void KConfig::writeEntry( const QString &key, const QString &value ) | 214 | void KConfig::writeEntry( const QString &key, const QString &value ) |
215 | { | 215 | { |
216 | mStringMap.insert( mGroup + key, value.utf8() ); | 216 | mStringMap.insert( mGroup + key, value.utf8() ); |
217 | 217 | ||
218 | mDirty = true; | 218 | mDirty = true; |
219 | } | 219 | } |
220 | 220 | ||
221 | void KConfig::writeEntry( const QString &key, const QStringList &value ) | 221 | void KConfig::writeEntry( const QString &key, const QStringList &value ) |
222 | { | 222 | { |
223 | mStringMap.insert( mGroup + key, value.join(":").utf8() ); | 223 | mStringMap.insert( mGroup + key, value.join(":").utf8() ); |
224 | 224 | ||
225 | mDirty = true; | 225 | mDirty = true; |
226 | } | 226 | } |
227 | 227 | ||
228 | void KConfig::writeEntry( const QString &key, bool value) | 228 | void KConfig::writeEntry( const QString &key, bool value) |
229 | { | 229 | { |
230 | mBoolMap.insert( mGroup + key, value ); | 230 | mBoolMap.insert( mGroup + key, value ); |
231 | 231 | ||
232 | mDirty = true; | 232 | mDirty = true; |
233 | } | 233 | } |
234 | 234 | ||
235 | void KConfig::writeEntry( const QString & e, const QColor & c ) | 235 | void KConfig::writeEntry( const QString & e, const QColor & c ) |
236 | { | 236 | { |
237 | QStringList l; | 237 | QStringList l; |
238 | l.append( QString::number ( c.red() ) ); | 238 | l.append( QString::number ( c.red() ) ); |
239 | l.append( QString::number ( c.green() ) ); | 239 | l.append( QString::number ( c.green() ) ); |
240 | l.append( QString::number ( c.blue() ) ); | 240 | l.append( QString::number ( c.blue() ) ); |
241 | writeEntry( e.utf8(), l ); | 241 | writeEntry( e.utf8(), l ); |
242 | } | 242 | } |
243 | 243 | ||
244 | void KConfig::writeEntry( const QString & e, const QSize & s ) | 244 | void KConfig::writeEntry( const QString & e, const QSize & s ) |
245 | { | 245 | { |
246 | QValueList<int> intlist; | 246 | QValueList<int> intlist; |
247 | intlist << s.width() << s.height(); | 247 | intlist << s.width() << s.height(); |
248 | writeEntry( e, intlist ); | 248 | writeEntry( e, intlist ); |
249 | } | 249 | } |
250 | 250 | ||
251 | void KConfig::writeEntry( const QString & e , const QFont & f ) | 251 | void KConfig::writeEntry( const QString & e , const QFont & f ) |
252 | { | 252 | { |
253 | QStringList font; | 253 | QStringList font; |
254 | font.append( f.family()); | 254 | font.append( f.family()); |
255 | font.append( (!f.bold ()?"nonbold":"bold") ); | 255 | font.append( (!f.bold ()?"nonbold":"bold") ); |
256 | font.append( QString::number ( f.pointSize () ) ); | 256 | font.append( QString::number ( f.pointSize () ) ); |
257 | font.append( !f.italic ()?"nonitalic":"italic" ); | 257 | font.append( !f.italic ()?"nonitalic":"italic" ); |
258 | writeEntry( e, font ); | 258 | writeEntry( e, font ); |
259 | } | 259 | } |
260 | 260 | ||
261 | void KConfig::writeEntry( const QString &key, const QDateTime &dt ) | 261 | void KConfig::writeEntry( const QString &key, const QDateTime &dt ) |
262 | { | 262 | { |
263 | mDateTimeMap.insert( mGroup + key, dt ); | 263 | mDateTimeMap.insert( mGroup + key, dt ); |
264 | } | 264 | } |
265 | 265 | ||
266 | void KConfig::load() | 266 | void KConfig::load() |
267 | { | 267 | { |
268 | 268 | ||
269 | 269 | ||
270 | QFile f( mFileName ); | 270 | QFile f( mFileName ); |
271 | if ( !f.open( IO_ReadOnly ) ) { | 271 | if ( !f.open( IO_ReadOnly ) ) { |
272 | //qDebug("KConfig: could not open file %s ",mFileName.latin1() ); | 272 | qDebug("KConfig: could not open file %s ",mFileName.latin1() ); |
273 | return; | 273 | return; |
274 | } | 274 | } |
275 | 275 | ||
276 | mBoolMap.clear(); | 276 | mBoolMap.clear(); |
277 | mStringMap.clear(); | 277 | mStringMap.clear(); |
278 | 278 | ||
279 | QTextStream t( &f ); | 279 | QTextStream t( &f ); |
280 | 280 | t.setEncoding( QTextStream::Latin1 ); | |
281 | QString line = t.readLine(); | 281 | QString line = t.readLine(); |
282 | 282 | ||
283 | while ( !line.isNull() ) { | 283 | while ( !line.isNull() ) { |
284 | QStringList tokens = QStringList::split( ",", line ); | 284 | QStringList tokens = QStringList::split( ",", line ); |
285 | if ( tokens[0] == "bool" ) { | 285 | if ( tokens[0] == "bool" ) { |
286 | bool value = false; | 286 | bool value = false; |
287 | if ( tokens[2] == "1" ) value = true; | 287 | if ( tokens[2] == "1" ) value = true; |
288 | mBoolMap.insert( tokens[1], value ); | 288 | mBoolMap.insert( tokens[1], value ); |
289 | } else if ( tokens[0] == "QString" ) { | 289 | } else if ( tokens[0] == "QString" ) { |
290 | QString value = tokens[2]; | 290 | QString value = tokens[2]; |
291 | mStringMap.insert( tokens[1], value ); | 291 | mStringMap.insert( tokens[1], value ); |
292 | } else if ( tokens[0] == "QDateTime" ) { | 292 | } else if ( tokens[0] == "QDateTime" ) { |
293 | #if 0 | 293 | #if 0 |
294 | int year = tokens[2].toInt(); | 294 | int year = tokens[2].toInt(); |
295 | QDateTime dt( QDate( year, | 295 | QDateTime dt( QDate( year, |
296 | tokens[3].toInt(), | 296 | tokens[3].toInt(), |
297 | tokens[4].toInt() ), | 297 | tokens[4].toInt() ), |
298 | QTime( tokens[5].toInt(), tokens[6].toInt(), | 298 | QTime( tokens[5].toInt(), tokens[6].toInt(), |
299 | tokens[7].toInt() ) ); | 299 | tokens[7].toInt() ) ); |
300 | mDateTimeMap.insert( tokens[1], dt ); | 300 | mDateTimeMap.insert( tokens[1], dt ); |
301 | #endif | 301 | #endif |
302 | } | 302 | } |
303 | 303 | ||
304 | line = t.readLine(); | 304 | line = t.readLine(); |
305 | } | 305 | } |
306 | } | 306 | } |
307 | 307 | ||
308 | void KConfig::sync() | 308 | void KConfig::sync() |
309 | { | 309 | { |
310 | 310 | ||
311 | if ( !mDirty ) return; | 311 | if ( !mDirty ) return; |
312 | //qDebug("KConfig::sync() %s ",mFileName.latin1() ); | 312 | //qDebug("KConfig::sync() %s ",mFileName.latin1() ); |
313 | //kdDebug() << "KConfig::sync(): " << mFileName << endl; | 313 | //kdDebug() << "KConfig::sync(): " << mFileName << endl; |
314 | 314 | ||
315 | //US I took the following code from a newer version of KDE | 315 | //US I took the following code from a newer version of KDE |
316 | // Create the containing dir if needed | 316 | // Create the containing dir if needed |
317 | KURL path; | 317 | KURL path; |
318 | path.setPath(mFileName); | 318 | path.setPath(mFileName); |
319 | QString dir=path.directory(); | 319 | QString dir=path.directory(); |
320 | KStandardDirs::makeDir(dir); | 320 | KStandardDirs::makeDir(dir); |
321 | 321 | ||
322 | QFile f( mFileName ); | 322 | QFile f( mFileName ); |
323 | if ( !f.open( IO_WriteOnly ) ) { | 323 | if ( !f.open( IO_WriteOnly ) ) { |
324 | 324 | ||
325 | qDebug("KConfig::sync() Can't open file %s ",mFileName.latin1() ); | 325 | qDebug("KConfig::sync() Can't open file %s ",mFileName.latin1() ); |
326 | 326 | ||
327 | return; | 327 | return; |
328 | } | 328 | } |
329 | 329 | ||
330 | QTextStream t( &f ); | 330 | QTextStream t( &f ); |
331 | 331 | t.setEncoding( QTextStream::Latin1 ); | |
332 | QMap<QString,bool>::ConstIterator itBool; | 332 | QMap<QString,bool>::ConstIterator itBool; |
333 | for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) { | 333 | for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) { |
334 | t << "bool," << itBool.key() << "," << ( *itBool ? "1" : "0" ) << endl; | 334 | t << "bool," << itBool.key() << "," << ( *itBool ? "1" : "0" ) << endl; |
335 | } | 335 | } |
336 | 336 | ||
337 | QMap<QString,QString>::ConstIterator itString; | 337 | QMap<QString,QString>::ConstIterator itString; |
338 | for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) { | 338 | for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) { |
339 | t << "QString," << itString.key() << "," << (*itString ) << endl; | 339 | t << "QString," << itString.key() << "," << (*itString ) << endl; |
340 | } | 340 | } |
341 | 341 | ||
342 | QMap<QString,QDateTime>::ConstIterator itDateTime; | 342 | QMap<QString,QDateTime>::ConstIterator itDateTime; |
343 | for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) { | 343 | for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) { |
344 | QDateTime dt = *itDateTime; | 344 | QDateTime dt = *itDateTime; |
345 | t << "QDateTime," << itDateTime.key() << "," | 345 | t << "QDateTime," << itDateTime.key() << "," |
346 | << dt.date().year() << "," | 346 | << dt.date().year() << "," |
347 | << dt.date().month() << "," | 347 | << dt.date().month() << "," |
348 | << dt.date().day() << "," | 348 | << dt.date().day() << "," |
349 | << dt.time().hour() << "," | 349 | << dt.time().hour() << "," |
350 | << dt.time().minute() << "," | 350 | << dt.time().minute() << "," |
351 | << dt.time().second() << endl; | 351 | << dt.time().second() << endl; |
352 | } | 352 | } |
353 | 353 | ||
354 | f.close(); | 354 | f.close(); |
355 | 355 | ||
356 | mDirty = false; | 356 | mDirty = false; |
357 | } | 357 | } |
358 | 358 | ||
359 | 359 | ||
360 | //US I took the following deleteGroup method from a newer version from KDE. | 360 | //US I took the following deleteGroup method from a newer version from KDE. |
361 | /** | 361 | /** |
362 | * Deletes a configuration entry group | 362 | * Deletes a configuration entry group |
363 | * | 363 | * |
364 | * If the group is not empty and bDeep is false, nothing gets | 364 | * If the group is not empty and bDeep is false, nothing gets |
365 | * deleted and false is returned. | 365 | * deleted and false is returned. |
366 | * If this group is the current group and it is deleted, the | 366 | * If this group is the current group and it is deleted, the |
367 | * current group is undefined and should be set with setGroup() | 367 | * current group is undefined and should be set with setGroup() |
368 | * before the next operation on the configuration object. | 368 | * before the next operation on the configuration object. |
369 | * | 369 | * |
370 | * @param group The name of the group | 370 | * @param group The name of the group |
371 | * returns true if we deleted at least one entry. | 371 | * returns true if we deleted at least one entry. |
372 | */ | 372 | */ |
373 | bool KConfig::deleteGroup( const QString& group) | 373 | bool KConfig::deleteGroup( const QString& group) |
374 | { | 374 | { |
375 | bool dirty = false; | 375 | bool dirty = false; |
376 | int pos; | 376 | int pos; |
377 | 377 | ||
378 | QMap<QString,bool>::Iterator itBool = mBoolMap.begin(); | 378 | QMap<QString,bool>::Iterator itBool = mBoolMap.begin(); |
379 | QMap<QString,bool>::Iterator delBool; | 379 | QMap<QString,bool>::Iterator delBool; |
380 | 380 | ||
381 | while ( itBool != mBoolMap.end() ) { | 381 | while ( itBool != mBoolMap.end() ) { |
382 | pos = itBool.key().find( group ); | 382 | pos = itBool.key().find( group ); |
383 | if (pos == 0) { | 383 | if (pos == 0) { |
384 | delBool = itBool; | 384 | delBool = itBool; |
385 | ++itBool; | 385 | ++itBool; |
386 | mBoolMap.remove(delBool); | 386 | mBoolMap.remove(delBool); |
387 | dirty = true; | 387 | dirty = true; |
388 | } else | 388 | } else |
389 | ++itBool; | 389 | ++itBool; |
390 | 390 | ||
391 | } | 391 | } |
392 | /* | 392 | /* |
393 | for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) | 393 | for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) |
394 | { | 394 | { |
395 | pos = itBool.key().find( group ); | 395 | pos = itBool.key().find( group ); |
396 | if (pos == 0) { | 396 | if (pos == 0) { |
397 | mBoolMap.remove(itBool); | 397 | mBoolMap.remove(itBool); |
398 | dirty = true; | 398 | dirty = true; |
399 | } | 399 | } |
400 | } | 400 | } |
401 | */ | 401 | */ |
402 | QMap<QString,QString>::Iterator itString = mStringMap.begin(); | 402 | QMap<QString,QString>::Iterator itString = mStringMap.begin(); |
403 | QMap<QString,QString>::Iterator delString ; | 403 | QMap<QString,QString>::Iterator delString ; |
404 | while( itString != mStringMap.end() ) { | 404 | while( itString != mStringMap.end() ) { |
405 | pos = itString.key().find( group ); | 405 | pos = itString.key().find( group ); |
406 | if (pos == 0) { | 406 | if (pos == 0) { |
407 | delString = itString; | 407 | delString = itString; |
408 | ++itString; | 408 | ++itString; |
409 | mStringMap.remove(delString); | 409 | mStringMap.remove(delString); |
410 | //qDebug("delte++++++++++++++++++ "); | 410 | //qDebug("delte++++++++++++++++++ "); |
411 | dirty = true; | 411 | dirty = true; |
412 | } else | 412 | } else |
413 | ++itString; | 413 | ++itString; |
414 | 414 | ||
415 | } | 415 | } |
416 | /* this leads to a memory access violation | 416 | /* this leads to a memory access violation |
417 | for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) | 417 | for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) |
418 | { | 418 | { |
419 | pos = itString.key().find( group ); | 419 | pos = itString.key().find( group ); |
420 | if (pos == 0) { | 420 | if (pos == 0) { |
421 | mStringMap.remove(itString); | 421 | mStringMap.remove(itString); |
422 | dirty = true; | 422 | dirty = true; |
423 | } | 423 | } |
424 | } | 424 | } |
425 | */ | 425 | */ |
426 | QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin(); | 426 | QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin(); |
427 | QMap<QString,QDateTime>::Iterator delDateTime; | 427 | QMap<QString,QDateTime>::Iterator delDateTime; |