summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kconfig.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/microkde/kconfig.cpp b/microkde/kconfig.cpp
index f8e362e..71db891 100644
--- a/microkde/kconfig.cpp
+++ b/microkde/kconfig.cpp
@@ -318,110 +318,113 @@ void KConfig::sync()
mDirty = false;
}
//US I took the following deleteGroup method from a newer version from KDE.
/**
* Deletes a configuration entry group
*
* If the group is not empty and bDeep is false, nothing gets
* deleted and false is returned.
* If this group is the current group and it is deleted, the
* current group is undefined and should be set with setGroup()
* before the next operation on the configuration object.
*
* @param group The name of the group
* returns true if we deleted at least one entry.
*/
bool KConfig::deleteGroup( const QString& group)
{
bool dirty = false;
int pos;
QMap<QString,bool>::Iterator itBool = mBoolMap.begin();
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;
- }
+ } else
+ ++itBool;
}
/*
for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool )
{
pos = itBool.key().find( group );
if (pos == 0) {
mBoolMap.remove(itBool);
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;
- }
+ } else
+ ++itString;
}
/* this leads to a memory access violation
for( itString = mStringMap.begin(); itString != mStringMap.end(); ++itString )
{
pos = itString.key().find( group );
if (pos == 0) {
mStringMap.remove(itString);
dirty = true;
}
}
*/
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;
- }
+ } else
+ ++itDateTime;
}
/*
for( itDateTime = mDateTimeMap.begin(); itDateTime != mDateTimeMap.end(); ++itDateTime )
{
pos = itDateTime.key().find( group );
if (pos == 0) {
mDateTimeMap.remove(itDateTime);
dirty = true;
}
}
*/
if (dirty)
mDirty = true;
return dirty;
}
//US I took the following hasGroup method from a newer version from KDE.
/**
* Returns true if the specified group is known about.
*
* @param group The group to search for.
* @return Whether the group exists.
*/
bool KConfig::hasGroup(const QString &group) const
{
QMap<QString,bool>::ConstIterator itBool;
for( itBool = mBoolMap.begin(); itBool != mBoolMap.end(); ++itBool )
{