smbmusicapmainplayerfilterlistviewplsongorder.cpp
来自「symbian」· C++ 代码 · 共 543 行 · 第 1/2 页
CPP
543 行
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterListViewPLSongOrder.cpp
//
// Description:
// CSmbMusicAPMainPlayerFilterListViewPLSongOrder class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/16 |SDNA嶳壀 | 怴婯嶌惉
//2006/09/02 |SDNA嶳壀 | 僋儕傾僉乕張棟傪廋惓
//2007/02/01 |K3拞堜 | TRK12612懳墳 OfferKeyEventL儊僜僢僪捛壛
//2007/07/05 |SEMC暯壀 | HasParentList()傪捛壛
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerFilterView.h"
#include "SmbMusicAPMainPlayerFilterListView.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSongOrder.h"
#include "SmbMusicAPMainPlayerFilterListItem.h"
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#include "SmbMusicAPMainPlayerPLSelectView.h"
#include "SmbMusicAPMainPlayerFilterProcessCommitOrderItems.h"
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
SEMCJ_NAMESPACE_BEGIN
/**
* 僾儗僀儕僗僩嬋堦棗儕僗僩僋儔僗
* KSmbMusicAPMainPlayerPLSongOrderViewUid
*/
//////////////////////////////////////////////////////////////////////////////////////
// 僋儔僗偺惗惉偲攋婞
//////////////////////////////////////////////////////////////////////////////////////
/**
* 僾儗僀儕僗僩嬋堦棗僋儔僗偺惗惉
*
* @param aView [in] 僼傿儖僞價儏乕
* @return 嬋堦棗儕僗僩僋儔僗
*/
CSmbMusicAPMainPlayerFilterListViewPLSongOrder* CSmbMusicAPMainPlayerFilterListViewPLSongOrder::NewL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
{
// 僀儞僗僞儞僗惗惉
CSmbMusicAPMainPlayerFilterListViewPLSongOrder* self = new(ELeave) CSmbMusicAPMainPlayerFilterListViewPLSongOrder();
// 僋儕乕儞傾僢僾僗僞僢僋妋曐
CleanupStack::PushL(self);
// 僙僇儞僪僐儞僗僩儔僋僞
self->ConstructL(aViewUid, aView);
// 僋儕乕儞傾僢僾僗僞僢僋奐曻
CleanupStack::Pop();// self
return self;
}
/**
* 僐儞僗僩儔僋僞
*
* @param aView [in] 僼傿儖僞價儏乕
* @return 嬋堦棗儕僗僩僋儔僗
*/
CSmbMusicAPMainPlayerFilterListViewPLSongOrder::CSmbMusicAPMainPlayerFilterListViewPLSongOrder()
{
}
/**
* 僙僇儞僪僐儞僗僩儔僋僞
* @param aView [in] FilterView
* @param aSyncEngine [in] 摨婜僄儞僕儞
*
*/
void CSmbMusicAPMainPlayerFilterListViewPLSongOrder::ConstructL(TUid aViewUid, CSmbMusicAPMainPlayerFilterView* aView)
{
// 僞僀僩儖僶乕丄儕僗僩儃僢僋僗傪惗惉偡傞
CSmbMusicAPMainPlayerFilterListViewSong::ConstructL(aViewUid, aView);
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerFilterListViewPLSongOrder::~CSmbMusicAPMainPlayerFilterListViewPLSongOrder()
{
}
//////////////////////////////////////////////////////////////////////////////////////
// 弶婜愝掕
//////////////////////////////////////////////////////////////////////////////////////
void CSmbMusicAPMainPlayerFilterListViewPLSongOrder::SetupModelL()
{
Model()->SetCacheInfo(EPageSize, EMaxPage, EMaxSize);
}
void CSmbMusicAPMainPlayerFilterListViewPLSongOrder::SetupControlL()
{
// 僞僀僩儖傪撉傒崬傫偱愝掕偡傞
SetTitleTextL(R_SMB_AF_STR_WRD015);
}
////////////////////////////////////////////////////////////////////////////
// 僐儅儞僪幚峴
////////////////////////////////////////////////////////////////////////////
// from MSmbAfCommandBase
/**
* 儐乕僓僐儅儞僪幚峴
*
* @param aCommandId [in] 僐儅儞僪ID
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSongOrder::HandleCommandL(TInt aCommandId)
{
// 婎杮僐儅儞僪
switch(aCommandId)
{
case ECmdFilterViewOrderEntryPrepare: // 暲傋懼偊
case ECmdFilterViewOrderEntrySelect:
case ECmdFilterViewOrderEntryFocusMove:
case ECmdFilterViewOrderEntryMove:
case ECmdFilterViewOrderEntryComplete:
case ECmdFilterViewOrderEntryCancel:
return ProcessCommandL(aCommandId);
case EMainPlayerFilterViewKGCmdChildView: // 巕奒憌夋柺慗堏僐儅儞僪
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case EMainPlayerFilterViewKGCmdSelect: // 崁栚慖戰僐儅儞僪乮抁墴偟乯
break;
case EMainPlayerFilterViewKGCmdLongSelect: // 崁栚慖戰僐儅儞僪乮挿墴偟乯
break;
case EMainPlayerFilterViewKGCmdClear: // 僋儕傾乮慜夋柺乯僐儅儞僪
// 2006.09.02 TRK#8193
return ProcessCommandL(ECmdFilterViewOrderEntryCancel);
case EMainPlayerFilterViewKGCmdParentView: // 恊奒憌夋柺慗堏僐儅儞僪
break;
}
// 嬋堦棗傪宲彸偡傞
return CSmbMusicAPMainPlayerFilterListViewPLSong::HandleCommandL(aCommandId);
}
/**
* 僐儅儞僪幚峴
*
* @param aCommandId [in] 僐儅儞僪ID
*/
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerFilterListViewPLSongOrder::ProcessCommandL(TInt aCommandId)
{
CSmbMusicAPMainPlayerPLSelectView* view = static_cast<CSmbMusicAPMainPlayerPLSelectView*>(View());
// CSmbMusicAPMainPlayerPLSelectView* view = STATIC_CAST(CSmbMusicAPMainPlayerPLSelectView*, View());
switch(aCommandId)
{
case ECmdFilterViewOrderEntryPrepare: // 暲傋懼偊
{
//僾儗僀儕僗僩偺嬋弴曄峏傪奐巒偡傞
View()->SyncModel().PrepareOrderItems(ListHandle());
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case ECmdFilterViewOrderEntrySelect:
{
// 慖戰偝傟偨傾僀僥儉偺僀儞僨僢僋僗傪曐帩偟偰偍偔
iSelectIndex = ListBox()->CurrentItemIndex();
//堏摦尦偺僀儞僨僢僋僗傪曐帩偟偰偍偔
iFocusMoveIndex = iSelectIndex;
iSaveTopIndex = ListBox()->TopItemIndex();
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
// 2006.09.21 暲傋懼偊廋惓丗僼僅乕僇僗偵崌傢偣偰懳徾崁栚傪堏摦偡傞
case ECmdFilterViewOrderEntryFocusMove:
{
//僉儍僢僔儏偺暲傃傪曄峏偡傞
TInt itemIndex = ListBox()->CurrentItemIndex();
Model()->OrderItem(iFocusMoveIndex, itemIndex);
iFocusMoveIndex = itemIndex;
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case ECmdFilterViewOrderEntryMove:
{
//僉儍僢僔儏偺暲傃傪曄峏偡傞
// Model()->OrderItem(iSelectIndex, ListBox()->CurrentItemIndex());
//僾儗僀儕僗僩偺嬋弴傪曄峏偡傞
TInt itemIndex = ListBox()->CurrentItemIndex();
View()->SyncModel().OrderItems(iSelectIndex, ListBox()->CurrentItemIndex());
HandleControlStatusUpdatedL();
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case ECmdFilterViewOrderEntryComplete: // 姰椆
{
//撪梕偑曄峏偝傟偰偄傞応崌
if(EFalse!=IsItemsEdited())
{
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditProcessing);
//ADD-E< 2006.10.31 TRK#12267
//僾儗僀儕僗僩偺嬋弴曄峏傪寛掕偡傞
ProcessCommitOrderItems(ECmdFilterViewCommitOrderItems);
}
//撪梕偑曄峏偝傟偰偄側偄応崌
else
{
// 暲傋懼偊張棟拞偱偁傟偽暲傋懼偊拞巭張棟傪偡傞
View()->SyncModel().RollBackOrderItems();
view->DeleteSelectedItems();
view->HandleReturnViewL();
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditInit);
//ADD-E< 2006.10.31 TRK#12267
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
case ECmdFilterViewOrderEntryCancel: // 拞巭
{
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditPreparing);
//ADD-E< 2006.10.31 TRK#12267
//暲傋懼偊堏摦拞偺応崌
if(EFalse!=ListBox()->IsModifyingItem())
{
//僉儍僢僔儏偺暲傃傪尦偵栠偡
Model()->OrderItem(ListBox()->CurrentItemIndex(), iSelectIndex);
//儕僗僩儃僢僋僗偺TopIndex,CurrentIndex傪尦偵栠偡
ListBox()->SetTopItemIndex(iSaveTopIndex);
ListBox()->SetCurrentItemIndex(iSelectIndex);
//堏摦儌乕僪偐傜慖戰儌乕僪偵栠偡
ListBox()->SetModifyingItem(EFalse);
//僉乕僈僀僟儞僗傪娷傔偰夋柺峏怴偡傞
ListBox()->SetFocus(ETrue);
HandleControlStatusUpdatedL();
}
//撪梕偑曄峏偝傟偰偄傞応崌
else if(EFalse!=IsItemsEdited())
{
// 僉儍儞僙儖妋擣僟僀傾儘僌傪昞帵偡傞
HandleDialogCommandL(EShowSelectionModelessDialog, R_DL_MUSIC_MAIN_FLT_SELECT_CANCEL_SELECTION, NULL, NULL);
}
//撪梕偑曄峏偝傟偰偄側偄応崌
else
{
// 暲傋懼偊張棟拞偱偁傟偽暲傋懼偊拞巭張棟傪偡傞
View()->SyncModel().RollBackOrderItems();
view->DeleteSelectedItems();
view->HandleReturnViewL();
//ADD-S> 2006.10.31 TRK#12267
SetEditStatus(CSmbMusicAPMainPlayerFilterListView::EEditInit);
//ADD-E< 2006.10.31 TRK#12267
}
}
return MSmbAfCommandBase::ESmbAfCmdIdWasConsumed;
}
// 嬋堦棗傪宲彸偡傞
return CSmbMusicAPMainPlayerFilterListViewPLSong::ProcessCommandL(aCommandId);
}
/**
* 僟僀傾儘僌僋儘乕僘捠抦
*
* @param[in] aResourceId 儕僜乕僗俬俢
* @param[in] aResult 慖戰寢壥
*/
void CSmbMusicAPMainPlayerFilterListViewPLSongOrder::HandleDialogClosed(TInt aResourceId, TInt aResult)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?