smbmusicapmainplayerfilterlistviewsong.cpp

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

CPP
1,234
字号
 * 僟僀傾儘僌昞帵僐儅儞僪
 *
 * @param aType       [in] 僟僀傾儘僌僞僀僾
 * @param aResId      [in] 儕僜乕僗ID
 */
void CSmbMusicAPMainPlayerFilterListViewSong::HandleDialogCommandL(TSmbMusicAPMainPlayerDialogActionType aType, TInt aResId, const TDesC* aText, CSkonCombinedText* aCombinedText)
	{
	//2006.09.30 侾審嶍彍帪偵奜晹儊儌儕憓敳偑敪惗偟偰嫮惂揑側僟僀傾儘僌僋儘乕僘僐儅儞僪偑棃偨応崌偵懳墳
	if(EShowSelectionModelessDialog==aType
	&& R_DL_MUSIC_MAIN_FLT_DELETESONG_SELECT==aResId)
		{
		HBufC* str = NULL;
		if(aText)
			{
			str = HBufC::NewL(aText->Length());
			CleanupStack::PushL(str);
			str->Des().Append(*aText);
			}
		// 儕僜乕僗傛傝儊僢僙乕僕庢摼
		HBufC* text = CEikonEnv::Static()->AllocReadResourceLC(R_SMB_AF_STR_MSG013);
		TRefByValue<TDesC const> textFormat(*text);
		HBufC*	msg = SmbAfWordingFormatter::FormatLC(textFormat, str);
		CSkonCombinedText* combinedtext = new(ELeave) CSkonCombinedText();
		CleanupStack::PushL(combinedtext);
		TResourceReader resourceReader;
		(CEikonEnv::Static())->CreateResourceReaderLC(resourceReader, R_DL_MUSIC_MAIN_FLT_DELETESONG_COMBINED);
		combinedtext->ConstructFromResourceL(resourceReader);
		CleanupStack::PopAndDestroy();//resourceReader
		combinedtext->SetTextL(*msg);
		CleanupStack::Pop();//combinedtext
		CleanupStack::PopAndDestroy(3);//msg, text,str
		CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETESONG_SELECT, NULL, combinedtext);
		}
	else
		{
		CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(aType, aResId, aText, aCombinedText);
		}
	}
/**
 * 僟僀傾儘僌僋儘乕僘捠抦
 *
 * @param[in]		aResourceId		儕僜乕僗俬俢
 * @param[in]		aResult			慖戰寢壥
 */
void CSmbMusicAPMainPlayerFilterListViewSong::HandleDialogClosed(TInt aResourceId, TInt aResult)
	{
	CSmbMusicAPMainPlayerFilterListView::HandleDialogClosed(aResourceId, aResult);

//2006.09.25 TRK#9754
	if(NULL!=ProcessObj() && CSmbMusicAPMainPlayerFilterProcess::EProcessTypeDeleteOne == ProcessObj()->GetProcessType())
		{
		CSmbMusicAPMainPlayerFilterProcessDeleteOne* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessDeleteOne*>(ProcessObj());
//		CSmbMusicAPMainPlayerFilterProcessDeleteOne* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessDeleteOne*,ProcessObj());

		switch(aResourceId)
			{
			case R_DL_MUSIC_MAIN_FLT_DELETESONG_OVERCOUNT_SELECT:
			case R_DL_MUSIC_MAIN_FLT_DELETESONG_OVERTIME_SELECT:
			case R_DL_MUSIC_MAIN_FLT_DELETESONG_NOTHING_DRMINFO:	// DRM忣曬側偟偺僨乕僞BOX僐儞僥儞僣 2007.06.22
				{
				if (MSmbMusicAPMainPlayerDialogManagerBase::ESelectKey == aResult)//乽偼偄乿偑慖戰偝傟偨
					{
					processObj->NextSequence(CSmbMusicAPMainPlayerFilterProcessDeleteOne::EFilterProcessDeleteOneEventDeleteExecute);
					}
				else//乽偄偄偊乿偑慖戰偝傟偨
					{
					processObj->NextSequence(CSmbMusicAPMainPlayerFilterProcessDeleteOne::EFilterProcessDeleteOneEventDeleteCancel);
					}
				break;
				}
			case R_DL_MUSIC_MAIN_FLT_OTHERFUNC_DELETESONG_SELECT:
			case R_DL_MUSIC_MAIN_FLT_DELETESONG_SELECT:
				{
				if (MSmbMusicAPMainPlayerDialogManagerBase::ESelectKey == aResult)//乽偼偄乿偑慖戰偝傟偨
					{
					processObj->NextSequence(CSmbMusicAPMainPlayerFilterProcessDeleteOne::EFilterProcessDeleteOneEventDeleteExecute);
					}
				else//乽偄偄偊乿偑慖戰偝傟偨
					{
					processObj->NextSequence(CSmbMusicAPMainPlayerFilterProcessDeleteOne::EFilterProcessDeleteOneEventDeleteCancel);
					}
				break;
				}
			case R_DL_MUSIC_MAIN_FLT_DELETE_CONFIRM://嶍彍姰椆妋擣僟僀傾儘僌
			case R_DL_MUSIC_MAIN_FLT_DELETE_CANCEL_CONFIRM://憖嶌拞巭僟僀傾儘僌
			case R_DL_MUSIC_MAIN_FLT_DELETE_FAILED_WARNING://嶍彍晄壜僟僀傾儘僌
				{
				processObj->NextSequence(CSmbMusicAPMainPlayerFilterProcessDeleteOne::EFilterProcessDeleteOneEventDeleteCancel);
				break;
				}
			}
		}
	}

//////////////////////////////////////////////////////////////////////////////////////
// 僞僀僩儖僶乕張棟
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 僞僀僩儖僶乕傾僀僐儞偺愝掕
 *
 * @param aState       [in] FilterView
 */
void CSmbMusicAPMainPlayerFilterListViewSong::AdjustTitleIconL()
	{
	TInt	leftIconId = -1;
//	TInt	rightIconID = 0;

// Mod-S PTX-824 D_82400013891懳墳 暯壀 2007.09.11
//	// 慗堏尦偺儕僗僩傪庢摼偡傞
	TSmbMusicAPSyncEnginePrevListInfo prevList;
//	if(KErrNone==View()->SyncModel().GetPrevList(ListHandle(), prevList))
	prevList = iPrevList;
	if (ESmbMusicAPSyncEngineTypeInvalidlist != prevList.iListType)
// Mod-E PTX-824 D_82400013891懳墳 暯壀 2007.09.11
		{
		// 慗堏尦儕僗僩忣曬偑儕僗僩傾僀僥儉偐偳偆偐丠
		if(EFalse!=prevList.iListInfo)
			{
			switch(prevList.iListType)
				{
				case ESmbMusicAPSyncEngineTypeGenre:				///<僕儍儞儖
					leftIconId = EMbmMusicMc_genre_icon;
					break;
				case ESmbMusicAPSyncEngineTypeArtist:				///<傾乕僥傿僗僩
					leftIconId = EMbmMusicMc_artist_icon;
					break;
				case ESmbMusicAPSyncEngineTypeAlbum:				///<傾儖僶儉
					leftIconId = EMbmMusicMc_album_icon;
					break;
				case ESmbMusicAPSyncEngineTypeOriginalPlaylist:		///<僆儕僕僫儖僾儗僀儕僗僩
					leftIconId = EMbmMusicMc_original_playlist_icon;
					break;
				case ESmbMusicAPSyncEngineTypeImportPlaylist:		///<僀儞億乕僩僾儗僀儕僗僩
					leftIconId = EMbmMusicMc_import_playlist_icon;
					break;
// Add-S PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineTypeWMAPlaylist:			///<WMA僾儗僀儕僗僩
					leftIconId = EMbmMusicMc_wma_playlist_icon;
					break;
// Add-E PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineTypeSonglist:				///<嬋堦棗
					// 嬋堦棗偑GetPrevList偱庢摼偝傟傞偙偲偼側偄
					break;
				case ESmbMusicAPSyncEngineTypeInvalidlist:			///<柍岠側儕僗僩
					break;
				}
			}
		else
			{
			// 専嶕忣曬乮儈儏乕僕僢僋儊僯儏乕乯偺応崌
			switch(prevList.iSearchCondition)
				{
// Mod-S PTX-824懳墳(TRK-580)丂暯壀丂摟柧傾僀僐儞懳墳
//	 -> (D_82400006405, D_82400004469) 儈儏乕僕僢僋儊僯儏乕傾僀僐儞懳墳
				case ESmbMusicAPSyncEngineAll:							///<偡傋偰偺嬋
//					leftIconId = EMbmMusicMc_all_icon;
//					break;
				case ESmbMusicAPSyncEngineOften50:						///<傛偔挳偔50嬋
//					leftIconId = EMbmMusicMc_favorite_50_item_icon;
//					break;
				case ESmbMusicAPSyncEngineLatest50:						///<嵟嬤挳偄偨50嬋
//					leftIconId = EMbmMusicMc_50_item_icon;
//					leftIconId = EMbmMusicMc_titlebar_icon_clear_main;
					leftIconId = EMbmMusicMc_titlebar_icon_menu_main;
					break;
// Mod-E PTX-824懳墳(TRK-580)丂暯壀 (D_82400006405, D_82400004469)
				case ESmbMusicAPSyncEngineDataBox:						///<曐懚愭偐傜1(僨乕僞BOX)
// Del-S PTX-824懳墳 TRK955 暯壀
#ifdef EXPANDEDMEM_DELETE
				case ESmbMusicAPSyncEngineMassStorage:					///<曐懚愭偐傜2(杮懱奼挘儊儌儕)
#endif
// Del-E PTX-824懳墳 TRK955 暯壀
				case ESmbMusicAPSyncEngineMSDuo:						///<曐懚愭偐傜3(M.S.Duo)
				case ESmbMusicAPSyncEngineMiniSD:						///<曐懚愭偐傜4(miniSD)
					leftIconId = EMbmMusicMc_to_save_icon;
					break;
				case ESmbMusicAPSyncEngineGenre:						///<僕儍儞儖
				case ESmbMusicAPSyncEngineArtist:						///<傾乕僥傿僗僩
				case ESmbMusicAPSyncEngineAlbum:						///<傾儖僶儉
				case ESmbMusicAPSyncEngineOriginalPlaylist:				///<僆儕僕僫儖僾儗僀儕僗僩
				case ESmbMusicAPSyncEngineImportPlaylist:				///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
				case ESmbMusicAPSyncEngineWMAPlaylist:					///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
				default:
					break;
				}
			}
		}
	SetTitleIconL(leftIconId, 0);
	}
	
//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩儃僢僋僗張棟
//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩傾僀僥儉偺敿婸搙挷惍傪偡傞
void CSmbMusicAPMainPlayerFilterListViewSong::AdjustListBoxL(TBool /*aState*/)
	{
	// 儕僗僩儃僢僋僗僞僀僾傪庢摼偡傞
	iViewStyle = SmbPGMusic::ListViewStyleL(View()->PropAgent());
	// 儕僗僩儃僢僋僗僞僀僾傪愝掕偡傞
	ListBox()->SetListBoxFormat(ListBoxFormat());
	}

/**
 * 嵞惗嬋偑曄峏偲側偭偨偙偲傪捠抦偡傞丅
 * @param[in] aItem 嵞惗懳徾嬋忣曬
 */
void CSmbMusicAPMainPlayerFilterListViewSong::HandlePlayerSongChangedL(TSmbMusicAPSyncEngineItemIndex aItem)
	{
	// 儕僗僩儃僢僋僗偵僼僅乕僇僗傪愝掕偡傞
	SetActiveIndex(aItem.iIndex);
	ListBox()->SetCurrentItemIndex(aItem.iIndex);
	}

//////////////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪儌乕僪
//////////////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪儌乕僪傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListViewSong::SetCommandMode(TSmbMusicAPMainPlayerCommandMode aMode)
	{
	if(CommandMode()==aMode)
		{
		return;
		}
	switch(aMode)
		{
		case EFilteringMode:
	    	{
    		// 僼傿儖僞儕儞僌儌乕僪
    		// 
			if(0<iListTitle.Length())
				{
	    		SetTitleTextL(iListTitle);
	    		_LIT(KEmptyText, "");
	    		iListTitle.Set(KEmptyText);
				}
	    	}
			break;
    	case ESelectItemMode:
			break;
    	case ESelectMultipleMode:
	    	{
	    	// 尰嵼愝掕偝傟偰偄傞僞僀僩儖傪曐帩偟偰偍偔
//			TBuf<256> listTitle;
//	    	if(KErrNone==View()->SyncModel().GetListTitle(ListHandle(), listTitle))
//		    	{
//		    	if(0<listTitle.Length())
//			    	{
//			    	iListTitle.Set(listTitle);
//			    	}
//		    	}
    		// 慖戰搊榐儌乕僪
    		SetTitleTextL(R_SMB_AF_STR_WRD2812);
	    	}
			break;
    	case EOrderItemMode:
	    	{
	    	// 尰嵼愝掕偝傟偰偄傞僞僀僩儖傪曐帩偟偰偍偔
//			TBuf<256> listTitle;
//	    	if(KErrNone==View()->SyncModel().GetListTitle(ListHandle(), listTitle))
//		    	{
//		    	if(0<listTitle.Length())
//			    	{
//			    	iListTitle.Set(listTitle);
//			    	}
//		    	}
    		// 暲傋懼偊儌乕僪
    		SetTitleTextL(R_SMB_AF_STR_WRD015);
	    	}
			break;
		}
	CSmbMusicAPMainPlayerFilterListView::SetCommandMode(aMode);
	}

// 儕僗僩儃僢僋僗偺僼僅乕儅僢僩偺愝掕
void CSmbMusicAPMainPlayerFilterListViewSong::SetListBoxFormat(CSkonMusicListBox::TMusicListBoxFormat aFormat)
	{
	// 捠忢偺1峴昞帵
	if(CSkonMusicListBox::EFormatNormal==aFormat)
		{
		iViewStyle = ESmbPGMusicAPListViewStyleTitle;
		}
	// 僒儉僱僀儖昞帵
	else
		{
		iViewStyle = ESmbPGMusicAPListViewStyleThumbnail;
		}
	SmbPGMusic::SetListViewStyleL(View()->PropAgent(), iViewStyle);
	ListBox()->SetListBoxFormat(aFormat);
	}

// 儕僗僩儃僢僋僗偺僞僀僾傪庢摼偡傞
CSkonMusicListBox::TMusicListBoxFormat CSmbMusicAPMainPlayerFilterListViewSong::ListBoxFormat()
	{
	CSkonMusicListBox::TMusicListBoxFormat	aFormat;
	// 捠忢偺1峴昞帵
	if(ESmbPGMusicAPListViewStyleTitle==iViewStyle)
		{
		aFormat = CSkonMusicListBox::EFormatNormal;
		}
	// 僒儉僱僀儖昞帵
	else
		{
		aFormat = CSkonMusicListBox::EFormatThumbnail;
		}
	return aFormat;
	}

// 儕僗僩儃僢僋僗偺僆儁儗乕僔儑儞儌乕僪傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListViewSong::SetOperationMode(CSkonRichListBoxBase::TOperationMode aMode)
	{
	// 崁栚慖戰儌乕僪丗CSkonRichListBoxBase::EOperationNormal
	// 崁栚曇廤儌乕僪丗CSkonRichListBoxBase::EOperationModification
	// 暋悢崁栚慖戰儌乕僪丗CSkonRichListBoxBase::EOperationMultiSelect
	ListBox()->SetOperationMode(aMode);
	}

// 儕僗僩憖嶌儌乕僪傪曉偡
CSkonRichListBoxBase::TOperationMode CSmbMusicAPMainPlayerFilterListViewSong::OperationMode()
	{
	return ListBox()->OperationMode();
	}

/**
 * 僒僽儊僯儏乕昞帵
 */
void CSmbMusicAPMainPlayerFilterListViewSong::ProcessSubMenuL(MSmbMusicAPMainPlayerFilterListViewObserver* aObserver)
	{
	//2006.10.02 TRK#9464
	//僒僽儊僯儏乕傪昞帵偟側偄働乕僗
	//丂摨婜僒乕僶強桳尃偑側偄偲偒
	//丂傾僀僥儉庢摼拞偺偲偒
	if( EFalse==View()->IsAccessSyncEngine()
	|| (NULL!=ProcessObj()
		&& ProcessObj()->InService()
		&& CSmbMusicAPMainPlayerFilterProcess::EProcessTypeGetListItems==ProcessObj()->GetProcessType()) )
		{
		//僀儀儞僩梷惂夝彍偡傞
		View()->SetEventDisabled(EFalse);
		return;
		}
	
	// 夋憸忣曬傪弶婜壔偡傞
	iHasJacketImage = EFalse;
	iHasRylicImage = EFalse;
	iIsUimLimited = EFalse;
	iIsOffline = EFalse;
	//2006.10.10 TRK#11216
	iIsSDBinding = EFalse;
	// 僆僽僓乕僶偺僒僽儊僯儏乕張棟傪屇傃弌偡
	// 捠忢偼摨婜張棟
	if(NULL==aObserver)
		{
		// 摨婜張棟偱僒僽儊僯儏乕傪昞帵偡傞
		View()->HandleSubMenuL(this, SubMenuID());
		return;
		}
	// SubMenu張棟傪屇傃弌偡偨傔偺僆僽僓乕僶傪愝掕偡傞
	iObserver = aObserver;

	View()->SyncModel().GetImageCount(ListHandle(), 
										 CurrentItemIndex(), 
										 EOwnerType_Image,
										 iRequestId,
										 *this);
	}

/**
 * 梫媮姰椆
 *
 * @param[in]		aKind				梫媮庬暿
 * @param[in]		aResult				張棟寢壥
 * @param[in]		aResponse			墳摎僋儔僗偺嶲徠乮忣曬庢摼梡乯
 */
void CSmbMusicAPMainPlayerFilterListViewSong::RequestComplete(
												TSmbMusicAPMainPlayerRequest 							aKind, 
												TInt 													aResult, 
												MSmbMusicAPMainPlayerFilterSyncServerProcessResponse&	aResponse)
	{
	switch(aKind)
		{
		case EImageRequestGetImageCount:
			{
			// 夋憸忣曬庢摼偑僄儔乕偱偁傟偽丄夋憸昞帵丄壧帉昞帵偼慖戰晄壜
			if(KErrNone!=aResult)
				{
				iHasJacketImage = EFalse;
				iHasRylicImage = EFalse;
				iIsUimLimited = EFalse;
				iIsOffline = EFalse;
				iIsSDBinding = EFalse;
				// 僒僽儊僯儏乕張棟傪屇傃弌偡
				if(NULL!=iObserver)
					{
// Mod-S D_82400010412懳墳 偙偙偱TRAP傪偟偰偼偄偗側偄丅MOAP偱儊儌儕儕乕僋傪婲偙偟偰偟傑偆丅2007.08.29 暯壀
					iObserver->HandleSubMenuL(this, SubMenuID());
//					TRAPD(error, iObserver->HandleSubMenuL(this, SubMenuID()));
//					if(KErrNone != error)
//						{
//						// 儘僌
//						_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterListViewSong::RequestComplete()");
//						SmbMusicAPMainPlayerUtility::OutputLog(iLog, 131000, ELogLevelNormal, KLogFmt);
//						}
// Mod-E D_82400010412懳墳 偙偙偱TRAP傪偟偰偼偄偗側偄丅MOAP偱儊儌儕儕乕僋傪婲偙偟偰偟傑偆丅
					}
				}
			else
				{
				TSmbMusicAPSyncEngineImageCountInSongItem countInfo;
				aResponse.GetResultImageCount(countInfo);
				// 夋憸枃悢忣曬庢摼偟偨偺偱Jacket夋憸枃悢丄Lyric夋憸枃悢傪僠僃僢僋偡傞

⌨️ 快捷键说明

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