diff -r 000000000000 -r 96612d01cf9f videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/hgmyvideos/src/vcxhgmyvideosmainview.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,778 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: My Videos UI main view.* +*/ + + +// Version : %version: TB92_30 % + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "IptvDebug.h" +#include "CIptvResourceLoader.h" +#include + +#include "vcxhgmyvideosmodel.h" +#include "vcxhgmyvideosmainview.h" +#include "vcxhgmyvideosmainviewcontainer.h" +#include "vcxhgmyvideoscategorylistimpl.h" +#include "vcxhgmyvideosvideolistimpl.h" +#include "vcxhgmyvideosvideomodelhandler.h" +#include "vcxhgmyvideos.hrh" +#include "vcxhgmyvideosmemorystatus.h" +#include "vcxhgmyvideosvideodetailsdialog.h" +#include "vcxhgmyvideosupnpinterface.h" + +// CONSTANTS +_LIT( KVcxHgMyVideosMainViewResFile, "\\resource\\apps\\vcxhgmyvideos." ); + +const TUint32 KVcxHgMyVideosViewUid = 0x20021191; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::CVcxHgMyVideosMainView() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosMainView::CVcxHgMyVideosMainView() + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # ----------- MPX My Videos UI starting -----------" ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::NewL() +// ----------------------------------------------------------------------------- +// +EXPORT_C CVcxHgMyVideosMainView* CVcxHgMyVideosMainView::NewL() + { + CVcxHgMyVideosMainView* self = + CVcxHgMyVideosMainView::NewLC(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::NewLC() +// ----------------------------------------------------------------------------- +// +EXPORT_C CVcxHgMyVideosMainView* CVcxHgMyVideosMainView::NewLC() + { + CVcxHgMyVideosMainView* self = + new (ELeave) CVcxHgMyVideosMainView(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::ConstructL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::ConstructL() + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # CVcxHgMyVideosMainView::ConstructL: Entered." ); + + iResourceLoader = CIptvResourceLoader::NewL( *iCoeEnv ); + iResourceLoader->AddResourceL( KVcxHgMyVideosMainViewResFile ); + + BaseConstructL( R_VCXHGMYVIDEOS_MAINVIEW ); + + // Create component model. + iModel = CVcxHgMyVideosModel::NewL(); + + // Create background context. + iBgContext = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgAreaMain, + ClientRect(), + ETrue ); + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # CVcxHgMyVideosMainView::ConstructL: Exited." ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::~CVcxHgMyVideosMainView() +// ----------------------------------------------------------------------------- +// +EXPORT_C CVcxHgMyVideosMainView::~CVcxHgMyVideosMainView() + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # ----------- MPX My Videos UI stopping -----------" ); + + delete iCategoryList; + delete iVideoList; + delete iModel; + delete iBgContext; + delete iResourceLoader; + + if ( iContainer ) + { + AppUi()->RemoveFromStack( iContainer ); + delete iContainer; + iContainer = NULL; + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::CategoryListL() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosCategoryListImpl* CVcxHgMyVideosMainView::CategoryListL() + { + if ( !iCategoryList ) + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # CVcxHgMyVideosMainView::CategoryListL: Creating category list." ); + // Create category list control. + CHgDoubleTextList* hgCategoryList = + CHgDoubleTextList::NewL( ClientRect(), 0 ); + CleanupStack::PushL( hgCategoryList ); + + // Create list implementations. + // Ownership of list control is transferred. + iCategoryList = CVcxHgMyVideosCategoryListImpl::NewL( *iModel, + *this, + *hgCategoryList ); + CleanupStack::Pop( hgCategoryList ); + } + + return iCategoryList; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::VideoListL() +// ----------------------------------------------------------------------------- +// +CVcxHgMyVideosVideoListImpl* CVcxHgMyVideosMainView::VideoListL() + { + if ( !iVideoList ) + { + IPTVLOGSTRING_LOW_LEVEL( + "MPX My Videos UI # CVcxHgMyVideosMainView::VideoListL: Creating video list." ); + + // Create video list control. + CHgDoubleGraphicList* hgVideoList = + CHgDoubleGraphicList::NewL( ClientRect(), 0 ); + CleanupStack::PushL( hgVideoList ); + + // Create list implementation. + // Ownership of list control is transferred. + iVideoList = CVcxHgMyVideosVideoListImpl::NewL( *iModel, + *this, + *hgVideoList ); + CleanupStack::Pop( hgVideoList ); + } + + return iVideoList; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::Cba() +// ----------------------------------------------------------------------------- +// +CEikButtonGroupContainer* CVcxHgMyVideosMainView::Cba() + { + return CAknView::Cba(); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::Id() +// ----------------------------------------------------------------------------- +// +TUid CVcxHgMyVideosMainView::Id() const + { + return TUid::Uid( KVcxHgMyVideosViewUid ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::MopSupplyObject() +// ----------------------------------------------------------------------------- +// +TTypeUid::Ptr CVcxHgMyVideosMainView::MopSupplyObject( TTypeUid aId ) + { + if ( iBgContext && aId.iUid == MAknsControlContext::ETypeId ) + { + return MAknsControlContext::SupplyMopObject( aId, iBgContext ); + } + return CAknView::MopSupplyObject( aId ); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::HandleStatusPaneSizeChange() +// +// Called by the framework when the application status pane +// size is changed. +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::HandleStatusPaneSizeChange() + { + UpdateLayout(); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::TitlePaneL() +// ----------------------------------------------------------------------------- +// +CAknTitlePane* CVcxHgMyVideosMainView::TitlePaneL() + { + CAknTitlePane* titlePane = static_cast( + StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); + + return titlePane; + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::DoActivateL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::DoActivateL( const TVwsViewId& /*aPrevViewId*/, + TUid /*aCustomMessageId*/, + const TDesC8& /*aCustomMessage*/ ) + { + if ( ! iContainer ) + { + iContainer = CVcxHgMyVideosMainViewContainer::NewL( *this ); + AppUi()->AddToStackL( *this, iContainer ); + } + + CVcxHgMyVideosModel::TVcxMyVideosAppState appState = iModel->AppState(); + if ( ( appState == CVcxHgMyVideosModel::EVcxMyVideosAppStateUnknown ) || + ( appState == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) || + ( appState == CVcxHgMyVideosModel::EVcxMyVideosAppStatePlayer && + iModel->PreviousAppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) ) + { + ActivateCategoryListL(); + } + else + { + ActivateVideoListL( KErrNotFound ); // Try to activate old list. + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::DoDeactivate() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::DoDeactivate() + { + if ( iCategoryList ) + { + TRAP_IGNORE( CategoryListL()->DoListDeactivate() ); + } + + if ( iVideoList ) + { + TRAP_IGNORE( VideoListL()->DoListDeactivate() ); + } + + if ( iContainer ) + { + AppUi()->RemoveFromStack( iContainer ); + delete iContainer; + iContainer = NULL; + } + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::ActivateCategoryListL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::ActivateCategoryListL() + { + iModel->SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryBusy ); + + CategoryListL()->DoListActivateL(); + + if ( iVideoList ) + { + VideoListL()->DoListDeactivate(); + } + + iModel->SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ); + DynInitMskL(); + DynInitRskL(); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::ActivateVideoListL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::ActivateVideoListL( TInt aIndex ) + { + iModel->SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoBusy ); + + VideoListL()->DoListActivateL( aIndex ); + + if ( iCategoryList ) + { + CategoryListL()->DoListDeactivate(); + } + + iModel->SetAppState( CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ); + DynInitMskL(); + DynInitRskL(); + } + +// ----------------------------------------------------------------------------- +// CVcxHgMyVideosMainView::HandleCommandL() +// ----------------------------------------------------------------------------- +// +void CVcxHgMyVideosMainView::HandleCommandL( TInt aCommand ) + { + switch ( aCommand ) + { + case EAknSoftkeyCancel: + { + HandleCancelL(); + break; + } + case EVcxHgMyVideosCmdPlay: + { + VideoListL()->PlayCurrentVideoL(); + } + break; + case EVcxHgMyVideosCmdOpen: + case EAknSoftkeyOpen: // MSK + { + TInt highlight = CategoryListL()->Highlight(); + + if ( highlight >= 0 ) + { + ActivateVideoListL( highlight ); + } + } + break; + case EVcxHgMyVideosCmdDelete: + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->DeleteVideosL(); + } + } + break; + case EVcxHgMyVideosCmdResumeDownload: + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->ResumeDownloadL(); + } + } + break; + case EVcxHgMyVideosCmdCancelDownload: + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->CancelDownloadL(); + } + } + break; + case EVcxHgMyVideosCmdVideoDetails: + { + VideoListL()->VideoModel().ShowVideoDetailsDialogL(); + } + break; + case EVcxHgMyVideosCmdShowViaHomenet: + { + if ( ! VideoListL()->UPnPInterface().IsStarted() ) + { + if ( VideoListL()->UPnPInterface().Start() != KErrNone ) + { + break; + } + } + VideoListL()->PlayCurrentVideoL(); + } + break; + case EVcxHgMyVideosCmdStopShowViaHomenet: + { + VideoListL()->UPnPInterface().Stop(); + } + break; + case EVcxHgMyVideosCmdMemoryStatus: + { + iMemoryStatus->ShowMemoryStatusDialogL( *iModel ); + } + break; + case EVcxHgMyVideosCmdSortByDate: + case EVcxHgMyVideosCmdSortByName: + case EVcxHgMyVideosCmdSortBySize: + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->HandleSortCommandL( aCommand ); + } + } + break; + case EVcxHgMyVideosCmdCopy: + case EVcxHgMyVideosCmdMove: + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->HandleMoveOrCopyCommandL( aCommand == EVcxHgMyVideosCmdCopy ? + ETrue : EFalse ); + } + } + break; + case EVcxHgMyVideosCmdSend: + { + VideoListL()->HandleSendL(); + break; + } + case EVcxHgMyVideosCmdMark: + case EVcxHgMyVideosCmdUnmark: + case EVcxHgMyVideosCmdMarkAll: + case EVcxHgMyVideosCmdUnmarkAll: + case EVcxHgMyVideosCmdToggleMultipleMarking: + { + VideoListL()->HandleMarkCommandL( aCommand ); + } + break; + case EVcxHgMyVideosCmdHelp: + { + HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), + AppUi()->AppHelpContextL() ); + } + break; + case EAknSoftkeySelect: // Select button / MSK. + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) + { + HandleCommandL( EVcxHgMyVideosCmdOpen ); + } + else if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + RArray markedVideos; + CleanupClosePushL( markedVideos ); + + VideoListL()->VideoModel().MarkedVideosL( markedVideos ); + if ( markedVideos.Count() <= 0 ) + { + HandleCommandL( EVcxHgMyVideosCmdPlay ); + } + CleanupStack::PopAndDestroy( &markedVideos ); + } + } + break; + case EAknSoftkeyBack: + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->HandleMarkCommandL( EVcxHgMyVideosCmdUnmarkAll ); + ActivateCategoryListL(); + } + else + { + AppUi()->HandleCommandL( aCommand ); + } + } + break; + case EVcxHgMyVideosCmdExit: + case EAknSoftkeyExit: + case EEikCmdExit: + case EAknCmdExit: + { + // Pass command to app ui for handling. + AppUi()->HandleCommandL( EAknCmdExit ); + } + break; + case EVcxHgMyVideosCmdNothing: + default: + { + // The command could be an AIW command, offer it + // to AIW command handler + VideoListL()->TryHandleAiwCommandL( aCommand ); + } + break; + } + + DynInitMskL(); + DynInitRskL(); + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::HandleKeyEventL() +// ------------------------------------------------------------------------------ +// +TKeyResponse CVcxHgMyVideosMainView::HandleKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ) + { + TKeyResponse response( EKeyWasNotConsumed ); + + // Clear key performs either 'Delete' or 'Cancel Download'. As Cancel Download + // cannot be performed if there are selections, selections always cause Delete. + // When there is no selections, video's status dictates the operation. + if ( aKeyEvent.iScanCode == EStdKeyBackspace && aType == EEventKey ) + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + RArray markedVideos; + CleanupClosePushL( markedVideos ); + + VideoListL()->VideoModel().MarkedVideosL( markedVideos ); + TInt count = markedVideos.Count(); + CleanupStack::PopAndDestroy( &markedVideos ); + + if ( ( count > 0 ) || + ( VideoListL()->VideoModel().VideoDownloadState( VideoListL()->Highlight() ) + == EVcxMyVideosDlStateNone ) ) + { + HandleCommandL( EVcxHgMyVideosCmdDelete ); + } + else + { + HandleCommandL( EVcxHgMyVideosCmdCancelDownload ); + } + + response = EKeyWasConsumed; + } + } + + // Enter key should work the same way as selection key. + else if ( ( aKeyEvent.iScanCode == EStdKeyEnter || aKeyEvent.iScanCode == EStdKeyDevice3 ) + && aType == EEventKey ) + { + HandleCommandL( EAknSoftkeySelect ); + response = EKeyWasConsumed; + } + + return response; + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::UpdateLayout() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::UpdateLayout() + { + TRect rect( ClientRect() ); + + if ( iVideoList ) + { + iVideoList->UpdateLayout( rect ); + } + if ( iCategoryList ) + { + iCategoryList->UpdateLayout( rect ); + } + if ( iBgContext ) + { + iBgContext->SetRect( rect ); + } + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::DynInitMenuPaneL() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane ) + { + TBool showMoveAndCopySubmenu = EFalse; + TBool showCopy = EFalse; + TBool showMove = EFalse; + + if ( aResourceId == R_VCXHGMYVIDEOS_MAINVIEW_MENU ) + { + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdDelete, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdResumeDownload, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdCancelDownload, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdSortSubMenu, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdVideoDetails, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdStopShowViaHomenet, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdShowViaHomenet, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdAiwAssign, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdOpen, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdPlay, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMemoryStatus, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdCopy, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMove, ETrue ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMarkUnmarkSubMenu, ETrue); + + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) + { + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdOpen, EFalse ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMemoryStatus, EFalse ); + } + else if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + VideoListL()->ShowMoveAndCopyMenuItemsL( showMoveAndCopySubmenu, showCopy, showMove ); + + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdPlay, EFalse ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdCopy, !showCopy ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMove, !showMove ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMemoryStatus, EFalse ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdSortSubMenu, EFalse ); + + // Video list handles initialisation of menu items specific to it. + VideoListL()->DynInitMenuPaneL( aResourceId, aMenuPane ); + } + + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdHelp, EFalse ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdExit, EFalse ); + } + else if ( aResourceId == R_VCXHGMYVIDEOS_SORT_SUBMENU ) + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) + { + return; + } + + switch ( iModel->VideolistSortOrderL() ) + { + case EVcxMyVideosSortingCreationDate: + { + aMenuPane->SetItemButtonState( EVcxHgMyVideosCmdSortByDate, + EEikMenuItemSymbolOn ); + break; + } + case EVcxMyVideosSortingName: + { + aMenuPane->SetItemButtonState( EVcxHgMyVideosCmdSortByName, + EEikMenuItemSymbolOn ); + break; + } + case EVcxMyVideosSortingSize: + { + aMenuPane->SetItemButtonState( EVcxHgMyVideosCmdSortBySize, + EEikMenuItemSymbolOn ); + break; + } + default: + { + break; + } + } + } + else if ( aResourceId == R_VCXHGMYVIDEOS_USE_AS_SUBMENU ) + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) + { + return; + } + + // Let video list handle AIW menu + VideoListL()->DynInitMenuPaneL( aResourceId, aMenuPane ); + } + else if ( aResourceId == R_VCXHGMYVIDEOS_MARK_SUBMENU ) + { + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) + { + return; + } + TBool showMarkSubmenu = EFalse; + TBool showStartMarking = EFalse; + TBool showEndmarking = EFalse; + TBool showMarkAll = EFalse; + TBool showUnmarkAll = EFalse; + + VideoListL()->ShowMarkMenuItemsL( + showMarkSubmenu, + showStartMarking, + showEndmarking, + showMarkAll, + showUnmarkAll ); + + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdToggleMultipleMarking, ! showStartMarking ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdMarkAll, ! showMarkAll ); + aMenuPane->SetItemDimmed( EVcxHgMyVideosCmdUnmarkAll, ! showUnmarkAll ); + } + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::DynInitMskL() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::DynInitMskL() + { + TInt mskToSet( 0 ); + + if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryBusy || + iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateCategoryIdle ) + { + mskToSet = R_VCXHGMYVIDEOS_MSK_OPEN; + } + else if ( iModel->AppState() == CVcxHgMyVideosModel::EVcxMyVideosAppStateVideoIdle ) + { + mskToSet = VideoListL()->GetMskResourceL(); + } + else + { + mskToSet = R_VCXHGMYVIDEOS_MSK_NOTHING; + } + + if ( mskToSet != iCurrentMskResource ) + { + iCurrentMskResource = mskToSet; + + if ( Cba() ) + { + Cba()->SetCommandL( CEikButtonGroupContainer::EMiddleSoftkeyPosition, + iCurrentMskResource ); + Cba()->DrawDeferred(); + } + } + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::DynInitRskL() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::DynInitRskL() + { + TInt rskToSet( 0 ); + + if ( iVideoList && iVideoList->IsMarking() ) + { + rskToSet = R_VCXHGMYVIDEOS_RSK_CANCEL; + } + else + { + rskToSet = R_VCXHGMYVIDEOS_RSK_BACK; + } + + if ( rskToSet != iCurrentRskResource ) + { + iCurrentRskResource = rskToSet; + + if ( Cba() ) + { + Cba()->SetCommandL( CEikButtonGroupContainer::ERightSoftkeyPosition, + iCurrentRskResource ); + Cba()->DrawDeferred(); + } + } + } + +// ------------------------------------------------------------------------------ +// CVcxHgMyVideosMainView::HandleCancelL() +// ------------------------------------------------------------------------------ +// +void CVcxHgMyVideosMainView::HandleCancelL() + { + if ( VideoListL()->IsMarking() ) + { + VideoListL()->HandleMarkCommandL( EVcxHgMyVideosCmdStopMarking ); + } + }