smbmusicapmainplayerfilterviewmodel.cpp
来自「symbian」· C++ 代码 · 共 1,747 行 · 第 1/5 页
CPP
1,747 行
InsertFilterPath(1, listView);
}
}
// 2006.09.23 儕僗僩僴儞僪儖偺応崌
else
{
if(KErrNone==iView->SyncModel().GetListType(listHandle, listType))
{
switch(listType)
{
case ESmbMusicAPSyncEngineTypeGenre: ///<僕儍儞儖
targetViewUid = KSmbMusicAPMainPlayerGenreListViewUid;
break;
case ESmbMusicAPSyncEngineTypeArtist: ///<傾乕僥傿僗僩
targetViewUid = KSmbMusicAPMainPlayerArtistListViewUid;
break;
case ESmbMusicAPSyncEngineTypeAlbum: ///<傾儖僶儉
targetViewUid = KSmbMusicAPMainPlayerAlbumListViewUid;
break;
case ESmbMusicAPSyncEngineTypeOriginalPlaylist: ///<僆儕僕僫儖僾儗僀儕僗僩
case ESmbMusicAPSyncEngineTypeImportPlaylist: ///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
case ESmbMusicAPSyncEngineTypeWMAPlaylist: ///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
targetViewUid = KSmbMusicAPMainPlayerPLListViewUid;
break;
case ESmbMusicAPSyncEngineTypeSonglist: ///<嬋堦棗
// 嬋堦棗偺昞帵偺応崌
// 嬋堦棗偲僾儗僀儕僗僩嬋堦棗傪幆暿偡傞偨傔偵慗堏尦傪挷傋傞
targetViewUid = KSmbMusicAPMainPlayerSongListViewUid;
if(KErrNone==iView->SyncModel().GetPrevList(listHandle, prevList))
{
if(ESmbMusicAPSyncEngineTypeOriginalPlaylist==prevList.iListType
|| ESmbMusicAPSyncEngineTypeImportPlaylist==prevList.iListType
// Add-S PTX-824懳墳丂暯壀
|| ESmbMusicAPSyncEngineTypeWMAPlaylist==prevList.iListType)
// Add-E PTX-824懳墳丂暯壀
{
targetViewUid = KSmbMusicAPMainPlayerPLSongListViewUid;
}
}
break;
case ESmbMusicAPSyncEngineTypeInvalidlist: ///<柍岠側儕僗僩
listHandle = ESmbLocalListHandleInvalid;
break;
}
}
else
{
listHandle = ESmbLocalListHandleInvalid;
}
if(ESmbLocalListHandleInvalid!=listHandle)
{
// 夋柺傪庢摼偡傞
listView = FindListViewByViewUid(targetViewUid);
if(NULL!=listView)
{
if(ESmbLocalListHandlePLType!=listHandle && ESmbLocalListHandleMemType!=listHandle)
{
// 儕僗僩僴儞僪儖傪愝掕偡傞
listView->SetListHandle(listHandle);
}
// 僀儞僨僢僋僗傪愝掕偡傞
listView->SetActiveIndex(itemIndex);
if(KSmbMusicAPMainPlayerSongListViewUid==targetViewUid || KSmbMusicAPMainPlayerPLSongListViewUid==targetViewUid)
{
//2006.09.21 TRK#9528
//listView->SetDefaultIndex(itemIndex);
TInt playListHandle;
TInt playListItem;
if(EFalse!=iView->CurrentPlayList(playListHandle, playListItem))
{
if(playListHandle==listView->ListHandle())
{
listView->SetDefaultIndex(playListItem);
}
}
}
listView->AdjustActiveIndex();
// 専嶕僷僗偺儈儏乕僕僢僋儊僯儏乕偺屻傠偵儕僗僩夋柺傪捛壛偡傞
AppendFilterPath(listView);
}
}
}
// 儕僗僩僴儞僪儖偐傜専嶕僷僗傪嵞峔抸偡傞
//2006.10.06 TRK#10926
TInt selectedAll = -1;
// 2006.09.18 TRK#8996
// while(ESmbLocalListHandleMusicMenu!=listHandle && ESmbLocalListHandleInvalid!=listHandle)
while(ESmbLocalListHandleMusicMenu!=listHandle
&& ESmbLocalListHandlePLType!=listHandle
&& ESmbLocalListHandleMemType!=listHandle
&& ESmbLocalListHandleInvalid!=listHandle)
{
// 慗堏尦偺儕僗僩傪庢摼偡傞
if(KErrNone==iView->SyncModel().GetPrevList(listHandle, prevList))
{
// 慗堏尦儕僗僩忣曬偑儕僗僩傾僀僥儉偐偳偆偐丠乮iListInfo ETrue:慗堏尦儕僗僩傾僀僥儉丄EFalse:専嶕忣曬乯
if(EFalse!=prevList.iListInfo)
{
// 儕僗僩僴僴儞僪儖傪愝掕偡傞
listHandle = prevList.iListItem.iListHandle;
// 僀儞僨僢僋僗傪愝掕偡傞
if(0>prevList.iListItem.iIndex)
{
// 乽偡傋偰偺乣乿偺応崌偺僀儞僨僢僋僗傪愝掕偡傞
itemIndex = 0;
//2006.10.06 TRK#10926
selectedAll++;
}
else
{
itemIndex = prevList.iListItem.iIndex;
}
// 價儏乕僞僀僾傪愝掕偡傞
switch(prevList.iListType)
{
case ESmbMusicAPSyncEngineTypeGenre: ///<僕儍儞儖
viewUid = KSmbMusicAPMainPlayerGenreListViewUid;
itemIndex++;
break;
case ESmbMusicAPSyncEngineTypeArtist: ///<傾乕僥傿僗僩
viewUid = KSmbMusicAPMainPlayerArtistListViewUid;
itemIndex++;
break;
case ESmbMusicAPSyncEngineTypeAlbum: ///<傾儖僶儉
viewUid = KSmbMusicAPMainPlayerAlbumListViewUid;
itemIndex++;
break;
case ESmbMusicAPSyncEngineTypeOriginalPlaylist: ///<僆儕僕僫儖僾儗僀儕僗僩
case ESmbMusicAPSyncEngineTypeImportPlaylist: ///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
case ESmbMusicAPSyncEngineTypeWMAPlaylist: ///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
viewUid = KSmbMusicAPMainPlayerPLListViewUid;
break;
case ESmbMusicAPSyncEngineTypeSonglist: ///<嬋堦棗
// 偡偱偵嬋堦棗偼捛壛嵪傒偺偼偢偩偑丄堦墳張棟偼擖傟偰偍偔
// 嬋堦棗偲僾儗僀儕僗僩嬋堦棗傪幆暿偡傞偨傔偵慗堏尦傪挷傋傞
viewUid = KSmbMusicAPMainPlayerSongListViewUid;
if(KErrNone==iView->SyncModel().GetPrevList(listHandle, prevList))
{
if(ESmbMusicAPSyncEngineTypeOriginalPlaylist==prevList.iListType
|| ESmbMusicAPSyncEngineTypeImportPlaylist==prevList.iListType
// Add-S PTX-824懳墳丂暯壀
|| ESmbMusicAPSyncEngineTypeWMAPlaylist==prevList.iListType)
// Add-E PTX-824懳墳丂暯壀
{
viewUid = KSmbMusicAPMainPlayerPLSongListViewUid;
}
}
break;
case ESmbMusicAPSyncEngineTypeInvalidlist: ///<柍岠側儕僗僩
default:
// 堎忢張棟
// 儖乕僾傪敳偗傞
listHandle = ESmbLocalListHandleInvalid;
break;
}
//2006.10.06 TRK#10926
if (ESmbMusicAPSyncEngineTypeGenre == prevList.iListType ||
ESmbMusicAPSyncEngineTypeArtist == prevList.iListType ||
ESmbMusicAPSyncEngineTypeAlbum == prevList.iListType)
{
if (0 == selectedAll)
{
itemIndex = 0;
selectedAll++;
}
}
}
// 専嶕忣曬乮儈儏乕僕僢僋儊僯儏乕/僾儗僀儕僗僩僞僀僾慖戰/曐懚愭慖戰乯偺応崌
else
{
switch(prevList.iSearchCondition)
{
// 儈儏乕僕僢僋儊僯儏乕
case ESmbMusicAPSyncEngineAlbum: ///<傾儖僶儉
listHandle = ESmbLocalListHandleMusicMenu;
viewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
itemIndex = 2;
break;
case ESmbMusicAPSyncEngineArtist: ///<傾乕僥傿僗僩
listHandle = ESmbLocalListHandleMusicMenu;
viewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
itemIndex = 3;
break;
case ESmbMusicAPSyncEngineGenre: ///<僕儍儞儖
listHandle = ESmbLocalListHandleMusicMenu;
viewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
itemIndex = 4;
break;
case ESmbMusicAPSyncEngineAll: ///<偡傋偰偺嬋
listHandle = ESmbLocalListHandleMusicMenu;
viewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
itemIndex = 6;
break;
case ESmbMusicAPSyncEngineOften50: ///<傛偔挳偔50嬋
listHandle = ESmbLocalListHandleMusicMenu;
viewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
itemIndex = 7;
break;
case ESmbMusicAPSyncEngineLatest50: ///<嵟嬤挳偄偨50嬋
listHandle = ESmbLocalListHandleMusicMenu;
viewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
itemIndex = 8;
break;
// 僾儗僀儕僗僩僞僀僾慖戰
case ESmbMusicAPSyncEngineOriginalPlaylist: ///<僆儕僕僫儖僾儗僀儕僗僩
listHandle = ESmbLocalListHandlePLType;
viewUid = KSmbMusicAPMainPlayerPLTypeListViewUid;
itemIndex = 0;
break;
case ESmbMusicAPSyncEngineImportPlaylist: ///<僀儞億乕僩僾儗僀儕僗僩
listHandle = ESmbLocalListHandlePLType;
viewUid = KSmbMusicAPMainPlayerPLTypeListViewUid;
itemIndex = 1;
break;
//Add-S PTX-824懳墳丂暯壀
case ESmbMusicAPSyncEngineWMAPlaylist: ///<WMA僾儗僀儕僗僩
listHandle = ESmbLocalListHandlePLType;
viewUid = KSmbMusicAPMainPlayerPLTypeListViewUid;
itemIndex = 2;
break;
//Add-E PTX-824懳墳丂暯壀
// 曐懚愭慖戰
case ESmbMusicAPSyncEngineDataBox: ///<曐懚愭偐傜1(僨乕僞BOX)
listHandle = ESmbLocalListHandleMemType;
viewUid = KSmbMusicAPMainPlayerMemTypeListViewUid;
itemIndex = 0;
break;
// Del-S PTX-824懳墳 TRK955 暯壀
#ifdef EXPANDEDMEM_DELETE
case ESmbMusicAPSyncEngineMassStorage: ///<曐懚愭偐傜2(杮懱奼挘儊儌儕)
listHandle = ESmbLocalListHandleMemType;
viewUid = KSmbMusicAPMainPlayerMemTypeListViewUid;
itemIndex = 1;
break;
#endif
// Del-S PTX-824懳墳 TRK955 暯壀
case ESmbMusicAPSyncEngineMSDuo: ///<曐懚愭偐傜3(M.S.Duo)
case ESmbMusicAPSyncEngineMiniSD: ///<曐懚愭偐傜4(miniSD)
listHandle = ESmbLocalListHandleMemType;
viewUid = KSmbMusicAPMainPlayerMemTypeListViewUid;
itemIndex = 2;
break;
}
}
// 柍岠側儕僗僩僴儞僪儖偺応崌
if(ESmbLocalListHandleInvalid==listHandle)
{
// 儖乕僾傪敳偗傞
break;
}
// 儈儏乕僕僢僋儊僯儏乕偺応崌
if(ESmbLocalListHandleMusicMenu==listHandle)
{
// 儈儏乕僕僢僋儊僯儏乕偺僀儞僨僢僋僗傪愝掕偟偰儖乕僾傪敳偗傞
FilterPath(0)->SetActiveIndex(itemIndex);
// FilterPath(0)->SetDefaultIndex(itemIndex);
FilterPath(0)->AdjustActiveIndex();
break;
}
// ADD-S thiguchi TRK10383
TInt index(-1);
switch(listHandle)
{
case ESmbLocalListHandlePLType:
index = 5;
break;
case ESmbLocalListHandleMemType:
index = 9;
break;
default:
break;
}
if(-1 != index)
{
// 儈儏乕僕僢僋儊僯儏乕偺僀儞僨僢僋僗傪愝掕偡傞
FilterPath(0)->SetActiveIndex(index);
FilterPath(0)->AdjustActiveIndex();
}
// ADD-E thiguchi TRK10383
// 夋柺傪庢摼偡傞
listView = FindListViewByViewUid(viewUid);
if(NULL!=listView)
{
if(ESmbLocalListHandlePLType!=listHandle && ESmbLocalListHandleMemType!=listHandle)
{
// 儕僗僩僴儞僪儖傪愝掕偡傞
listView->ResetListInfo();
listView->SetListHandle(listHandle);
listView->SetItemCount(iView->SyncModel().GetItemCount(listHandle));
}
// 僀儞僨僢僋僗傪愝掕偡傞
listView->SetActiveIndex(itemIndex);
// listView->SetDefaultIndex(itemIndex);
listView->AdjustActiveIndex();
// 専嶕僷僗偺儈儏乕僕僢僋儊僯儏乕偺屻傠偵夋柺傪憓擖偡傞
InsertFilterPath(1, listView);
}
}
else
{
// 僾儗僀儕僗僩慖戰丄曐懚愭慖戰偺応崌偼偙偙傪捠傞偼偢
// 儖乕僾傪敳偗傞
listHandle = ESmbLocalListHandleMusicMenu;
break;
}
}
// 柍岠側儕僗僩僴儞僪儖偺応崌偼儈儏乕僕僢僋儊僯儏乕傪昞帵偡傞
if(ESmbLocalListHandleInvalid==listHandle)
{
// 専嶕僷僗傪儕僙僢僩偡傞
ResetFilterPathL(1);
targetViewUid = KSmbMusicAPMainPlayerMusicMenuViewUid;
}
// 専嶕僷僗夋柺傪惍楍偡傞
AdjustFilterPathL(EFalse);
// 傾僋僥傿僽價儏乕傪曄峏偡傞
iActiveView = FilterPath(FilterPathCount()-1);
// 僇儗儞僩僀儞僨僢僋僗偺夋柺偵堏摦偡傞
iView->JumpToScreen(FilterPathCount()-1);
// 僼僅乕僇僗傪愝掕偡傞
iActiveView->DoViewActivatedL();
// 嬋堦棗偺傾僀僥儉傪嵞庢摼偡傞
if(KSmbMusicAPMainPlayerSongListViewUid==targetViewUid
|| KSmbMusicAPMainPlayerPLSongListViewUid==targetViewUid)
{
//2006.10.06 TRK#10070
//TInt activeIndex = iActiveView->ActiveIndex();
TInt activeIndex = aIndex;
// 傾僀僥儉傪庢摼偡傞
iActiveView->ProcessLoadListItemsForScreenSync(ECmdFilterViewGetListItems, activeIndex);
iActiveView->SetActiveIndex(activeIndex);
//2006.09.21 TRK#9528
//iActiveView->SetDefaultIndex(activeIndex);
TInt playListHandle;
TInt playListItem;
if(EFalse!=iView->CurrentPlayList(playListHandle, playListItem))
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?