?? smbmusicapfilemgritemselectview.cpp
字號:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*--------------------------------------------------------------------*/
/**
* @file SmbMusicAPFileMgrItemSelectView.cpp
* @brief 儈儏乕僕僢僋僼傽僀儖娗棟傾僾儕働乕僔儑儞傾僀僥儉慖戰View僋儔僗
*/
/*--------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+-------------------------------------------
//2006/07/04 |SDNA挿旜 |怴婯嶌惉
//2006/07/06 |SDNA挿旜 |SetDisplayPatternL()偺屇傃弌偟尦傪DoViewActivatedImplL()偵曄峏
//2006/07/06 |SDNA挿旜 |儕僗僩儃僢僋僗偵懳偡傞愝掕偺捛壛
//2006/07/06 |SDNA挿旜 |僋儕傾僉乕墴壓帪偺張棟傪捛壛 (OfferKeyEventImplL())
//2006/07/07 |SDNA挿旜 |AddControlL()屇傃弌偟偺捈慜偵CleanupStack::Pop()傪偡傞傛偆偵曄峏
//2006/07/09 |SDNA挿旜 |晹昳僐儞僩儘乕儖傪AddControlL屻儊儞僶曄悢偵戙擖偡傞傛偆偵曄峏
//2006/07/09 |SDNA挿旜 |婲摦僷儔儊乕僞偱搉偝傟偨儈儏乕僕僢僋傾僀僥儉(folderItem)傪CleanupStack偵愊傓傛偆偵廋惓(DoViewActivatedImplL())
//2006/07/09 |SDNA挿旜 |懠婡擻愝掕(慖戰嶍彍)僟僀傾儘僌廔椆帪偺僴儞僪儕儞僌傪捛壛 (HandleCloseEventL())
//2006/07/09 |SDNA挿旜 |寈崘僟僀傾儘僌廔椆帪偺僴儞僪儕儞僌傪捛壛 (HandleCloseEventL())
//2006/07/09 |SDNA挿旜 |僟僀傾儘僌儃僢僋僗偑暵偠偨帪偵丆儕僗僩儃僢僋僗傪嵞昤夋偡傞傛偆偵廋惓
//2006/07/10 |SDNA挿旜 |僒儉僱僀儖/儕僗僩昞帵偵娭傢傜偢丆儕僗僩儃僢僋僗儕僗僩昞帵僷僞乕儞傪愝掕偡傞傛偆偵廋惓(DoViewActivatedImplL())
//2006/07/13 |SDNA挿旜 |MSmbMusicAPFileSystemComListBoxControl::SetDisplayPatternL傪屇傃弌偡傛偆偵廋惓 (DoConstructContainerL())
//2006/07/14 |SDNA挿旜 |儘乕僇儖價儏乕愗懼埲奜偺応崌丆儕僗僩儃僢僋僗傪嵞昤夋偡傞張棟傪捛壛 (DoViewActivatedImplL())
//2006/07/18 |SDNA挿旜 |惂尷懳徾(敿婸搙昞帵)偲側傞傾僀僥儉庬暿傪愝掕偡傞偵曄峏 (DoConstructContainerL())
//2006/07/20 |SDNA挿旜 |婡擻儊僯儏乕崁栚偺敿婸搙敾掕張棟傪廋惓 (ShowSubMenuL())
//2006/07/22 |SDNA挿旜 |MSmbMusicAPFileSystemComListBoxControl偺昤夋巇條偺曄峏偵懳墳
// | | - iListBox->ApplyL()偺屇傃弌偟傪嶍彍
//2006/07/25 |SDNA挿旜 |儊儞僶曄悢iDialogResourceId偺埖偄傪廋惓 (HandleCloseEventL())
//2006/07/26 |SDNA挿旜 |HandleCloseEventL()廔椆屻偵僟僀傾儘僌傪徚嫀偡傞僔乕働儞僗偵曄峏 (HandleCloseEventL())
//2006/07/31 |SDNA挿旜 |巕婲摦傾僾儕偱廔榖僉乕墴壓偝傟偨応崌丆傾僾儕傪廔椆偡傞傛偆偵廋惓 (DoViewActivatedImplL()) (TRK5234)
//2006/08/04 |SDNA挿旜 |堷悢偺僄儔乕僠僃僢僋傪捛壛 (SetSelectedItemCountL())
//2006/08/04 |SDNA挿旜 |儕僗僩儃僢僋僗偺僒儉僱僀儖昞帵愝掕傪廋惓
// | | - DoConstructContainerL()偱愝掕偟側偄傛偆偵曄峏
// | | - iListBox->RefreshL()傪巊梡偣偢偵RefreshListBoxL()傪梡偄傞傛偆偵廋惓
//2006/08/10 |SDNA挿旜 |奜晹儊儌儕忋偺巕婲摦傾僾儕昞帵拞偵丆奜晹儊儌儕敳嫀屻偵儊儌儕側偟夋柺偵慗堏偡傞張棟傪捛壛 (TRK5992)
//2006/08/11 |SDNA挿旜 |巕婲摦傾僾儕偱廔榖僉乕墴壓偝傟偨応崌丆廔榖僉乕僀儀儞僩僴儞僪儖張棟傪幚峴偡傞傛偆偵廋惓 (DoViewActivatedImplL())
//2006/09/01 |SDNA挿旜 |僞僗僋愗懼偵傛傝僨乕僞BOX撪儕僗僩儃僢僋僗傪儕僼儗僢僔儏偡傞婡擻傪捛壛 (TRK5537)
// | | - DoViewActivatedImplL()傪廋惓
//2006/09/06 |SDNA挿旜 |儕僗僩儃僢僋僗昞帵僗僞僀儖傪愝掕偡傞柦椷暥傪曄峏 (DoViewActivatedImplL())
//2006/09/20 |SDNA挿旜 |乽嵞惗乿僉乕偺昞帵張棟傪廋惓 (DoViewActivatedImplL()) (TRK9579)
//2006/09/20 |SDNA挿旜 |SD僶僀儞僪椞堟撪僼傽僀儖偺徻嵶忣曬昞帵忦審傪廋惓 (NotifyReadyFocusItemL()) (TRK9559)
//2006/09/25 |SDNA挿旜 |ClearSoftKeyInfoL()傪捛壛
//2006/09/26 |SDNA挿旜 |SD僶僀儞僪椞堟撪儕僗僩儃僢僋僗傪儕僼儗僢僔儏偡傞傛偆廋惓 (TRK10298)
// | | - DoViewActivatedImplL()傪廋惓
//2006/09/29 |SDNA挿旜 |傾僾儕嵟慜柺帪偺儕僗僩儃僢僋僗偺儕僼儗僢僔儏張棟傪廋惓 (DoViewActivatedImplL()) (TRK10510, TRK10504)
//2006/10/04 |SDNA挿旜 |僐乕僨傿儞僌婯栺忋偺廋惓
//2006/10/06 |SDNA挿旜 |僉乕僈僀僟儞僗偺偪傜偮偒傪彮側偔偡傞傛偆偵廋惓
// | | - 巊梡偟偰偄側偄僉乕僈僀僟儞僗傪弶婜壔偡傞張棟傪捛壛 (DoConstructContainerL())
// | | - ClearSoftKeyInfo()傪廋惓
//2006/10/12 |SDNA挿旜 |儕僗僩儃僢僋僗偺昞帵傪堦帪掆巭偡傞偙偲偱張棟懍搙偺岦忋傪恾傞
// | | - DoViewActivatedImplL()傪廋惓
//2006/10/16 |SDNA挿旜 |儘僌僒乕僶傪僐儞僗僩儔僋僞偐傜庢摼偟側偄傛偆偵曄峏
//2006/10/17 |SDNA挿旜 |恑捇僟僀傾儘僌僋儘乕僘帪偵傾僯儊乕僔儑儞傪掆巭偡傞傛偆偵廋惓 (TRK10140傛傝)
// | | - HandleCloseEventL()傪HandleCloseEventImplL()偵曄峏
//2006/10/17 |SDNA挿旜 |HasTaskChanged傪NeedsToRefreshListBox偵柤徧傪曄峏 (DoViewActivatedImplL())
#include <SkonSubMenu.h>
#include <SmbMusicAPFileMgrExternalInterface.h>
#include <SmbMusicAPSinglePlayerExternalInterface.h>
#include <SmbMusicAPSongInfoExternalInterface.h>
#include <SmbAfWordingFormatter.h>
#include <SmbAfWording.rsg>
#include "SmbMusicAPFileMgrDocument.h"
#include "SmbMusicAPFileMgrItemSelectView.h"
#include "SmbMusicAPFileMgrItemSelectCmd.h"
#include "SmbMusicAPFileMgrActionController.h"
#include "SmbMusicAPFileMgrCommonDef.h"
#include "SmbMusicAPFileMgr.hrh"
#include <SmbMusicAPFileMgr.rsg>
USING_NAMESPACE_SEMCJ
///////////////////////////////////////////////////////////////////////////////
/**
* @brief 傾僀僥儉慖戰夋柺峔抸梡僷儔儊乕僞
*/
const TAfViewParam KMusicAPFileMgrItemSelectViewParam =
{
ESmbMusicAPFileMgrItemSelectView, ///< 價儏乕ID
0, ///< 僞僀僩儖
0 ///< 僉乕僈僀僟儞僗
};
/**
* @brief SmbAfWordingFormatter::FormatLC()梡僼僅乕儅僢僩
*/
_LIT(KFormat, "%d");
/**
* @param[in] aAppUi 傾僾儕働乕僔儑儞UI
*/
CSmbMusicAPFileMgrItemSelectView::CSmbMusicAPFileMgrItemSelectView(CSmbMusicAPFileMgrAppUi& aAppUi)
:CSmbMusicAPFileMgrListView(KMusicAPFileMgrItemSelectViewParam, aAppUi)
{
//
}
/**
* 價儏乕僐儅儞僪偺惗惉偍傛傃搊榐傪峴偆丏
*/
void CSmbMusicAPFileMgrItemSelectView::ConstructL(void)
{
// 儈儏乕僕僢僋僼傽僀儖娗棟傾僋僔儑儞僐儞僩儘乕儔偺庢摼
CSmbMusicAPFileMgrActionController& controller = static_cast<CSmbMusicAPFileMgrDocument*>(iAppUi.Document())->Controller();
// 價儏乕僐儅儞僪偺惗惉丒搊榐
CSmbMusicAPFileMgrCmdBase* cmd = new(ELeave) CSmbMusicAPFileMgrItemSelectCmd(iAppUi, *this, controller);
RegistCmd(cmd);
}
/**
* 強桳偡傞僆僽僕僃僋僩傪嶍彍偡傞丏
* @note AddControlL() 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView() 偱嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
*/
CSmbMusicAPFileMgrItemSelectView::~CSmbMusicAPFileMgrItemSelectView()
{
// 強桳偡傞僆僽僕僃僋僩偼偙偙偱嶍彍偡傞丏
// 偨偩偟 AddControlL 偱搊榐偟偨僐儞僩儘乕儖偼 CAfView::~CAfView 偱
// 嶍彍偝傟傞偨傔丆偙偙偱嶍彍偟偰偼側傜側偄丏
}
/**
* @param[in] aResourceId 僒僽儊僯儏乕偺儕僜乕僗ID
*/
void CSmbMusicAPFileMgrItemSelectView::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偝傟傞偨傔
// 敿婸搙昞帵愝掕傪峴偆
CSmbMusicAPFileMgrItemSelectCmd* cmd = static_cast<CSmbMusicAPFileMgrItemSelectCmd*>(iCmd);
CSmbMusicAPFileSystemComMusicItem* musicItem = cmd->ListBoxModel().GetCurrentItemL();
CleanupStack::PushL(musicItem);
//TRK9559 9/20 start
// if (!(cmd->IsUimConformityFile(musicItem))) // UIM幚峴惂尷拞僼傽僀儖偺応崌
TBool showSongInfo = EFalse;
if (musicItem != NULL && musicItem->ItemType() == ESmbMusicMWLibItemTypeSong) // 僼傽僀儖偺応崌
{
if (ViewType() != ETypeDeleteSdImotionFileSelections) // SD僶僀儞僪椞堟埲奜偺応崌
{
if (cmd->IsUimConformityFile(musicItem)) // UIM揔崌僼傽僀儖偺応崌
{
showSongInfo = ETrue; // 乽徻嵶忣曬乿僉乕傪昞帵偡傞
}
}
else // SD僶僀儞僪椞堟偺応崌
{
showSongInfo = ETrue; // 乽徻嵶忣曬乿僉乕傪昞帵偡傞
}
}
// 乽徻嵶忣曬昞帵乿偺敿婸搙昞帵敾掕傪峴偆
if (!showSongInfo)
//TRK9559 9/20 end
{
CSkonSubMenuItemArray* menuArray = subMenu->MenuItemArrayL();
TInt index = subMenu->IndexByCommand(menuArray, ECmdShowDetailInfo);
subMenu->SetItemDisableL(menuArray, index, ETrue);
}
CleanupStack::PopAndDestroy(musicItem);
// 僒僽儊僯儏乕傪昞帵(儌乕僟儖)
TInt command = subMenu->ShowLD(); // command: 僐儅儞僪ID
// 僒僽儊僯儏乕偺傾僀僥儉偑慖戰偝傟偨応崌偼丆價儏乕僐儅儞僪偵僐儅儞僪ID傪徚旓偝偣傞丏
if (command != CSkonSubMenu::EClearKey) // 僋儕傾僉乕墴壓埲奜偺応崌
{
iCmd->HandleViewCommandL(command);
}
// 僋儕傾僉乕墴壓帪偺応崌偼丆壗傕張棟偟側偄丏
}
/**
* @param[in] aCount 慖戰嵪傒傾僀僥儉審悢
*/
void CSmbMusicAPFileMgrItemSelectView::SetSelectedItemCountL(TInt aCount)
{
// aCount偑巇條斖埻奜偺抣偺応崌丆巊梡斖埻撪偵娵傔崬傓
if (aCount < 0)
{
aCount = 0;
}
if (aCount > KSmbMusicAPFileMgrMaxNumOfSeletectedItems)
{
aCount = KSmbMusicAPFileMgrMaxNumOfSeletectedItems;
}
// 僞僀僩儖僶乕偺晅壛暥帤楍偵乽慖戰嵪審悢乿傪昞帵偡傞
HBufC* buf = SmbAfWordingFormatter::FormatLC(KFormat, aCount);
iTitleBar->SetTextL(*buf, CSkonTitleBar::EAdditional); // 晅壛暥帤楍偲偟偰慖戰嵪審悢傪僙僢僩偡傞
CleanupStack::PopAndDestroy(buf);
iTitleBar->DrawNow();
// 慖戰嵪審悢偑1審埲忋偺応崌偼乽姰椆乿僉乕傪昞帵偟丆0審偺応崌偼昞帵偝偣側偄
KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, (aCount > 0) ? ETrue : EFalse);
//CQ-TRK12053 DEL-START PTX824
// KeyGuidance()->DrawNow();
//CQ-TRK12053 DEL-END PTX824
}
/**
* 僉乕僈僀僟儞僗乽嵞惗乿傪旕昞帵偵偡傞
*/
void CSmbMusicAPFileMgrItemSelectView::ClearSoftKeyInfo(void)
{
//TRK9579 9/20 start
// 僉乕僈僀僟儞僗偺乽嵞惗乿僉乕傪昞帵偝偣側偄 (僼傽僀儖僼僅乕僇僗帪偺傒昞帵偝偣傞偨傔)
KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRightBottom, EFalse);
KeyGuidance()->Apply();
//TRK9579 9/20 end
}
/**
* 庡偵埲壓偺張棟傪峴偆丏
* -# 僐儞僩儘乕儖傪惗惉偡傞丏
* -# 僉乕僈僀僟儞僗傪愝掕偡傞丏
*/
void CSmbMusicAPFileMgrItemSelectView::DoConstructContainerL()
{
// 僞僀僩儖僶乕惗惉
CSkonTitleBar* titleBar = new(ELeave) CSkonTitleBar;
CleanupStack::PushL(titleBar);
titleBar->SetContainerWindowL(*this);
titleBar->ConstructL();
// 價儏乕傊僐儞僩儘乕儖傪愝掕
CleanupStack::Pop(titleBar);
AddControlL(titleBar);
iTitleBar = titleBar;
// 儕僗僩儃僢僋僗惗惉
TRect clientRect = iAppUi.ClientRect(); // 僋儔僀傾儞僩椞堟(慡夋柺椞堟傛傝僗僥乕僞僗僶乕偍傛傃僉乕僈僀僟儞僗偺椞堟傪彍偄偨椞堟)偺庢摼
//MOD-START PTX824
// MSmbMusicAPFileSystemComListBoxControl* listBox
// = CreateListBoxControlL(TRect(clientRect.iTl.iX, TitleRectMaxWidth().iBr.iY,
// clientRect.iBr.iX, clientRect.iBr.iY - clientRect.iTl.iY), *this);
MSmbMusicAPFileSystemComListBoxControl* listBox
= CreateListBoxControlL(TRect(clientRect.iTl.iX, iTitleBar->Rect().iBr.iY,
clientRect.iBr.iX, clientRect.iBr.iY - clientRect.iTl.iY), *this);
//MOD-END PTX824
CleanupStack::PushL(listBox);
// 儕僗僩儃僢僋僗偺僆僽僓乕僶傪愝掕
listBox->SetObserver(this);
// 儕僗僩儃僢僋僗儌僨儖傪庢摼偟丆價儏乕僐儅儞僪偵搊榐偡傞
static_cast<CSmbMusicAPFileMgrItemSelectCmd*>(iCmd)->SetListBoxModel(listBox->ListBoxModel());
// 僼僅儖僟慗堏儌乕僪傪柍岠偵偡傞
listBox->SetChangeableFolderModeL(EFalse);
// 惂尷懳徾(敿婸搙昞帵)偲側傞傾僀僥儉庬暿傪愝掕偡傞
listBox->SetRestrictItemTypeL(ERestrictItemTypePlaylistFolder | ERestrictItemTypeBruShortCut);
// 暋悢慖戰儌乕僪傪桳岠偵偡傞
listBox->SetMultipleSelectionModeL(ETrue);
//ADD-START PTX824
TSmbMusicAPFileSystemComListPattern listPattern; // 嵟怴偺昞帵僗僞僀儖
listPattern = (GetListViewStyleL() == ESmbPGMusicAPListViewStyleThumbnail)
? ESmbMusicAPListPatternListWithThumbnail : ESmbMusicAPListPatternList;
listBox->SetDisplayPatternL(listPattern);
//ADD-START PTX824
// AddControlL(listBox->GetCoeControl(), &(listBox->KeyGuidance()))傪幚峴偡傞慜偵丆ApplyL()偡傞昁梫偑偁傞
listBox->ApplyL();
// 價儏乕傊僐儞僩儘乕儖傪愝掕
CleanupStack::Pop(listBox);
AddControlL(listBox->GetCoeControl(), &(listBox->KeyGuidance()));
iListBox = listBox;
// Listbox 偺僉乕僈僀僟儞僗偺恊偲偟偰丄View 偺僉乕僈僀僟儞僗傪巜掕偡傞
// iListBox->KeyGuidance().SetParentKeyGuidance(KeyGuidance());
SetFocusToControl(CountComponentControls() - 1);
// 僉乕僈僀僟儞僗偺僜僼僩1僉乕偵乽婡擻乿(僒僽儊僯儏乕昞帵)傪捛壛偡傞丏
HBufC* buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT021);
KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSoftKeyLeft, *buf, NULL, NULL, ECmdShowSubMenu);
CleanupStack::PopAndDestroy(buf);
// 僉乕僈僀僟儞僗偺僜僼僩2僉乕偵乽姰椆乿傪捛壛偡傞丏
buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT004);
KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSoftKeyRight, *buf, NULL, NULL, ECmdConfirmApplySelections);
CleanupStack::PopAndDestroy(buf);
// 僉乕僈僀僟儞僗偺僜僼僩4僉乕偵乽嵞惗乿傪捛壛偡傞丏
buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT024);
KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSoftKeyRightBottom, *buf, NULL, NULL, ECmdPlaySong);
CleanupStack::PopAndDestroy(buf);
// 僉乕僈僀僟儞僗偺乽姰椆乿僉乕傪昞帵偝偣側偄(僨僼僅儖僩)
KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
// 僉乕僈僀僟儞僗偺乽嵞惗乿僉乕傪昞帵偝偣側偄(僨僼僅儖僩)
KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRightBottom, EFalse);
// 偙偺View偱巊梡偟偰偄側偄僉乕僈僀僟儞僗忣曬傪弶婜壔偡傞(偪傜偮偒杊巭)
KeyGuidance()->ResetKeyInfoL(ESkonKeyGuidanceSelectKey);
}
/**
* @param[in] aViewId 屇傃弌偟尦價儏乕ID
* @param[in] aCustomMessageId 儊僢僙乕僕ID
* @param[in] aCustomMessage 儊僢僙乕僕僶僢僼傽
* @leave res 僼僅乕僇僗愝掕偵幐攕偟偨応崌
*/
void CSmbMusicAPFileMgrItemSelectView::DoViewActivatedImplL(const TVwsViewId& /*aViewId*/,
TUid aCustomMessageId,
const TDesC8& aCustomMessage)
{
TSmbMusicAPFileMgrViewType localViewType = ETypeNone; // 儘乕僇儖價儏乕愗懼帪偺價儏乕庬暿
CSmbMusicAPFileSystemComMusicItem* folderItem = NULL; // 昞帵懳徾偺僼僅儖僟傾僀僥儉
TBool refreshListBox = EFalse; // ETrue: 儕僗僩儃僢僋僗傪儕僼儗僢僔儏偡傞 / EFalse: 儕僼儗僢僔儏偟側偄
TBool needsToRefreshListBox = iAppUi.NeedsToRefreshListBox();
iAppUi.ResetNeedsToRefreshListBox();
TInt currentIndex = 0;
TInt topIndex = KErrNotFound;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -