--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/testdriver/testclient/ui/src/CTcSettingsDialog.cpp Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,120 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implementation.
+*
+*/
+
+#include <eikchlst.h>
+#include <eikdef.h>
+#include <eikenv.h>
+#include "CTcIAPManager.h"
+
+#include "CTcSettingsDialog.h"
+#include "TTcSettings.h"
+#include "TestClient.hrh"
+#include <TestClient.rsg>
+
+CTcSettingsDialog::CTcSettingsDialog( TTcSettings& aSettings )
+ : iSettings( aSettings )
+ {
+ }
+
+CTcSettingsDialog::~CTcSettingsDialog()
+ {
+ delete iIAPManager;
+ }
+
+void CTcSettingsDialog::ConstructL()
+ {
+ iIAPManager = CTcIAPManager::NewL();
+ }
+
+void CTcSettingsDialog::PreLayoutDynInitL()
+ {
+ CEikChoiceList* iapList =
+ reinterpret_cast< CEikChoiceList* >( Control( ECtrlIAPName ) );
+
+ CDesCArray* names = iapList->DesCArray();
+ names->Delete( 0 ); // delete dummy item from array
+
+ TInt count = iIAPManager->MdcaCount();
+ for( TInt i = 0; i < count; i++ )
+ {
+ TBuf< KCommsDbSvrMaxFieldLength > name16;
+ name16.Copy( iIAPManager->MdcaPoint( i ) );
+ names->AppendL( name16 );
+ if( (TInt)iIAPManager->Id( i ) == iSettings.iIAPId )
+ {
+ iapList->SetCurrentItem( i );
+ }
+ }
+
+ SetChoiceListCurrentItem( ECtrlConnection, iSettings.iBearerType );
+
+ TBuf<40> remoteAddrText;
+ iSettings.iTCPRemoteAddr.Output( remoteAddrText );
+ SetEdwinTextL(ECtrlRemoteAddr, &remoteAddrText);
+
+ SetNumberEditorValue( ECtrlTcpPort, iSettings.iTCPPort );
+
+ SetChoiceListCurrentItem( ECtrlCSYName, iSettings.iCSYName );
+ SetChoiceListCurrentItem( ECtrlCommPort, iSettings.iCommPort );
+ SetNumberEditorValue( ECtrlBaudrate, iSettings.iBaudrate );
+
+ TInt autoconnect( 1 );
+ if( !iSettings.iAutoConnect )
+ {
+ autoconnect = 0; // no autoconnect
+ }
+ SetChoiceListCurrentItem( ECtrlAutoConnect, autoconnect );
+ }
+
+TBool CTcSettingsDialog::OkToExitL( TInt /*aKeycode*/ )
+ {
+ CEikChoiceList* iapList =
+ reinterpret_cast< CEikChoiceList* >( Control( ECtrlIAPName ) );
+ iSettings.iIAPId = iIAPManager->Id( iapList->CurrentItem() );
+
+ iSettings.iBearerType = ChoiceListCurrentItem( ECtrlConnection );
+
+ TBuf<40> remoteAddrText;
+ GetEdwinText(remoteAddrText, ECtrlRemoteAddr);
+ if (KErrNone != iSettings.iTCPRemoteAddr.Input(remoteAddrText))
+ {
+ _LIT(KInvalidAddressText, "Invalid remote IP");
+ CEikonEnv::Static()->AlertWin(KInvalidAddressText);
+ return EFalse;
+ }
+
+ iSettings.iTCPPort = NumberEditorValue( ECtrlTcpPort );
+
+ iSettings.iCSYName = ChoiceListCurrentItem( ECtrlCSYName );
+
+ iSettings.iCommPort = ChoiceListCurrentItem( ECtrlCommPort );
+
+ iSettings.iBaudrate = NumberEditorValue( ECtrlBaudrate );
+
+ if( ChoiceListCurrentItem( ECtrlAutoConnect ) == 1 )
+ {
+ iSettings.iAutoConnect = ETrue;
+ }
+ else
+ {
+ iSettings.iAutoConnect = EFalse;
+ }
+
+ iSettings.Store();
+ return ETrue;
+ }
+