camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp
branchRCL_3
changeset 12 8c55c525d5d7
parent 0 1ddebce53859
child 16 d486e5e3cc9a
equal deleted inserted replaced
11:792dfc98fb3b 12:8c55c525d5d7
    95         case ECamCmdCaptureSetupBrightnessStill:
    95         case ECamCmdCaptureSetupBrightnessStill:
    96         case ECamCmdCaptureSetupContrastStill:
    96         case ECamCmdCaptureSetupContrastStill:
    97         case ECamCmdCaptureSetupBrightnessVideo:
    97         case ECamCmdCaptureSetupBrightnessVideo:
    98         case ECamCmdCaptureSetupContrastVideo:
    98         case ECamCmdCaptureSetupContrastVideo:
    99         case ECamCmdCaptureSetupImageSharpnessStill:
    99         case ECamCmdCaptureSetupImageSharpnessStill:
   100             {
       
   101             SwitchToCaptureSetupModeL( aCommand );
       
   102             }
       
   103             break;
       
   104         case ECamCmdCaptureSetupFlashStill:
   100         case ECamCmdCaptureSetupFlashStill:
   105         case ECamCmdCaptureSetupSelfTimer:
   101         case ECamCmdCaptureSetupSelfTimer:
   106             {
   102             {
   107             iController.ExitViewfinderMode( ECamControllerImage );
       
   108             SwitchToCaptureSetupModeL( aCommand );
   103             SwitchToCaptureSetupModeL( aCommand );
   109             }
   104             }
   110             break;
   105             break;
   111         case ECamCmdCaptureSetupSceneStill:
   106         case ECamCmdCaptureSetupSceneStill:
   112         case ECamCmdCaptureSetupSceneVideo:
   107         case ECamCmdCaptureSetupSceneVideo:
   181                 }
   176                 }
   182             }
   177             }
   183             //lint -fallthrough
   178             //lint -fallthrough
   184         case EAknSoftkeyOk:
   179         case EAknSoftkeyOk:
   185             {
   180             {
       
   181             CaptureSetupModeSelection();
       
   182                 
       
   183             }
       
   184             break;
       
   185         case ECamMSKCmdAppChange:
       
   186         case EAknSoftkeySelect:
       
   187             {
   186             if ( iCaptureSetupModeActive && iCaptureSetupControlHandler )
   188             if ( iCaptureSetupModeActive && iCaptureSetupControlHandler )
   187                 {
   189                 {
   188                 TCamSettingItemIds iSettingItemId = iCaptureSetupControlHandler->SettingType();
   190                 CaptureSetupModeSelection();
   189                 if ( iSettingItemId == ECamSettingItemDynamicSelfTimer )
       
   190                     {
       
   191                     iController.SetSlideInSelfTimerPreview(EFalse);
       
   192                     }
       
   193 
       
   194                 iController.CommitPreviewChanges();
       
   195                 // fallthrough to exit CaptureSetup mode
   191                 // fallthrough to exit CaptureSetup mode
   196                 }
   192                 }
   197             if( appUi && appUi->APHandler()->AccessedViaAP() )
   193             else if ( iSceneSettingContainer )
   198                {
       
   199                if( !userSceneActive)
       
   200                 	{
       
   201                 	appUi->APHandler()->APOperationComplete();
       
   202                 	}
       
   203                ExitAllModesL();
       
   204                }
       
   205             }
       
   206             break;
       
   207         case ECamMSKCmdAppChange:
       
   208         case EAknSoftkeySelect:
       
   209             {
       
   210             if ( iSceneSettingContainer )
       
   211                 {
   194                 {
   212                 
   195                 
   213                 if ( iSceneSettingContainer->UserSceneHighlighted() )
   196                 if ( iSceneSettingContainer->UserSceneHighlighted() )
   214                     {                  
   197                     {                  
   215                     // use context specific ok options menu if user scene is highlighted
   198                     // use context specific ok options menu if user scene is highlighted
   355 // CCamCaptureSetupViewBase::CCamCaptureSetupViewBase
   338 // CCamCaptureSetupViewBase::CCamCaptureSetupViewBase
   356 // C++ constructor
   339 // C++ constructor
   357 // ---------------------------------------------------------------------------
   340 // ---------------------------------------------------------------------------
   358 //
   341 //
   359 CCamCaptureSetupViewBase::CCamCaptureSetupViewBase( CCamAppController& aController )
   342 CCamCaptureSetupViewBase::CCamCaptureSetupViewBase( CCamAppController& aController )
   360     : CCamViewBase( aController )
   343     : CCamViewBase( aController ),iForceAvkonCBA(EFalse)
   361     {
   344     {
   362     }
   345     }
   363 
   346 
   364 // ---------------------------------------------------------------------------
   347 // ---------------------------------------------------------------------------
   365 // CCamCaptureSetupViewBase::CreateCaptureSetupControlHandlerL
   348 // CCamCaptureSetupViewBase::CreateCaptureSetupControlHandlerL
   510             {
   493             {
   511             settingItemId = ECamSettingItemUserSceneLightSensitivity;
   494             settingItemId = ECamSettingItemUserSceneLightSensitivity;
   512             iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
   495             iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
   513             }
   496             }
   514             break;
   497             break;
       
   498         case ECamCmdSetUserDefault:
       
   499             { 
       
   500             settingItemId = ECamSettingItemUserSceneDefault;
       
   501             iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE;
       
   502             }
       
   503             break;
   515         default:
   504         default:
   516             {
   505             {
   517             User::Leave( KErrNotSupported );
   506             User::Leave( KErrNotSupported );
   518             }
   507             }
   519             break;
   508             break;
   550 // ---------------------------------------------------------------------------
   539 // ---------------------------------------------------------------------------
   551 // CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL
   540 // CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL
   552 // Enter capture setup mode
   541 // Enter capture setup mode
   553 // ---------------------------------------------------------------------------
   542 // ---------------------------------------------------------------------------
   554 //
   543 //
   555 void CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( TInt aSetupCommand )
   544 void CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( TInt aSetupCommand, TBool aFullScreenVF )
   556     {
   545     {
   557     __ASSERT_DEBUG( !iCaptureSetupControlHandler && !iCaptureSetupContainer, CamPanic( ECamPanicResourceLeak ) );
   546     __ASSERT_DEBUG( !iCaptureSetupControlHandler && !iCaptureSetupContainer, CamPanic( ECamPanicResourceLeak ) );
   558 
   547 
   559     CreateCaptureSetupControlHandlerL( aSetupCommand );
   548     CreateCaptureSetupControlHandlerL( aSetupCommand );
   560     // Cleanup the view correctly if a leave occurs
   549     // Cleanup the view correctly if a leave occurs
   566         {
   555         {
   567         // Space for visible statuspane for non-touch device
   556         // Space for visible statuspane for non-touch device
   568         AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect );
   557         AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect );
   569         }
   558         }
   570     iCaptureSetupContainer = CCamCaptureSetupContainer::NewL( iController, 
   559     iCaptureSetupContainer = CCamCaptureSetupContainer::NewL( iController, 
   571                                    *this, *iCaptureSetupControlHandler, rect );
   560                                    *this, *iCaptureSetupControlHandler, rect, aFullScreenVF );
   572     iCaptureSetupContainer->SetMopParent( this ); 
   561     iCaptureSetupContainer->SetMopParent( this ); 
   573     appUi->AddToStackL( *this, iCaptureSetupContainer );
   562     appUi->AddToStackL( *this, iCaptureSetupContainer );
   574     iCaptureSetupContainer->ActivateL();
   563     iCaptureSetupContainer->ActivateL();
   575     iCaptureSetupContainer->DrawNow();
   564     iCaptureSetupContainer->DrawNow();
   576 
   565 
   717 // ---------------------------------------------------------------------------
   706 // ---------------------------------------------------------------------------
   718 // CCamCaptureSetupViewBase::SwitchToInfoListBoxL
   707 // CCamCaptureSetupViewBase::SwitchToInfoListBoxL
   719 // Show InfoListBox
   708 // Show InfoListBox
   720 // ---------------------------------------------------------------------------
   709 // ---------------------------------------------------------------------------
   721 //
   710 //
   722 void CCamCaptureSetupViewBase::SwitchToInfoListBoxL( TCamInfoListBoxMode /* aMode */ )
   711 void CCamCaptureSetupViewBase::SwitchToInfoListBoxL( TCamInfoListBoxMode aMode, TBool aFullySkinned )
   723     {
   712     {
   724     // Cleanup the view correctly if a leave occurs
   713     // Cleanup the view correctly if a leave occurs
   725     CleanupStack::PushL( TCleanupItem( CleanupInfoListBox, this ) );
   714     CleanupStack::PushL( TCleanupItem( CleanupInfoListBox, this ) );
   726     CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
   715     CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
   727     iInfoListBoxContainer->SetMopParent( this );  
   716     iInfoListBoxContainer->SetMopParent( this );  
   728     appUi->AddToStackL( *this, iInfoListBoxContainer );
   717     appUi->AddToStackL( *this, iInfoListBoxContainer );
   729     iInfoListBoxContainer->ActivateL();
   718     iInfoListBoxContainer->ActivateL();
   730     // UpdateCbaL need this boolean to be set in
   719     // UpdateCbaL need this boolean to be set in
   731     // order to return the correct CBA
   720     // order to return the correct CBA
   732     SetInfoListBoxMode(ETrue);
   721     SetInfoListBoxMode(ETrue, aFullySkinned);
   733     UpdateCbaL();
   722     UpdateCbaL();
   734     SetTitlePaneTextL();
   723     SetTitlePaneTextL();
   735     appUi->PushDefaultNaviPaneL();
   724     appUi->PushDefaultNaviPaneL();
   736     CleanupStack::Pop(); // CleanupSceneSettingContainer
   725     CleanupStack::Pop(); // CleanupSceneSettingContainer
   737 
   726 
   969     {
   958     {
   970     return iSettingModeTitleResourceId;
   959     return iSettingModeTitleResourceId;
   971     }
   960     }
   972 
   961 
   973 
   962 
       
   963 void CCamCaptureSetupViewBase::CaptureSetupModeSelection()
       
   964     {
       
   965     
       
   966     TUid view = Id();
       
   967     
       
   968     TBool userSceneActive = ( view.iUid == ECamViewIdPhotoUserSceneSetup );
       
   969     
       
   970     CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
       
   971     
       
   972     if ( iCaptureSetupModeActive && iCaptureSetupControlHandler )
       
   973         {
       
   974         TCamSettingItemIds iSettingItemId = iCaptureSetupControlHandler->SettingType();
       
   975         if ( iSettingItemId == ECamSettingItemDynamicSelfTimer )
       
   976             {
       
   977             iController.SetSlideInSelfTimerPreview(EFalse);
       
   978             }
       
   979     
       
   980         iController.CommitPreviewChanges();    
       
   981         // fallthrough to exit CaptureSetup mode
       
   982         }
       
   983     if( appUi && appUi->APHandler()->AccessedViaAP() )
       
   984        {
       
   985        if( !userSceneActive)
       
   986             {
       
   987             appUi->APHandler()->APOperationComplete();
       
   988             }
       
   989        ExitAllModesL();
       
   990        }
       
   991     
       
   992     }
       
   993 
   974 // ---------------------------------------------------------------------------
   994 // ---------------------------------------------------------------------------
   975 // CCamCaptureSetupViewBase::DynInitMenuPaneL
   995 // CCamCaptureSetupViewBase::DynInitMenuPaneL
   976 // Dynamically initialise the options menu
   996 // Dynamically initialise the options menu
   977 // ---------------------------------------------------------------------------
   997 // ---------------------------------------------------------------------------
   978 //
   998 //
  1045 // ---------------------------------------------------------------------------
  1065 // ---------------------------------------------------------------------------
  1046 // CCamCaptureSetupViewBase::SetInfoListBoxMode
  1066 // CCamCaptureSetupViewBase::SetInfoListBoxMode
  1047 // Sets the iInfoListBoxActive flag
  1067 // Sets the iInfoListBoxActive flag
  1048 // ---------------------------------------------------------------------------
  1068 // ---------------------------------------------------------------------------
  1049 //
  1069 //
  1050 void CCamCaptureSetupViewBase::SetInfoListBoxMode( TBool aActive )
  1070 void CCamCaptureSetupViewBase::SetInfoListBoxMode( TBool aActive, TBool aFullySkinned )
  1051     {
  1071     {
  1052     // We need to inform the AppUi
  1072     // We need to inform the AppUi
  1053     iInfoListBoxActive = aActive;
  1073     iInfoListBoxActive = aActive;
  1054 
  1074 
  1055     CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
  1075     CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );