diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpstui/src/cvimpstuisearchquerydialog.cpp --- a/uiservicetab/vimpstui/src/cvimpstuisearchquerydialog.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,512 +0,0 @@ -/* -* 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: search fields editor implementation -* -*/ - - -// INCLUDE FILES -#include "cvimpstuisearchquerydialog.h" - -#include "cvimpstuisearchfieldaray.h" -#include "vimpstui.hrh" -#include "vimpstutils.h" -// resource -#include - -// System includes -#include -#include -#include -#include -#include -#include -#include -#include "uiservicetabtracer.h" - - - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::CVIMPSTUiSearchQueryDialog -// -------------------------------------------------------------------------- -// -CVIMPSTUiSearchQueryDialog::CVIMPSTUiSearchQueryDialog(CVIMPSTUiSearchFieldArray& aUiFieldArray ) - : iUiFieldArray( aUiFieldArray ) - { - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::~CVIMPSTUiSearchQueryDialog -// -------------------------------------------------------------------------- -// -CVIMPSTUiSearchQueryDialog::~CVIMPSTUiSearchQueryDialog() - { - // Restore the titlepane text - if (iTitlePane && iStoredTitlePaneText) - { - // iTitlePane takes ownership of iStoredTitlePaneText - TRAP_IGNORE( iTitlePane->SetTextL( iStoredTitlePaneText->Des() ) ); - delete iStoredTitlePaneText; - } - // Remove empty status pane - if (iNaviContainer) - { - iNaviContainer->Pop(); - } - - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::NewL -// -------------------------------------------------------------------------- -// -CVIMPSTUiSearchQueryDialog* CVIMPSTUiSearchQueryDialog::NewL(CVIMPSTUiSearchFieldArray& aUiFieldArray ) - { - CVIMPSTUiSearchQueryDialog* self = - new ( ELeave ) CVIMPSTUiSearchQueryDialog(aUiFieldArray); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::ConstructL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::ConstructL() - { - TRACER_AUTO; - CAknDialog::ConstructL(R_SEARCH_EDITOR_MENUBAR); - - StoreTitlePaneTextL(); - - ConstructNaviPaneL(); - - iSearchType = iUiFieldArray.GetSearchType(); - - if( !IsBasicFieldAvailableL() ) - { - iSearchType = EIMAdvancedSearch ; - iUiFieldArray.SetSearchType( EIMAdvancedSearch ); - } - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::ExecuteLD -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::ExecuteLD() - { - TRACER_AUTO; - CleanupStack::PushL( this ); - - // Set status pane layout to the Phonebook 2 one - CEikStatusPane* statusPane = iAvkonAppUi->StatusPane(); - if (statusPane) - { - statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL); - } - CleanupStack::Pop( this ); - - CAknForm::ExecuteLD(R_SEARCH_ENTRY_DIALOG); - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::OfferKeyEventL -// -------------------------------------------------------------------------- -// -TKeyResponse CVIMPSTUiSearchQueryDialog::OfferKeyEventL - ( const TKeyEvent& aKeyEvent, TEventCode aType ) - { - TRACER_AUTO; - TKeyResponse ret(EKeyWasNotConsumed); - - ret = CAknForm::OfferKeyEventL( aKeyEvent, aType ); - isEndKeyPressed = ETrue; - if ( ret == EKeyWasConsumed && aKeyEvent.iCode != EKeyEscape ) - { - isEndKeyPressed = EFalse; - UpdateCbasL(); - } - return ret; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::PreLayoutDynInitL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::PreLayoutDynInitL() - { - SetEditableL(ETrue); - - iUiFieldArray.CreateUiFieldsFromArrayL( *this ); - - ShowSearchUiFieldsL(); - - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::PostLayoutDynInitL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::PostLayoutDynInitL() - { - UpdateTitleL(); - } -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::SetInitialCurrentLineL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::SetInitialCurrentLineL() - { - ActivateFirstPageL(); - - CAknForm::SetInitialCurrentLine(); - - iUiFieldArray.SetFocusL(0); - - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::OkToExitL -// -------------------------------------------------------------------------- -// -TBool CVIMPSTUiSearchQueryDialog::OkToExitL( TInt aKeycode ) - { - TRACER_AUTO; - TBool ret = EFalse; - switch( aKeycode ) - { - case EAknSoftkeyEmpty : - { - ret = EFalse; - break; - } - case EEikCmdExit : - case EAknSoftkeyExit : - case EAknSoftkeyCancel : - { - ret = ETrue; - break; - } - case EAknSoftkeyDone : - case EAknSoftkeyOk : - { - CmdDoneL( ); - ret = ETrue; - break; - } - - case EBasicSearch : - { - iSearchType = EIMBasicSearch; - ShowSearchUiFieldsL(); - UpdateTitleL(); - ret = EFalse; - break; - } - case EAdvancedSearch : - { - iSearchType = EIMAdvancedSearch ; - ShowSearchUiFieldsL(); - UpdateTitleL(); - ret = EFalse; - break; - } - default : - { - ret = CAknForm::OkToExitL( aKeycode ) ; - } - } - iUiFieldArray.SetSearchType( iSearchType ); - UpdateCbasL(); - return ret; - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::CreateLineL -// -------------------------------------------------------------------------- -// -CCoeControl* CVIMPSTUiSearchQueryDialog::CreateLineL - ( const TDesC& aCaption, TInt aControlId, TInt aControlType ) - { - return CreateLineByTypeL( aCaption, aControlId, aControlType, NULL ); - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::LineControl -// -------------------------------------------------------------------------- -// -CEikCaptionedControl* CVIMPSTUiSearchQueryDialog::LineControl - ( TInt aControlId ) const - { - return Line( aControlId ); - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::SetEditableL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::SetEditableL( TBool aState ) - { - CAknForm::SetEditableL( aState ); - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::AreAllControlsEmptyL -// -------------------------------------------------------------------------- -// -TBool CVIMPSTUiSearchQueryDialog::AreAllControlsEmptyL() const - { - // before saving entered data - return iUiFieldArray.AreAllUiControlsEmptyL(); - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::ConstructContextMenuL -// -------------------------------------------------------------------------- -// -inline void CVIMPSTUiSearchQueryDialog::ConstructContextMenuL() - { - TRACER_AUTO; - CEikMenuBar* newMenuBar = new ( ELeave ) CEikMenuBar(); - CleanupStack::PushL( newMenuBar ); - newMenuBar->ConstructL - ( this, NULL, R_SEARCH_EDITOR_CONTEXT_MENUBAR ); - iEikonEnv->EikAppUi()->AddToStackL( newMenuBar, ECoeStackPriorityMenu, - ECoeStackFlagRefusesFocus ); - iContextMenuBar = newMenuBar; - CleanupStack::Pop( newMenuBar ); - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::ConstructNaviPaneL -// -------------------------------------------------------------------------- -// -inline void CVIMPSTUiSearchQueryDialog::ConstructNaviPaneL() - { - TRACER_AUTO; - CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane(); - if (statusPane && statusPane->PaneCapabilities - ( TUid::Uid( EEikStatusPaneUidNavi ) ).IsPresent() ) - { - // Create a default empty status pane, otherwise sync field will show - iNaviContainer = static_cast - ( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); - iNaviContainer->PushDefaultL(); - } - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::UpdateTitleL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::UpdateTitleL() - { - if (iTitlePane) - { - HBufC* titleText = NULL; - if( iSearchType == EIMBasicSearch ) - { - titleText = VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_BASIC ); - iTitlePane->SetTextL( *titleText ); - } - else - { - titleText = VIMPSTUtils::LoadResourceL( R_QTN_SERVTAB_SEARCH_ADVANCED ); - iTitlePane->SetTextL( *titleText); - } - delete titleText; - DrawNow(); - } - - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::CmdDoneL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::CmdDoneL( ) - { - TInt count = iUiFieldArray.Count(); - for( TInt i = 0; i< count ; i++ ) - { - HBufC* data = iUiFieldArray.At(i).ControlTextL() ; - if(data) - { - iUiFieldArray.At(i).SetFieldDataL( *data ) ; - delete data; - } - } - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::TryChangeFocusL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::TryChangeFocusL( - TInt aControlId ) - { - if ( ControlOrNull( aControlId ) ) - { - TryChangeFocusToL( aControlId ); - } - } -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::SetCurrentLineCaptionL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::SetCurrentLineCaptionL( - const TDesC& aText ) - { - SetControlCaptionL(IdOfFocusControl(), aText); - } -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::Control -// -------------------------------------------------------------------------- -// -CCoeControl* CVIMPSTUiSearchQueryDialog::Control( - TInt aControlId ) const - { - return ControlOrNull(aControlId); - } -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::StoreTitlePaneTextL -// -------------------------------------------------------------------------- -// -inline void CVIMPSTUiSearchQueryDialog::StoreTitlePaneTextL() - { - CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane(); - if (statusPane && statusPane->PaneCapabilities( - TUid::Uid(EEikStatusPaneUidTitle)).IsPresent()) - { - iTitlePane = static_cast - (statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle))); - if (iTitlePane->Text()) - { - iStoredTitlePaneText = iTitlePane->Text()->AllocL(); - } - } - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::UpdateCbasL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::UpdateCbasL() - { - TRACER_AUTO; - if ( !AreAllControlsEmptyL() ) - { - if ( iCbaCommandSet != R_AVKON_SOFTKEYS_OK_CANCEL__OK ) - { - SetCbaCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL__OK ); - } - } - else - { - if( iSearchType == EIMBasicSearch && iCbaCommandSet != R_SEARCH_SOFTKEYS_ADVANCED_CANCEL__EDIT ) - { - SetCbaCommandSetL( R_SEARCH_SOFTKEYS_ADVANCED_CANCEL__EDIT ); - } - else if( iSearchType == EIMAdvancedSearch && iCbaCommandSet != R_SEARCH_SOFTKEYS_BASIC_CANCEL__EDIT ) - { - SetCbaCommandSetL( R_SEARCH_SOFTKEYS_BASIC_CANCEL__EDIT ); - } - } - - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::SetCbaCommandSetL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::SetCbaCommandSetL( TInt aResourceId ) - { - TRACER_AUTO; - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - cba.SetCommandSetL( aResourceId ); - iCbaCommandSet = aResourceId; - cba.DrawDeferred(); - } -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::SetLineDimmed -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::SetLineDimmed( - TInt aControlId , TBool aDimmed) - { - SetLineDimmedNow(aControlId, aDimmed); - } -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::ShowSearchUiFieldsL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiSearchQueryDialog::ShowSearchUiFieldsL() - { - TRACER_AUTO; - TInt count = iUiFieldArray.Count(); - for( TInt i = 0; i< count; i++ ) - { - MVIMPSTUiSearchField& field = iUiFieldArray.At(i); - if( iSearchType == EIMBasicSearch ) - { - if( !field.IsBasicField() ) - { - SetLineDimmed( field.ControlId(), ETrue ); - } - } - else - { - SetLineDimmed( field.ControlId(), EFalse ); - } - } - SetInitialCurrentLineL(); - UpdateCbasL(); - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::IsBasicFieldAvailableL -// -------------------------------------------------------------------------- -// -TBool CVIMPSTUiSearchQueryDialog::IsBasicFieldAvailableL() - { - TRACER_AUTO; - TInt count = iUiFieldArray.Count(); - for( TInt i = 0; i< count; i++ ) - { - MVIMPSTUiSearchField& field = iUiFieldArray.At(i); - if( field.IsBasicField() ) - { - return ETrue; - } - } - return EFalse; - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiSearchQueryDialog::IsEndKeyPressed() -// -------------------------------------------------------------------------- -// -TBool CVIMPSTUiSearchQueryDialog::IsEndKeyPressed() - { - return isEndKeyPressed; - } -// End of File