diff -r 70a8526f03f2 -r 56b11cf8addb mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp --- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Tue May 11 16:10:56 2010 +0300 +++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Tue May 25 12:39:12 2010 +0300 @@ -91,9 +91,10 @@ #include #include // KFindInMShopKeyInValid -// cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode +// cenrep key need to be checked whether Mass Storage or MTP is connected #include #include +#include #include #include #include @@ -616,13 +617,16 @@ TInt usbStatus; RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus); - - // Whenever usb is connected - if ( usbStatus == KUsbPersonalityIdMTP - || usbStatus == KUsbPersonalityIdMS - || usbStatus == KUsbPersonalityIdPTP - || usbStatus == KUsbPersonalityIdPCSuiteMTP - || usbStatus == KUsbPersonalityIdPCSuite ) + TInt mtpStatus = EMtpPSStatusUninitialized; + RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus); + + MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus); + + // Whenever usb/mtp is connected + if ( usbStatus == KUsbPersonalityIdMS + || usbStatus == KUsbPersonalityIdPTP + || usbStatus == KUsbPersonalityIdPCSuite + || mtpStatus != EMtpPSStatusUninitialized ) { RProperty::Set( KMPXViewPSUid, KMPXUSBUnblockingPSStatus, @@ -754,12 +758,12 @@ { iContainer->EnableFindBox(EFalse); } + + // delete songs list to update T-bone view after deleting a song + album->Delete( KMPXMediaArrayContents ); } iConfirmationDlg = NULL; - CleanupStack::PopAndDestroy( waitNoteText ); - - // delete songs list to update T-bone view after deleting a song - album->Delete( KMPXMediaArrayContents ); + CleanupStack::PopAndDestroy( waitNoteText ); } } CleanupStack::PopAndDestroy( path ); @@ -1269,7 +1273,7 @@ else if ( ( aIndex > 0 ) && ( aIndex < iContainer->CurrentListItemCount() ) ) { - iContainer->SetLbxCurrentItemIndexAndDraw( aIndex ); + // No need to do anything here } else { @@ -3670,7 +3674,8 @@ { MPX_FUNC( "CMPXCollectionViewHgImp::UpdateMiddleSoftKeyDisplayL" ); CEikButtonGroupContainer* cba = Cba(); - if ( cba ) + // We only update middle softkey for non-touch UI + if ( cba && !AknLayoutUtils::PenEnabled() ) { if ( !iContainer->CurrentListItemCount() ) // list is empty { @@ -4073,15 +4078,7 @@ } // USB flags // - CEikMenuBar* menuBar( MenuBar() ); - if(iContainer) - { - iContainer->EnableMarking( EFalse ); - } - if(menuBar) - { - menuBar->SetMenuTitleResourceId( R_MPX_COLLECTION_VIEW_MENUBAR_NO_MARKING ); - } + CEikMenuBar* menuBar( MenuBar() ); TBool IsUSBEvent( EFalse ); if( type == EMcMsgUSBMassStorageStart || type == EMcMsgUSBMTPStart ) { @@ -5951,25 +5948,16 @@ // Add view deactivation observer AppUi()->AddViewDeactivationObserverL( this ); -#ifdef __ENABLE_PODCAST_IN_MUSIC_MENU + CMPXCollectionPath* cpath( iCollectionUtility->Collection().PathL() ); + CleanupStack::PushL( cpath ); // media is not valid until the first HandleOpenL call CEikButtonGroupContainer* cba = Cba(); if ( cba ) { - cba->SetCommandSetL(R_MPX_OPTIONS_BACK_CBA_NO_ACTION); - cba->DrawNow(); - } -#else - // media is not valid until the first HandleOpenL call - CEikButtonGroupContainer* cba = Cba(); - if ( cba ) - { - cba->SetCommandSetL( - ( iViewUtility->ViewHistoryDepth() == 1 && !iIsEmbedded ) ? - R_MPX_OPTIONS_EXIT_CBA_NO_ACTION : R_MPX_OPTIONS_BACK_CBA_NO_ACTION ); - cba->DrawDeferred(); - } -#endif + cba->SetCommandSetL(( cpath->Levels() == 3 && !iIsEmbedded ) ? + R_MPX_OPTIONS_HIDE_CBA: R_MPX_OPTIONS_BACK_CBA_NO_ACTION ); + cba->DrawDeferred(); + } // Set status pane layout if switched here directly from another view, // such as when using the AnyKey @@ -5985,10 +5973,6 @@ AppUi()->AddToStackL( *this, iContainer ); iContainer->SetRect( ClientRect() ); - CMPXCollectionPath* cpath( iCollectionUtility->Collection().PathL() ); - CleanupStack::PushL( cpath ); - - UpdateTitlePaneL(); @@ -6022,7 +6006,6 @@ if ( cpath->Levels() > 1 ) { // valid path in collection - GetDurationL(); MPX_DEBUG_PATH(*cpath); DoIncrementalOpenL(); @@ -6042,12 +6025,8 @@ { iPodcast = ETrue; } - // don't bother getting duration if at plugin list - if ( cpath->Levels() > 1 ) #endif - { - GetDurationL(); - } + MPX_DEBUG_PATH(*cpath); DoIncrementalOpenL( cpath->Levels()>KMusicCollectionMenuLevel ? ETrue:EFalse ); @@ -6210,7 +6189,14 @@ { // playlist view aMenuPane->SetItemDimmed( EMPXCmdGoToPlaylists, ETrue ); - aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + if(usbUnblockingStatus) + { + aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue ); + } + else + { + aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + } if (containerType != EMPXGroup ) // EMPXItem -> playlist tracks level { aMenuPane->SetItemDimmed( EMPXCmdGoToArtistAlbums, ETrue ); @@ -6230,7 +6216,14 @@ { // Artists & Albums view aMenuPane->SetItemDimmed( EMPXCmdGoToArtistAlbums, ETrue ); - aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + if(usbUnblockingStatus) + { + aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue ); + } + else + { + aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + } if ( iContainer->IsTBoneView() ) //TBone View { aMenuPane->SetItemDimmed( EMPXCmdGoToAllSongs, ETrue ); @@ -6247,7 +6240,14 @@ { // Genre view aMenuPane->SetItemDimmed( EMPXCmdGoToGenre, ETrue ); - aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + if(usbUnblockingStatus) + { + aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue ); + } + else + { + aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + } if ( containerType != EMPXGroup ) // EMPXItem -> tracks level { aMenuPane->SetItemDimmed( EMPXCmdGoToAllSongs, ETrue ); @@ -6267,7 +6267,14 @@ { // Song view and Genre Track view aMenuPane->SetItemDimmed( EMPXCmdGoToAllSongs, ETrue ); - aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + if(usbUnblockingStatus) + { + aMenuPane->SetItemDimmed( EMPXCmdGoToMusicShop, ETrue ); + } + else + { + aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, iGoToMusicShopOptionHidden ); + } break; } default: @@ -6313,6 +6320,7 @@ if ( iContainer->CurrentLbxItemIndex() > KErrNotFound && !iContainer->IsTBoneView()) { + aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse ); if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) { aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue ); @@ -6322,7 +6330,6 @@ { aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse ); aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse ); - aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse ); } } if ( iContainer->IsSelectedItemASong() && iContainer->IsTBoneView() ) @@ -6364,7 +6371,16 @@ aMenuPane->SetItemDimmed( EMPXCmdPlaylistDetails, ETrue ); if ( !Layout_Meta_Data::IsLandscapeOrientation() ) { - if( !iContainer->IsTBoneView()&& (iContainer->CurrentLbxItemIndex() > KErrNotFound)) + TInt usbUnblockingStatus; + RProperty::Get( KMPXViewPSUid, + KMPXUSBUnblockingPSStatus, + usbUnblockingStatus); + + if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive) + { + aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue); + } + else if( !iContainer->IsTBoneView()&& (iContainer->CurrentLbxItemIndex() > KErrNotFound)) { CMPXCollectionViewListBoxArray* array = static_cast( @@ -6571,6 +6587,7 @@ if ( iContainer->CurrentLbxItemIndex() > KErrNotFound ) { + aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse ); TInt usbUnblockingStatus; RProperty::Get( KMPXViewPSUid, KMPXUSBUnblockingPSStatus, @@ -6582,7 +6599,6 @@ else { aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse ); - aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse ); } } @@ -6720,7 +6736,20 @@ aMenuPane->SetItemDimmed( EMPXCmdAlbumArt, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue ); } - aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService ); + + TInt usbUnblockingStatus; + RProperty::Get( KMPXViewPSUid, + KMPXUSBUnblockingPSStatus, + usbUnblockingStatus); + + if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive) + { + aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue); + } + else + { + aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService ); + } } } aMenuPane->SetItemDimmed( EMPXCmdRename, ETrue ); @@ -6763,6 +6792,11 @@ { case R_MPX_COLLECTION_VIEW_MENU_1: { + TInt usbUnblockingStatus; + RProperty::Get( KMPXViewPSUid, + KMPXUSBUnblockingPSStatus, + usbUnblockingStatus); + HandleInitMusicMenuPaneL(aMenuPane); aMenuPane->SetItemDimmed( EMPXCmdGoToNowPlaying, NowPlayingOptionVisibilityL() ); if ( isListEmpty ) @@ -6777,7 +6811,14 @@ aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdAddSongs, EFalse ); + if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) + { + aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue ); + } + else + { + aMenuPane->SetItemDimmed( EMPXCmdAddSongs, EFalse ); + } } else { @@ -6792,10 +6833,7 @@ aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue ); - TInt usbUnblockingStatus; - RProperty::Get( KMPXViewPSUid, - KMPXUSBUnblockingPSStatus, - usbUnblockingStatus); + if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) { @@ -6811,8 +6849,15 @@ { selectionCount = iSelectionIndexCache->Count(); } - // do not display add songs option when marking is on - aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 ); + // do not display add songs option when marking is on or USB is connected + if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) + { + aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue ); + } + else + { + aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 ); + } if ( iContainer->CurrentLbxItemIndex() > KErrNotFound ) { @@ -6880,7 +6925,20 @@ { aMenuPane->SetItemDimmed( EMPXCmdSongDetails, ETrue ); } - aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService ); + + TInt usbUnblockingStatus; + RProperty::Get( KMPXViewPSUid, + KMPXUSBUnblockingPSStatus, + usbUnblockingStatus); + + if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive) + { + aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue); + } + else + { + aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService ); + } } } if (iServiceHandler->HandleSubmenuL(*aMenuPane))