diff -r a12246c97fcc -r cb96c29156b2 mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp --- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Wed Jun 09 09:38:28 2010 +0300 +++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Mon Jun 21 15:37:19 2010 +0300 @@ -131,7 +131,7 @@ _LIT( KCategoryEmpty, "" ); const TInt KIncrementalDelayNone = 0; -const TInt KIncrementalDelayHalfSecond = 1000000; +const TInt KIncrementalDelayHalfSecond = 500000; const TInt KIncrementalFetchBlockSize = 400; const TInt KIncrementalDirectionCount = 8; const TInt KWaitNoteImpUid = 0x101FFC6C; // refresh wait note UID @@ -167,6 +167,7 @@ const TInt KMPXCollectionArtistAlbum( 3 ); const TInt KMPXCollectionGenre( 5 ); +_LIT(KEmptyTitle, " "); // ======== MEMBER FUNCTIONS ======== @@ -357,6 +358,7 @@ // grab the current process priority RProcess proc; iPriority = proc.Priority(); + iGoToNowPlaying = EFalse; } void CMPXCollectionViewHgImp::HandleStatusPaneSizeChange() @@ -986,15 +988,10 @@ // check for unknown entry // if it's the last entry, and it's null text // load "unknown" text to display in prompt - HBufC* unknownText( StringLoader::LoadLC( R_MPX_QTN_MP_UNKNOWN ) ); waitNoteText = StringLoader::LoadLC( - R_MPX_QTN_MUS_QUERY_CONF_DELETE_ALL, *unknownText ); - promptTxt = StringLoader::LoadL( - R_MPX_QTN_NMP_QUERY_CONF_DELETE_GROUP, *unknownText ); - CleanupStack::Pop( waitNoteText ); - CleanupStack::PopAndDestroy( unknownText ); - CleanupStack::PushL( waitNoteText ); - CleanupStack::PushL( promptTxt ); + R_MPX_QTN_MUS_QUERY_CONF_DELETE_ALL_UNKNOWN); + promptTxt = StringLoader::LoadLC( + R_MPX_QTN_NMP_QUERY_CONF_DELETE_GROUP_UNKNOWN); } else { @@ -1517,6 +1514,8 @@ TInt currentItem( iContainer->CurrentLbxItemIndex() ); iContainer->EnableFindBox( EFalse ); iContainer->SetReorderGrabbedMode( ETrue, currentItem ); + // mark the grabbed item + iContainer->MarkGrabedItemL( currentItem ); if ( !iContainer->IsInReorderMode() ) { iContainer->UpdateReorderTitleIconL(); @@ -1541,7 +1540,7 @@ iDuration = NULL; } iContainer->ActivateReorderMode( ETrue ); - SetNewCbaL( R_MPX_CUI_REORDER_DROP_CANCEL_CBA ); + SetNewCbaL( R_MPX_CUI_REORDER_CANCEL_CBA ); } iContainer->SetLbxCurrentItemIndexAndDraw( currentItem ); UpdateReorderNaviPaneL(); @@ -1596,6 +1595,7 @@ iContainer->ActivateReorderMode( EFalse ); iContainer->EnableFindBox( ETrue ); } + iHandlingKeyEvent = ETrue; iContainer->HandleLbxItemAdditionPreserveIndexL(); } @@ -4136,7 +4136,7 @@ TArray ary = attrs.Array(); iIncrementalOpenUtil->SetDelay( KIncrementalDelayNone ); iIncrementalOpenUtil->StartL( ary, KIncrementalFetchBlockSize, - KErrNotFound, CMPXCollectionOpenUtility::EFetchNormal ); + KErrNotFound, CMPXCollectionOpenUtility::EFetchDown ); iIncrementalOpenUtil->SetDelay( KIncrementalDelayHalfSecond ); CleanupStack::PopAndDestroy( &attrs ); @@ -5240,6 +5240,7 @@ } case EMPXCmdGoToNowPlaying: { + iGoToNowPlaying = ETrue; AppUi()->HandleCommandL( aCommand ); break; } @@ -6069,6 +6070,8 @@ delete iTitle; iTitle = NULL; } + // for Avkon calling Deactivate, not manually hiding window contorls, reset iGoToNowPlaying + iGoToNowPlaying = EFalse; // Cleanup view deactivation observer AppUi()->RemoveViewDeactivationObserver( this ); } @@ -6813,75 +6816,57 @@ HandleInitMusicMenuPaneL(aMenuPane); aMenuPane->SetItemDimmed( EMPXCmdGoToNowPlaying, NowPlayingOptionVisibilityL() ); - if ( isListEmpty ) + aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdUpnpPlayVia, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdUPnPAiwCmdCopyToExternalCriteria, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue ); + + if( iContainer->IsInReorderMode() ) + break; + + if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) { - aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdUpnpPlayVia, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdUPnPAiwCmdCopyToExternalCriteria, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue ); + aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() ); + aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue ); + } + else + { + TInt selectionCount( 0 ); + iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned + if ( iSelectionIndexCache) + { + selectionCount = iSelectionIndexCache->Count(); + } + // do not display add songs option when marking is on or USB is connected if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) { aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue ); } - else + else + { + aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 ); + } + + if ( iContainer->CurrentLbxItemIndex() > KErrNotFound ) { - aMenuPane->SetItemDimmed( EMPXCmdAddSongs, EFalse ); + aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() ); + aMenuPane->SetItemDimmed( EMPXCmdRemove, EFalse ); + if ( iContainer->CurrentListItemCount() > 1 ) + { + aMenuPane->SetItemDimmed( EMPXCmdReorder, EFalse ); + } } } - else - { - aMenuPane->SetItemDimmed( EMPXCmdUpnpPlayVia, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdUPnPAiwCmdCopyToExternalCriteria, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue ); - - - if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive ) - { - aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue ); - aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() ); - aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue ); - } - else - { - TInt selectionCount( 0 ); - iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned - if ( iSelectionIndexCache) - { - selectionCount = iSelectionIndexCache->Count(); - } - // 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 ) - { - aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() ); - aMenuPane->SetItemDimmed( EMPXCmdRemove, EFalse ); - } - } - } - - CMPXCollectionViewListBoxArray* array = + CMPXCollectionViewListBoxArray* array = static_cast( iContainer->ListBoxArray() ); const CMPXMedia& containerMedia = array->ContainerMedia(); @@ -6909,7 +6894,11 @@ aMenuPane->SetItemDimmed( EMPXCmdUseAsCascade, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdAlbumArt, ETrue ); aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue ); - + aMenuPane->SetItemDimmed( EMPXCmdSongDetails, ETrue ); + + if( iContainer->IsInReorderMode() ) + break; + TInt selectionCount( 0 ); iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned if ( iSelectionIndexCache) @@ -7150,9 +7139,8 @@ { ProcessCommandL( iContainer->IsInReorderMode() ? EMPXCmdReorderDrop : EMPXCmdReorderGrab ); - iIsGrabbed = !iIsGrabbed; - } - else if ( !iHandlingKeyEvent ) + } + else if ( !iHandlingKeyEvent ) { TMPXPlaybackState pbState( iPlaybackUtility->StateL() ); TBool isEqual( EFalse ); @@ -7289,8 +7277,7 @@ { SaveCurrentPlaylistL(); iContainer->ConfirmReorderL(); - DeactivateReorderGrabbedModeL( EFalse ); - SetNewCbaL( R_MPX_CUI_REORDER_GRAB_DONE_CBA ); + DeactivateReorderGrabbedModeL( ETrue ); break; } case EMPXCmdReorderGrab: @@ -7947,6 +7934,26 @@ iInSongDetails = EFalse; } } + else if ( ( aCurrentViewType.iUid == KMPXPluginTypePlaybackUid ) && ( iGoToNowPlaying == EFalse ) ) + { + // It is view switching when launched from other applications + // hide this view to avoid flickering + // since this view is the current active view, it receives this event + + if ( iContainer ) + { + iContainer->HideContainerWindow(); + + // set title to blank to avoid title flickering + CAknTitlePane* title( static_cast + ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle )))); + if ( title ) + { + title->SetTextL(KEmptyTitle); + title->DrawNow(); + } + } + } } // -----------------------------------------------------------------------------