--- a/omads/omadsappui/AspSyncUtil/src/AspSettingViewDialog.cpp Thu Aug 19 09:41:17 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,756 +0,0 @@
-/*
-* Copyright (c) 2005 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 "AspSettingViewDialog.h"
-#include "AspProfileDialog.h"
-#include "AspContentDialog.h"
-#include "AspScheduleDialog.h"
-
-#include "AspSyncUtil.rh"
-#include "AspDebug.h"
-#include <csxhelp/ds.hlp.hrh>
-
-#include <aspsyncutil.mbg> // for bitmap enumerations
-#include <AknIconArray.h> // for GulArray
-
-#include "AspSchedule.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::ShowDialogL
-//
-// -----------------------------------------------------------------------------
-TBool CAspSettingViewDialog::ShowDialogL(const TAspParam& aParam)
- {
- CAspSettingViewDialog* dialog = CAspSettingViewDialog::NewL(aParam);
-
- TBool ret = dialog->ExecuteLD(R_ASP_SETTING_VIEW_DIALOG);
-
- return ret;
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::NewL
-//
-// -----------------------------------------------------------------------------
-CAspSettingViewDialog* CAspSettingViewDialog::NewL(const TAspParam& aParam)
- {
- FLOG( _L("CAspSettingViewDialog::NewL START") );
-
- CAspSettingViewDialog* self = new ( ELeave )CAspSettingViewDialog (aParam);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- FLOG( _L("CAspSettingViewDialog::NewL END") );
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::CAspSettingViewDialog
-//
-// -----------------------------------------------------------------------------
-//
-CAspSettingViewDialog::CAspSettingViewDialog(const TAspParam& aParam)
- {
- iSyncSession = aParam.iSyncSession;
- iApplicationId = aParam.iApplicationId;
- iProfile = aParam.iProfile;
- iContentList = aParam.iContentList;
- iProfileList = aParam.iProfileList;
- iEditMode = aParam.iMode;
- iDataProviderId =aParam.iDataProviderId;
- iSchedule = aParam.iSchedule;
-
-
- __ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
- __ASSERT_ALWAYS(iContentList, TUtil::Panic(KErrGeneral));
- __ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral));
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::ConstructL()
- {
- FLOG( _L("CAspSettingViewDialog::ConstructL START") );
-
- // contruct menu for our dialog
- CAknDialog::ConstructL(R_ASP_SETTING_VIEW_DIALOG_MENU);
-
- iSettingList = new (ELeave) CArrayPtrFlat<CAspListItemData>(1);
-
- TAspParam param(KErrNotFound, iSyncSession);
-
- // get previous title so it can be restored
- iStatusPaneHandler = CStatusPaneHandler::NewL(iAvkonAppUi);
- iStatusPaneHandler->StoreOriginalTitleL();
-
- FLOG( _L("CAspSettingViewDialog::ConstructL END") );
- }
-
-
-// ----------------------------------------------------------------------------
-// Destructor
-//
-// ----------------------------------------------------------------------------
-//
-CAspSettingViewDialog::~CAspSettingViewDialog()
- {
- FLOG( _L("CAspSettingViewDialog::~CAspSettingViewDialog START") );
-
- if (iSettingList)
- {
- iSettingList->ResetAndDestroy();
- delete iSettingList;
- }
-
- delete iStatusPaneHandler;
-
-
- if (iAvkonAppUi)
- {
- iAvkonAppUi->RemoveFromStack(this);
- }
-
- FLOG( _L("~CAspSettingViewDialog::~~CAspSettingViewDialog END") );
- }
-
-
-//------------------------------------------------------------------------------
-// CAspSettingViewDialog::ActivateL
-//
-// Called by system when dialog is activated.
-//------------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::ActivateL()
- {
- CAknDialog::ActivateL();
-
- // this cannot be in ConstructL which is executed before dialog is launched
- iAvkonAppUi->AddToStackL(this);
- }
-
-
-//------------------------------------------------------------------------------
-// CAspContentListDialog::GetHelpContext
-//
-//------------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::GetHelpContext(TCoeHelpContext& aContext) const
- {
- aContext.iMajor = KUidSmlSyncApp;
- aContext.iContext = KDS_HLP_SETTINGS;
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::HandleListBoxEventL
-//
-// -----------------------------------------------------------------------------
-void CAspSettingViewDialog::HandleListBoxEventL(CEikListBox* /*aListBox*/,
- TListBoxEvent aEventType)
- {
- switch ( aEventType )
- {
- case EEventEnterKeyPressed:
- case EEventItemSingleClicked:
- HandleOKL();
- break;
- default:
- break;
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::PreLayoutDynInitL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::PreLayoutDynInitL()
- {
- iSettingListBox = (CAknSettingStyleListBox*) ControlOrNull (EAspSettingViewDialogList);
-
- __ASSERT_ALWAYS(iSettingListBox, TUtil::Panic(KErrGeneral));
-
- iSettingListBox->SetListBoxObserver(this);
- iSettingListBox->CreateScrollBarFrameL(ETrue);
- iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto);
-
- SetIconsL();
-
- // create array of setting items (iSettingList)
- CreateSettingsListL();
-
- // add setting headers into listbox
- UpdateListBoxL(iSettingListBox, iSettingList);
-
- if (iDataProviderId)
- {
- iSettingListBox->SetCurrentItemIndex(GetIndexFromProvider(iDataProviderId));
- }
- iProfile->GetName(iBuf);
- iStatusPaneHandler->SetTitleL(iBuf);
- iStatusPaneHandler->SetNaviPaneTitleL(KNullDesC);
- }
-
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::SetIconsL
-//
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::SetIconsL()
- {
- if (!iSettingListBox)
- {
- return;
- }
-
- TFileName bitmapName;
- CAspResHandler::GetBitmapFileName(bitmapName);
- CArrayPtr<CGulIcon>* icons = new (ELeave) CAknIconArray(KDefaultArraySize);
- CleanupStack::PushL(icons);
-
- icons->AppendL(IconL(KAknsIIDQgnIndiSettProtectedAdd, bitmapName,
- EMbmAspsyncutilQgn_indi_sett_protected_add,
- EMbmAspsyncutilQgn_indi_sett_protected_add_mask));
-
- // delete old icons
- CArrayPtr<CGulIcon>* arr =
- iSettingListBox->ItemDrawer()->FormattedCellData()->IconArray();
-
- if (arr)
- {
- arr->ResetAndDestroy();
- delete arr;
- arr = NULL;
- }
-
- iSettingListBox->ItemDrawer()->FormattedCellData()->SetIconArrayL(icons);
- CleanupStack::Pop(icons);
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::IconL
-//
-// -----------------------------------------------------------------------------
-//
-CGulIcon* CAspSettingViewDialog::IconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileIndex, TInt aFileMaskIndex)
- {
- return TDialogUtil::CreateIconL(aId, aFileName, aFileIndex, aFileMaskIndex);
- }
-
-
-//------------------------------------------------------------------------------
-// CAspSettingViewDialog::ProcessCommandL
-//
-// Handle commands from menu.
-//------------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::ProcessCommandL(TInt aCommandId)
- {
- HideMenu();
-
- switch (aCommandId)
- {
- case EAknCmdHelp:
- {
- TUtil::LaunchHelpAppL(iEikonEnv);
- break;
- }
-
- case EAspMenuCmdChange:
- case EAspMenuCmdOpen:
- {
- HandleOKL();
- break;
- }
-
- case EAspMenuCmdExit:
- case EAknCmdExit:
- case EEikCmdExit:
- {
- // close dialog and exit calling application
- iAvkonAppUi->ProcessCommandL(EAknCmdExit);
- break;
- }
-
- default:
- break;
- }
- }
-
-
-//------------------------------------------------------------------------------
-// CAspSettingViewDialog::OkToExitL
-//
-//------------------------------------------------------------------------------
-//
-TBool CAspSettingViewDialog::OkToExitL(TInt aButtonId)
- {
- if (aButtonId == EEikBidCancel || aButtonId == EAknSoftkeyBack)
- {
- return ETrue; // close dialog
- }
-
- if (aButtonId == EAknSoftkeyOpen) // MSK
- {
- HandleOKL();
- return EFalse; // leave dialog open
- }
-
- return CAknDialog::OkToExitL(aButtonId);
- }
-
-
-
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::OfferKeyEventL
-//
-// ----------------------------------------------------------------------------
-//
-TKeyResponse CAspSettingViewDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
- {
- if (aType == EEventKey)
- {
- switch (aKeyEvent.iCode)
- {
- case EKeyEscape: // framework calls this when dialog must shut down
- {
- return CAknDialog::OfferKeyEventL(aKeyEvent, aType);
- }
-
- default:
- {
- break;
- }
- }
- }
-
- return CAknDialog::OfferKeyEventL( aKeyEvent, aType);
- }
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::HandleResourceChange
-//
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::HandleResourceChange(TInt aType)
- {
- if (aType == KEikDynamicLayoutVariantSwitch) //Handle change in layout orientation
- {
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect);
- SetRect(mainPaneRect);
- iSettingListBox->SetSize(mainPaneRect.Size());
- CCoeControl::HandleResourceChange(aType);
- DrawDeferred();
- return;
- }
-
- if (aType == KAknsMessageSkinChange)
- {
- TRAP_IGNORE(SetIconsL());
- }
-
- CCoeControl::HandleResourceChange(aType);
- }
-
-//------------------------------------------------------------------------------
-// CAspSettingViewDialog::HandleOKL
-//
-//------------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::HandleOKL()
- {
- CAspListItemData* item = GetItemForIndex(ListBox()->CurrentItemIndex());
-
- EditSettingItemL(*item);
- SetVisibility();
- UpdateListBoxL(iSettingListBox, iSettingList);
-
- }
-
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::CreateSettingsListL
-//
-// Function creates setting list array (iSettingsList).
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::CreateSettingsListL()
- {
-
- AddProfileSettingItemL();
-#ifdef RD_DSUI_TIMEDSYNC
-
- AddSchedulingSettingItemL();
-
-#endif
- AddContentItemsL();
- SetVisibility();
- UpdateListBoxL(iSettingListBox, iSettingList);
-
- }
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::AddProfileSettingItemL
-//
-//
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::AddProfileSettingItemL()
- {
-
- CAspListItemData* item = CAspListItemData::NewLC();
- item->SetHeaderL(R_ASP_SETTING_FOLDER_PROFILE);
- item->iItemId = EAspProfileSetting;
- item->iItemType = CAspListItemData::ETypeProfileSetting;
- item->iNumberData = KErrNotFound;
- iSettingList->AppendL(item);
- CleanupStack::Pop(item);
-
- }
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::AddSchedulingSettingItemL
-//
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::AddSchedulingSettingItemL()
- {
- CAspListItemData* item = CAspListItemData::NewLC();
- item->SetHeaderL(R_ASP_SETTING_FOLDER_SCHEDULE);
- item->iItemId = EAspSchedulingSetting;
- item->iItemType = CAspListItemData::ETypeSchedulingSetting;
- item->iNumberData = KErrNotFound;
- iSettingList->AppendL(item);
- CleanupStack::Pop(item);
- }
-
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::AddContentItemsL
-//
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::AddContentItemsL()
- {
- TInt count = iContentList->ProviderCount();
-
- for (TInt i=0; i<count; i++)
- {
- TAspProviderItem& providerItem = iContentList->ProviderItem(i);
- TInt appId = TUtil::AppIdFromProviderId(providerItem.iDataProviderId);
- if (iApplicationId != EApplicationIdSync && iApplicationId != appId)
- {
- continue;
- }
-
- HBufC* firstLine = CAspResHandler::GetContentSettingLC(
- providerItem.iDataProviderId,
- providerItem.iDisplayName);
-
- CAspListItemData* item = CAspListItemData::NewLC();
-
- item->SetHeaderL(firstLine->Des());
- item->iItemId = EAspSyncContent;
- item->iItemType = CAspListItemData::ETypeSyncContent;
- item->iNumberData = providerItem.iDataProviderId;
- iSettingList->AppendL(item);
- CleanupStack::Pop(item);
-
- CleanupStack::PopAndDestroy(firstLine);
- }
- }
-
-
-// ----------------------------------------------------------------------------
-// CAspSettingViewDialog::UpdateListBoxL
-//
-// Add settings headers into listbox.
-// ----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::UpdateListBoxL(CEikTextListBox* aListBox,
- CAspSettingList* aItemList)
- {
-
- CDesCArray* arr = (CDesCArray*)aListBox->Model()->ItemTextArray();
- arr->Reset();
-
- TInt count = aItemList->Count();
- for (TInt i=0; i<count; i++ )
- {
- CAspListItemData* item = (*aItemList)[i];
-
- TBool convert = ETrue;
- if (item->iHidden != EVisibilityHidden)
- {
- HBufC* hBuf = item->ListItemTextL(convert);
- CleanupStack::PushL(hBuf);
-
- arr->AppendL(hBuf->Des());
-
- // store listbox index (from zero up) into setting item
- item->iIndex = arr->Count() - 1;
-
- CleanupStack::PopAndDestroy(hBuf);
- }
- else
- {
- item->iIndex = KErrNotFound;
- }
- }
-
- ListBox()->HandleItemAdditionL();
- }
-
-
-//------------------------------------------------------------------------------
-// CAspSettingViewDialog::EditSettingItemL
-//
-// Calls setting editing functions.
-//------------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::EditSettingItemL(CAspListItemData& aItem)
- {
- TBool ret = KErrNone;
- switch (aItem.iItemType)
- {
- case CAspListItemData::ETypeProfileSetting:
- ret = EditSettingItemProfileSettingL();
- break;
-
- case CAspListItemData::ETypeSchedulingSetting:
- ret = EditSettingItemSchedulingSettingL();
- break;
-
- case CAspListItemData::ETypeSyncContent:
- ret = EditSettingItemSyncContentL(aItem);
- break;
-
- default:
- break;
- }
-
- User::LeaveIfError(ret);
-
-
- }
-
-// -----------------------------------------------------------------------------
-// CAspContentListDialog::EditSettingItemProfileSettingL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspSettingViewDialog::EditSettingItemProfileSettingL()
- {
- TAspParam param(iApplicationId, iSyncSession);
- param.iProfile = iProfile;
- param.iProfileList = iProfileList;
- param.iMode = iEditMode;
- param.iContentList = iContentList;
-
- CAspProfileDialog::ShowDialogL(param);
-
- //Update profile name in navi pane ,to reflect any name change during profile editing
- iProfile->GetName(iBuf);
- iStatusPaneHandler->SetTitleL(iBuf);
- iStatusPaneHandler->SetNaviPaneTitleL(KNullDesC);
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CAspContentListDialog::EditSettingItemSchedulingSettingL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspSettingViewDialog::EditSettingItemSchedulingSettingL()
- {
- TAspParam param(iApplicationId, iSyncSession);
- param.iProfileList = iProfileList;
- param.iProfile = iProfile;
- param.iContentList = iContentList;
- param.iSchedule = iSchedule;
-
- TBool settingEnforcement = TUtil::SettingEnforcementState();
-
- CAspSchedule* schedule = CAspSchedule::NewLC();
- if (schedule->IsAutoSyncEnabled() && !settingEnforcement)
- {
- TInt profileId = schedule->ProfileId();
- if(profileId != iProfile->ProfileId() && profileId != KErrNotFound)
- {
- if(!TDialogUtil::ShowConfirmationQueryL(R_ASP_QUERY_AUTO_SYNC_ON))
- {
- CleanupStack::PopAndDestroy(schedule);
- return KErrNone;
- }
- }
- }
- CleanupStack::PopAndDestroy(schedule);
-
- CAspScheduleDialog::ShowDialogL(param);
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CAspContentListDialog::EditSettingItemSyncContentL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspSettingViewDialog::EditSettingItemSyncContentL(CAspListItemData& aItem)
- {
-
- TAspParam param(iApplicationId, iSyncSession);
- param.iProfile = iProfile;
- param.iDataProviderId = aItem.iNumberData;
- param.iSyncTaskId = KErrNotFound;
- param.iContentList = iContentList;
-
- CAspContentDialog::ShowDialogL(param);
-
-
- return KErrNone;
- }
-
-
-//-----------------------------------------------------------------------------
-// CAspSettingViewDialog::GetItemForIndex
-//
-// Find item in list position aIndex.
-//-----------------------------------------------------------------------------
-//
-CAspListItemData* CAspSettingViewDialog::GetItemForIndex(TInt aIndex)
- {
- CAspListItemData* item = NULL;
-
- TInt count = iSettingList->Count();
- for (TInt i=0; i<count; i++)
- {
- CAspListItemData* temp = (*iSettingList)[i];
- if (temp->iIndex == aIndex)
- {
- item = temp;
- break;
- }
- }
-
- __ASSERT_ALWAYS(item, TUtil::Panic(KErrGeneral));
-
- return item;
- }
-
-//-----------------------------------------------------------------------------
-// CAspSettingViewDialog::SetVisibility
-//
-// -----------------------------------------------------------------------------
-//
-void CAspSettingViewDialog::SetVisibility()
- {
-
- if (iProfile->BearerType() == EAspBearerInternet)
- {
- Item(EAspSchedulingSetting)->iHidden = EVisibilityNormal;
- }
- else
- {
- Item(EAspSchedulingSetting)->iHidden = EVisibilityHidden;
- }
- }
-//-----------------------------------------------------------------------------
-// CAspSettingViewDialog::GetIndexFromProvider
-//
-// Find index for a provider
-//-----------------------------------------------------------------------------
-//
-TInt CAspSettingViewDialog::GetIndexFromProvider(TInt aDataProvider)
- {
-
- TInt count = iSettingList->Count();
- TInt index;
- for (index=0; index<count; index++)
- {
- CAspListItemData* temp = (*iSettingList)[index];
- if (temp->iNumberData == aDataProvider)
- {
- break;
- }
- }
- return index;
- }
-
-
-//-----------------------------------------------------------------------------
-// CAspSettingViewDialog::Item
-//
-// Find item with aItemId.
-//-----------------------------------------------------------------------------
-//
-CAspListItemData* CAspSettingViewDialog::Item(TInt aItemId)
- {
- CAspListItemData* item = NULL;
-
- TInt count = iSettingList->Count();
- for (TInt i=0; i<count; i++)
- {
- CAspListItemData* temp = (*iSettingList)[i];
- if (temp->iItemId == aItemId)
- {
- item = temp;
- break;
- }
- }
-
- __ASSERT_ALWAYS(item, TUtil::Panic(KErrGeneral));
-
- return item;
- }
-
-
-// -----------------------------------------------------------------------------
-// CAspSettingViewDialog::ListBox
-//
-// -----------------------------------------------------------------------------
-//
-CAknSettingStyleListBox* CAspSettingViewDialog::ListBox()
- {
- return iSettingListBox;
- }
-
-
-// End of File