camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp
branchRCL_3
changeset 24 bac7acad7cb3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,669 @@
+/*
+* Copyright (c) 2007-2010 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:  Controls the switching between different control modes*
+*/
+
+
+// INCLUDE FILES
+#include "CamUserSceneSetupViewBase.h"
+#include "CamAppUiBase.h"
+#include "CamAppUi.h"
+#include "CamPanic.h"
+#include "CamUserSceneSetupContainer.h"
+#include "Cam.hrh"
+
+#include "CamPreCaptureContainerBase.h"
+
+#include <eiksoftkeypostingtransparency.h>
+#include <eikbtgpc.h>
+#include <avkon.rsg>
+#include <StringLoader.h>
+#include <AknQueryDialog.h>
+#include <cameraapp.rsg>
+#include <vgacamsettings.rsg>
+
+#include "CamUtility.h"
+
+// ================= MEMBER FUNCTIONS =======================
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::~CCamUserSceneSetupViewBase
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CCamUserSceneSetupViewBase::~CCamUserSceneSetupViewBase()
+  {
+  PRINT( _L("Camera => ~CCamUserSceneSetupViewBase" ))  
+  delete iContainer;   
+  iContainer = NULL;
+  PRINT( _L("Camera <= ~CCamUserSceneSetupViewBase" ))  
+  }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::HandleCommandL
+// From CAknView Handle commands
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::HandleCommandL( TInt aCommand )
+    {
+    PRINT1( _L("Camera => CCamUserSceneSetupViewBase::HandleCommandL %d"), aCommand );   		
+    switch ( aCommand )
+        {
+        case ECamMSKCmdAppChange:
+            {
+           
+            if ( IsOnlyUserSceneSetupModeActive() )
+                {
+                CCamUserSceneSetupContainer* userSceneSetup = 
+                    static_cast<CCamUserSceneSetupContainer*>( iContainer );
+                userSceneSetup->HandleSelectionL();
+                }
+            else
+                {
+                CCamCaptureSetupViewBase::HandleCommandL( ECamCmdSelect );
+
+                // Update the User Scene Setup with all the new values.
+                CCamUserSceneSetupContainer* userSceneSetup = 
+                    static_cast<CCamUserSceneSetupContainer*>( iContainer );
+                userSceneSetup->UpdateListItems();   
+                }
+            break;
+            }
+        // Handle the user scene scene list navi-key select selection
+        case EAknSoftkeySelect:
+            {
+            CCamCaptureSetupViewBase::HandleCommandL( aCommand );
+            // Update the User Scene Setup with all the new values.
+            CCamUserSceneSetupContainer* userSceneSetup = 
+                static_cast<CCamUserSceneSetupContainer*>( iContainer );
+            userSceneSetup->UpdateListItems();
+            break;
+            }
+        case ECamCmdSetUserDefault:  
+            {
+            TInt currentVal = iController.IntegerSettingValue( ECamSettingItemUserSceneDefault );
+            if ( currentVal )
+              {
+              currentVal = ECamSettNo; 
+              }
+            else
+              {
+              currentVal = ECamSettYes;
+              }
+            TRAP_IGNORE( iController.SetIntegerSettingValueL( ECamSettingItemUserSceneDefault, currentVal) );
+            CCamUserSceneSetupContainer* userSceneSetup = static_cast<CCamUserSceneSetupContainer*>( iContainer );
+            userSceneSetup->UpdateListItems();  
+            userSceneSetup->UpdateDisplayL();
+            }
+            break;
+        case ECamCmdUserSceneReset:
+            {
+            DisplayResetUserSceneDlgL();
+            }
+            break;
+        case ECamCmdCaptureSetupWhiteBalanceUser: // fallthrough
+        case ECamCmdCaptureSetupColourFilterUser:
+        case ECamCmdCaptureSetupExposureUser:
+        case ECamCmdCaptureSetupFlashUser:
+        case ECamCmdCaptureSetupBrightnessUser:
+        case ECamCmdCaptureSetupContrastUser:
+        case ECamCmdCaptureSetupImageSharpnessUser:
+        // case ECamCmdCaptureSetupLightSensitivityUser:
+            {
+            SwitchToCaptureSetupModeL( aCommand );
+            }
+            break;           
+        case ECamCmdCaptureSetupSceneUser:
+            {
+            StatusPane()->MakeVisible( EFalse );
+            SwitchToSceneSettingModeL();
+            }
+            break;
+     	case ECamCmdCaptureSetupLightSensitivityUser:
+      		{
+      		SwitchToInfoListBoxL( EInfoListBoxModeISO, EFalse );//No skin
+      		}    
+			break;
+        // If capture setup menu is active and user presses softkey cancel,
+        // deactivate the menu.
+        case EAknSoftkeyBack:
+            {
+            
+            if ( IsOnlyUserSceneSetupModeActive() )
+                {
+                ExitUserSceneSetupModeL();
+                }
+            else
+                {
+                CCamCaptureSetupViewBase::HandleCommandL( aCommand );
+
+                }
+            }
+            break;
+
+        case EAknSoftkeyOptions:
+            {
+            // do nothing, the command is handled by the framework
+            }
+            break;
+
+        case ECamCmdExitStandby:
+        	{
+        	CCamViewBase::ExitStandbyModeL();
+        	break;
+        	}
+        case ECamCmdInternalExit:
+            {
+            PRINT( _L("Camera CCamUserSceneSetupViewBase::HandleCommandL ECamCmdInternalExit") );
+
+            CCamCaptureSetupViewBase* preCaptureView =
+            static_cast<CCamCaptureSetupViewBase*>( AppUi()->View( TUid::Uid( ECamViewIdStillPreCapture ) ) );
+            // reset scene setting flag so that precapture view returns to normal mode in next startup
+            // Note: this is NOT the proper way to reset precapture view to normal state but seems
+            // to be the only way that works here. None of the Exit.. or SwitchTo... functions work
+            // here because precapture view is not the active view.
+            if ( preCaptureView )
+                {
+                preCaptureView->SetSceneSettingMode( EFalse );
+                if ( iController.IsTouchScreenSupported() )
+                    {
+                    // re-create the toolbar because it's gone for some reason
+                    preCaptureView->CreateAndSetToolbarL( R_CAM_STILL_PRECAPTURE_TOOLBAR );
+                    }
+                }
+            CCamCaptureSetupViewBase::HandleCommandL( ECamCmdInternalExit );
+            
+  
+            PRINT( _L("Camera CCamUserSceneSetupViewBase::HandleCommandL ECamCmdInternalExit OK") );
+            break;
+            }
+        case EAknSoftkeyCancel:
+            {
+            PRINT1( _L( "Camera <> CCamUserSceneSetupViewBase::HandleCommandL EAknSoftkeyCancel iCancelRequest=%d" ),iCancelRequest);
+            if( ! iCancelRequest ) // EFalse
+                {
+                if( !iController.IsViewFinding( ) && iVFRequested )
+                    {
+                    PRINT( _L( "Camera <> CCamUserSceneSetupViewBase::HandleCommandL viewfinder inactive" ));
+
+                    //viewfinder is not active then set to ETrue ...
+                    //and wait until controller is ready.
+                    iCancelRequest=ETrue;
+                    }
+                else
+                    {
+                    CCamCaptureSetupViewBase::HandleCommandL( aCommand );
+                    }                
+                }
+            break;
+            }
+            
+        case EAknSoftkeyOk:            
+            {
+            PRINT1( _L( "Camera <> CCamUserSceneSetupViewBase::HandleCommandL EAknSoftkeyOk iOkRequest=%d" ),iOkRequest);
+            if( ! iOkRequest ) // EFalse
+                {
+                if( !iController.IsViewFinding( ) && iVFRequested )
+                    {
+                    PRINT( _L( "Camera <> CCamUserSceneSetupViewBase::HandleCommandL viewfinder inactive" ));
+
+                    //viewfinder is not active then set to ETrue ...
+                    //and wait until controller is ready.
+                    iOkRequest=ETrue;
+                    }
+                else
+                    {
+                    CCamCaptureSetupViewBase::HandleCommandL( aCommand );
+                    }                
+                }
+            break;
+            }
+        default:
+            CCamCaptureSetupViewBase::HandleCommandL( aCommand );
+            
+        }
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::HandleCommandL ") );   		    
+    }
+                 
+    
+// -----------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::HandleForegroundEventL
+// Handle foreground event
+// -----------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::HandleForegroundEventL( TBool aForeground )
+    {
+    PRINT1( _L("Camera => CCamUserSceneSetupViewBase::HandleForegroundEventL %d"), aForeground );
+    CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
+    if ( aForeground )
+        {
+        // if foreground event is received while in videocall, go to standby with error
+        if ( iController.InVideocallOrRinging() && ECamNoOperation == iController.CurrentOperation() )
+            {
+            ExitAllModesL();
+            appUi->SetStandbyStatus( KErrInUse );
+            appUi->HandleCommandL( ECamCmdGoToStandby );
+            return;
+            }
+        else if ( !appUi->IsInPretendExit()  && !iNotifierPopupShowing )
+            {
+            // Register that we want to use the engine
+            IncrementCameraUsers();
+            iController.StartIdleTimer();
+            
+            // copied from still precapture handleforegroundevent implementations
+            iController.IsProfileSilent();
+            UpdateCbaL();
+            
+                        
+            // start viewfinder unless the is activating to standby or scene settings
+            // SwitchToInfoListBoxL( EInfoListBoxModeISO, EFalse ) where FullySkinned is EFalse, it
+            // indicate VF need to start in case of iInfoListBoxActive
+            if ( !iStandbyModeActive && !iSceneSettingModeActive && 
+                 !iUserSceneSetupModeActive )
+                {
+                iVFRequested=ETrue;
+                StartViewFinder();
+                }
+                        
+            }
+        else
+            {
+            // The view can get a foreground event while the application is
+            // actually in a pretend exit situation. This occurs when the view switch
+            // was called before the exit event, but didn't complete until after the
+            // exit event. In this case the view should not register an interest in
+            // the engine as the application is really in the background and the resources
+            // need to be released
+            }
+        }        
+    // To background
+    else if( !aForeground )
+        {
+        iNotifierPopupShowing = appUi->AppInBackground( ETrue ) && !appUi->AppInBackground( EFalse );        
+        PRINT( _L("Camera <> CCamUserSceneSetupViewBase::HandleForegroundEventL dec engine count") );
+        // Register that we nolonger need the engine
+        if( !iNotifierPopupShowing )
+            DecrementCameraUsers();
+        }
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::HandleForegroundEventL ") );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::DoActivateL
+// From CAknView activate the view
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::DoActivateL( const TVwsViewId& aPrevViewId, 
+            TUid aCustomMessageId, const TDesC8& aCustomMessage )
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::DoActivateL") );   	
+    iCancelRequest=EFalse;
+    iOkRequest=EFalse;
+    iVFRequested=EFalse;
+
+    StatusPane()->MakeVisible( ETrue );
+        	
+    CCamViewBase::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
+    SwitchToUserSceneSetupModeL();
+
+    // Need to monitor the controller for standby events
+    iController.AddControllerObserverL( this ); 
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::DoActivateL") );   	
+    }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::DoDeactivate
+// From CAknView deactivates the view
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::DoDeactivate()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::DoDeactivateL") );   		
+    CCamViewBase::DoDeactivate();
+    
+    iController.RemoveControllerObserver( this ); 
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::DoDeactivateL") );   		
+    }
+
+// -----------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::HandleControllerEventL
+// Handle controller events
+// -----------------------------------------------------------------------------
+//
+void 
+CCamUserSceneSetupViewBase
+::HandleControllerEventL( TCamControllerEvent aEvent, 
+                          TInt                /*aError*/ )
+  {
+  PRINT( _L( "Camera => CCamUserSceneSetupViewBase::HandleControllerEventL" ) );    
+  
+  switch( aEvent )
+    {
+/*
+    // ---------------------------------
+    case ECamEventOperationStateChanged:
+      {
+      switch ( iController.CurrentOperation() )
+        {
+        // Standby event
+        case ECamStandby:
+          {                               
+          ExitAllModesL();                              
+          // Get the UI to move to standby in the appropriate
+          // pre capture view
+          AppUi()->HandleCommandL( ECamCmdGoToStandby );
+          break;
+          }
+        default:
+          {
+          break;
+          }
+        }
+      break;
+      }
+*/
+    // ---------------------------------
+    case ECamEventControllerReady:
+      {
+      PRINT1( _L( "Camera <> CCamUserSceneSetupViewBase::HandleControllerEventL ECamEventControllerReady iCancelRequest=%d" ),iCancelRequest);
+      PRINT1( _L( "Camera <> CCamUserSceneSetupViewBase::HandleControllerEventL ECamEventControllerReady iOkRequest=%d" ),iOkRequest);      
+      iVFRequested=EFalse;
+
+      if( iCancelRequest )
+          {          
+          //CAncel has been requested and Cameraengine is now ready to
+          //switch view and continue cancel.
+          iCancelRequest=EFalse;
+          TRAP_IGNORE( HandleCommandL( EAknSoftkeyCancel ) );
+          }
+      else if( iOkRequest )
+          {
+          //Ok has been requested and Cameraengine is now ready to
+          //switch view and continue with Ok.
+          iOkRequest=EFalse;
+          TRAP_IGNORE( HandleCommandL( EAknSoftkeyOk ) );
+          }
+      
+      break;
+      }
+    default:
+      break;
+    // ---------------------------------
+    }
+  PRINT( _L( "Camera <= CCamUserSceneSetupViewBase::HandleControllerEventL") );    
+  }
+
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::CCamUserSceneSetupViewBase
+// C++ Constructor
+// ---------------------------------------------------------------------------
+//
+CCamUserSceneSetupViewBase::CCamUserSceneSetupViewBase
+( CCamAppController& aController )
+: CCamCaptureSetupViewBase( aController )
+    {
+    }
+    
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::ExitUserSceneSetupModeL
+// Exits the user scene setup mode
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::ExitUserSceneSetupModeL()
+    {    
+    iUserSceneSetupModeActive = EFalse;
+    iContainer->MakeVisible( ETrue );  
+
+    AppUi()->RemoveFromStack( iContainer );
+    }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::UpdateCbaL
+// Updates the command button array for this view
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::UpdateCbaL()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::UpdateCbaL()") );    	
+    // if videocall is active, set the softkeys already here	
+    if ( iController.InVideocallOrRinging() )
+        {
+        SetSoftKeysL( R_CAM_SOFTKEYS_OPTIONS_EXIT );	
+        }		
+    // if the view is in capture setup mode
+    else if ( iCaptureSetupModeActive )
+        {
+        if( iForceAvkonCBA )
+            {
+            SetSoftKeysL( R_AVKON_SOFTKEYS_OK_CANCEL__OK ); //Avkon softkeys. Not transparent
+            }
+        else
+            {
+            SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT );//color etc.
+            }
+        }
+    else if ( iSceneSettingModeActive )
+    	{
+    	SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE  );
+        if( iForceAvkonCBA )
+            {
+            EikSoftkeyPostingTransparency::MakeTransparent(
+                    *ViewCba(), EFalse );            
+            }
+    	}
+    else if ( iInfoListBoxActive )
+        {
+        SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT );
+        EikSoftkeyPostingTransparency::MakeTransparent(   
+                            *ViewCba(), !iForceAvkonCBA );
+        }
+    // if the view is user scene setup
+    else
+        {
+        SetSoftKeysL( R_AVKON_SOFTKEYS_BACK );
+        }
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::UpdateCbaL()") );    	    
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::SetTitlePaneTextL
+// Set the view's title text
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::SetTitlePaneTextL()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::SetTitlePaneTextL()") );    		
+    CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );   
+    // It is known that the container for this view is of the special
+    // type CCamUserSceneSetupContainer, and so we can use it's methods.
+    CCamUserSceneSetupContainer* userSceneSetup = 
+    static_cast<CCamUserSceneSetupContainer*>( iContainer );
+    appUi->SetTitleL( userSceneSetup->TitlePaneTextResourceId() );
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SetTitlePaneTextL()") );    		
+    }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::SwitchToUserSceneSetupModeL
+// Switches to the user scene setup mode.
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::SwitchToUserSceneSetupModeL()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::SwitchToUserSceneSetupModeL()") );  	   
+    iContainer->SetMopParent( this );   
+    
+    // Activate the menu control and mode.
+    AppUi()->AddToStackL( iContainer );
+    iContainer->ActivateL();
+    iContainer->MakeVisible( ETrue );
+    iUserSceneSetupModeActive = ETrue;
+    
+    StatusPane()->MakeVisible( ETrue );
+    
+    // Update the command button array.
+    iForceAvkonCBA=EFalse;
+    UpdateCbaL();
+    SetTitlePaneTextL();
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SwitchToUserSceneSetupModeL()") );  	   
+    }
+   
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::SwitchToCaptureSetupModeL
+// Switches the current mode to capture setup and activates a 
+// specific control..
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::SwitchToCaptureSetupModeL( TInt aSetupCommand )
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::SwitchToCaptureSetupModeL()") );  	   	
+    iUserSceneSetupModeActive = EFalse;
+    SetCaptureSetupModeActive(ETrue);
+    iContainer->MakeVisible( ETrue );  
+    AppUi()->RemoveFromStack( iContainer );
+    iVFRequested=ETrue;    
+    StartViewFinder();
+    iController.StartIdleTimer();
+
+    
+    // Remove the view's main container, and add the capture setup 
+    // control associated with the input command to the container stack.
+    CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( aSetupCommand, ETrue );
+   StatusPane()->MakeVisible( EFalse ); 	
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SwitchToCaptureSetupModeL()") );  	   	
+    }
+
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::ExitCaptureSetupModeL
+// Exit capture setup mode.
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::ExitCaptureSetupModeL()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::ExitCaptureSetupModeL()") );  	   		
+    StopViewFinder();
+	
+    StatusPane()->MakeVisible( ETrue );
+    CCamCaptureSetupViewBase::ExitCaptureSetupModeL();
+    
+    SwitchToUserSceneSetupModeL(); 
+    
+    iContainer->DrawDeferred();
+    
+    SetCaptureSetupModeActive(EFalse);
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::ExitCaptureSetupModeL()") );  	   		
+    }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::ExitSceneSettingModeL
+// Exit scene setting mode.
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::ExitSceneSettingModeL()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::ExitSceneSettingModeL()") );  	   			
+    CCamCaptureSetupViewBase::ExitSceneSettingModeL();
+    SwitchToUserSceneSetupModeL();
+    
+    iContainer->DrawDeferred();    
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::ExitSceneSettingModeL()") );  	   			
+    }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::ExitInfoListBoxL
+// Exit scene setting mode.
+// ---------------------------------------------------------------------------    
+//
+void CCamUserSceneSetupViewBase::ExitInfoListBoxL()
+	{
+	PRINT( _L("Camera => CCamUserSceneSetupViewBase::ExitInfoListBoxL()") );  	   				
+	StopViewFinder(); 
+		   				
+	CCamCaptureSetupViewBase::ExitInfoListBoxL();
+	SwitchToUserSceneSetupModeL();
+	
+	iContainer->DrawDeferred();
+	
+	StatusPane()->MakeVisible( ETrue );
+	PRINT( _L("Camera <= CCamUserSceneSetupViewBase::ExitInfoListBoxL()") );  	   				
+	}
+
+// -----------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::ExitAllModesL
+// Revert to normal mode
+// -----------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::ExitAllModesL()
+    {
+    PRINT( _L("Camera => CCamUserSceneSetupViewBase::ExitAllModesL()") );  	   					
+    if ( iSceneSettingModeActive )
+        {
+        ExitSceneSettingModeL();
+        }
+    if ( iCaptureSetupModeActive )
+        {
+        ExitCaptureSetupModeL();
+        }
+    if( iInfoListBoxActive )
+    	{
+    	ExitInfoListBoxL();
+    	}
+    PRINT( _L("Camera <= CCamUserSceneSetupViewBase::ExitAllModesL()") );  	   						
+    }
+
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::IsOnlyUserSceneSetupModeActive
+// Returns true if only the user scene setup mode is active.
+// ---------------------------------------------------------------------------
+//
+TBool CCamUserSceneSetupViewBase::IsOnlyUserSceneSetupModeActive()
+    {
+    return ( iUserSceneSetupModeActive && !iCaptureSetupModeActive 
+        && !iSceneSettingModeActive && !iUserScenePageModeActive );
+    }
+
+// ---------------------------------------------------------------------------
+// CCamUserSceneSetupViewBase::DisplayResetUserSceneDlgL
+// Display reset user setting confirmation dialog
+// ---------------------------------------------------------------------------
+//
+void CCamUserSceneSetupViewBase::DisplayResetUserSceneDlgL()
+	{
+	HBufC* confirmationText;
+    confirmationText = StringLoader::LoadLC( R_CAM_RESET_USER_SCENE_NOTE_TEXT );
+    CAknQueryDialog* confirmationDialog = new( ELeave )CAknQueryDialog( *confirmationText );
+    CleanupStack::PopAndDestroy( confirmationText );
+    
+    if ( confirmationDialog->ExecuteLD( R_CAM_RESET_USER_SCENE_NOTE ) )
+        {
+        iController.ResetUserSceneL();
+        CCamUserSceneSetupContainer* userSceneSetup = 
+                static_cast<CCamUserSceneSetupContainer*>( iContainer );
+
+        userSceneSetup->UpdateListItems();
+        userSceneSetup->UpdateDisplayL();
+        } 
+	}
+
+//  End of File
+
+
+
+