--- 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