smbmusicapmainplayerplselectview.cpp

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

CPP
1,006
字号
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerPLSelectView.cpp
//
// Description:
//	儈儏乕僕僢僋儊僀儞僾儗僀儎
//	僾儗僀儕僗僩搊榐夋柺價儏乕僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/06/05		|SEMCJ嶳壀		|怴婯嶌惉
//2006/08/18		|SEMCJ嶳壀		|FilterView僋儔僗refactoring偵敽偭偰戝暆偵愝寁曄峏
//2006/09/21		|SDNA彫椦		|TRK8298懳墳
//2007/08/30		|SEMCJ暯壀		|D_82400013398懳墳
//2007/09/01		|SEMCJ暯壀		|D_82400013712懳墳
//2007/09/04		|SEMCJ暯壀		|D_82400012386懳墳
//2007/09/17		|SEMCJ暯壀		|D_82400012386懳墳
//2007/09/26		|SEMCJ暯壀		|D_82400015879懳墳

#include "SmbMusicAPMainPlayerPLSelectView.h"
/*
#include <fjlacommon.h>
#include <FJWcdmaMpKeys.h>
#include <FjAfVerticalLayout.h>
#include <SkonTextLabel.h>

#include <SmbMusicAPMainPlayerExternalInterface.h>
#include "SmbMusicAPMainPlayerAppUi.h"
#include <e32debug.h>

#include <SmbMusicAPSongInfoExternalInterface.h>
#include <SmbMusicAPFileMgrExternalInterface.h>

#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"

#include "SmbMusicAPMainPlayerSettingModel.h"

#include "SmbMusicAPMainPlayerCommonDef.h"
*/
#include <SmbCommonDef.h>
#include <SmbAfCommandBase.h>
#include <SmbPGMusic.h>
#include <SmbPGMusic.hrh>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerCommonDef.h"
#include "SmbMusicAPMainPlayerFilterListViewSongMulti.h"
#include "SmbMusicAPMainPlayerFilterListViewPlaylistSelect.h"
#include "SmbMusicAPMainPlayerFilterListViewPlaylistMulti.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSongMulti.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSongOrder.h"
// Add-S PTX-824 D_82400012386懳墳 暯壀 2007.09.04
#include "SmbMusicAPMainPlayerFilterListViewPlaylist.h"
// Add-E PTX-824 D_82400012386懳墳 暯壀 2007.09.04

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

// Add-S PTX-824 2007.08.29 暯壀
#ifndef FJPGBASICSTATUS_H__
#include <FjpgBasicStatus.h>
#endif
// Add-E PTX-824 2007.08.29 暯壀

USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN

const TAfViewParam KSmbMusicAPMainPlayerPLSelectViewParam =
	{
	ESmbMusicAPMainPlayerPLSelectViewId,	// iViewId
	0,										// iTitleResId
	0										// iKeyGuidanceResId
	};

////////////////////////////////////////////////////////////////////////////////
// 僾儗僀儕僗僩慖戰夋柺
////////////////////////////////////////////////////////////////////////////////
/**
 * 價儏乕僋儔僗偺惗惉
 *
 * @param	aPlayerEnv
 * @param	aSyncEngine
 */
// Mod-S PTX-824 D_82400013712懳墳 暯壀 2007.09.01
//CSmbMusicAPMainPlayerPLSelectView* CSmbMusicAPMainPlayerPLSelectView::NewL(MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand)
CSmbMusicAPMainPlayerPLSelectView* CSmbMusicAPMainPlayerPLSelectView::NewL(MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand, CFbsBitmap* aOffScreen, CSkonBitGc* aSkonGc)
// Mod-E PTX-824 D_82400013712懳墳 暯壀 2007.09.01
	{
	// 僀儞僗僞儞僗惗惉
// Mod-S PTX-824 D_82400013712懳墳 暯壀 2007.09.01
//	CSmbMusicAPMainPlayerPLSelectView* self = new(ELeave) CSmbMusicAPMainPlayerPLSelectView(KSmbMusicAPMainPlayerPLSelectViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand);
	CSmbMusicAPMainPlayerPLSelectView* self = new(ELeave) CSmbMusicAPMainPlayerPLSelectView(KSmbMusicAPMainPlayerPLSelectViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand, aOffScreen, aSkonGc);
// Mod-E PTX-824 D_82400013712懳墳 暯壀 2007.09.01
	// 僋儕乕儞傾僢僾僗僞僢僋妋曐
	CleanupStack::PushL(self);
	// 僙僇儞僪僐儞僗僩儔僋僞
	self->ConstructL();
	// 僋儕乕儞傾僢僾僗僞僢僋奐曻
	CleanupStack::Pop();//self
	return self;
	};

/**
 * 僐儞僗僩儔僋僞.
 *
 * @param	aViewParam
 * @param	aPlayerEnv
 * @param	aSyncEngine
 */
// Mod-S PTX-824 D_82400013712懳墳 暯壀 2007.09.01
//CSmbMusicAPMainPlayerPLSelectView::CSmbMusicAPMainPlayerPLSelectView(const TAfViewParam& aViewParam, MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand)
//	: CSmbMusicAPMainPlayerFilterView(aViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand)
CSmbMusicAPMainPlayerPLSelectView::CSmbMusicAPMainPlayerPLSelectView(const TAfViewParam& aViewParam, MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand, CFbsBitmap* aOffScreen, CSkonBitGc* aSkonGc)
	: CSmbMusicAPMainPlayerFilterView(aViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand, aOffScreen, aSkonGc)
// Mod-E PTX-824 D_82400013712懳墳 暯壀 2007.09.01
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerPLSelectView::CSmbMusicAPMainPlayerPLSelectView()");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 500000, ELogLevelNormal, KLogFmt);
	
	iChangeViewSyncEventNotified = EFalse;
//	iExitPreprocessing = EFalse;
//ADD-S> TRK#12258 PTX-824(TRK-575)
	SetEditStatus(EEditInit);
//ADD-E< PTX-824(TRK-575)
	}

/**
 * 僨僗僩儔僋僞.
 */
CSmbMusicAPMainPlayerPLSelectView::~CSmbMusicAPMainPlayerPLSelectView()
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerPLSelectView::~CSmbMusicAPMainPlayerPLSelectView()");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 500010, ELogLevelNormal, KLogFmt);

	iSelectedItems.iIndexArray = NULL;
	iSelectedIndexArray.Reset();
	iSelectedIndexArray.Close();
	}

////////////////////////////////////////////////////////////////////////////
// 儕僗僩價儏乕娗棟
////////////////////////////////////////////////////////////////////////////
/**
 * 奺FilterView屌桳偺僐儞僗僩儔僋僞
 *
 * @param	側偟 
 */
void CSmbMusicAPMainPlayerPLSelectView::DoConstructDependenceL()
	{
	CSmbMusicAPMainPlayerFilterListView* listview;
	// 嬋堦棗傪惗惉
	listview = CSmbMusicAPMainPlayerFilterListViewSongMulti::NewL(KSmbMusicAPMainPlayerSongListViewUid, this);
	CleanupStack::PushL(listview);
	listview->SetDefaultThumbnail(iNoImageThumbnail);
	ViewModel()->AppendListView(listview);
	CleanupStack::Pop(listview);
	// 僾儗僀儕僗僩堦棗傪惗惉
	listview = CSmbMusicAPMainPlayerFilterListViewPlaylistSelect::NewL(KSmbMusicAPMainPlayerPLListViewUid, this);
	CleanupStack::PushL(listview);
	listview->SetDefaultThumbnail(iNoImageThumbnail);
	ViewModel()->AppendListView(listview);
	CleanupStack::Pop(listview);
	// 僾儗僀儕僗僩暋悢慖戰傪惗惉
	listview = CSmbMusicAPMainPlayerFilterListViewPlaylistMulti::NewL(KSmbMusicAPMainPlayerPLSelectViewUid, this);
	CleanupStack::PushL(listview);
	listview->SetDefaultThumbnail(iNoImageThumbnail);
	ViewModel()->AppendListView(listview);
	CleanupStack::Pop(listview);
	// 僾儗僀儕僗僩嬋堦棗傪惗惉
	listview = CSmbMusicAPMainPlayerFilterListViewPLSongMulti::NewL(KSmbMusicAPMainPlayerPLSongListViewUid, this);
	CleanupStack::PushL(listview);
	listview->SetDefaultThumbnail(iNoImageThumbnail);
	ViewModel()->AppendListView(listview);
	CleanupStack::Pop(listview);
	// 僾儗僀儕僗僩嬋堦棗傪惗惉
	listview = CSmbMusicAPMainPlayerFilterListViewPLSongOrder::NewL(KSmbMusicAPMainPlayerPLSongOrderViewUid, this);
	CleanupStack::PushL(listview);
	listview->SetDefaultThumbnail(iNoImageThumbnail);
	ViewModel()->AppendListView(listview);
	CleanupStack::Pop(listview);
	}

/**
 * 夋柺偺妶惈壔.
 *
 * @param	aPrevViewId        [in]巊梡嬛巭<BR>
 * @param	aCustomMessageId
 * @param	aCustomMessage
 */
void CSmbMusicAPMainPlayerPLSelectView::DoViewActivatedImplL(const TVwsViewId& aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage)
	{
	TBool loadPlaylist = EFalse;
	TBool loadActive = ETrue;

	//2006.10.07 ViewActivated忬懺傪愝掕偡傞
	SetViewActivated(ETrue);
	
//ADD-S> TRK#12258 PTX-824(TRK-575)
	SetEditStatus(EEditInit);
//ADD-E< PTX-824(TRK-575)

	// 僾儗僀儕僗僩搊榐偺婲摦
	if(KSmbMusicAPMainPlayerRegisterMsgUid==aCustomMessageId)
		{
		// 僇僗僞儉儊僢僙乕僕傪庢摼偡傞丏
		if (aCustomMessage != (TDesC8)KNullDesC8)
			{
			// 僼傿儖僞夋柺丄嵞惗夋柺偐傜偺婲摦張棟
			// 偙偙偱儕僗僩價儏乕傪弶婜壔偟偰昁梫側儕僗僩價儏乕傪弨旛偡傞
			SetCurrentViewPointL(TPoint(0, 0));
			ViewModel()->ResetFilterPathL(0);
			
			// 慖戰崁栚傪僋儕傾偟偰偍偔
			DeleteSelectedItems();
			
			// 儊僢僙乕僕僷儔儊乕僞傪庢摼偡傞
			//	param->iListHandle;
			//	param->iIndex;
			//	param->iKind;	//ESmbMusicAPMainPlayerRKindOne, ESmbMusicAPMainPlayerRKindSelect, ESmbMusicAPMainPlayerRKindAll
			const TSmbMusicAPMainPlayerPrmRegister* param = reinterpret_cast<const TSmbMusicAPMainPlayerPrmRegister*>(aCustomMessage.Ptr());
			iPLparam = *param;
			SetSrcListHandle(param->iListHandle);
			switch(param->iType)
				{
				case ESmbMusicAPMainPlayerSelectionOne:
					{
					SetAllItem(EFalse);
					SetSrcCount(1);

					//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
					CreateSelectedItemsL();
					AppendSelectedItem(param->iIndex);
					}
					break;
				case ESmbMusicAPMainPlayerSelectionMultiple:
					{
					SetAllItem(EFalse);
					}
					break;
				case ESmbMusicAPMainPlayerSelectionAll:
					{
					SetAllItem(ETrue);
					SetSrcCount(SyncModel().GetItemCount(param->iListHandle));
					}
					break;
				}
			switch(param->iKind)
				{
				case ESmbMusicAPMainPlayerDeletePLKind:				///< 僾儗僀儕僗僩嶍彍
					{
					CSmbMusicAPMainPlayerFilterListView* listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLSelectViewUid);
					if(NULL!=listview)
						{
						// 儕僗僩僴儞僪儖傪愝掕偡傞
						listview->SetListHandle(iPLparam.iListHandle);
						// 僾儗僀儕僗僩堦棗夋柺傪暋悢慖戰儌乕僪偵偡傞
						listview->SetCommandMode(ESelectMultipleMode);
						listview->ClearSelection();
						ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerPLSelectViewUid);
						ChangeViewSyncEvent(ESmbMusicAPPlayerChangePLItemSelectViewEvent, iPLparam.iListHandle);
						}
					}
					break;
				case ESmbMusicAPMainPlayerRegiterEntryKind:			///< 僾儗僀儕僗僩搊榐
					switch(param->iType)
						{
						// 僾儗僀儕僗僩侾審搊榐
						case ESmbMusicAPMainPlayerSelectionOne:
						// 僾儗僀儕僗僩慡審搊榐搊榐
						case ESmbMusicAPMainPlayerSelectionAll:
							{
							CSmbMusicAPMainPlayerFilterListView* listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLListViewUid);
							if(NULL!=listview)
								{
								//ADD-S 2006/09/08 TRK8333 kobayashi
								// 慜夞昞帵帪偺儕僗僩忣曬傪僋儕傾偡傞
								listview->ResetListInfo();
								//ADD-E 2006/09/08 TRK8333 kobayashi
								// 僾儗僀儕僗僩堦棗夋柺傪崁栚慖戰儌乕僪偵偡傞
								listview->SetCommandMode(ESelectItemMode);
								listview->ClearSelection();
								ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerPLListViewUid);
								
// Mod-S PTX-824 D_82400012386懳墳 暯壀 2007.09.04
//								// 偙偙偱偼夋柺慗堏偺捠抦傪偟側偄
//								// CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessComplete偱儕僗僩僴儞僪儖庢摼帪偵捠抦偡傞
								// 愭偵夋柺慗堏傪捠抦偡傞								
								ChangeViewSyncEvent(ESmbMusicAPPlayerChangePLRegistViewEvent, 0);
// Mod-E PTX-824 D_82400012386懳墳 暯壀 2007.09.04

								// 偙偺働乕僗偩偗偼慗堏尦偲昞帵偡傞夋柺偑堎側傞
								loadPlaylist = ETrue;
								loadActive = EFalse;
								}
							}
							break;
						// 僾儗僀儕僗僩慖戰搊榐
						case ESmbMusicAPMainPlayerSelectionMultiple:
							{
							// 僾儗僀儕僗僩堦棗夋柺傪崁栚慖戰儌乕僪偵偡傞
							CSmbMusicAPMainPlayerFilterListView* listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLListViewUid);
							if(NULL!=listview)
								{
								//ADD-S 2006/09/08 TRK8333 kobayashi
								// 慜夞昞帵帪偺儕僗僩忣曬傪僋儕傾偡傞
								listview->ResetListInfo();
								//ADD-E 2006/09/08 TRK8333 kobayashi
								// 僾儗僀儕僗僩堦棗夋柺傪崁栚慖戰儌乕僪偵偡傞
								listview->SetCommandMode(ESelectItemMode);
								listview->ClearSelection();
								}
							
							// 嬋堦棗夋柺
							listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerSongListViewUid);
							if(NULL!=listview)
								{
								//ADD-S 2006/09/08 TRK8333 kobayashi
								// 慜夞昞帵帪偺儕僗僩忣曬傪僋儕傾偡傞
								listview->ResetListInfo();
								//ADD-E 2006/09/08 TRK8333 kobayashi
								// 儕僗僩僴儞僪儖傪愝掕偡傞
								listview->SetListHandle(iPLparam.iListHandle);
								// 嬋堦棗夋柺傪暋悢慖戰儌乕僪偵偡傞
								listview->SetCommandMode(ESelectMultipleMode);
								listview->ClearSelection();
								ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerSongListViewUid);
								ChangeViewSyncEvent(ESmbMusicAPPlayerChangePLItemSelectViewEvent, iPLparam.iListHandle);
								}
							}
							break;
						}

⌨️ 快捷键说明

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