smbmusicapmainplayerfilterlistview.cpp

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

CPP
1,978
字号
		}
	return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
	}

/**
 * 僐儅儞僪幚峴
 *
 * @param aCommandId [in]	僐儅儞僪ID
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListView::ProcessCommandL(TInt aCommandId)
	{
	// 婎杮僐儅儞僪
	switch(aCommandId)
		{
		case EMainPlayerFilterViewKGCmdParentView:		// 恊奒憌夋柺慗堏僐儅儞僪
			{
			View()->ShowParentViewL();
			}
			return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
		}
	return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
	}
	
//////////////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪儌乕僪
//////////////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪儌乕僪傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListView::SetCommandMode(TSmbMusicAPMainPlayerCommandMode aMode)
	{
	iCommandMode = aMode;
	switch(iCommandMode)
		{
		case EFilteringMode:
			SetOperationMode(CSkonRichListBoxBase::EOperationNormal);
			break;
    	case ESelectItemMode:
			SetOperationMode(CSkonRichListBoxBase::EOperationNormal);
			break;
    	case ESelectMultipleMode:
			SetOperationMode(CSkonRichListBoxBase::EOperationMultiSelect);
			break;
    	case EOrderItemMode:
			SetOperationMode(CSkonRichListBoxBase::EOperationModification);
			break;
		}
//ADD-S> 2006.10.31 TRK#12267
	SetEditStatus(EEditInit);
//ADD-E<
	}

// 僐儅儞僪儌乕僪傪庢摼偡傞
TSmbMusicAPMainPlayerCommandMode CSmbMusicAPMainPlayerFilterListView::CommandMode()
	{
	return iCommandMode;
	}

//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩僞僀僾
//////////////////////////////////////////////////////////////////////////////////////
// 儕僗僩僞僀僾傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListView::AdjustListType()
	{
	TSmbMusicAPSyncEngineListType listType = ESmbMusicAPSyncEngineTypeInvalidlist;
	if(KErrNone==View()->SyncModel().GetListType(ListHandle(), listType))
		{
		switch(listType)
			{
			case ESmbMusicAPSyncEngineTypeGenre:				///<僕儍儞儖
				SetListType(EGenreListType);
				break;
			case ESmbMusicAPSyncEngineTypeArtist:				///<傾乕僥傿僗僩
				SetListType(EArtistListType);
				break;
			case ESmbMusicAPSyncEngineTypeAlbum:				///<傾儖僶儉
				SetListType(EAlbumListType);
				break;
			case ESmbMusicAPSyncEngineTypeOriginalPlaylist:		///<僆儕僕僫儖僾儗僀儕僗僩
				SetListType(EPLOriginalPLListType);
				break;
			case ESmbMusicAPSyncEngineTypeImportPlaylist:		///<僀儞億乕僩僾儗僀儕僗僩
				SetListType(EPLImportPLListType);
				break;
// Add-S PTX-824懳墳丂暯壀
			case ESmbMusicAPSyncEngineTypeWMAPlaylist:			///<WMA僾儗僀儕僗僩
				SetListType(EPLWMAPLListType);
				break;
// Add-E PTX-824懳墳丂暯壀
			case ESmbMusicAPSyncEngineTypeSonglist:				///<嬋堦棗
// Add-S PTX-824懳墳丂暯壀
				SetListType(ESongListType);
// Add-E PTX-824懳墳丂暯壀
				break;
			case ESmbMusicAPSyncEngineTypeInvalidlist:			///<柍岠側儕僗僩
			default:
				// 昁梫偱偁傟偽攈惗僋儔僗偱愝掕偡傞
				break;
			}
		}
	}
	
// 儕僗僩僞僀僾傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListView::SetListType(TSmbMusicAPMainPlayerListType aType)
	{
	iListType = aType;
	}
	
// 儕僗僩僞僀僾傪庢摼偡傞
TSmbMusicAPMainPlayerListType CSmbMusicAPMainPlayerFilterListView::ListType()
	{
	return iListType;
	}

//////////////////////////////////////////////////////////////////////////////////////
// 僞僀僩儖僶乕張棟
//////////////////////////////////////////////////////////////////////////////////////
/**
 * 僞僀僩儖僶乕忣曬傪愝掕偡傞
 * 仸偲傝偁偊偢廬棃偺張棟傪堷偒宲偖
 *   攈惗僋儔僗偵偦傟偧傟偺張棟傪暘嶶偡傞曽恓
 */
void CSmbMusicAPMainPlayerFilterListView::AdjustTitleL()
	{
// Add-S PTX-824 D_82400013891懳墳 暯壀 2007.09.11
	// 慗堏尦偺儕僗僩傪庢摼偡傞
	TSmbMusicAPSyncEnginePrevListInfo prevList;
	// 弶婜壔
	prevList.iListInfo = EFalse;
	prevList.iListItem.iIndex = 0;
	prevList.iListItem.iListHandle = 0;
	prevList.iListType = ESmbMusicAPSyncEngineTypeInvalidlist;
	prevList.iSearchCondition = ESmbMusicAPSyncEngineGenre;

	TInt listHandle = ListHandle();
	if (ESmbLocalListHandleMusicMenu != listHandle
	 &&	ESmbLocalListHandlePLType != listHandle
	 && ESmbLocalListHandleMemType != listHandle)
		{
		if (KErrNone != View()->SyncModel().GetPrevList(listHandle, prevList))
			{
			prevList.iListType = ESmbMusicAPSyncEngineTypeInvalidlist;
			}
		}
	SetPrevListInfo(prevList);
// Add-E PTX-824 D_82400013891懳墳 暯壀 2007.09.11

	// 僞僀僩儖僶乕傾僀僐儞偺愝掕
	AdjustTitleIconL();
	
	// 儈儏乕僕僢僋儊僯儏乕丄僾儗僀儕僗僩庬暿慖戰丄曐懚愭慖戰偺応崌偼僞僀僩儖偼屌掕側偺偱愝掕偡傞昁梫偼側偄
	TUid viewID = ViewUid();
	if((KSmbMusicAPMainPlayerMusicMenuViewUid==viewID)
	|| (KSmbMusicAPMainPlayerPLTypeListViewUid==viewID)
	|| (KSmbMusicAPMainPlayerMemTypeListViewUid==viewID))
		{
		return;
		}

	//2006.07.21
	//僾儗僀儕僗僩搊榐偺偲偒偼張棟偟側偄
	if (EFilteringMode != CommandMode())
		{
		return;
		}

// Mod-S PTX-824 2007.09.12 暯壀	
//	if(NULL == ListHandle())
	if(NULL == listHandle)
// Mod-E PTX-824 2007.09.12 暯壀	
		{
		if(KSmbMusicAPMainPlayerPLListViewUid == viewID)
			{
			if(EPLOriginalPLListType == ListType())
				{
				SetTitleTextL(R_SMB_AF_STR_WRD2828);
				}
			else if(EPLImportPLListType == ListType())
				{
				SetTitleTextL(R_SMB_AF_STR_WRD2827);
				}
// Add-S PTX-824懳墳丂暯壀
			else if(EPLWMAPLListType == ListType())
				{
				SetTitleTextL(R_SMB_AF_STR_WRD3952);
				}
// Add-E PTX-824懳墳丂暯壀
			}
			return;
		}

	// 儕僗僩僴儞僪儖偐傜僞僀僩儖暥帤楍傪庢摼偡傞
	TBuf<256> titleText;
//	TInt resPrevIconId = 0;
//	TInt resNextIconId = 0;
	if(KErrNone==View()->SyncModel().GetListTitle(ListHandle(), titleText))
		{
		// 僞僀僩儖暥帤楍偑庢摼偱偒側偄応崌
		if(0==titleText.Length())
			{
			TInt resTitleId = 0;
			// 慗堏尦偺儕僗僩傪庢摼偡傞
// Mod-S PTX-824 2007.09.12 暯壀
//			TSmbMusicAPSyncEnginePrevListInfo aPrevList;
//			if(KErrNone==View()->SyncModel().GetPrevList(ListHandle(), aPrevList))
			if (ESmbMusicAPSyncEngineTypeInvalidlist != prevList.iListType)
// Mod-E PTX-824 2007.09.12 暯壀
				{
				// 慗堏尦儕僗僩忣曬偑儕僗僩傾僀僥儉偐偳偆偐丠
				if(EFalse!=prevList.iListInfo)
					{
					// 慗堏尦儕僗僩傾僀僥儉偺応崌
					// 捠忢偼GetListTitle偱僞僀僩儖暥帤楍偑庢摼偱偒傞
					// 僞僀僩儖暥帤楍偑庢摼偱偒側偄偺偼乽偡傋偰偺乣乿乽僞僀僩儖側偟乿偺応崌
					if(0>prevList.iListItem.iIndex)
						{
						// 乽偡傋偰偺乣乿偺応崌偺僞僀僩儖傪庢摼偡傞
						switch(prevList.iListType)
							{
							case ESmbMusicAPSyncEngineTypeGenre:				///<僕儍儞儖
								resTitleId = R_SMB_AF_STR_WRD2833;
								break;
							case ESmbMusicAPSyncEngineTypeArtist:				///<傾乕僥傿僗僩
								resTitleId = R_SMB_AF_STR_WRD2831;
								break;
							case ESmbMusicAPSyncEngineTypeAlbum:				///<傾儖僶儉
								resTitleId = R_SMB_AF_STR_WRD2832;
								break;
							case ESmbMusicAPSyncEngineTypeOriginalPlaylist:		///<僆儕僕僫儖僾儗僀儕僗僩
							case ESmbMusicAPSyncEngineTypeImportPlaylist:		///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
							case ESmbMusicAPSyncEngineTypeWMAPlaylist:			///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
							case ESmbMusicAPSyncEngineTypeSonglist:				///<嬋堦棗
							case ESmbMusicAPSyncEngineTypeInvalidlist:			///<柍岠側儕僗僩
								// 偙偺働乕僗偼偁傝偊側偄
								break;
							}
						}
					else
						{
						// 乽僞僀僩儖側偟乿偺応崌偺僞僀僩儖傪庢摼偡傞
						switch(prevList.iListType)
							{
							case ESmbMusicAPSyncEngineTypeGenre:				///<僕儍儞儖
								resTitleId = R_SMB_AF_STR_WRD2830;
								break;
							case ESmbMusicAPSyncEngineTypeArtist:				///<傾乕僥傿僗僩
								resTitleId = R_SMB_AF_STR_WRD2823;
								break;
							case ESmbMusicAPSyncEngineTypeAlbum:				///<傾儖僶儉
								resTitleId = R_SMB_AF_STR_WRD2825;
								break;
							case ESmbMusicAPSyncEngineTypeOriginalPlaylist:		///<僆儕僕僫儖僾儗僀儕僗僩
							case ESmbMusicAPSyncEngineTypeImportPlaylist:		///<僀儞億乕僩僾儗僀儕僗僩
// Add-S PTX-824懳墳丂暯壀
							case ESmbMusicAPSyncEngineTypeWMAPlaylist:			///<WMA僾儗僀儕僗僩
// Add-E PTX-824懳墳丂暯壀
								break;
							case ESmbMusicAPSyncEngineTypeSonglist:				///<嬋堦棗
								// 嬋堦棗偑GetPrevList偱庢摼偝傟傞偙偲偼側偄
								break;
							case ESmbMusicAPSyncEngineTypeInvalidlist:			///<柍岠側儕僗僩
								break;
							}
						}
					}
				else
					{
					// 専嶕忣曬乮儈儏乕僕僢僋儊僯儏乕乯偺応崌
					switch(prevList.iSearchCondition)
						{
						case ESmbMusicAPSyncEngineGenre:						///<僕儍儞儖
							resTitleId = R_SMB_AF_STR_WRD2829;
							break;
						case ESmbMusicAPSyncEngineArtist:						///<傾乕僥傿僗僩
							resTitleId = R_SMB_AF_STR_WRD2822;
							break;
						case ESmbMusicAPSyncEngineAlbum:						///<傾儖僶儉
							resTitleId = R_SMB_AF_STR_WRD2824;
							break;
						case ESmbMusicAPSyncEngineOriginalPlaylist:				///<僆儕僕僫儖僾儗僀儕僗僩
							resTitleId = R_SMB_AF_STR_WRD2828;
							break;
						case ESmbMusicAPSyncEngineImportPlaylist:				///<僀儞億乕僩僾儗僀儕僗僩
							resTitleId = R_SMB_AF_STR_WRD2827;
							break;
// Add-S PTX-824懳墳丂暯壀
						case ESmbMusicAPSyncEngineWMAPlaylist:					///<WMA僾儗僀儕僗僩
							resTitleId = R_SMB_AF_STR_WRD3952;
							break;
// Add-E PTX-824懳墳丂暯壀
						case ESmbMusicAPSyncEngineAll:							///<偡傋偰偺嬋
							resTitleId = R_SMB_AF_STR_WRD2834;
							break;
						case ESmbMusicAPSyncEngineOften50:						///<傛偔挳偔50嬋
							resTitleId = R_SMB_AF_STR_WRD2836;
							break;
						case ESmbMusicAPSyncEngineLatest50:						///<嵟嬤挳偄偨50嬋
							resTitleId = R_SMB_AF_STR_WRD2840;
							break;
						case ESmbMusicAPSyncEngineDataBox:						///<曐懚愭偐傜1(僨乕僞BOX)
							resTitleId = R_SMB_AF_STR_WRD309;
							break;
// Del-S PTX-824懳墳 TRK955 暯壀
#ifdef EXPANDEDMEM_DELETE
						case ESmbMusicAPSyncEngineMassStorage:					///<曐懚愭偐傜2(杮懱奼挘儊儌儕)
							resTitleId = R_SMB_AF_STR_WRD2637;
							break;
#endif
// Del-E PTX-824懳墳 TRK955 暯壀
						case ESmbMusicAPSyncEngineMSDuo:						///<曐懚愭偐傜3(M.S.Duo)
							resTitleId = R_SMB_AF_STR_WRD2310;
							break;
						case ESmbMusicAPSyncEngineMiniSD:						///<曐懚愭偐傜4(miniSD)
							resTitleId = R_SMB_AF_STR_WRD2310;
							break;
						}
					}
				}
			if(0!=resTitleId)
				{
				// 儕僜乕僗偐傜僞僀僩儖傪撉傒崬傓	
			    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(resTitleId);
			    CleanupStack::PushL(text);
				titleText = text->Des();
			    CleanupStack::Pop();
			    delete text;
				}
			}
		// 僞僀僩儖僶乕偵傾僀僐儞偲僞僀僩儖僥僉僗僩傪愝掕偡傞
		// 倀俬夋柺巇條彂亂晅榐2亃傾僀僐儞昞帵埵抲丂儊僀儞塼徎傪嶲徠
		if(0<titleText.Length())
			{
			SetTitleTextL(titleText);
			}
		}
	}

/**
 * 僞僀僩儖僶乕傾僀僐儞偺愝掕
 */
void CSmbMusicAPMainPlayerFilterListView::AdjustTitleIconL()
	{
	}


// 僞僀僩儖僶乕偵僞僀僩儖傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListView::SetTitleTextL(const TDesC& aText)
	{
	// 捠忢偼偦偺傑傑僞僀僩儖僶乕偵愝掕偡傞
	iTitleBar->SetTitleTextL(aText);
    iTitleBar->HandleControlStatusUpdatedL();
	}

// 僞僀僩儖僶乕偵儕僜乕僗偐傜撉傒崬傫偩僞僀僩儖傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListView::SetTitleTextL(TInt aTitleResID)
	{
	// 儕僜乕僗偐傜僞僀僩儖傪撉傒崬傓	
    HBufC*	text = CEikonEnv::Static()->AllocReadResourceL(aTitleResID);
    CleanupStack::PushL(text);
	SetTitleTextL(text->Des());
    CleanupStack::Pop();
    delete text;
	}

// 僞僀僩儖僶乕偵傾僀僐儞傪愝掕偡傞
void CSmbMusicAPMainPlayerFilterListView::SetTitleIconL(TInt aLeftIconResID, TInt aRightIconResID)
	{
	// 嵍偵昞帵偡傞傾僀僐儞傪愝掕偡傞
	if(0<aLeftIconResID)
		{
		CFbsBitmap* bmp = new(ELeave) CFbsBitmap();
		CleanupStack::PushL(bmp);
		User::LeaveIfError(bmp->Load(KSkonMusicMbmFileName, aLeftIconResID));
		iTitleBar->SetLeftIcon(CGulIcon::NewL(bmp, NULL));
		CleanupStack::Pop();	// bmp
		}
	else if(0>aLeftIconResID)
		{
		iTitleBar->SetLeftIcon(NULL);
		}
	// 塃偵昞帵偡傞傾僀僐儞傪愝掕偡傞
	if(0<aRightIconResID)
		{
		CFbsBitmap* bmp = new(ELeave) CFbsBitmap();
		CleanupStack::PushL(bmp);
		User::LeaveIfError(bmp->Load(KSkonMusicMbmFileName, aRightIconResID));
		iTitleBar->SetRightIcon(CGulIcon::NewL(bmp, NULL));
		CleanupStack::Pop();	// bmp
		}
	else if(0>aRightIconResID)
		{
		iTitleBar->SetRightIcon(NULL);
		}
	}

//////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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