smbmusicapmainplayerfilterlistviewmeta.cpp
来自「symbian」· C++ 代码 · 共 574 行 · 第 1/2 页
CPP
574 行
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterListViewMeta.cpp
//
// Description:
// CSmbMusicAPMainPlayerFilterListViewMeta class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16 |SDNA嶳壀 | 怴婯嶌惉
//2007/07/23 |SEMCJ暯壀 | D_82400006405, D_82400004469 儈儏乕僕僢僋儊僯儏乕傾僀僐儞懳墳
//2007/09/11 |SEMCJ暯壀 | D_82400013891懳墳
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbAfWording.loc>
#include <Music.mbg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewMeta.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList.h"
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
SEMCJ_NAMESPACE_BEGIN
/**
* 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉儕僗僩僋儔僗
* KSmbMusicAPMainPlayerGenreListViewUid
* KSmbMusicAPMainPlayerArtistListViewUid
* KSmbMusicAPMainPlayerArtistListViewUid
*/
//////////////////////////////////////////////////////////////////////////////////////
// 僋儔僗偺惗惉偲攋婞
//////////////////////////////////////////////////////////////////////////////////////
/**
* 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉儕僗僩僋儔僗偺惗惉
*
* @param aView [in] 僼傿儖僞價儏乕
* @return 儈儏乕僕僢僋儊僯儏乕儕僗僩僋儔僗
*/
CSmbMusicAPMainPlayerFilterListViewMeta* CSmbMusicAPMainPlayerFilterListViewMeta::NewL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
{
// 僀儞僗僞儞僗惗惉
CSmbMusicAPMainPlayerFilterListViewMeta* self = new(ELeave) CSmbMusicAPMainPlayerFilterListViewMeta();
// 僋儕乕儞傾僢僾僗僞僢僋妋曐
CleanupStack::PushL(self);
// 僙僇儞僪僐儞僗僩儔僋僞
self->ConstructL(aViewUid, aView);
// 僋儕乕儞傾僢僾僗僞僢僋奐曻
CleanupStack::Pop();// self
return self;
}
/**
* 僐儞僗僩儔僋僞
*
* @param aView [in] 僼傿儖僞價儏乕
* @return 儈儏乕僕僢僋儊僯儏乕儕僗僩僋儔僗
*/
CSmbMusicAPMainPlayerFilterListViewMeta::CSmbMusicAPMainPlayerFilterListViewMeta()
{
}
/**
* 僙僇儞僪僐儞僗僩儔僋僞
* @param aView [in] FilterView
* @param aSyncEngine [in] 摨婜僄儞僕儞
*
*/
void CSmbMusicAPMainPlayerFilterListViewMeta::ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
{
// 僞僀僩儖僶乕丄儕僗僩儃僢僋僗傪惗惉偡傞
CSmbMusicAPMainPlayerFilterListView::ConstructL(aViewUid, aView);
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerFilterListViewMeta::~CSmbMusicAPMainPlayerFilterListViewMeta()
{
}
//////////////////////////////////////////////////////////////////////////////////////
// 弶婜愝掕
//////////////////////////////////////////////////////////////////////////////////////
void CSmbMusicAPMainPlayerFilterListViewMeta::SetupModelL()
{
// 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉儕僗僩偺弶婜傾僀僥儉傪撉傒崬傓
if(KSmbMusicAPMainPlayerGenreListViewUid==ViewUid()) ///< 僕儍儞儖堦棗夋柺
{
Model()->SetReservedItem(R_SMB_AF_STR_WRD2833, EMainPlayerFilterViewKGCmdSelectAll);
Model()->SetNoTitleResId(R_SMB_AF_STR_WRD2830);
}
else if(KSmbMusicAPMainPlayerArtistListViewUid==ViewUid()) ///< 傾乕僥傿僗僩堦棗夋柺
{
Model()->SetReservedItem(R_SMB_AF_STR_WRD2831, EMainPlayerFilterViewKGCmdSelectAll);
Model()->SetNoTitleResId(R_SMB_AF_STR_WRD2823);
}
else if(KSmbMusicAPMainPlayerAlbumListViewUid==ViewUid()) ///< 傾儖僶儉堦棗夋柺
{
Model()->SetReservedItem(R_SMB_AF_STR_WRD2832, EMainPlayerFilterViewKGCmdSelectAll);
Model()->SetNoTitleResId(R_SMB_AF_STR_WRD2825);
}
}
void CSmbMusicAPMainPlayerFilterListViewMeta::SetupControlL()
{
// 僞僀僩儖傪撉傒崬傫偱愝掕偡傞
SetTitleTextL(R_OT_MUSIC_MAIN_FLT_PLTYPELIST_TITLE);
// 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉儕僗僩偺弶婜傾僀僥儉傪撉傒崬傓
if(KSmbMusicAPMainPlayerGenreListViewUid==ViewUid()) ///< 僕儍儞儖堦棗夋柺
{
SetTitleTextL(R_OT_MUSIC_MAIN_FLT_GENRELIST_TITLE);
// SetTitleIconL(EMbmMusicMc_genre_icon, EMbmMusicMc_track_icon);
}
else if(KSmbMusicAPMainPlayerArtistListViewUid==ViewUid()) ///< 傾乕僥傿僗僩堦棗夋柺
{
SetTitleTextL(R_OT_MUSIC_MAIN_FLT_ARTISTLIST_TITLE);
// SetTitleIconL(EMbmMusicMc_artist_icon, EMbmMusicMc_track_icon);
}
else if(KSmbMusicAPMainPlayerAlbumListViewUid==ViewUid()) ///< 傾儖僶儉堦棗夋柺
{
SetTitleTextL(R_OT_MUSIC_MAIN_FLT_ALBUMLIST_TITLE);
// SetTitleIconL(EMbmMusicMc_album_icon, EMbmMusicMc_track_icon);
}
}
////////////////////////////////////////////////////////////////////////////
// 僼傿儖僞儕僗僩儌僨儖僀儀儞僩
////////////////////////////////////////////////////////////////////////////
TBool CSmbMusicAPMainPlayerFilterListViewMeta::HasParentList()
{
// 恊奒憌偼偁傞
return ETrue;
}
TBool CSmbMusicAPMainPlayerFilterListViewMeta::HasChildList()
{
// 傾僀僥儉偑偁傞偐偳偆偐傪僠僃僢僋
if(0<ItemCount())
{
// 巕奒憌偼偁傞
return ETrue;
}
else
{
// 巕奒憌偼側偄
return EFalse;
}
}
////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
* 儐乕僓僐儅儞僪幚峴
*
* @param aCommandId [in] 僐儅儞僪ID
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewMeta::HandleCommandL(TInt aCommandId)
{
// 婎杮僐儅儞僪
switch(aCommandId)
{
case EMainPlayerFilterViewKGCmdSelect: // 崁栚慖戰僐儅儞僪乮抁墴偟乯
case EMainPlayerFilterViewKGCmdChildView: // 巕奒憌夋柺慗堏僐儅儞僪
{
if(0==ItemCount())
{
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
}
// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
// 儊僯儏乕僐儅儞僪偑愝掕偝傟偰偄傞応崌
if(NULL!=item && 0!=item->CommandID())
{
// 僐儅儞僪張棟偡傞
return ProcessCommandL(item->CommandID());
}
else
{
// 儕僗僩僴儞僪儖庢摼偡傞
return ProcessCommandL(EMainPlayerFilterViewKGCmdSelect);
}
}
// return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case EMainPlayerFilterViewKGCmdLongSelect: // 崁栚慖戰僐儅儞僪乮挿墴偟乯
{
if(0==ItemCount())
{
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
}
// 慖戰偝傟偨傾僀僥儉傪庢摼偡傞
CSmbMusicAPMainPlayerFilterListItem* item = CurrentItem();
// 儊僯儏乕僐儅儞僪偑愝掕偝傟偰偄傞応崌
if(NULL!=item && 0!=item->CommandID())
{
// 僐儅儞僪張棟偡傞
return ProcessCommandL(EMainPlayerFilterViewKGCmdLongSelectAll);
}
else
{
// 儕僗僩僴儞僪儖庢摼偡傞
return ProcessCommandL(EMainPlayerFilterViewKGCmdLongSelect);
}
}
// return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case EMainPlayerFilterViewKGCmdClear: // 僋儕傾乮慜夋柺乯僐儅儞僪
break;
case EMainPlayerFilterViewKGCmdParentView: // 恊奒憌夋柺慗堏僐儅儞僪
break;
}
return CSmbMusicAPMainPlayerFilterListView::HandleCommandL(aCommandId);
}
/**
* 僐儅儞僪幚峴
*
* @param aCommandId [in] 僐儅儞僪ID
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewMeta::ProcessCommandL(TInt aCommandId)
{
//
// 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉儕僗僩僐儅儞僪
//
switch(aCommandId)
{
case EMainPlayerFilterViewKGCmdSelect: // 僕儍儞儖/傾乕僥傿僗僩/傾儖僶儉峣傝崬傒専嶕
case EMainPlayerFilterViewKGCmdLongSelect: // 挿墴偟偱慖戰
{
TSmbMusicAPSyncEngineListSearchCondition listSearchCondition = ESmbMusicAPSyncEngineSearchIndex;
TSmbMusicAPSyncEngineRequestListType requestListType = ESmbMusicAPSyncEngineCategoryList;
TUid viewUid = KSmbMusicAPMainPlayerInvalidUid;
TBool longSelect = aCommandId==EMainPlayerFilterViewKGCmdLongSelect? ETrue : EFalse;
if(KSmbMusicAPMainPlayerGenreListViewUid==ViewUid()) ///< 僕儍儞儖堦棗夋柺
{
requestListType = ESmbMusicAPSyncEngineCategoryList;
viewUid = KSmbMusicAPMainPlayerArtistListViewUid; // -> 傾乕僥傿僗僩堦棗夋柺
}
else if(KSmbMusicAPMainPlayerArtistListViewUid==ViewUid()) ///< 傾乕僥傿僗僩堦棗夋柺
{
requestListType = ESmbMusicAPSyncEngineCategoryList;
viewUid = KSmbMusicAPMainPlayerAlbumListViewUid; // -> 傾儖僶儉堦棗夋柺
}
else if(KSmbMusicAPMainPlayerAlbumListViewUid==ViewUid()) ///< 傾儖僶儉堦棗夋柺
{
requestListType = ESmbMusicAPSyncEngineSongList;
viewUid = KSmbMusicAPMainPlayerSongListViewUid; // -> 嬋堦棗夋柺
longSelect = EFalse;
}
// 僀儀儞僩梷惂偡傞
View()->SetEventDisabled(ETrue);
ProcessGetListFromSearchCurrentList(aCommandId, listSearchCondition, requestListType, longSelect, viewUid);
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case EMainPlayerFilterViewKGCmdSelectAll: // 乽偡傋偰偺乣乿傪崁栚慖戰
case EMainPlayerFilterViewKGCmdLongSelectAll: // 乽偡傋偰偺乣乿傪崁栚慖戰乮挿墴偟乯
{
TSmbMusicAPSyncEngineListSearchCondition listSearchCondition = ESmbMusicAPSyncEngineSearchAll;
TSmbMusicAPSyncEngineRequestListType requestListType = ESmbMusicAPSyncEngineSongList;
TUid viewUid = KSmbMusicAPMainPlayerSongListViewUid; // -> 嬋堦棗夋柺;
// 僀儀儞僩梷惂偡傞
View()->SetEventDisabled(ETrue);
ProcessGetListFromSearchCurrentList(aCommandId, listSearchCondition, requestListType, EFalse, viewUid);
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
default:
break;
}
return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
}
//////////////////////////////////////////////////////////////////////////////////////
// 旕摨婜僾儘僙僗
//////////////////////////////////////////////////////////////////////////////////////
// from MSmbMusicAPMainPlayerFilterProcessObserver
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?