diff -r 48060abbbeaf -r b3cee849fa46 filebrowser/src/FBSettingViewDlg.cpp --- a/filebrowser/src/FBSettingViewDlg.cpp Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,463 +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 "FBSettingViewDlg.h" -#include "FBModel.h" -#include "FB.hrh" -#include "FBStd.h" -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -// ===================================== MEMBER FUNCTIONS ===================================== - -CFileBrowserSettingViewDlg* CFileBrowserSettingViewDlg::NewL(TFileBrowserSettings& aSettings) - { - CFileBrowserSettingViewDlg* self = new(ELeave) CFileBrowserSettingViewDlg(aSettings); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -// -------------------------------------------------------------------------------------------- - -CFileBrowserSettingViewDlg::~CFileBrowserSettingViewDlg() - { - // restore default navi pane - if (iNaviContainer) - iNaviContainer->Pop(); - - if (iSettingItemArray) - { - iSettingItemArray->ResetAndDestroy(); - delete iSettingItemArray; - } - - if (iDecoratedTabGroup) - delete iDecoratedTabGroup; - } - -// -------------------------------------------------------------------------------------------- - -CFileBrowserSettingViewDlg::CFileBrowserSettingViewDlg(TFileBrowserSettings& aSettings) : iSettings(aSettings) - { - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::ConstructL() - { - // construct a menu bar - CAknDialog::ConstructL(R_FILEBROWSER_SETTINGS_MENUBAR); - - CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane(); - - // set empty navi pane label - iNaviContainer = static_cast(sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi))); - iNaviContainer->PushDefaultL(); - - // set title text - CAknTitlePane* tp = static_cast( sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - tp->SetTextL( _L("Settings") ); - - // create a tab group - iDecoratedTabGroup = iNaviContainer->CreateTabGroupL(this); - iTabGroup = static_cast(iDecoratedTabGroup->DecoratedControl()); - iTabGroup->SetTabFixedWidthL(KTabWidthWithTwoLongTabs); - - // add tabs - iTabGroup->AddTabL(ETabGeneral, _L("General")); - iTabGroup->AddTabL(ETabFileOps, _L("Operations")); - iTabGroup->SetActiveTabByIndex(ETabGeneral); - - iNaviContainer->PushL( *iDecoratedTabGroup ); - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType) - { - switch (aEventType) - { - case EEventEnterKeyPressed: - case EEventItemDoubleClicked: - ShowSettingPageL(EFalse); - break; - default: - break; - } - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::TabChangedL(TInt /*aIndex*/) - { - iListBox->SetCurrentItemIndex(0); - - SetVisibilitiesOfSettingItemsL(); - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::ProcessCommandL(TInt aCommandId) - { - CAknDialog::ProcessCommandL(aCommandId); - - switch (aCommandId) - { - case EFileBrowserCmdSettingsChange: - ShowSettingPageL(ETrue); - break; - case EFileBrowserCmdSettingsExit: - TryExitL(EAknCmdExit); - break; - default: - break; - } - } - -// -------------------------------------------------------------------------------------------- - -TKeyResponse CFileBrowserSettingViewDlg::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 CFileBrowserSettingViewDlg::PreLayoutDynInitL() - { - iListBox = static_cast( Control(EFileBrowserSettingItemList) ); - 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 CFileBrowserSettingViewDlg::OkToExitL(TInt aButtonId) - { - return CAknDialog::OkToExitL(aButtonId); - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::ShowSettingPageL(TInt aCalledFromMenu) - { - TInt listIndex = iListBox->CurrentItemIndex(); - TInt realIndex = iSettingItemArray->ItemIndexFromVisibleIndex(listIndex); - CAknSettingItem* item = iSettingItemArray->At(realIndex); - item->EditItemL(aCalledFromMenu); - item->StoreL(); - SetVisibilitiesOfSettingItemsL(); - DrawNow(); - - if (realIndex == ESettingListBypassPlatformSecuritySelection && iSettings.iBypassPlatformSecurity) - { - _LIT(KMessage, "Gives TCB rights to file operations, use at your own risk"); - CAknInformationNote* note = new(ELeave) CAknInformationNote; - note->ExecuteLD(KMessage); - } - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::SetVisibilitiesOfSettingItemsL() - { - if (iSettingItemArray->Count() > 0) - { - switch (iTabGroup->ActiveTabIndex()) - { - case ETabGeneral: - { - ((*iSettingItemArray)[ESettingListDisplayModeSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListFileViewModeSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListShowSubdirectoryInfoSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListShowAssociatedIconsSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListRememberLastPathSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListRememberFolderSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListEnableToolbar])->SetHidden(EFalse); - - ((*iSettingItemArray)[ESettingListSupportNetworkDrivesSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListBypassPlatformSecuritySelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListRemoveFileLocksSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListIgnoreProtectionsAttsSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListRemoveROMWriteProtectionSelection])->SetHidden(ETrue); - } - break; - - case ETabFileOps: - { - ((*iSettingItemArray)[ESettingListDisplayModeSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListFileViewModeSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListShowSubdirectoryInfoSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListShowAssociatedIconsSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListRememberLastPathSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListRememberFolderSelection])->SetHidden(ETrue); - ((*iSettingItemArray)[ESettingListEnableToolbar])->SetHidden(ETrue); - - ((*iSettingItemArray)[ESettingListSupportNetworkDrivesSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListBypassPlatformSecuritySelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListRemoveFileLocksSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListIgnoreProtectionsAttsSelection])->SetHidden(EFalse); - ((*iSettingItemArray)[ESettingListRemoveROMWriteProtectionSelection])->SetHidden(EFalse); - } - break; - - default: - User::Panic(_L("TabIOOB"), 50); - break; - } - - #ifdef FILEBROWSER_LITE - ((*iSettingItemArray)[ESettingListBypassPlatformSecuritySelection])->SetHidden(ETrue); - #endif - - #if(defined __SERIES60_30__ || defined __SERIES60_31__ || defined __S60_32__) - ((*iSettingItemArray)[ESettingListEnableToolbar])->SetHidden(ETrue); - #else - if ( !AknLayoutUtils::PenEnabled() ) - { - ((*iSettingItemArray)[ESettingListEnableToolbar])->SetHidden(ETrue); - } - #endif - - iSettingItemArray->RecalculateVisibleIndicesL(); - iListBox->HandleItemAdditionL(); - iListBox->UpdateScrollBarsL(); - } - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::UpdateListBoxL() - { - iSettingItemArray->ResetAndDestroy(); - - // create items - TInt ordinal(0); - - AddSettingItemL(ESettingListDisplayModeSelection, - R_DISPLAYMODESELECTION_SETTING_TITLE, - R_DISPLAYMODESELECTION_SETTING_PAGE, - R_DISPLAYMODESELECTION_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListFileViewModeSelection, - R_FILEVIEWMODESELECTION_SETTING_TITLE, - R_FILEVIEWMODESELECTION_SETTING_PAGE, - R_FILEVIEWMODESELECTION_SETTING_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListShowSubdirectoryInfoSelection, - R_SHOWSUBDIRECTORYINFOSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListShowAssociatedIconsSelection, - R_SHOWASSOCIATEDICONSSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListRememberLastPathSelection, - R_REMEMBERLASTPATHSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListRememberFolderSelection, - R_REMEMBERFOLDERSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListEnableToolbar, - R_ENABLETOOLBAR_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListSupportNetworkDrivesSelection, - R_SUPPORTNETWORKDRIVESSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListBypassPlatformSecuritySelection, - R_BYPASSPLATFORMSECURITYSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListRemoveFileLocksSelection, - R_REMOVEFILELOCKSSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListIgnoreProtectionsAttsSelection, - R_IGNOREPROTECTIONATTSSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - AddSettingItemL(ESettingListRemoveROMWriteProtectionSelection, - R_REMOVEROMWRITEPROTECTIONSELECTION_SETTING_TITLE, - R_BINARY_SETTING_PAGE, - R_YESNO_BINARYSELECTION_TEXTS, - ordinal++); - - SetVisibilitiesOfSettingItemsL(); - } - -// -------------------------------------------------------------------------------------------- - -void CFileBrowserSettingViewDlg::AddSettingItemL(TInt aId, - TInt aTitleResource, - TInt aSettingPageResource, - TInt aAssociatedResource, - TInt aOrdinal) - { - // create a setting item - CAknSettingItem* settingItem = NULL; - - switch (aId) - { - case ESettingListDisplayModeSelection: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iDisplayMode); - break; - - case ESettingListFileViewModeSelection: - settingItem = new(ELeave) CAknEnumeratedTextPopupSettingItem(aId, iSettings.iFileViewMode); - break; - - case ESettingListShowSubdirectoryInfoSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iShowSubDirectoryInfo); - break; - - case ESettingListShowAssociatedIconsSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iShowAssociatedIcons); - break; - - case ESettingListRememberLastPathSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iRememberLastPath); - break; - - case ESettingListRememberFolderSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iRememberFolderSelection); - break; - - case ESettingListEnableToolbar: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iEnableToolbar); - break; - - case ESettingListSupportNetworkDrivesSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iSupportNetworkDrives); - break; - - case ESettingListBypassPlatformSecuritySelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iBypassPlatformSecurity); - break; - - case ESettingListRemoveFileLocksSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iRemoveFileLocks); - break; - - case ESettingListIgnoreProtectionsAttsSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iIgnoreProtectionsAtts); - break; - - case ESettingListRemoveROMWriteProtectionSelection: - settingItem = new(ELeave) CAknBinaryPopupSettingItem(aId, iSettings.iRemoveROMWriteProrection); - 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 - } - -// -------------------------------------------------------------------------------------------- - -// End of File -