messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp
branchRCL_3
changeset 53 696bfeff199e
parent 17 caea42e26caa
--- a/messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp	Mon Jun 21 15:36:19 2010 +0300
+++ b/messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp	Thu Jul 15 18:34:37 2010 +0300
@@ -91,6 +91,7 @@
     iControlArray = CCoeControlArray::NewL( *this );
     iControlArray->SetControlsOwnedExternally( EFalse );
     iPriorityIndicator = EFalse;
+    iMessageIterator = NULL;
     UpdateVarientId();
     SetComponentsToInheritVisibility( ETrue );
     ActivateL();
@@ -165,12 +166,14 @@
 EXPORT_C void CMsgNaviPaneControl::SetNavigationIndicatorL( CMsvSession& aSession,
                                                    const TMsvEntry& aCurrentMessage )
     {
-    delete iMessageIterator;
-    iMessageIterator = NULL;
-    
-    iMessageIterator = CMessageIterator::NewL( aSession, aCurrentMessage );
-    iMessageIterator->SetMessageIteratorObserver( this );
-    
+    if(!iMessageIterator)
+        {
+        // Iterator will be deleted once in the destructer only.
+        //deleting and creating it again is degrading the performance
+ 
+        iMessageIterator = CMessageIterator::NewL( aSession, aCurrentMessage );
+        iMessageIterator->SetMessageIteratorObserver( this );
+        }
     UpdateNavigationIndicatorsL();
     }
 
@@ -767,4 +770,13 @@
                 }                  
             }    
     }
+
+// ----------------------------------------------------------------------------
+// CMsgNaviPaneControl::GetNavigationIndicator
+// ----------------------------------------------------------------------------
+//
+EXPORT_C CMessageIterator* CMsgNaviPaneControl::GetMessageIterator()
+    {
+     return iMessageIterator;
+    }
 //  End of File