diff -r 7b872347d83b -r 6d0b9f605b61 voipplugins/accountcreationplugin/src/acpquerycontainer.cpp --- a/voipplugins/accountcreationplugin/src/acpquerycontainer.cpp Tue Feb 02 00:05:57 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,424 +0,0 @@ -/* -* Copyright (c) 2007-2008 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: Implements CAcpProviderSpecificContainer methods -* -*/ - - -#include -#include -#include -#include -#include - -#include "acpqueryview.h" -#include "acpquerycontainer.h" -#include "accountcreationpluginlogger.h" -#include "accountcreationpluginconstants.h" - -const TInt KComponentControlCount = 1; -_LIT( KAsterisks, "****" ); - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::CAcpQueryContainer -// --------------------------------------------------------------------------- -// -CAcpQueryContainer::CAcpQueryContainer() - { - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::ConstructL -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::ConstructL( const TRect& aRect ) - { - ACPLOG( "CAcpQueryContainer::ConstructL begin" ); - - // Load "none" from resources to further use. - iNone = StringLoader::LoadL( R_ACP_SETTING_PAGE_EMPTY_TEXT ); - - // Default values for setting item texts. - iUsername.Copy( *iNone ); - iPassword.Copy( *iNone ); - - CreateWindowL(); - ConstructListBoxL(); - SetRect( aRect ); - ActivateL(); - - ACPLOG( "CAcpQueryContainer::ConstructL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::NewL -// --------------------------------------------------------------------------- -// -CAcpQueryContainer* CAcpQueryContainer::NewL( const TRect& aRect ) - { - CAcpQueryContainer* self = CAcpQueryContainer::NewLC( aRect ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::NewLC -// --------------------------------------------------------------------------- -// -CAcpQueryContainer* CAcpQueryContainer::NewLC( const TRect& aRect ) - { - CAcpQueryContainer* self = new ( ELeave ) CAcpQueryContainer(); - CleanupStack::PushL( self ); - self->ConstructL( aRect ); - return self; - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::~CAcpQueryContainer -// --------------------------------------------------------------------------- -// -CAcpQueryContainer::~CAcpQueryContainer() - { - ACPLOG( "CAcpQueryContainer::~CAcpQueryContainer begin" ); - delete iNone; - delete iListBox; - ACPLOG( "CAcpQueryContainer::~CAcpQueryContainer end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::ListBox -// Returns handle to the listbox. -// --------------------------------------------------------------------------- -// -CAknSettingStyleListBox* CAcpQueryContainer::ListBox() - { - return iListBox; - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::CurrentItemIndex -// Returns index of selected listbox item. -// --------------------------------------------------------------------------- -// -TInt CAcpQueryContainer::CurrentItemIndex() const - { - return iListBox->CurrentItemIndex(); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::ShowUsernameSettingPageL -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::ShowUsernameSettingPageL() - { - ACPLOG( "CAcpQueryContainer::ShowUsernameSettingPageL" ); - - // Show text setting page. - TBuf temporaryText ( iUsername ); - CAknTextSettingPage* dlg = new(ELeave) CAknTextSettingPage( - R_ACP_USERNAME_SETTING_PAGE, temporaryText ); - if ( dlg->ExecuteLD(CAknSettingPage::EUpdateWhenAccepted ) ) - { - iUsername.Copy( temporaryText ); - } - // Update currently selected list item. - UpdateListboxItemL( CurrentItemIndex() ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::ShowPwordSettingPageL -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::ShowPwordSettingPageL() - { - ACPLOG( "CAcpQueryContainer::ShowPwordSettingPageL" ); - - // Show password setting page. - TBuf temporaryPassword ( KNullDesC ); - temporaryPassword.Copy( iPassword ); - TBuf oldPassword ( KNullDesC ); - temporaryPassword.Copy( iPassword ); - - CAknSettingPage* dlg = new (ELeave) CAknAlphaPasswordSettingPage( - R_ACP_PASSWORD_SETTING_PAGE, temporaryPassword, oldPassword ); - if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted ) ) - { - iPassword.Copy( temporaryPassword ); - } - // Update currently selected list item. - UpdateListboxItemL( CurrentItemIndex() ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::GetContainerDataL -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::GetContainerDataL( TDes& aUsername, TDes& aPassword ) - { - // Setting item: Server username. - if ( aUsername.Length() > iUsername.Length() ) - { - User::Leave( KErrArgument ); - } - aUsername.Copy( iUsername ); - - // Setting item: Server password. - if ( aPassword.Length() > iPassword.Length() ) - { - User::Leave( KErrArgument ); - } - if ( iPassword.Compare( *iNone ) ) - { - aPassword.Copy( iPassword ); - } - - ACPLOG( "GetContainerDataL, Items appended" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::ConstructListBoxL -// Creates listbox item for provider list items. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::ConstructListBoxL() - { - ACPLOG( "CAcpQueryContainer::ConstructListBoxL begin" ); - - // Create listbox and array for listbox items. - iListBox = new( ELeave ) CAknSettingStyleListBox; - iListBox->ConstructL( this, EAknListBoxSelectionList ); - iListBox->CreateScrollBarFrameL( ETrue ); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray ); - - CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( KArrayGranuality ); - iListBox->Model()->SetItemTextArray( array ); - - // Fill container listbox with setting items. - FillListboxWithItemsL(); - - // Set listbox index to first item and draw. - iListBox->HandleItemAdditionL(); - iListBox->SetCurrentItemIndexAndDraw( 0 ); - - ACPLOG( "CAcpQueryContainer::ConstructListBoxL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::FillListboxWithItemsL -// Fills listbox with items. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::FillListboxWithItemsL() - { - ACPLOG("CAcpQueryContainer::FillListboxWithItemsL"); - - // Get listbox items from model. - CTextListBoxModel* model = iListBox->Model(); - MDesCArray* textArray = model->ItemTextArray(); - CDesCArray* listBoxItems = static_cast( textArray ); - TBuf listBoxItemText ( KNullDesC ); - - // Setting item: Server username. - HBufC* caption = StringLoader::LoadLC( R_ACP_USERNAME_SETTING_PAGE_TEXT ); - listBoxItemText.Format( - KAcpSettingItemTextFormat, - caption, - &iUsername ); - listBoxItems->AppendL( listBoxItemText ); - CleanupStack::PopAndDestroy( caption ); - ACPLOG( "FillListboxWithItemsL: Server username appended." ); - - // Setting item: Server password. - caption = StringLoader::LoadLC( R_ACP_PASSWORD_SETTING_PAGE_TEXT ); - listBoxItemText.Format( - KAcpSettingItemTextFormat, - caption, - &iPassword ); - listBoxItems->AppendL( listBoxItemText ); - CleanupStack::PopAndDestroy( caption ); - ACPLOG( - "CAcpQueryContainer::FillListboxWithItemsL: Server password appended." - ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::UpdateListboxItemL -// Updates setting page items. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::UpdateListboxItemL( const TInt aIndex ) - { - ACPLOG("CAcpQueryContainer::UpdateListboxItemL begin"); - - // Get listbox items from model. - CTextListBoxModel* model = iListBox->Model(); - MDesCArray* textArray = model->ItemTextArray(); - CDesCArray* listBoxItems = static_cast( textArray ); - - // Remove edited item from the list. - listBoxItems->Delete( aIndex ); - - // Fill line variables with correct data. - TBuf firstLine( KNullDesC ); - TBuf secondLine( KNullDesC ); - TBuf listBoxItemText( KNullDesC ); - FillListboxItemDataL( aIndex, firstLine, secondLine ); - - // Create new lisbox item data and insert it to correct place. - listBoxItemText.Format( - KAcpSettingItemTextFormat, - &firstLine, - &secondLine ); - listBoxItems->InsertL( aIndex, listBoxItemText ); - - // Update listbox. - iListBox->HandleItemAdditionL(); - - ACPLOG( "CAcpQueryContainer::UpdateListboxItemL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::FillListboxItemDataL -// Sets selected listbox item with member data. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::FillListboxItemDataL( const TInt aIndex, - TDes& aFirstLine, TDes& aSecondLine ) - { - HBufC* caption = NULL; - switch ( aIndex ) - { - // Setting item: Server username. - case CAcpQueryView::EAcpGenericUsername: - caption = StringLoader::LoadL( R_ACP_USERNAME_SETTING_PAGE_TEXT ); - aFirstLine.Copy( caption->Des() ); - delete caption; - aSecondLine.Copy( iUsername ); - break; - // Setting item: Server password. - case CAcpQueryView::EAcpGenericPassword: - caption = StringLoader::LoadL( R_ACP_PASSWORD_SETTING_PAGE_TEXT ); - aFirstLine.Copy( caption->Des() ); - delete caption; - // Show asterisks instead of the password. - if ( iPassword.Length() ) - { - aSecondLine.Copy( KAsterisks ); - } - else - { - aSecondLine.Copy( *iNone ); - } - break; - default: - User::Leave( KErrNotSupported ); - break; - } - - ACPLOG( "CAcpQueryContainer::FillListboxItemDataL" ); - ACPLOG2( "FillListboxItemDataL: List item filled: %d", aIndex ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::OfferKeyEventL -// From class CoeControl. -// --------------------------------------------------------------------------- -// -TKeyResponse CAcpQueryContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - TKeyResponse response = EKeyWasNotConsumed; - if ( aType == EEventKey ) - { - response = iListBox->OfferKeyEventL( aKeyEvent, aType ); - } - return response; - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::ComponentControl -// From class CoeControl. -// --------------------------------------------------------------------------- -// -CCoeControl* CAcpQueryContainer::ComponentControl( TInt aIndex ) const - { - switch ( aIndex ) - { - case 0 : - return iListBox; - default: - return 0; - } - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::CountComponentControls -// From class CoeControl. -// --------------------------------------------------------------------------- -// -TInt CAcpQueryContainer::CountComponentControls() const - { - return KComponentControlCount; - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::SizeChanged -// From class CoeControl. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::SizeChanged() - { - iListBox->SetRect( Rect() ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::FocusChanged -// From class CoeControl. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::FocusChanged( TDrawNow aDrawNow ) - { - CCoeControl::FocusChanged( aDrawNow ); - - if ( iListBox ) - { - iListBox->SetFocus( IsFocused() ); - } - } - -// --------------------------------------------------------------------------- -// CAcpQueryContainer::HandleResourceChange -// From class CoeControl. -// Called by framework when layout is changed. -// --------------------------------------------------------------------------- -// -void CAcpQueryContainer::HandleResourceChange( TInt aType ) - { - CCoeControl::HandleResourceChange( aType ); - - // ***************************** - // ADDED FOR SCALABLE UI SUPPORT - // ***************************** - if ( KEikDynamicLayoutVariantSwitch == aType ) - { - TRect rect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect ); - SetRect( rect ); - } - } - -// End of file.