diff -r a7d8840c0b8c -r 0f21a5ec0db7 extras/calcsoft/src/CalcView.cpp --- a/extras/calcsoft/src/CalcView.cpp Thu Jul 15 18:40:36 2010 +0300 +++ b/extras/calcsoft/src/CalcView.cpp Thu Aug 19 09:56:23 2010 +0300 @@ -75,7 +75,7 @@ iCalcDocument = STATIC_CAST(CCalcDocument*, AppUi()->Document()); iCalcDocument->SetCalcView( this ); - CreateContainerL(); + iCalcDocument->LoadStateL(); /******** Initialize the ServiceHandler in the ConstructL *****/ @@ -92,12 +92,17 @@ // Destructor CCalcView::~CCalcView() { - delete iContainer; - if(iServiceHandler) - { - delete iServiceHandler; - iServiceHandler = NULL; - } + if ( iContainer ) + { + delete iContainer; + iContainer = NULL; + } + + if( iServiceHandler ) + { + delete iServiceHandler; + iServiceHandler = NULL; + } } @@ -1039,8 +1044,13 @@ TUid /* aCustomMessageId */, const TDesC8& /* aCustomMessage */) { - AppUi()->AddToStackL(*this, iContainer); - iContainer->ActivateL(); + if ( iContainer == NULL ) + { + CreateContainerL(); + AppUi()->AddToStackL( *this, iContainer ); + iContainer->ActivateL(); + } + } // ---------------------------------------------------- @@ -1051,9 +1061,11 @@ // void CCalcView::DoDeactivate() { - if (iContainer) + if ( iContainer ) { - AppUi()->RemoveFromStack(iContainer); + AppUi()->RemoveFromStack( iContainer ); + delete iContainer; + iContainer = NULL; } }