smbmusicapmainplayerfilterlistviewplsong.cpp

来自「symbian」· C++ 代码 · 共 854 行 · 第 1/3 页

CPP
854
字号
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListViewPLSong.cpp
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListViewPLSong class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16	|SDNA嶳壀	| 怴婯嶌惉
//2006/10/13	|SDNA壀嶳	| TRK11418懳墳
//2007/06/27	|SEMCJ暯壀	| 僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
//2007/07/12	|SEMCJ暯壀	| 恑捇傪嵟屻傑偱恑傔傞張棟傪捛壛
//2007/07/24	|SEMCJ暯壀	| D_82400007625懳墳

#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSong.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerFilterProcessRemoveItems.h"

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

SEMCJ_NAMESPACE_BEGIN

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

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

/**
 * 僐儞僗僩儔僋僞
 *
 * @param aView [in]	僼傿儖僞價儏乕
 * @return				嬋堦棗儕僗僩僋儔僗
 */
CSmbMusicAPMainPlayerFilterListViewPLSong::CSmbMusicAPMainPlayerFilterListViewPLSong()
	{
	}

/**
 * 僙僇儞僪僐儞僗僩儔僋僞
 * @param aView       [in] FilterView
 * @param aSyncEngine [in] 摨婜僄儞僕儞
 * 
 */
void CSmbMusicAPMainPlayerFilterListViewPLSong::ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
	{
	// 僞僀僩儖僶乕丄儕僗僩儃僢僋僗傪惗惉偡傞
	CSmbMusicAPMainPlayerFilterListViewSong::ConstructL(aViewUid, aView);
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPMainPlayerFilterListViewPLSong::~CSmbMusicAPMainPlayerFilterListViewPLSong()
	{
	}

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

void CSmbMusicAPMainPlayerFilterListViewPLSong::SetupControlL()
	{
	// 僞僀僩儖傪撉傒崬傫偱愝掕偡傞
	SetTitleTextL(R_OT_MUSIC_MAIN_FLT_SONGLIST_TITLE);
	}

////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
 * 儐乕僓僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSong::HandleCommandL(TInt aCommandId)
	{
	// 婎杮僐儅儞僪
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdSelect:			// 崁栚慖戰僐儅儞僪乮抁墴偟乯
		case EMainPlayerFilterViewKGCmdPlay:			// 亂嵞惗亃	
			{
			}
			break;
		
		case ECmdFilterViewDeleteEntryOne:
		case ECmdFilterViewDeleteEntryMultiple:
		case ECmdFilterViewDeleteEntryAll:
		case ECmdFilterViewOrderEntry:
			{
			ProcessCommandL(aCommandId);
			}
			break;
		
		case EMainPlayerFilterViewKGCmdChildView:		// 巕奒憌夋柺慗堏僐儅儞僪
			{
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case EMainPlayerFilterViewKGCmdLongSelect:		// 崁栚慖戰僐儅儞僪乮挿墴偟乯
			break;
		case EMainPlayerFilterViewKGCmdClear:			// 僋儕傾乮慜夋柺乯僐儅儞僪
			{
			if(NULL!=ProcessObj() && ProcessObj()->InService()
			&& CSmbMusicAPMainPlayerFilterProcess::EProcessTypeRemoveItems==ProcessObj()->GetProcessType())
				{
				return ProcessCommandL(ECmdFilterViewDeleteEntriesCancel);
				}
			}
			break;
		case EMainPlayerFilterViewKGCmdParentView:		// 恊奒憌夋柺慗堏僐儅儞僪
			break;
		}
	// 嬋堦棗傪宲彸偡傞
	return CSmbMusicAPMainPlayerFilterListViewSong::HandleCommandL(aCommandId);
	}

/**
 * 僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSong::ProcessCommandL(TInt aCommandId)
	{
	switch(aCommandId)
		{
		case ECmdFilterViewDeleteEntryOne:
			{
			//2006.10.18 TRK#11638
			View()->StartProcessesWithHoldApp();
			//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
			CreateSelectedItemsL();
			//慖戰僼儔僌傪愝掕偡傞
			SetSelectedItemAllFlag(EFalse);
			//儕僗僩僴儞僪儖傪愝掕偡傞
			SetSelectedItemListHandle(ListHandle());
			//慖戰崁栚傪捛壛偡傞
			AppendSelectedItem(CurrentItemIndex());
			//侾審嶍彍傪妋擣偡傞僟僀傾儘僌傪昞帵偡傞
			HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETEPLSONG_SELECT, NULL, NULL);
			}
			break;
		case ECmdFilterViewDeleteEntryAll:
			{
			//2006.10.18 TRK#11638
			View()->StartProcessesWithHoldApp();
			//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
			CreateSelectedItemsL();
			//慖戰僼儔僌傪愝掕偡傞
			SetSelectedItemAllFlag(ETrue);
			//儕僗僩僴儞僪儖傪愝掕偡傞
			SetSelectedItemListHandle(ListHandle());
			//慡審嶍彍傪妋擣偡傞僟僀傾儘僌傪昞帵偡傞
			HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETEPLSONG_SELECT, NULL, NULL);
			}
			break;
		case ECmdFilterViewDeleteEntryMultiple:
			{
			// 傾僀僥儉嫮惂嵞庢摼僼儔僌傪俷俶偵偟偰偍偔
			ListItemsChanged(EReloadItemsOnly);
			// 婲摦僷儔儊乕僞嶌惉
			TSmbMusicAPMainPlayerPrmRegister param;
			param.iKind = ESmbMusicAPMainPlayerDeleteEntryKind;
			param.iType = ESmbMusicAPMainPlayerSelectionMultiple;
			param.iListHandle = ListHandle();
			param.vparam.SetReturnView(*View());
			TPckgBuf<TSmbMusicAPMainPlayerPrmRegister> parambuf(param);
			// 僾儗僀儕僗僩慖戰傊愗懼偊傞丅
			View()->ChangeViewL(ESmbMusicAPMainPlayerPLSelectViewId, KSmbMusicAPMainPlayerRegisterMsgUid, parambuf);
			}
			break;
		case ECmdFilterViewOrderEntry:
			{
			// 傾僀僥儉嫮惂嵞庢摼僼儔僌傪俷俶偵偟偰偍偔
			ListItemsChanged(EAllReload);
			// 婲摦僷儔儊乕僞嶌惉
			TSmbMusicAPMainPlayerPrmRegister param;
			param.iKind = ESmbMusicAPMainPlayerOrderEntryKind;
			param.iType = ESmbMusicAPMainPlayerSelectionMultiple;
			param.iListHandle = ListHandle();
			param.vparam.SetReturnView(*View());
			TPckgBuf<TSmbMusicAPMainPlayerPrmRegister> parambuf(param);
			// 僾儗僀儕僗僩慖戰傊愗懼偊傞丅
			View()->ChangeViewL(ESmbMusicAPMainPlayerPLSelectViewId, KSmbMusicAPMainPlayerRegisterMsgUid, parambuf);
			}
			break;
		case ECmdFilterViewDeleteEntries:				// 僾儗僀儕僗僩僄儞僩儕乕嶍彍幚峴
			{
			//2006.10.18 TRK#11638
			View()->StartProcessesWithHoldApp();

			TSmbMusicAPMainPlayerFilterListItems selectedItems;
			SelectedItems(selectedItems);
			ProcessRemoveItems(ECmdFilterViewDeleteEntries, selectedItems.iAllItem, selectedItems.iIndexArray);
			// 2006.09.21 僾儘僌儗僗僟僀傾儘僌捛壛廋惓
			ResetProgress();
			// 僾儘僌儗僗僶乕傪昞帵偡傞
//			CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
			// TRK#11387 2006/10/13
			if(EFalse==selectedItems.iAllItem)
				{
				CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_SINGULAR);
				}
			else
				{
				CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
				}
			// 僀儀儞僩梷惂傪夝彍偡傞
			View()->SetEventDisabled(EFalse);
			}
			break;
		case ECmdFilterViewDeleteEntriesCancel:
			{
//DEL-S 2006/10/10 TRK#10814
//			// 僀儀儞僩傪梷惂偡傞
//			View()->SetEventDisabled(ETrue);
//DEL-E 2006/10/10 TRK#10814
			CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(ECloseModelessDialog, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
//			CancelProcess(CSmbMusicAPMainPlayerFilterProcess::EProcessTypeRemoveItems);	// 幚峴拞偺旕摨婜僾儘僙僗傪拞抐偡傞
			if(NULL!=ProcessObj() && CSmbMusicAPMainPlayerFilterProcess::EProcessTypeRemoveItems==ProcessObj()->GetProcessType())
				{
				CSmbMusicAPMainPlayerFilterProcessRemoveItems* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessRemoveItems*>(ProcessObj());
				processObj->CancelRemoveItems();
				}
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		}
	// 嬋堦棗傪宲彸偡傞
	return CSmbMusicAPMainPlayerFilterListViewSong::ProcessCommandL(aCommandId);
	}

//////////////////////////////////////////////////////////////////////////////////////
// 旕摨婜僾儘僙僗
//////////////////////////////////////////////////////////////////////////////////////
// from MSmbMusicAPMainPlayerFilterProcessObserver
void CSmbMusicAPMainPlayerFilterListViewPLSong::ProcessComplete(TInt aResult, CSmbMusicAPMainPlayerFilterProcess& aProcess)
	{
	if( NULL!=ProcessObj() && &aProcess==ProcessObj() )
		{
		// 幚峴拞偺僐儅儞僪傪僠僃僢僋偡傞
		switch(aProcess.GetRequestOwnerInfo())
			{
			case ECmdFilterViewDeleteEntries:		// 僾儗僀儕僗僩僄儞僩儕乕嶍彍僐儅儞僪
				{
				CSmbMusicAPMainPlayerFilterProcessRemoveItems* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessRemoveItems*>(&aProcess);
//				CSmbMusicAPMainPlayerFilterProcessRemoveItems* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessRemoveItems*,&aProcess);

				//嶍彍梫媮僇僂儞僩

⌨️ 快捷键说明

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