omads/omadsappui/AspSyncUtil/src/AspSettingDialog.cpp
branchRCL_3
changeset 25 4f0867e42d62
equal deleted inserted replaced
24:8e7494275d3a 25:4f0867e42d62
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include <AknIconArray.h>   // for GulArray
       
    21 #include <aknconsts.h>      // for KAvkonBitmapFile
       
    22 
       
    23 #include "AspSettingDialog.h"
       
    24 #include "AspProfileDialog.h"
       
    25 #include "AspScheduleDialog.h"
       
    26 #include "AspSchedule.h"
       
    27 #include "AspDialogUtil.h"
       
    28 #include "AspLogDialog.h"
       
    29 #include "AspUtil.h"
       
    30 #include "AspProfileWizardDialog.h"
       
    31 #include "AspDebug.h"
       
    32 #include "AspSyncUtil.rh"
       
    33 #include "AspAdvanceSettingsDialog.h"
       
    34 
       
    35 #include <aknsettingitemlist.h>
       
    36 
       
    37 #include <csxhelp/ds.hlp.hrh>  // for help text ids
       
    38 
       
    39 #ifndef RD_DSUI_TIMEDSYNC 
       
    40 #include <avkon.mbg>
       
    41 #else
       
    42 #include "AspSettingViewDialog.h"
       
    43 #endif
       
    44 #include <DataSyncInternalPSKeys.h>
       
    45 #include "AspAutoSyncHandler.h"
       
    46 #include <featmgr.h>   // FeatureManager
       
    47 
       
    48 const TInt KMSKControlId( CEikButtonGroupContainer::EMiddleSoftkeyPosition );
       
    49 
       
    50 
       
    51 
       
    52 
       
    53 // ============================ MEMBER FUNCTIONS ===============================
       
    54 
       
    55 
       
    56 
       
    57 
       
    58 /******************************************************************************
       
    59  * class CAspSettingDialog
       
    60  ******************************************************************************/
       
    61 
       
    62 // -----------------------------------------------------------------------------
       
    63 // CAspSettingDialog::ShowDialogL
       
    64 // 
       
    65 // -----------------------------------------------------------------------------
       
    66 //
       
    67 TBool CAspSettingDialog::ShowDialogL(TAspParam& aParam)
       
    68 	{
       
    69     CAspSettingDialog* dialog = CAspSettingDialog::NewL(aParam);
       
    70 
       
    71 	TBool ret = dialog->ExecuteLD(R_ASP_SETTING_DIALOG);
       
    72 
       
    73 	return ret;
       
    74 	}
       
    75 
       
    76 
       
    77 // -----------------------------------------------------------------------------
       
    78 // CAspSettingDialog::NewL
       
    79 //
       
    80 // -----------------------------------------------------------------------------
       
    81 //
       
    82 CAspSettingDialog* CAspSettingDialog::NewL(TAspParam& aParam)
       
    83     {
       
    84     FLOG( _L("CAspSettingDialog::NewL START") );
       
    85 
       
    86     CAspSettingDialog* self = new (ELeave) CAspSettingDialog(aParam);
       
    87     CleanupStack::PushL(self);
       
    88     self->ConstructL();
       
    89     CleanupStack::Pop(self);
       
    90 
       
    91     FLOG( _L("CAspSettingDialog::NewL END") );
       
    92     return self;
       
    93     }
       
    94 
       
    95 
       
    96 // -----------------------------------------------------------------------------
       
    97 // CAspSettingDialog::CAspSettingDialog
       
    98 // 
       
    99 // -----------------------------------------------------------------------------
       
   100 //
       
   101 CAspSettingDialog::CAspSettingDialog(TAspParam& aParam) 
       
   102     {
       
   103 	iApplicationId = aParam.iApplicationId;
       
   104 	iSyncSession = aParam.iSyncSession;
       
   105 	iDialogMode = aParam.iMode;
       
   106 	
       
   107 	iCurrentProfileId = KErrNotFound;
       
   108 	iCurrentProfileName = KNullDesC;
       
   109 	
       
   110 	__ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral));
       
   111     }
       
   112 
       
   113 
       
   114 // -----------------------------------------------------------------------------
       
   115 // CAspSettingDialog::ConstructL
       
   116 //
       
   117 // -----------------------------------------------------------------------------
       
   118 //
       
   119 void CAspSettingDialog::ConstructL()
       
   120     {
       
   121     FLOG( _L("CAspSettingDialog::ConstructL START") );
       
   122 
       
   123     CAknDialog::ConstructL(R_ASP_SETTING_DIALOG_MENU);
       
   124     
       
   125     iSettingEnforcement = TUtil::SettingEnforcementState();
       
   126 
       
   127 	TAspParam param(iApplicationId, iSyncSession);
       
   128 	iProfileList = CAspProfileList::NewL(param);
       
   129 	iProfileList->ReadAllProfilesL(CAspProfileList::ENoMandatoryCheck);
       
   130 	iProfileList->Sort();
       
   131 	
       
   132     param.iMode = CAspContentList::EInitDataProviders;
       
   133 	iContentList = CAspContentList::NewL(param);
       
   134 	
       
   135 	// get previous title so it can be restored
       
   136 	iStatusPaneHandler = CStatusPaneHandler::NewL(iAvkonAppUi);
       
   137 	iStatusPaneHandler->StoreOriginalTitleL();
       
   138 	
       
   139 	iAutoSyncDialog = EFalse;
       
   140 	
       
   141 #ifdef RD_DSUI_TIMEDSYNC 
       
   142 
       
   143     iTabHandler = new (ELeave) CAspTabbedNaviPaneHandler(iAvkonAppUi->StatusPane() ,this);
       
   144 	iUpdateTabGroup = ETrue;
       
   145 
       
   146 #else
       
   147 	// store current navi pane
       
   148 	iStatusPaneHandler->StoreNavipaneL();
       
   149 	
       
   150 #endif
       
   151 	
       
   152 	
       
   153 
       
   154 	iResHandler = CAspResHandler::NewL();
       
   155 
       
   156 	// start listening sync database events
       
   157 	iDbNotifier = CAspDbNotifier::NewL(param, this);
       
   158 	iDbNotifier->RequestL();
       
   159 	
       
   160 	iPopupNote = CAknInfoPopupNoteController::NewL();
       
   161     iBearerHandler = CAspBearerHandler::NewL(param);
       
   162 
       
   163 	SetCurrentProfileL();
       
   164 	
       
   165 	FLOG( _L("CAspSettingDialog::ConstructL END") );
       
   166     } 
       
   167 
       
   168 
       
   169 // -----------------------------------------------------------------------------
       
   170 // Destructor
       
   171 //
       
   172 // -----------------------------------------------------------------------------
       
   173 //
       
   174 CAspSettingDialog::~CAspSettingDialog()
       
   175     {
       
   176     FLOG( _L("CAspSettingDialog::~CAspSettingDialog START") );
       
   177 
       
   178 	delete iProfileList;
       
   179 	delete iContentList;
       
   180 	
       
   181 	delete iStatusPaneHandler;
       
   182 	delete iResHandler;
       
   183 	
       
   184 	delete iDbNotifier;
       
   185 	iDbNotifier = NULL;
       
   186 	
       
   187 	delete iSyncHandler;   // created when sync is started
       
   188 	
       
   189 	if (iAvkonAppUi)
       
   190 		{
       
   191 		iAvkonAppUi->RemoveFromStack(this);
       
   192 		}
       
   193 
       
   194 	if (iPopupNote)
       
   195 		{
       
   196     	iPopupNote->HideInfoPopupNote();
       
   197 	    delete iPopupNote;
       
   198 		}
       
   199 
       
   200 	delete iBearerHandler;
       
   201 
       
   202 #ifdef RD_DSUI_TIMEDSYNC
       
   203 
       
   204 	delete iTabHandler;
       
   205 #endif
       
   206 
       
   207 	FLOG( _L("CAspSettingDialog::~CAspSettingDialog END") );
       
   208     }
       
   209 
       
   210 
       
   211 //------------------------------------------------------------------------------
       
   212 // CAspSettingDialog::ActivateL (from CCoeControl)
       
   213 //
       
   214 // Called by system when dialog is activated
       
   215 //------------------------------------------------------------------------------
       
   216 //
       
   217 void CAspSettingDialog::ActivateL()
       
   218 	{
       
   219     CAknDialog::ActivateL();
       
   220 
       
   221 	// this cannot be in ConstructL which is executed before dialog is launched
       
   222 	iAvkonAppUi->AddToStackL(this);
       
   223     }
       
   224 
       
   225 
       
   226 //------------------------------------------------------------------------------
       
   227 // CAspSettingDialog::GetHelpContext
       
   228 //
       
   229 //
       
   230 //------------------------------------------------------------------------------
       
   231 //
       
   232 void CAspSettingDialog::GetHelpContext(TCoeHelpContext& aContext) const
       
   233 	{
       
   234 	aContext.iMajor = KUidSmlSyncApp;
       
   235 	aContext.iContext = KDS_HLP_MAIN_VIEW;    
       
   236 	}
       
   237 
       
   238 
       
   239 //------------------------------------------------------------------------------
       
   240 // CAspSettingDialog::ProcessCommandL
       
   241 //
       
   242 // Handle commands from menu.
       
   243 //------------------------------------------------------------------------------
       
   244 //
       
   245 void CAspSettingDialog::ProcessCommandL(TInt aCommandId)
       
   246 	{
       
   247 	TInt err = KErrNone;
       
   248 
       
   249     // prevent db notifications while processing menu command
       
   250 	//Notifier()->SetDisabled(ETrue);
       
   251 	TRAP(err, DoProcessCommandL(aCommandId));
       
   252 	//Notifier()->SetDisabled(EFalse);
       
   253 	
       
   254 	if (err != KErrNone)
       
   255 		{
       
   256 		iDbNotifier->CheckUpdateEventL();
       
   257 		FLOG( _L("### CAspSettingDialog::ProcessCommandL failed (%d) ###"), err );
       
   258 		User::Leave(err);
       
   259 		}
       
   260 	}
       
   261 
       
   262 
       
   263 //------------------------------------------------------------------------------
       
   264 // CAspSettingDialog::DoProcessCommandL
       
   265 //
       
   266 // Handle commands from menu.
       
   267 //------------------------------------------------------------------------------
       
   268 //
       
   269 void CAspSettingDialog::DoProcessCommandL(TInt aCommandId)
       
   270 	{
       
   271 	HideMenu();
       
   272 
       
   273 	switch (aCommandId)
       
   274 		{
       
   275         case EAspMenuCmdSync:
       
   276 			{
       
   277 			SyncProfileL();
       
   278 			break;
       
   279 			}
       
   280 		case EAspMenuCmdCopyFromServer:
       
   281 			{
       
   282 			CopyFromServerL();
       
   283 			break;
       
   284 			}
       
   285         case EAspMenuCmdChangeProfile:
       
   286 			{
       
   287 			ChangeProfileL();
       
   288 			break;
       
   289 			}
       
   290         case EAspMenuCmdEdit:
       
   291 			{
       
   292 			EditProfileL(EDialogModeEdit ,KErrNotFound);
       
   293 			break;
       
   294 			}
       
   295         case EAspMenuCmdNewSet:
       
   296 			{
       
   297 			CreateProfileL();
       
   298 			break;
       
   299 			}
       
   300 		case EAspMenuCmdDelete:
       
   301 			{
       
   302 			DeleteProfileL();
       
   303 	   		break;
       
   304 			}
       
   305 		case EAspMenuCmdViewLog:
       
   306 			{
       
   307 			ShowLogDialogL();
       
   308 			break;
       
   309 			}
       
   310 		case EAspMenuCmdAutoSync:
       
   311 			{
       
   312 			ShowAutoSyncDialogL();
       
   313 			break;
       
   314 			}
       
   315 		case EAspMenuCmdAdvanceSettings:
       
   316 		    {
       
   317 		    //CAspAdvanceSettingsDialog* dialog = CAspAdvanceSettingsDialog::NewL();
       
   318 		    //CleanupStack::PushL(dialog);
       
   319 		        
       
   320 		    CAspAdvanceSettingsDialog::ShowDialogL();
       
   321 		        
       
   322 		    //CleanupStack::PopAndDestroy(dialog);
       
   323 
       
   324 		    //ShowContextMenuL(R_ASP_ROAMING_SETTINGS_CONTEXT_MENU);
       
   325 		    break;
       
   326 		    }
       
   327         case EAspMenuCmdRoamingSettings:
       
   328             {
       
   329             ShowContextMenuL(R_ASP_ROAMING_SETTINGS_CONTEXT_MENU);
       
   330             break;
       
   331             }		
       
   332 
       
   333 		case EAspMenuCmdMark:
       
   334 		case EAspMenuCmdUnmark:
       
   335 			{
       
   336 			SaveSelectionL();
       
   337 			break;	
       
   338 			}
       
   339     case EAknCmdHelp:
       
   340 			{
       
   341             TUtil::LaunchHelpAppL(iEikonEnv);
       
   342 			break;
       
   343 		  }
       
   344 
       
   345         case EAspMenuCmdExit:
       
   346         case EAknCmdExit:
       
   347         case EEikCmdExit:
       
   348 			{
       
   349    		
       
   350             //
       
   351 			// Exit dialog
       
   352 			//
       
   353 			// CEikAppUi::ProcessCommandL starts CAknAppShutter that 
       
   354 			// closes all dialogs and finally calling application. Before 
       
   355 			// dialog is closed (deleted) it's OkToExitL(EEikBidCancel)
       
   356 			// is called. EEikBidCancel means OkToExitL must silently
       
   357 			// save and return ETrue.
       
   358 			//
       
   359 			iAvkonAppUi->ProcessCommandL(EAknCmdExit);
       
   360 
       
   361 			break;
       
   362 			}
       
   363 
       
   364 		default:
       
   365 			{
       
   366 			break;
       
   367 			}
       
   368 		}
       
   369 	}
       
   370 
       
   371 
       
   372 // -----------------------------------------------------------------------------
       
   373 // CAspSettingDialog::OkToExitL
       
   374 //
       
   375 // Called by framework before dialog is closed.
       
   376 // -----------------------------------------------------------------------------
       
   377 //
       
   378 TBool CAspSettingDialog::OkToExitL(TInt aButtonId)
       
   379     {
       
   380     
       
   381 	// Options/Exit, End key, Close key ('c')
       
   382 	if (aButtonId == EEikBidCancel)
       
   383 		{
       
   384 		// framework calls this when dialog must shut down
       
   385     	return ETrue;
       
   386 		}
       
   387 
       
   388 	// Back key (cba)
       
   389 	if (aButtonId == EAknSoftkeyBack)
       
   390         {
       
   391         if( iAutoSyncDialog )
       
   392             {
       
   393             return EFalse;
       
   394             }
       
   395         else
       
   396             {
       
   397             return ETrue;
       
   398             }
       
   399 		}
       
   400 
       
   401     // Exit key (cba)
       
   402 	if (aButtonId == EAknSoftkeyExit)
       
   403         {
       
   404         if (iDialogMode == EModeDialogNoWait && iApplicationId == EApplicationIdSync)
       
   405         	{
       
   406             //  close sync app
       
   407         	iAvkonAppUi->ProcessCommandL(EAknCmdExit);
       
   408         	}
       
   409 
       
   410         return ETrue;
       
   411 		}
       
   412 		
       
   413 	if (aButtonId == EAknSoftkeyMark || aButtonId == EAknSoftkeyUnmark 
       
   414 		|| aButtonId == EAknSoftkeyOpen)  // MSK
       
   415         {
       
   416 
       
   417 		if (iProfileList->Count() == 0)
       
   418 			{
       
   419 			return EFalse;
       
   420 			}
       
   421         
       
   422         if (IsProfileLockedL(iCurrentProfileId))
       
   423         	{
       
   424         	TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
   425 			CancelCheckboxEvent();
       
   426 			return EFalse;
       
   427 			}
       
   428         
       
   429         if (iSettingEnforcement)
       
   430 			{
       
   431 			TDialogUtil::ShowInformationNoteL(R_ASP_PROTECTED_SETTING);
       
   432 			return EFalse;  // leave dialog open;
       
   433 			}
       
   434         
       
   435         if (!CheckEmailSelection())
       
   436         	{
       
   437         	return EFalse;  // leave dialog open;
       
   438         	}
       
   439 				
       
   440 		TInt ret =  SaveCurrentProfile();
       
   441 		if (ret != KErrNone)
       
   442 			{
       
   443 			CancelCheckboxEvent();
       
   444 			}
       
   445 			
       
   446 		return EFalse;  // leave dialog open
       
   447 		}
       
   448 		
       
   449 
       
   450 	return CAknDialog::OkToExitL(aButtonId);
       
   451     }
       
   452 
       
   453 
       
   454 // ----------------------------------------------------------------------------
       
   455 // CAspSettingDialog::CancelMailBoxForEnterL
       
   456 // 
       
   457 // ----------------------------------------------------------------------------
       
   458 //
       
   459 
       
   460 void CAspSettingDialog::CancelMailBoxForEnterL()
       
   461 {
       
   462 	CListBoxView* view = iSettingListBox->View();
       
   463 	
       
   464     TInt index = view->CurrentItemIndex();
       
   465     TAspProviderItem& item = iContentList->ProviderItem(index);
       
   466     TBool selected = view->ItemIsSelected(index);
       
   467     
       
   468     if(selected)
       
   469     {
       
   470         view->DeselectItem(index);
       
   471     }
       
   472     else
       
   473     {
       
   474     	view->SelectItemL(index);
       
   475     }   
       
   476     
       
   477 }
       
   478 
       
   479 
       
   480 // ----------------------------------------------------------------------------
       
   481 // CAspSettingDialog::OfferKeyEventL
       
   482 // 
       
   483 // ----------------------------------------------------------------------------
       
   484 //
       
   485 TKeyResponse CAspSettingDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
       
   486 	{
       
   487 	if (aType == EEventKey)
       
   488 		{
       
   489 		switch (aKeyEvent.iCode)
       
   490 			{
       
   491 			//case EKeyOK:
       
   492 			//	{
       
   493 			//	ShowContextMenuL(R_ASP_SETTING_DIALOG_CONTEXT_MENU);
       
   494 			//	return EKeyWasConsumed;
       
   495 			//	}
       
   496 			case EKeyEnter:
       
   497 			{
       
   498                    CancelMailBoxForEnterL();
       
   499                    OkToExitL(EAknSoftkeyOpen);
       
   500                    return EKeyWasConsumed;
       
   501 			}
       
   502 
       
   503 			case EKeyEscape:  // framework calls this when dialog must shut
       
   504 				{
       
   505 				return CAknDialog::OfferKeyEventL(aKeyEvent, aType);
       
   506         		}
       
   507         		
       
   508 			//case EStdKeyHome:
       
   509 			//	{
       
   510 			//	DeleteSelectedProfileL();
       
   511 			//	return EKeyWasConsumed;
       
   512 			//	}
       
   513 
       
   514 #ifdef RD_DSUI_TIMEDSYNC 
       
   515 
       
   516 			case EKeyLeftArrow:
       
   517 				{
       
   518 				SetPreviousProfileL();
       
   519 				return EKeyWasConsumed;
       
   520 				}
       
   521 
       
   522 			case EKeyRightArrow:
       
   523 				{
       
   524 				SetNextProfileL();
       
   525 				return EKeyWasConsumed;
       
   526 				}
       
   527 
       
   528 #endif
       
   529             default:
       
   530 			    break;
       
   531 			}
       
   532 		}
       
   533 
       
   534 	return CAknDialog::OfferKeyEventL( aKeyEvent, aType);
       
   535 	}
       
   536 
       
   537 
       
   538 // ----------------------------------------------------------------------------
       
   539 // CAspSettingDialog::HandleResourceChange
       
   540 // 
       
   541 // ----------------------------------------------------------------------------
       
   542 //
       
   543 
       
   544 void CAspSettingDialog::HandleResourceChange(TInt aType)
       
   545     {   
       
   546     if (aType == KEikDynamicLayoutVariantSwitch) //Handle change in layout orientation
       
   547         {
       
   548         TRect mainPaneRect;
       
   549         AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect);
       
   550         SetRect(mainPaneRect);
       
   551         iSettingListBox->SetSize(mainPaneRect.Size());
       
   552         CCoeControl::HandleResourceChange(aType);
       
   553 		DrawDeferred();
       
   554 	    return;
       
   555 		}
       
   556 		
       
   557     if (aType == KAknsMessageSkinChange)
       
   558         {
       
   559         TRAP_IGNORE(SetIconsL());
       
   560         }
       
   561         
       
   562     CCoeControl::HandleResourceChange(aType);
       
   563     }
       
   564 
       
   565 /*
       
   566 void CAspSettingDialog::HandleResourceChange(TInt aType)
       
   567     {   
       
   568     if (aType == KEikDynamicLayoutVariantSwitch) //Handle change in layout orientation
       
   569         {
       
   570   
       
   571         TRect mainPaneRect;
       
   572         AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect);
       
   573         TBuf<299> buf;
       
   574         buf.Format(_L("(%d,%d) (%d,%d)"), mainPaneRect.iTl.iX, mainPaneRect.iTl.iY, mainPaneRect.iBr.iX, mainPaneRect.iBr.iY);
       
   575 
       
   576         SetRect(mainPaneRect);
       
   577         iSettingListBox->HandleResourceChange(aType);
       
   578 		DrawNow();
       
   579   
       
   580         
       
   581         CAknDialog::HandleResourceChange(aType);
       
   582         
       
   583         TRect mainPaneRect;
       
   584         AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPaneRect);
       
   585         SetRect(mainPaneRect);
       
   586         
       
   587         iSettingListBox->SetSize(mainPaneRect.Size());
       
   588         //iSettingListBox->HandleResourceChange(aType);
       
   589         CCoeControl::HandleResourceChange(aType);
       
   590 		DrawDeferred();
       
   591 		
       
   592 		
       
   593 	    return;
       
   594 		}
       
   595 		
       
   596     if (aType == KAknsMessageSkinChange)
       
   597         {
       
   598         TRAP_IGNORE(SetIconsL());
       
   599         }
       
   600         
       
   601     CCoeControl::HandleResourceChange(aType);
       
   602     }
       
   603 */
       
   604 
       
   605 // ----------------------------------------------------------------------------
       
   606 // CAspSettingDialog::SetIconsL
       
   607 //
       
   608 // ----------------------------------------------------------------------------
       
   609 //
       
   610 void CAspSettingDialog::SetIconsL()
       
   611     {
       
   612     if (!iSettingListBox)
       
   613     	{
       
   614     	return;
       
   615     	}
       
   616  
       
   617  	TFileName bitmapName;
       
   618 	CAspResHandler::GetBitmapFileName(bitmapName);
       
   619 	CArrayPtr<CGulIcon>* icons = new (ELeave) CAknIconArray(KDefaultArraySize);
       
   620 	CleanupStack::PushL(icons);
       
   621 	
       
   622 	// NOTE: icons must be appended in correct order (TAspSettingDialogIconIndex)
       
   623 	icons->AppendL(IconL(KAknsIIDQgnPropCheckboxOn, KAvkonBitmapFile, 
       
   624 	                     EMbmAvkonQgn_prop_checkbox_on,
       
   625 	                     EMbmAvkonQgn_prop_checkbox_on_mask));
       
   626 	                     
       
   627 	icons->AppendL(IconL(KAknsIIDQgnPropCheckboxOff, KAvkonBitmapFile,
       
   628 	                     EMbmAvkonQgn_prop_checkbox_off,
       
   629 	                     EMbmAvkonQgn_prop_checkbox_off_mask));
       
   630 	
       
   631     // delete old icons
       
   632     CArrayPtr<CGulIcon>* arr = iSettingListBox->ItemDrawer()->FormattedCellData()->IconArray();
       
   633     if (arr)
       
   634     	{
       
   635     	arr->ResetAndDestroy();
       
   636 	    delete arr;
       
   637 	    arr = NULL;
       
   638     	}
       
   639 
       
   640 	iSettingListBox->ItemDrawer()->FormattedCellData()->SetIconArrayL(icons);
       
   641 	CleanupStack::Pop(icons);
       
   642     }
       
   643 
       
   644 
       
   645 // ----------------------------------------------------------------------------
       
   646 // CAspSettingDialog::ShowContextMenuL
       
   647 // 
       
   648 // ----------------------------------------------------------------------------
       
   649 //
       
   650 void CAspSettingDialog::ShowContextMenuL(TInt aResource)
       
   651 	{
       
   652 	if (SyncRunning())
       
   653 		{
       
   654 		return;
       
   655 		}
       
   656 	
       
   657 	//
       
   658 	// Switch to Context specific options menu,
       
   659 	// Show it and switch back to main options menu.
       
   660 	// 
       
   661 	CEikMenuBar* menuBar = iMenuBar; // from CAknDialog
       
   662 	menuBar->SetMenuTitleResourceId(aResource);
       
   663 
       
   664 
       
   665 	// TRAP displaying of menu bar.
       
   666 	// If it fails, the correct resource is set back before leave.
       
   667 	TRAPD(err, menuBar->TryDisplayMenuBarL());
       
   668 	
       
   669 	menuBar->SetMenuTitleResourceId(R_ASP_SETTING_DIALOG_MENU);
       
   670 		
       
   671 	User::LeaveIfError(err);
       
   672 	}
       
   673 
       
   674 
       
   675 // -----------------------------------------------------------------------------
       
   676 // CAspSettingDialog::PostLayoutDynInitL
       
   677 //
       
   678 // Called by framework after dialog is shown.
       
   679 // -----------------------------------------------------------------------------
       
   680 //
       
   681 void CAspSettingDialog::PostLayoutDynInitL()
       
   682 	{
       
   683 	#ifdef RD_DSUI_TIMEDSYNC
       
   684 	ShowAutoSyncProfileInfo();
       
   685 	#else
       
   686   ShowCurrentProfileInfo();
       
   687   #endif
       
   688 	}
       
   689 	
       
   690 
       
   691 // -----------------------------------------------------------------------------
       
   692 // CAspSettingDialog::PreLayoutDynInitL
       
   693 //
       
   694 // Called by framework before dialog is shown.
       
   695 // -----------------------------------------------------------------------------
       
   696 //
       
   697 void CAspSettingDialog::PreLayoutDynInitL()
       
   698     {
       
   699     iSettingListBox = (CAknDoubleLargeStyleListBox*) ControlOrNull (EAspSettingDialogList);
       
   700     
       
   701    	__ASSERT_ALWAYS(iSettingListBox, TUtil::Panic(KErrGeneral));
       
   702 	
       
   703 	iSettingListBox->SetListBoxObserver(this);
       
   704 	iSettingListBox->CreateScrollBarFrameL(ETrue);
       
   705 	iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
       
   706 	                 CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
       
   707 	
       
   708 	SetIconsL();
       
   709 	UpdateListBoxL();
       
   710 
       
   711 #ifdef RD_DSUI_TIMEDSYNC 
       
   712 
       
   713 	UpdateTabsL();
       
   714 #else
       
   715 
       
   716 	UpdateNavipaneL(iCurrentProfileName);
       
   717 #endif
       
   718 
       
   719 	
       
   720 	iSettingListBox->UpdateScrollBarsL();
       
   721 	iSettingListBox->ScrollBarFrame()->MoveVertThumbTo(0);
       
   722 
       
   723 	iStatusPaneHandler->SetTitleL(R_ASP_SETTING_DIALOG_TITLE);
       
   724 
       
   725 	SetCurrentIndex();
       
   726 //#ifdef RD_DSUI_CP_INTEGRATION
       
   727 	TBool flag = CEikonEnv::Static()->StartedAsServerApp() ;
       
   728 	if (flag || iApplicationId != EApplicationIdSync)
       
   729 /*#else
       
   730 	if (iApplicationId != EApplicationIdSync)
       
   731 #endif */
       
   732 		{
       
   733 		UpdateCbaL(R_ASP_CBA_OPTIONS_BACK_MARK);
       
   734 		}
       
   735 		
       
   736 	if(iSettingEnforcement)
       
   737 	{
       
   738 		UpdateMiddleSoftKeyLabelL(EAknSoftkeyOpen,R_TEXT_SOFTKEY_EMPTY);	
       
   739    	}
       
   740 	}
       
   741 
       
   742 
       
   743 // -----------------------------------------------------------------------------
       
   744 // CAspSettingDialog::DynInitMenuPaneL
       
   745 //
       
   746 // Called by framework before menu is shown.
       
   747 // -----------------------------------------------------------------------------
       
   748 //
       
   749 void CAspSettingDialog::DynInitMenuPaneL(TInt aResourceID, 	CEikMenuPane* aMenuPane)
       
   750 	{
       
   751 	TInt menu1 = R_ASP_SETTING_DIALOG_MENU_PANE;
       
   752 	TInt menu2 = R_ASP_SETTING_DIALOG_CONTEXT_MENU_PANE;
       
   753 	
       
   754     if (aResourceID != menu1 && aResourceID != menu2)
       
   755 		{
       
   756 		return; // not one of our menus
       
   757 		}
       
   758 
       
   759 	if (aResourceID == R_ASP_SETTING_DIALOG_CONTEXT_MENU_PANE)
       
   760 		{
       
   761 		InitContextMenuL(aMenuPane); // separate handling for context menu
       
   762 		}
       
   763 	else
       
   764 		{
       
   765 		InitOptionsMenuL(aMenuPane);
       
   766 		}
       
   767 	}
       
   768 
       
   769 
       
   770 // -----------------------------------------------------------------------------
       
   771 // CAspSettingDialog::InitContextMenuL
       
   772 //
       
   773 // -----------------------------------------------------------------------------
       
   774 //
       
   775 void CAspSettingDialog::InitContextMenuL(CEikMenuPane* /*aMenuPane*/)
       
   776 	{
       
   777 	}
       
   778 
       
   779 
       
   780 // -----------------------------------------------------------------------------
       
   781 // CAspSettingDialog::InitOptionsMenuL
       
   782 //
       
   783 // -----------------------------------------------------------------------------
       
   784 //
       
   785 void CAspSettingDialog::InitOptionsMenuL(CEikMenuPane* aMenuPane)
       
   786 	{
       
   787 	TInt profileCount = iProfileList->Count();
       
   788 	TInt providerCount = iContentList->ProviderCount();
       
   789 	TInt deletableProfileCount = iProfileList->DeletableProfileCount();
       
   790 	
       
   791 	if (providerCount == 0)  // no data providers
       
   792 		{
       
   793 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdSync);
       
   794 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdNewSet);
       
   795 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdEdit);
       
   796 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdChangeProfile);
       
   797 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdDelete);
       
   798 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdAutoSync);
       
   799 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdViewLog);
       
   800 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdCopyFromServer);
       
   801 		return;
       
   802     	}
       
   803 	
       
   804 	
       
   805 	// Options/Sync
       
   806 	// Options/Copy all from server
       
   807 	if (iCurrentProfileId == KErrNotFound && profileCount > 0)
       
   808 		{
       
   809 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdSync);
       
   810 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdCopyFromServer);
       
   811 		}
       
   812 	if (iSettingEnforcement && profileCount == 0)
       
   813 		{
       
   814 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdSync);
       
   815 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdCopyFromServer);
       
   816 		}
       
   817 
       
   818 	if (iCurrentProfileId == KErrNotFound)
       
   819 		{
       
   820 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdCopyFromServer);
       
   821 		}
       
   822 
       
   823 	// Options/Change
       
   824 	if (profileCount == 0)
       
   825 		{
       
   826 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdChangeProfile);
       
   827 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdMark);
       
   828 	    TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdUnmark);	 
       
   829 		}
       
   830 	if (profileCount == 1 && iCurrentProfileId != KErrNotFound)
       
   831 		{
       
   832 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdChangeProfile);
       
   833 		}
       
   834 	
       
   835 	// Options/Edit
       
   836 	if (iCurrentProfileId == KErrNotFound)
       
   837 		{
       
   838 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdEdit);
       
   839 		}
       
   840 	
       
   841 	// Options/Auto sync
       
   842 	if (iCurrentProfileId == KErrNotFound)
       
   843 		{
       
   844 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdAutoSync);
       
   845 		}
       
   846 
       
   847 	// Options/New
       
   848 	if (iSettingEnforcement)
       
   849 		{
       
   850 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdNewSet);
       
   851 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdMark);
       
   852 	    TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdUnmark);	 
       
   853 		}
       
   854 
       
   855 	// Options/Delete   
       
   856    if (IsSyncOnGoingL(iCurrentProfileId) || iSettingEnforcement 
       
   857    										|| deletableProfileCount == 0)
       
   858     	{
       
   859     	TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdDelete);
       
   860      	}
       
   861 	
       
   862 	// Options/View log
       
   863 	if (iCurrentProfileId == KErrNotFound)
       
   864 		{
       
   865 		TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdViewLog);
       
   866 		}
       
   867 	
       
   868 	if (!FeatureManager::FeatureSupported(KFeatureIdHelp))
       
   869 		{
       
   870 		TDialogUtil::DeleteMenuItem(aMenuPane, EAknCmdHelp);
       
   871 		}
       
   872 		
       
   873 #ifdef RD_DSUI_TIMEDSYNC 
       
   874 	if(profileCount)
       
   875 		{
       
   876 	 	//Delete active profile
       
   877 	 	TAspParam param(iApplicationId, iSyncSession);
       
   878 	 	TAspProfileItem& currentProfile = CurrentProfileL();
       
   879 	 	if(!currentProfile.iDeleteAllowed)
       
   880 	 		{
       
   881 	    	TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdDelete);
       
   882 			}
       
   883 	 	//Change profile option is removed
       
   884 	 	TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdChangeProfile);
       
   885 	 	
       
   886 
       
   887 	 	CAspSchedule* schedule = CAspSchedule::NewLC();
       
   888 	 	TInt asProfileId = schedule->AutoSyncProfileId();
       
   889 	 	if (iCurrentProfileId == schedule->ProfileId()
       
   890 	 							&& asProfileId != KErrNotFound)
       
   891 			{
       
   892 			CAspProfile* asProfile = CAspProfile::NewLC(param);
       
   893 			asProfile->OpenL(asProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
   894 			if (!asProfile->IsSynced() && !currentProfile.iSynced)
       
   895 				{
       
   896 				TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdViewLog);
       
   897 				}
       
   898 			CleanupStack::PopAndDestroy(asProfile);
       
   899 			}
       
   900 	 	else
       
   901 			{
       
   902 			if (!currentProfile.iSynced)
       
   903 		    	{
       
   904 	        	TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdViewLog);
       
   905 		    	}
       
   906 
       
   907 			}
       
   908 		 CleanupStack::PopAndDestroy(schedule);
       
   909 		}
       
   910 #else
       
   911 	 
       
   912 	 
       
   913 	 TAspProfileItem& profile = CurrentProfileL();
       
   914      if (!profile.iSynced)
       
   915 		 {
       
   916 	         iProfileList->ReadProfileL(iCurrentProfileId);
       
   917 	       }
       
   918 	  
       
   919 	   if (!profile.iSynced)
       
   920 	           {
       
   921 	     TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdViewLog);
       
   922 		 }
       
   923 #endif
       
   924 if(!iSettingEnforcement)
       
   925 {
       
   926 	UpdateMarkMenuItem(aMenuPane);
       
   927 }
       
   928 #ifndef RD_DSUI_TIMEDSYNC
       
   929      TDialogUtil::DeleteMenuItem(aMenuPane, EAspMenuCmdAutoSync);
       
   930 #endif
       
   931 
       
   932 	}
       
   933 
       
   934 // -----------------------------------------------------------------------------
       
   935 // CAspSettingDialog::IsSyncOnGoing
       
   936 //
       
   937 // -----------------------------------------------------------------------------
       
   938 //
       
   939 TBool CAspSettingDialog::IsSyncOnGoingL(TInt aProfileId)
       
   940 	{
       
   941 	TInt currentJobId = CAspProfile::CurrentJob(iSyncSession);
       
   942 	if (currentJobId != KErrNotFound)
       
   943 			{
       
   944 			RSyncMLDataSyncJob syncJob;
       
   945 			syncJob.OpenL(*iSyncSession, currentJobId);
       
   946 			if (syncJob.Profile() == aProfileId)
       
   947 				{
       
   948 				syncJob.Close();
       
   949 				return ETrue;
       
   950 				}
       
   951 			syncJob.Close();
       
   952 			}
       
   953 	return EFalse;
       
   954 	}
       
   955 
       
   956 	
       
   957 #ifdef RD_DSUI_TIMEDSYNC 
       
   958 // -----------------------------------------------------------------------------
       
   959 // CAspSettingDialog::SetNextProfileL
       
   960 //
       
   961 // -----------------------------------------------------------------------------
       
   962 //
       
   963 void CAspSettingDialog::SetNextProfileL()
       
   964 	{
       
   965     FLOG( _L("CAspSettingDialog::SetNextProfileL START") );
       
   966 
       
   967 	if (iProfileList->Count() == 0)
       
   968 		{
       
   969 		return;
       
   970 		}
       
   971     
       
   972     TInt currentIndex = iProfileList->ListIndex(iCurrentProfileId);
       
   973     if (currentIndex == KErrNotFound)
       
   974     	{
       
   975     	FLOG( _L("CAspSettingDialog::SetNextProfileL END") );
       
   976     	
       
   977     	User::Leave(KErrNotFound);
       
   978     	}
       
   979     
       
   980     TInt newIndex = 0;
       
   981     TInt count = iProfileList->Count();
       
   982     if (currentIndex >= count-1)
       
   983         {
       
   984         newIndex = 0;
       
   985         }
       
   986     else
       
   987         {
       
   988         newIndex = currentIndex + 1;
       
   989         }
       
   990     TAspProfileItem& olditem = iProfileList->Item(currentIndex);        
       
   991     TAspProfileItem& item = iProfileList->Item(newIndex);
       
   992 
       
   993 	if (item.iProfileName.Compare(KAutoSyncProfileName) == 0)
       
   994 			{
       
   995 			if(newIndex >= count-1)
       
   996 				{
       
   997 				newIndex = 0;
       
   998 				}
       
   999 			else
       
  1000 				{
       
  1001 				newIndex++;
       
  1002 				}
       
  1003 			TAspProfileItem& newItem = iProfileList->Item(newIndex);
       
  1004 			SetCurrentProfile(newItem.iProfileId);
       
  1005 			}
       
  1006 	else 
       
  1007 		{
       
  1008 		SetCurrentProfile(item.iProfileId);
       
  1009 		}
       
  1010 	
       
  1011 	//ShowCurrentProfileInfo();
       
  1012     UpdateListBoxL();
       
  1013 	//UpdateNavipaneL(iCurrentProfileName);
       
  1014     UpdateTabsL();
       
  1015         
       
  1016     FLOG( _L("CAspSettingDialog::SetNextProfileL END") );
       
  1017 	}
       
  1018 
       
  1019 
       
  1020 // -----------------------------------------------------------------------------
       
  1021 // CAspSettingDialog::SetPreviousProfileL
       
  1022 //
       
  1023 // -----------------------------------------------------------------------------
       
  1024 //
       
  1025 void CAspSettingDialog::SetPreviousProfileL()
       
  1026 	{
       
  1027     FLOG( _L("CAspSettingDialog::SetPreviousProfileL START") );
       
  1028 
       
  1029 	if (iProfileList->Count() == 0)
       
  1030 		{
       
  1031 		return;
       
  1032 		}
       
  1033     
       
  1034     TInt currentIndex = iProfileList->ListIndex(iCurrentProfileId);
       
  1035     if (currentIndex == KErrNotFound)
       
  1036     	{
       
  1037     	FLOG( _L("CAspSettingDialog::SetNextProfileL END") );
       
  1038     	
       
  1039     	User::Leave(KErrNotFound);
       
  1040     	}
       
  1041     
       
  1042     TInt newIndex = 0;
       
  1043     TInt count = iProfileList->Count();
       
  1044     if (currentIndex == 0)
       
  1045         {
       
  1046         newIndex = count - 1;
       
  1047         }
       
  1048     else
       
  1049         {
       
  1050         newIndex = currentIndex - 1;
       
  1051         }
       
  1052    
       
  1053     TAspProfileItem& item = iProfileList->Item(newIndex);
       
  1054 
       
  1055 	if (item.iProfileName.Compare(KAutoSyncProfileName) == 0)
       
  1056 		{
       
  1057 		if(newIndex == 0)
       
  1058 			{
       
  1059 				newIndex = count - 1;
       
  1060 			}
       
  1061 		else
       
  1062 			{
       
  1063 				newIndex--;
       
  1064 			}
       
  1065 			TAspProfileItem& newItem = iProfileList->Item(newIndex);
       
  1066 			SetCurrentProfile(newItem.iProfileId);
       
  1067 		}
       
  1068 	else
       
  1069 		{
       
  1070 		 SetCurrentProfile(item.iProfileId);	
       
  1071 		}
       
  1072 
       
  1073    
       
  1074 	//ShowCurrentProfileInfo();
       
  1075     UpdateListBoxL();
       
  1076 	//UpdateNavipaneL(iCurrentProfileName);
       
  1077 	UpdateTabsL();
       
  1078 
       
  1079     FLOG( _L("CAspSettingDialog::SetPreviousProfileL END") );
       
  1080 	}
       
  1081 
       
  1082 
       
  1083 // -----------------------------------------------------------------------------
       
  1084 // CAspSettingDialog::UpdateTabsL
       
  1085 //
       
  1086 // -----------------------------------------------------------------------------
       
  1087 //
       
  1088 void CAspSettingDialog::UpdateTabsL()
       
  1089 	{
       
  1090     FLOG( _L("CAspSettingDialog::UpdateTabsL START") );
       
  1091 
       
  1092 	TInt count = iProfileList->Count();
       
  1093 	if (count == 0)
       
  1094 		{
       
  1095 		//handle no profile condition
       
  1096 		iTabHandler->DeleteTabsL();
       
  1097 		_LIT(KEmpty, " ");
       
  1098 		TBuf<64> tabText(KEmpty);
       
  1099 		TInt profileId = KMaxProfileCount;
       
  1100 		iTabHandler->AddTabL(tabText, profileId);
       
  1101 		iTabHandler->SetActiveTabL(profileId);
       
  1102 		return;
       
  1103 		}
       
  1104 
       
  1105 	if (iTabHandler->TabIndex(iCurrentProfileId) == KErrNotFound)
       
  1106 		{
       
  1107 		iUpdateTabGroup = ETrue;
       
  1108 		}
       
  1109 	if (iUpdateTabGroup)
       
  1110 		{
       
  1111 		//update changed settings
       
  1112 	    iProfileList->ReadAllProfilesL(CAspProfileList::ENoMandatoryCheck);
       
  1113 		iProfileList->Sort();
       
  1114     	SetCurrentProfile(iCurrentProfileId);
       
  1115 		count = iProfileList->Count();
       
  1116 		iTabHandler->DeleteTabsL();
       
  1117         for (TInt i=0; i<count; i++)
       
  1118         	{
       
  1119         	TAspProfileItem& item = iProfileList->Item(i);
       
  1120 			iTabHandler->AddTabL(item.iProfileName, item.iProfileId);
       
  1121     		}
       
  1122     	iTabHandler->SetTabWidthL();
       
  1123 		iUpdateTabGroup = EFalse;		
       
  1124 		}
       
  1125 	if (iCurrentProfileId != KErrNotFound)
       
  1126 		{
       
  1127 		iTabHandler->SetTabTextL(iCurrentProfileName, iCurrentProfileId);	
       
  1128 		}
       
  1129 	CAspSchedule* schedule = CAspSchedule::NewLC();
       
  1130 	if (iCurrentProfileId == schedule->ProfileId()
       
  1131 							 && schedule->IsAutoSyncEnabled())
       
  1132 		{
       
  1133 		//show indicator icon for profile that has auto sync ON.
       
  1134 		_LIT(KSpace,"  ");
       
  1135 		TBuf<64> tabText;
       
  1136 		tabText.Append(KClockCharacter);//Unicode character U+F815 (clock)
       
  1137 		tabText.Append(KSpace);
       
  1138 		tabText.Append(iCurrentProfileName);
       
  1139 		iTabHandler->SetTabTextL(tabText, iCurrentProfileId);
       
  1140 		}
       
  1141 		
       
  1142 	if (iCurrentProfileId != KErrNotFound)
       
  1143         {
       
  1144         iTabHandler->SetActiveTabL(iCurrentProfileId);    
       
  1145         }
       
  1146 
       
  1147 	CleanupStack::PopAndDestroy(schedule);
       
  1148 	
       
  1149 	
       
  1150     FLOG( _L("CAspSettingDialog::UpdateTabsL END") );
       
  1151 	}
       
  1152 
       
  1153 #endif
       
  1154 // -----------------------------------------------------------------------------
       
  1155 // CAspSettingDialog::UpdateMarkMenuItem
       
  1156 //
       
  1157 // -----------------------------------------------------------------------------
       
  1158 //
       
  1159 
       
  1160 void CAspSettingDialog::UpdateMarkMenuItem(CEikMenuPane* aMenuPane)
       
  1161 	{
       
  1162 	
       
  1163 	CListBoxView* view = iSettingListBox->View();
       
  1164     
       
  1165     TInt index = view->CurrentItemIndex();
       
  1166     TBool mark = view->ItemIsSelected(index);
       
  1167 	
       
  1168 	aMenuPane->SetItemDimmed(EAspMenuCmdMark,mark);
       
  1169 	aMenuPane->SetItemDimmed(EAspMenuCmdUnmark,!mark);
       
  1170 		
       
  1171 	}
       
  1172 
       
  1173 // -----------------------------------------------------------------------------
       
  1174 // CAspSettingDialog::SaveSelection
       
  1175 // Update Mark/Unmark selected from menu 
       
  1176 // -----------------------------------------------------------------------------
       
  1177 //
       
  1178 void CAspSettingDialog::SaveSelectionL()
       
  1179 {
       
  1180     if (IsProfileLockedL(iCurrentProfileId))
       
  1181        	{
       
  1182        	TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1183 		return;
       
  1184 		}
       
  1185        
       
  1186        if (iSettingEnforcement)
       
  1187 		{
       
  1188 		TDialogUtil::ShowInformationNoteL(R_ASP_PROTECTED_SETTING);
       
  1189 		return; 
       
  1190 		}
       
  1191 		
       
  1192 	//update check box & profile
       
  1193     CListBoxView* view = iSettingListBox->View();
       
  1194     
       
  1195     TInt index = view->CurrentItemIndex();
       
  1196     TBool selected = view->ItemIsSelected(index);
       
  1197     if (selected)
       
  1198     	{
       
  1199         view->DeselectItem(index);
       
  1200        	}
       
  1201     else
       
  1202     	{
       
  1203     	view->SelectItemL(index);
       
  1204     	}
       
  1205     iSettingListBox->SetCurrentItemIndex(index);
       
  1206     if (!CheckEmailSelection())
       
  1207        	{
       
  1208        	return; 
       
  1209        	}
       
  1210 	TInt ret =  SaveCurrentProfile();
       
  1211 	if (ret != KErrNone)
       
  1212 		{
       
  1213 		CancelCheckboxEvent();
       
  1214 		}
       
  1215 	
       
  1216 }
       
  1217 
       
  1218 
       
  1219 
       
  1220 // -----------------------------------------------------------------------------
       
  1221 // CAspSettingDialog::DoSetCurrentProfileL
       
  1222 //
       
  1223 // -----------------------------------------------------------------------------
       
  1224 //
       
  1225 void CAspSettingDialog::DoSetCurrentProfileL(TInt aProfileId)
       
  1226 	{
       
  1227     FLOG( _L("CAspSettingDialog::DoSetCurrentProfileL START") );
       
  1228     
       
  1229     iCurrentProfileId = KErrNotFound;
       
  1230     iCurrentProfileName = KNullDesC;
       
  1231     iContentList->RemoveAllTasks();
       
  1232     iProfileList->ReadAllProfilesL(CAspProfileList::ENoMandatoryCheck);
       
  1233 	iProfileList->Sort();
       
  1234 	
       
  1235 	if (iProfileList->Count() == 0)
       
  1236 		{
       
  1237 		return;
       
  1238 		}
       
  1239         
       
  1240     if (aProfileId == KErrNotFound)
       
  1241     	{
       
  1242     	FLOG( _L("CAspSettingDialog::DoSetCurrentProfileL END") );
       
  1243     	User::Leave(KErrNotFound);
       
  1244     	}
       
  1245     	
       
  1246     TInt index = iProfileList->ListIndex(aProfileId);
       
  1247     if (index == KErrNotFound)
       
  1248     	{
       
  1249     	FLOG( _L("### unknown profile (id=%d) ###"), aProfileId );
       
  1250     	FLOG( _L("CAspSettingDialog::DoSetCurrentProfileL END") );
       
  1251     	
       
  1252     	User::Leave(KErrNotFound);
       
  1253     	}
       
  1254     
       
  1255     TAspParam param(iApplicationId, iSyncSession);
       
  1256 	CAspProfile* profile = CAspProfile::NewLC(param);
       
  1257 	
       
  1258 	//if profile already locked ,open as read only
       
  1259 	if (IsProfileLockedL(aProfileId))
       
  1260 	{
       
  1261 	   profile->OpenL(aProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
  1262     
       
  1263 	}
       
  1264 	else
       
  1265 	{
       
  1266 	   profile->OpenL(aProfileId, CAspProfile::EOpenReadWrite, CAspProfile::EAllProperties);
       
  1267 	}
       
  1268 	
       
  1269     iContentList->SetProfile(profile);
       
  1270     
       
  1271     // read sync tasks from database into content list
       
  1272     iContentList->InitAllTasksL();
       
  1273     if (IsProfileLockedL(aProfileId))
       
  1274     {
       
  1275     	iContentList->UpdateLocalDatabaseL();
       
  1276     }
       
  1277     
       
  1278     if (!iContentList->CheckTaskDirectionsL())
       
  1279        	{
       
  1280         if (!iSettingEnforcement)
       
  1281            	{
       
  1282            	iContentList->ModifyTaskDirectionsL(ESyncDirectionTwoWay);
       
  1283     	   	}
       
  1284     	   	
       
  1285     	FLOG( _L("### sync direction conflict ###") );
       
  1286     	}
       
  1287     
       
  1288     //check if mailbox exists
       
  1289     CDesCArray* localDataStores = new (ELeave) CDesCArrayFlat(KDefaultArraySize);
       
  1290 	CleanupStack::PushL(localDataStores);
       
  1291 	iContentList->GetLocalDatabaseList(KUidNSmlAdapterEMail.iUid, localDataStores);
       
  1292 
       
  1293     TInt num = profile->ProtocolVersion();
       
  1294     if (num == EAspProtocol_1_1 || localDataStores->Count() == 0)
       
  1295     	{
       
  1296     	TInt index = iContentList->FindTaskIdForProvider( KUidNSmlAdapterEMail.iUid);
       
  1297 		if (index != KErrNotFound)
       
  1298 			{
       
  1299 			TAspTaskItem emailItem = iContentList->ReadTaskItemL(profile->Profile(), index);
       
  1300 			if (emailItem.iEnabled)
       
  1301 				{
       
  1302 		    	iContentList->ModifyTaskIncludedL(KUidNSmlAdapterEMail.iUid, EFalse, KNullDesC);
       
  1303 				}
       
  1304 			}
       
  1305     	}
       
  1306 	CleanupStack::PopAndDestroy(localDataStores);
       
  1307 	
       
  1308     iContentList->SetProfile(NULL);
       
  1309     
       
  1310     iCurrentProfileId = aProfileId;
       
  1311     
       
  1312     profile->GetName(iCurrentProfileName);
       
  1313   	if (TUtil::IsEmpty(iCurrentProfileName))
       
  1314 		{
       
  1315 		CAspResHandler::ReadL(iCurrentProfileName, R_ASP_UNNAMED_SET);
       
  1316 		}
       
  1317 
       
  1318   
       
  1319     CleanupStack::PopAndDestroy(profile);
       
  1320     
       
  1321     FLOG( _L("CAspSettingDialog::DoSetCurrentProfileL END") );
       
  1322 	}
       
  1323 	
       
  1324 
       
  1325 // -----------------------------------------------------------------------------
       
  1326 // CAspSettingDialog::SetCurrentProfile
       
  1327 //
       
  1328 // -----------------------------------------------------------------------------
       
  1329 //
       
  1330 void CAspSettingDialog::SetCurrentProfile(TInt aProfileId)
       
  1331 	{
       
  1332 	if (iContentList->IsLocked())
       
  1333 		{
       
  1334 		return; // iContentList used by CAspProfileDialog
       
  1335 		}
       
  1336 		
       
  1337 	TInt err = KErrNone;
       
  1338 	TInt oldCurrentProfileId = iCurrentProfileId;
       
  1339 	
       
  1340 	TRAP(err, DoSetCurrentProfileL(aProfileId));
       
  1341 	
       
  1342 	iContentList->SetProfile(NULL);
       
  1343 	
       
  1344     if (err != KErrNone)
       
  1345     	{
       
  1346         iCurrentProfileId = KErrNotFound;
       
  1347         iCurrentProfileName = KNullDesC;
       
  1348         iContentList->RemoveAllTasks();
       
  1349        	}
       
  1350        	
       
  1351     if (err != KErrNone && oldCurrentProfileId != KErrNotFound)
       
  1352     	{
       
  1353    		// some error - try restoring old current profile
       
  1354    		TRAP(err, DoSetCurrentProfileL(oldCurrentProfileId));
       
  1355    		
       
  1356    		iContentList->SetProfile(NULL);
       
  1357 	
       
  1358 	    if (err != KErrNone)
       
  1359     	    {
       
  1360             iCurrentProfileId = KErrNotFound;
       
  1361     	    iCurrentProfileName = KNullDesC;
       
  1362             iContentList->RemoveAllTasks();
       
  1363     	    }
       
  1364     	}
       
  1365 	}
       
  1366 
       
  1367 
       
  1368 // -----------------------------------------------------------------------------
       
  1369 // CAspSettingDialog::SetCurrentProfile
       
  1370 //
       
  1371 // -----------------------------------------------------------------------------
       
  1372 //
       
  1373 void CAspSettingDialog::SetCurrentProfileL()
       
  1374 	{
       
  1375 
       
  1376 #ifdef RD_DSUI_TIMEDSYNC //display profiles in alphabetic order.
       
  1377 	TInt index = 0;
       
  1378 	if (!iProfileList->Count())
       
  1379 		{
       
  1380 		index = KErrNotFound;
       
  1381 		}
       
  1382 
       
  1383 #else
       
  1384 	TInt index = iProfileList->FindLastSyncedProfileIndexL();
       
  1385 
       
  1386 #endif
       
  1387 	if (index != KErrNotFound)
       
  1388 		{
       
  1389 		TAspProfileItem& item = iProfileList->Item(index);
       
  1390 		SetCurrentProfile(item.iProfileId);
       
  1391 		}
       
  1392 	else
       
  1393 		{
       
  1394 		SetCurrentProfile(KErrNotFound);
       
  1395 		}
       
  1396 	}
       
  1397 
       
  1398 
       
  1399 // -----------------------------------------------------------------------------
       
  1400 // CAspSettingDialog::CurrentProfileL
       
  1401 //
       
  1402 // -----------------------------------------------------------------------------
       
  1403 //
       
  1404 TAspProfileItem& CAspSettingDialog::CurrentProfileL()
       
  1405 	{
       
  1406 	TInt index = iProfileList->ListIndex(iCurrentProfileId);
       
  1407 	if (index == KErrNotFound)
       
  1408 		{
       
  1409 		User::Leave(KErrNotFound);
       
  1410 		}
       
  1411 		
       
  1412 	return iProfileList->Item(index);
       
  1413 	}
       
  1414 
       
  1415 
       
  1416 // -----------------------------------------------------------------------------
       
  1417 // CAspSettingDialog::HasCurrentProfile
       
  1418 //
       
  1419 // -----------------------------------------------------------------------------
       
  1420 //
       
  1421 TBool CAspSettingDialog::HasCurrentProfile()
       
  1422 	{
       
  1423 	TInt ret = ETrue;
       
  1424 	
       
  1425 	if (iCurrentProfileId == KErrNotFound)
       
  1426 		{
       
  1427 		ret = EFalse;
       
  1428 		}
       
  1429 		
       
  1430 	if (iProfileList->Count() == 0)
       
  1431 		{
       
  1432 		ret = EFalse;
       
  1433 		}
       
  1434 		
       
  1435 	if (ret)
       
  1436 		{
       
  1437 	    TInt index = iProfileList->ListIndex(iCurrentProfileId);	
       
  1438 	    
       
  1439 	    __ASSERT_DEBUG(index != KErrNotFound, TUtil::Panic(KErrGeneral));
       
  1440 		}
       
  1441 	
       
  1442 	return ret;
       
  1443 	}
       
  1444 
       
  1445 
       
  1446 // -----------------------------------------------------------------------------
       
  1447 // CAspSettingDialog::IsCurrentProfile
       
  1448 //
       
  1449 // -----------------------------------------------------------------------------
       
  1450 //
       
  1451 TBool CAspSettingDialog::IsCurrentProfile(TInt aProfileId)
       
  1452 	{
       
  1453 	if (aProfileId != KErrNotFound && aProfileId == iCurrentProfileId)
       
  1454 		{
       
  1455 		return ETrue;
       
  1456 		}
       
  1457 		
       
  1458 	return EFalse;
       
  1459 	}
       
  1460 
       
  1461 
       
  1462 // -----------------------------------------------------------------------------
       
  1463 // CAspSettingDialog::DoSaveCurrentProfileL
       
  1464 //
       
  1465 // -----------------------------------------------------------------------------
       
  1466 //
       
  1467 void CAspSettingDialog::DoSaveCurrentProfileL()
       
  1468 	{
       
  1469 	if (iSettingEnforcement)
       
  1470 		{
       
  1471 		return;  // read-only profile
       
  1472 		}
       
  1473 
       
  1474 	if (!HasCurrentProfile())
       
  1475 		{
       
  1476 		User::Leave(KErrNotFound);
       
  1477 		}
       
  1478 
       
  1479     TAspParam param(iApplicationId, iSyncSession);
       
  1480 	CAspProfile* profile = CAspProfile::NewLC(param);
       
  1481     profile->OpenL(iCurrentProfileId, CAspProfile::EOpenReadWrite, 
       
  1482                                       CAspProfile::EAllProperties);
       
  1483 
       
  1484 	iContentList->SetProfile(profile);
       
  1485 	// store selected sync tasks into database
       
  1486 	iContentList->IncludeTasks(iSettingListBox->SelectionIndexes());
       
  1487 	iContentList->SetProfile(NULL);
       
  1488 	
       
  1489 	CleanupStack::PopAndDestroy(profile);
       
  1490 	}
       
  1491 
       
  1492 
       
  1493 // -----------------------------------------------------------------------------
       
  1494 // CAspSettingDialog::SaveCurrentProfile
       
  1495 //
       
  1496 // -----------------------------------------------------------------------------
       
  1497 //
       
  1498 TInt CAspSettingDialog::SaveCurrentProfile()
       
  1499 	{
       
  1500 	TRAPD(err, DoSaveCurrentProfileL());
       
  1501 	
       
  1502 	iContentList->SetProfile(NULL);
       
  1503 	
       
  1504     if (err == KErrLocked)
       
  1505    		{
       
  1506         TRAP_IGNORE( TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE) );
       
  1507         }
       
  1508 
       
  1509 	if (err != KErrNone)
       
  1510 		{
       
  1511 		FLOG( _L("### CAspSettingDialog::SaveCurrentProfile: err=%d ###"), err );
       
  1512     	}
       
  1513     	
       
  1514     return err;
       
  1515 	}
       
  1516 
       
  1517 
       
  1518 // -----------------------------------------------------------------------------
       
  1519 // CAspSettingDialog::EditProfileL
       
  1520 //
       
  1521 // -----------------------------------------------------------------------------
       
  1522 //
       
  1523 void CAspSettingDialog::EditProfileL(TInt aEditMode ,TInt aFocus)
       
  1524 	{
       
  1525 	if (iSettingEnforcement)
       
  1526 		{
       
  1527 		aEditMode = EDialogModeSettingEnforcement;
       
  1528 		}
       
  1529     
       
  1530     if (IsProfileLockedL(iCurrentProfileId))
       
  1531 		{
       
  1532 		TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1533 		return;
       
  1534 		}
       
  1535 	TRAPD(err, DoEditProfileL(aEditMode ,aFocus));
       
  1536     iContentList->SetProfile(NULL);
       
  1537 	User::LeaveIfError(err);
       
  1538 
       
  1539 #ifdef RD_DSUI_TIMEDSYNC 
       
  1540 	iUpdateTabGroup = ETrue;
       
  1541 	UpdateTabsL();
       
  1542 #endif
       
  1543 
       
  1544 	}
       
  1545 
       
  1546 
       
  1547 // -----------------------------------------------------------------------------
       
  1548 // CAspSettingDialog::DoEditProfileL
       
  1549 //
       
  1550 // -----------------------------------------------------------------------------
       
  1551 //
       
  1552 void CAspSettingDialog::DoEditProfileL(TInt aEditMode, TInt aFocus)
       
  1553 	{
       
  1554 	if (!HasCurrentProfile())
       
  1555 		{
       
  1556 		return;
       
  1557 		}
       
  1558 		
       
  1559     TAspParam param(iApplicationId, iSyncSession);
       
  1560 	CAspProfile* profile = CAspProfile::NewLC(param);
       
  1561     
       
  1562     iContentList->SetProfile(profile);
       
  1563     
       
  1564     if (aEditMode == EDialogModeEdit || aEditMode == EDialogModeEditMandatory)
       
  1565     	{
       
  1566     	profile->OpenL(iCurrentProfileId, CAspProfile::EOpenReadWrite,
       
  1567                                           CAspProfile::EAllProperties);
       
  1568                                           
       
  1569     	}
       
  1570     else
       
  1571     	{
       
  1572     	profile->OpenL(iCurrentProfileId, CAspProfile::EOpenRead,
       
  1573                                           CAspProfile::EAllProperties);
       
  1574     	}
       
  1575 
       
  1576 		
       
  1577 	TAspParam param2(iApplicationId, iSyncSession);
       
  1578 	param2.iProfile = profile;
       
  1579 	param2.iMode = aEditMode;
       
  1580     param2.iContentList = iContentList;
       
  1581     param2.iProfileList = iProfileList;  // needed for unique server id check
       
  1582     param2.iDataProviderId = aFocus;
       
  1583  
       
  1584 #ifdef RD_DSUI_TIMEDSYNC 
       
  1585 	CAspSettingViewDialog::ShowDialogL(param2);
       
  1586 #else
       
  1587 	CAspProfileDialog::ShowDialogL(param2);
       
  1588 #endif
       
  1589 
       
  1590 	iContentList->SetProfile(NULL);
       
  1591 	CleanupStack::PopAndDestroy(profile);
       
  1592 	}
       
  1593 
       
  1594 
       
  1595 // -----------------------------------------------------------------------------
       
  1596 // CAspSettingDialog::CheckMandatoryDataL
       
  1597 //
       
  1598 // -----------------------------------------------------------------------------
       
  1599 //
       
  1600 TInt CAspSettingDialog::CheckMandatoryDataL()
       
  1601 	{
       
  1602 	TInt ret = EMandatoryOk;
       
  1603 	
       
  1604 	TRAPD(err, ret = DoCheckMandatoryDataL());
       
  1605 	
       
  1606 	User::LeaveIfError(err);
       
  1607 		
       
  1608 	return ret;
       
  1609 	}
       
  1610 
       
  1611 
       
  1612 // -----------------------------------------------------------------------------
       
  1613 // CAspSettingDialog::DoCheckMandatoryDataL
       
  1614 //
       
  1615 // -----------------------------------------------------------------------------
       
  1616 //
       
  1617 TInt CAspSettingDialog::DoCheckMandatoryDataL()
       
  1618 	{
       
  1619 	if (!HasCurrentProfile())
       
  1620 		{
       
  1621 		User::Leave(KErrNotFound);
       
  1622 		}
       
  1623 		
       
  1624     TAspParam param(iApplicationId, iSyncSession);
       
  1625 	CAspProfile* profile = CAspProfile::NewLC(param);
       
  1626     profile->OpenL(iCurrentProfileId, CAspProfile::EOpenReadWrite,
       
  1627                                       CAspProfile::EAllProperties);
       
  1628     
       
  1629     
       
  1630     TInt mandatoryConnectionData = CAspProfile::CheckMandatoryConnData(profile);
       
  1631     iContentList->SetProfile(profile);	
       
  1632 	TInt contentCount = 0;
       
  1633 	TInt mandatoryContentData = iContentList->CheckMandatoryDataL(contentCount);
       
  1634 	iContentList->SetProfile(NULL);
       
  1635 	CleanupStack::PopAndDestroy(profile);
       
  1636 
       
  1637 	if (mandatoryConnectionData != EMandatoryOk)
       
  1638 		{
       
  1639 		return mandatoryConnectionData;
       
  1640 		}
       
  1641 		
       
  1642 	return mandatoryContentData;
       
  1643 	}
       
  1644 
       
  1645 
       
  1646 // -----------------------------------------------------------------------------
       
  1647 // CAspSettingDialog::DeleteProfileL
       
  1648 //
       
  1649 // -----------------------------------------------------------------------------
       
  1650 //
       
  1651 void CAspSettingDialog::DeleteProfileL()
       
  1652     {
       
  1653 
       
  1654 #ifdef RD_DSUI_TIMEDSYNC 
       
  1655 	 TAspParam param(iApplicationId, iSyncSession);
       
  1656 	 CAspProfile* profile = CAspProfile::NewLC(param);
       
  1657      TRAPD(err,profile->OpenL(iCurrentProfileId, CAspProfile::EOpenReadWrite,
       
  1658                                       CAspProfile::EAllProperties));
       
  1659 
       
  1660 	 if (err == KErrLocked)
       
  1661    		{
       
  1662         TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1663 		CleanupStack::PopAndDestroy(profile);
       
  1664 		return;
       
  1665 	 	}
       
  1666 	 CAspSchedule* schedule = CAspSchedule::NewLC();
       
  1667 	
       
  1668 	 TInt profileId = schedule->ProfileId();
       
  1669 	 if (profileId == iCurrentProfileId && schedule->IsAutoSyncEnabled())
       
  1670 	 	{
       
  1671 		HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_DS_CONF_QUERY_DELETE_AUTO_SYNC_PROFILE);
       
  1672 		if (!TDialogUtil::ShowConfirmationQueryL(hBuf->Des()))
       
  1673 			{
       
  1674 			CleanupStack::PopAndDestroy(hBuf);
       
  1675 			CleanupStack::PopAndDestroy(schedule);
       
  1676 	        CleanupStack::PopAndDestroy(profile);
       
  1677 			return;
       
  1678 			}
       
  1679 		CleanupStack::PopAndDestroy(hBuf);
       
  1680 		schedule->SetProfileId(KErrNotFound);
       
  1681 		schedule->UpdateSyncScheduleL();
       
  1682 		schedule->SaveL();
       
  1683 		}
       
  1684 	 else
       
  1685 	 	{
       
  1686 		TBuf<KBufSize> profileName;
       
  1687 	 	profile->GetName(profileName);
       
  1688 	 	HBufC* hBuf1 = CAspResHandler::ReadLC(R_ASP_QUERY_COMMON_CONF_DELETE, profileName);
       
  1689 
       
  1690 	 	if (!TDialogUtil::ShowConfirmationQueryL(hBuf1->Des()))
       
  1691 		    {
       
  1692 			CleanupStack::PopAndDestroy(hBuf1);
       
  1693 			CleanupStack::PopAndDestroy(schedule);
       
  1694 			CleanupStack::PopAndDestroy(profile);
       
  1695 			return;
       
  1696 	 		}
       
  1697 		CleanupStack::PopAndDestroy(hBuf1);
       
  1698 	 	}
       
  1699 	CleanupStack::PopAndDestroy(schedule);
       
  1700 	CleanupStack::PopAndDestroy(profile);
       
  1701 	if (!IsSyncOnGoingL(iCurrentProfileId))
       
  1702 		{
       
  1703 		TRAPD (err1,iSyncSession->DeleteProfileL(iCurrentProfileId));
       
  1704 		
       
  1705 		if (err1 == KErrLocked)
       
  1706    			{
       
  1707        		TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1708        		}
       
  1709     	User::LeaveIfError(err);
       
  1710 		}
       
  1711 	iUpdateTabGroup = ETrue;	
       
  1712 	SetPreviousProfileL();
       
  1713 	
       
  1714 	
       
  1715 #else
       
  1716 
       
  1717     TAspFilterInfo info;
       
  1718     info.iFilterType = TAspFilterInfo::EIncludeDeletableProfile;
       
  1719     CAspProfileList* filteredList = iProfileList->FilteredListL(info);
       
  1720     CleanupStack::PushL(filteredList);
       
  1721     
       
  1722 	TInt count = filteredList->Count();
       
  1723 	TInt err = KErrNone;
       
  1724 
       
  1725 	if (count == 1)
       
  1726 		{
       
  1727 		TAspProfileItem& profile = filteredList->Item(0);
       
  1728 
       
  1729 		HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_CONFIRM_DELETE, profile.iProfileName);
       
  1730 	    if (TDialogUtil::ShowConfirmationQueryL(hBuf->Des()))
       
  1731 		    {
       
  1732 		    if (!IsSyncOnGoingL(profile.iProfileId))
       
  1733 		    	{
       
  1734 		    	TRAP(err, iSyncSession->DeleteProfileL(profile.iProfileId));
       
  1735 		    	}
       
  1736 		    }
       
  1737    		
       
  1738    		CleanupStack::PopAndDestroy(hBuf);
       
  1739     	}
       
  1740 	
       
  1741 	else if (count > 0)
       
  1742 		{
       
  1743 		TInt profileId = KErrNotFound;
       
  1744 	    if (TDialogUtil::ShowProfileQueryL(filteredList, profileId,
       
  1745 	                                       R_ASP_QUERY_TITLE_DELETE_PROFILE))
       
  1746 		    {
       
  1747 		    if (!IsSyncOnGoingL(profileId))
       
  1748 		    	{
       
  1749 		    	TRAP(err, iSyncSession->DeleteProfileL(profileId));
       
  1750 		    	}
       
  1751 		    }
       
  1752 		}
       
  1753 
       
  1754 	if (err == KErrLocked)
       
  1755    		{
       
  1756         TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1757         }
       
  1758     User::LeaveIfError(err);
       
  1759     
       
  1760 	CleanupStack::PopAndDestroy(filteredList);
       
  1761 
       
  1762 #endif
       
  1763     }
       
  1764 
       
  1765 
       
  1766 // -----------------------------------------------------------------------------
       
  1767 // CAspSettingDialog::ShowLogDialogL
       
  1768 //
       
  1769 // -----------------------------------------------------------------------------
       
  1770 //
       
  1771 void CAspSettingDialog::ShowLogDialogL()
       
  1772     {
       
  1773     
       
  1774 	TAspParam param(iApplicationId, iSyncSession);
       
  1775 	TAspProfileItem& profile = CurrentProfileL();
       
  1776 	param.iProfileId = profile.iProfileId;
       
  1777 
       
  1778 #ifdef RD_DSUI_TIMEDSYNC 
       
  1779    	
       
  1780 	CAspSchedule* schedule = CAspSchedule::NewLC();
       
  1781 	if (iCurrentProfileId == schedule->ProfileId())
       
  1782 		{
       
  1783 		TInt asProfileId = schedule->AutoSyncProfileId();
       
  1784 		CAspProfile* asProfile = CAspProfile::NewLC(param);
       
  1785 		asProfile->OpenL(asProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
  1786 
       
  1787 		/*if (asProfile->LastSync() > profile.iLastSync)
       
  1788 			{
       
  1789 			param.iProfileId = asProfileId;
       
  1790 			}*/	
       
  1791 		TTime now;
       
  1792 		now.HomeTime();
       
  1793 		if (profile.iLastSync == 0)
       
  1794 			{
       
  1795 			param.iProfileId = asProfileId;
       
  1796 			}
       
  1797 		else if ((asProfile->LastSync()< now && profile.iLastSync < now)
       
  1798 								|| (asProfile->LastSync() > now && profile.iLastSync > now))
       
  1799 			{
       
  1800 			if (asProfile->LastSync() > profile.iLastSync)
       
  1801 				{
       
  1802 				param.iProfileId = asProfileId;
       
  1803 				}
       
  1804 			}
       
  1805 		else if	((asProfile->LastSync()< now && profile.iLastSync > now))
       
  1806 			{
       
  1807 			param.iProfileId = asProfileId;
       
  1808 			}
       
  1809 		CleanupStack::PopAndDestroy(asProfile);
       
  1810 		}
       
  1811 	
       
  1812 	CleanupStack::PopAndDestroy(schedule);
       
  1813 		
       
  1814 #endif   
       
  1815 	
       
  1816 
       
  1817     CAspLogDialog* dialog = CAspLogDialog::NewL(param);
       
  1818     CleanupStack::PushL(dialog);
       
  1819         
       
  1820     dialog->ShowDialogL();
       
  1821         
       
  1822     CleanupStack::PopAndDestroy(dialog);
       
  1823     }
       
  1824 
       
  1825 
       
  1826 // -----------------------------------------------------------------------------
       
  1827 // CAspSettingDialog::ShowAutoSyncDialogL
       
  1828 //
       
  1829 // -----------------------------------------------------------------------------
       
  1830 //
       
  1831 void CAspSettingDialog::ShowAutoSyncDialogL()
       
  1832     {
       
  1833     
       
  1834     CAspSchedule* schedule = CAspSchedule::NewLC();
       
  1835 	if (schedule->IsAutoSyncEnabled())
       
  1836 		{
       
  1837 		TInt profileId = schedule->ProfileId();
       
  1838 		if(profileId != iCurrentProfileId && profileId != KErrNotFound)
       
  1839 			{
       
  1840 			if(!TDialogUtil::ShowConfirmationQueryL(R_ASP_QUERY_AUTO_SYNC_ON))
       
  1841 				{
       
  1842 				CleanupStack::PopAndDestroy(schedule);
       
  1843 				return ;
       
  1844 				}
       
  1845 			}
       
  1846 		}
       
  1847     CleanupStack::PopAndDestroy(schedule);
       
  1848 	
       
  1849 	TAspParam param(iApplicationId, iSyncSession);
       
  1850     param.iProfileList = iProfileList;
       
  1851 	param.iProfile = NULL;
       
  1852 	param.iContentList = iContentList;
       
  1853 	iAutoSyncDialog = ETrue;
       
  1854  	CAspScheduleDialog::ShowDialogL(param);
       
  1855  	iAutoSyncDialog = EFalse;
       
  1856  	
       
  1857 #ifdef RD_DSUI_TIMEDSYNC 
       
  1858 	UpdateTabsL();
       
  1859 #endif
       
  1860 	
       
  1861     }
       
  1862 
       
  1863 
       
  1864 // -----------------------------------------------------------------------------
       
  1865 // CAspSettingDialog::ChangeProfileL
       
  1866 //
       
  1867 // -----------------------------------------------------------------------------
       
  1868 //
       
  1869 void CAspSettingDialog::ChangeProfileL()
       
  1870     {
       
  1871     if (iProfileList->Count() == 0)
       
  1872     	{
       
  1873     	return;
       
  1874     	}
       
  1875     	
       
  1876 	TInt profileId = KErrNotFound;
       
  1877 	if (TDialogUtil::ShowProfileQueryL(iProfileList, profileId, 
       
  1878 	                                   R_ASP_QUERY_TITLE_CHANGE_PROFILE))
       
  1879 		{
       
  1880 		if (profileId == iCurrentProfileId)
       
  1881 			{
       
  1882 			return;
       
  1883 			}
       
  1884 			
       
  1885 		SetCurrentProfile(profileId);
       
  1886 		//ShowCurrentProfileInfo();
       
  1887 		UpdateListBoxL();
       
  1888 		
       
  1889 #ifdef RD_DSUI_TIMEDSYNC //RD_DSUI_NO_TIMEDSYNC
       
  1890 
       
  1891 		UpdateTabsL();
       
  1892 #else
       
  1893 		UpdateNavipaneL(iCurrentProfileName);
       
  1894 #endif
       
  1895 		}
       
  1896     }
       
  1897 
       
  1898 
       
  1899 // -----------------------------------------------------------------------------
       
  1900 // CAspSettingDialog::CopyFromServerL
       
  1901 //
       
  1902 // -----------------------------------------------------------------------------
       
  1903 //
       
  1904 void CAspSettingDialog::CopyFromServerL()
       
  1905 	{
       
  1906 	if (!TDialogUtil::ShowConfirmationQueryL(R_ASP_COPY_FROM_SERVER))
       
  1907 		{
       
  1908 		return;
       
  1909 		}
       
  1910 
       
  1911 	TRAPD(err, DoSyncProfileL(ESyncDirectionRefreshFromServer));
       
  1912 	
       
  1913 	if (err == KErrLocked)
       
  1914 		{
       
  1915 		TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1916 		}
       
  1917 	User::LeaveIfError(err);
       
  1918 	}
       
  1919 
       
  1920 
       
  1921 // -----------------------------------------------------------------------------
       
  1922 // CAspSettingDialog::SyncProfileL
       
  1923 //
       
  1924 // -----------------------------------------------------------------------------
       
  1925 //
       
  1926 void CAspSettingDialog::SyncProfileL()
       
  1927 	{
       
  1928 		
       
  1929 	if (IsProfileLockedL(iCurrentProfileId))
       
  1930 		{
       
  1931 		TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  1932 		return;
       
  1933 		}
       
  1934 	
       
  1935 	TRAPD(err, DoSyncProfileL(KErrNotFound));
       
  1936 	User::LeaveIfError(err);
       
  1937 	}
       
  1938 
       
  1939 
       
  1940 // -----------------------------------------------------------------------------
       
  1941 // CAspSettingDialog::DoSyncProfileL
       
  1942 //
       
  1943 // -----------------------------------------------------------------------------
       
  1944 //
       
  1945 void CAspSettingDialog::DoSyncProfileL(TInt aSyncType)
       
  1946 	{
       
  1947     __ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral));
       
  1948     	
       
  1949 	if (iProfileList->Count() == 0)
       
  1950 		{
       
  1951 	    if (TDialogUtil::ShowConfirmationQueryL(R_ASP_QUERY_NO_PROFILES))
       
  1952 		    {
       
  1953 		    CreateProfileL();
       
  1954 		    }
       
  1955 		    
       
  1956 		return;
       
  1957     	}
       
  1958     
       
  1959     //check PS key
       
  1960     TInt keyVal = 0;//EDataSyncNotRunning
       
  1961     TInt err = RProperty::Get( KPSUidDataSynchronizationInternalKeys,
       
  1962                                  KDataSyncStatus,
       
  1963                                  keyVal );
       
  1964     if(err == KErrNone && keyVal)
       
  1965     	{
       
  1966     	TDialogUtil::ShowInformationNoteL(R_ASP_SYNC_ALREADY_RUNNING);
       
  1967 		return;
       
  1968     	}
       
  1969     
       
  1970 	
       
  1971 	if (CAspProfile::OtherSyncRunning(iSyncSession))
       
  1972 		{
       
  1973 		TDialogUtil::ShowInformationNoteL(R_ASP_SYNC_ALREADY_RUNNING);
       
  1974 		return;
       
  1975 		}
       
  1976 
       
  1977      // check that valid current profile exists
       
  1978     TInt mandatoryCheck = CheckMandatoryDataL();
       
  1979     
       
  1980  	if (mandatoryCheck == EMandatoryNoContent)
       
  1981 		{
       
  1982 		TDialogUtil::ShowErrorNoteL(R_ASP_ERR_NOCONTENT);
       
  1983 		return;
       
  1984         }
       
  1985 	else if (mandatoryCheck != EMandatoryOk)
       
  1986 		{
       
  1987         if (iSettingEnforcement)
       
  1988     	    {
       
  1989     	    TDialogUtil::ShowInformationNoteL(R_ASP_NOTE_TARM_MANDATORY_MISSING);
       
  1990     	    }    	
       
  1991 		else if (TDialogUtil::ShowConfirmationQueryL(R_ASP_QUERY_MANDATORY_MISSING))
       
  1992 			{
       
  1993 			TInt contentCount = 0;
       
  1994 			TInt incompleteContent = KErrNotFound;
       
  1995 			TInt taskIndex = KErrNotFound;
       
  1996 			if (iContentList->CheckMandatoryDataL(contentCount))
       
  1997 				{
       
  1998 				TInt count = iContentList->ProviderCount();
       
  1999 				for (TInt i=0; i<count; i++)
       
  2000 					{
       
  2001 					//data provider ids are sorted before task list creation ,so provider id has to be used
       
  2002 					//to get the correct position of item
       
  2003 					TAspProviderItem& providerItem = iContentList->ProviderItem(i);
       
  2004 					taskIndex = iContentList->FindTaskIndexForProvider(providerItem.iDataProviderId);
       
  2005 					if (taskIndex == KErrNotFound)
       
  2006 						{
       
  2007 						//task is not created
       
  2008 						continue;	
       
  2009 						}
       
  2010 					TAspTaskItem& task = iContentList->TaskItem(taskIndex);
       
  2011 					if (!task.iEnabled)
       
  2012 						{
       
  2013 						continue; // task not part of sync - no need to check remote data base
       
  2014 						}
       
  2015 					if (!task.iRemoteDatabaseDefined)
       
  2016 						{
       
  2017 						incompleteContent = task.iDataProviderId;
       
  2018 						break;
       
  2019 						}
       
  2020 					}
       
  2021 				}
       
  2022 			EditProfileL(EDialogModeEditMandatory ,incompleteContent);
       
  2023 			}
       
  2024 			
       
  2025 		return;
       
  2026         }
       
  2027 
       
  2028 
       
  2029 	if (!iSyncHandler)
       
  2030 		{
       
  2031     	TAspParam param(iApplicationId, NULL);
       
  2032 		iSyncHandler = CAspSyncHandler::NewL(param);
       
  2033 		}
       
  2034 	else
       
  2035 		{
       
  2036 		if (SyncRunning())
       
  2037 			{
       
  2038 			TDialogUtil::ShowInformationNoteL(R_ASP_SYNC_ALREADY_RUNNING);
       
  2039     		return;
       
  2040 			}
       
  2041 		}
       
  2042     	
       
  2043     iSyncHandler->SetObserver(this);
       
  2044 
       
  2045    	TAspSyncParam param(iApplicationId);
       
  2046 	param.iProfileId = iCurrentProfileId;
       
  2047 	if (aSyncType == ESyncDirectionRefreshFromServer)
       
  2048 		{
       
  2049 		param.iSyncDirection = aSyncType;
       
  2050 		}
       
  2051 
       
  2052 #ifdef RD_DSUI_TIMEDSYNC 
       
  2053 	DeleteAutoSyncHistory();
       
  2054 #endif
       
  2055 
       
  2056 	iSyncHandler->SynchronizeL(param);
       
  2057 	}
       
  2058 
       
  2059 // -----------------------------------------------------------------------------
       
  2060 // CAspSettingDialog::DeleteAutoSyncHistory
       
  2061 //
       
  2062 // -----------------------------------------------------------------------------
       
  2063 //
       
  2064 void CAspSettingDialog::DeleteAutoSyncHistory()
       
  2065 	{
       
  2066 	TAspParam param(iApplicationId, iSyncSession);
       
  2067 	CAspSchedule* schedule = CAspSchedule::NewLC();
       
  2068 	if (schedule->IsAutoSyncEnabled() && iCurrentProfileId == schedule->ProfileId())
       
  2069 		{
       
  2070 		TInt asProfileId = schedule->AutoSyncProfileId();
       
  2071 		CAspProfile* asProfile = CAspProfile::NewLC(param);
       
  2072 		asProfile->OpenL(asProfileId, CAspProfile::EOpenReadWrite, CAspProfile::EAllProperties);
       
  2073 		asProfile->DeleteHistory();
       
  2074 		CleanupStack::PopAndDestroy(asProfile);
       
  2075 		}
       
  2076 	CleanupStack::PopAndDestroy(schedule);
       
  2077 	}
       
  2078 
       
  2079 // -----------------------------------------------------------------------------
       
  2080 // CAspSettingDialog::CreateProfileL
       
  2081 //
       
  2082 // -----------------------------------------------------------------------------
       
  2083 //
       
  2084 void CAspSettingDialog::CreateProfileL()
       
  2085 	{
       
  2086 	TAspParam param(iApplicationId, iSyncSession);
       
  2087 	param.iProfileList = iProfileList;
       
  2088 	
       
  2089 	CAspProfileWizardDialog::ShowDialogL(param);
       
  2090 
       
  2091 #ifdef RD_DSUI_TIMEDSYNC 
       
  2092 	iUpdateTabGroup = ETrue;
       
  2093 #endif
       
  2094 
       
  2095 	if (param.iReturnValue == KErrNone && param.iProfileId != KErrNotFound)
       
  2096 		{
       
  2097 		SetCurrentProfile(param.iProfileId);
       
  2098 		UpdateListBoxL();
       
  2099 #ifdef RD_DSUI_TIMEDSYNC 
       
  2100 	
       
  2101 		UpdateTabsL();
       
  2102 #else
       
  2103 		UpdateNavipaneL(iCurrentProfileName);
       
  2104 #endif
       
  2105 		}
       
  2106 	else
       
  2107 	    {
       
  2108 #ifdef RD_DSUI_TIMEDSYNC 
       
  2109     
       
  2110         UpdateTabsL();
       
  2111 #endif
       
  2112 	    }
       
  2113 	}
       
  2114 
       
  2115 
       
  2116 // -----------------------------------------------------------------------------
       
  2117 // CAspSettingDialog::IconL
       
  2118 // 
       
  2119 // -----------------------------------------------------------------------------
       
  2120 //
       
  2121 CGulIcon* CAspSettingDialog::IconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileIndex, TInt aFileMaskIndex)
       
  2122 	{
       
  2123     return TDialogUtil::CreateIconL(aId, aFileName, aFileIndex, aFileMaskIndex);
       
  2124 	}
       
  2125 
       
  2126 	
       
  2127 // -----------------------------------------------------------------------------
       
  2128 // CAspSettingDialog::UpdateListBoxL
       
  2129 //	
       
  2130 // -----------------------------------------------------------------------------
       
  2131 //
       
  2132 void CAspSettingDialog::UpdateListBoxL()
       
  2133 	{
       
  2134 	SetCurrentIndex();
       
  2135 	
       
  2136 	CAknDoubleLargeStyleListBox* listBox = ListBox();
       
  2137 	CDesCArray* items = (CDesCArray*) listBox->Model()->ItemTextArray();
       
  2138 	items->Reset();
       
  2139     listBox->ItemDrawer()->ClearAllPropertiesL();
       
  2140    
       
  2141 	TInt count = iContentList->ProviderCount();
       
  2142 
       
  2143 	for (TInt i=0; i<count; i++)
       
  2144 		{
       
  2145 		HBufC* firstLine = NULL;
       
  2146 		HBufC* secondLine = NULL;
       
  2147 				
       
  2148 		TAspProviderItem& providerItem = iContentList->ProviderItem(i);
       
  2149 		
       
  2150 		firstLine = CAspResHandler::GetContentNameLC(
       
  2151 		            providerItem.iDataProviderId, providerItem.iDisplayName);
       
  2152 		
       
  2153 		TInt index = iContentList->FindTaskIndexForProvider(providerItem.iDataProviderId);
       
  2154 		if (providerItem.iDataProviderId == KUidNSmlAdapterEMail.iUid )
       
  2155 		{
       
  2156 		
       
  2157 			if(!providerItem.iHasDefaultDataStore)
       
  2158 			{
       
  2159 			TInt providerListIndex = iContentList->FindProviderIndex(providerItem.iDataProviderId);
       
  2160 			
       
  2161 			CListBoxView* view = iSettingListBox->View();
       
  2162 
       
  2163 			view->DeselectItem(providerListIndex);
       
  2164 			}
       
  2165 		}
       
  2166 		if (index != KErrNotFound)
       
  2167 			{
       
  2168 			TAspTaskItem& task = iContentList->TaskItem(index);
       
  2169 	
       
  2170 		    if (task.iLastSync != 0) // task has been synchronised
       
  2171 			    {
       
  2172 			    secondLine = TUtil::SyncTimeLC(task.iLastSync);
       
  2173 			    }
       
  2174 		    else
       
  2175 			    {
       
  2176 			    secondLine = CAspResHandler::ReadLC(R_ASP_NOT_SYNCED);
       
  2177 			    }
       
  2178 			}
       
  2179 		else
       
  2180 			{
       
  2181 			secondLine = CAspResHandler::ReadLC(R_ASP_NOT_SYNCED);
       
  2182 			}
       
  2183 		
       
  2184 		
       
  2185 		TPtr ptr1 = firstLine->Des();
       
  2186 		AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr1);
       
  2187 		TPtr ptr2 = secondLine->Des();
       
  2188         AknTextUtils::DisplayTextLanguageSpecificNumberConversion(ptr2);
       
  2189 
       
  2190 		HBufC* hBuf = NULL;
       
  2191 		hBuf = TDialogUtil::ConstructListBoxItemLC(firstLine->Des(), secondLine->Des(), 0);
       
  2192 
       
  2193 		items->AppendL(hBuf->Des());
       
  2194 		
       
  2195 		CleanupStack::PopAndDestroy(hBuf);
       
  2196 		CleanupStack::PopAndDestroy(secondLine);
       
  2197 		CleanupStack::PopAndDestroy(firstLine);
       
  2198 		}
       
  2199 
       
  2200 	listBox->HandleItemAdditionL();
       
  2201 	
       
  2202 	if (listBox->Model()->NumberOfItems() == 0)
       
  2203 		{
       
  2204 	    iStatusPaneHandler->SetNaviPaneTitle(KNullDesC);
       
  2205 		}
       
  2206 	else
       
  2207 		{
       
  2208 		UpdateContentSelectionL();
       
  2209 		
       
  2210 		TInt current = CurrentIndex();
       
  2211 		if (current != KErrNotFound)
       
  2212 			{
       
  2213 			ListBox()->SetCurrentItemIndexAndDraw(current);
       
  2214 			}
       
  2215 		}
       
  2216 	}
       
  2217 
       
  2218 
       
  2219 // -----------------------------------------------------------------------------
       
  2220 // CAspSettingDialog::UpdateContentSelectionL
       
  2221 //
       
  2222 // -----------------------------------------------------------------------------
       
  2223 //
       
  2224 void CAspSettingDialog::UpdateContentSelectionL()
       
  2225     {
       
  2226     // update selected task check boxes from current profile content list
       
  2227     CListBoxView::CSelectionIndexArray* arrayOfSelectionIndexes = NULL;
       
  2228     arrayOfSelectionIndexes = new (ELeave) CArrayFixFlat<TInt>(KDefaultArraySize);
       
  2229     CleanupStack::PushL(arrayOfSelectionIndexes);
       
  2230 
       
  2231 	if (HasCurrentProfile())
       
  2232 		{
       
  2233 		iContentList->GetIncludedProviders(arrayOfSelectionIndexes);
       
  2234 		}
       
  2235         
       
  2236     iSettingListBox->SetSelectionIndexesL(arrayOfSelectionIndexes);
       
  2237 
       
  2238     CleanupStack::PopAndDestroy(arrayOfSelectionIndexes);
       
  2239     }
       
  2240     
       
  2241 
       
  2242 // -----------------------------------------------------------------------------
       
  2243 // CAspSettingDialog::UpdateNavipaneL
       
  2244 //
       
  2245 // -----------------------------------------------------------------------------
       
  2246 //
       
  2247 void CAspSettingDialog::UpdateNavipaneL(const TDesC& aText)
       
  2248 	{
       
  2249 	if (iCurrentProfileName.Compare(aText) != 0)
       
  2250 		{
       
  2251 		TUtil::StrCopy(iCurrentProfileName, aText);
       
  2252 		}
       
  2253 		
       
  2254 	iStatusPaneHandler->SetNaviPaneTitleL(iCurrentProfileName);
       
  2255 	}
       
  2256 
       
  2257 
       
  2258 // -----------------------------------------------------------------------------
       
  2259 // CAspSettingDialog::HandleSyncEventL (from MAspSyncObserver)
       
  2260 //
       
  2261 // -----------------------------------------------------------------------------
       
  2262 //
       
  2263 void CAspSettingDialog::HandleSyncEventL(TInt /*aError*/, TInt aInfo1)
       
  2264 	{
       
  2265     iDbNotifier->CreateUpdateEventL(aInfo1, KErrNone);
       
  2266 	}
       
  2267 
       
  2268 
       
  2269 // -----------------------------------------------------------------------------
       
  2270 // CAspSettingDialog::HandleDbEventL (from MAspDbEventHandler)
       
  2271 //
       
  2272 // This function updates UI when it receives sync profile database
       
  2273 // events (see AspDbNotifier).
       
  2274 // -----------------------------------------------------------------------------
       
  2275 //
       
  2276 void CAspSettingDialog::HandleDbEventL(TAspDbEvent aEvent)
       
  2277 	{
       
  2278 	FLOG( _L("CAspSettingDialog::HandleDbEventL START") );
       
  2279 
       
  2280     switch (aEvent.iType)
       
  2281 		{
       
  2282 		case CAspDbNotifier::EClose:
       
  2283 			{
       
  2284 			
       
  2285 #ifdef _DEBUG			
       
  2286 			LogDatabaseEvent(aEvent);
       
  2287 #endif		
       
  2288 	
       
  2289 			TDialogUtil::ShowErrorNoteL(R_ASP_LOG_ERR_SERVERERROR);
       
  2290             iAvkonAppUi->ProcessCommandL(EAknCmdExit); //  close sync app
       
  2291 			break;
       
  2292 			}
       
  2293 		
       
  2294 		case CAspDbNotifier::EUpdate:
       
  2295 			{
       
  2296 			iProfileList->ReadProfileL(aEvent.iProfileId);
       
  2297 			iProfileList->Sort();
       
  2298       	    if (IsCurrentProfile(aEvent.iProfileId))
       
  2299             	{
       
  2300             	if (!iContentList->IsLocked())
       
  2301             		{
       
  2302             		SetCurrentProfile(aEvent.iProfileId);
       
  2303                     UpdateListBoxL();
       
  2304 #ifdef RD_DSUI_TIMEDSYNC 
       
  2305 					UpdateTabsL();
       
  2306 #else
       
  2307                     UpdateNavipaneL(iCurrentProfileName);
       
  2308 #endif               
       
  2309             		}
       
  2310             	}
       
  2311 			
       
  2312 #ifdef _DEBUG
       
  2313             LogDatabaseEvent(aEvent);
       
  2314 #endif
       
  2315 			
       
  2316 			break;
       
  2317 			}
       
  2318 
       
  2319 		case CAspDbNotifier::EDelete:
       
  2320 			{
       
  2321 
       
  2322 #ifdef _DEBUG
       
  2323             LogDatabaseEvent(aEvent);
       
  2324 #endif
       
  2325 
       
  2326             TInt index = iProfileList->ListIndex(aEvent.iProfileId);
       
  2327             if (index != KErrNotFound)
       
  2328             	{
       
  2329             	iProfileList->Remove(aEvent.iProfileId);
       
  2330             	if (IsCurrentProfile(aEvent.iProfileId))
       
  2331             		{
       
  2332             		if (!iContentList->IsLocked())
       
  2333             		    {
       
  2334             		    SetCurrentProfileL(); // set new current profile
       
  2335                         UpdateListBoxL();
       
  2336 #ifdef RD_DSUI_TIMEDSYNC 
       
  2337 					UpdateTabsL();
       
  2338 #else
       
  2339                     UpdateNavipaneL(iCurrentProfileName);
       
  2340 #endif            		 
       
  2341 						}
       
  2342             		}
       
  2343             	}
       
  2344 			break;
       
  2345 			}
       
  2346 
       
  2347 		case CAspDbNotifier::EUpdateAll:
       
  2348 			{
       
  2349 
       
  2350 #ifdef _DEBUG			
       
  2351 			LogDatabaseEvent(aEvent);
       
  2352 #endif
       
  2353 
       
  2354 			iProfileList->ReadAllProfilesL(CAspProfileList::ENoMandatoryCheck);
       
  2355 			iProfileList->Sort();
       
  2356            	if (!iContentList->IsLocked())
       
  2357             	{
       
  2358             	SetCurrentProfile(iCurrentProfileId); // set new current profile
       
  2359                 UpdateListBoxL();
       
  2360 #ifdef RD_DSUI_TIMEDSYNC 
       
  2361 					UpdateTabsL();
       
  2362 #else
       
  2363                     UpdateNavipaneL(iCurrentProfileName);
       
  2364 #endif         	
       
  2365 				}
       
  2366 
       
  2367 			break;
       
  2368 			}
       
  2369 
       
  2370 		default:
       
  2371 			break;
       
  2372 		}
       
  2373 		
       
  2374 	FLOG( _L("CAspSettingDialog::HandleDbEventL END") );
       
  2375 	}
       
  2376 // -----------------------------------------------------------------------------
       
  2377 // CAspSettingDialog::HandleOKL()
       
  2378 // 
       
  2379 // -----------------------------------------------------------------------------
       
  2380 //
       
  2381 
       
  2382 void CAspSettingDialog::HandleOKL()
       
  2383 {
       
  2384 	
       
  2385 	if (iProfileList->Count() == 0)
       
  2386 			{
       
  2387 			return;
       
  2388 			}
       
  2389         
       
  2390         if (IsProfileLockedL(iCurrentProfileId))
       
  2391         	{
       
  2392         	TDialogUtil::ShowErrorNoteL(R_ASP_LOCKED_PROFILE);
       
  2393 			CancelCheckboxEvent();
       
  2394 			return;
       
  2395 			}
       
  2396         
       
  2397         if (iSettingEnforcement)
       
  2398 			{
       
  2399 			CancelCheckboxEvent();
       
  2400 			TDialogUtil::ShowInformationNoteL(R_ASP_NOTE_MAIN_LOCKED);
       
  2401 			return ;  // leave dialog open;
       
  2402 			}
       
  2403         
       
  2404         if (!CheckEmailSelection())
       
  2405         	{
       
  2406         	return ;  // leave dialog open;
       
  2407         	}
       
  2408 				
       
  2409 		TInt ret =  SaveCurrentProfile();
       
  2410 		if (ret != KErrNone)
       
  2411 			{
       
  2412 			CancelCheckboxEvent();
       
  2413 			}
       
  2414 			
       
  2415 		return ;
       
  2416 }
       
  2417 // -----------------------------------------------------------------------------
       
  2418 // CAspSettingDialog::HandleListBoxEventL (from MEikListBoxObserver)
       
  2419 // 
       
  2420 // -----------------------------------------------------------------------------
       
  2421 //
       
  2422 void CAspSettingDialog::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
       
  2423 	{
       
  2424 	   if( AknLayoutUtils::PenEnabled() )  
       
  2425 	   {
       
  2426 	   	 switch(aEventType)
       
  2427 		{
       
  2428 			case EEventItemSingleClicked :
       
  2429 			     HandleOKL();
       
  2430 			     break;
       
  2431 			default:
       
  2432 			     break;
       
  2433 		}
       
  2434 	   }
       
  2435 	  
       
  2436     }
       
  2437 
       
  2438 // -----------------------------------------------------------------------------
       
  2439 // CAspSettingDialog::HandleActiveCallL (from MAspActiveCallerObserver)
       
  2440 //
       
  2441 // -----------------------------------------------------------------------------
       
  2442 //
       
  2443 void CAspSettingDialog::HandleActiveCallL(TInt /*aCallId*/)
       
  2444 	{
       
  2445 	}
       
  2446 
       
  2447 
       
  2448 // -----------------------------------------------------------------------------
       
  2449 // CAspSettingDialog::SetCurrentIndex
       
  2450 //
       
  2451 // -----------------------------------------------------------------------------
       
  2452 //
       
  2453 void CAspSettingDialog::SetCurrentIndex()
       
  2454 	{
       
  2455 	TInt count = ListBox()->Model()->NumberOfItems();
       
  2456 
       
  2457 	if (count == 0)
       
  2458 		{
       
  2459 		iCurrentListBoxIndex = KErrNotFound;  // empty list
       
  2460 		}
       
  2461 	else
       
  2462 		{
       
  2463 		iCurrentListBoxIndex = ListBox()->CurrentItemIndex();
       
  2464 		}
       
  2465 	}
       
  2466 
       
  2467 
       
  2468 // -----------------------------------------------------------------------------
       
  2469 // CAspSettingDialog::CurrentIndex
       
  2470 //
       
  2471 // -----------------------------------------------------------------------------
       
  2472 //
       
  2473 TInt CAspSettingDialog::CurrentIndex()
       
  2474 	{
       
  2475 	TInt count = ListBox()->Model()->NumberOfItems();
       
  2476 	
       
  2477 	if (count == 0)
       
  2478 		{
       
  2479 		iCurrentListBoxIndex = KErrNotFound;
       
  2480 		}
       
  2481 	else if (iCurrentListBoxIndex >= count)
       
  2482 		{
       
  2483 		iCurrentListBoxIndex = count-1; // last listbox item
       
  2484 		}
       
  2485 	else if (iCurrentListBoxIndex < 0)
       
  2486 		{
       
  2487 		iCurrentListBoxIndex = 0; // first listbox item
       
  2488 		}
       
  2489 		
       
  2490 	return iCurrentListBoxIndex;
       
  2491 	}
       
  2492 
       
  2493 
       
  2494 // -----------------------------------------------------------------------------
       
  2495 // CAspSettingDialog::ShowCurrentProfileInfoL
       
  2496 //
       
  2497 // -----------------------------------------------------------------------------
       
  2498 //
       
  2499 void CAspSettingDialog::ShowCurrentProfileInfoL()
       
  2500 	{
       
  2501 	TAspProfileItem& item = CurrentProfileL();
       
  2502 	TBuf<KBufSize> buf;
       
  2503     iBearerHandler->GetBearerName(buf, item.iBearer);
       
  2504     HBufC* hBuf = CAspResHandler::ReadProfileInfoTextLC(item.iProfileName, buf);
       
  2505     ShowPopupNoteL(hBuf->Des());
       
  2506     CleanupStack::PopAndDestroy(hBuf);
       
  2507 	}
       
  2508 
       
  2509 
       
  2510 // -----------------------------------------------------------------------------
       
  2511 // CAspSettingDialog::ShowCurrentProfileInfo
       
  2512 //
       
  2513 // -----------------------------------------------------------------------------
       
  2514 //
       
  2515 void CAspSettingDialog::ShowCurrentProfileInfo()
       
  2516 	{
       
  2517 	TRAP_IGNORE(ShowCurrentProfileInfoL());
       
  2518 	}
       
  2519 
       
  2520 
       
  2521 // -----------------------------------------------------------------------------
       
  2522 // CAspSettingDialog::ShowAutoSyncProfileInfoL
       
  2523 //
       
  2524 // -----------------------------------------------------------------------------
       
  2525 //
       
  2526 TBool CAspSettingDialog::ShowAutoSyncProfileInfo()
       
  2527 	{
       
  2528 	TBool ret = EFalse;
       
  2529 	
       
  2530 	TRAPD(err, ret = ShowAutoSyncProfileInfoL());
       
  2531 
       
  2532 #ifdef RD_DSUI_TIMEDSYNC
       
  2533 	UpdateTabsL();	
       
  2534 #endif
       
  2535 	
       
  2536 	if (err != KErrNone)
       
  2537 		{
       
  2538 		return EFalse;
       
  2539 		}
       
  2540 	return ret;
       
  2541 	}
       
  2542 
       
  2543 // -----------------------------------------------------------------------------
       
  2544 // CAspSettingDialog::ShowAutoSyncProfileInfoL
       
  2545 //
       
  2546 // -----------------------------------------------------------------------------
       
  2547 //
       
  2548 TBool CAspSettingDialog::ShowAutoSyncProfileInfoL()
       
  2549 	{
       
  2550 	CAspSchedule* schedule = CAspSchedule::NewLC();
       
  2551 	
       
  2552 	if (!schedule->CanSynchronizeL())
       
  2553     	{
       
  2554    	    CleanupStack::PopAndDestroy(schedule);
       
  2555 	    return EFalse;
       
  2556     	}
       
  2557 	
       
  2558 	TInt autoSyncError = schedule->Error();
       
  2559 	if (autoSyncError != KErrNone)
       
  2560 		{
       
  2561 
       
  2562 		TInt profileId = schedule->ProfileId();
       
  2563 		TInt asProfileId = schedule->AutoSyncProfileId();
       
  2564 		TAspParam param(iApplicationId, iSyncSession);
       
  2565 		CAspProfile* asProfile = CAspProfile::NewLC(param);
       
  2566 		asProfile->OpenL(asProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
  2567 		CAspProfile* profile = CAspProfile::NewLC(param);
       
  2568 		profile->OpenL(profileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
  2569 
       
  2570 		//display auto sync error query only if profile hasn't been manually synced after last auto sync
       
  2571 		if (asProfile->LastSync() >= profile->LastSync())
       
  2572 			{
       
  2573 			if (autoSyncError == CAspAutoSyncHandler::EOtherSyncRunning)
       
  2574 				{
       
  2575 				HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_MANUAL_SYNC_OVERRIDE);
       
  2576 				_LIT(KEmpty, " ");
       
  2577 				TDialogUtil::ShowMessageQueryL(KEmpty, hBuf->Des());
       
  2578    	   			CleanupStack::PopAndDestroy(hBuf);
       
  2579 				}
       
  2580 			else
       
  2581 				{
       
  2582 				HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_POPUP_AUTO_SYNC_ERROR);
       
  2583 				_LIT(KNewLine ,"\n");
       
  2584 				TBuf<KBufSize> buf(hBuf->Des());
       
  2585 				buf.Append(KNewLine);
       
  2586 				CAspResHandler::ReadL(iBuf, R_ASP_MAIN_AUTO_ERROR_LOG_LINK);
       
  2587 				buf.Append(iBuf);
       
  2588 				CleanupStack::PopAndDestroy(hBuf);
       
  2589 				hBuf = HBufC::NewLC(buf.Size());
       
  2590 				TPtr ptr(hBuf->Des());
       
  2591 				ptr = buf;
       
  2592 
       
  2593 			   	TDialogUtil::ShowAutoSyncMessageQueryL(hBuf->Des());
       
  2594 	   	   		CleanupStack::PopAndDestroy(hBuf);
       
  2595 				}
       
  2596 	  	    
       
  2597    	    	schedule->SetError(KErrNone);
       
  2598    	    	schedule->SaveL();
       
  2599 
       
  2600 			CleanupStack::PopAndDestroy(profile);
       
  2601 			CleanupStack::PopAndDestroy(asProfile);
       
  2602 			CleanupStack::PopAndDestroy(schedule);
       
  2603    	    	return ETrue;
       
  2604 			}
       
  2605 		
       
  2606 		CleanupStack::PopAndDestroy(profile);
       
  2607 		CleanupStack::PopAndDestroy(asProfile);
       
  2608 		
       
  2609 		schedule->SetError(KErrNone);
       
  2610    	    schedule->SaveL();
       
  2611 		}
       
  2612 
       
  2613     
       
  2614     TTime nextSync;
       
  2615     schedule->GetStartTimeL(nextSync ,ETrue);
       
  2616 
       
  2617     TInt profileIndex = iProfileList->ListIndex(schedule->ProfileId());
       
  2618     TAspProfileItem& item = iProfileList->Item(profileIndex); 
       
  2619     
       
  2620 	HBufC* hBuf1 = CAspResHandler::ReadAutoSyncInfoTextLC( item.iProfileName, nextSync);
       
  2621 	
       
  2622 	TDialogUtil::ShowInformationNoteL(hBuf1->Des());
       
  2623    	CleanupStack::PopAndDestroy(hBuf1);
       
  2624     CleanupStack::PopAndDestroy(schedule);
       
  2625 	return ETrue;
       
  2626 	}
       
  2627 
       
  2628 
       
  2629 // -----------------------------------------------------------------------------
       
  2630 // CAspSettingDialog::ShowPopupNote
       
  2631 //
       
  2632 // -----------------------------------------------------------------------------
       
  2633 //
       
  2634 void CAspSettingDialog::ShowPopupNoteL(const TDesC& aText) 
       
  2635     {
       
  2636     iPopupNote->SetTextL(aText);
       
  2637     iPopupNote->SetTimePopupInView(KSettingDialogPopupDisplayTime);    
       
  2638     iPopupNote->ShowInfoPopupNote();    
       
  2639     }
       
  2640 
       
  2641 
       
  2642 // -----------------------------------------------------------------------------
       
  2643 // CAspSettingDialog::Listbox
       
  2644 //
       
  2645 // -----------------------------------------------------------------------------
       
  2646 //
       
  2647 CAknDoubleLargeStyleListBox* CAspSettingDialog::ListBox()
       
  2648 	{
       
  2649 	__ASSERT_DEBUG(iSettingListBox, TUtil::Panic(KErrGeneral));
       
  2650 
       
  2651 	return iSettingListBox;
       
  2652 	}
       
  2653 
       
  2654 
       
  2655 // -----------------------------------------------------------------------------
       
  2656 // CAspSettingDialog::SyncRunning
       
  2657 //
       
  2658 // -----------------------------------------------------------------------------
       
  2659 //
       
  2660 TBool CAspSettingDialog::SyncRunning()
       
  2661 	{
       
  2662     if (!iSyncHandler)
       
  2663 		{
       
  2664 		return EFalse;
       
  2665 		}
       
  2666 
       
  2667 	if (iSyncHandler->SyncRunning())
       
  2668 		{
       
  2669 		return ETrue;
       
  2670 		}
       
  2671 
       
  2672 	return EFalse;
       
  2673 	}
       
  2674 
       
  2675 
       
  2676 // -----------------------------------------------------------------------------
       
  2677 // CAspSettingDialog::UpdateCbaL
       
  2678 // 
       
  2679 // -----------------------------------------------------------------------------
       
  2680 //
       
  2681 void CAspSettingDialog::UpdateCbaL(TInt aResourceId)
       
  2682     {
       
  2683     CEikButtonGroupContainer& cba = ButtonGroupContainer();
       
  2684     cba.SetCommandSetL(aResourceId);
       
  2685     cba.DrawDeferred();
       
  2686     }
       
  2687 
       
  2688 
       
  2689 // ----------------------------------------------------------------------------
       
  2690 // CAspSettingDialog::CancelCheckboxEvent
       
  2691 // 
       
  2692 // ----------------------------------------------------------------------------
       
  2693 //
       
  2694 void CAspSettingDialog::CancelCheckboxEventL()
       
  2695 	{
       
  2696 	CListBoxView* view = iSettingListBox->View();
       
  2697     
       
  2698     TInt index = view->CurrentItemIndex();
       
  2699     TBool selected = view->ItemIsSelected(index);
       
  2700     if (selected)
       
  2701        	{
       
  2702         view->DeselectItem(index);
       
  2703        	}
       
  2704     else
       
  2705     	{
       
  2706     	view->SelectItemL(index);
       
  2707     	}
       
  2708     	
       
  2709     iSettingListBox->SetCurrentItemIndex(index);
       
  2710     //view->SetCurrentItemIndex(index);
       
  2711 	}
       
  2712 
       
  2713 
       
  2714 // ----------------------------------------------------------------------------
       
  2715 // CAspSettingDialog::CancelCheckboxEvent
       
  2716 // 
       
  2717 // ----------------------------------------------------------------------------
       
  2718 //
       
  2719 void CAspSettingDialog::CancelCheckboxEvent()
       
  2720 	{
       
  2721 	TRAP_IGNORE(CancelCheckboxEventL());
       
  2722 	}
       
  2723 
       
  2724 
       
  2725 // ----------------------------------------------------------------------------
       
  2726 // CAspSettingDialog::CheckEmailSelection
       
  2727 // 
       
  2728 // ----------------------------------------------------------------------------
       
  2729 //
       
  2730 TBool CAspSettingDialog::CheckEmailSelection()
       
  2731 	{
       
  2732 	TBool ret = ETrue;
       
  2733 	
       
  2734 	TRAPD(err, ret = CheckEmailSelectionL());
       
  2735 	
       
  2736 	if (err != KErrNone)
       
  2737 		{
       
  2738 		return ETrue;
       
  2739 		}
       
  2740 	
       
  2741 	return ret;
       
  2742 	}
       
  2743 
       
  2744 
       
  2745 // ----------------------------------------------------------------------------
       
  2746 // CAspSettingDialog::CheckEmailSelectionL
       
  2747 // 
       
  2748 // ----------------------------------------------------------------------------
       
  2749 //
       
  2750 TBool CAspSettingDialog::CheckEmailSelectionL()
       
  2751 	{
       
  2752 	CListBoxView* view = iSettingListBox->View();
       
  2753 	
       
  2754     TInt index = view->CurrentItemIndex();
       
  2755     TAspProviderItem& item = iContentList->ProviderItem(index);
       
  2756     TBool selected = view->ItemIsSelected(index);
       
  2757     
       
  2758     if (item.iDataProviderId != KUidNSmlAdapterEMail.iUid)
       
  2759     	{
       
  2760     	return ETrue;
       
  2761     	}
       
  2762         
       
  2763     if (!selected)
       
  2764     	{
       
  2765     	return ETrue;
       
  2766     	}
       
  2767     
       
  2768     iContentList->UpdateDataProviderL(item.iDataProviderId);
       
  2769     if (!item.iHasDefaultDataStore)
       
  2770     	{
       
  2771     	CancelCheckboxEvent();
       
  2772     	TDialogUtil::ShowErrorNoteL(R_ASP_NO_MAILBOXES);
       
  2773     	return EFalse;
       
  2774     	}
       
  2775     	
       
  2776     if (HasCurrentProfile())
       
  2777     	{
       
  2778     	TAspParam param(iApplicationId, iSyncSession);
       
  2779 	    CAspProfile* profile = CAspProfile::NewLC(param);
       
  2780         profile->OpenL(iCurrentProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
  2781       
       
  2782 	    TInt num = profile->ProtocolVersion();
       
  2783 	    CleanupStack::PopAndDestroy(profile);
       
  2784 
       
  2785     	}
       
  2786     
       
  2787     	
       
  2788     
       
  2789     return ETrue;
       
  2790 	}
       
  2791 
       
  2792 // ----------------------------------------------------------------------------
       
  2793 // CAspSettingDialog::IsProfileLockedL
       
  2794 // Checks if a particular profile is already opened
       
  2795 // ----------------------------------------------------------------------------
       
  2796 //
       
  2797 TBool CAspSettingDialog::IsProfileLockedL(TInt aProfileId)
       
  2798 {
       
  2799 	
       
  2800 	TAspParam param(iApplicationId, iSyncSession);
       
  2801 	CAspProfile* profile = CAspProfile::NewLC(param);
       
  2802 	
       
  2803 	
       
  2804 	TRAPD(err, profile->OpenL(aProfileId, CAspProfile::EOpenReadWrite,
       
  2805                                          CAspProfile::EAllProperties));
       
  2806                                          
       
  2807     
       
  2808 	if (err == KErrLocked)
       
  2809 		{
       
  2810 		CleanupStack::PopAndDestroy(profile);
       
  2811 		return ETrue;
       
  2812 		}
       
  2813 	else
       
  2814 		{
       
  2815 		CleanupStack::PopAndDestroy(profile);
       
  2816 		return EFalse;
       
  2817 		}
       
  2818 	
       
  2819 }
       
  2820 // ----------------------------------------------------------------------------
       
  2821 // CAspSettingDialog::UpdateMiddleSoftKeyLabelL
       
  2822 // Update the MSK Label
       
  2823 // ----------------------------------------------------------------------------
       
  2824 //
       
  2825 void CAspSettingDialog::UpdateMiddleSoftKeyLabelL(TInt aCommandId,TInt aResourceId)
       
  2826 {
       
  2827 	ButtonGroupContainer().RemoveCommandFromStack(KMSKControlId,aCommandId );
       
  2828 	HBufC* middleSKText = StringLoader::LoadLC( aResourceId );
       
  2829 
       
  2830 	ButtonGroupContainer().AddCommandToStackL(
       
  2831 	KMSKControlId,
       
  2832 	aCommandId,
       
  2833 	*middleSKText );
       
  2834 	CleanupStack::PopAndDestroy( middleSKText );
       
  2835 }
       
  2836 
       
  2837 #ifdef _DEBUG
       
  2838 
       
  2839 
       
  2840 // -----------------------------------------------------------------------------
       
  2841 // LogDatabaseEvent
       
  2842 //
       
  2843 // -----------------------------------------------------------------------------
       
  2844 //
       
  2845 void CAspSettingDialog::LogDatabaseEvent(TAspDbEvent aEvent)
       
  2846 	{
       
  2847 	TBuf<KBufSize> buf;
       
  2848 	
       
  2849     if (aEvent.iType == CAspDbNotifier::EClose)
       
  2850     	{
       
  2851     	FLOG( _L("### EClose: close setting dialog ###") );
       
  2852     	}
       
  2853     else if (aEvent.iType == CAspDbNotifier::EUpdate)
       
  2854     	{
       
  2855         TInt index = iProfileList->ListIndex(aEvent.iProfileId);
       
  2856         if (index != KErrNotFound)
       
  2857            	{
       
  2858            	TAspProfileItem& item = iProfileList->Item(index);
       
  2859             FTRACE( RDebug::Print(_L("EUpdate: %S (%d)"), &item.iProfileName, aEvent.iProfileId) );
       
  2860                
       
  2861             buf.Format(_L("EUpdate: %S"), &item.iProfileName);
       
  2862 		    TUtil::Print(buf);
       
  2863            	}
       
  2864         else
       
  2865           	{
       
  2866            	FTRACE( RDebug::Print(_L("### EUpdate: profile not found (%d) ###"), aEvent.iProfileId) );
       
  2867            	TUtil::Print(_L("EUpdate: profile not found"));
       
  2868            	}
       
  2869     	}
       
  2870     else if (aEvent.iType == CAspDbNotifier::EDelete)
       
  2871     	{
       
  2872         TInt index = iProfileList->ListIndex(aEvent.iProfileId);
       
  2873         if (index != KErrNotFound)
       
  2874            	{
       
  2875            	TAspProfileItem& item = iProfileList->Item(index);
       
  2876 		    FTRACE( RDebug::Print(_L("EDelete: %S (%d)"), &item.iProfileName, aEvent.iProfileId) );
       
  2877 
       
  2878             buf.Format(_L("EDelete: %S"), &item.iProfileName);
       
  2879 		    TUtil::Print(buf);
       
  2880            	}
       
  2881         else
       
  2882            	{
       
  2883            	FTRACE( RDebug::Print(_L("EDelete: profile not found (%d)"), aEvent.iProfileId) );
       
  2884            	TUtil::Print(_L("EDelete: profile not found"));
       
  2885            	}
       
  2886     	
       
  2887     	}
       
  2888     else if (aEvent.iType == CAspDbNotifier::EUpdateAll)
       
  2889     	{
       
  2890      	FLOG( _L("EUpdateAll: read all profiles") );
       
  2891      	TUtil::Print(_L("EUpdateAll: read all profiles"));
       
  2892     	}
       
  2893 	}
       
  2894 
       
  2895 
       
  2896 // -----------------------------------------------------------------------------
       
  2897 // TestL
       
  2898 //
       
  2899 // -----------------------------------------------------------------------------
       
  2900 //
       
  2901 void CAspSettingDialog::TestL()
       
  2902     {
       
  2903     TAspParam param(iApplicationId, iSyncSession);
       
  2904 	CAspProfile* profile = CAspProfile::NewLC(param);
       
  2905     profile->OpenL(iCurrentProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
       
  2906       
       
  2907 	TBuf<128> buf; TBuf<128> buf2;
       
  2908 	profile->GetPassword(buf);
       
  2909 	TInt len = buf.Length();
       
  2910 	buf2.Format(_L("len = %d  text = %S"), len, &buf);
       
  2911 	TDialogUtil::ShowMessageQueryL(_L("huu"), buf2);
       
  2912     CleanupStack::PopAndDestroy(profile);
       
  2913     
       
  2914     /*
       
  2915     CListBoxView* view = iSettingListBox->View();
       
  2916     const CListBoxView::CSelectionIndexArray* arr = view->SelectionIndexes();
       
  2917     TBuf<128> buf; TBuf<128> buf2;
       
  2918     TInt count = arr->Count();
       
  2919     for (TInt i=0; i<count; i++)
       
  2920      	{
       
  2921        	buf2.Format(_L("%d "), (*arr)[i]);
       
  2922        	buf.Append(buf2);
       
  2923        	}
       
  2924     TDialogUtil::ShowMessageQueryL(_L("huu"), buf);
       
  2925     */
       
  2926     
       
  2927     /*
       
  2928     HBufC* hBuf = iResHandler->ReadProgressTextLC(_L("qwerty ggggggggggggggggggggggg"), CAspState::EPhaseSending);
       
  2929     TDialogUtil::ShowMessageQueryL(_L("huu"), hBuf->Des());
       
  2930     CleanupStack::PopAndDestroy(hBuf);
       
  2931     
       
  2932     hBuf = iResHandler->ReadProgressTextLC(_L("qwerty ggggggggggggggggggggggg"), CAspState::EPhaseReceiving);
       
  2933     TDialogUtil::ShowMessageQueryL(_L("huu"), hBuf->Des());
       
  2934     CleanupStack::PopAndDestroy(hBuf);
       
  2935 
       
  2936     hBuf = iResHandler->ReadProgressTextLC(_L("qwerty ggggggggggggggggggggggg"), 34);
       
  2937     TDialogUtil::ShowMessageQueryL(_L("huu"), hBuf->Des());
       
  2938     CleanupStack::PopAndDestroy(hBuf);
       
  2939     */
       
  2940     }
       
  2941 
       
  2942 
       
  2943 #endif
       
  2944 
       
  2945 
       
  2946 
       
  2947 
       
  2948 
       
  2949 //  End of File