iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp
branchRCL_3
changeset 25 7333d7932ef7
parent 9 51c0f5edf5ef
child 26 8b7f4e561641
--- a/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Thu Aug 19 10:02:49 2010 +0300
+++ b/iaupdate/IAD/ui/src/iaupdatesettingdialog.cpp	Tue Aug 31 15:21:33 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010-2011 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,695 +11,396 @@
 *
 * Contributors:
 *
-* Description:    
+* Description:   This module contains the implementation of IAUpdateSettingDialog 
+*                class member functions.
 *
 */
 
-
-
-
-// INCLUDE FILES
+#include <hbdataform.h>
+#include <hbdataformmodel.h>
+#include <centralrepository.h>
+#include <cmconnectionmethoddef.h>
+#include <cmdestination.h>
+#include <xqconversions.h>
+#include <hbaction.h> 
 
 #include "iaupdatesettingdialog.h"
-#include "iaupdateaccesspointhandler.h"  
-#include "iaupdatestatuspanehandler.h"
-#include "iaupdateapplication.h"
+#include "iaupdateprivatecrkeys.h"
 #include "iaupdate.hrh"
-#include "iaupdateprivatecrkeys.h"
-#include "iaupdatedebug.h"
-#include <iaupdate.rsg>
-
-#include <centralrepository.h>
-#include <featmgr.h> 
-#include <hlplch.h>
-
-
-_LIT( KSWUPDATE_HLP_SETTINGS, "SWUPDATE_HLP_SETTINGS" ); 
-
-
-
-
-// cenrep in emulator:
-// copy 2000F85A.txt to '\epoc32\release\winscw\udeb\Z\private\10202be9\'
-// delete 2000F85A.txt from 'epoc32\winscw\c\private\10202be9\persists'
-//
-// cenrep in hardware:
-// copy 2000F85A.txt to '\epoc32\data\Z\private\10202be9'
-//
-
-
-
-/******************************************************************************
- * class CIAUpdateSettingDialog
- ******************************************************************************/
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::ShowDialogL
-// 
-// -----------------------------------------------------------------------------
-TBool CIAUpdateSettingDialog::ShowDialogL()
-	{
-	//__UHEAP_MARK;
-	
-	CIAUpdateSettingDialog* dialog = CIAUpdateSettingDialog::NewL();
-
-	TBool ret = dialog->ExecuteLD( R_IAUPDATE_SETTING_DIALOG );
-
-   	//__UHEAP_MARKEND;
-   	
-    return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::NewL
-//
-// -----------------------------------------------------------------------------
-CIAUpdateSettingDialog* CIAUpdateSettingDialog::NewL()
-    {
-    CIAUpdateSettingDialog* self = new ( ELeave ) CIAUpdateSettingDialog();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::CIAUpdateSettingDialog
-// 
-// -----------------------------------------------------------------------------
-//
-CIAUpdateSettingDialog::CIAUpdateSettingDialog()
-	{
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::ConstructL()
-    {
- 	CAknDialog::ConstructL( R_IAUPDATE_SETTING_DIALOG_MENU );
-    
-    // get previous title so it can be restored
-	iStatusPaneHandler = CIAUpdateStatusPaneHandler::NewL( iAvkonAppUi );
-	iStatusPaneHandler->StoreOriginalTitleL();
-    } 
-
-
-// ----------------------------------------------------------------------------
-// Destructor
-//
-// ----------------------------------------------------------------------------
-//
-CIAUpdateSettingDialog::~CIAUpdateSettingDialog()
-    {
-	delete iStatusPaneHandler;
-	
-    if (iAvkonAppUi)
-    	{
-    	iAvkonAppUi->RemoveFromStack( this );
-    	}
-    }
-
-
-// ---------------------------------------------------------
-// CIAUpdateSettingDialog::CreateCustomControlL
-// ---------------------------------------------------------
-//
-SEikControlInfo CIAUpdateSettingDialog::CreateCustomControlL( TInt aControlType )
-    {
-    SEikControlInfo controlInfo;
-    controlInfo.iControl = NULL;
-    controlInfo.iTrailerTextId = 0;
-    controlInfo.iFlags = 0;
-    
-    switch ( aControlType )
-        {
-        case EAknCtLastControlId:
-            {
-            controlInfo.iControl = new (ELeave) CIAUpdateSettingItemList();
-            break;
-            }
-
-        default:
-            {
-            break;
-            }
-        }
-    return controlInfo;
-    }
 
 
-//------------------------------------------------------------------------------
-// CIAUpdateSettingDialog::ActivateL
-//
-// Called by system when dialog is activated.
-//------------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::ActivateL()
-	{
-    CAknDialog::ActivateL();
-
-	// this cannot be in ConstructL which is executed before dialog is launched
-	iAvkonAppUi->AddToStackL(this);
-    }
-
+const TInt KAutoUpdateOn( 0 );
+const TInt KAutoUpdateOff( 1 );
+const TInt KAutoUpdateOnInHomeNetwork( 2 );
 
-//------------------------------------------------------------------------------
-// CIAUpdateSettingDialog::GetHelpContext
-//
-//------------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::GetHelpContext( TCoeHelpContext& aContext ) const
-	{
-	aContext.iMajor = KUidIAUpdateApp;
-    aContext.iContext = KSWUPDATE_HLP_SETTINGS;        
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::HandleListBoxEventL
-// 
-// -----------------------------------------------------------------------------
-void CIAUpdateSettingDialog::HandleListBoxEventL( CEikListBox* /*aListBox*/,
-                                                  TListBoxEvent /*aEventType*/ )
+/*
+Constructor. It creates a formwidget on the view. 
+*/
+CIAUpdateSettingDialog::CIAUpdateSettingDialog(QGraphicsItem* parent):HbView(parent)
     {
-    }
-
+    
+    //setTitle("Software update");
+    
+    mSettingsForm = new HbDataForm(this);
+            
 
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::PreLayoutDynInitL
-// 
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::PreLayoutDynInitL()
-    {
-    iList = (CIAUpdateSettingItemList*) ControlOrNull ( EIAUpdateSettingDialogList );
+    // open connection manager 
+    TRAPD(err,  mCmManager.OpenL()); 
+    qt_symbian_throwIfError(err);
     
-    iList->LoadSettingsL(); // from CAknSettingItemList
+    // destination field flag inititializations 
+    mSetByNwQuery = false; // dest set by user/by destination query
+    mConnected = false;    // already connected to query
+    mInitialized = false;  // field initialized ?
     
-	iStatusPaneHandler->SetTitleL( R_IAUPDATE_SETTING_DIALOG_TITLE );
-	iStatusPaneHandler->SetNaviPaneTitleL(KNullDesC);
-    }
-
+    // Initialize view
+    initializeView();
+    
+    //setWidget(mSettingsForm);
+    setWidget(mSettingsForm);
+    
+    // Create application settings ui
+    mApplSett = new CmApplSettingsUi(this);
 
-//------------------------------------------------------------------------------
-// CIAUpdateSettingDialog::DynInitMenuPaneL
-//
-// Called by system before menu is shown.
-//------------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::DynInitMenuPaneL(TInt aResourceID, CEikMenuPane* aMenuPane )
-	{
-    if( aResourceID == R_IAUPDATE_SETTING_DIALOG_MENU_PANE ) 
-        {
-        if ( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
-            aMenuPane->SetItemDimmed( EAknCmdHelp, ETrue );
-            }
-        }
+    // Create a back key action and set it as the default navigation
+    // action once the back key is pressed
+    mBackKey = new HbAction(Hb::BackNaviAction, this);
+    this->setNavigationAction(mBackKey);
+
+    connect(mBackKey, SIGNAL(triggered()), this, SLOT(showPreviousView()));
+
     }
 
-
-//------------------------------------------------------------------------------
-// CIAUpdateSettingDialog::ProcessCommandL
-//
-// Handle commands from menu.
-//------------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::ProcessCommandL(TInt aCommandId)
-	{
-    if ( MenuShowing() ) 
-        {
-        HideMenu();
-        }
-
-
-	switch ( aCommandId )
-		{
-		case EAknCmdHelp:
-			{
-			HlpLauncher::LaunchHelpApplicationL( 
-			                     iEikonEnv->WsSession(), 
-			                     iEikonEnv->EikAppUi()->AppHelpContextL() );
-		    break;
-			}
- 
-		case EAknCmdOpen:
-			{
-			EditItemL();
-			break;
-			}
-		    
-        case EAknCmdExit:
-        case EEikCmdExit:
-			{
-			// close dialog and exit calling application
-			iAvkonAppUi->ProcessCommandL( EAknCmdExit );
-			break;
-			}
-
-		default:			
-		    break;
-		}
-	}
-
-
-//------------------------------------------------------------------------------
-// CIAUpdateSettingDialog::OkToExitL
-//
-//------------------------------------------------------------------------------
-//
-TBool CIAUpdateSettingDialog::OkToExitL(TInt aButtonId)
-	{
-	if ( aButtonId == EEikBidCancel )
-		{
-		TRAP_IGNORE( SaveSettingsL() );  //potential leave trapped 
-		                                 //because IAD is not closed if SaveSettingsL() leaves 
-		return ETrue; // close dialog
-		}
-
-	if ( aButtonId == EAknSoftkeyOpen )
-		{
-		EditItemL();
-
-		return EFalse; // leave dialog open
-		}
-
-	if ( aButtonId == EAknSoftkeyBack )
-        {
-		SaveSettingsL();
-		
-		return ETrue; // close dialog
-		}
-
-	return CAknDialog::OkToExitL(aButtonId);
-	}
-
-
+/*
+Destructor
+*/
+CIAUpdateSettingDialog::~CIAUpdateSettingDialog()
+    {
+    // close connection manager 
+    mCmManager.Close();
+    }
 
 // ----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::OfferKeyEventL
+// CIAUpdateSettingDialog::toggleChange
 // 
 // ----------------------------------------------------------------------------
 //
-TKeyResponse CIAUpdateSettingDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
-	{
-	if (aType == EEventKey)
-		{
-		switch (aKeyEvent.iCode)
-			{
-			case EKeyEscape:  // framework calls this when dialog must shut down
-				{
-				return CAknDialog::OfferKeyEventL(aKeyEvent, aType);
-        		}
-			case EKeyUpArrow:
-			case EKeyDownArrow:
-			    {
-    		    break;
-			    }
-            default:
-				{
-			    break;
-				}
-			}
-		}
+void CIAUpdateSettingDialog::toggleChange(QModelIndex startIn, QModelIndex /*endIn*/)
+{
+    // HLa: this should work
+    HbDataFormModelItem *itm = mModel->itemFromIndex(startIn);
 
-	return CAknDialog::OfferKeyEventL( aKeyEvent, aType);
-	}
-
-
+    // Destination ?
+    if ( startIn.row() == 0 )
+        {
+        // no query when initializing fields
+        if ( mInitialized )
+            {
+            // no query if field value set by destination query
+            if (!mSetByNwQuery )
+                {
+                queryDestination();
+                mSetByNwQuery = true;
+                }
+                else
+                {
+                mSetByNwQuery = false;
+                }
+            }
+        else
+            {
+            mInitialized = true;
+            }
+           
+        }
+    // Auto update ?
+    if ( startIn.row() == 1 )
+        {
+         int currentIndex = mAutoUpdateItem->contentWidgetData(QString("currentIndex")).toInt();
+        }
+}
 // ----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::HandleResourceChange
+// CIAUpdateSettingDialog::queryDestination
 // 
 // ----------------------------------------------------------------------------
 //
-void CIAUpdateSettingDialog::HandleResourceChange(TInt aType)
-    {   
-    if (aType == KEikDynamicLayoutVariantSwitch) //Handle change in layout orientation
-        {
-        TRect mainPaneRect;
-        AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPaneRect );
-        SetRect( mainPaneRect );
-    
-        iList->HandleResourceChange( aType );
-    
-        CCoeControl::HandleResourceChange( aType );
-		DrawDeferred();
-	    return;
-		}
-		
-    if ( aType == KAknsMessageSkinChange )
-        {
-        }
-		
-    CCoeControl::HandleResourceChange( aType );
-    }
+void CIAUpdateSettingDialog::queryDestination()
+  {
+        QFlags<CmApplSettingsUi::SelectionDialogItems> listItems;
+        QSet<CmApplSettingsUi::BearerTypeFilter> filter;
+        
+        // Show only destinations
+       listItems |= CmApplSettingsUi::ShowDestinations;
+       // listItems |= CmApplSettingsUi::ShowConnectionMethods;
 
+        mApplSett->setOptions(listItems, filter);
+        mApplSett->setSelection(mSelection);
+        
+        // Connect finished(uint) signal and handle result via it
+        if (!mConnected)
+            {
+            connect(mApplSett, SIGNAL(finished(uint)), this, SLOT(showResults(uint)));
+            mConnected = true;
+            }
+        
+        // Start CmApplSettingsUi
+        mApplSett->open();
 
+  }
 // ----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::EditItemL
+// CIAUpdateSettingDialog::showResults
 // 
 // ----------------------------------------------------------------------------
 //
-void CIAUpdateSettingDialog::EditItemL()
-	{
-	TInt currentIndex = iList->ListBox()->CurrentItemIndex();
-	TBool calledFromMenu = ETrue;
-	
-	iList->EditItemL( currentIndex, calledFromMenu );
-	}
-
+void CIAUpdateSettingDialog::showResults(uint retval)
+{
+    if (retval == CmApplSettingsUi::ApplSettingsErrorNone) {
+        mSelection = mApplSett->selection();
+        
+        uint destinationId = mSelection.id;
+        
+        QString idString;
+        
+        TRAPD( err, getDestinationNameL( destinationId, idString ) );
+        qt_symbian_throwIfError(err);
 
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingDialog::SetVisibility
-// 
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::SetVisibility()
-	{
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentDialog::SetAllReadOnly
-// 
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingDialog::SetAllReadOnly()
-	{
-	}
-
+        // Destination changed ?
+        if ( idString != mCurrentDest )
+            {
+            mCurrentDest = idString;
+            }
+    }
+   // inform toggleChange that change is not made by user
+    mSetByNwQuery = true;
+    mDestinationItem->setContentWidgetData(QString("text"), mCurrentDest);
+}
 
 // ----------------------------------------------------------------------------
 // CIAUpdateSettingDialog::SaveSettingsL
 // 
 // ----------------------------------------------------------------------------
 //
-void CIAUpdateSettingDialog::SaveSettingsL()
-	{
-    iList->StoreSettingsL();  // from CAknSettingItemList
-    
+void CIAUpdateSettingDialog::saveSettingsL()
+    {
     CRepository* cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
     TInt err = cenrep->StartTransaction( CRepository::EReadWriteTransaction );
     User::LeaveIfError( err );
+    
     cenrep->CleanupCancelTransactionPushL();
-
+    
+    // Set destination
+    TInt value = mSelection.id;
+    err = cenrep->Set( KIAUpdateAccessPoint, value ) ;
+    User::LeaveIfError( err );
+    
+    // Set auto update check
+    value = mAutoUpdateItem->contentWidgetData(QString("currentIndex")).toInt();
     
-    TInt num = iList->Attribute( EAccessPoint );
-    if ( num == 0 )
-        {
-        // O means default destination. Let's save it as -1 so that we know later on 
-        // whether cenrep really contained the default or just nothing.
-        num = -1;
-        }
-    err = cenrep->Set( KIAUpdateAccessPoint, num );
+    // Convert ist index index to setting value
+    switch ( value )
+         {
+         case KAutoUpdateOn:
+             value = EIAUpdateSettingValueDisableWhenRoaming;
+             break;
+         case KAutoUpdateOff:
+             value = EIAUpdateSettingValueDisable;
+             break;
+         case KAutoUpdateOnInHomeNetwork:
+             value = EIAUpdateSettingValueEnable;
+             break;
+         default: 
+             break;
+         }
+    err = cenrep->Set( KIAUpdateAutoUpdateCheck, value ); 
+    
     User::LeaveIfError( err );
-
-    num = iList->Attribute( EAutoUpdateCheck );
-    err = cenrep->Set( KIAUpdateAutoUpdateCheck, num );
-    User::LeaveIfError( err );
-           
+    
     TUint32 ignore = KErrNone;
     User::LeaveIfError( cenrep->CommitTransaction( ignore ) );
     CleanupStack::PopAndDestroy(); // CleanupCancelTransactionPushL()
     CleanupStack::PopAndDestroy( cenrep );
-	}
-	
-	
-
-
-
-/******************************************************************************
- * class CIAUpdateSettingItemList
- ******************************************************************************/
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingItemList::CreateSettingItemL
-// 
-// -----------------------------------------------------------------------------
-//
-CAknSettingItem* CIAUpdateSettingItemList::CreateSettingItemL( TInt aSettingId )
-    {
-    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateSettingItemList::CreateSettingItemL begin");
-    CRepository* cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
-    CAknSettingItem* item = NULL;
-    
-    switch ( aSettingId )
-        {
-        case EIAUpdateSettingAccessPoint:
-            {
-            User::LeaveIfError( cenrep->Get( KIAUpdateAccessPoint, iAccessPoint ) );
-            IAUPDATE_TRACE_1("[IAUPDATE] CIAUpdateSettingItemList::CreateSettingItemL iAccessPoint: %d", iAccessPoint);
-            if ( iAccessPoint == -1 )
-                {
-                // -1 was just our private representation in cenrep of the default destination  
-                // Let's handle it as it was 0
-                iAccessPoint = 0;
-                }
-            item = CIAUpdateAccessPointSettingItem::NewL( aSettingId, iAccessPoint );
-            break;
-            }
-
-        case EIAUpdateSettingAutoUpdateCheck:
-            {
-            User::LeaveIfError( cenrep->Get( KIAUpdateAutoUpdateCheck, iAutoUpdateCheck ) );
-            item = new (ELeave) CAknEnumeratedTextPopupSettingItem
-                               ( aSettingId, iAutoUpdateCheck );
-            break;
-            }
-
-        default:
-            {
-            item = new (ELeave) CAknSettingItem( aSettingId );
-            break;
-            }
-        }
-    CleanupStack::PopAndDestroy( cenrep ); 
-    IAUPDATE_TRACE("[IAUPDATE] CIAUpdateSettingItemList::CreateSettingItemL end");
-    return item;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingItemList::LoadSettingsL
-// 
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingItemList::LoadSettingsL()
-    {
-    CAknSettingItemList::LoadSettingsL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingItemList::EditItemL
-// 
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingItemList::EditItemL( TInt aIndex, TBool aCalledFromMenu )
-    {
-    CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
-    }
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingItemList::SetAttribute
-// 
-// -----------------------------------------------------------------------------
-//
-
-// -----------------------------------------------------------------------------
-// CIAUpdateSettingItemList::Attribute
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CIAUpdateSettingItemList::Attribute( TInt aKey )
-    {
-    TInt ret = KErrNotFound;
-    
-    switch ( aKey )
-        {
-        case CIAUpdateSettingDialog::EAccessPoint:
-            {
-            ret = iAccessPoint;
-            break;
-            }
-        case CIAUpdateSettingDialog::EAutoUpdateCheck:
-            {
-            ret = iAutoUpdateCheck;
-            break;
-            }
-        default:
-            {
-            IAUpdateDialogUtil::Panic( KErrNotSupported );
-            break;
-            }
-        }
-        
-    return ret;
     }
 
 
 // -----------------------------------------------------------------------------
-// CIAUpdateSettingItemList::CheckSettings
-// 
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateSettingItemList::CheckSettings()
-    {
-    if ( iAutoUpdateCheck != EIAUpdateSettingValueDisable &&
-         iAutoUpdateCheck != EIAUpdateSettingValueDisableWhenRoaming &&
-         iAutoUpdateCheck != EIAUpdateSettingValueEnable )
-        {
-        iAutoUpdateCheck = EIAUpdateSettingValueEnable;
-        }
-    }
-
-
-
-/******************************************************************************
- * class CIAUpdateAccessPointSettingItem
- ******************************************************************************/
-
-// -----------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::NewL
-//
+// CIAUpdateSettingDialog::initializeFieldsL
 // -----------------------------------------------------------------------------
 //
-CIAUpdateAccessPointSettingItem* CIAUpdateAccessPointSettingItem::NewL(
-                   TInt aSettingId, TInt& aAccessPointId )
+void CIAUpdateSettingDialog::initializeFieldsL()
     {
-    CIAUpdateAccessPointSettingItem* item = 
-    new (ELeave) CIAUpdateAccessPointSettingItem( aSettingId, aAccessPointId );
-    CleanupStack::PushL(item);
-    item->ConstructL();
-    CleanupStack::Pop(item);
-    return item;
-	}
-
-// -----------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::CIAUpdateAccessPointSettingItem
-//
-// -----------------------------------------------------------------------------
-//
-CIAUpdateAccessPointSettingItem::CIAUpdateAccessPointSettingItem( 
-                                 TInt aSettingId, TInt& aAccessPointId )
-:   CAknSettingItem( aSettingId ), 
-    iAccessPointId ( aAccessPointId )
-    {
-    }
-
+    CRepository* cenrep = CRepository::NewLC( KCRUidIAUpdateSettings );
+    int destId = 0;
+    
+    // get access point id
+    User::LeaveIfError( cenrep->Get( KIAUpdateAccessPoint, destId ) );
+    
+    // save id
+    mSelection.id = destId;
+    
+    // On first time: show internet access point
+    if ( mSelection.id == 0 )
+        {
+        User::LeaveIfError(mSelection.id = getInternetSnapIdL());
+        }
 
-// -----------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::~CIAUpdateAccessPointSettingItem
-// 
-// -----------------------------------------------------------------------------
-//
-CIAUpdateAccessPointSettingItem::~CIAUpdateAccessPointSettingItem()
-    {
-    delete iSettingText;
-    delete iApHandler;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CIAUpdateAccessPointSettingItem::ConstructL()
-    {
-    iApHandler = CIAUpdateAccessPointHandler::NewL();
-     
-    if ( iAccessPointId == 0 )
-        {
-    	iApHandler->GetDefaultConnectionLabelL( iSettingText );
+    // set destination name
+    TRAPD( err, getDestinationNameL( mSelection.id, mCurrentDest ) );
+   
+    if ( err == KErrNotFound )
+        { 
+        mSelection.id = 0;
         }
     else
         {
-        TRAPD( err, iApHandler->GetApNameL( iAccessPointId, iSettingText ) );
-        if ( err == KErrNotFound )
-            { // destination stored by IAD may be removed
-            iAccessPointId = 0;
-            iApHandler->GetDefaultConnectionLabelL( iSettingText );
-            }
-        else
-            {
-            User::LeaveIfError( err );
-            }
+         // nothing to do ?
+         User::LeaveIfError( err );
         }
+    mDestinationItem->setContentWidgetData(QString("text"), mCurrentDest);
+    
+    // set auto update value
+    int value = 0;
+    User::LeaveIfError( cenrep->Get( KIAUpdateAutoUpdateCheck, value ) );
+    
+    // map cenrep value to index
+    switch ( value )
+         {
+         case EIAUpdateSettingValueEnable:
+             value = KAutoUpdateOn; // On 
+             break;
+         case EIAUpdateSettingValueDisable:
+             value = KAutoUpdateOff; // Off
+             break;
+         case EIAUpdateSettingValueDisableWhenRoaming:
+             value = KAutoUpdateOnInHomeNetwork; // On in home network
+             break;
+         default: 
+             break;
+         }
+    
+    mAutoUpdateItem->setContentWidgetData("currentIndex", value);
+    
+   
+    CleanupStack::PopAndDestroy( cenrep ); 
+
     } 
 
 
 // -----------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::EditItemL
-// 
+// CIAUpdateSettingDialog::getDestinationNameL
+//
 // -----------------------------------------------------------------------------
 //
-void CIAUpdateAccessPointSettingItem::EditItemL( TBool /*aCalledFromMenu*/ )
+void CIAUpdateSettingDialog::getDestinationNameL( uint aItemUid, QString& aItemName )
     {
-    EditAccessPointItemL();
-    }
-
+    
+    if ( aItemUid == 0 )
+        {
+        aItemUid = getInternetSnapIdL();
+        }
 
-// -----------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::SettingTextL
-// 
-// -----------------------------------------------------------------------------
-//
-const TDesC& CIAUpdateAccessPointSettingItem::SettingTextL()
-    {
-    if ( !iSettingText )
+    RCmDestination dest = mCmManager.DestinationL( aItemUid );
+    CleanupClosePushL( dest );
+    HBufC* temp = dest.NameLC();    
+    CleanupStack::Pop( temp );
+    CleanupStack::PopAndDestroy( &dest ); 
+    
+    aItemName = XQConversions::s60DescToQString( temp->Des() );
+
+    if ( aItemName.size() == 0 ) 
         {
-    	return CAknSettingItem::SettingTextL();
+        User::Leave(KErrNotFound);
         }
-    else if ( iSettingText->Length() == 0 )
-        {
-        return CAknSettingItem::SettingTextL();
-        }
-        
-    return *iSettingText;
     }
 
-
-//------------------------------------------------------------------------------
-// CIAUpdateAccessPointSettingItem::EditAccessPointItemL
+// -----------------------------------------------------------------------------
+// ActionView::initializeView
+// -----------------------------------------------------------------------------
 //
-//------------------------------------------------------------------------------
-//	
-TBool CIAUpdateAccessPointSettingItem::EditAccessPointItemL()
+void CIAUpdateSettingDialog::initializeView()
     {
-	TInt itemUid = iAccessPointId;
-	
-	TInt ret = KErrNone;
-	
-	delete iSettingText;
-	iSettingText = NULL;
-	TRAPD( err, ret = iApHandler->ShowApSelectDialogL( itemUid, iSettingText ) );
-	
-	if ( err != KErrNone )
-	    {
-	    iAccessPointId = KErrNotFound;
-	    UpdateListBoxTextL(); // from CAknSettingItem
-	    return EFalse;
-	    }
-	
-	if ( ret == CIAUpdateAccessPointHandler::EDialogSelect )
-		{
-		iAccessPointId = itemUid;
- 	    UpdateListBoxTextL(); // from CAknSettingItem
-	    return ETrue;
-		}
-		
-	return EFalse;
+    
+    setTitle("Software update"); // txt_software_title_software_update
+    mSettingsForm->setHeading("Settings"); // txt_software_subhead_settings
+
+     //create a model class
+     HbDataFormModel *mModel = new HbDataFormModel();
+
+     // add Destination item
+     mDestinationItem = mModel->appendDataFormItem(
+         HbDataFormModelItem::ToggleValueItem, QString("Network connection")); // txt_software_formlabel_access_point
+
+     // add auto update item
+     mAutoUpdateItem = mModel->appendDataFormItem(
+        HbDataFormModelItem::ComboBoxItem, QString("Auto-check for updates")); // txt_software_setlabel_autocheck_for_updates
+     
+     // auto update selection values
+     QStringList list;
+     list.insert(0, QString("On")); // txt_software_setlabel_val_on
+     list.append(QString("Off")); // txt_software_setlabel_val_off
+     list.append(QString("On in home network")); // txt_software_setlabel_val_on_in_home_network
+     mAutoUpdateItem->setContentWidgetData("items", list);
+
+     // connect data changes for launching the access point selection dialog
+     connect(mModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), 
+                 this, SLOT(toggleChange(QModelIndex, QModelIndex)));
+
+     // connect to function called when data items are displayed
+     connect(mSettingsForm, SIGNAL(activated(QModelIndex)), 
+                      this, SLOT(activated(QModelIndex)));
+     
+     mSettingsForm->setModel(mModel);
+         
+     // set values for items
+     TRAPD(err, initializeFieldsL());
+     qt_symbian_throwIfError(err);
+}
+
+// -----------------------------------------------------------------------------
+// ActionView::getInternetSnapIdL
+// -----------------------------------------------------------------------------
+//
+uint CIAUpdateSettingDialog::getInternetSnapIdL()
+    {
+    TUint internetSnapId( 0 );
+    
+    RArray<TUint32> destinationIdArray;
+    mCmManager.AllDestinationsL( destinationIdArray );
+    
+    for ( TInt i = 0; i < destinationIdArray.Count(); i++ )
+        {
+        RCmDestination destination = mCmManager.DestinationL( destinationIdArray[i] );
+        CleanupClosePushL( destination );
+        
+        TUint32 metadata = destination.MetadataL( CMManager::ESnapMetadataPurpose );
+        if ( metadata == CMManager::ESnapPurposeInternet )
+            {
+            internetSnapId = destinationIdArray[i];
+            // Get the destination name with destination.NameLC() if need.
+            CleanupStack::PopAndDestroy( &destination );
+            break;
+            }
+        CleanupStack::PopAndDestroy( &destination );
+        }
+    destinationIdArray.Close();
+    
+    return internetSnapId;
+    
     }
 
-	
-//  End of File  
+void CIAUpdateSettingDialog::showPreviousView()
+{
+    // Save settings    
+    TRAPD(err,  saveSettingsL()); 
+    qt_symbian_throwIfError(err);
+    
+    // Switch view
+    emit toMainView();
+}
+
+void CIAUpdateSettingDialog::activated(const QModelIndex& index)
+{
+    if ( this->isActiveWindow() && index.row() == 0 )
+        {
+        }
+
+}