smbmusicapmainplayerfilterlistviewplsong.cpp
来自「symbian」· C++ 代码 · 共 854 行 · 第 1/3 页
CPP
854 行
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterListViewPLSong.cpp
//
// Description:
// CSmbMusicAPMainPlayerFilterListViewPLSong class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16 |SDNA嶳壀 | 怴婯嶌惉
//2006/10/13 |SDNA壀嶳 | TRK11418懳墳
//2007/06/27 |SEMCJ暯壀 | 僒僽僗僋儕僾僔儑儞偺僌儗乕傾僂僩懳墳
//2007/07/12 |SEMCJ暯壀 | 恑捇傪嵟屻傑偱恑傔傞張棟傪捛壛
//2007/07/24 |SEMCJ暯壀 | D_82400007625懳墳
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSong.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerFilterProcessRemoveItems.h"
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
SEMCJ_NAMESPACE_BEGIN
/**
* 僾儗僀儕僗僩嬋堦棗儕僗僩僋儔僗
* KSmbMusicAPMainPlayerPLSongListViewUid
*/
//////////////////////////////////////////////////////////////////////////////////////
// 僋儔僗偺惗惉偲攋婞
//////////////////////////////////////////////////////////////////////////////////////
/**
* 僾儗僀儕僗僩嬋堦棗僋儔僗偺惗惉
*
* @param aView [in] 僼傿儖僞價儏乕
* @return 嬋堦棗儕僗僩僋儔僗
*/
CSmbMusicAPMainPlayerFilterListViewPLSong* CSmbMusicAPMainPlayerFilterListViewPLSong::NewL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
{
// 僀儞僗僞儞僗惗惉
CSmbMusicAPMainPlayerFilterListViewPLSong* self = new(ELeave) CSmbMusicAPMainPlayerFilterListViewPLSong();
// 僋儕乕儞傾僢僾僗僞僢僋妋曐
CleanupStack::PushL(self);
// 僙僇儞僪僐儞僗僩儔僋僞
self->ConstructL(aViewUid, aView);
// 僋儕乕儞傾僢僾僗僞僢僋奐曻
CleanupStack::Pop();// self
return self;
}
/**
* 僐儞僗僩儔僋僞
*
* @param aView [in] 僼傿儖僞價儏乕
* @return 嬋堦棗儕僗僩僋儔僗
*/
CSmbMusicAPMainPlayerFilterListViewPLSong::CSmbMusicAPMainPlayerFilterListViewPLSong()
{
}
/**
* 僙僇儞僪僐儞僗僩儔僋僞
* @param aView [in] FilterView
* @param aSyncEngine [in] 摨婜僄儞僕儞
*
*/
void CSmbMusicAPMainPlayerFilterListViewPLSong::ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
{
// 僞僀僩儖僶乕丄儕僗僩儃僢僋僗傪惗惉偡傞
CSmbMusicAPMainPlayerFilterListViewSong::ConstructL(aViewUid, aView);
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerFilterListViewPLSong::~CSmbMusicAPMainPlayerFilterListViewPLSong()
{
}
//////////////////////////////////////////////////////////////////////////////////////
// 弶婜愝掕
//////////////////////////////////////////////////////////////////////////////////////
void CSmbMusicAPMainPlayerFilterListViewPLSong::SetupModelL()
{
}
void CSmbMusicAPMainPlayerFilterListViewPLSong::SetupControlL()
{
// 僞僀僩儖傪撉傒崬傫偱愝掕偡傞
SetTitleTextL(R_OT_MUSIC_MAIN_FLT_SONGLIST_TITLE);
}
////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
* 儐乕僓僐儅儞僪幚峴
*
* @param aCommandId [in] 僐儅儞僪ID
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSong::HandleCommandL(TInt aCommandId)
{
// 婎杮僐儅儞僪
switch(aCommandId)
{
case EMainPlayerFilterViewKGCmdSelect: // 崁栚慖戰僐儅儞僪乮抁墴偟乯
case EMainPlayerFilterViewKGCmdPlay: // 亂嵞惗亃
{
}
break;
case ECmdFilterViewDeleteEntryOne:
case ECmdFilterViewDeleteEntryMultiple:
case ECmdFilterViewDeleteEntryAll:
case ECmdFilterViewOrderEntry:
{
ProcessCommandL(aCommandId);
}
break;
case EMainPlayerFilterViewKGCmdChildView: // 巕奒憌夋柺慗堏僐儅儞僪
{
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case EMainPlayerFilterViewKGCmdLongSelect: // 崁栚慖戰僐儅儞僪乮挿墴偟乯
break;
case EMainPlayerFilterViewKGCmdClear: // 僋儕傾乮慜夋柺乯僐儅儞僪
{
if(NULL!=ProcessObj() && ProcessObj()->InService()
&& CSmbMusicAPMainPlayerFilterProcess::EProcessTypeRemoveItems==ProcessObj()->GetProcessType())
{
return ProcessCommandL(ECmdFilterViewDeleteEntriesCancel);
}
}
break;
case EMainPlayerFilterViewKGCmdParentView: // 恊奒憌夋柺慗堏僐儅儞僪
break;
}
// 嬋堦棗傪宲彸偡傞
return CSmbMusicAPMainPlayerFilterListViewSong::HandleCommandL(aCommandId);
}
/**
* 僐儅儞僪幚峴
*
* @param aCommandId [in] 僐儅儞僪ID
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSong::ProcessCommandL(TInt aCommandId)
{
switch(aCommandId)
{
case ECmdFilterViewDeleteEntryOne:
{
//2006.10.18 TRK#11638
View()->StartProcessesWithHoldApp();
//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
CreateSelectedItemsL();
//慖戰僼儔僌傪愝掕偡傞
SetSelectedItemAllFlag(EFalse);
//儕僗僩僴儞僪儖傪愝掕偡傞
SetSelectedItemListHandle(ListHandle());
//慖戰崁栚傪捛壛偡傞
AppendSelectedItem(CurrentItemIndex());
//侾審嶍彍傪妋擣偡傞僟僀傾儘僌傪昞帵偡傞
HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETEPLSONG_SELECT, NULL, NULL);
}
break;
case ECmdFilterViewDeleteEntryAll:
{
//2006.10.18 TRK#11638
View()->StartProcessesWithHoldApp();
//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
CreateSelectedItemsL();
//慖戰僼儔僌傪愝掕偡傞
SetSelectedItemAllFlag(ETrue);
//儕僗僩僴儞僪儖傪愝掕偡傞
SetSelectedItemListHandle(ListHandle());
//慡審嶍彍傪妋擣偡傞僟僀傾儘僌傪昞帵偡傞
HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_DELETEPLSONG_SELECT, NULL, NULL);
}
break;
case ECmdFilterViewDeleteEntryMultiple:
{
// 傾僀僥儉嫮惂嵞庢摼僼儔僌傪俷俶偵偟偰偍偔
ListItemsChanged(EReloadItemsOnly);
// 婲摦僷儔儊乕僞嶌惉
TSmbMusicAPMainPlayerPrmRegister param;
param.iKind = ESmbMusicAPMainPlayerDeleteEntryKind;
param.iType = ESmbMusicAPMainPlayerSelectionMultiple;
param.iListHandle = ListHandle();
param.vparam.SetReturnView(*View());
TPckgBuf<TSmbMusicAPMainPlayerPrmRegister> parambuf(param);
// 僾儗僀儕僗僩慖戰傊愗懼偊傞丅
View()->ChangeViewL(ESmbMusicAPMainPlayerPLSelectViewId, KSmbMusicAPMainPlayerRegisterMsgUid, parambuf);
}
break;
case ECmdFilterViewOrderEntry:
{
// 傾僀僥儉嫮惂嵞庢摼僼儔僌傪俷俶偵偟偰偍偔
ListItemsChanged(EAllReload);
// 婲摦僷儔儊乕僞嶌惉
TSmbMusicAPMainPlayerPrmRegister param;
param.iKind = ESmbMusicAPMainPlayerOrderEntryKind;
param.iType = ESmbMusicAPMainPlayerSelectionMultiple;
param.iListHandle = ListHandle();
param.vparam.SetReturnView(*View());
TPckgBuf<TSmbMusicAPMainPlayerPrmRegister> parambuf(param);
// 僾儗僀儕僗僩慖戰傊愗懼偊傞丅
View()->ChangeViewL(ESmbMusicAPMainPlayerPLSelectViewId, KSmbMusicAPMainPlayerRegisterMsgUid, parambuf);
}
break;
case ECmdFilterViewDeleteEntries: // 僾儗僀儕僗僩僄儞僩儕乕嶍彍幚峴
{
//2006.10.18 TRK#11638
View()->StartProcessesWithHoldApp();
TSmbMusicAPMainPlayerFilterListItems selectedItems;
SelectedItems(selectedItems);
ProcessRemoveItems(ECmdFilterViewDeleteEntries, selectedItems.iAllItem, selectedItems.iIndexArray);
// 2006.09.21 僾儘僌儗僗僟僀傾儘僌捛壛廋惓
ResetProgress();
// 僾儘僌儗僗僶乕傪昞帵偡傞
// CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
// TRK#11387 2006/10/13
if(EFalse==selectedItems.iAllItem)
{
CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_SINGULAR);
}
else
{
CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(EShowProgressModelessDialogEx, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
}
// 僀儀儞僩梷惂傪夝彍偡傞
View()->SetEventDisabled(EFalse);
}
break;
case ECmdFilterViewDeleteEntriesCancel:
{
//DEL-S 2006/10/10 TRK#10814
// // 僀儀儞僩傪梷惂偡傞
// View()->SetEventDisabled(ETrue);
//DEL-E 2006/10/10 TRK#10814
CSmbMusicAPMainPlayerFilterListView::HandleDialogCommandL(ECloseModelessDialog, R_DL_MUSIC_MAIN_FLT_PROGRESS_MP04P001_PLURAL);
// CancelProcess(CSmbMusicAPMainPlayerFilterProcess::EProcessTypeRemoveItems); // 幚峴拞偺旕摨婜僾儘僙僗傪拞抐偡傞
if(NULL!=ProcessObj() && CSmbMusicAPMainPlayerFilterProcess::EProcessTypeRemoveItems==ProcessObj()->GetProcessType())
{
CSmbMusicAPMainPlayerFilterProcessRemoveItems* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessRemoveItems*>(ProcessObj());
processObj->CancelRemoveItems();
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
}
// 嬋堦棗傪宲彸偡傞
return CSmbMusicAPMainPlayerFilterListViewSong::ProcessCommandL(aCommandId);
}
//////////////////////////////////////////////////////////////////////////////////////
// 旕摨婜僾儘僙僗
//////////////////////////////////////////////////////////////////////////////////////
// from MSmbMusicAPMainPlayerFilterProcessObserver
void CSmbMusicAPMainPlayerFilterListViewPLSong::ProcessComplete(TInt aResult, CSmbMusicAPMainPlayerFilterProcess& aProcess)
{
if( NULL!=ProcessObj() && &aProcess==ProcessObj() )
{
// 幚峴拞偺僐儅儞僪傪僠僃僢僋偡傞
switch(aProcess.GetRequestOwnerInfo())
{
case ECmdFilterViewDeleteEntries: // 僾儗僀儕僗僩僄儞僩儕乕嶍彍僐儅儞僪
{
CSmbMusicAPMainPlayerFilterProcessRemoveItems* processObj = static_cast<CSmbMusicAPMainPlayerFilterProcessRemoveItems*>(&aProcess);
// CSmbMusicAPMainPlayerFilterProcessRemoveItems* processObj = STATIC_CAST(CSmbMusicAPMainPlayerFilterProcessRemoveItems*,&aProcess);
//嶍彍梫媮僇僂儞僩
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?