diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclqueryeditor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/remotecontactlookup/engine/src/cpbkxrclqueryeditor.cpp Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,131 @@ +/* +* Copyright (c) 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: Implementation of the class CPbkxRclQueryEditor. +* +*/ + + +#include "emailtrace.h" +#include +#include +#include + +#include "pbkxremotecontactlookuppanic.h" +#include "cpbkxrclqueryeditor.h" +#include "pbkxrclengineconstants.h" +#include "pbkxrclutils.h" +#include "engine.hrh" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CPbkxRclQueryEditor::CPbkxRclQueryEditor +// --------------------------------------------------------------------------- +// +CPbkxRclQueryEditor::CPbkxRclQueryEditor( TDes& aQueryText ) : + CAknTextQueryDialog( aQueryText ) + { + FUNC_LOG; + } + +// --------------------------------------------------------------------------- +// CPbkxRclQueryEditor::ConstructL +// --------------------------------------------------------------------------- +// +void CPbkxRclQueryEditor::ConstructL( const TDesC& aAccountName ) + { + FUNC_LOG; + + PrepareLC( R_RCL_QUERY_DIALOG ); + + HBufC* promptBuf = StringLoader::LoadLC( R_QTN_RCL_SEARCH, aAccountName ); + SetPromptL( *promptBuf ); + CleanupStack::PopAndDestroy( promptBuf ); + + } + +// --------------------------------------------------------------------------- +// CPbkxRclQueryEditor::NewL +// --------------------------------------------------------------------------- +// +CPbkxRclQueryEditor* CPbkxRclQueryEditor::NewL( + const TDesC& aAccountName, + TDes& aQueryText ) + { + FUNC_LOG; + CPbkxRclQueryEditor* self = new ( ELeave ) CPbkxRclQueryEditor( aQueryText ); + CleanupStack::PushL( self ); + self->ConstructL( aAccountName ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CPbkxRclQueryEditor::~CPbkxRclQueryEditor +// --------------------------------------------------------------------------- +// +CPbkxRclQueryEditor::~CPbkxRclQueryEditor() + { + FUNC_LOG; + } + +// --------------------------------------------------------------------------- +// CPbkxRclQueryEditor::ExecuteDialogLD +// --------------------------------------------------------------------------- +// +TBool CPbkxRclQueryEditor::ExecuteDialogLD() + { + FUNC_LOG; + + SetEditorInputModeL(); + TInt ret = CAknQueryDialog::RunLD(); + return ( TBool )ret; + } + +// --------------------------------------------------------------------------- +// CPbkxRclQueryEditor::SetEditorInputModeL +// --------------------------------------------------------------------------- +// +void CPbkxRclQueryEditor::SetEditorInputModeL() + { + FUNC_LOG; + + CAknQueryControl* control = QueryControl(); + CEikEdwin* edwin = static_cast( + control->ControlByLayoutOrNull( EDataLayout ) ); + + User::LeaveIfNull( edwin ); + + TDes& text = Text(); + + TCoeInputCapabilities inputCapabilities( edwin->InputCapabilities() ); + if ( inputCapabilities.FepAwareTextEditor() + && inputCapabilities.FepAwareTextEditor()->Extension1() ) + { + CAknEdwinState* state = static_cast( + inputCapabilities.FepAwareTextEditor()->Extension1()->State( + KNullUid ) ); + + if ( text == KNullDesC || + PbkxRclUtils::HasAlphaCharsInString( text ) ) + { + state->SetCurrentInputMode( EAknEditorTextInputMode ); + } + else + { + state->SetCurrentInputMode( EAknEditorNumericInputMode ); + } + } + } +