--- a/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp Tue Feb 02 00:01:39 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/*
-* 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: Video Post-capture view class for Camera application*
-*/
-
-
-// INCLUDE FILES
-
-#include <eikmenub.h>
-#include <StringLoader.h>
-#include <AknQueryDialog.h>
-#include <AiwCommon.hrh>
-#include <sendnorm.rsg>
-#include <sendui.h>
-#include <akntoolbar.h>
-#ifndef __WINS__
- //#include <SFIUtilsAppInterface.h>
- #include <aknnotewrappers.h> // CAknInformationNote
-#endif
-
-#include <cameraapp.rsg>
-#include <vgacamsettings.rsg>
-
-#include "CamAppUiBase.h"
-#include "CamAppController.h"
-#include "CamVideoPostCaptureView.h"
-#include "CamPostCaptureContainer.h"
-#include "CamLogger.h"
-#include "CamAppUi.h"
-#include "CamAppUiBase.h"
-#include "CamUtility.h"
-#include "Cam.hrh"
-#include "camactivepalettehandler.h"
-#include "camoneclickuploadutility.h"
-#include "CameraUiConfigManager.h"
-
-
-
-//CONSTANTS
-
-// ========================= MEMBER FUNCTIONS ================================
-
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::NewLC
-// Symbian OS two-phased constructor
-// ---------------------------------------------------------------------------
-//
-CCamVideoPostCaptureView* CCamVideoPostCaptureView::NewLC( CCamAppController& aController )
- {
- CCamVideoPostCaptureView* self =
- new( ELeave ) CCamVideoPostCaptureView( aController );
-
- CleanupStack::PushL( self );
- self->ConstructL();
-
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView destructor
-//
-// ---------------------------------------------------------------------------
-//
-CCamVideoPostCaptureView::~CCamVideoPostCaptureView()
- {
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::Id
-// Returns UID of view
-// ---------------------------------------------------------------------------
-//
-TUid CCamVideoPostCaptureView::Id() const
- {
- return TUid::Uid( ECamViewIdVideoPostCapture );
- }
-
-// -----------------------------------------------------------------------------
-// CCamVideoPostCaptureView::HandleCommandL
-// Handle commands
-// -----------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::HandleCommandL( TInt aCommand )
- {
- switch ( aCommand )
- {
- case ECamCmdRenameVideo:
- {
- CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
- QueryRenameL( ECamControllerVideo );
-
- // inform the Media gallery of name change
- TRAPD( ignore,
- appUi->HandleControllerEventL( ECamEventMediaFileChanged, KErrNone ) );
- if ( ignore )
- {
- // Do nothing (removes build warning)
- }
- break;
- }
- case EAknSoftkeySelect:
- {
- // In post-capture select key is disabled when embedded
- if ( !iEmbedded )
- {
- CEikMenuBar* menuBar = MenuBar();
- if ( menuBar )
- {
- menuBar->SetMenuTitleResourceId( ROID(R_CAM_VIDEO_POST_CAPTURE_OK_MENUBAR_ID));
- menuBar->TryDisplayMenuBarL();
- menuBar->SetMenuTitleResourceId( ROID(R_CAM_VIDEO_POST_CAPTURE_MENUBAR_ID));
- }
- CCamPostCaptureViewBase::HandleCommandL( aCommand );
- }
- else
- {
- AppUi()->HandleCommandL( ECamCmdSelect );
- }
- }
- break;
- case ECamCmdSend:
- case ECamCmdSendToCallerMultimedia:
- case ECamCmdQuickSend:
- {
- CCamPostCaptureViewBase::HandleCommandL( aCommand );
- }
- break;
- default:
- {
- PRINT1( _L("Camera => CCamVideoPostCaptureView::HandleCommandL default cmd (%d)"), aCommand )
- // Handle AIW commands
- TInt aiwServiceCmd = iAiwServiceHandler->ServiceCmdByMenuCmd( aCommand );
- if ( aiwServiceCmd != KAiwCmdNone )
- {
- PRINT1( _L("Camera => CCamVideoPostCaptureView::HandleCommandL default handle AIW cmd (%d)" ), aiwServiceCmd)
- 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 );
-
- // Don't add the mime type if uploading, since Share client
- // will figure it out from the file
- if ( aiwServiceCmd != KAiwCmdUpload )
- {
- TAiwGenericParam param2( EGenericParamMIMEType, _L("video/*") );
- inParams.AppendL( param2 );
- }
-
- iAiwServiceHandler->ExecuteMenuCmdL( aCommand, inParams, outParams, 0, this );
- // we are 'embedding' Edit app
- static_cast<CCamAppUiBase*>( AppUi() )->SetEmbedding( ETrue );
- }
- else
- {
- CCamPostCaptureViewBase::HandleCommandL( aCommand );
- }
-
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CCamVideoPostCaptureView::DisplayDeleteNoteL()
-// Delete the current file
-// -----------------------------------------------------------------------------
-//
-TBool CCamVideoPostCaptureView::DisplayDeleteNoteL()
- {
- // Display the delete confirmation note
- TInt err = KErrNone;
- HBufC* confirmationText;
- confirmationText = StringLoader::LoadLC( R_CAM_VIDEO_POST_CAPTURE_DELETE_NOTE_TEXT );
- CAknQueryDialog* confirmationDialog =
- new( ELeave )CAknQueryDialog( *confirmationText );
- CleanupStack::PopAndDestroy( confirmationText );
- if ( confirmationDialog->ExecuteLD( R_CAM_VIDEO_POST_CAPTURE_DELETE_NOTE ) )
- {
- if ( iEmbedded )
- {
- BlankSoftkeysL();
- Cba()->DrawNow();
- SetSoftKeysL( R_CAM_SOFTKEYS_SELECT_DELETE__SELECT );
- }
- err = iController.DeleteCurrentFile();
- if ( err )
- {
- User::Leave( err );
- }
- return ETrue;
- }
- else
- {
- if ( iEmbedded )
- {
- BlankSoftkeysL();
- Cba()->DrawNow();
- SetSoftKeysL( R_CAM_SOFTKEYS_SELECT_DELETE__SELECT );
- }
- return EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CCamVideoPostCaptureView::DoActivateL()
-// Activate this view
-// -----------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::DoActivateL(
- const TVwsViewId& aPreViewId,
- TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- // Ensure the correct menu is used for the current mode.
- CEikMenuBar* menuBar = MenuBar();
- if ( menuBar )
- {
- menuBar->SetMenuTitleResourceId(
- ROID( R_CAM_VIDEO_POST_CAPTURE_MENUBAR_ID ) );
- }
-
- CCamAppUi* appUi = static_cast<CCamAppUi*>( AppUi() );
-
- if ( iController.IsTouchScreenSupported() )
- {
- if ( appUi->IsSecondCameraEnabled() )
- {
- if ( iOneClickUploadUtility->OneClickUploadSupported() )
- {
- TInt resourceId = appUi->IsQwerty2ndCamera()?
- R_CAM_VIDEO_POSTCAPTURE_TOOLBAR_LANDSCAPE_UPLOAD:
- R_CAM_VIDEO_POSTCAPTURE_TOOLBAR_PORTRAIT_UPLOAD;
- CreateAndSetToolbarL( resourceId );
- }
- else
- {
- TInt resourceId = appUi->IsQwerty2ndCamera()?
- R_CAM_VIDEO_POSTCAPTURE_TOOLBAR_LANDSCAPE:
- R_CAM_VIDEO_POSTCAPTURE_TOOLBAR_PORTRAIT;
- CreateAndSetToolbarL( resourceId );
- }
- }
- else
- {
- if ( iOneClickUploadUtility->OneClickUploadSupported() )
- {
- CreateAndSetToolbarL( R_CAM_VIDEO_POSTCAPTURE_TOOLBAR_UPLOAD );
- }
- else
- {
- CreateAndSetToolbarL( R_CAM_VIDEO_POSTCAPTURE_TOOLBAR );
- }
- }
- }
-
- iAiwServiceHandler->Reset();
- iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ),
- R_CAM_SHARE_ON_OVI_INTEREST );
-
- CCamPostCaptureViewBase::DoActivateL(
- aPreViewId, aCustomMessageId, aCustomMessage );
-
- if ( !iController.IsTouchScreenSupported() )
- {
- TCamOrientation orientation = appUi->CamOrientation();
-
- CCamActivePaletteHandler* apHandler = appUi->APHandler();
- if( !iEmbedded && ( orientation == ECamOrientationCamcorder ||
- orientation == ECamOrientationCamcorderLeft ) )
- {
- iContainer->CreateActivePaletteL();
- MActivePalette2UI* activePalette =
- appUi->APHandler()->ActivePalette();
-
- if(activePalette)
- {
- activePalette->SetGc();
- }
-
- // install still pre-capture items
- apHandler->InstallAPItemsL( R_CAM_VIDEO_POST_CAPTURE_AP_ITEMS );
-
- // Hide Send or Send to caller
- ResetSendAvailabilityL( apHandler );
- apHandler->SetView( this );
-
- // Make AP visible
- appUi->SetAlwaysDrawPostCaptureCourtesyUI( ETrue );
- }
- else
- {
- }
- }
- iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ),
- R_CAM_SET_AS_RING_TONE_INTEREST );
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::CCamVideoPostCaptureView
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-CCamVideoPostCaptureView::CCamVideoPostCaptureView( CCamAppController& aController )
- : CCamPostCaptureViewBase( aController )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::ConstructL
-// Symbian OS 2nd phase constructor
-// ---------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::ConstructL()
- {
- PRINT( _L("Camera => CCamVideoPostCaptureView::ConstructL"))
- BaseConstructL( ROID(R_CAM_VIDEO_POST_CAPTURE_VIEW_ID));
- CCamPostCaptureViewBase::ConstructL();
-
- iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), R_CAM_SHARE_ON_OVI_INTEREST );
-
- PRINT( _L("Camera <= CCamVideoPostCaptureView::ConstructL"))
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::DoDeactivate
-// Deactivate this view
-// ---------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::DoDeactivate()
- {
- CCamPostCaptureViewBase::DoDeactivate();
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::SetTitlePaneTextL
-// Set the view's title text
-// ---------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::SetTitlePaneTextL()
- {
- TBool titleAlwaysShowsFileName = EFalse;
- CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( AppUi() );
-
- if ( appUi->CamOrientation() == ECamOrientationViewMode ||
- titleAlwaysShowsFileName )
- {
- appUi->SetTitleL( iController.CurrentImageName() );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::ProcessCommandL
-// Handling ECamCmdToggleActiveToolbar from any of the PostCaptureView's
-// either Image/Video.
-// ---------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::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 = ETrue;
- MenuBar()->SetContextMenuTitleResourceId(
- ROID(R_CAM_VIDEO_POST_CAPTURE_MENU_ID ) );
- MenuBar()->SetMenuType( CEikMenuBar::EMenuContext );
- MenuBar()->TryDisplayMenuBarL();
- MenuBar()->SetMenuType( CEikMenuBar::EMenuOptions );
- }
- else
- {
- CAknView::ProcessCommandL( aCommand );
- }
-
- }
- // CALL THE BASE CLASS
-
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::DynInitMenuPaneL
-// Changes MenuPane dynamically
-// ---------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
- {
- PRINT( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL"))
-
- if ( iAiwServiceHandler )
- {
- PRINT( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL aiw"))
-
- // let AIW handle it's own submenus
- if ( iAiwServiceHandler->HandleSubmenuL( *aMenuPane ) )
- {
- PRINT( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL aiw handle sub"))
- return;
- }
- }
-
- CCamPostCaptureViewBase::DynInitMenuPaneL( aResourceId, aMenuPane );
-
- PRINT( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL A"))
- if ( iAiwServiceHandler && iAiwServiceHandler->IsAiwMenu( aResourceId ) )
- {
- PRINT1( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL res ID (%d)"),aResourceId )
- CAiwGenericParamList& paramList = iAiwServiceHandler->InParamListL();
- TAiwVariant variant( iController.CurrentFullFileName() );
- TAiwGenericParam param( EGenericParamFile, variant );
- paramList.AppendL( param );
-
- TAiwVariant variant2( _L("video/*") );
- TAiwGenericParam param2( EGenericParamMIMEType, variant2 );
- paramList.AppendL( param2 );
-
- PRINT( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL C"))
- iAiwServiceHandler->InitializeMenuPaneL(
- *aMenuPane,
- aResourceId,
- ECamCmdAIWCommands,
- paramList );
-
- PRINT( _L("Camera => CCamVideoPostCaptureView::DynInitMenuPaneL D"))
- }
-
- TInt itemPos(0);
-
- if ( aResourceId == ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ) ||
- aResourceId == ROID( R_CAM_VIDEO_POST_CAPTURE_OK_MENU_ID ) )
- {
- TBool showSend = ETrue;
- TBool showSendToCaller = EFalse;
-
-/*#ifndef __WINS__
- if ( iSFIUtils->IsCLIValidL() )
- {
- showSend = EFalse;
- showSendToCaller = ETrue;
-
- if ( iController.IntegerSettingValue( ECamSettingItemVideoQuality )
- == ECamVideoQualityHigh )
- {
- showSendToCaller = EFalse;
- }
- }
-#endif*/
-
- if ( !iController.IsTouchScreenSupported() ||
- !iOneClickUploadUtility->OneClickUploadSupported() )
- {
- // In non-touch UI Send/Send to caller are always in AP.
- // No need for Options menu items.
-
- // If 1-click upload is not supported in touch UI, then there is
- // a send button in the fixed toolbar. There is no need to
- // have it in Options menu.
- showSend = EFalse;
- showSendToCaller = EFalse;
- }
-
- if( aMenuPane->MenuItemExists( ECamCmdSendToCallerMultimedia, itemPos ) )
- {
- aMenuPane->SetItemDimmed(
- ECamCmdSendToCallerMultimedia, !showSendToCaller );
- }
-
- if( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) )
- {
- aMenuPane->SetItemDimmed(
- ECamCmdSend, !showSend );
- }
-
- /*
- * 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 );
- }
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::HandleNotifyL
-// Handles any notification caused by asynchronous ExecuteCommandL
-// or event.
-// ---------------------------------------------------------------------------
-//
-TInt CCamVideoPostCaptureView::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;
- }
-
-// ---------------------------------------------------------------------------
-// CCamVideoPostCaptureView::DynInitToolbarL
-// Dynamically initialize toolbar contents
-// ---------------------------------------------------------------------------
-//
-void CCamVideoPostCaptureView::DynInitToolbarL( TInt aResourceId,
- CAknToolbar* aToolbar )
- {
- PRINT2( _L("Camera => CCamVideoPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar );
- (void)aResourceId; // remove compiler warning
-
- // fixed toolbar is used only with touch devices
- if ( iController.IsTouchScreenSupported() && iEmbedded && aToolbar )
- {
- // HideItem will not do anything if a button for the given
- // command ID is not found.
- aToolbar->HideItem( ECamCmdSend, ETrue, EFalse );
- aToolbar->HideItem( ECamCmdDelete, ETrue, EFalse );
- aToolbar->HideItem( ECamCmdOneClickUpload, ETrue, EFalse );
- aToolbar->HideItem( ECamCmdPlay, ETrue, EFalse );
- }
-
- PRINT2( _L("Camera <= CCamVideoPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar );
- }
-
-
-// End of File