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

List:       kde-commits
Subject:    KDE/kdepim/kleopatra/models
From:       Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date:       2008-04-18 13:12:06
Message-ID: 1208524326.215997.1385.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 798512 by osterfeld:

use addKeys to re-add children. This prevents "row inserted corruption reported by \
proxy models", triggering a reset().

 M  +1 -15     keylistmodel.cpp  


--- trunk/KDE/kdepim/kleopatra/models/keylistmodel.cpp #798511:798512
@@ -716,22 +716,8 @@
         // Step 3: Add children to new parent ( == key )
 
         if ( !keyAlreadyExisted && !children.empty() ) {
+            addKeys( children );
             const QModelIndex new_parent = index( key );
-            beginInsertRows( index( key ), 0, children.size()-1 );
-            assert( mKeysByExistingParent.find( fpr ) == mKeysByExistingParent.end() \
                );
-            mKeysByExistingParent[fpr] = children;
-            
-            //merge children into mKeysByFingerprint:
-            
-            std::vector<Key> mergedChildren;
-            mergedChildren.reserve( children.size() + mKeysByFingerprint.size() );
-            std::set_union( children.begin(), children.end(),
-                            mKeysByFingerprint.begin(), mKeysByFingerprint.end(),
-                            std::back_inserter( mergedChildren ), \
                ByFingerprint<std::less>() );
-                
-            mKeysByFingerprint = mergedChildren;
-            endInsertRows();
-    
             // emit the rowMoved() signals in reversed direction, so the
             // implementation can use a stack for mapping.
             for ( int i = children.size() - 1 ; i >= 0 ; --i )


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

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