diff -r 2bb96f4ecad8 -r 8e7494275d3a omads/omadsappui/AspSyncUtil/src/AspContentListDialog.cpp --- a/omads/omadsappui/AspSyncUtil/src/AspContentListDialog.cpp Thu Aug 19 09:41:17 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,493 +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 "AspContentListDialog.h" -#include "AspContentDialog.h" -#include "AspDialogUtil.h" -#include "AspSyncUtil.rh" // for menu command ids -#include "AspUtil.h" -#include "AspDebug.h" -#include "AspDefines.h" -#include "AspResHandler.h" -#include - - -#include // for bitmap enumerations -#include // GulArray -#include // FeatureManager - - - -// ============================ MEMBER FUNCTIONS =============================== - - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::ShowDialogL -// -// ----------------------------------------------------------------------------- -// -TBool CAspContentListDialog::ShowDialogL(const TAspParam& aParam) - { - CAspContentListDialog* dialog = CAspContentListDialog::NewL(aParam); - - TBool ret = dialog->ExecuteLD(R_ASP_CONTENT_LIST_DIALOG); - - return ret; - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::NewL -// -// ----------------------------------------------------------------------------- -// -CAspContentListDialog* CAspContentListDialog::NewL(const TAspParam& aParam) - { - FLOG( _L("CAspContentListDialog::NewL START") ); - - CAspContentListDialog* self = new (ELeave) CAspContentListDialog(aParam); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - - FLOG( _L("CAspContentListDialog::NewL END") ); - return(self); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::CAspContentListDialog -// -// ----------------------------------------------------------------------------- -CAspContentListDialog::CAspContentListDialog(const TAspParam& aParam) - { - iApplicationId = aParam.iApplicationId; - iProfile = aParam.iProfile; - iSyncSession = aParam.iSyncSession; - - __ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral)); - __ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral)); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::ConstructL -// -// ----------------------------------------------------------------------------- -void CAspContentListDialog::ConstructL() - { - FLOG( _L("CAspContentListDialog::ConstructL START" ) ); - - // contruct menu for our dialog - CAknDialog::ConstructL(R_ASP_CONTENT_LIST_DIALOG_MENU); - - // get previous title so it can be restored - iStatusPaneHandler = CStatusPaneHandler::NewL(iAvkonAppUi); - iStatusPaneHandler->StoreOriginalTitleL(); - - - TAspParam param(iApplicationId, iSyncSession); - param.iProfile = iProfile; - param.iMode = CAspContentList::EInitAll; - - iContentList = CAspContentList::NewL(param); - - iStatusPaneHandler->SetTitleL(R_ASP_CONTENT_LIST_DIALOG_TITLE); - - FLOG( _L("CAspContentListDialog::ConstructL END") ); - } - - -// ----------------------------------------------------------------------------- -// Destructor -// -// ----------------------------------------------------------------------------- -CAspContentListDialog::~CAspContentListDialog() - { - FLOG( _L("CAspContentListDialog::~CAspContentListDialog START") ); - - if (iAvkonAppUi) - { - iAvkonAppUi->RemoveFromStack(this); - } - - delete iStatusPaneHandler; - delete iContentList; - - FLOG( _L("CAspContentListDialog::~CAspContentListDialog END") ); - } - - -//------------------------------------------------------------------------------ -// CAspContentListDialog::ActivateL (from CCoeControl) -// -// Called by system when dialog is activated. -//------------------------------------------------------------------------------ -// -void CAspContentListDialog::ActivateL() - { - CAknDialog::ActivateL(); - - // this cannot be in ConstructL which is executed before dialog is launched - iAvkonAppUi->AddToStackL(this); - } - - -//------------------------------------------------------------------------------ -// CAspContentListDialog::GetHelpContext -// -//------------------------------------------------------------------------------ -// -void CAspContentListDialog::GetHelpContext(TCoeHelpContext& aContext) const - { - aContext.iMajor = KUidSmlSyncApp; - //aContext.iContext = KDS_HLP_APPS_VIEW; - } - - -//------------------------------------------------------------------------------ -// CAspContentListDialog::ProcessCommandL -// -// Handle commands from menu. -//------------------------------------------------------------------------------ -// -void CAspContentListDialog::ProcessCommandL(TInt aCommandId) - { - HideMenu(); - - switch (aCommandId) - { - case EAspMenuCmdEdit: - { - ShowContentL(); - break; - } - - case EAspMenuCmdHelp: - { - TUtil::LaunchHelpAppL(iEikonEnv); - break; - } - - case EAspMenuCmdExit: - case EAknCmdExit: - case EEikCmdExit: - { - // close dialog and exit calling application - iAvkonAppUi->ProcessCommandL(EAknCmdExit); - break; - } - - default: - { - break; - } - } - } - - -//------------------------------------------------------------------------------ -// CAspContentListDialog::OkToExitL -// -//------------------------------------------------------------------------------ -// -TBool CAspContentListDialog::OkToExitL(TInt aButtonId) - { - if (aButtonId == EEikBidCancel) - { - // exit going on - must return true. - return ETrue; - } - - if (aButtonId == EAknSoftkeyBack) - { - return ETrue; - } - - return CAknDialog::OkToExitL(aButtonId); - } - - -// ---------------------------------------------------------------------------- -// CAspContentListDialog::OfferKeyEventL -// -// ---------------------------------------------------------------------------- -// -TKeyResponse CAspContentListDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) - { - if (aType == EEventKey) - { - switch (aKeyEvent.iCode) - { - case EKeyOK: - { - ShowContentL(); - return EKeyWasConsumed; - } - - case EKeyEscape: // framework calls this when dialog must shut down - { - return CAknDialog::OfferKeyEventL(aKeyEvent, aType); - } - - default: - { - break; - } - } - } - - return CAknDialog::OfferKeyEventL( aKeyEvent, aType); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::PreLayoutDynInitL -// -// Called by framework before dialog is shown. -// ----------------------------------------------------------------------------- -// -void CAspContentListDialog::PreLayoutDynInitL() - { - iSettingListBox = (CAknDoubleLargeStyleListBox*) ControlOrNull (EAspContentListDialogList); - - __ASSERT_ALWAYS(iSettingListBox, TUtil::Panic(KErrGeneral)); - - iSettingListBox->SetListBoxObserver(this); - iSettingListBox->CreateScrollBarFrameL(ETrue); - iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto ); - - TFileName bitmapName; - CAspResHandler::GetBitmapFileName(bitmapName); - - CArrayPtr* icons = new (ELeave) CAknIconArray(KDefaultArraySize); - CleanupStack::PushL(icons); - - // NOTE: icons must be appended in correct order (TAspContentListDialogIconIndex) - icons->AppendL(IconL(KAknsIIDQgnPropSmlSyncServer, bitmapName, EMbmAspsyncutilQgn_prop_sml_sync_server, EMbmAspsyncutilQgn_prop_sml_sync_server_mask)); - icons->AppendL(IconL(KAknsIIDQgnPropSmlSyncToServer, bitmapName, EMbmAspsyncutilQgn_prop_sml_sync_to_server, EMbmAspsyncutilQgn_prop_sml_sync_to_server_mask)); - icons->AppendL(IconL(KAknsIIDQgnPropSmlSyncFromServer, bitmapName, EMbmAspsyncutilQgn_prop_sml_sync_from_server, EMbmAspsyncutilQgn_prop_sml_sync_from_server_mask)); - icons->AppendL(IconL(KAknsIIDQgnPropSmlSyncOff, bitmapName, EMbmAspsyncutilQgn_prop_sml_sync_off, EMbmAspsyncutilQgn_prop_sml_sync_off_mask)); - - iSettingListBox->ItemDrawer()->FormattedCellData()->SetIconArrayL(icons); - CleanupStack::Pop(icons); - - UpdateListBoxL(); - - iSettingListBox->UpdateScrollBarsL(); - iSettingListBox->ScrollBarFrame()->MoveVertThumbTo(0); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::IconL -// -// ----------------------------------------------------------------------------- -// -CGulIcon* CAspContentListDialog::IconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileIndex, TInt aFileMaskIndex) - { - return TDialogUtil::CreateIconL(aId, aFileName, aFileIndex, aFileMaskIndex); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::DynInitMenuPaneL -// -// Called by framework before menu is shown. -// ----------------------------------------------------------------------------- -// -void CAspContentListDialog::DynInitMenuPaneL(TInt aResourceID, CEikMenuPane* /*aMenuPane*/) - { - if (aResourceID != R_ASP_CONTENT_LIST_DIALOG_MENU_PANE) - { - return; - } - - if (!FeatureManager::FeatureSupported(KFeatureIdHelp)) - { - TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdHelp); - } - - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::HandleListBoxEventL (from MEikListBoxObserver) -// -// ----------------------------------------------------------------------------- -// -void CAspContentListDialog::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent /*aEventType*/) - { - } - - -// ---------------------------------------------------------------------------- -// CAspContentListDialog::HandleResourceChange -// -// ---------------------------------------------------------------------------- -// -void CAspContentListDialog::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; - } - - CCoeControl::HandleResourceChange(aType); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::UpdateListBoxL -// -// ----------------------------------------------------------------------------- -// -void CAspContentListDialog::UpdateListBoxL() - { - TInt iconIndex = EIconNotDefined; - - CAknDoubleLargeStyleListBox* listBox = ListBox(); - CDesCArray* items = (CDesCArray*) listBox->Model()->ItemTextArray(); - items->Reset(); - listBox->ItemDrawer()->ClearAllPropertiesL(); - - TInt count = iContentList->ProviderCount(); - - for (TInt i=0; iProviderItem(i); - - firstLine = CAspResHandler::GetContentNameLC(providerItem.iDataProviderId, providerItem.iDisplayName); - - TInt index = iContentList->FindTaskIndexForProvider(providerItem.iDataProviderId); - - if (index != KErrNotFound) - { - TAspTaskItem& task = iContentList->TaskItem(index); - TInt status = iContentList->CheckMandatoryTaskDataL(task.iTaskId); - if (status == EMandatoryOk) - { - secondLine = CAspResHandler::ReadLC(R_ASP_DEFINED); - if (task.iSyncDirection == ESyncDirectionTwoWay) - { - iconIndex = EIconBothDirections; - } - if (task.iSyncDirection == ESyncDirectionOneWayFromDevice) - { - iconIndex = EIconDeviceToServer; - } - if (task.iSyncDirection == ESyncDirectionOneWayIntoDevice) - { - iconIndex = EIconServerToDevice; - } - } - else - { - secondLine = CAspResHandler::ReadLC(R_ASP_NOT_DEFINED); - } - } - else - { - secondLine = CAspResHandler::ReadLC(R_ASP_NOT_DEFINED); - } - - TPtr ptr1 = firstLine->Des(); - AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr1); - TPtr ptr2 = secondLine->Des(); - AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr2); - - HBufC* hBuf = NULL; - hBuf = TDialogUtil::ConstructListBoxItemLC(firstLine->Des(), secondLine->Des(), iconIndex); - - items->AppendL(hBuf->Des()); - - CleanupStack::PopAndDestroy(hBuf); - CleanupStack::PopAndDestroy(secondLine); - CleanupStack::PopAndDestroy(firstLine); - } - - listBox->HandleItemAdditionL(); - - if (listBox->Model()->NumberOfItems() == 0) - { - User::Leave(KErrNotFound); - } - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::ShowContentL -// -// ----------------------------------------------------------------------------- -// -void CAspContentListDialog::ShowContentL() - { - TAspParam param(iApplicationId, iSyncSession); - param.iProfile = iProfile; - param.iDataProviderId = SelectedProvider().iDataProviderId; - param.iSyncTaskId = KErrNotFound; - - CAspContentDialog::ShowDialogL(param); - - iContentList->InitAllTasksL(); - - UpdateListBoxL(); - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::ListBox -// -// ----------------------------------------------------------------------------- -// -CAknDoubleLargeStyleListBox* CAspContentListDialog::ListBox() - { - __ASSERT_DEBUG(iSettingListBox, TUtil::Panic(KErrGeneral)); - - return iSettingListBox; - } - - -// ----------------------------------------------------------------------------- -// CAspContentListDialog::SelectedProvider -// -// ----------------------------------------------------------------------------- -// -TAspProviderItem& CAspContentListDialog::SelectedProvider() - { - TInt index = ListBox()->CurrentItemIndex(); - - return iContentList->ProviderItem(index); - } - - - -// End of File