diff -r 2bb96f4ecad8 -r 8e7494275d3a omads/omadsappui/AspSyncUtil/src/AspContentDialog.cpp --- a/omads/omadsappui/AspSyncUtil/src/AspContentDialog.cpp Thu Aug 19 09:41:17 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1203 +0,0 @@ -/* -* Copyright (c) 2002-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 "AspContentDialog.h" -#include "AspUtil.h" -#include "AspDefines.h" -#include "AspDialogUtil.h" -#include "AspResHandler.h" -#include "AspDebug.h" -#include "AspSyncUtil.rh" -#include - -#include // for bitmap enumerations -#include // for GulArray -#include // FeatureManager -#include "AspSchedule.h" - -const TInt KMSKControlId( CEikButtonGroupContainer::EMiddleSoftkeyPosition ); - -// ----------------------------------------------------------------------------- -// CAspContentDialog::ShowDialogL -// -// ----------------------------------------------------------------------------- -TBool CAspContentDialog::ShowDialogL(TAspParam& aParam) - { - CAspContentDialog* dialog = CAspContentDialog::NewL(aParam); - - return dialog->ExecuteLD(R_ASP_CONTENT_DIALOG); - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::NewL -// -// ----------------------------------------------------------------------------- -CAspContentDialog* CAspContentDialog::NewL(TAspParam& aParam) - { - FLOG( _L("CAspContentDialog::NewL START") ); - - CAspContentDialog* self = new (ELeave) CAspContentDialog(aParam); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - - FLOG( _L("CAspContentDialog::NewL END") ); - return(self); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::CAspContentDialog -// -//------------------------------------------------------------------------------ -// -CAspContentDialog::CAspContentDialog(TAspParam& aParam) - { - iApplicationId = aParam.iApplicationId; - iProfile = aParam.iProfile; - iSyncSession = aParam.iSyncSession; - iContentList = aParam.iContentList; - iDialogParam = &aParam; - iDataProviderId = aParam.iDataProviderId; - - iDataStoreChanged = EFalse; - iMskEmpty = EFalse; - - __ASSERT_ALWAYS(iDataProviderId != KErrNotFound, TUtil::Panic(KErrGeneral)); - __ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral)); - __ASSERT_ALWAYS(iContentList, TUtil::Panic(KErrGeneral)); - __ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral)); - } - - -//------------------------------------------------------------------------------ -// Destructor -// -//------------------------------------------------------------------------------ -// -CAspContentDialog::~CAspContentDialog() - { - FLOG( _L("CAspContentDialog::~CAspContentDialog START") ); - - if (iSettingList) - { - iSettingList->ResetAndDestroy(); - delete iSettingList; - } - - delete iStatusPaneHandler; - delete iLocalDataStores; - - if (iAvkonAppUi) - { - iAvkonAppUi->RemoveFromStack(this); - } - - FLOG( _L("CAspContentDialog::~CAspContentDialog END") ); - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CAspContentDialog::ConstructL() - { - FLOG( _L("CAspContentDialog::ConstructL START") ); - - CAknDialog::ConstructL(R_ASP_CONTENT_DIALOG_MENU); - - iSettingEnforcement = TUtil::SettingEnforcementState(); - - iSettingList = new (ELeave) CArrayPtrFlat(KDefaultArraySize); - - iLocalDataStores = new (ELeave) CDesCArrayFlat(KDefaultArraySize); - iContentList->GetLocalDatabaseList(iDataProviderId, iLocalDataStores); - - TInt count = iLocalDataStores->Count(); - if (count == 0) - { - if (iDataProviderId == KUidNSmlAdapterEMail.iUid) - { - TDialogUtil::ShowErrorNoteL(R_ASP_NO_MAILBOXES); - } - else - { - TDialogUtil::ShowErrorNoteL(R_ASP_LOG_ERR_LOCALDATABASE); - User::Leave(KErrNotFound); - } - } - - InitTaskDataL(); - - // get previous title so it can be restored - iStatusPaneHandler = CStatusPaneHandler::NewL(iAvkonAppUi); - iStatusPaneHandler->StoreOriginalTitleL(); - - // store current navi pane - iStatusPaneHandler->StoreNavipaneL(); - - FLOG( _L("CAspContentDialog::ConstructL END") ); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::ActivateL (from CCoeControl) -// -// Called by system when dialog is activated -//------------------------------------------------------------------------------ -// -void CAspContentDialog::ActivateL() - { - CAknDialog::ActivateL(); - - // this cannot be in ConstructL which is executed before dialog is launched - iAvkonAppUi->AddToStackL(this); - } - -//------------------------------------------------------------------------------ -// CAspContentDialog::CheckContentSettingL -// -// Check if the MSK label is correct for the context -//------------------------------------------------------------------------------ - -void CAspContentDialog::CheckContentSettingL(const TKeyEvent& aKeyEvent) - { - - TInt curIndex = iListBox->CurrentItemIndex(); - TInt count = iSettingList->Count(); - CAspListItemData* lastItem = (*iSettingList)[--count]; - - switch (aKeyEvent.iCode) - { - case EKeyUpArrow: - { - if (curIndex) - { - curIndex--; - } - else - { - curIndex = lastItem->iIndex; - } - break; - } - case EKeyDownArrow: - { - if (curIndex == lastItem->iIndex) - { - curIndex = 0; - } - else - { - curIndex++; - } - break; - } - } - CAspListItemData* curItem = GetItemForIndex(curIndex); - if(curItem->iHidden == EVisibilityReadOnly) - { - UpdateMiddleSoftKeyLabelL(EAknSoftkeyOpen,R_TEXT_SOFTKEY_EMPTY); - iMskEmpty = ETrue; - return; - } - if(iMskEmpty) - { - UpdateMiddleSoftKeyLabelL(EAknSoftkeyEmpty,R_QTN_MSK_CHANGE); - iMskEmpty = EFalse; - } - - } - -//------------------------------------------------------------------------------ -// CAspContentDialog::UpdateMiddleSoftKeyLabelL -// -// Update the MSK -//------------------------------------------------------------------------------ - void CAspContentDialog::UpdateMiddleSoftKeyLabelL(TInt aCommandId,TInt aResourceId) - { - ButtonGroupContainer().RemoveCommandFromStack(KMSKControlId,aCommandId ); - HBufC* middleSKText = StringLoader::LoadLC( aResourceId ); - - ButtonGroupContainer().AddCommandToStackL( - KMSKControlId, - aCommandId, - *middleSKText ); - CleanupStack::PopAndDestroy( middleSKText ); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::GetHelpContext -// -//------------------------------------------------------------------------------ -// -void CAspContentDialog::GetHelpContext(TCoeHelpContext& aContext) const - { - aContext.iMajor = KUidSmlSyncApp; - - TInt dataProvider = DataProviderType(); - if (dataProvider == EApplicationIdContact) - { - aContext.iContext = KDS_HLP_SETTINGS_CNT; - } - else if (dataProvider == EApplicationIdCalendar) - { - aContext.iContext = KDS_HLP_SETTINGS_CAL; - } - else if (dataProvider == EApplicationIdNote) - { - aContext.iContext = KDS_HLP_SETTINGS_NOTES; - } - else if (dataProvider == EApplicationIdSms) - { - aContext.iContext = KDS_HLP_SETTINGS_SMS; - } - else - { - aContext.iContext = KDS_HLP_MAIN_VIEW; // unknown application - } - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::ProcessCommandL -// -// Handle menu commands. -//------------------------------------------------------------------------------ -// -void CAspContentDialog::ProcessCommandL( TInt aCommandId ) - { - HideMenu(); - - switch (aCommandId) - { - - case EAknCmdHelp: - { - TUtil::LaunchHelpAppL(iEikonEnv); - break; - } - - case EAspMenuCmdChange: - { - HandleOKL(); - - break; - } - - case EAspMenuCmdExit: - case EAknCmdExit: - case EEikCmdExit: - { - // close dialog and exit calling application - iAvkonAppUi->ProcessCommandL(EAknCmdExit); - break; - } - - - default: - break; - } - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::OfferKeyEventL -// -// Handle key events. -//------------------------------------------------------------------------------ -// -TKeyResponse CAspContentDialog::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); - } - - case EKeyEnter: - case EKeyOK: // OK button - { - HandleOKL(); - return EKeyWasConsumed; - } - case EKeyUpArrow: - case EKeyDownArrow: - { - if(!iSettingEnforcement) - { - TRAPD(err ,CheckContentSettingL(aKeyEvent)); - User::LeaveIfError(err); - } - break; - } - } - } - - return CAknDialog::OfferKeyEventL(aKeyEvent, aType); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::OkToExitL -// -//------------------------------------------------------------------------------ -// -TBool CAspContentDialog::OkToExitL(TInt aButtonId) - { - if (aButtonId == EEikBidCancel) - { - // save silently and quit application - TRAP_IGNORE(SaveSettingsL()); - return ETrue; - } - - if (aButtonId == EAknSoftkeyBack) - { - TInt index = CheckMandatoryFields(); - if (index != KErrNotFound) - { - if (!TDialogUtil::ShowConfirmationQueryL(R_ASP_EXIT_ANYWAY)) - { - iListBox->SetCurrentItemIndexAndDraw(index); - return EFalse; // leave dialog open - } - } - - TRAP_IGNORE(SaveSettingsL()); - - return ETrue; - } - - if (aButtonId == EAknSoftkeyOpen||aButtonId == EAknSoftkeyEmpty ) // MSK - { - HandleOKL(); - return EFalse; // leave dialog open - } - - - return CAknDialog::OkToExitL(aButtonId); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::PreLayoutDynInitL -// -// Called by system before the dialog is shown. -//------------------------------------------------------------------------------ -// -void CAspContentDialog::PreLayoutDynInitL() - { - iListBox = (CAknSettingStyleListBox*)Control(EAspContentDialog); - - __ASSERT_ALWAYS(iListBox, TUtil::Panic(KErrGeneral)); - - iListBox->SetListBoxObserver(this); - iListBox->CreateScrollBarFrameL(ETrue); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto); - - SetIconsL(); - - CreateSettingsListL(); - UpdateListBoxL(iListBox, iSettingList); - TInt curIndex = iListBox->CurrentItemIndex(); - - CAspListItemData* curItem = GetItemForIndex(curIndex); - TBool isPCSuite = CAspProfile::IsPCSuiteProfile(iProfile); - - if(iSettingEnforcement || curItem->iHidden == EVisibilityReadOnly) - { - UpdateMiddleSoftKeyLabelL(EAknSoftkeyOpen,R_TEXT_SOFTKEY_EMPTY); - - } - - //Set title pane text - TInt index = iContentList->FindProviderIndex(iDataProviderId); - if (index != KErrNotFound) - { - TAspProviderItem& item = iContentList->ProviderItem(index); - HBufC* hBuf = CAspResHandler::GetContentTitleLC(iDataProviderId, - item.iDisplayName); - iStatusPaneHandler->SetTitleL(hBuf->Des()); - CleanupStack::PopAndDestroy(hBuf); - } - } - - -// ---------------------------------------------------------------------------- -// CAspContentDialog::SetIconsL -// -// ---------------------------------------------------------------------------- -// -void CAspContentDialog::SetIconsL() - { - if (!iListBox) - { - return; - } - - TFileName bitmapName; - CAspResHandler::GetBitmapFileName(bitmapName); - CArrayPtr* 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* arr = iListBox->ItemDrawer()->FormattedCellData()->IconArray(); - if (arr) - { - arr->ResetAndDestroy(); - delete arr; - arr = NULL; - } - - iListBox->ItemDrawer()->FormattedCellData()->SetIconArrayL(icons); - CleanupStack::Pop(icons); - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::IconL -// -// ----------------------------------------------------------------------------- -// -CGulIcon* CAspContentDialog::IconL(TAknsItemID aId, const TDesC& aFileName, - TInt aFileIndex, TInt aFileMaskIndex) - { - return TDialogUtil::CreateIconL(aId, aFileName, aFileIndex, aFileMaskIndex); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::DynInitMenuPaneL -// -// Called by system before menu is shown. -//------------------------------------------------------------------------------ -// -void CAspContentDialog::DynInitMenuPaneL( TInt aResourceID, CEikMenuPane* aMenuPane) - { - if (aResourceID != R_ASP_CONTENT_DIALOG_MENU_PANE) - { - return; - } - - if (iListBox->Model()->NumberOfItems() == 0) - { - TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdChange); - } - - CAspListItemData* item = GetItemForIndex(iListBox->CurrentItemIndex()); - - if (item->iHidden == EVisibilityReadOnly) - { - TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdChange); - } - - TInt provider = DataProviderType(); - - if (provider == KErrNotFound) - { - TDialogUtil::DeleteMenuItem(aMenuPane, EAknCmdHelp); - } - - if (!FeatureManager::FeatureSupported(KFeatureIdHelp)) - { - TDialogUtil::DeleteMenuItem(aMenuPane, EAknCmdHelp); - } - - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::HandleListBoxEventL -// -// Handle listbox events. -//------------------------------------------------------------------------------ -// -void CAspContentDialog::HandleListBoxEventL(CEikListBox* /*aListBox*/, - TListBoxEvent aEventType) - { - switch ( aEventType ) - { - case EEventItemSingleClicked: - HandleOKL(); - break; - default: - break; - } - } - - -//----------------------------------------------------------------------------- -// CAspContentDialog::HandleOKL -// -// Handle content parameter editing. -//----------------------------------------------------------------------------- -// -void CAspContentDialog::HandleOKL() - { - CAspListItemData* item = GetItemForIndex(iListBox->CurrentItemIndex()); - if (item->iHidden == EVisibilityReadOnly) - { - if(!iSettingEnforcement) - { - TDialogUtil::ShowInformationNoteL(R_ASP_NOTE_READ_ONLY); - } - else - { - TDialogUtil::ShowInformationNoteL(R_ASP_PROTECTED_SETTING); - } - return; - } - - if (EditSettingItemL(*item)) - { - SetVisibility(); - UpdateListBoxL(iListBox, iSettingList); - } - } - - -// ---------------------------------------------------------------------------- -// CAspContentDialog::HandleResourceChange -// -// ---------------------------------------------------------------------------- -// -void CAspContentDialog::HandleResourceChange(TInt aType) - { - if (aType == KEikDynamicLayoutVariantSwitch) //Handle change in layout orientation - { - TRect mainPaneRect; - AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect); - SetRect(mainPaneRect); - iListBox->SetSize(mainPaneRect.Size()); - CCoeControl::HandleResourceChange(aType); - DrawDeferred(); - return; - } - - if (aType == KAknsMessageSkinChange) - { - TRAP_IGNORE(SetIconsL()); - } - - - CCoeControl::HandleResourceChange(aType); - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::InitTaskDataL -// -//------------------------------------------------------------------------------ -// -void CAspContentDialog::InitTaskDataL() - { - iContentList->ReadTaskL(iDataProviderId, iLocalDatabase, iRemoteDatabase, - iTaskEnabled, iSyncDirection); - - if (iSettingEnforcement) - { - return; - } - - // check that local database exists - if (iLocalDatabase.Length() > 0) - { - TInt pos = 0; - if (iLocalDataStores->Find(iLocalDatabase, pos) != 0) - { - iLocalDatabase = KNullDesC; // local database not found - iDataStoreChanged = ETrue; - } - } - - if (iLocalDatabase.Length() == 0) - { - if (iDataProviderId == KUidNSmlAdapterEMail.iUid) - { - iContentList->UpdateDataProviderL(iDataProviderId); - } - - TInt index = iContentList->FindProviderIndex(iDataProviderId); - if (index != KErrNotFound) - { - TAspProviderItem& item = iContentList->ProviderItem(index); - if (item.iDefaultDataStore.Length() > 0) - { - iLocalDatabase = item.iDefaultDataStore; - iDataStoreChanged = ETrue; - } - } - } - } - - -// ---------------------------------------------------------------------------- -// CAspContentDialog::UpdateListBoxL -// -// Add settings headers into listbox. -// ---------------------------------------------------------------------------- -// -void CAspContentDialog::UpdateListBoxL(CEikTextListBox* aListBox, - CAspSettingList* aItemList) - { - CDesCArray* arr = (CDesCArray*)aListBox->Model()->ItemTextArray(); - arr->Reset(); - - TInt count = aItemList->Count(); - for (TInt index=0; indexDeleteAllowed(); - - CAspListItemData* item = (*aItemList)[index]; - TInt id=item->iItemId; - if(iSettingEnforcement) - { - if(id==EAspLocalDatabase ||id==EAspRemoteDatabase ) - convert=EFalse; - } - else - { - if(isPCSuite|| !readOnly) - { - if(id==EAspRemoteDatabase) - convert=EFalse; - } - - } - 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; - } - } - - aListBox->HandleItemAdditionL(); - } - - -// ---------------------------------------------------------------------------- -// CAspContentDialog::CreateSettingsListL -// -// ---------------------------------------------------------------------------- -// -void CAspContentDialog::CreateSettingsListL() - { - AddItemL(EAspLocalDatabase, R_ASP_SETT_LOCAL_DATABASE); - AddRemoteDatabaseL(iDataProviderId); - - // write setting data into each CAspListItemData - TInt count = iSettingList->Count(); - for (TInt i=0; iSetHeaderL(aResourceId); - item->iItemId = aItemId; - iSettingList->AppendL(item); - CleanupStack::Pop(item); - } - - -// ---------------------------------------------------------------------------- -// CAspContentDialog::AddRemoteDatabaseL -// -// ---------------------------------------------------------------------------- -// -void CAspContentDialog::AddRemoteDatabaseL(TInt aDataProviderId) - { - CAspListItemData* item = CAspListItemData::NewLC(); - TInt resId = CAspResHandler::RemoteDatabaseHeaderId(aDataProviderId); - item->SetHeaderL(resId); - item->iItemId = EAspRemoteDatabase; - iSettingList->AppendL(item); - CleanupStack::Pop(item); - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::SetVisibility -// -// ----------------------------------------------------------------------------- -// -void CAspContentDialog::SetVisibility() - { - TBool isPCSuite = CAspProfile::IsPCSuiteProfile(iProfile); - TBool readOnly = iProfile->DeleteAllowed(); - - Item(EAspLocalDatabase)->iHidden = EVisibilityNormal; - if (iLocalDataStores->Count() < 2) - { - if (iDialogParam->iDataProviderId != KUidNSmlAdapterEMail.iUid) - { - Item(EAspLocalDatabase)->iHidden = EVisibilityHidden; - } - } - - if (isPCSuite) - { - if (Item(EAspLocalDatabase)->iHidden == EVisibilityNormal) - { - if (iDialogParam->iDataProviderId != KUidNSmlAdapterEMail.iUid) - { - Item(EAspLocalDatabase)->iHidden = EVisibilityReadOnly; - } - } - - TInt provider = DataProviderType(); - if (provider != KErrNotFound) - { - Item(EAspRemoteDatabase)->iHidden = EVisibilityReadOnly; - } - } - - if(!readOnly) - { - TInt provider = DataProviderType(); - if (provider != KErrNotFound) - { - Item(EAspRemoteDatabase)->iHidden = EVisibilityReadOnly; - } - } - - if (iSettingEnforcement) - { - SetAllReadOnly(); // profile database is locked - } - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::SetAllReadOnly -// -// ----------------------------------------------------------------------------- -// -void CAspContentDialog::SetAllReadOnly() - { - TInt count = iSettingList->Count(); - - for (TInt i=0; iiHidden != EVisibilityHidden) - { - item->iHidden = EVisibilityReadOnly; - } - } - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::InitSettingItemL -// -// Constructs CAspListItemData for one setting. -// ----------------------------------------------------------------------------- -// -void CAspContentDialog::InitSettingItemL(CAspListItemData* aItem) - { - iBuf = KNullDesC; // reset common buffer - - switch (aItem->iItemId) - { - case EAspLocalDatabase: - { - aItem->SetValueL(iLocalDatabase); - aItem->SetDisplayValueL(R_ASP_SETTING_VALUE_NONE); - - aItem->iMaxLength = KAspMaxLocalNameLength; - aItem->iLatinInput = ETrue; - aItem->iItemType = CAspListItemData::ETypeLocalDatabase; - break; - } - - case EAspRemoteDatabase: - { - aItem->SetValueL(iRemoteDatabase); - aItem->SetDisplayValueL(R_ASP_MUST_BE_DEFINED); - - aItem->iMaxLength = KAspMaxRemoteNameLength; - aItem->iLatinInput = ETrue; - aItem->iMandatory = ETrue; - aItem->iItemType = CAspListItemData::ETypeText; - break; - } - - default: - break; - } - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::SaveSettingsL -// -// Save content settings. -//------------------------------------------------------------------------------ -// -void CAspContentDialog::SaveSettingsL() - { - if (iSettingEnforcement) - { - return; - } - - TBool localDatabaseChanged = EFalse; - TBool remoteDatabaseChanged = EFalse; - - TPtrC ptr1 = Item(EAspLocalDatabase)->Value(); - if (ptr1.Compare(iLocalDatabase) != 0) - { - localDatabaseChanged = ETrue; - } - - TPtrC ptr2 = Item(EAspRemoteDatabase)->Value(); - if (ptr2.Compare(iRemoteDatabase) != 0) - { - remoteDatabaseChanged = ETrue; - } - - if (remoteDatabaseChanged || localDatabaseChanged || iDataStoreChanged) - { - iLocalDatabase = Item(EAspLocalDatabase)->Value(); - iRemoteDatabase = Item(EAspRemoteDatabase)->Value(); - - iContentList->CreateTaskL(iDataProviderId, iLocalDatabase, iRemoteDatabase, - iTaskEnabled, iSyncDirection); - - iContentList->InitAllTasksL(); // iContentList comes from main view - } - -#ifdef RD_DSUI_TIMEDSYNC - CAspSchedule* schedule = CAspSchedule::NewLC(); - TInt profileId = schedule->ProfileId(); - if (profileId == iProfile->ProfileId()) - { - schedule->UpdateProfileSettingsL(); - } - CleanupStack::PopAndDestroy(schedule); -#endif - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::CheckMandatoryFields -// -// Check that mandatory fields are filled correctly. -//------------------------------------------------------------------------------ -// -TInt CAspContentDialog::CheckMandatoryFields() - { - if (iSettingEnforcement) - { - return KErrNotFound; - } - - if (!iContentList->TaskEnabled(iDataProviderId)) - { - return KErrNotFound; // not part of sync - no need to check mandatory - } - - TInt count = iSettingList->Count(); - for (TInt i=0; iiMandatory && item->IsEmpty() && (item->iHidden == EVisibilityNormal)) - { - return item->iIndex; - } - } - - return KErrNotFound; - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::EditSettingItemL -// -// Calls setting editing functions. -//------------------------------------------------------------------------------ -// -TBool CAspContentDialog::EditSettingItemL(CAspListItemData& aItem) - { - TBool ret = EFalse; - - switch (aItem.iItemType) - { - case CAspListItemData::ETypeText: - ret = EditSettingItemTextL(aItem); - break; - - case CAspListItemData::ETypeList: - ret = EditSettingItemListL(aItem); - break; - - case CAspListItemData::ETypeLocalDatabase: - ret = EditSettingItemLocalDatabaseL(aItem); - break; - - default: - break; - - } - - return ret; - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::EditSettingItemListL -// -//------------------------------------------------------------------------------ -// -TBool CAspContentDialog::EditSettingItemListL(CAspListItemData& aItem) - { - TInt curSelection = aItem.iNumberData; - CDesCArray* arr = CAspResHandler::ReadDesArrayStaticLC(aItem.iResource); - - TBool ret = TDialogUtil::ShowListEditorL(arr, aItem.Header(), curSelection); - if (ret) - { - aItem.iNumberData = curSelection; - aItem.SetValueL((*arr)[curSelection]); - } - - CleanupStack::PopAndDestroy(arr); - return ret; - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::EditSettingItemTextL -// -// Edit text setting item. -//------------------------------------------------------------------------------ -// -TBool CAspContentDialog::EditSettingItemTextL(CAspListItemData& aItem) - { - TUtil::StrCopy(iBuf, aItem.Value()); - - TBool ret = TDialogUtil::ShowTextEditorL(iBuf, aItem.Header(), - aItem.iMandatory, aItem.iLatinInput, aItem.iMaxLength); - if (ret) - { - aItem.SetValueL(iBuf); - } - - return ret; - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::EditSettingItemLocalDatabaseL -// -//------------------------------------------------------------------------------ -// -TBool CAspContentDialog::EditSettingItemLocalDatabaseL(CAspListItemData& aItem) - { - if (iLocalDataStores->Count() < 1) - { - if (iDataProviderId == KUidNSmlAdapterEMail.iUid) - { - TDialogUtil::ShowErrorNoteL(R_ASP_NO_MAILBOXES); - } - - return EFalse; - } - - TInt curSelection = 0; - TInt countDatabase = iLocalDataStores->Count(); - - while (iLocalDataStores->Find(iLocalDatabase, curSelection) && (curSelection < countDatabase)) - { - curSelection++; - } - if (TDialogUtil::ShowListEditorL(iLocalDataStores, aItem.Header(), curSelection)) - { - aItem.SetValueL((*iLocalDataStores)[curSelection]); - return ETrue; - } - - return EFalse; - } - - -//------------------------------------------------------------------------------ -// CAspContentDialog::EditSettingItemYesNoL -// -// Change Yes/No value straight if ok key is pressed. -//------------------------------------------------------------------------------ -// -TBool CAspContentDialog::EditSettingItemYesNoL(CAspListItemData& aItem) - { - CDesCArray* arr = CAspResHandler::ReadDesArrayStaticLC(aItem.iResource); - - if (aItem.iNumberData == EAspSettingDisabled) - { - aItem.iNumberData = EAspSettingEnabled; - } - else - { - aItem.iNumberData = EAspSettingDisabled; - } - - - // store localized setting text (Yes/No) - aItem.SetValueL( (*arr)[aItem.iNumberData] ); - - CleanupStack::PopAndDestroy(arr); - return ETrue; - } - - -//----------------------------------------------------------------------------- -// CAspContentDialog::GetItemForIndex -// -// Find item in list position aIndex. -//----------------------------------------------------------------------------- -// -CAspListItemData* CAspContentDialog::GetItemForIndex(TInt aIndex) - { - CAspListItemData* item = NULL; - - TInt count = iSettingList->Count(); - for (TInt i=0; iiIndex == aIndex) - { - item = temp; - break; - } - } - - __ASSERT_ALWAYS(item, TUtil::Panic(KErrGeneral)); - - return item; - } - - -//----------------------------------------------------------------------------- -// CAspContentDialog::Item -// -// Find item with aItemId (TAspConnectionSettingItem). -//----------------------------------------------------------------------------- -// -CAspListItemData* CAspContentDialog::Item(TInt aItemId) - { - CAspListItemData* item = NULL; - - TInt count = iSettingList->Count(); - for (TInt i=0; iiItemId == aItemId) - { - item = temp; - break; - } - } - - __ASSERT_ALWAYS(item, TUtil::Panic(KErrGeneral)); - - return item; - } - - -// ----------------------------------------------------------------------------- -// CAspContentDialog::DataProviderType -// -// ----------------------------------------------------------------------------- -// -TInt CAspContentDialog::DataProviderType() const - { - if (iDialogParam->iDataProviderId == KUidNSmlAdapterContact.iUid) - { - return EApplicationIdContact; - } - if (iDialogParam->iDataProviderId == KUidNSmlAdapterCalendar.iUid) - { - return EApplicationIdCalendar; - } - if (iDialogParam->iDataProviderId == KUidNSmlAdapterEMail.iUid) - { - return EApplicationIdEmail; - } - if (iDialogParam->iDataProviderId == KUidNSmlAdapterNote.iUid) - { - return EApplicationIdNote; - } - if (iDialogParam->iDataProviderId == KUidNSmlAdapterSms.iUid) - { - return EApplicationIdSms; - } - if (iDialogParam->iDataProviderId == KUidNSmlAdapterMMS.iUid) - { - return EApplicationIdMms; - } - if (iDialogParam->iDataProviderId == KUidNSmlAdapterBookmarks.iUid) - { - return EApplicationIdBookmarks; - } - - return KErrNotFound; - } - - - - -// End of file -