wlansecuritysettings/wlaneapsettingsui/pap/configui/src/papuiview.cpp
branchRCL_3
changeset 18 bad0cc58d154
parent 17 30e048a7b597
child 19 c74b3d9f6b9e
--- a/wlansecuritysettings/wlaneapsettingsui/pap/configui/src/papuiview.cpp	Thu Aug 19 09:58:27 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,649 +0,0 @@
-/*
-* Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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 of PAP UI settings dialog
-*
-*/
-
-/*
-* %version: 13 %
-*/
-
-// INCLUDE FILES
-#include "papuiview.h"
-#include "papuisettingarray.h"
-#include "papuipwsettingitem.h"
-#include "papui.hrh"
-#include <papui.rsg>
-#include <eikdialg.h>
-#include <AknDialog.h>
-#include <aknlists.h>
-#include <akntextsettingpage.h>
-#include <aknsettingitemlist.h>
-#include <aknnavi.h>
-#include <aknnavide.h>
-#include <aknnotewrappers.h>
-#include <StringLoader.h>
-#include <EapTlsPeapUiConnection.h>
-#include <EapTlsPeapUiDataConnection.h>
-#include <EapTlsPeapUiTlsPeapData.h>
-#include <featmgr.h>
-#include <hlplch.h>
-#include <csxhelp/cp.hlp.hrh>
-
-
-// CONSTANTS
-// UID of general settings app, in which help texts are included
-const TUid KHelpUidPlugin = { 0x100058EC };
- 
-// MODULE DATA STRUCTURES
-enum TSettingIds
-    {
-    EUsernameItem=0,
-    EPasswordPromptItem,
-    EPasswordItem
-    };
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::CPapUiDialog
-// -----------------------------------------------------------------------------
-//
-CPapUiDialog::CPapUiDialog( CEapTlsPeapUiConnection* aConnection, 
-                              TInt& aButtonId ) 
-: CAknDialog(),
-  iConnection( aConnection ),
-  iNaviPane( 0 ), 
-  iNaviDecorator( 0 ),   
-  iButtonId( &aButtonId ),
-  iSettingPwPrompt( ETrue ),
-  iIsUIConstructionCompleted( EFalse ),
-  iUsernameCancelled( EFalse )
-    {    
-    }
-
-
-// ---------------------------------------------------------
-// CPapUiDialog::ConstructAndRunLD
-// ---------------------------------------------------------
-//
-TInt CPapUiDialog::ConstructAndRunLD( TInt aResourceId )
-    {
-    CleanupStack::PushL( this );
-
-    iSettingArray = CPapSettingItemArray::NewL();
-    
-    User::LeaveIfError( iConnection->Connect() );
-
-    // Basic data
-    iDataConnection = iConnection->GetDataConnection();
-    if ( iDataConnection == 0 )
-        {
-        User::Leave( KErrNoMemory );
-        }
-    User::LeaveIfError( iDataConnection->Open() );
-    User::LeaveIfError( iDataConnection->GetData( &iUiData ) );
-        
-    //Copy the eapol UI data to the temporary data shown on the setting UI
-    iSettingUsername.Copy( iUiData->GetPapUserName() );
-    iSettingPwPrompt = *( iUiData->GetPapPasswordPrompt() );
-    iSettingPassword.Copy( iUiData->GetPapPassword() );    
-
-    #if defined(_DEBUG) || defined(DEBUG)    
-    RDebug::Print(_L("When read from eapol, iSettingUsername = %S"), &iSettingUsername );
-    RDebug::Print(_L("When read from eapol, iSettingPwPrompt = %d"), iSettingPwPrompt );
-    RDebug::Print(_L("When read from eapol, iSettingPassword = %S"), &iSettingPassword );
-    #endif    
-    
-    FeatureManager::InitializeLibL();
-    
-    ConstructL( R_PAP_MENUBAR );
-    
-    // ExecuteLD will PushL( this ), so we have to Pop it first...
-    CleanupStack::Pop( this );
-    
-    return CAknDialog::ExecuteLD( aResourceId );
-    }
-    
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::~CPapUiDialog
-// -----------------------------------------------------------------------------
-//
-CPapUiDialog::~CPapUiDialog()
-    {
-
-    delete iNaviDecorator;
-            
-    if ( iSettingArray )
-        {
-        iSettingArray->Array()->ResetAndDestroy();
-        delete iSettingArray;
-        }
-
-    iSettingListBox = NULL;
-
-    if ( iDataConnection )
-        {
-        iDataConnection->Close();        
-        delete iDataConnection;
-        }
-
-    if ( iConnection )
-        {
-        iConnection->Close();        
-        }
-    
-    delete iPreviousText;
-        
-    FeatureManager::UnInitializeLib();
-    }
-
-
-// ---------------------------------------------------------
-// CPapUiDialog::HandleListBoxEventL
-// ---------------------------------------------------------
-//
-void CPapUiDialog::HandleListBoxEventL( CEikListBox* /*aListBox*/,
-                                                   TListBoxEvent aEventType )
-    {
-    switch ( aEventType )
-        {
-        case EEventEnterKeyPressed:
-        case EEventItemSingleClicked:
-            {
-            OkToExitL( EPapUiCmdChange );         
-            break;
-            }
-
-        case EEventItemActioned:
-        case EEventEditingStarted:
-        case EEventEditingStopped:
-        case EEventPenDownOnItem:
-        case EEventItemDraggingActioned:
-            {
-            break;
-            }
-
-        default:
-            {
-            break;
-            };
-        };
-    }    
-
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::PreLayoutDynInitL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::PreLayoutDynInitL()
-    {
-    ChangeTitleL( ETrue );
-    
-    TUid naviPaneUid;
-    naviPaneUid.iUid = EEikStatusPaneUidNavi;
-    CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
-    CEikStatusPaneBase::TPaneCapabilities subPane = 
-                                statusPane->PaneCapabilities( naviPaneUid );
-    if ( subPane.IsPresent()&&subPane.IsAppOwned() )
-        {
-        iNaviPane = static_cast<CAknNavigationControlContainer*>( 
-                                        statusPane->ControlL( naviPaneUid ) );
-
-        // Set empty text to hide tabs.
-        iNaviDecorator = iNaviPane->CreateNavigationLabelL( KNullDesC );
-        iNaviPane->PushL( *iNaviDecorator );
-        }           
-
-    
-    // Initialize setting page 
-    iSettingListBox = static_cast<CAknSettingStyleListBox*>( 
-                                    ControlOrNull( EPapSettingsListBox ) );
-    iSettingListBox->SetMopParent( this );
-    iSettingListBox->CreateScrollBarFrameL( ETrue );
-    iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
-                                                CEikScrollBarFrame::EOff,
-                                                CEikScrollBarFrame::EAuto );
-    iSettingListBox->SetListBoxObserver( this );
-    DrawSettingsListL();
-
-    iIsUIConstructionCompleted = ETrue;
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::ChangeTitleL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::ChangeTitleL( TBool aIsStarted )
-    {
-    TUid titlePaneUid;
-    titlePaneUid.iUid = EEikStatusPaneUidTitle;
-
-    CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
-    CEikStatusPaneBase::TPaneCapabilities subPane = 
-                                statusPane->PaneCapabilities( titlePaneUid );
-    
-    if ( subPane.IsPresent() && subPane.IsAppOwned() )
-        {
-        CAknTitlePane* titlePane = static_cast<CAknTitlePane*>(
-                                        statusPane->ControlL( titlePaneUid) );
-        if ( aIsStarted )
-            {
-            // Store previous application title text
-            const TDesC* prevText = titlePane->Text();    
-            iPreviousText = HBufC::NewL( prevText->Length() );
-            iPreviousText->Des().Append( *prevText );
-            TDesC* titleText = iEikonEnv->AllocReadResourceLC( 
-                                                    R_PAP_SETTINGS_TITLE );
-            titlePane->SetTextL( *titleText );
-            CleanupStack::PopAndDestroy( titleText ); 
-            }
-        else
-            {
-            // Set calling application title text back
-            titlePane->SetTextL( *iPreviousText );    
-            }    
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::OkToExitL
-// -----------------------------------------------------------------------------
-//
-TBool CPapUiDialog::OkToExitL( TInt aButtonId )
-    {
-    #if defined(_DEBUG) || defined(DEBUG)
-    RDebug::Print(_L("CPapUiDialog::OkToExitL") );
-    #endif   
-    
-    TBool ret( EFalse );
-    switch ( aButtonId )
-        {
-        case EEikBidOk:
-            {
-            if( iIsUIConstructionCompleted )
-                {
-                if ( iSettingListBox->IsFocused() )
-                    {
-                    ShowSettingPageL( EFalse );
-                    }    
-                }
-            else
-                {
-                #if defined(_DEBUG) || defined(DEBUG)
-				RDebug::Print(_L("CPapUiDialog::OkToExitL - UI not ready - Ignoring key press.\n") );
-				#endif
-                }
-                
-            break;
-            }
-
-        case EAknSoftkeyOptions:
-            {
-            DisplayMenuL();
-            break;
-            }
-
-        case EAknSoftkeyBack:
-        case EAknCmdExit:
-            {
-            UpdateEapolData();
-            ChangeTitleL( EFalse );
-            ret = ETrue;
-            break;
-            }
-        
-        case EPapUiCmdChange:
-            {
-            if( iIsUIConstructionCompleted )
-    			{
-        		ShowSettingPageL( EFalse );
-    			}
-    	    else
-    			{
-    			#if defined(_DEBUG) || defined(DEBUG)
-    			RDebug::Print(_L("CPapUiDialog::ProcessCommandL - UI not ready - Ignoring key press.\n") );
-    			#endif
-    			}
-
-            break;
-            }
-
-        default:
-            {
-            break;
-            }
-        }
-
-    if ( ret )
-        {
-        *iButtonId = aButtonId;
-        }
-
-    return ret;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::DrawSettingsListL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::DrawSettingsListL()
-    {
-    iSettingArray->Array()->ResetAndDestroy();
-    TInt ordinal = 0;
-    
-    // ---------------------------------------------------------------
-    // Username setting item. If the username has never been set,
-    // shows "(not defined)", otherwise shows the username.
-    iSettingArray->AddTextItemL( iSettingUsername,
-                                 EPapSettingPageUserName,
-                                 R_PAP_USERNAME_SETTING_TITLE,
-                                 R_PAP_USERNAME_PAGE,
-                                 NULL,
-                                 ordinal++ );
-                                 
-    // ---------------------------------------------------------------
-    // Password prompt setting item. Radio buttons Prompt/User defined.                                
-    iSettingArray->AddBinarySettingItemL( R_PAP_PASSWORD_POPUP_PAGE,
-                                          R_PAP_PASSWORD_SETTING_TITLE, 
-                                          R_PAP_PASSWORD_PROMPT_CHOICES,
-                                          ordinal++,
-                                          iSettingPwPrompt );
-                                          
-    // ---------------------------------------------------------------
-    // Password setting item. Never visible in the setting list, but the
-    // setting page opens when the user selects "User defined" in the
-    // password prompt setting item.
-    iSettingArray->AddPasswordItemL( iSettingPassword,
-                                 EPapSettingPagePassword,
-                                 R_PAP_PASSWORD_SETTING_TITLE,
-                                 R_PAP_PASSWORD_SETTING_PAGE,
-                                 NULL,
-                                 ordinal++ );
-                                 
-    // Set the last item hidden
-    CAknSettingItem* item = iSettingArray->Array()->At( EPasswordItem );
-    item->SetHidden( ETrue );
-                           
-                                                                                                           
-    iSettingListBox->Model()->SetItemTextArray( iSettingArray->Array() );    
-    iSettingListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    iSettingArray->Array()->RecalculateVisibleIndicesL();
-    iSettingListBox->HandleItemAdditionL();
-    iSettingListBox->UpdateScrollBarsL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::DynInitMenuPaneL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::DynInitMenuPaneL( TInt aResourceId, 
-                                         CEikMenuPane* aMenuPane )
-    {
-    CAknDialog::DynInitMenuPaneL( aResourceId, aMenuPane );
-
-    if ( aResourceId == R_PAP_MENU_PANE )
-        {
-        if ( aMenuPane && !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
-            aMenuPane->DeleteMenuItem( EAknCmdHelp );
-            }
-
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::UpdateEapolData
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::UpdateEapolData()
-    {
-    #if defined(_DEBUG) || defined(DEBUG)
-    RDebug::Print(_L("CPapUiDialog::UpdateEapolData") );    
-    RDebug::Print(_L("Saving username: %S"), &iSettingUsername );
-    RDebug::Print(_L("Saving pwprompt: %d"), iSettingPwPrompt );
-    RDebug::Print(_L("Saving password: %S"), &iSettingPassword );    
-    #endif
-        
-    // username
-    if ( iSettingUsername.Length() )
-        {
-        ( iUiData->GetPapUserName() ).Copy( iSettingUsername );
-        }
-    
-        
-    // pwprompt
-    *( iUiData->GetPapPasswordPrompt() ) = iSettingPwPrompt;
-       
-    // password
-    ( iUiData->GetPapPassword() ).Copy( iSettingPassword );
-        
-    iDataConnection->Update();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::ProcessCommandL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::ProcessCommandL( TInt aCommand )
-    {
-    if ( MenuShowing() )
-        {
-        HideMenu();
-        }
-
-    switch( aCommand )
-        {
-        case EAknCmdExit:
-            {
-            TryExitL( aCommand );
-            break;
-            }
-
-        case EAknCmdHelp:
-            {
-            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
-                                    iEikonEnv->EikAppUi()->AppHelpContextL() );
-            break;
-            }
-
-        case EPapUiCmdChange:
-            {
-            if( iIsUIConstructionCompleted )
-    			{
-        		ShowSettingPageL( ETrue );
-    			}
-    		else
-    			{
-    		    #if defined(_DEBUG) || defined(DEBUG)
-    			RDebug::Print(_L("CPapUiDialog::ProcessCommandL - UI not ready - Ignoring key press.\n") );
-    			#endif
-    			}
-            break;
-            }
-
-        default:
-            {
-            break;
-            }
-        }
-    }
-    
-    
-// -----------------------------------------------------------------------------
-// CPapUiDialog::ShowSettingPageL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::ShowSettingPageL( TInt aCalledFromMenu ) 
-    {
-    #if defined(_DEBUG) || defined(DEBUG)
-    RDebug::Print(_L("CPapUiDialog::ShowSettingPageL") );
-    #endif    
-    
-    TInt index = iSettingListBox->CurrentItemIndex();
-    
-    if ( index == EUsernameItem )
-        {
-        ShowUsernameSettingPageL();
-        }
-    
-    else if ( index == EPasswordPromptItem )
-        {
-        // The previous value is needed for comparison,
-        // after the user has done the editing
-        TBool oldChoice = iSettingPwPrompt;
-        
-        // Show the radio button page and let the user edit
-        CAknSettingItem* item = iSettingArray->Array()->At( index );
-        item->EditItemL( aCalledFromMenu );
-        item->StoreL();
-        
-        // Check the new value
-        TBool newChoice = iSettingPwPrompt;
-        
-        // Prompt -> User defined
-        if ( oldChoice && !newChoice )
-            {
-            // Ask to set a password
-            ShowPasswordSettingPageL();
-            
-            // If the password item was cancelled,
-            // or if username was prompted and cancelled,
-            // restore "Prompt" for the password prompt setting
-            if ( iSettingArray->IsPwItemCancelled() || iUsernameCancelled )
-                {
-                // Toggle the setting back to Prompt without showing the page
-                item->EditItemL( EFalse );
-                item->StoreL();
-                }
-            }
-        
-        // User defined -> User defined        
-        else if ( !oldChoice && !newChoice )
-           {
-           // Ask to set a new password
-           ShowPasswordSettingPageL();
-           }
-        
-        // Prompt -> Prompt
-        else if ( oldChoice && newChoice )
-            {
-            // Do nothing
-            }
-
-        // User defined -> Prompt       
-        else if ( !oldChoice && newChoice )
-            {
-            // Remove the password
-            CPapUiPwSettingItem* pwItem =
-                static_cast< CPapUiPwSettingItem* >(
-                    iSettingArray->Array()->At( EPasswordItem ) );
-            pwItem->DeletePasswordL();
-            
-            }
-            
-        else
-            {
-            // It shouldn't be possible to end up here
-            }
-        
-        }
-        
-    else
-        {
-        // shouldn't end up here
-        }                
-
-    DrawNow();
-    }
-    
-// -----------------------------------------------------------------------------
-// CPapUiDialog::ShowUsernameSettingPageL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::ShowUsernameSettingPageL() 
-    {
-    #if defined(_DEBUG) || defined(DEBUG)
-    RDebug::Print(_L("CPapUiDialog::ShowUsernameSettingPageL") );
-    #endif
-    
-    iUsernameCancelled = EFalse;
-    
-    CAknSettingItem* item = iSettingArray->Array()->At( EUsernameItem );
-    item->EditItemL( EFalse );
-    item->StoreL(); 
-    }
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::ShowPasswordSettingPageL
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::ShowPasswordSettingPageL() 
-    {
-    #if defined(_DEBUG) || defined(DEBUG)
-    RDebug::Print(_L("CPapUiDialog::ShowPasswordSettingPageL") );
-    #endif  
-    
-    CAknSettingItem* item = iSettingArray->Array()->At( EPasswordItem );
-    
-    item->EditItemL( EFalse );
-    item->StoreL();
-    DrawNow();
-
-    // If password is set, then username must also be defined    
-    if ( !iSettingUsername.Length() && !iSettingArray->IsPwItemCancelled() )
-        {
-        // Show an info note about missing username
-        HBufC* message = NULL;
-        message = StringLoader::LoadLC( R_PAP_DEFINE_USERNAME_INFO_NOTE );
- 	    CAknInformationNote* note = new( ELeave ) CAknInformationNote( ETrue );
-        note->ExecuteLD( *message );
-		CleanupStack::PopAndDestroy( message );
-		
-		ShowUsernameSettingPageL();
-		
-		// If the username is still empty, it can only mean that the user has
-		// cancelled the operation -> remove the temporarily accepted password
-		if ( !iSettingUsername.Length() )
-		    {
-		    iUsernameCancelled = ETrue;
-		    // Remove the password
-            CPapUiPwSettingItem* pwItem =
-                static_cast< CPapUiPwSettingItem* >(
-                    iSettingArray->Array()->At( EPasswordItem ) );
-            pwItem->DeletePasswordL();
-		    }
-        }
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CPapUiDialog::GetHelpContext
-// -----------------------------------------------------------------------------
-//
-void CPapUiDialog::GetHelpContext( TCoeHelpContext& aContext ) const
-    {
-    aContext.iMajor = KHelpUidPlugin;    
-    aContext.iContext = KSET_HLP_WLAN_EAP_PAP;
-    }
-
-//  End of File