📄 smbmusicapfilemgrcategoryview.cpp
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
/**
* @file SmbMusicAPFileMgrCategoryView.cpp
* @brief 儈儏乕僕僢僋僼傽僀儖娗棟傾僾儕働乕僔儑儞CategoryView僋儔僗
*/
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+-------------------------------------------
//2006/07/04 |SDNA挿旜 |怴婯嶌惉
//2006/07/11 |SDNA挿旜 |AddControlL()屇傃弌偟偺捈慜偵CleanupStack::Pop()傪偡傞傛偆偵曄峏
//2006/07/11 |SDNA挿旜 |晹昳僐儞僩儘乕儖傪AddControlL屻儊儞僶曄悢偵戙擖偡傞傛偆偵曄峏
//2006/07/11 |SDNA挿旜 |奜晹儊儌儕憓敳帪偵奺庬僟僀傾儘僌傪弌偡傛偆偵廋惓
// | | - SetListBoxDisableL()偺捛壛
// | | - ShowDialogIfErrorL()偺捛壛
// | | - DoViewActivatedImplL()偺廋惓
//2006/07/13 |SDNA挿旜 |恑捇僟僀傾儘僌昞帵(僆僽僓乕僶巜掕側偟斉)傪捛壛 (ShowProgressDialogL())
//2006/07/15 |SDNA挿旜 |儘乕僇儖價儏乕愗懼屻偵儕僗僩儃僢僋僗偺僨僼僅儖僩僼僅乕僇僗傪巜掕偱偒傞傛偆偵曄峏
// | | - DoViewActivatedImplL()傪曄峏
//2006/07/26 |SDNA挿旜 |HandleCloseEventL()廔椆屻偵僟僀傾儘僌傪徚嫀偡傞僔乕働儞僗偵曄峏
// | | - HandleCloseEventL()傪曄峏
//2006/08/04 |SDNA挿旜 |奜晹儊儌儕側偟夋柺偱偺僞僀僩儖晄壜暥帤楍傪廋惓 (DoViewActivatedImplL()) (TRK5749)
//2006/08/15 |SDNA挿旜 |MusicDB峔抸拞偵傛傞憖嶌梷惂婡擻傪捛壛
// | | - DoViewActivatedImplL(), SetArrowState()偺曄峏
//2006/08/16 |SDNA挿旜 |嬻儕僗僩偵偍偄偰寛掕僉乕墴壓帪偺張棟傪廋惓 (OfferKeyEventImplL())
//2006/09/01 |SDNA挿旜 |奜晹儊儌儕撉崬拞偵昞帵偡傞僟僀傾儘僌傪曄峏 (ShowDialogIfErrorL()) (TRK7602)
//2006/09/05 |SDNA挿旜 |MusicDB峔抸拞偺僟僀傾儘僌昞帵僞僀儈儞僌偺廋惓
// | | - ShowDialogIfErrorL(), HandleCloseEventL()偺廋惓
//2006/09/26 |SDNA挿旜 |傾僾儕偑嵟慜柺偺応崌偺傒丆寈崘僟僀傾儘僌傪昞帵偡傞傛偆偵廋惓 (DoViewActivatedImplL()) (TRK6558)
//2006/09/29 |SDNA挿旜 |僼僅儖僟慖戰夋柺(SD僇乕僪)偺儕僗僩昞帵傪廋惓 (DoViewActivatedImplL()) (TRK10637)
//2006/10/01 |SDNA挿旜 |奜晹儊儌儕僄儔乕捠抦僟僀傾儘僌偑揔愗偵昞帵偝傟側偄栤戣傪廋惓 (TRK10589)
// | | - 敿婸搙昞帵儕僗僩儃僢僋僗昞帵傪偡傞傛偆偵廋惓 (ShowDialogIfErrorL(), DoConstructContainerL()))
// | | - 敿婸搙昞帵儕僗僩儃僢僋僗昞帵偺廋惓 (SetListBoxDisableL(), SetArrowState())
// | | - 奜晹儊儌儕僄儔乕捠抦僟僀傾儘僌昞帵屻丆DB峔抸拞僟僀傾儘僌傪昞帵偟側偄傛偆偵廋惓
//2006/10/06 |SDNA挿旜 |僼僅儖僟慖戰夋柺偺敿婸搙昞帵傪偡傞嵺偵丆堦弖婸搙昞帵偑尰傟傞偪傜偮偒傪廋惓
// | | - DoViewActivatedImplL(), ReplaceListBoxItemsL()傪廋惓
//2006/10/16 |SDNA挿旜 |嵍塃僉乕偺僉乕儕僺乕僩傪柍岠偵偡傞傛偆廋惓
// | | - DoConstructContainerL()傪廋惓
//2006/10/16 |SDNA挿旜 |儘僌僒乕僶傪僐儞僗僩儔僋僞偐傜庢摼偟側偄傛偆偵曄峏
//2006/10/17 |SDNA挿旜 |恑捇僟僀傾儘僌僋儘乕僘帪偵傾僯儊乕僔儑儞傪掆巭偡傞傛偆偵廋惓 (TRK10140傛傝)
// | | - HandleCloseEventL()傪HandleCloseEventImplL()偵曄峏
//--------------+-----------+-------------------------------------------
//PTX824
//2007/03/13 |SEMC崃绮 |巕婲摦帪偺幚憰捛壛
//2007/03/16 |SEMC崃绮 |僼僅儖僟慖戰夋柺乮杮懱奼挘儊儌儕乯偺幚憰捛壛
//2007/03/19 |SEMC崃绮 |儕僜乕僗嫞崌拞偺惂尷夋柺幚憰
//2007/04/03 |SEMC崃绮 |杮懱奼挘嶍彍懳墳
//2007/04/05 |SEMC崃绮 |儊儌儕儌乕僪拞偺惂尷夋柺幚憰
//--------------+-----------+-------------------------------------------
//PTX825
//2007/06/29 |SDNA彑枔 | ATRAC懳墳
#include <FjAfEnv.h>
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include <SmbMusicAPFileMgr.rsg>
#include "SmbMusicAPFileMgrDocument.h"
#include "SmbMusicAPFileMgrCategoryView.h"
#include "SmbMusicAPFileMgrCategoryCmd.h"
#include "SmbMusicAPFileMgrActionController.h"
#include "SmbMusicAPFileMgrCommonDef.h"
#include "SmbMusicAPFileMgr.hrh"
#include <SmbMusicAPFileMgrExternalInterface.h>
//ADD-START PTX824
#include <SkonSubMenu.h>
//ADD-END PTX824
USING_NAMESPACE_SEMCJ
ANONYMOUS_NAMESPACE_BEGIN
/**
* 儊儌儕堦棗夋柺偵偍偗傞ListBox偺Index巜掕
*
* @note ListBox偵偮偄偰Resource偱巜掕偝傟偰偄傞弴斣偲摨堦偱偁傞偙偲丅
*/
enum TMemoryCategoryIndex
{
EMemoryCategoryDataBox = 0, ///< 僨乕僞BOX
// EMemoryCategoryMassStorage, ///< 杮懱奼挘儊儌儕
EMemoryCategoryExtMemory, ///< 奜晹儊儌儕
EMemoryCategoryNumberOfItems
};
/**
* 僼僅儖僟慖戰夋柺(奜晹M.S.)偵偍偗傞ListBox偺Index巜掕
*
* @note ListBox偵偮偄偰Resource偱巜掕偝傟偰偄傞弴斣偲摨堦偱偁傞偙偲丅
*/
enum TMsCategoryIndex
{
EMsCategoryMsAudio = 0, ///< M.S.僆乕僨傿僆
EMsCategoryMp3, ///< MP3懠
EMsCategoryNumberOfItems
};
/**
* 僼僅儖僟慖戰夋柺(SD僇乕僪)偵偍偗傞ListBox偺Index巜掕
*
* @note ListBox偵偮偄偰Resource偱巜掕偝傟偰偄傞弴斣偲摨堦偱偁傞偙偲丅
*/
enum TSdCategoryIndex
{
ESdCategoryMp3 = 0, ///< 捠忢僐儞僥儞僣
ESdCategoryImotion, ///< 堏峴壜擻僐儞僥儞僣
//ADD-START PTX824
ESdCategoryWMA, ///< WMA乮壖乯
#ifndef __SMBMUSICAP_DESABLE_ATRAC__
ESdCategoryMSA, ///< AAD
#endif ///< __TARGET_ATRAC__
//ADD-END PTX824
ESdCategoryNumberOfItems
};
//ADD-START PTX824
/**
* 僼僅儖僟慖戰夋柺(杮懱奼挘)偵偍偗傞ListBox偺Index巜掕
*
* @note ListBox偵偮偄偰Resource偱巜掕偝傟偰偄傞弴斣偲摨堦偱偁傞偙偲丅
*/
enum TMassCategoryIndex
{
EMassCategoryMp3 = 0, ///< MP3懠
EMassCategoryWMA, ///< WMA乮壖乯
EMassCategoryMSA, ///< AAD
EMassCategoryNumberOfItems
};
//ADD-START PTX824
ANONYMOUS_NAMESPACE_END
///////////////////////////////////////////////////////////////////////////////
/**
* @brief 僇僥僑儕堦棗夋柺峔抸梡僷儔儊乕僞
*/
const TAfViewParam KMusicAPFileMgrCategoryViewParam =
{
ESmbMusicAPFileMgrCategoryView, ///< 價儏乕ID
0, ///< 僞僀僩儖
0 ///< 僉乕僈僀僟儞僗
};
/**
* @param[in] aAppUi 傾僾儕働乕僔儑儞UI
*/
CSmbMusicAPFileMgrCategoryView::CSmbMusicAPFileMgrCategoryView(CSmbMusicAPFileMgrAppUi& aAppUi)
:CSmbMusicAPFileMgrViewBase(KMusicAPFileMgrCategoryViewParam, aAppUi), iArrowState(ESkonKeyGuidanceArrowRight)
{
//
}
/**
* 價儏乕僐儅儞僪偺惗惉偍傛傃搊榐傪峴偆丏
*/
void CSmbMusicAPFileMgrCategoryView::ConstructL(void)
{
// 儈儏乕僕僢僋僼傽僀儖娗棟傾僋僔儑儞僐儞僩儘乕儔偺庢摼
CSmbMusicAPFileMgrActionController& controller = static_cast<CSmbMusicAPFileMgrDocument*>(iAppUi.Document())->Controller();
// 價儏乕僐儅儞僪偺惗惉丒搊榐
CSmbMusicAPFileMgrCmdBase* cmd = new(ELeave) CSmbMusicAPFileMgrCategoryCmd(iAppUi, *this, controller);
RegistCmd(cmd);
}
/**
* 強桳偡傞僆僽僕僃僋僩傪嶍彍偡傞丏
* @note AddControlL() 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView() 偱嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
*/
CSmbMusicAPFileMgrCategoryView::~CSmbMusicAPFileMgrCategoryView()
{
// 強桳偡傞僆僽僕僃僋僩偼偙偙偱嶍彍偡傞丏
// 偨偩偟 AddControlL 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView 偱
// 嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
}
//ADD-START PTX824
/**
* @param[in] aResourceId 僒僽儊僯儏乕偺儕僜乕僗ID
*/
void CSmbMusicAPFileMgrCategoryView::ShowSubMenuL(TInt aResourceId)
{
// 僒僽儊僯儏乕惗惉
CSkonSubMenu* subMenu = new(ELeave) CSkonSubMenu();
CleanupStack::PushL(subMenu);
// 儕僜乕僗儕乕僟惗惉
TResourceReader reader;
// 儕僜乕僗偺撉傒崬傒
CEikonEnv::Static()->CreateResourceReaderLC(reader, aResourceId);
subMenu->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy(); // reader
CleanupStack::Pop(subMenu); // subMenu->ShowLD()撪偱subMenu偑delete偝傟傞偨傔
// 僒僽儊僯儏乕傪昞帵(儌乕僟儖)
TInt command = subMenu->ShowLD(); // command: 僐儅儞僪ID
// 僒僽儊僯儏乕偺傾僀僥儉偑慖戰偝傟偨応崌偼丆價儏乕僐儅儞僪偵僐儅儞僪ID傪徚旓偝偣傞丏
if (command != CSkonSubMenu::EClearKey) // 僋儕傾僉乕墴壓埲奜偺応崌
{
iCmd->HandleViewCommandL(command);
}
// 僋儕傾僉乕墴壓帪偺応崌偼丆壗傕張棟偟側偄丏
}
//ADD-END PTX824
/**
* 儕僗僩儃僢僋僗(CSmbMusicAPFileMgrCategoryView::iListBox)偺慡傾僀僥儉傪敿婸搙昞帵偵偡傞偙偲偑偱偒傞丏
*
* @param[in] aDisable 敿婸搙昞帵僼儔僌 (ETrue: 敿婸搙昞帵 / EFalse: 婸搙昞帵)
*/
void CSmbMusicAPFileMgrCategoryView::SetListBoxDisableL(TBool aDisable)
{
iListBox->SetDisableChangeNow(ETrue);
for (TUint i = 0; i < iListBox->NumberOfItems(); i++)
{
iListBox->SetItemDisableL(i, aDisable);
}
// 僉乕僈僀僟儞僗偺寛掕僉乕傪昞帵(儕僗僩偑婸搙昞帵)/旕昞帵(儕僗僩偑敿婸搙昞帵)偵偡傞
iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSelectKey, (aDisable) ? EFalse : ETrue);
// 僉乕僈僀僟儞僗偺愝掕
SetArrowState();
iListBox->HandleItemRemovalAndAdditionL(0, EDrawNow);
iListBox->SetDisableChangeNow(EFalse);
iListBox->DrawNow();
}
/**
* 儊儌儕偺儅僂儞僩忬懺 (CSmbExtMemWatcher::StateL(TType).iMountState)偵懳墳偟偨僟僀傾儘僌傪昞帵偡傞丏
* - 儅僂儞僩姰椆懸偪(KErrNotReady): 僨乕僞撉崬拞恑捇僟僀傾儘僌 (MP-03-P014)
* - 旕懳墳(KErrUnKnown): 旕懳墳奜晹儊儌儕寈崘僟僀傾儘僌 (MS-01-P026/SD-01-P026)
* - 堎忢忬懺(KErrGeneral): 儊儌儕僄儔乕寈崘僟僀傾儘僌 (MS-01-P027/SD-01-P027)
* - 枹僼僅乕儅僢僩(KErrCorrupt): 梫僼僅乕儅僢僩寈崘僟僀傾儘僌 (MS-01-P028/SD-01-P028)
*/
void CSmbMusicAPFileMgrCategoryView::ShowDialogIfErrorL(void)
{
// 慡偰偺僟僀傾儘僌傪暵偠傞
//MOD-START PTX824
// CloseAndDeleteDialog();
CloseDialog();
//MOD-END PTX824
// 儊儌儕庬暿(MS/SD)傪 memoryType 偵奿擺偡傞
CSmbExtMemWatcher::TType memoryType = CSmbExtMemWatcher::ENone;
switch (iViewType)
{
case ETypeMsCategory: // 僼僅儖僟慖戰夋柺(儊儌儕乕僗僥傿僢僋)
memoryType = CSmbExtMemWatcher::EMs;
break;
case ETypeSdCategory: // 僼僅儖僟慖戰夋柺(SD僇乕僪)
memoryType = CSmbExtMemWatcher::ESd;
break;
default:
return;
}
// 儊儌儕忬懺傪庢摼偟丆偦偺忬懺偵懳墳偟偨僟僀傾儘僌儃僢僋僗傪昞帵偡傞
TInt mountState = iAppUi.ExtMemWatcher().StateL(memoryType).iMountState;
TInt resourceId = 0;
switch (mountState)
{
case KErrNone: // 惓忢巊梡壜擻(Mount姰椆)
switch (iAppUi.ExtMemWatcher().StateL(memoryType).iMediaInfo)
{
case CSmbExtMemWatcher::EReadOnly: // ReadOnlyDevice
resourceId = (memoryType == CSmbExtMemWatcher::EMs) ? R_WARNING_DIALOG_MS01P008 : R_WARNING_DIALOG_SD01P008;
ShowWarningDialogL(resourceId);
break;
default:
break;
}
break;
case KErrNotReady: // Mount姰椆懸偪
//CQ-TRK8273 ADD-START PTX824
// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞
iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);
iListBox->KeyGuidance()->Apply();
//CQ-TRK8273 ADD-END PTX824
//TRK7602 9/1 start
// ShowProgressDialogL(R_PROGRESS_DIALOG_MP03P014);
resourceId = (memoryType == CSmbExtMemWatcher::EMs) ? R_PROGRESS_DIALOG_MP03P047 : R_PROGRESS_DIALOG_MP03P046;
ShowProgressDialogL(resourceId);
UpdateProgress(50);
//TRK7602 9/1 end
break;
case KErrUnknown: // 旕懳墳
//CQ-TRK8273 ADD-START PTX824
// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞
iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);
iListBox->KeyGuidance()->Apply();
//CQ-TRK8273 ADD-END PTX824
resourceId = (memoryType == CSmbExtMemWatcher::EMs) ? R_WARNING_DIALOG_MS01P026 : R_WARNING_DIALOG_SD01P026;
SetListBoxDisableL(ETrue);
ShowWarningDialogL(resourceId);
break;
case KErrCorrupt: // 枹僼僅乕儅僢僩
//CQ-TRK8273 ADD-START PTX824
// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞
iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);
iListBox->KeyGuidance()->Apply();
//CQ-TRK8273 ADD-END PTX824
resourceId = (memoryType == CSmbExtMemWatcher::EMs) ? R_WARNING_DIALOG_MS01P028 : R_WARNING_DIALOG_SD01P028;
SetListBoxDisableL(ETrue);
ShowWarningDialogL(resourceId);
break;
case KErrGeneral: // 堎忢忬懺
//CQ-TRK8273 ADD-START PTX824
// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞
iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);
iListBox->KeyGuidance()->Apply();
//CQ-TRK8273 ADD-END PTX824
resourceId = (memoryType == CSmbExtMemWatcher::EMs) ? R_WARNING_DIALOG_MS01P027 : R_WARNING_DIALOG_SD01P027;
SetListBoxDisableL(ETrue);
ShowWarningDialogL(resourceId);
break;
case KErrServerBusy: // 娗棟僥乕僽儖峏怴拞
//CQ-TRK8273 ADD-START PTX824
// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞
iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);
iListBox->KeyGuidance()->Apply();
//CQ-TRK8273 ADD-END PTX824
if (memoryType == CSmbExtMemWatcher::ESd)
{
SetListBoxDisableL(ETrue);
ShowWarningDialogL(R_WARNING_DIALOG_SD01P161);
}
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -