smbmusicapmainplayerfilterlistviewplaylist.cpp

来自「symbian」· C++ 代码 · 共 1,673 行 · 第 1/5 页

CPP
1,673
字号
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListViewPlaylist.cpp
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListViewPlaylist class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16	|SDNA嶳壀	| 怴婯嶌惉
//2007/06/11	|SEMCJ暯壀	| PTX-824懳墳
//2007/07/12	|SEMCJ暯壀	| 恑捇傪嵟屻傑偱恑傔傞張棟傪捛壛
//2007/08/15	|SEMCJ暯壀丂| D_82400011208懳墳
//2007/08/29	|SEMCJ暯壀	| D_82400012340懳墳
//2007/09/04	|SEMCJ暯壀	| D_82400012386懳墳

#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbAfWording.loc>
#include <Music.mbg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewPlaylist.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerFilterProcessGetListFromSearchTop.h"
#include "SmbMusicAPMainPlayerFilterProcessGetListFromSearchCurrentList.h"
#include "SmbMusicAPMainPlayerFilterProcessCreatePlaylist.h"
#include "SmbMusicAPMainPlayerFilterProcessEditPlaylistTitle.h"
// Add-S PTX-824懳墳丂暯壀
#include "SmbMusicAPMainPlayerFilterProcessDuplicatePlaylist.h"
// Add-E PTX-824懳墳丂暯壀
#include "SmbMusicAPMainPlayerFilterProcessDeleteItems.h"
// Add-S PTX-824 D_82400011208懳墳 暯壀 2007.08.15
#include <SmbMusicAPSongInfoExternalInterface.h>
// Add-E PTX-824 D_82400011208懳墳 暯壀 2007.08.15

#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"

SEMCJ_NAMESPACE_BEGIN

/**
 * 僾儗僀儕僗僩堦棗僋儔僗
 *	KSmbMusicAPMainPlayerPLListViewUid
 */

//////////////////////////////////////////////////////////////////////////////////////
// 僋儔僗偺惗惉偲攋婞
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 嬋堦棗僋儔僗偺惗惉
 *
 * @param aView [in]	僼傿儖僞價儏乕
 * @return				僾儗僀儕僗僩堦棗僋儔僗
 */
CSmbMusicAPMainPlayerFilterListViewPlaylist* CSmbMusicAPMainPlayerFilterListViewPlaylist::NewL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
	{
	// 僀儞僗僞儞僗惗惉
	CSmbMusicAPMainPlayerFilterListViewPlaylist* self = new(ELeave) CSmbMusicAPMainPlayerFilterListViewPlaylist();
	// 僋儕乕儞傾僢僾僗僞僢僋妋曐
	CleanupStack::PushL(self);
	// 僙僇儞僪僐儞僗僩儔僋僞
	self->ConstructL(aViewUid, aView);
	// 僋儕乕儞傾僢僾僗僞僢僋奐曻
	CleanupStack::Pop();// self
	return self;
	}

/**
 * 僐儞僗僩儔僋僞
 *
 * @param aView [in]	僼傿儖僞價儏乕
 * @return				僾儗僀儕僗僩堦棗僋儔僗
 */
CSmbMusicAPMainPlayerFilterListViewPlaylist::CSmbMusicAPMainPlayerFilterListViewPlaylist()
				 							: iLog(CAfEnv::Static()->Log())
	{
	}

/**
 * 僙僇儞僪僐儞僗僩儔僋僞
 * @param aView       [in] FilterView
 * @param aSyncEngine [in] 摨婜僄儞僕儞
 * 
 */
void CSmbMusicAPMainPlayerFilterListViewPlaylist::ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
	{
	// 僞僀僩儖僶乕丄儕僗僩儃僢僋僗傪惗惉偡傞
	CSmbMusicAPMainPlayerFilterListView::ConstructL(aViewUid, aView);
	// 奜晹儊儌儕僂僅僢僠儍惗惉
	iExtMemWatcher = CSmbExtMemWatcher::NewL();
	// 奜晹儊儌儕僆僽僓乕僶傪愝掕
	// 娔帇懳徾: M.S. & SD僇乕僪
// Change-S PTX-824懳墳丂暯壀丂2007.06.11
#ifdef __MS_DRIVE_OFF__
	iExtMemWatcher->SetObserver(CSmbExtMemWatcher::ESd, this);
#else
	iExtMemWatcher->SetObserver(CSmbExtMemWatcher::EMs | CSmbExtMemWatcher::ESd, this);
#endif
// Change-E PTX-824懳墳丂暯壀丂2007.06.11
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPMainPlayerFilterListViewPlaylist::~CSmbMusicAPMainPlayerFilterListViewPlaylist()
	{
	// 奜晹儊儌儕僂僅僢僠儍嶍彍
	delete iExtMemWatcher;
	}

//////////////////////////////////////////////////////////////////////////////////////
// 弶婜愝掕
//////////////////////////////////////////////////////////////////////////////////////
void CSmbMusicAPMainPlayerFilterListViewPlaylist::SetupModelL()
	{
	}

void CSmbMusicAPMainPlayerFilterListViewPlaylist::SetupControlL()
	{
	// 僞僀僩儖傪撉傒崬傫偱愝掕偡傞
// Change-S PTX-824 暯壀
	SetTitleTextL(R_OT_MUSIC_MAIN_FLT_PLTYPELIST_TITLE);
//	SetTitleTextL(R_OT_MUSIC_MAIN_FLT_USERPLLIST_TITLE);
// Change-E PTX-824 暯壀
	SetTitleIconL(EMbmMusicMc_user_playlist_icon, EMbmMusicMc_track_icon);
	}

////////////////////////////////////////////////////////////////////////////
// 僼傿儖僞儕僗僩儌僨儖僀儀儞僩
////////////////////////////////////////////////////////////////////////////
TBool CSmbMusicAPMainPlayerFilterListViewPlaylist::HasParentList()
	{
	// 恊奒憌偼偁傞
	return ETrue;
	}

TBool CSmbMusicAPMainPlayerFilterListViewPlaylist::HasChildList()
	{
	// 傾僀僥儉偑偁傞偐偳偆偐傪僠僃僢僋
	if(0<ItemCount())
		{
		// 巕奒憌偼偁傞
		return ETrue;
		}
	else
		{
		// 巕奒憌偼側偄
		return EFalse;
		}
	}

////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
 * 儐乕僓僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPlaylist::HandleCommandL(TInt aCommandId)
	{
	// 婎杮僐儅儞僪
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdSelect:			// 崁栚慖戰僐儅儞僪乮抁墴偟乯
		case EMainPlayerFilterViewKGCmdPlay:			// 亂嵞惗亃	
		case EMainPlayerFilterViewKGCmdChildView:		// 巕奒憌夋柺慗堏僐儅儞僪
			{
			if(0==ItemCount())
				{
				return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
				}
			// 儕僗僩僴儞僪儖庢摼偡傞
			return ProcessCommandL(EMainPlayerFilterViewKGCmdSelect);
			}
		case EMainPlayerFilterViewKGCmdLongPlay:		// 亂嵞惗亃	
		case EMainPlayerFilterViewKGCmdLongSelect:		// 崁栚慖戰僐儅儞僪乮挿墴偟乯
			{
			if(0==ItemCount())
				{
				return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
				}
			// 儕僗僩僴儞僪儖庢摼偡傞
			return ProcessCommandL(EMainPlayerFilterViewKGCmdLongSelect);
			}
		case EMainPlayerFilterViewKGCmdCreate:			// 亂怴婯亃
		case ECmdFilterViewCreatePlaylist:				// 僾儗僀儕僗僩嶌惉
			{
			return ProcessCommandL(ECmdFilterViewCreatePlaylist);
			}
		case ECmdFilterViewRenamePlaylist:				// 僾儗僀儕僗僩柤曇廤
// Del-S PTX-824 暯壀
//			{
//			return ProcessCommandL(ECmdFilterViewRenamePlaylist);
//			}
// Del-E PTX-824 暯壀
// Add-S PTX-824 暯壀
		case ECmdFilterViewDuplicatePlaylist:			// 僾儗僀儕僗僩暋惢
// Add-E PTX-824 暯壀
// Add-S PTX-824 D_82400011208懳墳 暯壀 2007.08.15
		case ECmdFilterViewShowDetailInfomation:		// 徻嵶忣曬昞帵
// Add-E PTX-824 D_82400011208懳墳 暯壀 2007.08.15
		case ECmdFilterViewDeletePLOne:					// 僾儗僀儕僗僩嶍彍乮侾審嶍彍乯
		case ECmdFilterViewDeletePLMultiple:			// 僾儗僀儕僗僩嶍彍乮慖戰嶍彍乯
		case ECmdFilterViewDeletePLAll:					// 僾儗僀儕僗僩嶍彍乮慡審嶍彍乯
			{
			return ProcessCommandL(aCommandId);
			}
			
		case EMainPlayerFilterViewKGCmdClear:			// 僋儕傾乮慜夋柺乯僐儅儞僪
			{
			//2006.10.02 TRK#10722
			if(NULL!=ProcessObj() && ProcessObj()->InService()
			&& CSmbMusicAPMainPlayerFilterProcess::EProcessTypeDeleteItems==ProcessObj()->GetProcessType())
				{
				return ProcessCommandL(ECmdFilterViewDeletePLItemCancel);
				}
			else if(NULL!=ProcessObj() && ProcessObj()->InService())
				{
				return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
				}
			}
			break;
		case EMainPlayerFilterViewKGCmdParentView:		// 恊奒憌夋柺慗堏僐儅儞僪
			{
			//2006.10.16 TRK#10362
			if(NULL!=ProcessObj() && ProcessObj()->InService())
				{
				return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
				}
			}
			break;
		}
	return CSmbMusicAPMainPlayerFilterListView::HandleCommandL(aCommandId);
	}

/**
 * 僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessCommandL(TInt aCommandId)
	{
	//2006.09.26 僉乕楢懪帪偺懳墳
	if(NULL!=ProcessObj() && ProcessObj()->InService()
	//2006.10.04 僉儍儞僙儖僐儅儞僪偼僗儖乕偝偣傞
	&& ECmdFilterViewDeletePLItemCancel!=aCommandId)
		{
		return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		}
		
	// 僾儗僀儕僗僩堦棗僐儅儞僪
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdSelect:				// 僾儗僀儕僗僩嬋堦棗専嶕
		case EMainPlayerFilterViewKGCmdLongSelect:			// 挿墴偟偱慖戰
			{
			//2006.10.05 TRK#11038
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			ProcessGetListFromSearchCurrentList(aCommandId, ESmbMusicAPSyncEngineSearchIndex, ESmbMusicAPSyncEngineSongList, EFalse, KSmbMusicAPMainPlayerPLSongListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowOriginalPlaylist:			// 僆儕僕僫儖僾儗僀儕僗僩
		case ECmdFilterViewShowOriginalPlaylistForStartApp:	// 僆儕僕僫儖僾儗僀儕僗僩乮僼傽僀儖娗棟偐傜偺婲摦乯
			{
			//2006.10.05 TRK#11038
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
#if 0
//2006.10.24 TRK#12006 師婡庬(PTX-824)懳墳 TRK-507
//ADD-S>
			if(ECmdFilterViewShowOriginalPlaylistForStartApp==aCommandId)
				{
				View()->WaitReleaseSyncEngine();
				}
//ADD-E<
#endif
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineOriginalPlaylist, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerPLListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowOriginalPlaylistForInsert:	// 僆儕僕僫儖僾儗僀儕僗僩乮搊榐梡乯
			{
// Add-S PTX-824 D_82400012386懳墳 暯壀 2007.09.04
			iGettingPLInsertList = ETrue;			// 僾儗僀儕僗僩搊榐梡儕僗僩僴儞僪儖庢摼梫媮拞
// Add-E PTX-824 D_82400012386懳墳 暯壀 2007.09.04
			//2006.10.05 TRK#11038
			// 僀儀儞僩梷惂偡傞
			View()->SetEventDisabled(ETrue);
			ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineOriginalPlaylist, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerPLListViewUid);
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewShowImportPlaylist:				// 僀儞億乕僩僾儗僀儕僗僩
		case ECmdFilterViewShowImportPlaylistForStartApp:	// 僀儞億乕僩僾儗僀儕僗僩乮僼傽僀儖娗棟偐傜偺婲摦乯
			{
			//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(ECmdFilterViewShowImportPlaylistForStartApp==aCommandId)
					{
					View()->WaitReleaseSyncEngine();
					}
//ADD-E<
#endif
				ProcessGetListFromSearchTop(aCommandId, ESmbMusicAPSyncEngineImportPlaylist, ESmbMusicAPSyncEngineCategoryList, KSmbMusicAPMainPlayerPLListViewUid);
				}
			else
				{
				View()->SetEventDisabled(EFalse);
				//儕僗僩傪弶婜壔偡傞
				TInt listHandle = ListHandle();
				ResetListInfo();
				SetListHandle(listHandle);
				SetItemCount(0);
				// 僀儞億乕僩僾儗僀儕僗僩堦棗夋柺偵慗堏偡傞
				SetListType(EPLImportPLListType);
				// 傾僋僥傿僽愝掕傪偡傞乮僞僀僩儖僶乕丄僉乕僈僀僟儞僗偺嵞愝掕乯
				DoViewActivatedL();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?