--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,694 @@
+/*
+* Copyright (c) 2007-2009 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: Still image Post-capture view class for Camera application*
+*/
+
+
+// INCLUDE FILES
+
+#include "CamAppUiBase.h"
+#include "CamAppController.h"
+#include "CamStillPostCaptureView.h"
+#include "CamPostCaptureContainer.h"
+#include "CamLogger.h"
+#include "CamAppUi.h"
+#include <eikmenub.h>
+#include <StringLoader.h>
+#include <AknQueryDialog.h>
+#include <AiwCommon.hrh>
+#include <akntoolbar.h>
+#include <aknbutton.h>
+#include "CamUtility.h"
+
+#include "Cam.hrh"
+
+#include <cameraapp.rsg>
+#include <vgacamsettings.rsg>
+
+#include <sendnorm.rsg>
+#include <sendui.h>
+#ifndef __WINS__
+//#include <SFIUtilsAppInterface.h>
+
+#include <aknnotewrappers.h> // CAknInformationNote
+#endif
+
+#include "camactivepalettehandler.h"
+#include "camoneclickuploadutility.h"
+#include "CameraUiConfigManager.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "CamStillPostCaptureViewTraces.h"
+#endif
+
+
+//CONSTANTS
+_LIT( KCamImageMimeType, "image/jpeg" );
+
+// ========================= MEMBER FUNCTIONS ================================
+
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::NewLC
+// Symbian OS two-phased constructor
+// ---------------------------------------------------------------------------
+//
+CCamStillPostCaptureView* CCamStillPostCaptureView::NewLC( CCamAppController& aController )
+ {
+ CCamStillPostCaptureView* self =
+ new( ELeave ) CCamStillPostCaptureView( aController );
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView destructor
+//
+// ---------------------------------------------------------------------------
+//
+CCamStillPostCaptureView::~CCamStillPostCaptureView()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::Id
+// Returns UID of view
+// ---------------------------------------------------------------------------
+//
+TUid CCamStillPostCaptureView::Id() const
+ {
+ return TUid::Uid( ECamViewIdStillPostCapture );
+ }
+
+// -----------------------------------------------------------------------------
+// CCamStillPostCaptureView::HandleCommandL
+// Handle commands
+// -----------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::HandleCommandL( TInt aCommand )
+ {
+ PRINT1( _L("Camera => CCamStillPostCaptureView::HandleCommandL (%d)"), aCommand )
+ switch ( aCommand )
+ {
+ case EAknSoftkeySelect:
+ {
+ CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
+ if ( ECamImageCaptureTimeLapse == appUi->CurrentBurstMode() )
+ {
+ CCamPostCaptureViewBase::HandleCommandL( aCommand );
+ }
+ // In post-capture select key is disabled when embedded
+ else if ( !iEmbedded )
+ {
+ CEikMenuBar* menuBar = MenuBar();
+ if ( menuBar )
+ {
+ menuBar->SetMenuTitleResourceId( ROID(R_CAM_STILL_POST_CAPTURE_OK_MENUBAR_ID));
+ menuBar->TryDisplayMenuBarL();
+ menuBar->SetMenuTitleResourceId( ROID(R_CAM_STILL_POST_CAPTURE_MENUBAR_ID));
+ }
+ CCamPostCaptureViewBase::HandleCommandL( aCommand );
+ }
+ else
+ {
+ AppUi()->HandleCommandL( ECamCmdSelect );
+ }
+ }
+ break;
+ case ECamCmdDeleteSequence:
+ {
+ if ( DisplayDeleteSequenceNoteL() )
+ {
+ HandleCommandL( ECamCmdNewPhoto );
+ }
+ }
+ break;
+ case ECamCmdSendToCallerMultimedia:
+/* In-Call-Send no longer used, skip to case ECamQuickSend.
+ {
+#ifndef __WINS__
+ DoInCallSendL();
+#endif
+ }
+ break;
+*/
+ case ECamCmdQuickSend:
+ {
+/*#ifndef __WINS__
+ if( iSFIUtils->IsCLIValidL() )
+ {
+ DoInCallSendL();
+ }
+ else
+#endif // __WINS__*/
+ //{
+ DoSendAsL();
+ //}
+ }
+ break;
+
+ case ECamCmdRenameImage:
+ {
+ CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );;
+ QueryRenameL( ECamControllerImage );
+ // inform the Media gallery of name change
+ TRAPD( ignore,
+ appUi->HandleControllerEventL( ECamEventMediaFileChanged, KErrNone ) );
+ if ( ignore )
+ {
+ // Do nothing (removes build warning)
+ }
+ break;
+ }
+
+ case ECamCmdPrint:
+ {
+ PRINT( _L("Camera => CCamStillPostCaptureView::HandleCommandL PRINT"))
+
+ CAiwGenericParamList& inParams = iAiwServiceHandler->InParamListL();
+ CAiwGenericParamList& outParams = iAiwServiceHandler->OutParamListL();
+ // Add file path to AIW parameters
+ TAiwVariant variant( iController.CurrentFullFileName() );
+ TAiwGenericParam param( EGenericParamFile, variant );
+ inParams.AppendL( param );
+
+ iAiwServiceHandler->ExecuteServiceCmdL( KAiwCmdPrint, inParams, outParams );
+ // we are 'embedding' Edit & Print apps
+ static_cast<CCamAppUiBase*>( AppUi() ) ->SetEmbedding( ETrue );
+ }
+ break;
+ case ECamCmdPrintPlugin:
+ {
+ // we are 'embedding' Edit & Print apps
+ PRINT( _L("Camera => CCamStillPostCaptureView::HandleCommandL ECamCmdPrintPlugin"))
+ static_cast<CCamAppUiBase*>( AppUi() ) ->SetEmbedding( ETrue );
+ }
+ break;
+
+ case ECamCmdPrintIntent:
+ {
+ // we are 'embedding' Edit & Print apps
+ PRINT( _L("Camera => CCamStillPostCaptureView::HandleCommandL ECamCmdPrintIntent"))
+ static_cast<CCamAppUiBase*>( AppUi() ) ->SetEmbedding( ETrue );
+ }
+ break;
+
+ default:
+ {
+ PRINT1( _L("Camera => CCamStillPostCaptureView::HandleCommandL default cmd (%d)"), aCommand )
+ // Handle AIW commands
+ TInt aiwServiceCmd = iAiwServiceHandler->ServiceCmdByMenuCmd( aCommand );
+ if ( aiwServiceCmd != KAiwCmdNone )
+ {
+ PRINT( _L("CCamStillPostCaptureView::HandleCommandL AIW command enabling prevention of timeout") );
+
+ CAiwGenericParamList& inParams = iAiwServiceHandler->InParamListL();
+ CAiwGenericParamList& outParams = iAiwServiceHandler->OutParamListL();
+ // Add file path to AIW parameters
+ TAiwVariant variant( iController.CurrentFullFileName() );
+ TAiwGenericParam param( EGenericParamFile, variant );
+ inParams.AppendL( param );
+
+ TCamOrientation orientation = static_cast<CCamAppUiBase*>( AppUi() )->CamOrientation();
+
+ // Don't add the mime type if uploading, since Share client
+ // will figure it out from the file
+ if ( aiwServiceCmd != KAiwCmdUpload )
+ {
+ // Set as contact call image needs image MIME type as AIW param
+ // Set as wall paper requires MIME type also.
+ TAiwVariant variant2( KCamImageMimeType );
+ TAiwGenericParam param2( EGenericParamMIMEType, variant2 );
+ inParams.AppendL( param2 );
+ }
+
+ iAiwServiceHandler->ExecuteMenuCmdL( aCommand, inParams, outParams, 0, this );
+ PRINT( _L("CCamStillPostCaptureView::HandleCommandL AIW command") );
+
+ // To let camera draw the captured image after assigning an image
+ // to contact from postcapture view, don't set iEmbedding to ETrue
+ // when assign an image to contact from postcapture view.
+ if ( ECamCmdEditVideo != aCommand )
+ {
+ // We are 'embedding' Edit & Print apps
+ static_cast<CCamAppUiBase*>( AppUi() ) ->SetEmbedding( ETrue );
+ }
+ }
+ else
+ {
+ CCamPostCaptureViewBase::HandleCommandL( aCommand );
+ }
+ }
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CCamStillPostCaptureView::DoActivateL
+// Activates the view
+// -----------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::DoActivateL(
+ const TVwsViewId& aPreViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage )
+ {
+ OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, CCAMSTILLPOSTCAPTUREVIEW_DOACTIVATEL, "e_CCamStillPostCaptureView_DoActivateL 1" );
+ PRINT( _L("Camera => CCamStillPostCaptureView::DoActivateL"))
+ PERF_EVENT_START_L2( EPerfEventStillPostCaptureViewActivation );
+ CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
+
+ TBool timeLapseOn = (ECamImageCaptureTimeLapse == appUi->CurrentBurstMode());
+
+ // Ensure the correct menu is used for the current mode.
+ CEikMenuBar* menuBar = MenuBar();
+ if ( menuBar )
+ {
+ if ( timeLapseOn )
+ {
+ menuBar->SetMenuTitleResourceId(
+ ROID(R_CAM_TIMELAPSE_POST_CAPTURE_MENUBAR_ID));
+ }
+ else
+ {
+ menuBar->SetMenuTitleResourceId(
+ ROID(R_CAM_STILL_POST_CAPTURE_MENUBAR_ID));
+ }
+ }
+ /*if ( iController.IsTouchScreenSupported() )
+ {
+ if ( appUi->IsSecondCameraEnabled() )
+ {
+ if ( iOneClickUploadUtility->OneClickUploadSupported() )
+ {
+ TInt resourceId = appUi->IsQwerty2ndCamera()?
+ R_CAM_STILL_POSTCAPTURE_TOOLBAR_LANDSCAPE_UPLOAD:
+ R_CAM_STILL_POSTCAPTURE_TOOLBAR_PORTRAIT_UPLOAD;
+ //CreateAndSetToolbarL( resourceId );
+ }
+ else
+ {
+ TInt resourceId = appUi->IsQwerty2ndCamera()?
+ R_CAM_STILL_POSTCAPTURE_TOOLBAR_LANDSCAPE:
+ R_CAM_STILL_POSTCAPTURE_TOOLBAR_PORTRAIT;
+ CreateAndSetToolbarL( resourceId );
+ }
+ }
+ else
+ {
+ if ( iOneClickUploadUtility->OneClickUploadSupported() )
+ {
+ CreateAndSetToolbarL(
+ R_CAM_STILL_POSTCAPTURE_TOOLBAR_UPLOAD );
+ }
+ else
+ {
+ CreateAndSetToolbarL(
+ R_CAM_STILL_POSTCAPTURE_TOOLBAR );
+ }
+ }
+ }*/
+
+ iAiwServiceHandler->Reset();
+ CCamPostCaptureViewBase::DoActivateL(
+ aPreViewId, aCustomMessageId, aCustomMessage );
+
+ PERF_EVENT_END_L2( EPerfEventStillPostCaptureViewActivation );
+ //iAiwServiceHandler->Reset();
+ // attach interest for PRINT from Active Toolbar
+ iAiwServiceHandler->AttachL( R_CAM_MOVE_TO_STILL_IMAGE_INTEREST_AT );
+
+ iAiwServiceHandler->AttachMenuL( ROID(R_CAM_STILL_POST_CAPTURE_MENU_ID),
+ R_CAM_MOVE_TO_STILL_IMAGE_INTEREST );
+
+ iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID),
+ R_CAM_SHARE_ON_OVI_INTEREST );
+
+ // SHARE_AIW
+ iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID),
+ R_CAM_AIW_VIEW_INTEREST );
+
+ if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) != ECamNoEditorSupport )
+ {
+ iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID),
+ R_CAM_SET_AS_CALL_IMAGE_INTEREST_EDITOR );
+ }
+ else
+ {
+ iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID),
+ R_CAM_SET_AS_CALL_IMAGE_INTEREST );
+ }
+
+ OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP1_CCAMSTILLPOSTCAPTUREVIEW_DOACTIVATEL, "e_CCamStillPostCaptureView_DoActivateL 0" );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CCamStillPostCaptureView::DisplayDeleteNoteL()
+// Display the delete confirmation note
+// -----------------------------------------------------------------------------
+//
+TBool CCamStillPostCaptureView::DisplayDeleteNoteL()
+ {
+ // Display the delete confirmation note
+ TInt err = KErrNone;
+ HBufC* confirmationText;
+ confirmationText = StringLoader::LoadLC( R_CAM_STILL_POST_CAPTURE_DELETE_NOTE_TEXT );
+ CAknQueryDialog* confirmationDialog = new( ELeave )CAknQueryDialog( *confirmationText );
+ CleanupStack::PopAndDestroy( confirmationText );
+ if ( confirmationDialog->ExecuteLD( R_CAM_STILL_POST_CAPTURE_DELETE_NOTE ) )
+ {
+ if ( iEmbedded )
+ {
+ //To prevent sofkeys blinking when capturing, we need to blank
+ //the softkeys here
+ BlankSoftkeysL();
+ Cba()->DrawNow();
+ }
+ err = iController.DeleteCurrentFile();
+ if ( err )
+ {
+ User::Leave( err );
+ }
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CCamStillPostCaptureView::DisplayDeleteSequenceNoteL()
+// Display the delete confirmation note for a sequence of images
+// -----------------------------------------------------------------------------
+//
+TBool CCamStillPostCaptureView::DisplayDeleteSequenceNoteL()
+ {
+ // Display the delete sequence confirmation note
+ HBufC* confirmationText;
+
+ confirmationText = StringLoader::LoadLC( R_CAM_BURST_DELETE_MULTIPLE_NOTE_TEXT, iController.TimeLapseImageCount() );
+
+ // Create the dialog with the text, and show it to the user
+ CAknQueryDialog* confirmationDialog = new( ELeave )CAknQueryDialog( *confirmationText );
+ CleanupStack::PopAndDestroy( confirmationText );
+
+ if ( confirmationDialog->ExecuteLD( R_CAM_BURST_DELETE_MULTIPLE_NOTE ) )
+ {
+ iController.DeleteTimeLapseFiles();
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::CCamStillPostCaptureView
+// C++ constructor
+// ---------------------------------------------------------------------------
+//
+CCamStillPostCaptureView::CCamStillPostCaptureView( CCamAppController& aController )
+ : CCamPostCaptureViewBase( aController )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::ConstructL
+// Symbian OS 2nd phase constructor
+// ---------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::ConstructL()
+ {
+ BaseConstructL( ROID(R_CAM_STILL_POST_CAPTURE_VIEW_ID));
+ CCamPostCaptureViewBase::ConstructL();
+
+ iRockerKeyPress = EFalse;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::DoDeactivate
+// Deactivate this view
+// ---------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::DoDeactivate()
+ {
+ CCamPostCaptureViewBase::DoDeactivate();
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::SetTitlePaneTextL
+// Set the view's title text
+// ---------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::SetTitlePaneTextL()
+ {
+ TBool titleAlwaysShowsFileName = EFalse;
+
+ CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
+ if ( appUi->CamOrientation() == ECamOrientationViewMode ||
+ titleAlwaysShowsFileName )
+ {
+ appUi->SetTitleL( iController.CurrentImageName() );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::ProcessCommandL
+// Handling ECamCmdToggleActiveToolbar from any of the PostCaptureView's
+// either Image/Video.
+// ---------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::ProcessCommandL( TInt aCommand )
+ {
+ CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
+ TCamOrientation orientation = appUi->CamOrientation();
+ if( orientation == ECamOrientationCamcorder ||
+ orientation == ECamOrientationCamcorderLeft ||
+ orientation == ECamOrientationPortrait )
+ {
+ if ( aCommand == ECamCmdToggleActiveToolbar )
+ {
+ CCamPostCaptureViewBase::HandleCommandL( aCommand );
+ }
+ else
+ {
+ CAknView::ProcessCommandL( aCommand );
+ }
+ }
+ else
+ {
+ if ( aCommand == EAknSoftkeyContextOptions && !iRockerKeyPress )
+ {
+ iRockerKeyPress = ETrue;
+ MenuBar()->SetContextMenuTitleResourceId( ROID(R_CAM_STILL_POST_CAPTURE_MENUBAR_ID) );
+ // Here we launch the Context Options by Hiding Help and Exit
+ // Check DynInitMenuPaneL() method and search for iRockerKeyPress for more details
+ MenuBar()->SetMenuType( CEikMenuBar::EMenuContext );
+ MenuBar()->TryDisplayMenuBarL();
+ // Here we again set back the type of menu to "Options" when pressed LSK
+ MenuBar()->SetMenuType( CEikMenuBar::EMenuOptions );
+ }
+ else
+ {
+ CAknView::ProcessCommandL( aCommand );
+ }
+ }
+ // CALL THE BASE CLASS
+
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::DynInitMenuPaneL
+// Changes MenuPane dynamically
+// ---------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
+ {
+ CCamPostCaptureViewBase::DynInitMenuPaneL( aResourceId, aMenuPane );
+
+ if ( iAiwServiceHandler && iAiwServiceHandler->IsAiwMenu( aResourceId ) )
+ {
+ CAiwGenericParamList& paramList = iAiwServiceHandler->InParamListL();
+ TAiwVariant variant( iController.CurrentFullFileName() );
+ TAiwGenericParam param( EGenericParamFile, variant );
+ paramList.AppendL( param );
+
+ // Set as contact call image needs image MIME type as AIW param
+ TCamOrientation orientation = static_cast<CCamAppUiBase*>( AppUi() )->CamOrientation();
+
+ TAiwVariant variant2( KCamImageMimeType );
+ TAiwGenericParam param2( EGenericParamMIMEType, variant2 );
+ paramList.AppendL( param2 );
+
+ iAiwServiceHandler->InitializeMenuPaneL(
+ *aMenuPane,
+ aResourceId,
+ ECamCmdAIWCommands,
+ paramList );
+ }
+
+ if ( iAiwServiceHandler )
+ {
+ // handle any AIW menu cascades
+ if ( iAiwServiceHandler->HandleSubmenuL( *aMenuPane ) )
+ {
+ return;
+ }
+ }
+
+ if ( aResourceId == ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID ) ||
+ aResourceId == ROID( R_CAM_STILL_POST_CAPTURE_OK_MENU_ID ) )
+ {
+ TInt itemPos = 0;
+ if ( aMenuPane->MenuItemExists( ECamCmdSendToCallerMultimedia, itemPos ) )
+ {
+ aMenuPane->SetItemDimmed(
+ ECamCmdSendToCallerMultimedia, ETrue );
+ }
+
+ TInt editorSupport = iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport);
+
+ if( editorSupport == ECamNoEditorSupport ||
+ editorSupport == ECamEditorSupportInOptions )
+ {
+ if ( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) )
+ {
+ aMenuPane->SetItemDimmed(
+ ECamCmdSend, ETrue );
+ }
+ }
+ if( editorSupport == ECamNoEditorSupport ||
+ editorSupport == ECamEditorSupportInToolbar )
+ {
+ if ( aMenuPane->MenuItemExists( ECamCmdEditPhoto, itemPos ) )
+ {
+ aMenuPane->SetItemDimmed(
+ ECamCmdEditPhoto, ETrue );
+ }
+ }
+
+ /*
+ * MSK : ContextOptions --> We just hide Help and Exit from the Options Menu when
+ * the MSK is pressed in the postcapture still view
+ * iRockerKeyPress represents MSK key event in still postcapture view
+ */
+ if ( aMenuPane->MenuItemExists( EAknCmdHelp, itemPos ) &&
+ aMenuPane->MenuItemExists( ECamCmdInternalExit, itemPos ) )
+ {
+ if ( iRockerKeyPress )
+ { // We hide Help and Exit
+ aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
+ aMenuPane->SetItemDimmed( ECamCmdInternalExit, ETrue );
+ iRockerKeyPress = EFalse;
+ }
+ else
+ { // We show Help and Exit
+ aMenuPane->SetItemDimmed( EAknCmdHelp, EFalse );
+ aMenuPane->SetItemDimmed( ECamCmdInternalExit, EFalse );
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::HandleNotifyL
+// Handles any notification caused by asynchronous ExecuteCommandL
+// or event.
+// ---------------------------------------------------------------------------
+//
+TInt CCamStillPostCaptureView::HandleNotifyL(
+ TInt /*aCmdId*/,
+ TInt aEventId,
+ CAiwGenericParamList& /*aEventParamList*/,
+ const CAiwGenericParamList& /*aInParamList*/ )
+ {
+ //AIW fails to assign. eg. the contact is locked for being used now.
+ if ( aEventId == KAiwEventError && iController.IsAppUiAvailable() )
+ {
+ CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
+ TRAP_IGNORE( appUi->HandleCameraErrorL( KErrInUse ) );
+ }
+ return 0;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CCamStillPostCaptureView::DynInitToolbarL
+// Dynamically initialize toolbar contents
+// ---------------------------------------------------------------------------
+//
+void CCamStillPostCaptureView::DynInitToolbarL( TInt aResourceId,
+ CAknToolbar* aToolbar )
+ {
+ PRINT2( _L("Camera => CCamStillPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar );
+ (void)aResourceId; //remove compiler warning
+
+ if( aToolbar && iController.IsTouchScreenSupported() )
+ {
+ // HideItem will not do anything if a button for the given
+ // command ID is not found.
+ if( iEmbedded )
+ {
+ aToolbar->HideItem( ECamCmdSend, ETrue, EFalse );
+ aToolbar->HideItem( ECamCmdEdit, ETrue, EFalse );
+ aToolbar->HideItem( ECamCmdPhotos, ETrue, EFalse );
+ aToolbar->HideItem( ECamCmdOneClickUpload, ETrue, EFalse );
+ aToolbar->HideItem( ECamCmdDelete, ETrue, EFalse );
+ }
+ else
+ {
+ TInt editorSupport = iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport);
+ if( editorSupport == ECamEditorSupportInToolbar )
+ {
+ aToolbar->RemoveItem( ECamCmdSend );
+ CAknButton* editButton = dynamic_cast<CAknButton*>(aToolbar->ControlOrNull( ECamCmdEdit ));
+ if( editButton )
+ {
+ CAknButtonState* state = editButton->State();
+ if( state )
+ {
+ HBufC* helpText = StringLoader::LoadLC( R_QTN_LCAM_TT_IMAGE_EDITOR );
+ state->SetHelpTextL(*helpText);
+ CleanupStack::PopAndDestroy(helpText);
+ }
+ }
+ }
+ else
+ {
+ aToolbar->RemoveItem( ECamCmdEdit );
+ }
+
+ if(iOneClickUploadUtility->OneClickUploadSupported())
+ {
+ aToolbar->RemoveItem( ECamCmdPhotos );
+ }
+ else
+ {
+ aToolbar->RemoveItem( ECamCmdOneClickUpload );
+ }
+ }
+ }
+
+ PRINT2( _L("Camera <= CCamStillPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar );
+ }
+
+// End of File