--- a/messagingappbase/msgeditor/appuisrc/MsgEditorAppUi.cpp Mon Jun 21 15:36:19 2010 +0300
+++ b/messagingappbase/msgeditor/appuisrc/MsgEditorAppUi.cpp Thu Jul 15 18:34:37 2010 +0300
@@ -205,6 +205,8 @@
cache.RegisterPluginL( &( iMsgEditorAppUiExtension->iSettingCachePlugin ) );
iStatusPaneRes = StatusPane()->CurrentLayoutResId();
+
+ iIterator = NULL;
}
// ---------------------------------------------------------
@@ -236,7 +238,9 @@
delete iLock;
delete iNaviDecorator;
- delete iIterator;
+ // we are referring instance of nvaidecoratoir only
+ // no need to delete, alreday deleted in delete iNaviDecorator;
+ //delete iIterator;
// delete files from our temp directory.
if ( iFileMan )
@@ -334,18 +338,25 @@
}
iMsgNaviDirection = aForward;
+
+ // Check if next/previous message
+ __ASSERT_DEBUG( iIterator != NULL, Panic( ENullPointer1 ) );
+ if ( aForward )
+ {
+ iIterator->SetNextMessage();
+
+ }
+ else
+ {
+ iIterator->SetPreviousMessage();
+ }
+
+ RProperty::Set( KPSUidMuiu, KMuiuKeyNextMsg,
+ iIterator->CurrentMessage().Id() );
+
#ifdef RD_MSG_FAST_PREV_NEXT
// Check if next/previous message can be fast opened by viewer
- __ASSERT_DEBUG( iIterator != NULL, Panic( ENullPointer1 ) );
- if ( aForward )
- {
- iIterator->SetNextMessage();
- }
- else
- {
- iIterator->SetPreviousMessage();
- }
-
+
if ( CanFastOpenL( *iIterator) )
{
// Load next/previous message
@@ -376,6 +387,8 @@
}
else if ( err != KErrNone )
{
+ // Reset the KMuiuKeyNextMsg to 0
+ RProperty::Set( KPSUidMuiu, KMuiuKeyNextMsg,0 );
// Unknown error during quick launch.
iCoeEnv->HandleError( err );
iExitMode = MApaEmbeddedDocObserver::ENoChanges;
@@ -409,12 +422,10 @@
{
CMsgEditorDocument* doc = Document();
- if ( iIterator == NULL )
- {
- iIterator = CMessageIterator::NewL( doc->Session(), doc->Entry() );
- iIterator->SetMessageIteratorObserver( this );
- }
-
+ //We should not create iterator here navi pane iterator
+ //will be refered in CMsgEditorAppUi
+
+ __ASSERT_DEBUG( iIterator != NULL, Panic( ENullPointer1 ) );
// Next is ETrue if layout is EAknLayoutIdABRW,
// EFalse if EAknLayoutIdELAF or EAknLayoutIdAPAC
if ( AknLayoutUtils::LayoutMirrored() )
@@ -453,12 +464,9 @@
if ( iEikonEnv->StartedAsServerApp() )
{
CMsgEditorDocument* doc = Document();
-
- if ( iIterator == NULL )
- {
- iIterator = CMessageIterator::NewL( doc->Session(), doc->Entry() );
- iIterator->SetMessageIteratorObserver( this );
- }
+ //We should not create iterator here, navi pane iterator
+ //will be refered in CMsgEditorAppUi
+ __ASSERT_DEBUG( iIterator != NULL, Panic( ENullPointer1 ) );
aCurrentIndex = iIterator->CurrentMessageIndex();
aMsgsInFolder = iIterator->MessagesInFolder();
@@ -1649,6 +1657,12 @@
CMsgEditorDocument* doc = Document();
naviPaneControl->SetNavigationIndicatorL( doc->Session(), doc->Entry() );
+ // this function will always be called when viwer is launched
+ // always navi decorater will be created.
+ // refer navi decorator iterator instance here
+ iIterator = naviPaneControl->GetMessageIterator();
+ iIterator->SetMessageIteratorObserver( this );
+
iNaviDecorator->SetContainerWindowL( *naviContainer );
iNaviDecorator->MakeScrollButtonVisible( EFalse );
iNaviDecorator->SetComponentsToInheritVisibility( ETrue );