--- 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 )
+ {
+ }
+
+}