camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1114 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Base class for pre capture views*
-*/
-
-
-// INCLUDE FILES
-#include <eikmenub.h>
-
-#include <cameraapp.rsg>
-#include <vgacamsettings.rsg>
-
-#include "CamCaptureSetupViewBase.h"
-#include "CamAppUiBase.h"
-#include "CamAppController.h"
-#include "CamUtility.h"
-#include "CamCaptureSetupControlHandler.h"
-#include "CamCaptureSetupContainer.h"
-#include "CamShootingModeContainer.h"
-#include "CamInfoListBoxContainer.h"
-#include "CamPanic.h"
-#include "Cam.hrh"
-#include "CamZoomPane.h"
-#include "CamTimeLapseUtility.h"
-#include "camactivepalettehandler.h"
-#include "CamAppUi.h"
-
-#include <akntoolbar.h>
-
-// ========================= MEMBER FUNCTIONS ================================
-
-
-// ---------------------------------------------------------------------------
-// CCamPreCaptureViewBase destructor
-// 
-// ---------------------------------------------------------------------------
-//
-CCamCaptureSetupViewBase::~CCamCaptureSetupViewBase()
-  {
-  PRINT( _L("Camera => ~CCamCaptureSetupViewBase") );
-  if( AppUi() )
-    {
-    if ( iCaptureSetupContainer )
-      {
-      AppUi()->RemoveFromStack( iCaptureSetupContainer );
-      delete iCaptureSetupContainer;
-      }
-    if ( iSceneSettingContainer )
-      {
-      AppUi()->RemoveFromStack( iSceneSettingContainer );
-      delete iSceneSettingContainer;
-      iSceneSettingContainer = NULL;
-      }
-    if ( iInfoListBoxContainer )
-      {
-      AppUi()->RemoveFromStack( iInfoListBoxContainer );
-      delete iInfoListBoxContainer;
-      }        
-    }
-  PRINT( _L("Camera <= ~CCamCaptureSetupViewBase") );
-  }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::HandleCommandL
-// Handle commands
-// -----------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::HandleCommandL( TInt aCommand )
-    {
-    PRINT( _L("Camera => CCamCaptureSetupViewBase::HandleCommandL") );
-    TUid view = Id();
-    
-    TBool userSceneActive = ( view.iUid == ECamViewIdPhotoUserSceneSetup );
-    
-    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
-    
-    switch ( aCommand )
-        {
-        case ECamCmdCaptureSetupWhiteBalanceStill: // fallthrough
-        case ECamCmdCaptureSetupColourFilterStill:
-        case ECamCmdCaptureSetupExposureStill:
-        case ECamCmdCaptureSetupWhiteBalanceVideo:
-        case ECamCmdCaptureSetupColourFilterVideo:
-        case ECamCmdCaptureSetupBrightnessStill:
-        case ECamCmdCaptureSetupContrastStill:
-        case ECamCmdCaptureSetupBrightnessVideo:
-        case ECamCmdCaptureSetupContrastVideo:
-        case ECamCmdCaptureSetupImageSharpnessStill:
-            {
-            SwitchToCaptureSetupModeL( aCommand );
-            }
-            break;
-        case ECamCmdCaptureSetupFlashStill:
-        case ECamCmdCaptureSetupSelfTimer:
-            {
-            iController.ExitViewfinderMode( ECamControllerImage );
-            SwitchToCaptureSetupModeL( aCommand );
-            }
-            break;
-        case ECamCmdCaptureSetupSceneStill:
-        case ECamCmdCaptureSetupSceneVideo:
-            {
-            SwitchToSceneSettingModeL();
-            
-             
-            }
-            break;
-        case EAknSoftkeyBack:
-            {
-            if( appUi && appUi->APHandler()->AccessedViaAP() )
-                {
-                if( !userSceneActive)
-                	{
-                	appUi->APHandler()->APOperationComplete();
-                	}
-                
-                if ( iSceneSettingModeActive )
-                    {
-                    iSceneSettingContainer->SaveSceneSettingIfChangedL();
-                    }
-                
-                iChangeButtonPressed = EFalse;
-                ExitAllModesL();
-                }
-            else
-                {
-				if( iSceneSettingModeActive )
-               	    {
-	           	   	ExitSceneSettingModeL();
-	           	    }	
-	      		else if ( iInfoListBoxActive )
-	           	    {
-	           	   	ExitInfoListBoxL();
-	           		}
-                }
-            }
-            break;
-        case EAknSoftkeyCancel:
-            {
-            if ( iCaptureSetupModeActive && iCaptureSetupControlHandler )
-                {
-                TCamSettingItemIds iSettingItemId = iCaptureSetupControlHandler->SettingType();		
-                
-                if ( iSettingItemId == ECamSettingItemDynamicSelfTimer )					//judge if current operation selfTimer
-                  {
-                  iController.SetSlideInSelfTimerPreview(EFalse);
-                  TInt iSelfTimerVal = iController.IntegerSettingValueUnfiltered( ECamSettingItemDynamicSelfTimer );	//get the actual selfTimer value, not the focus one 
-                       
-                  iController.IntSettingChangedL(iSettingItemId, iSelfTimerVal);			//set the actual status to the actual index
-                  }
-
-                iController.CancelPreviewChangesL();
-                // fallthrough to exit CaptureSetup mode
-                }
-            else if ( iInfoListBoxActive )
-                {
-                ExitAllModesL();
-                break;
-                }
-            else if ( iSceneSettingModeActive )
-                {
-                iChangeButtonPressed = EFalse;
-                ExitAllModesL();
-                break;
-                }
-            else
-                {
-                // do nothing, the command is handled by the framework
-                break;
-                }
-            }
-            //lint -fallthrough
-        case EAknSoftkeyOk:
-            {
-            if ( iCaptureSetupModeActive && iCaptureSetupControlHandler )
-                {
-                TCamSettingItemIds iSettingItemId = iCaptureSetupControlHandler->SettingType();
-                if ( iSettingItemId == ECamSettingItemDynamicSelfTimer )
-                    {
-                    iController.SetSlideInSelfTimerPreview(EFalse);
-                    }
-
-                iController.CommitPreviewChanges();
-                // fallthrough to exit CaptureSetup mode
-                }
-            if( appUi && appUi->APHandler()->AccessedViaAP() )
-               {
-               if( !userSceneActive)
-                	{
-                	appUi->APHandler()->APOperationComplete();
-                	}
-               ExitAllModesL();
-               }
-            }
-            break;
-        case ECamMSKCmdAppChange:
-        case EAknSoftkeySelect:
-            {
-            if ( iSceneSettingContainer )
-                {
-                
-                if ( iSceneSettingContainer->UserSceneHighlighted() )
-                    {                  
-                    // use context specific ok options menu if user scene is highlighted
-                    CEikMenuBar* menuBar = MenuBar();            
-                    if ( menuBar )
-                        {
-                        menuBar->SetMenuTitleResourceId( R_CAM_SCENE_SETTING_OK_MENUBAR );
-                        MenuBar()->SetMenuType( CEikMenuBar::EMenuContext );
-                        menuBar->TryDisplayMenuBarL();
-                        menuBar->SetMenuTitleResourceId( R_CAM_SCENE_SETTING_MENUBAR );
-                        //Here we again set back the type of menu to "Options" when pressed LSK
-            			menuBar->SetMenuType( CEikMenuBar::EMenuOptions );
-                        }
-                    break;
-                    }
-                
-                } 
-            }
-            //lint -fallthrough
-        case ECamCmdSelect:
-            {
-            if ( iSceneSettingContainer )
-                {
-                // If successfully saved the scene change to the settings model
-                // then exit the scene setting mode.
-                if ( iSceneSettingContainer->SaveSceneSettingL() )
-                    {
-                    if( appUi && appUi->APHandler()->AccessedViaAP() )
-                        {
-                        if( !userSceneActive)
-		                	{
-		                	appUi->APHandler()->APOperationComplete();
-		                	}
-		                	
-                        ExitAllModesL();
-                        }
-                    else
-                        {
-                    	ExitSceneSettingModeL();
-                        }
-                    }
-                }
-            else if( iInfoListBoxContainer )
-            		{
-            		HandleInfoListBoxSelectionL();	
- 					}
-            }
-            break;
-        case ECamCmdEdit:
-            {
-            // If 'change' user scene selected from scene list, exit all
-            // modes in the precapture view and switch view to user scene.
-            if ( iSceneSettingModeActive )
-                {
-                iChangeButtonPressed = ETrue;
-            	AppUi()->HandleCommandL( ECamCmdUserScene );
-            	AppUi()->StatusPane()->MakeVisible( ETrue );
-                }
-            
-            }
-            break;
-        case ECamCmdUserSceneSelected:
-            {
-            // check as a precaution that there is a container and userscene is highlighted
-            if ( iSceneSettingContainer && iSceneSettingContainer->UserSceneHighlighted() )
-                {
-                                
-                // use context specific ok options menu if user scene is highlighted
-                CEikMenuBar* menuBar = MenuBar();            
-                if ( menuBar )
-                    {
-                    MenuBar()->SetMenuType( CEikMenuBar::EMenuContext );
-                    menuBar->SetMenuTitleResourceId( R_CAM_SCENE_SETTING_OK_MENUBAR );
-                    menuBar->TryDisplayMenuBarL();
-                    menuBar->SetMenuType( CEikMenuBar::EMenuOptions );
-                    menuBar->SetMenuTitleResourceId( R_CAM_SCENE_SETTING_MENUBAR );
-                    }
-                }
-            
-            break;
-            }
-        case ECamCmdInternalExit:
-            {
-            if ( appUi )
-                {
-                if ( !appUi->ZoomPane()->IsZoomAtMinimum() )
-                    {
-                    appUi->ZoomPane()->ResetZoomTo1x();
-                    }
-                }
-            ExitAllModesL();
-            CCamViewBase::HandleCommandL( aCommand );
-            }
-            break;
-        case ECamCmdRedrawScreen:
-            {
-            if( iCaptureSetupContainer )
-                {
-                iCaptureSetupContainer->DrawDeferred();
-                }
-            CCamViewBase::HandleCommandL( aCommand );
-            }
-            break;
-        default:
-            {
-            CCamViewBase::HandleCommandL( aCommand );
-            break;
-            }
-        }
-    PRINT( _L("Camera <= CCamCaptureSetupViewBase::HandleCommandL") );
-    }
-
-// -----------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::HandleFocusLossL
-// Handle focus loss
-// -----------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::HandleFocusLossL()
-    {
-	// We dont exit any of the modes when we loose focus
-	// we do it when we gain focus.
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::DoDeactivate
-// From CAknView deactivates the view
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::DoDeactivate()
-    {
-    if ( iSceneSettingContainer )
-        {
-        AppUi()->RemoveFromStack( iSceneSettingContainer );
-    
-        delete iSceneSettingContainer;
-        iSceneSettingContainer = NULL;
-        }
-    CCamViewBase::DoDeactivate();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::CCamCaptureSetupViewBase
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-CCamCaptureSetupViewBase::CCamCaptureSetupViewBase( CCamAppController& aController )
-    : CCamViewBase( aController )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::CreateCaptureSetupControlHandlerL
-// Create a control handler for the correct capture setup item
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::CreateCaptureSetupControlHandlerL( TInt aSetupCommand )
-    {
-    __ASSERT_DEBUG( !iCaptureSetupControlHandler, CamPanic( ECamPanicInvalidState ) );
-    TCamSettingItemIds settingItemId = ECamSettingItemDynamicPhotoWhiteBalance;
-    switch ( aSetupCommand )
-        {
-        case ECamCmdCaptureSetupWhiteBalanceStill:
-            {
-            settingItemId = ECamSettingItemDynamicPhotoWhiteBalance;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-        case ECamCmdCaptureSetupColourFilterStill:
-            {
-            settingItemId = ECamSettingItemDynamicPhotoColourFilter;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-
-        case ECamCmdCaptureSetupExposureStill:
-            {
-            settingItemId = ECamSettingItemDynamicPhotoExposure;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-
-        case ECamCmdCaptureSetupFlashStill:
-            {
-            settingItemId = ECamSettingItemDynamicPhotoFlash;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-        case ECamCmdCaptureSetupSelfTimer:
-            {
-            settingItemId = ECamSettingItemDynamicSelfTimer;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-            
-        case ECamCmdCaptureSetupWhiteBalanceVideo:
-            {
-            settingItemId = ECamSettingItemDynamicVideoWhiteBalance;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_VIDEO;
-            }
-            break;
-        case ECamCmdCaptureSetupColourFilterVideo:
-            {
-            settingItemId = ECamSettingItemDynamicVideoColourFilter;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_VIDEO;
-            }
-            break;
-
-        // User scene settings pages.
-        case ECamCmdCaptureSetupWhiteBalanceUser:
-            {
-            settingItemId = ECamSettingItemUserSceneWhitebalance;
-            iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-        case ECamCmdCaptureSetupColourFilterUser:
-            {
-            settingItemId = ECamSettingItemUserSceneColourFilter;
-            iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-        case ECamCmdCaptureSetupExposureUser:
-            {
-            settingItemId = ECamSettingItemUserSceneExposure;
-            iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-        case ECamCmdCaptureSetupFlashUser:
-            {
-            settingItemId = ECamSettingItemUserSceneFlash;
-            iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-
-		case ECamCmdCaptureSetupBrightnessStill:
-			{
-			settingItemId = ECamSettingItemDynamicPhotoBrightness;
-			iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-			}
-			break;
-		case ECamCmdCaptureSetupContrastStill:
-			{
-			settingItemId = ECamSettingItemDynamicPhotoContrast;
-			iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-			}
-			break;
-		case ECamCmdCaptureSetupBrightnessVideo:
-			{
-			settingItemId = ECamSettingItemDynamicVideoBrightness;
-			iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_VIDEO;
-			}
-			break;
-        case ECamCmdCaptureSetupContrastVideo:
-			{
-			settingItemId = ECamSettingItemDynamicVideoContrast;
-			iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_VIDEO;
-			}
-			break;
-        case ECamCmdCaptureSetupBrightnessUser:
-            {
-            settingItemId = ECamSettingItemUserSceneBrightness;
-			iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-        case ECamCmdCaptureSetupContrastUser:
-            {
-            settingItemId = ECamSettingItemUserSceneContrast;
-			iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-
-        case ECamCmdCaptureSetupImageSharpnessStill:
-            {
-            settingItemId = ECamSettingItemDynamicPhotoImageSharpness;
-			iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-        case ECamCmdCaptureSetupImageSharpnessUser:
-            {
-            settingItemId = ECamSettingItemUserSceneImageSharpness;
-			iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-
-        case ECamCmdCaptureSetupLightSensitivityStill:
-            {
-            settingItemId = ECamSettingItemDynamicPhotoLightSensitivity;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_STILL;
-            }
-            break;
-        case ECamCmdCaptureSetupLightSensitivityVideo:
-            {
-            settingItemId = ECamSettingItemDynamicVideoLightSensitivity;
-            iSettingModeTitleResourceId = R_CAM_CAPTURE_SETUP_TITLE_VIDEO;
-            }
-            break;
-        case ECamCmdCaptureSetupLightSensitivityUser:
-            {
-            settingItemId = ECamSettingItemUserSceneLightSensitivity;
-            iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
-            }
-            break;
-        default:
-            {
-            User::Leave( KErrNotSupported );
-            }
-            break;
-        }
-
-    iCaptureSetupControlHandler = new( ELeave )
-        CCamCaptureSetupControlHandler( iController, settingItemId );
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::CleanupCaptureSetupContainer
-// Cleanup the capture setup controls if a leave occurs
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::CleanupCaptureSetupContainer( TAny* aAny )
-    {
-    CCamCaptureSetupViewBase* view = static_cast<CCamCaptureSetupViewBase*>( aAny );
-    delete view->iCaptureSetupControlHandler;
-    view->iCaptureSetupControlHandler = NULL;
-
-    if ( view->iCaptureSetupContainer )
-        {
-        view->AppUi()->RemoveFromStack( view->iCaptureSetupContainer );
-        delete view->iCaptureSetupContainer;
-        view->iCaptureSetupContainer = NULL;
-        }
-    // reset the active flag
-    view->SetCaptureSetupModeActive(EFalse);
-
-    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( view->AppUi() );
-    appUi->SetPreCaptureMode(ECamPreCapViewfinder);
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL
-// Enter capture setup mode
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( TInt aSetupCommand )
-    {
-    __ASSERT_DEBUG( !iCaptureSetupControlHandler && !iCaptureSetupContainer, CamPanic( ECamPanicResourceLeak ) );
-
-    CreateCaptureSetupControlHandlerL( aSetupCommand );
-    // Cleanup the view correctly if a leave occurs
-    CleanupStack::PushL( TCleanupItem( CleanupCaptureSetupContainer, this ) );
-    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
-
-    TRect rect = appUi->ApplicationRect();
-    if ( !CamUtility::IsNhdDevice() ) 
-        {
-        // Space for visible statuspane for non-touch device
-        AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect );
-        }
-    iCaptureSetupContainer = CCamCaptureSetupContainer::NewL( iController, 
-                                   *this, *iCaptureSetupControlHandler, rect );
-    iCaptureSetupContainer->SetMopParent( this ); 
-    appUi->AddToStackL( *this, iCaptureSetupContainer );
-    iCaptureSetupContainer->ActivateL();
-    iCaptureSetupContainer->DrawNow();
-
-    // UpdateCbaL need this boolean to be set in order
-    // to return the correct CBA
-    SetCaptureSetupModeActive(ETrue);
-    
-    iCaptureSetupContainer->DrawableWindow()->SetOrdinalPosition(
-            KCamPreCaptureWindowOrdinalPos );
-
-    UpdateCbaL();
-    SetTitlePaneTextL();
-    appUi->PushDefaultNaviPaneL();
-    CleanupStack::Pop(); // CleanupCaptureSetupContainer
-    // after all leaving functions have completed
-    // remove the container from the stack
-    appUi->RemoveFromStack( iContainer );
-    iContainer->MakeVisible( EFalse );
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::ExitCaptureSetupModeL
-// Exit capture setup mode
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::ExitCaptureSetupModeL()
-    {
-    PRINT( _L("Camera => CCamCaptureSetupViewBase::ExitCaptureSetupModeL()") );	   
-    if ( !iController.InVideocallOrRinging() )
-        {
-        iController.CancelPreviewChangesL();
-        }
-    if ( !iCaptureSetupModeActive )
-		{
-        return;
-		}
-
-    // Cleanup the view correctly if a leave occurs
-    CleanupStack::PushL( TCleanupItem( CleanupExit, this ) );
-    AppUi()->AddToStackL( *this, iContainer );
-    iContainer->MakeVisible( ETrue );   
-    //Draw already here to prevent the activepalette showing briefly before it is updated
-    if ( !iController.IsTouchScreenSupported() )
-        {
-        iContainer->DrawNow();
-        }
-    SetCaptureSetupModeActive(EFalse);
-
-    UpdateCbaL();
-    SetTitlePaneTextL();  
-    CleanupStack::Pop(); // CleanupExit
-
-    // delete the capture setup controls when all
-    // leaving functions have completed
-    AppUi()->RemoveFromStack( iCaptureSetupContainer );
-    delete iCaptureSetupContainer;
-    iCaptureSetupContainer = NULL;
-    delete iCaptureSetupControlHandler;
-    iCaptureSetupControlHandler = NULL;
-    PRINT( _L("Camera <= CCamCaptureSetupViewBase::ExitCaptureSetupModeL()") );	   
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::CleanupSceneSettingContainer
-// Cleanup the capture setup controls if a leave occurs
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::CleanupSceneSettingContainer( TAny* aAny )
-    {
-    CCamCaptureSetupViewBase* view = static_cast<CCamCaptureSetupViewBase*>( aAny );
-    if ( view->iSceneSettingContainer )
-        {
-        view->AppUi()->RemoveFromStack( view->iSceneSettingContainer );
-        delete view->iSceneSettingContainer;
-        view->iSceneSettingContainer = NULL;
-        }
-    // reset the active mode
-    view->SetSceneSettingMode(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::CleanupInfoListBox
-// Cleanup the InfoListBox controls if a leave occurs
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::CleanupInfoListBox( TAny* aAny )
-    {
-    CCamCaptureSetupViewBase* view = static_cast<CCamCaptureSetupViewBase*>( aAny );
-    if ( view->iInfoListBoxContainer )
-        {
-        view->AppUi()->RemoveFromStack( view->iInfoListBoxContainer );
-        delete view->iInfoListBoxContainer;
-        view->iInfoListBoxContainer = NULL;
-        }
-    // reset the active mode
-    view->SetInfoListBoxMode(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SwitchToSceneSettingModeL
-// Enter scene setup mode
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::SwitchToSceneSettingModeL()
-    {
-    // Cleanup the view correctly if a leave occurs
-    CleanupStack::PushL( TCleanupItem( CleanupSceneSettingContainer, this ) );
-    CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
-    iSceneSettingContainer->SetMopParent( this );  
-    appUi->AddToStackL( *this, iSceneSettingContainer );
-    iSceneSettingContainer->ActivateL();
-    
-    if ( iChangeButtonPressed && iSceneSettingContainer )
-    	{
-    	iSceneSettingContainer->SelectItem( iSceneSettingContainer->IndexForValueId( ECamSceneUser ) );
-    	// iChangeButtonPressed is set to EFalse in SetSceneSettingMode method
-    	}
-    
-    // UpdateCbaL need this boolean to be set in
-    // order to return the correct CBA
-    SetSceneSettingMode(ETrue);
-    
-    appUi->SetToolbarVisibility();
-    
-    UpdateCbaL();
-    SetTitlePaneTextL();
-    appUi->PushDefaultNaviPaneL();
-    CleanupStack::Pop(); // CleanupSceneSettingContainer
-    // after all leaving functions have completed
-    // remove the container from the stack and
-    // set the capture setup mode active 
-    appUi->RemoveFromStack( iContainer );
-    iContainer->MakeVisible( EFalse );  
-
-    CEikMenuBar* menuBar = MenuBar();
-    // if menuBar exists
-    if ( menuBar )
-        {
-        menuBar->SetMenuTitleResourceId( ROID(R_CAM_SCENE_SETTING_MENUBAR_ID));
-        }
-    
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SwitchToInfoListBoxL
-// Show InfoListBox
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::SwitchToInfoListBoxL( TCamInfoListBoxMode /* aMode */ )
-    {
-    // Cleanup the view correctly if a leave occurs
-    CleanupStack::PushL( TCleanupItem( CleanupInfoListBox, this ) );
-    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
-    iInfoListBoxContainer->SetMopParent( this );  
-    appUi->AddToStackL( *this, iInfoListBoxContainer );
-    iInfoListBoxContainer->ActivateL();
-    // UpdateCbaL need this boolean to be set in
-    // order to return the correct CBA
-    SetInfoListBoxMode(ETrue);
-    UpdateCbaL();
-    SetTitlePaneTextL();
-    appUi->PushDefaultNaviPaneL();
-    CleanupStack::Pop(); // CleanupSceneSettingContainer
-
-    // after all leaving functions have completed
-    // remove the container from the stack and
-    // set the capture setup mode active 
-    appUi->RemoveFromStack( iContainer );
-    iContainer->MakeVisible( EFalse );  
-
-    CEikMenuBar* menuBar = MenuBar();
-    // if menuBar exists
-    if ( menuBar )
-        {
-        // Use same menu resource as scene setting
-        menuBar->SetMenuTitleResourceId( R_CAM_INFOLISTBOX_MENUBAR );
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::HandleInfoListBoxSelectionL()
-// Handle selection events from InfoListBox
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::HandleInfoListBoxSelectionL()
-		{            		   
-		CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );            		   
-		
-		TUid view = Id();           		   
-		TBool userSceneActive = ( view.iUid == ECamViewIdPhotoUserSceneSetup );
-		
-		if( iInfoListBoxContainer->SettingValueChanged() )
-				{
-				// Store the selected setting
-				switch( iInfoListBoxMode )
-						{
-						case EInfoListBoxModeTimeLapse:
-								{
-  		  				TCamTimeLapse settingValue = static_cast<TCamTimeLapse>( iInfoListBoxContainer->CurrentSettingItemValue() );
-   			 				TInt command = CamTimeLapseUtility::EnumToCommand( settingValue ); 
-		    				TTimeIntervalMicroSeconds interval = CamTimeLapseUtility::EnumToInterval( settingValue );  
-            		
-		    				// Update the current mode (single/burst/timelapse)
-  		  				if( appUi )
-    								{
- 		   							TRAP_IGNORE( appUi->HandleCommandL( command ) );            		
-   			     				}
-						
-								// Update timelapse interval
- 			       		iController.SetTimeLapseInterval( interval ); 
-  		     			}
-  		     			break;
-       			
-						case EInfoListBoxModeISO:
-								{
-								TInt settingValue = iInfoListBoxContainer->CurrentSettingItemValue();
-								
-								// For the light sensitivity setting, PreviewSettingChangeL and CommitPreviewChanges
-								// must be used, instead of UpdateEngineWithSettingL, in order to actually change
-								// the setting value.
-								iController.PreviewSettingChangeL( ECamSettingItemDynamicPhotoLightSensitivity, settingValue );
-								iController.CommitPreviewChanges();
-								}            	  
-								break;
-						
-						default:
-								break;												
-						}				
-				}
-        	  
-            	            			
-    if( appUi && appUi->APHandler()->AccessedViaAP() )
-    		{ 
-    		if( !userSceneActive)
-		    	{
-		    	// If user scene is active, we aren't yet done
-		      appUi->APHandler()->APOperationComplete();
-		      }	
-		                		                	
-        ExitAllModesL();
-        }
-    else
-    		{
-        	ExitInfoListBoxL();
-        	}                     
-       
-		}
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::CleanupExit
-// Stop the scene setting mode from exiting if a leave occurs
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::CleanupExit( TAny* aAny )
-    {
-    CCamCaptureSetupViewBase* view = static_cast<CCamCaptureSetupViewBase*>( aAny );
-    view->AppUi()->RemoveFromStack( view->iContainer );
-    view->iContainer->MakeVisible( EFalse );
-    if ( view->iSceneSettingContainer )
-        {
-        // reset the active mode
-        view->SetSceneSettingMode(ETrue);
-        }
-    if ( view->iCaptureSetupContainer )
-        {
-        // reset the active mode
-        view->SetCaptureSetupModeActive(ETrue);
-        }
-    if ( view->iInfoListBoxContainer )
-        {
-        // reset the active mode
-        view->SetInfoListBoxMode(ETrue);
-        }        
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::ExitSceneSettingModeL
-// Exit scene setup mode
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::ExitSceneSettingModeL()
-    {   
-	PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitSceneSettingModeL" ) );
-    
-    if ( !iSceneSettingModeActive )
-		{
-	   	AppUi()->RemoveFromStack( iSceneSettingContainer );  
-		
-        if ( iSceneSettingContainer )
-        	{
-        	delete iSceneSettingContainer;
-    	    iSceneSettingContainer = NULL;
-        	}
-		return;
-        }
-    	
-    // Cleanup the view correctly if a leave occurs
-    CleanupStack::PushL( TCleanupItem( CleanupExit, this ) );
-    AppUi()->AddToStackL( *this, iContainer );
-    
-    if ( iChangeButtonPressed == EFalse )
-    	{
-        AppUi()->RemoveFromStack( iSceneSettingContainer );               
-        if ( iSceneSettingContainer )
-        	{
-    	    delete iSceneSettingContainer;
-    	    iSceneSettingContainer = NULL;
-        	} 
-        iContainer->MakeVisible( ETrue );
-    	  //Draw already here to prevent the activepalette showing briefly before it is updated
-        if ( !iController.IsTouchScreenSupported() )
-            {
-            iContainer->DrawNow();
-            }
-      	SetSceneSettingMode(EFalse);
-        UpdateCbaL();
-        SetTitlePaneTextL();
-        CleanupStack::Pop(); // CleanupExit
-        
-
-        
-    	}
-    else // iChangeButtonPressed == ETrue
-    	{
-    	iContainer->MakeVisible( EFalse );
-    	SetSceneSettingMode(EFalse);
-        SetTitlePaneTextL();
-        CleanupStack::Pop(); // CleanupExit
-    	}
-    
-    
-    CEikMenuBar* menuBar = MenuBar();
-    // if menuBar exists
-    if ( menuBar )
-        {
-        menuBar->SetMenuTitleResourceId( iPreviousMenuResourceId );
-        }
-	PRINT( _L( "Camera <= CCamCaptureSetupViewBase::ExitSceneSettingModeL" ) );        
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::ExitInfoListBoxL
-// Exit scene setup mode
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::ExitInfoListBoxL()
-    {   
-	PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitInfoListBoxL" ) );
-    
-    if ( !iInfoListBoxActive )
-		{
-        return;
-    } 
-    
-    // Cleanup the view correctly if a leave occurs
-    CleanupStack::PushL( TCleanupItem( CleanupExit, this ) );
-    AppUi()->AddToStackL( *this, iContainer );
-  	PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitInfoListBoxL removing iInfoListBoxContainer" ) );
-    AppUi()->RemoveFromStack( iInfoListBoxContainer );
-    delete iInfoListBoxContainer;
-    iInfoListBoxContainer = NULL;
-	PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitInfoListBoxL removed iInfoListBoxContainer" ) );   
-   
-    iContainer->MakeVisible( ETrue );  
-    //Draw already here to prevent the activepalette showing briefly before it is updated
-    if ( !iController.IsTouchScreenSupported() )
-        {
-        iContainer->DrawNow();
-        }
-    SetInfoListBoxMode(EFalse);
-    UpdateCbaL();
-    SetTitlePaneTextL();
-    CleanupStack::Pop(); // CleanupExit
-
-    CEikMenuBar* menuBar = MenuBar();
-    // if menuBar exists
-    if ( menuBar )
-        {
-        menuBar->SetMenuTitleResourceId( iPreviousMenuResourceId );
-        }
-        
-		iInfoListBoxActive = EFalse;
-		
-		// StartViewFinderL();      
-	PRINT( _L( "Camera <= CCamCaptureSetupViewBase::ExitInfoListBoxL" ) );        
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SetupModeTitlePaneResourceId
-// Return the resource id for the title pane text while in setup mode
-// ---------------------------------------------------------------------------
-//
-TInt CCamCaptureSetupViewBase::SetupModeTitlePaneResourceId()
-    {
-    return iSettingModeTitleResourceId;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::DynInitMenuPaneL
-// Dynamically initialise the options menu
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
-    {
-    PRINT( _L("Camera => CCamCaptureSetupViewBase::DynInitMenuPaneL"))
-    iController.StartIdleTimer();
-    if( iSceneSettingModeActive && aResourceId == ROID(R_CAM_SCENE_SETTING_MENU_ID))
-        {
-        if ( iSceneSettingContainer && !iSceneSettingContainer->UserSceneHighlighted() )
-            {
-            aMenuPane->SetItemDimmed( ECamCmdEdit, ETrue );
-            }
-        else
-            {
-            // do nothing
-            }
-        }
-    else
-        {
-        // do nothing
-        }
-    PRINT( _L("Camera <= CCamCaptureSetupViewBase::DynInitMenuPaneL"))
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::ExitAllModesL
-// Revert to normal mode
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::ExitAllModesL()
-    {
-    // intentionally doing nothing
-    PRINT( _L("Camera =><= CCamCaptureSetupViewBase::ExitAllModesL empty impl."))
-    }
-
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SetSceneSettingMode
-// Sets the iSceneSettingModeActive flag
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::SetSceneSettingMode(TBool aActive)
-    {
-    // This should be the only place iSceneSettingModeActive is set!
-    // We need to inform the AppUi
-    iSceneSettingModeActive = aActive;
-
-    CCamAppUi* appUi = static_cast<CCamAppUi*>(AppUi()); //static_cast<CCamAppUiBase*>( AppUi() );
-    
-    if ( appUi )
-        {
-        if ( aActive )
-            {
-            appUi->SetPreCaptureMode(ECamPreCapSceneSetting);
-            iChangeButtonPressed = EFalse; 
-            }
-        else if ( iChangeButtonPressed )
-        	{
-        	// transfering to user scene setup view
-        	 appUi->SetPreCaptureMode(ECamPreCapSceneSetting);
-        	}
-        else
-            {
-           	appUi->SetPreCaptureMode(ECamPreCapViewfinder);
-            }        
-        }
-          
-    }
-    
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SetInfoListBoxMode
-// Sets the iInfoListBoxActive flag
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::SetInfoListBoxMode( TBool aActive )
-    {
-    // We need to inform the AppUi
-    iInfoListBoxActive = aActive;
-
-    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
-    
-    if ( appUi)
-        {
-        if ( aActive )
-            {
-            appUi->SetPreCaptureMode(ECamPreCapGenericSetting);
-            }
-        else
-            {
-            appUi->SetPreCaptureMode(ECamPreCapViewfinder);
-            }        
-        }
-    }    
-    
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::SetCaptureSetupModeActive
-// Sets the iSceneSettingModeActive flag
-// ---------------------------------------------------------------------------
-//
-void CCamCaptureSetupViewBase::SetCaptureSetupModeActive(TBool aActive)
-    {
-    // This should be the only place iCaptureSetupModeActive is set!
-    // We need to inform the AppUi
-    iCaptureSetupModeActive = aActive;
-
-    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
-    
-    if ( appUi)
-        {
-        if ( aActive )
-            {
-            appUi->SetPreCaptureMode(ECamPreCapCaptureSetup);
-            }
-        else
-            {
-            appUi->SetPreCaptureMode(ECamPreCapViewfinder);
-            }        
-        }
-    }
-// ---------------------------------------------------------------------------
-// CCamCaptureSetupViewBase::HandleForegroundEventL
-// Called to notify of change of app fore/background state
-// ---------------------------------------------------------------------------
-//
- void CCamCaptureSetupViewBase::HandleForegroundEventL( TBool aForeground )
-     {
-     
-     PRINT1( _L("Camera => CCamCaptureSetupViewBase::HandleForegroundEventL foreground:%d"), aForeground );
-     
-     if( aForeground )
-         {
-         
-         if ( iCaptureSetupModeActive && iCaptureSetupContainer )
-             {
-             iCaptureSetupContainer->HandleForegroundEventL( aForeground );
-             }
-         }
-     }
-//  End of File