diff -r 48060abbbeaf -r b3cee849fa46 perfmon/src/perfmon_settingsviewdlg.cpp --- a/perfmon/src/perfmon_settingsviewdlg.cpp Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,681 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -// INCLUDE FILES -#include "perfmon_settingsviewdlg.h" -#include "perfmon_model.h" -#include "perfmon.hrh" -#include "perfmon_std.h" -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -// ===================================== MEMBER FUNCTIONS ===================================== - -CPerfMonSettingsViewDlg* CPerfMonSettingsViewDlg::NewL(TPerfMonSettings& aSettings) - { - CPerfMonSettingsViewDlg* self = new(ELeave) CPerfMonSettingsViewDlg(aSettings); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -// -------------------------------------------------------------------------------------------- - -CPerfMonSettingsViewDlg::~CPerfMonSettingsViewDlg() - { - // restore default navi pane by popping the tab group from stack - if (iNaviContainer) - iNaviContainer->Pop(); - - if (iSettingItemArray) - { - iSettingItemArray->ResetAndDestroy(); - delete iSettingItemArray; - } - - delete iDecoratedTabGroup; - } - -// -------------------------------------------------------------------------------------------- - -CPerfMonSettingsViewDlg::CPerfMonSettingsViewDlg(TPerfMonSettings& aSettings) : iSettings(aSettings) - { - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::ConstructL() - { - // construct a menu bar - CAknDialog::ConstructL(R_PERFMON_SETTINGS_MENUBAR); - - // get pointer to status pane - CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane(); - - // set title text - CAknTitlePane* tp = static_cast( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - tp->SetTextL( _L("Settings") ); - - // create a new tab group - iNaviContainer = static_cast(sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi))); - iDecoratedTabGroup = iNaviContainer->CreateTabGroupL(this); - iTabGroup = static_cast(iDecoratedTabGroup->DecoratedControl()); - iTabGroup->SetTabFixedWidthL(KTabWidthWithTwoLongTabs); - - // add tabs - iTabGroup->AddTabL(ETabSettingsGeneral, _L("General")); - iTabGroup->AddTabL(ETabSettingsDataPopup, _L("Data popup")); - iTabGroup->AddTabL(ETabSettingsGraphs, _L("Graphs")); - iTabGroup->AddTabL(ETabSettingsLogging, _L("Logging")); - iTabGroup->SetActiveTabByIndex(ETabSettingsGeneral); - - // add new tab group to stack - iNaviContainer->PushL( *iDecoratedTabGroup ); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType) - { - switch (aEventType) - { - case EEventEnterKeyPressed: - case EEventItemDoubleClicked: - ShowSettingPageL(EFalse); - break; - default: - break; - } - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::TabChangedL(TInt /*aIndex*/) - { - iListBox->SetCurrentItemIndex(0); - - SetVisibilitiesOfSettingItemsL(); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::ProcessCommandL(TInt aCommandId) - { - CAknDialog::ProcessCommandL(aCommandId); - - switch (aCommandId) - { - case EPerfMonCmdSettingsChange: - ShowSettingPageL(ETrue); - break; - case EPerfMonCmdSettingsExit: - TryExitL(EAknCmdExit); - break; - default: - break; - } - } - -// -------------------------------------------------------------------------------------------- - -TKeyResponse CPerfMonSettingsViewDlg::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) - { - if (iTabGroup == NULL) - { - return EKeyWasNotConsumed; - } - - TInt active = iTabGroup->ActiveTabIndex(); - TInt count = iTabGroup->TabCount(); - - switch ( aKeyEvent.iCode ) - { - case EKeyLeftArrow: - if (active > 0) - { - active--; - iTabGroup->SetActiveTabByIndex(active); - TabChangedL(active); - } - break; - - case EKeyRightArrow: - if((active + 1) < count) - { - active++; - iTabGroup->SetActiveTabByIndex(active); - TabChangedL(active); - } - break; - } - - return CAknDialog::OfferKeyEventL(aKeyEvent, aType); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::PreLayoutDynInitL() - { - iListBox = static_cast( Control(EPerfMonSettingItemList) ); - iListBox->SetMopParent(this); - iListBox->CreateScrollBarFrameL(ETrue); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); - iListBox->SetListBoxObserver(this); - - iSettingItemArray = new(ELeave) CAknSettingItemArray(16, EFalse, 0); - - CTextListBoxModel* model = iListBox->Model(); - model->SetItemTextArray(iSettingItemArray); - model->SetOwnershipType(ELbmDoesNotOwnItemArray); - - UpdateListBoxL(); - } - -// -------------------------------------------------------------------------------------------- - -TBool CPerfMonSettingsViewDlg::OkToExitL(TInt aButtonId) - { - return CAknDialog::OkToExitL(aButtonId); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::ShowSettingPageL(TInt aCalledFromMenu) - { - TInt listIndex = iListBox->CurrentItemIndex(); - TInt realIndex = iSettingItemArray->ItemIndexFromVisibleIndex(listIndex); - CAknSettingItem* item = iSettingItemArray->At(realIndex); - item->EditItemL(aCalledFromMenu); - item->StoreL(); - SetVisibilitiesOfSettingItemsL(); - DrawNow(); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::SetVisibilitiesOfSettingItemsL() - { - if (iSettingItemArray->Count() > 0) - { - switch (iTabGroup->ActiveTabIndex()) - { - case ETabSettingsGeneral: - { - ((*iSettingItemArray)[ESettingListItemHeartBeat])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemMaxSamples])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemPriority])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemCPUMode])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemKeepBackLightOn])->SetHidden(EFalse); - - ((*iSettingItemArray)[ESettingListItemDataPopupVisbility])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemDataPopupLocation])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemDataPopupSources])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemGraphsVerticalBarPeriod])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemGraphsSources])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemLoggingMode])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemLoggingFilePath])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemLoggingSources])->SetHidden(ETrue); - - break; - } - - case ETabSettingsDataPopup: - { - ((*iSettingItemArray)[ESettingListItemHeartBeat])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemMaxSamples])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemPriority])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemCPUMode])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemKeepBackLightOn])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemDataPopupVisbility])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemDataPopupLocation])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemDataPopupSources])->SetHidden(EFalse); - - ((*iSettingItemArray)[ESettingListItemGraphsVerticalBarPeriod])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemGraphsSources])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemLoggingMode])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemLoggingFilePath])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemLoggingSources])->SetHidden(ETrue); - - break; - } - - case ETabSettingsGraphs: - { - ((*iSettingItemArray)[ESettingListItemHeartBeat])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemMaxSamples])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemPriority])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemCPUMode])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemKeepBackLightOn])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemDataPopupVisbility])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemDataPopupLocation])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemDataPopupSources])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemGraphsVerticalBarPeriod])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListItemGraphsSources])->SetHidden(EFalse); - - ((*iSettingItemArray)[ESettingListItemLoggingMode])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemLoggingFilePath])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemLoggingSources])->SetHidden(ETrue); - - break; - } - - case ETabSettingsLogging: - { - ((*iSettingItemArray)[ESettingListItemHeartBeat])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemMaxSamples])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemPriority])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemCPUMode])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemKeepBackLightOn])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemDataPopupVisbility])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemDataPopupLocation])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemDataPopupSources])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemGraphsVerticalBarPeriod])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListItemGraphsSources])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemLoggingMode])->SetHidden(EFalse); - - if (iSettings.iLoggingMode == ELoggingModeLogFile || iSettings.iLoggingMode == ELoggingModeRDebugLogFile) - ((*iSettingItemArray)[ESettingListItemLoggingFilePath])->SetHidden(EFalse); - else - ((*iSettingItemArray)[ESettingListItemLoggingFilePath])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListItemLoggingSources])->SetHidden(EFalse); - - break; - } - - default: - User::Panic(_L("TabIOOB"), 50); - break; - } - - iSettingItemArray->RecalculateVisibleIndicesL(); - iListBox->HandleItemAdditionL(); - iListBox->UpdateScrollBarsL(); - } - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::UpdateListBoxL() - { - iSettingItemArray->ResetAndDestroy(); - - // create items - TInt ordinal(0); - - AddSettingItemL(ESettingListItemHeartBeat, - R_HEARTBEAT_SETTING_TITLE, - R_HEARTBEAT_SETTING_PAGE, - NULL, - ordinal++); - - AddSettingItemL(ESettingListItemMaxSamples, - R_MAXSAMPLES_SETTING_TITLE, - R_MAXSAMPLES_SETTING_PAGE, - NULL, - ordinal++); - - AddSettingItemL(ESettingListItemPriority, - R_PRIORITY_SETTING_TITLE, - R_PRIORITY_SETTING_PAGE, - R_PRIORITY_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListItemCPUMode, - R_CPUMODE_SETTING_TITLE, - R_CPUMODE_SETTING_PAGE, - R_CPUMODE_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListItemKeepBackLightOn, - R_KEEPBACKLIGHTON_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); -// - AddSettingItemL(ESettingListItemDataPopupVisbility, - R_DATAPOPUPVISIBILITY_SETTING_TITLE, - R_DATAPOPUPVISIBILITY_SETTING_PAGE, - R_DATAPOPUPVISIBILITY_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListItemDataPopupLocation, - R_DATAPOPUPLOCATION_SETTING_TITLE, - R_DATAPOPUPLOCATION_SETTING_PAGE, - R_DATAPOPUPLOCATION_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListItemDataPopupSources, - R_SOURCES_SETTING_TITLE, - R_SOURCES_SETTING_PAGE, - NULL, - ordinal++); -// - AddSettingItemL(ESettingListItemGraphsVerticalBarPeriod, - R_GRAPHSVERTICALBAR_SETTING_TITLE, - R_GRAPHSVERTICALBAR_SETTING_PAGE, - NULL, - ordinal++); - - AddSettingItemL(ESettingListItemGraphsSources, - R_SOURCES_SETTING_TITLE, - R_SOURCES_SETTING_PAGE, - NULL, - ordinal++); -// - AddSettingItemL(ESettingListItemLoggingMode, - R_LOGGINGMODE_SETTING_TITLE, - R_LOGGINGMODE_SETTING_PAGE, - R_LOGGINGMODE_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListItemLoggingFilePath, - R_LOGGINGFILEPATH_SETTING_TITLE, - R_LOGGINGFILEPATH_SETTING_PAGE, - NULL, - ordinal++); - - AddSettingItemL(ESettingListItemLoggingSources, - R_SOURCES_SETTING_TITLE, - R_SOURCES_SETTING_PAGE, - NULL, - ordinal++); - - SetVisibilitiesOfSettingItemsL(); - } - -// -------------------------------------------------------------------------------------------- - -void CPerfMonSettingsViewDlg::AddSettingItemL(TInt aId, - TInt aTitleResource, - TInt aSettingPageResource, - TInt aAssociatedResource, - TInt aOrdinal) - { - // create a setting item - CAknSettingItem* settingItem = NULL; - - switch (aId) - { - case ESettingListItemHeartBeat: - settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aId, iSettings.iHeartBeat); - break; - - case ESettingListItemMaxSamples: - settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aId, iSettings.iMaxSamples); - break; - - case ESettingListItemPriority: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iPriority); - break; - - case ESettingListItemCPUMode: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iCPUMode); - break; - - case ESettingListItemKeepBackLightOn: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iKeepBacklightOn); - break; - - case ESettingListItemDataPopupVisbility: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iDataPopupVisibility); - break; - - case ESettingListItemDataPopupLocation: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iDataPopupLocation); - break; - - case ESettingListItemDataPopupSources: - settingItem = new(ELeave) CSourceSelectionCheckBoxSettingItem(aId, iSettings.iDataPopupSources); - break; - - case ESettingListItemGraphsVerticalBarPeriod: - settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aId, iSettings.iGraphsVerticalBarPeriod); - break; - - case ESettingListItemGraphsSources: - settingItem = new(ELeave) CSourceSelectionCheckBoxSettingItem(aId, iSettings.iGraphsSources); - break; - - case ESettingListItemLoggingMode: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iLoggingMode); - break; - - case ESettingListItemLoggingFilePath: - settingItem = new(ELeave) CAknTextSettingItem(aId, iSettings.iLoggingFilePath); - break; - - case ESettingListItemLoggingSources: - settingItem = new(ELeave) CSourceSelectionCheckBoxSettingItem(aId, iSettings.iLoggingSources); - break; - - default: - User::Panic(_L("NotSetItem"), 50); - break; - } - - CleanupStack::PushL(settingItem); - - // get title text - HBufC* itemTitle = StringLoader::LoadLC(aTitleResource); - - // construct the setting item - settingItem->ConstructL(EFalse, aOrdinal, *itemTitle, NULL, aSettingPageResource, - EAknCtPopupSettingList, NULL, aAssociatedResource); - - // append the setting item to settingitem array - iSettingItemArray->InsertL(aOrdinal, settingItem); - - CleanupStack::PopAndDestroy(); //itemTitle - CleanupStack::Pop(); //settingItem - } - - -// -------------------------------------------------------------------------------------------- -// -------------------------------------------------------------------------------------------- - -CSourceSelectionCheckBoxSettingItem::CSourceSelectionCheckBoxSettingItem( TInt aIdentifier, TPerfMonSources& aMemoryInUse ): - CAknSettingItem(aIdentifier), iExternalSources( aMemoryInUse ) - { - } - -CSourceSelectionCheckBoxSettingItem::~CSourceSelectionCheckBoxSettingItem() - { - delete iSettingText; - - if( iItemArray ) - { - iItemArray->ResetAndDestroy(); - delete iItemArray; - } - } - -void CSourceSelectionCheckBoxSettingItem::AddNewItemToArrayL(const TDesC& aLabel) - { - TBuf<64> buf; - buf.Copy(aLabel); - - CSelectableItem* item = new(ELeave) CSelectableItem(buf, EFalse); - CleanupStack::PushL(item); - item->ConstructL(); - iItemArray->AppendL(item); // Ownership is transferred - CleanupStack::Pop(); // item - } - -void CSourceSelectionCheckBoxSettingItem::CompleteConstructionL() - { - SetEmptyItemTextL(_L("Nothing selected")); - - iItemArray = new(ELeave) CSelectionItemList(16); - AddNewItemToArrayL(_L("CPU")); - AddNewItemToArrayL(_L("RAM")); - AddNewItemToArrayL(_L("C:")); - AddNewItemToArrayL(_L("D:")); - AddNewItemToArrayL(_L("E:")); - AddNewItemToArrayL(_L("F:")); - AddNewItemToArrayL(_L("G:")); - AddNewItemToArrayL(_L("H:")); - AddNewItemToArrayL(_L("I:")); - - __ASSERT_ALWAYS(ESourcesLength==iItemArray->Count(), User::Panic(_L("Src.mismatch"),443)); - } - -// transfer settings to the variables defined in the constructor -void CSourceSelectionCheckBoxSettingItem::StoreL() - { - for (TInt i=0; iAt(i)->SelectionStatus(); - } - } - -// load settings from the variables defined in the constructor to our internal variables -void CSourceSelectionCheckBoxSettingItem::LoadL() - { - for (TInt i=0; iAt(i)->SetSelectionStatus( iExternalSources.iSrcEnabled[i] ); - } - } - -// returns the text shown in the setting item list -const TDesC& CSourceSelectionCheckBoxSettingItem::SettingTextL() - { - TBuf<32> settingText; - - if (iItemArray->At(ESourceCPU)->SelectionStatus()) - settingText.Append(_L("CPU ")); - if (iItemArray->At(ESourceRAM)->SelectionStatus()) - settingText.Append(_L("RAM ")); - if (iItemArray->At(ESourceC)->SelectionStatus()) - settingText.Append(_L("C: ")); - if (iItemArray->At(ESourceD)->SelectionStatus()) - settingText.Append(_L("D: ")); - if (iItemArray->At(ESourceE)->SelectionStatus()) - settingText.Append(_L("E: ")); - if (iItemArray->At(ESourceF)->SelectionStatus()) - settingText.Append(_L("F: ")); - if (iItemArray->At(ESourceG)->SelectionStatus()) - settingText.Append(_L("G: ")); - if (iItemArray->At(ESourceH)->SelectionStatus()) - settingText.Append(_L("H: ")); - if (iItemArray->At(ESourceI)->SelectionStatus()) - settingText.Append(_L("I: ")); - settingText.TrimAll(); - - if (iSettingText) - { - delete iSettingText; - iSettingText = NULL; - } - - iSettingText = HBufC::NewL(settingText.Length()); - iSettingText->Des().Copy(settingText); - - if ( iSettingText->Length() > 0 ) - return *iSettingText; - else - return EmptyItemText(); - } - - -// launches the setting page -void CSourceSelectionCheckBoxSettingItem::EditItemL(TBool /*aCalledFromMenu*/) - { - CSourceSelectionCheckBoxSettingPage* dlg = new(ELeave) CSourceSelectionCheckBoxSettingPage(SettingPageResourceId(), iItemArray); - - SetSettingPage( dlg ); - SettingPage()->SetSettingPageObserver(this); - - SettingPage()->ExecuteLD(CAknSettingPage::EUpdateWhenChanged); - SetSettingPage(0); // it is deleted now - } - - -// handles setting page events -void CSourceSelectionCheckBoxSettingItem::HandleSettingPageEventL( CAknSettingPage* aSettingPage, TAknSettingPageEvent aEventType ) - { - switch( aEventType ) - { - case EEventSettingCancelled: - { - // If setting is cancelled, load old values - LoadL(); - break; - } - case EEventSettingChanged: - { - // If setting has changed, update CBA visibility - static_cast( aSettingPage )->UpdateCba(); - break; - } - default: - { - break; - } - } - CAknSettingItem::HandleSettingPageEventL( aSettingPage, aEventType ); - } - -// -------------------------------------------------------------------------------------------- -// -------------------------------------------------------------------------------------------- - -CSourceSelectionCheckBoxSettingPage::CSourceSelectionCheckBoxSettingPage(TInt aResourceID, CSelectionItemList* aItemArray ) - : CAknCheckBoxSettingPage( aResourceID, aItemArray ) - { - } - -void CSourceSelectionCheckBoxSettingPage::UpdateCba() - { - // Cache the pointer to button group container - CEikButtonGroupContainer* cba = Cba(); - // Left softkey should be visible if there are items selected, - // i.e. the selection index array has items. - TBool visible( ListBoxControl()->View()->SelectionIndexes()->Count() > 0 ); - // Resolve left softkey command id - TInt leftId( cba->ButtonGroup()->CommandId( 0 ) ); - // Check if left softkey visibility has changed - if( visible != cba->IsCommandVisible( leftId ) ) - { - // Left softkey visibility has changed, update it - cba->MakeCommandVisible( leftId, visible ); - } - } - -// -------------------------------------------------------------------------------------------- -// -------------------------------------------------------------------------------------------- - -// End of File