extras/calcsoft/src/CalcView.cpp
branchRCL_3
changeset 19 0f21a5ec0db7
parent 16 99b535de1dda
--- 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;
         }
     }