-rw-r--r-- | microkde/kconfig.cpp | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/microkde/kconfig.cpp b/microkde/kconfig.cpp index 3f23ed2..b882adb 100644 --- a/microkde/kconfig.cpp +++ b/microkde/kconfig.cpp @@ -338,6 +338,18 @@ bool KConfig::deleteGroup( const QString& group) int pos; QMap<QString,bool>::Iterator itBool; + QMap<QString,bool>::Iterator delBool; + while ( itBool != mBoolMap.end() ) { + pos = itBool.key().find( group ); + if (pos == 0) { + delBool = itBool; + ++itBool; + mBoolMap.remove(delBool); + dirty = true; + } + + } + /* for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool ) { pos = itBool.key().find( group ); @@ -346,8 +358,21 @@ bool KConfig::deleteGroup( const QString& group) dirty = true; } } + */ + QMap<QString,QString>::Iterator itString = mStringMap.begin(); + QMap<QString,QString>::Iterator delString ; + while( itString != mStringMap.end() ) { + pos = itString.key().find( group ); + if (pos == 0) { + delString = itString; + ++itString; + mStringMap.remove(delString); + //qDebug("delte++++++++++++++++++ "); + dirty = true; + } - QMap<QString,QString>::Iterator itString; + } + /* this leads to a memory access violation for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString ) { pos = itString.key().find( group ); @@ -356,8 +381,20 @@ bool KConfig::deleteGroup( const QString& group) dirty = true; } } - - QMap<QString,QDateTime>::Iterator itDateTime; + */ + QMap<QString,QDateTime>::Iterator itDateTime= mDateTimeMap.begin(); + QMap<QString,QDateTime>::Iterator delDateTime; + while ( itDateTime != mDateTimeMap.end() ) { + pos = itDateTime.key().find( group ); + if (pos == 0) { + delDateTime = itDateTime; + ++itDateTime; + mDateTimeMap.remove(delDateTime); + dirty = true; + } + + } + /* for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime ) { pos = itDateTime.key().find( group ); @@ -366,6 +403,7 @@ bool KConfig::deleteGroup( const QString& group) dirty = true; } } + */ if (dirty) mDirty = true; |