smbmusicapmainplayerdialogmanager.cpp

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

CPP
932
字号
/* Copyright (C) 2005-2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerDialogManager.cpp
//
// Description: 
//	儈儏乕僕僢僋儊僀儞僾儗僀儎乕偺僟僀傾儘僌儅僱乕僕儍偺幚憰丅
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅			|曄峏幰 	|撪梕
//--------------+-----------+----------------------------------------------
//2006/06/07	|K3戝嫶		|怴婯嶌惉
//2006/07/28	|K3戝嫶		|昞帵拞偺僟僀傾儘僌悢傪曉偡儊僜僢僪傪捛壛乮庡偵嵞惗夋柺偺偨傔乯
//2006/08/01	|K3戝嫶		|恑捇僟僀傾儘僌昞帵帪丄HoldApp傪憲怣偡傞偐巜掕偱偒傞傛偆偵奼挘
//2006/09/27	|K3戝嫶		|傒側偟恑捇僟僀傾儘僌傪捛壛
//2006/10/24	|K3戝嫶		|i-keeper(TRK):11907懳墳丅僌儘乕僶儖僟僀傾儘僌傪昞帵拞偐敾掕偡傞儊僜僢僪傪捛壛

#include "SmbMusicAPMainPlayerPlayDebug.h"

#ifdef __SMBMUSICAP_PTX824_DEF__
#ifndef __SMBAFENV_H__
#include <SmbAfEnv.h>
#endif
#endif

#ifndef FJAFENV_H__
#include <FjAfEnv.h>
#endif

#ifndef __SMBMUSICAPMAINPLAYERDIALOGITEM_H__
#include "SmbMusicAPMainPlayerDialogItem.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERGLOBALSELECTIONDIALOG_H__
#include "SmbMusicAPMainPlayerGlobalSelectionDialog.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERUTILITY_H__
#include "SmbMusicAPMainPlayerUtility.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERDIALOGMANAGER_H__
#include "SmbMusicAPMainPlayerDialogManager.h"
#endif

USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN

/**
 * CSmbMusicAPMainPlayerDialogManager偺惗惉
 *
 * @param[in] aAfEnv 傾僾儕働乕僔儑儞僼儗乕儉儚乕僋偺娐嫬僋儔僗
 * @param[in] aSyncEngine 摨婜僄儞僕儞
 * @param[in] aMusicAPMainPlayerEnv 儊僀儞僾儗僀儎乕娐嫬
 * @return CSmbMusicAPMainPlayerDialogManager偺僀儞僗僞儞僗
 */
#ifdef __SMBMUSICAP_PTX824_DEF__
CSmbMusicAPMainPlayerDialogManager* CSmbMusicAPMainPlayerDialogManager::NewL(CSmbAfEnv& aAfEnv, CSmbMusicAPSyncEngine& aSyncEngine, MSmbMusicAPMainPlayerEnv& aPlayerEnv, RLog& aLog)
#else
CSmbMusicAPMainPlayerDialogManager* CSmbMusicAPMainPlayerDialogManager::NewL(CAfEnv& aAfEnv, CSmbMusicAPSyncEngine& aSyncEngine, MSmbMusicAPMainPlayerEnv& aPlayerEnv, RLog& aLog)
#endif
	{
	//__UHEAP_FAILNEXT(1);  // UT丗CSmbMusicAPMainPlayerDialogManager惗惉幐攕
	CSmbMusicAPMainPlayerDialogManager* self = new(ELeave) CSmbMusicAPMainPlayerDialogManager(aAfEnv, aSyncEngine, aPlayerEnv, aLog);
	CleanupStack::PushL(self);
	//User::Leave(KErrNoMemory);  // UT丗PushL()偺Leave偺戙傢傝
	self->ConstructL();
	CleanupStack::Pop();// self
	return self;
	}

/**
 * 僐儞僗僩儔僋僞
 *
 * @param[in] aAfEnv 傾僾儕働乕僔儑儞僼儗乕儉儚乕僋娐嫬僋儔僗偺嶲徠
 * @param[in] aSyncEngine 摨婜僄儞僕儞
 * @param[in] aMusicAPMainPlayerEnv 儊僀儞僾儗僀儎乕娐嫬
 */
#ifdef __SMBMUSICAP_PTX824_DEF__
CSmbMusicAPMainPlayerDialogManager::CSmbMusicAPMainPlayerDialogManager(CSmbAfEnv& aAfEnv, CSmbMusicAPSyncEngine& aSyncEngine, MSmbMusicAPMainPlayerEnv& aPlayerEnv, RLog& aLog)
#else
CSmbMusicAPMainPlayerDialogManager::CSmbMusicAPMainPlayerDialogManager(CAfEnv& aAfEnv, CSmbMusicAPSyncEngine& aSyncEngine, MSmbMusicAPMainPlayerEnv& aPlayerEnv, RLog& aLog)
#endif
	: CBase(), iPlayerEnv(aPlayerEnv), iAfEnv(aAfEnv), iSyncEngine(aSyncEngine), iLog(aLog)
	{
	// nothing
	}

/**
 * 2nd僼僃乕僘丒僐儞僗僩儔僋僞
 */
void CSmbMusicAPMainPlayerDialogManager::ConstructL()
	{
	// 抶墑嶍彍偺偨傔偺僆僽僕僃僋僩惗惉
	TCallBack callback = TCallBack(AsyncDestructor, this);
	//__UHEAP_FAILNEXT(1);  // UT丗CAsyncCallBack惗惉幐攕	
	iAsyncDestructor = new(ELeave) CAsyncCallBack(callback, CActive::EPriorityStandard);
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPMainPlayerDialogManager::~CSmbMusicAPMainPlayerDialogManager()
	{
	//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::~CSmbMusicAPMainPlayerDialogManager()");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18032, ELogLevelLowest, KLogFmt);

	// 僟僀傾儘僌傪慡偰暵偠傞
//	CloseAllDialogs();

	// 僌儘乕僶儖僟僀傾儘僌傪徚嫀
	delete iGlobalSelectionDialog;

	// 抶墑嶍彍偺偨傔偺傾僋僥傿僽僆僽僕僃僋僩傪嶍彍
	if (iAsyncDestructor != NULL)
		{
		iAsyncDestructor->Cancel();
		delete iAsyncDestructor;
		}

	// 抶墑嶍彍梫媮嵪傒偐偳偆偐偵娭傢傜偢丄梫慺傪慡偰嶍彍偡傞
	iModelessDialogs.ResetAndDestroy();
	iModelessDialogs.Close();
	}

/**
 * 抂枛暵帪偵僋儘乕僘懳徾偲側傞僟僀傾儘僌傪慡偰暵偠傞
 */
void CSmbMusicAPMainPlayerDialogManager::CloseDialogsWhenCaseClosed()
	{
	//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::CloseDialogsWhenCaseClosed()");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18001, ELogLevelLow, KLogFmt);

	CloseGlobalDialog();

	// 儌乕僟儖僟僀傾儘僌偼柍忦審偱暵偠傞
	CloseModalDialog();

	// 儌乕僪儗僗偼懳徾偲側傞傕偺偺傒暵偠傞
	for (TInt i = 0; i < iModelessDialogs.Count(); i++)
		{
		if (iModelessDialogs[i]->IsCloseWhenCaseClosed() != EFalse)  // == ETrue
			{
			iModelessDialogs[i]->CloseDialog();
			}
		}
	}

///**
// * 慡偰偺僟僀傾儘僌傪暵偠傞
// */
//void CSmbMusicAPMainPlayerDialogManager::CloseAllDialogs()
//	{
//	_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::CloseAllDialogs()");
//	SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18002, ELogLevelLow, KLogFmt);
//
//	// 僌儘乕僶儖僟僀傾儘僌傪暵偠傞
//	CloseGlobalDialog();
//
//	// 儌乕僟儖僟僀傾儘僌傪暵偠傞
//	CloseModalDialog();
//
//	// 儌乕僪儗僗僟僀傾儘僌傪慡偰暵偠傞
//	CloseAllModelessDialogs();
//	}

//ADD-S 2007.04.06 [PTX824 i-keeper(TRK):12592] 摿掕偺儌乕僟儖僟僀傾儘僌偺応崌偺傒暵偠傞儊僜僢僪傪捛壛
/**
 * 巜掕偝傟偨儌乕僟儖僟僀傾儘僌傪暵偠傞
 *
 * @param[in] aResId 暵偠傞儕僜乕僗ID
 * @return ETrue丗僟僀傾儘僌傪暵偠偨 | EFalse丗僟僀傾儘僌傪暵偠側偐偭偨乮昞帵偝傟偰偄側偐偭偨乯
 */
TBool CSmbMusicAPMainPlayerDialogManager::CloseModalDialog(TInt aResId)
	{
	TBool closed = EFalse;

	if (iModalDialog != NULL)
		{
		if (iModalDialog->ResourceId() == aResId)
			{
			CloseModalDialog();
			closed = ETrue;
			}
		}

	return closed;
	}
//ADD-E 2007.04.06 [PTX824 i-keeper(TRK):12592] 摿掕偺儌乕僟儖僟僀傾儘僌偺応崌偺傒暵偠傞儊僜僢僪傪捛壛

/**
 * 昞帵拞偺儌乕僟儖僟僀傾儘僌傪暵偠傞
 */
void CSmbMusicAPMainPlayerDialogManager::CloseModalDialog()
	{
	if (iModalDialog != NULL)
		{
		iModalDialog->CloseDialog();
		iModalDialog = NULL;

		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::CloseModalDialog()");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18003, ELogLevelLowest, KLogFmt);
		}
	}

/**
 * 巜掕偟偨儌乕僪儗僗僟僀傾儘僌偺僋儘乕僘
 *
 * @param[in] aResId 僋儘乕僘懳徾偺僟僀傾儘僌儕僜乕僗ID
 * @leave RPointerArray::AppendL()
 */
void CSmbMusicAPMainPlayerDialogManager::CloseModelessDialog(TInt aResId)
	{
	for (TInt i = iModelessDialogs.Count()-1; i >= 0; i--)
		{
		if (iModelessDialogs[i]->ResourceId() == aResId)
			{
			iModelessDialogs[i]->CloseDialog();

			//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::CloseModelessDialog(0x%08x)");
			//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18004, ELogLevelLowest, KLogFmt, aResId);
			}
		}
	}

///**
// * 儌乕僪儗僗僟僀傾儘僌傪慡偰僋儘乕僘偡傞
// */
//void CSmbMusicAPMainPlayerDialogManager::CloseAllModelessDialogs()
//	{
//	_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::CloseAllModelessDialogs()");
//	SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18005, ELogLevelLowest, KLogFmt);
//
//	for (TInt i = iModelessDialogs.Count()-1; i >= 0; i--)
//		{
//		iModelessDialogs[i]->CloseDialog();
//		}
//	}

/**
 * 僌儘乕僶儖僟僀傾儘僌傪暵偠傞
 */
void CSmbMusicAPMainPlayerDialogManager::CloseGlobalDialog()
	{
	if (iGlobalSelectionDialog != NULL)
		{
		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::CloseGlobalDialog()");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18006, ELogLevelLowest, KLogFmt);

		delete iGlobalSelectionDialog;
		iGlobalSelectionDialog = NULL;
		}
	}

/**
 * 儌乕僟儖妋擣僟僀傾儘僌昞帵
 *
 * @param[in] aResId 儕僜乕僗ID乮SkonConfirmDialog弨嫆乯
 * @param[in] aText 昞帵僥僉僗僩乮摦揑偵嶌惉偟偨僥僉僗僩傪昞帵偡傞嵺偵巊梡偡傞堷悢丅aCombinedText偑巜掕偝傟偨応崌偼杮堷悢偼柍帇偝傟傞乯
 * @param[in,out] aCombinedText 昞帵僐儞僶僀儞僪僥僉僗僩乮摦揑偵嶌惉偟偨僐儞僶僀儞僪僥僉僗僩傪昞帵偡傞嵺偵巊梡偡傞堷悢丅杮堷悢偑巜掕偝傟偨応崌偼aText偼柍帇偝傟傞丅仸強桳尃偼埾忳偝傟傞乯
 * @return 僋儘乕僘偝傟偨棟桼
 */
TInt CSmbMusicAPMainPlayerDialogManager::ShowConfirmModalDialogL(TInt aResId, const TDesC* aText, CSkonCombinedText* aCombinedText)
	{
//	// 儌乕僟儖僟僀傾儘僌昞帵拞偵儌乕僟儖昞帵梫媮偑峴傢傟偰傕栤戣側偄傛偆偵偟偰偄傞偑丄杮棃偦偺傛偆側儐乕僗働乕僗偼側偄偼偢側偺偱丄ASSERT傪偐偗傞
//	__ASSERT_DEBUG(iModalDialog == NULL, PANIC(9018001));

	//_LIT(KLogFmt1, "CSmbMusicAPMainPlayerDialogManager::ShowConfirmModalDialogL(0x%08x)[start.]");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18007, ELogLevelLowest, KLogFmt1, aResId);

	// CloseModalDialog();偵彂偒姺偊傞
	if (iModalDialog != NULL)
		{// 婛偵昞帵拞
		iModalDialog->CloseDialog();
		iModalDialog = NULL;

		//_LIT(KLogFmt, "CSmbMusicAPMainPlayerDialogManager::ShowConfirmModalDialogL()[close.]");
		//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18008, ELogLevelLowest, KLogFmt);
		}

	// 強桳尃埾忳慜偵儕乕僽偟偰傕aCombinedText偑儕乕僋偟側偄傛偆偵拲堄
	if (aCombinedText != NULL)
		{
		CleanupStack::PushL(aCombinedText);
		//User::Leave(KErrNoMemory);  // UT丗PushL()偱偺Leave偺戙傢傝
		}

	//__UHEAP_FAILNEXT(1);  // UT丗CSmbMusicAPMainPlayerDialogItem惗惉幐攕
	CSmbMusicAPMainPlayerDialogItem* modalDialog = new(ELeave) CSmbMusicAPMainPlayerDialogItem(*this, iSyncEngine, aResId, aText, aCombinedText);

	if (aCombinedText != NULL)
		{
		CleanupStack::Pop();
		}

	iModalDialog = modalDialog;
	TInt result = modalDialog->ShowConfirmModalDialogLD(); // 仐嵎暘

	iModalDialog = NULL;

	//_LIT(KLogFmt2, "CSmbMusicAPMainPlayerDialogManager::ShowConfirmModalDialogL(0x%08x)[%d end.]");
	//SmbMusicAPMainPlayerUtility::OutputLog(iLog, 18009, ELogLevelLowest, KLogFmt2, aResId, result);

	return result;
	}

/**
 * 儌乕僟儖寈崘僟僀傾儘僌昞帵
 *
 * @param[in] aResId 儕僜乕僗ID乮SkonWarningDialog弨嫆乯
 * @param[in] aText 昞帵僥僉僗僩乮摦揑偵嶌惉偟偨僥僉僗僩傪昞帵偡傞嵺偵巊梡偡傞堷悢丅aCombinedText偑巜掕偝傟偨応崌偼杮堷悢偼柍帇偝傟傞乯
 * @param[in,out] aCombinedText 昞帵僐儞僶僀儞僪僥僉僗僩乮摦揑偵嶌惉偟偨僐儞僶僀儞僪僥僉僗僩傪昞帵偡傞嵺偵巊梡偡傞堷悢丅杮堷悢偑巜掕偝傟偨応崌偼aText偼柍帇偝傟傞丅仸強桳尃偼埾忳偝傟傞乯
 * @return 僋儘乕僘偝傟偨棟桼
 */

⌨️ 快捷键说明

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