--- 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 ) );