[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.4/kdeplasma-addons/applets/lancelot/libs/lancelot
From:       Ivan Čukić <ivan.cukic () kde ! org>
Date:       2010-02-12 21:51:04
Message-ID: 1266011464.555610.27848.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1089321 by ivan:

Backported group reloading bugfix



 M  +20 -3     Global.cpp  


--- branches/KDE/4.4/kdeplasma-addons/applets/lancelot/libs/lancelot/Global.cpp #1089320:1089321
@@ -66,6 +66,8 @@
 // clearing all info
 void Group::Private::reset()
 {
+    loaded = false;
+
     QMutableMapIterator < QString, QVariant > i(properties);
     while (i.hasNext()) {
         i.next();
@@ -89,9 +91,21 @@
 {
     if (this == d) return;
 
+    QMap < QString, QVariant > savedProperties;
+
+    foreach (const QString & key, persistentProperties) {
+        savedProperties[key] = properties[key];
+    }
+
     properties = d->properties;
-    persistentProperties = d->persistentProperties;
+    persistentProperties += d->persistentProperties;
 
+    QMapIterator < QString, QVariant > i( savedProperties );
+    while (i.hasNext()) {
+        i.next();
+        properties[i.key()] = i.value();
+    }
+
     foregroundColor = d->foregroundColor;
     backgroundColor = d->backgroundColor;
 
@@ -224,6 +238,7 @@
 
     // d->properties.clear();
     d->reset();
+    d->loaded = true;
 
     Group * group;
 
@@ -386,8 +401,10 @@
 
 void Global::Private::loadAllGroups(bool clearFirst)
 {
-    foreach(Group * group, groups) {
-        group->d->reset();
+    if (clearFirst) {
+        foreach(Group * group, groups) {
+            group->d->reset();
+        }
     }
 
     foreach(Group * group, groups) {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic