diff -r f544d10663bf -r 890b5dd735f8 vtuis/videotelui/src/CVtUiAppUi.cpp --- a/vtuis/videotelui/src/CVtUiAppUi.cpp Thu Jul 15 18:41:45 2010 +0300 +++ b/vtuis/videotelui/src/CVtUiAppUi.cpp Thu Aug 19 09:57:36 2010 +0300 @@ -221,7 +221,9 @@ // Stop brightness and contrast slider EVtUiStopBrightnessOrContrast = 1 << 15, // refresh zoom popup - EVtUiRefreshZoomPopup = 1 << 16 + EVtUiRefreshZoomPopup = 1 << 16, + // enable end call button + EVtUiEnableEndCallButton = 1 << 17 }; // Enumerates states for CVtUiActiveExec. @@ -1227,6 +1229,15 @@ } // ----------------------------------------------------------------------------- +// CVtUiAppUi::EnableEndCallButton +// ----------------------------------------------------------------------------- +// +void CVtUiAppUi::EnableEndCallButton() + { + EndCallButtonPane().SetEnabled( ETrue ); + } + +// ----------------------------------------------------------------------------- // CVtUiAppUi::OpenNumberEntryL // ----------------------------------------------------------------------------- // @@ -4613,6 +4624,12 @@ MVtEngCommandHandler& command = Model().CommandHandler(); const TInt caps = command.GetCommandCaps( aCommand ); + if ( ( aCommand == KVtEngSetSource || + aCommand == KVtEngHandleLayoutChange ) && ( caps & MVtEngCommandHandler::EAttribEnabled ) ) + { + EndCallButtonPane().SetEnabled( EFalse ); + } + if ( caps >= KErrNone ) { const TBool asynchronous = @@ -5040,11 +5057,15 @@ { __VTPRINTENTER( "VtUi.DoLayoutChg" ) TInt error; + if( iUiStates->IsSelectingShare() ) + { + iInstance->iRemoteVideoControl->MakeVisible( ETrue ); + } // Fully update rendering parameters UpdateRenderingParametersL(); // Notify engine about layout change iLayoutChg = ETrue; - if( iDisableVideoOngoing ) + if( iDisableVideoOngoing || iShareImageOngoing ) { error = KErrNotReady; } @@ -5079,6 +5100,7 @@ pendingCommand == KVtEngSetSource || pendingCommand == KVtEngPrepareCamera || pendingCommand == KVtEngUnfreeze || + pendingCommand == KVtEngStopShareImage || invalidCommand == KVtEngHandleLayoutChange ) { iPendingCmd = pendingCommand; @@ -5089,6 +5111,11 @@ iPendingCmd = KVtEngSetSource; iUiStates->SetLayoutChangeNeeded( ETrue ); } + if( iShareImageOngoing && pendingCommand == KVtEngCommandNone ) + { + iPendingCmd = KVtEngStartShareImage; + iUiStates->SetLayoutChangeNeeded( ETrue ); + } } // Notify component manager iComponentManager->HandleLayoutChangeL(); @@ -7058,6 +7085,7 @@ callBits |= EVtUiRefreshMenu; callBits |= EVtUiStopBrightnessOrContrast; callBits |= EVtUiRefreshZoomPopup; + callBits |= EVtUiEnableEndCallButton; break; default: break; @@ -7155,6 +7183,8 @@ { __VTPRINT3( DEBUG_GEN, "VtUi.HandleVTCommandPerformedL cmd=%d err=%d", aCommand, aError ); + + iAppUi.iShareImageOngoing = EFalse; if( aError != KErrNone ) { // stop toolbar feature to prevent drawing over error dialog @@ -7181,11 +7211,21 @@ TCallBack( &AsyncShare, &iAppUi ) ); } iAppUi.iAsyncCallback->CallBack(); + iAppUi.iShareImageOngoing = ETrue; + } + else if( iAppUi.iUiStates->IsLayoutChangeNeeded() && + aCommand == KVtEngStartShareImage && + aCommand == iAppUi.iPendingCmd ) + { + iAppUi.iPendingCmd = KVtEngCommandNone; + iAppUi.iUiStates->SetLayoutChangeNeeded( EFalse ); + iAppUi.DoHandleLayoutChangedL(); } } else if ( iAppUi.iUiStates->IsLayoutChangeNeeded() && ( aCommand == KVtEngSetSource || aCommand == KVtEngPrepareCamera || + aCommand == KVtEngStopShareImage || aCommand == KVtEngUnfreeze || aCommand == KVtEngHandleLayoutChange ) || ( ( aCommand == KVtEngMuteOutgoingAudio || @@ -7198,6 +7238,13 @@ iAppUi.iUiStates->SetLayoutChangeNeeded( EFalse ); iAppUi.DoHandleLayoutChangedL(); } + // Handle condition that commmand setsource and layoutchange + // without layoutchange needed in UI + else if ( aCommand == KVtEngHandleLayoutChange || + aCommand == KVtEngSetSource ) + { + iAppUi.EndCallButtonPane().SetEnabled( ETrue ); + } __VTPRINTEXITR( "VtUiComms.HandleVTCommandPerformedL %d", 1 ) } @@ -7326,7 +7373,8 @@ &CVtUiAppUi::StopWhiteBalanceOrColortone, &CVtUiAppUi::RefreshMenuL, &CVtUiAppUi::StopBrightnessOrContrast, - &CVtUiAppUi::RefreshZoomPopupL + &CVtUiAppUi::RefreshZoomPopupL, + &CVtUiAppUi::EnableEndCallButton }; const TInt count = ( sizeof( methodArray ) / sizeof ( TMethodL ) );