messagingappbase/mce/src/MceOneRowMessageListContainer.cpp
branchRCL_3
changeset 19 7e4e4bcc75b6
parent 15 52d61119153d
child 25 fa1df4b99609
--- a/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp	Tue May 25 12:38:02 2010 +0300
@@ -88,8 +88,10 @@
 //
 CMceOneRowMessageListContainer::CMceOneRowMessageListContainer( CMceMessageListView& aParentView ) :
     CMceMessageListContainerBase( aParentView ),
-    iEmailFramework(EFalse)
+    iEmailFramework(EFalse),
+    iDeletedMessges(0)
     {
+    iSelectedSubTitles.Reset();
     }
 
 
@@ -107,6 +109,7 @@
     delete iSelectedEntries;
     delete iTreeListBox;
     delete iUiRegistry;
+    iSelectedSubTitles.Close();
     }
 
 
@@ -1090,9 +1093,10 @@
                  !entry.Unread() )
                 {
                 TAknTreeItemID treeItemId = iListItems->TreeItemId( i );
-                iTreeListBox->SetMarked( treeItemId, ETrue, ETrue );
+                iTreeListBox->SetMarked( treeItemId, ETrue, EFalse );
                 }
             }
+        iTreeListBox->DrawNow();
         }
     }
 
@@ -2264,21 +2268,34 @@
             {
             // this removes node and child
             iTreeListBox->RemoveItem( parentTreeItemId, EFalse );
+            TInt deleteSubtitle = iSelectedSubTitles.Find( parentTreeItemId );
+            if ( deleteSubtitle != KErrNotFound )
+                 {
+                 iSelectedSubTitles.Remove( deleteSubtitle );
+                 }
             }
         else if ( treeItemId > KAknTreeIIDRoot )
             {
             // delete only one child, there are other children left so leave node untouched
             iTreeListBox->RemoveItem( treeItemId, EFalse );
-            if ( parentTreeItemId > KAknTreeIIDRoot )
+            if ( parentTreeItemId > KAknTreeIIDRoot &&
+                 iSelectedSubTitles.Find( parentTreeItemId ) == KErrNotFound )
                 {
-                UpdateSubtitleIconL( parentTreeItemId, EFalse );        
+                iSelectedSubTitles.AppendL( parentTreeItemId ) ;                           
                 }
             }
         }
 
-    if ( aDraw )
+    iDeletedMessges += count;  
+    if ( iSelectedEntries->Count() == iDeletedMessges )
         {
-        RefreshListbox();
+        TInt subTitleCount = iSelectedSubTitles.Count();
+        for ( TInt i = 0; i < subTitleCount; i++ )
+            {
+            UpdateSubtitleIconL( iSelectedSubTitles[i], EFalse );
+            }
+        iDeletedMessges = 0;
+        iSelectedSubTitles.Reset();
         }
     }