smbmusicapmainplayerfilterlistviewplsongorder.cpp

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

CPP
543
字号
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//  SmbMusicAPMainPlayerFilterListViewPLSongOrder.cpp
//
// Description: 
//  CSmbMusicAPMainPlayerFilterListViewPLSongOrder class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅          |曄峏幰     |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16	|SDNA嶳壀	| 怴婯嶌惉
//2006/09/02	|SDNA嶳壀	| 僋儕傾僉乕張棟傪廋惓
//2007/02/01	|K3拞堜	| TRK12612懳墳 OfferKeyEventL儊僜僢僪捛壛
//2007/07/05	|SEMC暯壀	| HasParentList()傪捛壛

#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSongOrder.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerPLSelectView.h"
#include "SmbMusicAPMainPlayerFilterProcessCommitOrderItems.h"

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

SEMCJ_NAMESPACE_BEGIN

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

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

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

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

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

//////////////////////////////////////////////////////////////////////////////////////
// 弶婜愝掕
//////////////////////////////////////////////////////////////////////////////////////
void CSmbMusicAPMainPlayerFilterListViewPLSongOrder::SetupModelL()
	{
	Model()->SetCacheInfo(EPageSize, EMaxPage, EMaxSize);
	}

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

////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
 * 儐乕僓僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSongOrder::HandleCommandL(TInt aCommandId)
	{
	// 婎杮僐儅儞僪
	switch(aCommandId)
		{
		case ECmdFilterViewOrderEntryPrepare:				// 暲傋懼偊
		case ECmdFilterViewOrderEntrySelect:
		case ECmdFilterViewOrderEntryFocusMove:
		case ECmdFilterViewOrderEntryMove:
		case ECmdFilterViewOrderEntryComplete:
		case ECmdFilterViewOrderEntryCancel:
			return ProcessCommandL(aCommandId);
		case EMainPlayerFilterViewKGCmdChildView:		// 巕奒憌夋柺慗堏僐儅儞僪
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case EMainPlayerFilterViewKGCmdSelect:			// 崁栚慖戰僐儅儞僪乮抁墴偟乯
			break;
		case EMainPlayerFilterViewKGCmdLongSelect:		// 崁栚慖戰僐儅儞僪乮挿墴偟乯
			break;
		case EMainPlayerFilterViewKGCmdClear:			// 僋儕傾乮慜夋柺乯僐儅儞僪
			// 2006.09.02 TRK#8193
			return ProcessCommandL(ECmdFilterViewOrderEntryCancel);
		case EMainPlayerFilterViewKGCmdParentView:		// 恊奒憌夋柺慗堏僐儅儞僪
			break;
		}
	// 嬋堦棗傪宲彸偡傞
	return CSmbMusicAPMainPlayerFilterListViewPLSong::HandleCommandL(aCommandId);
	}

/**
 * 僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSongOrder::ProcessCommandL(TInt aCommandId)
	{
	CSmbMusicAPMainPlayerPLSelectView* view = static_cast<CSmbMusicAPMainPlayerPLSelectView*>(View());
//	CSmbMusicAPMainPlayerPLSelectView* view = STATIC_CAST(CSmbMusicAPMainPlayerPLSelectView*, View());
	switch(aCommandId)
		{
		case ECmdFilterViewOrderEntryPrepare:				// 暲傋懼偊
			{
			//僾儗僀儕僗僩偺嬋弴曄峏傪奐巒偡傞
			View()->SyncModel().PrepareOrderItems(ListHandle());
//ADD-S> 2006.10.31 TRK#12267
			SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewOrderEntrySelect:
			{
			// 慖戰偝傟偨傾僀僥儉偺僀儞僨僢僋僗傪曐帩偟偰偍偔
			iSelectIndex = ListBox()->CurrentItemIndex();
			//堏摦尦偺僀儞僨僢僋僗傪曐帩偟偰偍偔
			iFocusMoveIndex = iSelectIndex;
			iSaveTopIndex = ListBox()->TopItemIndex();
//ADD-S> 2006.10.31 TRK#12267
			SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		// 2006.09.21 暲傋懼偊廋惓丗僼僅乕僇僗偵崌傢偣偰懳徾崁栚傪堏摦偡傞
		case ECmdFilterViewOrderEntryFocusMove:
			{
			//僉儍僢僔儏偺暲傃傪曄峏偡傞
			TInt itemIndex = ListBox()->CurrentItemIndex();
			Model()->OrderItem(iFocusMoveIndex, itemIndex);
			iFocusMoveIndex = itemIndex;
//ADD-S> 2006.10.31 TRK#12267
			SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewOrderEntryMove:
			{
			//僉儍僢僔儏偺暲傃傪曄峏偡傞
//			Model()->OrderItem(iSelectIndex, ListBox()->CurrentItemIndex());
			//僾儗僀儕僗僩偺嬋弴傪曄峏偡傞
			TInt itemIndex = ListBox()->CurrentItemIndex();
			View()->SyncModel().OrderItems(iSelectIndex, ListBox()->CurrentItemIndex());
			HandleControlStatusUpdatedL();
//ADD-S> 2006.10.31 TRK#12267
			SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewOrderEntryComplete:			// 姰椆
			{
			//撪梕偑曄峏偝傟偰偄傞応崌
			if(EFalse!=IsItemsEdited())
				{
//ADD-S> 2006.10.31 TRK#12267
				SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditProcessing);
//ADD-E< 2006.10.31 TRK#12267
				//僾儗僀儕僗僩偺嬋弴曄峏傪寛掕偡傞
				ProcessCommitOrderItems(ECmdFilterViewCommitOrderItems);
				}
			//撪梕偑曄峏偝傟偰偄側偄応崌
			else
				{
				// 暲傋懼偊張棟拞偱偁傟偽暲傋懼偊拞巭張棟傪偡傞
				View()->SyncModel().RollBackOrderItems();
				view->DeleteSelectedItems();
				view->HandleReturnViewL();
//ADD-S> 2006.10.31 TRK#12267
				SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditInit);
//ADD-E< 2006.10.31 TRK#12267
				}
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		case ECmdFilterViewOrderEntryCancel:			// 拞巭
			{
//ADD-S> 2006.10.31 TRK#12267
			SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
			//暲傋懼偊堏摦拞偺応崌
		    if(EFalse!=ListBox()->IsModifyingItem())
			    {
			    //僉儍僢僔儏偺暲傃傪尦偵栠偡
				Model()->OrderItem(ListBox()->CurrentItemIndex(), iSelectIndex);
				//儕僗僩儃僢僋僗偺TopIndex,CurrentIndex傪尦偵栠偡
				ListBox()->SetTopItemIndex(iSaveTopIndex);
				ListBox()->SetCurrentItemIndex(iSelectIndex);
				//堏摦儌乕僪偐傜慖戰儌乕僪偵栠偡
			    ListBox()->SetModifyingItem(EFalse);
			    //僉乕僈僀僟儞僗傪娷傔偰夋柺峏怴偡傞
			    ListBox()->SetFocus(ETrue);
				HandleControlStatusUpdatedL();
			    }
			//撪梕偑曄峏偝傟偰偄傞応崌
			else if(EFalse!=IsItemsEdited())
				{
				// 僉儍儞僙儖妋擣僟僀傾儘僌傪昞帵偡傞
				HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_SELECT_CANCEL_SELECTION, NULL, NULL);
				}
			//撪梕偑曄峏偝傟偰偄側偄応崌
			else
				{
				// 暲傋懼偊張棟拞偱偁傟偽暲傋懼偊拞巭張棟傪偡傞
				View()->SyncModel().RollBackOrderItems();
				view->DeleteSelectedItems();
				view->HandleReturnViewL();
//ADD-S> 2006.10.31 TRK#12267
				SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditInit);
//ADD-E< 2006.10.31 TRK#12267
				}
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		}
	// 嬋堦棗傪宲彸偡傞
	return CSmbMusicAPMainPlayerFilterListViewPLSong::ProcessCommandL(aCommandId);
	}

/**
 * 僟僀傾儘僌僋儘乕僘捠抦
 *
 * @param[in]		aResourceId		儕僜乕僗俬俢
 * @param[in]		aResult			慖戰寢壥
 */
void CSmbMusicAPMainPlayerFilterListViewPLSongOrder::HandleDialogClosed(TInt aResourceId, TInt aResult)

⌨️ 快捷键说明

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