smbmusicapmainplayerfilterviewmodel.cpp
来自「symbian」· C++ 代码 · 共 1,747 行 · 第 1/5 页
CPP
1,747 行
if(playListHandle==iActiveView->ListHandle())
{
iActiveView->SetDefaultIndex(playListItem);
}
}
iActiveView->AdjustActiveIndex();
}
// 嬋堦棗埲奜偺応崌偺傾僀僥儉庢摼
else if(KSmbMusicAPMainPlayerGenreListViewUid==targetViewUid
|| KSmbMusicAPMainPlayerArtistListViewUid==targetViewUid
|| KSmbMusicAPMainPlayerAlbumListViewUid==targetViewUid
|| KSmbMusicAPMainPlayerPLListViewUid==targetViewUid)
{
TInt activeIndex = iActiveView->ActiveIndex();
// 傾僀僥儉傪庢摼偡傞
iActiveView->ProcessLoadListItemsForScreenSync(ECmdFilterViewGetListItems, activeIndex);
iActiveView->SetActiveIndex(activeIndex);
iActiveView->AdjustActiveIndex();
}
}
/**
* 傾僋僥傿僽僀儞僨僢僋僗偺愝掕
*
* @param[in] aListHandle 儕僗僩僴儞僪儖
*/
void CSmbMusicAPMainPlayerFilterViewModel::AdjustActiveIndexL(TInt aListHandle)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterViewModel::AdjustActiveIndexL(%d)");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 100714, ELogLevelNormal, KLogFmt, aListHandle);
TUid viewUid = KSmbMusicAPMainPlayerInvalidUid;
CSmbMusicAPMainPlayerFilterListView* listView;
TSmbMusicAPSyncEnginePrevListInfo prevList;
TInt listHandle = aListHandle;
TInt itemIndex = 0;
//2006.10.14 TRK#11530
TInt selectedAll = -1;
// 儕僗僩僴儞僪儖偐傜専嶕僷僗傪嵞峔抸偡傞
while(ESmbLocalListHandleMusicMenu!=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.14 TRK#11530
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: ///<僀儞億乕僩僾儗僀儕僗僩
case ESmbMusicAPSyncEngineTypeWMAPlaylist: ///<WMA僾儗僀儕僗僩
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.14 TRK#11530
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-E 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);
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)
{
// 僀儞僨僢僋僗傪愝掕偡傞
listView->SetActiveIndex(itemIndex);
//2006.09.21 TRK#9528
TInt playListHandle;
TInt playListItem;
if(EFalse!=iView->CurrentPlayList(playListHandle, playListItem))
{
if(playListHandle==listView->ListHandle())
{
listView->SetDefaultIndex(playListItem);
listView->AdjustDefaultIndex();
}
}
}
}
else
{
// 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
// 僾儗僀儕僗僩慖戰丄曐懚愭慖戰偺応崌偼偙偙傪捠傞偼偢
listHandle = ESmbLocalListHandleMusicMenu;
break;
}
}
}
/**
* 儊僯儏乕夋柺偺専嶕僷僗峔抸
*
* @param[in] aCommandId
*/
void CSmbMusicAPMainPlayerFilterViewModel::SetPlaylistViewL(TInt aCommandId)
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterViewModel::SetPlaylistViewL(%d)");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, 100715, ELogLevelNormal, KLogFmt, aCommandId);
// 専嶕僷僗傪儕僙僢僩偡傞
// 儈儏乕僕僢僋儊僯儏偼巆偟偰偍偔
ResetFilterPathL(1);
CSmbMusicAPMainPlayerFilterListView* listView = NULL;
// 僾儗僀儕僗僩慖戰夋柺傪捛壛偡傞
listView = FindListViewByViewUid(KSmbMusicAPMainPlayerPLTypeListViewUid);
if(NULL!=listView)
{
AppendFilterPath(listView);
}
// 僾儗僀儕僗僩夋柺傪捛壛偡傞
listView = FindListViewByViewUid(KSmbMusicAPMainPlayerPLListViewUid);
if(NULL!=listView)
{
AppendFilterPath(listView);
if(ECmdFilterViewShowOriginalPlaylistForStartApp == aCommandId)
{
listView->SetListType(EPLOriginalPLListType);
}
// Change-S PTX-824懳墳丂暯壀
else if (ECmdFilterViewShowImportPlaylistForStartApp == aCommandId)
{
listView->SetListType(EPLImportPLListType);
}
else
{
listView->SetListType(EPLWMAPLListType);
}
// Change-E PTX-824懳墳丂暯壀
//2006.10.14 TRK#10229
listView->SetListHandle(ESmbLocalListHandleInvalid);
}
// 専嶕僷僗夋柺傪惍楍偡傞
AdjustFilterPathL(EFalse);
// 僇儗儞僩僀儞僨僢僋僗偺夋柺偵堏摦偡傞
iView->JumpToScreen(FilterPathCount()-1);
// 傾僋僥傿僽價儏乕傪曄峏偡傞
iActiveView = FilterPath(FilterPathCount()-1);
iActiveView->ProcessCommandL(aCommandId);
// 僼僅乕僇僗傪愝掕偡傞
iActiveView->DoViewActivatedL();
}
/**
* 尰嵼偺傾僋僥傿僽側價儏乕偺夋柺悢傪庢摼
*/
TInt CSmbMusicAPMainPlayerFilterViewModel::CountListView()
{
/*
TInt count = FilterPathCount();
TInt viewcount=0;
for(TInt index=0;index<count;index++)
{
TUid viewUid=FilterPath(index)->ViewUid();
if(KSmbMusicAPMainPlayerMusicMenuViewUid==viewUid
|| KSmbMusicAPMainPlayerPLTypeListViewUid==viewUid
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?