photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp
branchRCL_3
changeset 9 6b87b143d312
parent 0 4e91876724a2
child 18 bcb43dc84c44
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp	Tue Feb 02 10:12:14 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp	Fri Feb 19 22:51:01 2010 +0200
@@ -106,9 +106,12 @@
 	ViewBaseConstructL();
 	MLViewBaseConstructL(aMediaListFactory, aTitle);   
 
-	//Register the view to recieve toolbar events. ViewBase handles the events
+	//create the tool bar dynamically
+	//to reduce the startup time of the application.
+	iToolbar = CAknToolbar::NewL(R_GLX_GRID_VIEW_TOOLBAR);
+	SetGridToolBar(iToolbar);
 	SetToolbarObserver(this);
-	ShowToolbarOnViewActivation(ETrue);
+	iToolbar->SetToolbarVisibility(ETrue);
     
 	// Get object that stores the active media list registry
 	iActiveMediaListRegistry = CGlxActiveMediaListRegistry::InstanceL();
@@ -151,9 +154,15 @@
 	// Setting the Context sensitive menu id
 	MenuBar()->SetContextMenuTitleResourceId( iResourceIds.iOkOptionsMenuId );
 	iActiveMediaListRegistry->RegisterActiveMediaList(iMediaList);
-
+	if(!iToolbar)
+        {
+        iToolbar = CAknToolbar::NewL(R_GLX_GRID_VIEW_TOOLBAR);
+        SetGridToolBar(iToolbar);
+        SetToolbarObserver(this);
+        iToolbar->SetToolbarVisibility(ETrue);
+        }
 	//Create HG Grid, medialist observer, FS thumbnailcontext
-	iGlxGridViewContainer = CGlxGridViewContainer::NewL(iMediaList,iUiUtility,*this);
+	iGlxGridViewContainer = CGlxGridViewContainer::NewL(iMediaList,iUiUtility,*this,iToolbar);
 	iEikonEnv->AppUi()->AddToStackL(*this,iGlxGridViewContainer);
 	}
 
@@ -179,7 +188,13 @@
 		}
 	// Deregister active media list pointer
 	iActiveMediaListRegistry->DeregisterActiveMediaList(iMediaList);
-
+	if(iToolbar)
+        {
+         delete iToolbar;
+         iToolbar = NULL;
+		 //set the gridtoolbar to NULL in viewbase.
+         SetGridToolBar(iToolbar);
+        }
 	// Destroy Grid widget before going to next view
 	DestroyGridWidget();
 	}
@@ -205,7 +220,11 @@
 	{
 	TRACER("CGlxGridViewImp::~CGlxGridViewImp");
 	delete iTitletext;
-    
+	if(iToolbar)
+	    {
+        delete iToolbar;
+        iToolbar = NULL;
+	    }
 	if (iActiveMediaListRegistry)
 		{
 		iActiveMediaListRegistry->Close();
@@ -268,7 +287,7 @@
 	{
 	TRACER("CGlxGridViewImp::HandleLatchToolbarL()");
 	CAknButton* markButton = static_cast<CAknButton*>
-									(Toolbar()->ControlOrNull( EGlxCmdStartMultipleMarking ));
+									(iToolbar->ControlOrNull( EGlxCmdStartMultipleMarking ));
 
 	if(markButton)
 		{