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

List:       kde-commits
Subject:    branches/KDE/4.4/kdebase/runtime/kstyles/oxygen/animations
From:       Hugo Pereira Da Costa <hugo.pereira () free ! fr>
Date:       2010-03-25 19:37:09
Message-ID: 20100325193709.5668AAC87F () svn ! kde ! org
[Download RAW message or body]

SVN commit 1107481 by hpereiradacosta:

Backport: r1107480
properly reset lastKey and lastValue when unregistering widget


 M  +22 -6     oxygendatamap.h  


--- branches/KDE/4.4/kdebase/runtime/kstyles/oxygen/animations/oxygendatamap.h #1107480:1107481
@@ -72,17 +72,33 @@
         void unregisterWidget( Key key )
         {
 
+            // check key
+            if( !key ) return;
+
             // clear last value if needed
-            if( key == lastKey_ && lastValue_ ) lastValue_.data()->deleteLater();
+            if( key == lastKey_ )
+            {
 
-            // delete value from map if found
+                if( lastValue_ )
+                {
+                    lastValue_.data()->deleteLater();
+                    lastValue_.clear();
+                }
+
+                lastKey_ = NULL;
+
+            }
+
+            // find key in map
             typename QMap<Key, Value>::iterator iter( QMap<Key, Value>::find( key ) );
-            if( iter != QMap<Key, Value>::end() )
-            { if( iter.value() ) iter.value().data()->deleteLater(); }
+            if( iter == QMap<Key, Value>::end() ) return;
 
-            // remove key from map
-            QMap<Key, Value>::remove( key );
+            // delete value from map if found
+            if( iter.value() ) iter.value().data()->deleteLater();
+            QMap<Key, Value>::erase( iter );
 
+            return;
+
         }
 
         //! maxFrame
[prev in list] [next in list] [prev in thread] [next in thread] 

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