smbmusicapmainplayerfilterlistviewsongmulti.cpp

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

CPP
453
字号
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListViewSongMulti.cpp
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListViewSongMulti class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16	|SDNA嶳壀	| 怴婯嶌惉
//2006/08/23	|SDNA嶳壀	| 僒儉僱僀儖昞帵/儕僗僩昞帵愗懼偺懳墳廋惓
//2006/09/02	|SDNA嶳壀	| 僋儕傾僉乕張棟傪廋惓
//2007/07/05	|SEMC暯壀	| HasParentList()偺抣傪廋惓

#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbAfWording.loc>
#include <Music.mbg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include <SmbMusicAPSongInfoExternalInterface.h>
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewSongMulti.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerFilterProcessDeleteOne.h"
#include "SmbMusicAPMainPlayerPLSelectView.h"

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

SEMCJ_NAMESPACE_BEGIN

/**
 * 暋悢慖戰嬋堦棗儕僗僩僋儔僗
 *	KSmbMusicAPMainPlayerSongListViewUid
 */

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

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

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

	// 儕僗僩儃僢僋僗僞僀僾偺弶婜抣傪庢摼偡傞
	iViewStyle = SmbPGMusic::ListViewStyleL(View()->PropAgent());
	// 儕僗僩儃僢僋僗僞僀僾傪愝掕偡傞
	ListBox()->SetListBoxFormat(ListBoxFormat());
	// 儕僗僩儃僢僋僗僆儁儗乕僔儑儞儌乕僪傪愝掕偡傞
	ListBox()->SetOperationMode(CSkonRichListBoxBase::EOperationMultiSelect);
	}

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

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

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

////////////////////////////////////////////////////////////////////////////
// 僼傿儖僞儕僗僩儌僨儖僀儀儞僩
////////////////////////////////////////////////////////////////////////////
TBool CSmbMusicAPMainPlayerFilterListViewSongMulti::HasParentList()
	{
// Change-S PTX-824 暯壀 2007.07.05
//	// 恊奒憌偼偁傞
//	return ETrue;
	// 恊奒憌偼側偄
	return EFalse;
// Change-E PTX-824 暯壀 2007.07.05
	}

TBool CSmbMusicAPMainPlayerFilterListViewSongMulti::HasChildList()
	{
	// 巕奒憌偼側偄
	return EFalse;
	}

////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
 * 儐乕僓僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewSongMulti::HandleCommandL(TInt aCommandId)
	{
	// 婎杮僐儅儞僪
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdSelect:			// 崁栚慖戰僐儅儞僪乮抁墴偟乯
		case EMainPlayerFilterViewKGCmdPlay:			// 亂嵞惗亃	
			break;
		case EMainPlayerFilterViewKGCmdChildView:		// 巕奒憌夋柺慗堏僐儅儞僪
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case EMainPlayerFilterViewKGCmdLongSelect:		// 崁栚慖戰僐儅儞僪乮挿墴偟乯
			break;
		case EMainPlayerFilterViewKGCmdClear:			// 僋儕傾乮慜夋柺乯僐儅儞僪
			// 2006.09.02 TRK#8193
			return ProcessCommandL(ECmdFilterViewAddEntryMultipleSelectCancel);
		case EMainPlayerFilterViewKGCmdParentView:		// 恊奒憌夋柺慗堏僐儅儞僪
			break;
			
		case ECmdFilterViewAddEntryMultipleSelectComplete:	// 慖戰姰椆
		case ECmdFilterViewAddEntryMultipleSelectCancel:	// 慖戰拞巭
			return ProcessCommandL(aCommandId);
		}
	return CSmbMusicAPMainPlayerFilterListView::HandleCommandL(aCommandId);
	}

/**
 * 僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewSongMulti::ProcessCommandL(TInt aCommandId)
	{
	CSmbMusicAPMainPlayerPLSelectView* view = static_cast<CSmbMusicAPMainPlayerPLSelectView*>(View());
//	CSmbMusicAPMainPlayerPLSelectView* view = STATIC_CAST(CSmbMusicAPMainPlayerPLSelectView*, View());
	switch(aCommandId)
		{
		case ECmdFilterViewAddEntryMultipleSelectComplete:	// 慖戰姰椆
			{
			// 侾審傕慖戰偝傟偰偄側偄応崌偼僾儗僀儕僗僩慖戰偵慗堏偟側偄
			if(EFalse!=IsItemsEdited())
				{
				// 慖戰偝傟偰偄傞傾僀僥儉僀儞僨僢僋僗偺攝楍傪庢摼偡傞
				// 庢摼偟偨攝楍偼嶲徠側偺偱嶍彍偟偰偼僟儊
				const CArrayFix<TInt>* selectedItemArray = ListBox()->SelectionIndexes();
				
				DoViewDeactivated();

				// 慖戰偝傟偨傾僀僥儉攝楍傪曐帩偟偰偍偔
				//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
				view->CreateSelectedItemsL();
				TInt count = selectedItemArray->Count();
				for(TInt i=0;i<count;i++)
					{
					const TInt itemIndex = selectedItemArray->At(i);
					view->AppendSelectedItem(itemIndex);
					}
				view->SetSrcCount(count);
				
				// 僾儗僀儕僗僩慖戰夋柺偵傾僀僥儉傪撉傒崬傓
				CSmbMusicAPMainPlayerFilterListView* activeview = View()->ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLListViewUid);
				activeview->ProcessCommandL(ECmdFilterViewShowOriginalPlaylistForInsert);	
				// 搊榐愭慖戰僆儕僕僫儖僾儗僀儕僗僩嬋儕僗僩傪傾僋僥傿僽偵偡傞
				View()->ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerPLListViewUid);
				// 搊榐愭慖戰僆儕僕僫儖僾儗僀儕僗僩嬋儕僗僩傪庢摼偡傞
				View()->JumpToNextScreen();
				}
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewAddEntryMultipleSelectCancel:	// 慖戰拞巭
			{
			// 侾審傕慖戰偝傟偰偄側偄応崌偼僾儗僀儕僗僩慖戰偵慗堏偟側偄
			if(EFalse!=IsItemsEdited())
				{
				// 僉儍儞僙儖妋擣僟僀傾儘僌傪昞帵偡傞
				HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_SELECT_CANCEL_SELECTION, NULL, NULL);
				}
			else
				{
				view->DeleteSelectedItems();
				view->HandleReturnViewL();
				}
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		default:
			break;
		}

⌨️ 快捷键说明

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