diff -r fbb813aef148 -r 7e4e4bcc75b6 messagingappbase/mce/src/MceOneRowMessageListContainer.cpp --- 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(); } }