smbmusicapmainplayerplselectview.cpp
来自「symbian」· C++ 代码 · 共 1,006 行 · 第 1/3 页
CPP
1,006 行
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerPLSelectView.cpp
//
// Description:
// 儈儏乕僕僢僋儊僀儞僾儗僀儎
// 僾儗僀儕僗僩搊榐夋柺價儏乕僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//---------------------------------------------------------------------------
//2006/06/05 |SEMCJ嶳壀 |怴婯嶌惉
//2006/08/18 |SEMCJ嶳壀 |FilterView僋儔僗refactoring偵敽偭偰戝暆偵愝寁曄峏
//2006/09/21 |SDNA彫椦 |TRK8298懳墳
//2007/08/30 |SEMCJ暯壀 |D_82400013398懳墳
//2007/09/01 |SEMCJ暯壀 |D_82400013712懳墳
//2007/09/04 |SEMCJ暯壀 |D_82400012386懳墳
//2007/09/17 |SEMCJ暯壀 |D_82400012386懳墳
//2007/09/26 |SEMCJ暯壀 |D_82400015879懳墳
#include "SmbMusicAPMainPlayerPLSelectView.h"
/*
#include <fjlacommon.h>
#include <FJWcdmaMpKeys.h>
#include <FjAfVerticalLayout.h>
#include <SkonTextLabel.h>
#include <SmbMusicAPMainPlayerExternalInterface.h>
#include "SmbMusicAPMainPlayerAppUi.h"
#include <e32debug.h>
#include <SmbMusicAPSongInfoExternalInterface.h>
#include <SmbMusicAPFileMgrExternalInterface.h>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerSettingModel.h"
#include "SmbMusicAPMainPlayerCommonDef.h"
*/
#include <SmbCommonDef.h>
#include <SmbAfCommandBase.h>
#include <SmbPGMusic.h>
#include <SmbPGMusic.hrh>
#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerFilterView.hrh"
#include "SmbMusicAPMainPlayerCommonDef.h"
#include "SmbMusicAPMainPlayerFilterListViewSongMulti.h"
#include "SmbMusicAPMainPlayerFilterListViewPlaylistSelect.h"
#include "SmbMusicAPMainPlayerFilterListViewPlaylistMulti.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSongMulti.h"
#include "SmbMusicAPMainPlayerFilterListViewPLSongOrder.h"
// Add-S PTX-824 D_82400012386懳墳 暯壀 2007.09.04
#include "SmbMusicAPMainPlayerFilterListViewPlaylist.h"
// Add-E PTX-824 D_82400012386懳墳 暯壀 2007.09.04
#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"
// Add-S PTX-824 2007.08.29 暯壀
#ifndef FJPGBASICSTATUS_H__
#include <FjpgBasicStatus.h>
#endif
// Add-E PTX-824 2007.08.29 暯壀
USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN
const TAfViewParam KSmbMusicAPMainPlayerPLSelectViewParam =
{
ESmbMusicAPMainPlayerPLSelectViewId, // iViewId
0, // iTitleResId
0 // iKeyGuidanceResId
};
////////////////////////////////////////////////////////////////////////////////
// 僾儗僀儕僗僩慖戰夋柺
////////////////////////////////////////////////////////////////////////////////
/**
* 價儏乕僋儔僗偺惗惉
*
* @param aPlayerEnv
* @param aSyncEngine
*/
// Mod-S PTX-824 D_82400013712懳墳 暯壀 2007.09.01
//CSmbMusicAPMainPlayerPLSelectView* CSmbMusicAPMainPlayerPLSelectView::NewL(MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand)
CSmbMusicAPMainPlayerPLSelectView* CSmbMusicAPMainPlayerPLSelectView::NewL(MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand, CFbsBitmap* aOffScreen, CSkonBitGc* aSkonGc)
// Mod-E PTX-824 D_82400013712懳墳 暯壀 2007.09.01
{
// 僀儞僗僞儞僗惗惉
// Mod-S PTX-824 D_82400013712懳墳 暯壀 2007.09.01
// CSmbMusicAPMainPlayerPLSelectView* self = new(ELeave) CSmbMusicAPMainPlayerPLSelectView(KSmbMusicAPMainPlayerPLSelectViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand);
CSmbMusicAPMainPlayerPLSelectView* self = new(ELeave) CSmbMusicAPMainPlayerPLSelectView(KSmbMusicAPMainPlayerPLSelectViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand, aOffScreen, aSkonGc);
// Mod-E PTX-824 D_82400013712懳墳 暯壀 2007.09.01
// 僋儕乕儞傾僢僾僗僞僢僋妋曐
CleanupStack::PushL(self);
// 僙僇儞僪僐儞僗僩儔僋僞
self->ConstructL();
// 僋儕乕儞傾僢僾僗僞僢僋奐曻
CleanupStack::Pop();//self
return self;
};
/**
* 僐儞僗僩儔僋僞.
*
* @param aViewParam
* @param aPlayerEnv
* @param aSyncEngine
*/
// Mod-S PTX-824 D_82400013712懳墳 暯壀 2007.09.01
//CSmbMusicAPMainPlayerPLSelectView::CSmbMusicAPMainPlayerPLSelectView(const TAfViewParam& aViewParam, MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand)
// : CSmbMusicAPMainPlayerFilterView(aViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand)
CSmbMusicAPMainPlayerPLSelectView::CSmbMusicAPMainPlayerPLSelectView(const TAfViewParam& aViewParam, MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine, DCM_NAMESPACE::CAfAsyncCommand& aAsyncCommand, CFbsBitmap* aOffScreen, CSkonBitGc* aSkonGc)
: CSmbMusicAPMainPlayerFilterView(aViewParam, aPlayerEnv, aSyncEngine, aAsyncCommand, aOffScreen, aSkonGc)
// Mod-E PTX-824 D_82400013712懳墳 暯壀 2007.09.01
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPLSelectView::CSmbMusicAPMainPlayerPLSelectView()");
SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 500000, ELogLevelNormal, KLogFmt);
iChangeViewSyncEventNotified = EFalse;
// iExitPreprocessing = EFalse;
//ADD-S> TRK#12258 PTX-824(TRK-575)
SetEditStatus(EEditInit);
//ADD-E< PTX-824(TRK-575)
}
/**
* 僨僗僩儔僋僞.
*/
CSmbMusicAPMainPlayerPLSelectView::~CSmbMusicAPMainPlayerPLSelectView()
{
_LIT(KLogFmt, "CSmbMusicAPMainPlayerPLSelectView::~CSmbMusicAPMainPlayerPLSelectView()");
SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 500010, ELogLevelNormal, KLogFmt);
iSelectedItems.iIndexArray = NULL;
iSelectedIndexArray.Reset();
iSelectedIndexArray.Close();
}
////////////////////////////////////////////////////////////////////////////
// 儕僗僩價儏乕娗棟
////////////////////////////////////////////////////////////////////////////
/**
* 奺FilterView屌桳偺僐儞僗僩儔僋僞
*
* @param 側偟
*/
void CSmbMusicAPMainPlayerPLSelectView::DoConstructDependenceL()
{
CSmbMusicAPMainPlayerFilterListView* listview;
// 嬋堦棗傪惗惉
listview = CSmbMusicAPMainPlayerFilterListViewSongMulti::NewL(KSmbMusicAPMainPlayerSongListViewUid, this);
CleanupStack::PushL(listview);
listview->SetDefaultThumbnail(iNoImageThumbnail);
ViewModel()->AppendListView(listview);
CleanupStack::Pop(listview);
// 僾儗僀儕僗僩堦棗傪惗惉
listview = CSmbMusicAPMainPlayerFilterListViewPlaylistSelect::NewL(KSmbMusicAPMainPlayerPLListViewUid, this);
CleanupStack::PushL(listview);
listview->SetDefaultThumbnail(iNoImageThumbnail);
ViewModel()->AppendListView(listview);
CleanupStack::Pop(listview);
// 僾儗僀儕僗僩暋悢慖戰傪惗惉
listview = CSmbMusicAPMainPlayerFilterListViewPlaylistMulti::NewL(KSmbMusicAPMainPlayerPLSelectViewUid, this);
CleanupStack::PushL(listview);
listview->SetDefaultThumbnail(iNoImageThumbnail);
ViewModel()->AppendListView(listview);
CleanupStack::Pop(listview);
// 僾儗僀儕僗僩嬋堦棗傪惗惉
listview = CSmbMusicAPMainPlayerFilterListViewPLSongMulti::NewL(KSmbMusicAPMainPlayerPLSongListViewUid, this);
CleanupStack::PushL(listview);
listview->SetDefaultThumbnail(iNoImageThumbnail);
ViewModel()->AppendListView(listview);
CleanupStack::Pop(listview);
// 僾儗僀儕僗僩嬋堦棗傪惗惉
listview = CSmbMusicAPMainPlayerFilterListViewPLSongOrder::NewL(KSmbMusicAPMainPlayerPLSongOrderViewUid, this);
CleanupStack::PushL(listview);
listview->SetDefaultThumbnail(iNoImageThumbnail);
ViewModel()->AppendListView(listview);
CleanupStack::Pop(listview);
}
/**
* 夋柺偺妶惈壔.
*
* @param aPrevViewId [in]巊梡嬛巭<BR>
* @param aCustomMessageId
* @param aCustomMessage
*/
void CSmbMusicAPMainPlayerPLSelectView::DoViewActivatedImplL(const TVwsViewId& aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage)
{
TBool loadPlaylist = EFalse;
TBool loadActive = ETrue;
//2006.10.07 ViewActivated忬懺傪愝掕偡傞
SetViewActivated(ETrue);
//ADD-S> TRK#12258 PTX-824(TRK-575)
SetEditStatus(EEditInit);
//ADD-E< PTX-824(TRK-575)
// 僾儗僀儕僗僩搊榐偺婲摦
if(KSmbMusicAPMainPlayerRegisterMsgUid==aCustomMessageId)
{
// 僇僗僞儉儊僢僙乕僕傪庢摼偡傞丏
if (aCustomMessage != (TDesC8)KNullDesC8)
{
// 僼傿儖僞夋柺丄嵞惗夋柺偐傜偺婲摦張棟
// 偙偙偱儕僗僩價儏乕傪弶婜壔偟偰昁梫側儕僗僩價儏乕傪弨旛偡傞
SetCurrentViewPointL(TPoint(0, 0));
ViewModel()->ResetFilterPathL(0);
// 慖戰崁栚傪僋儕傾偟偰偍偔
DeleteSelectedItems();
// 儊僢僙乕僕僷儔儊乕僞傪庢摼偡傞
// param->iListHandle;
// param->iIndex;
// param->iKind; //ESmbMusicAPMainPlayerRKindOne, ESmbMusicAPMainPlayerRKindSelect, ESmbMusicAPMainPlayerRKindAll
const TSmbMusicAPMainPlayerPrmRegister* param = reinterpret_cast<const TSmbMusicAPMainPlayerPrmRegister*>(aCustomMessage.Ptr());
iPLparam = *param;
SetSrcListHandle(param->iListHandle);
switch(param->iType)
{
case ESmbMusicAPMainPlayerSelectionOne:
{
SetAllItem(EFalse);
SetSrcCount(1);
//慖戰崁栚僆僽僕僃僋僩傪惗惉偡傞
CreateSelectedItemsL();
AppendSelectedItem(param->iIndex);
}
break;
case ESmbMusicAPMainPlayerSelectionMultiple:
{
SetAllItem(EFalse);
}
break;
case ESmbMusicAPMainPlayerSelectionAll:
{
SetAllItem(ETrue);
SetSrcCount(SyncModel().GetItemCount(param->iListHandle));
}
break;
}
switch(param->iKind)
{
case ESmbMusicAPMainPlayerDeletePLKind: ///< 僾儗僀儕僗僩嶍彍
{
CSmbMusicAPMainPlayerFilterListView* listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLSelectViewUid);
if(NULL!=listview)
{
// 儕僗僩僴儞僪儖傪愝掕偡傞
listview->SetListHandle(iPLparam.iListHandle);
// 僾儗僀儕僗僩堦棗夋柺傪暋悢慖戰儌乕僪偵偡傞
listview->SetCommandMode(ESelectMultipleMode);
listview->ClearSelection();
ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerPLSelectViewUid);
ChangeViewSyncEvent(ESmbMusicAPPlayerChangePLItemSelectViewEvent, iPLparam.iListHandle);
}
}
break;
case ESmbMusicAPMainPlayerRegiterEntryKind: ///< 僾儗僀儕僗僩搊榐
switch(param->iType)
{
// 僾儗僀儕僗僩侾審搊榐
case ESmbMusicAPMainPlayerSelectionOne:
// 僾儗僀儕僗僩慡審搊榐搊榐
case ESmbMusicAPMainPlayerSelectionAll:
{
CSmbMusicAPMainPlayerFilterListView* listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLListViewUid);
if(NULL!=listview)
{
//ADD-S 2006/09/08 TRK8333 kobayashi
// 慜夞昞帵帪偺儕僗僩忣曬傪僋儕傾偡傞
listview->ResetListInfo();
//ADD-E 2006/09/08 TRK8333 kobayashi
// 僾儗僀儕僗僩堦棗夋柺傪崁栚慖戰儌乕僪偵偡傞
listview->SetCommandMode(ESelectItemMode);
listview->ClearSelection();
ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerPLListViewUid);
// Mod-S PTX-824 D_82400012386懳墳 暯壀 2007.09.04
// // 偙偙偱偼夋柺慗堏偺捠抦傪偟側偄
// // CSmbMusicAPMainPlayerFilterListViewPlaylist::ProcessComplete偱儕僗僩僴儞僪儖庢摼帪偵捠抦偡傞
// 愭偵夋柺慗堏傪捠抦偡傞
ChangeViewSyncEvent(ESmbMusicAPPlayerChangePLRegistViewEvent, 0);
// Mod-E PTX-824 D_82400012386懳墳 暯壀 2007.09.04
// 偙偺働乕僗偩偗偼慗堏尦偲昞帵偡傞夋柺偑堎側傞
loadPlaylist = ETrue;
loadActive = EFalse;
}
}
break;
// 僾儗僀儕僗僩慖戰搊榐
case ESmbMusicAPMainPlayerSelectionMultiple:
{
// 僾儗僀儕僗僩堦棗夋柺傪崁栚慖戰儌乕僪偵偡傞
CSmbMusicAPMainPlayerFilterListView* listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerPLListViewUid);
if(NULL!=listview)
{
//ADD-S 2006/09/08 TRK8333 kobayashi
// 慜夞昞帵帪偺儕僗僩忣曬傪僋儕傾偡傞
listview->ResetListInfo();
//ADD-E 2006/09/08 TRK8333 kobayashi
// 僾儗僀儕僗僩堦棗夋柺傪崁栚慖戰儌乕僪偵偡傞
listview->SetCommandMode(ESelectItemMode);
listview->ClearSelection();
}
// 嬋堦棗夋柺
listview = ViewModel()->FindListViewByViewUid(KSmbMusicAPMainPlayerSongListViewUid);
if(NULL!=listview)
{
//ADD-S 2006/09/08 TRK8333 kobayashi
// 慜夞昞帵帪偺儕僗僩忣曬傪僋儕傾偡傞
listview->ResetListInfo();
//ADD-E 2006/09/08 TRK8333 kobayashi
// 儕僗僩僴儞僪儖傪愝掕偡傞
listview->SetListHandle(iPLparam.iListHandle);
// 嬋堦棗夋柺傪暋悢慖戰儌乕僪偵偡傞
listview->SetCommandMode(ESelectMultipleMode);
listview->ClearSelection();
ViewModel()->SetActiveChildViewL(KSmbMusicAPMainPlayerSongListViewUid);
ChangeViewSyncEvent(ESmbMusicAPPlayerChangePLItemSelectViewEvent, iPLparam.iListHandle);
}
}
break;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?