smbmusicapmainplayerfilterlistviewplaylist.cpp
来自「symbian」· C++ 代码 · 共 1,673 行 · 第 1/5 页
CPP
1,673 行
// 恊夋柺偺僼僅乕僇僗傪愝掕偡傞
AdjustParentIndex();
//DB峔抸拞偺惂尷捠抦僟僀傾儘僌傪昞帵偡傞
View()->SetDelayShowDialogL(R_DL_MUSIC_MAIN_BASE_DB_RESTRICTION);
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
// Add-S PTX-824懳墳丂暯壀
case ECmdFilterViewShowWMAPlaylist: // WMA僾儗僀儕僗僩
case ECmdFilterViewShowWMAPlaylistForStartApp: // WMA僾儗僀儕僗僩乮僼傽僀儖娗棟偐傜偺婲摦乯
{
//2006.10.11 TRK#11227
//DB峔抸拞偐偳偆偐傪僠僃僢僋偡傞
iMusicDBUpdating = View()->IsMusicDbUpdatingL();
if(EFalse==iMusicDBUpdating)
{
//2006.10.05 TRK#11038
// 僀儀儞僩梷惂偡傞
View()->SetEventDisabled(ETrue);
#if 0
//2006.10.24 TRK#12006 師婡庬(PTX-824)懳墳 TRK-507
//ADD-S>
if(ECmdFilterViewShowWMAPlaylistForStartApp==aCommandId)
{
View()->WaitReleaseSyncEngine();
}
//ADD-E<
#endif
ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineWMAPlaylist, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerPLListViewUid);
}
else
{
View()->SetEventDisabled(EFalse);
// 儕僗僩傪弶婜壔偡傞
TInt listHandle = ListHandle();
ResetListInfo();
SetListHandle(listHandle);
SetItemCount(0);
// WMA僾儗僀儕僗僩堦棗夋柺偵慗堏偡傞
SetListType(EPLWMAPLListType);
// 傾僋僥傿僽愝掕傪偡傞乮僞僀僩儖僶乕丄僉乕僈僀僟儞僗偺嵞愝掕乯
DoViewActivatedL();
// 恊夋柺偺僼僅乕僇僗傪愝掕偡傞
AdjustParentIndex();
//DB峔抸拞偺惂尷捠抦僟僀傾儘僌傪昞帵偡傞
View()->SetDelayShowDialogL(R_DL_MUSIC_MAIN_BASE_DB_RESTRICTION);
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
// Add-E PTX-824懳墳丂暯壀
case ECmdFilterViewCreatePlaylist: // 僾儗僀儕僗僩嶌惉
{
// 嶌惉姰椆屻偵僾儗僀儕僗僩嵟戝悢偵側傞応崌乽怴婯乿僉乕僈僀僟儞僗傪愭偵徚嫀偟偰偍偔
if(KOriginalPlaylistMaxCount<=ItemCount()+1)
{
View()->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
}
//丂僾儗僀儕僗僩悢偑惂尷悢(KOriginalPlaylistMaxCount)埲撪偱偁傞偙偲傪妋擣偡傞
if(KOriginalPlaylistMaxCount>ItemCount())
{
// 僾儗僀儕僗僩嶌惉夋柺傪昞帵偡傞
iEditCommand = ECmdFilterViewCreatePlaylist;
_LIT(KEmptyText, "");
StartFepL(R_OT_MUSIC_MAIN_FLT_CREATEPLAYLIST_FEPPARAM, KEmptyText);
}
// 僾儗僀儕僗僩悢僆乕僶乕偺応崌
else
{
HandleDialogCommandL(EShowWarningModelessDialog, R_DL_MUSIC_MAIN_FLT_CREATEPLAYLIST_LIMITOVER_WARNING);
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case ECmdFilterViewRenamePlaylist: // 僾儗僀儕僗僩柤曇廤
{
if(0<ItemCount())
{
// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
if(NULL!=item)
{
// 慖戰偝傟偰偄傞僾儗僀儕僗僩偺僞僀僩儖傪庢摼偡傞
TPtrC title = item->Text(MSkonMusicListBoxItem::ETextMain);
HBufC* itemText = HBufC::NewL(title.Length());
CleanupStack::PushL(itemText);
itemText->Des().Append(title);
// 僾儗僀儕僗僩柤曇廤夋柺傪昞帵偡傞
iEditCommand = ECmdFilterViewRenamePlaylist;
StartFepL(R_OT_MUSIC_MAIN_FLT_RENAMEPLAYLIST_FEPPARAM, itemText->Des());
CleanupStack::PopAndDestroy(itemText);
}
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
// Add-S PTX-824懳墳丂暯壀
case ECmdFilterViewDuplicatePlaylist: // 僾儗僀儕僗僩暋惢
{
//Hold梫媮
View()->StartProcessesWithHoldApp();
// 嶌惉姰椆屻偵僾儗僀儕僗僩嵟戝悢偵側傞応崌乽怴婯乿僉乕僈僀僟儞僗傪愭偵徚嫀偟偰偍偔
if(KOriginalPlaylistMaxCount<=ItemCount()+1)
{
View()->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
}
if(0<ItemCount())
{
//僀儀儞僩梷惂偡傞
View()->SetEventDisabled(ETrue);
// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
if(NULL!=item)
{
HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DUPLICATEPL_SELECT, NULL, NULL);
}
}
}
// return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
break;
case ECmdFilterViewDuplicatePLItem:
{
if(0<ItemCount())
{
// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
if(NULL!=item)
{
// 慖戰偝傟偰偄傞僾儗僀儕僗僩偺僞僀僩儖傪庢摼偡傞
TPtrC title = item->Text(MSkonMusicListBoxItem::ETextMain);
ProcessDuplicatePlaylistL(ECmdFilterViewDuplicatePLItem, title);
}
}
ResetProgress();
// 僾儘僌儗僗僶乕傪昞帵偡傞
//傒側偟僟僀傾儘僌
HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_DUPLICATE, NULL, NULL);
// 僀儀儞僩梷惂傪夝彍偡傞
View()->SetEventDisabled(EFalse);
}
break;
// Add-E PTX-824懳墳丂暯壀
// Add-S PTX-824 D_82400011208懳墳 暯壀 2007.08.15
case ECmdFilterViewShowDetailInfomation:
{
ProcessShowDetailInformationL();
}
break;
// Add-E PTX-824 D_82400011208懳墳 暯壀 2007.08.15
case ECmdFilterViewDeletePLOne: // 僾儗僀儕僗僩嶍彍乮侾審嶍彍乯
{
//2006.10.18 TRK#11638
View()->StartProcessesWithHoldApp();
//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
CreateSelectedItemsL();
//慖戰僼儔僌傪愝掕偡傞
SetSelectedItemAllFlag(EFalse);
//儕僗僩僴儞僪儖傪愝掕偡傞
SetSelectedItemListHandle(ListHandle());
//慖戰崁栚傪捛壛偡傞
AppendSelectedItem(CurrentItemIndex());
//侾審嶍彍傪妋擣偡傞僟僀傾儘僌傪昞帵偡傞
HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETEPL_SELECT, NULL, NULL);
}
break;
case ECmdFilterViewDeletePLAll: // 僾儗僀儕僗僩嶍彍乮慡審嶍彍乯
{
//2006.10.18 TRK#11638
View()->StartProcessesWithHoldApp();
//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
CreateSelectedItemsL();
//慖戰僼儔僌傪愝掕偡傞
SetSelectedItemAllFlag(ETrue);
//儕僗僩僴儞僪儖傪愝掕偡傞
SetSelectedItemListHandle(ListHandle());
//慡審嶍彍傪妋擣偡傞僟僀傾儘僌傪昞帵偡傞
HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETEPLALL_SELECT, NULL, NULL);
}
break;
case ECmdFilterViewDeletePLMultiple: // 僾儗僀儕僗僩嶍彍乮慖戰嶍彍乯
{
// 傾僀僥儉嫮惂嵞庢摼僼儔僌傪俷俶偵偟偰偍偔
ListItemsChanged(EReloadItemsOnly);
// 婲摦僷儔儊乕僞嶌惉
TSmbMusicAPMainPlayerPrmRegister param;
param.iKind = ESmbMusicAPMainPlayerDeletePLKind;
param.iListHandle = ListHandle();
param.iType = ESmbMusicAPMainPlayerSelectionMultiple;
param.vparam.SetReturnView(*View());
TPckgBuf<TSmbMusicAPMainPlayerPrmRegister> parambuf(param);
// 僾儗僀儕僗僩慖戰傊愗懼偊傞丅
View()->ChangeViewL(ESmbMusicAPMainPlayerPLSelectViewId, KSmbMusicAPMainPlayerRegisterMsgUid, parambuf);
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case ECmdFilterViewDeletePLItem:
{
TSmbMusicAPMainPlayerFilterListItems selectedItems;
SelectedItems(selectedItems);
ProcessDeleteItems(ECmdFilterViewDeletePLItem, selectedItems.iAllItem, selectedItems.iIndexArray);
// 2006.09.21 僾儘僌儗僗僟僀傾儘僌捛壛廋惓
ResetProgress();
// 僾儘僌儗僗僶乕傪昞帵偡傞
//2006.10.10 傒側偟僟僀傾儘僌
// HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
// TRK#11387 2006/10/13
if(EFalse==selectedItems.iAllItem)
{
HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_SINGULAR);
}
else
{
HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
}
// 2006.10.04
// 僀儀儞僩梷惂傪夝彍偡傞
View()->SetEventDisabled(EFalse);
}
break;
case ECmdFilterViewDeletePLItemCancel:
{
//2006.10.02 TRK#10722
//ADD-S 2006/10/05 TRK#10722
//DEL-S 2006/10/10 TRK#10814
// // 僀儀儞僩傪梷惂偡傞
// View()->SetEventDisabled(ETrue);
//DEL-E 2006/10/10 TRK#10814
//ADD-E 2006/10/05 TRK#10722
// 僾儘僌儗僗僟僀傾儘僌傪徚嫀偡傞
FinishProgress();
HandleDialogCommandL(ECloseModelessDialog, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
//2006.10.10
// CancelProcess(CSmbMusicAPMainPlayerFilterProcess::EProcessTypeDeleteItems); // 幚峴拞偺旕摨婜僾儘僙僗傪拞抐偡傞
if(NULL!=ProcessObj() && CSmbMusicAPMainPlayerFilterProcess::EProcessTypeDeleteItems==ProcessObj()->GetProcessType())
{
CSmbMusicAPMainPlayerFilterProcessDeleteItems* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessDeleteItems*>(ProcessObj());
processObj->CancelDeleteItems();
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
default:
break;
}
return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
}
// Add-S PTX-824 D_82400011208懳墳 暯壀 2007.08.15
/**
* 徻嵶忣曬昞帵傾僾儕傪婲摦偡傞
*
*/
void CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessShowDetailInformationL()
{
if(0<ItemCount())
{
// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
if(NULL!=item)
{
// 慖戰偝傟偰偄傞僾儗僀儕僗僩偺僞僀僩儖傪庢摼偡傞
TPtrC title = item->Text(MSkonMusicListBoxItem::ETextMain);
TSmbMusicAPPlayListInfoStartParam param;
param.SetReturnView(*View());
param.iPlayListTitle = title;
TSmbMusicAPPlayListStartParamBuf paramBuf(param);
View()->StartChildAppL(KSmbMusicAPSongInfoUid, KSmbMusicAPPlayListInfoViewUid, KSmbMusicAPSongInfoStartUid, paramBuf);
}
}
}
// Add-E PTX-824 D_82400011208懳墳 暯壀 2007.08.15
//////////////////////////////////////////////////////////////////////////////////////
// 旕摨婜僾儘僙僗
//////////////////////////////////////////////////////////////////////////////////////
// Change-S PTX-824 僐乕僨傿儞僌婯栺堘斀懳墳丂暯壀
void CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessCompleteL(TInt aResult, CSmbMusicAPMainPlayerFilterProcess& aProcess)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessCompleteL()");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 190030, ELogLevelNormal, KLogFmt);
if( NULL!=ProcessObj() && &aProcess==ProcessObj() &&
(CSmbMusicAPMainPlayerFilterProcess::EProcessTypeCreatePlayList== aProcess.GetProcessType()
|| CSmbMusicAPMainPlayerFilterProcess::EProcessTypeEditPlaylistTitle== aProcess.GetProcessType()))
{
// 僾儘僙僗姰椆乮僒僽僾儗僀儎憖嶌嬛巭夝彍丄僀儀儞僩梷惂夝彍乯
// View()->FinishProcesses();
// 僀儀儞僩梷惂傪夝彍偡傞
View()->SetEventDisabled(EFalse);
// 夋柺慗堏傪捠抦偡傞
View()->ChangeViewSyncEvent(ETrue);
}
if( NULL!=ProcessObj() && &aProcess==ProcessObj())
{
// if( CSmbMusicAPMainPlayerFilterProcess::EProcessTypeGetListFromSearchTop == aProcess.GetProcessType() ||
// CSmbMusicAPMainPlayerFilterProcess::EProcessTypeGetListFromSearchCurrentList == aProcess.GetProcessType() ||
// CSmbMusicAPMainPlayerFilterProcess::EProcessTypeCreatePlayList == aProcess.GetProcessType())
{
// 幚峴拞偺僐儅儞僪傪僠僃僢僋偡傞
switch(aProcess.GetRequestOwnerInfo())
{
case ECmdFilterViewShowOriginalPlaylist: // 僆儕僕僫儖僾儗僀儕僗僩
case ECmdFilterViewShowImportPlaylist: // 僀儞億乕僩僾儗僀儕僗僩
case ECmdFilterViewShowOriginalPlaylistForInsert: // 僆儕僕僫儖僾儗僀儕僗僩乮搊榐梡乯
// 2006.09.15 TRK7903, 8447懳墳
case ECmdFilterViewShowOriginalPlaylistForStartApp: // 僆儕僕僫儖僾儗僀儕僗僩乮僼傽僀儖娗棟偐傜偺婲摦乯
case ECmdFilterViewShowImportPlaylistForStartApp: // 僀儞億乕僩僾儗僀儕僗僩乮僼傽僀儖娗棟偐傜偺婲摦乯
//// Add-S PTX-824 暯壀
case ECmdFilterViewShowWMAPlaylist: // WMA僾儗僀儕僗僩
case ECmdFilterViewShowWMAPlaylistForStartApp: // WMA僾儗僀儕僗僩乮僼傽僀儖娗棟偐傜偺婲摦乯
//// Add-E PTX-824 暯壀
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessCompleteL() command:%d");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 190031, ELogLevelNormal, KLogFmt, aProcess.GetRequestOwnerInfo());
// 婎掙僋儔僗偺姰椆張棟偱弶婜壔偝傟傞偺偱丄帠慜偵ID傪庢摼偟偰偍偔
TInt processCommandID = aProcess.GetRequestOwnerInfo();
if(KErrNone==aResult)
{
iEditItemIndex = 0;
iScreenTopIndex = 0;
CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop*>(&aProcess);
// CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessGetListFromSearchTop*,&aProcess);
// 婎掙僋儔僗偱姰椆張棟偡傞
// CSmbMusicAPMainPlayerFilterListView::ProcessComplete(aResult, aProcess);
TInt listHandle = 0;
TInt count = 0;
processObj->GetListHandle(listHandle);
processObj->GetCount(count);
SetListHandle(listHandle);
SetItemCount(count);
// Change-S PTX-824懳墳丂暯壀
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?