uifw/AvKon/src/AknQueryControl.cpp
branchRCL_3
changeset 55 aecbbf00d063
parent 51 fcdfafb36fe7
child 56 d48ab3b357f1
--- a/uifw/AvKon/src/AknQueryControl.cpp	Thu Aug 19 10:11:06 2010 +0300
+++ b/uifw/AvKon/src/AknQueryControl.cpp	Tue Aug 31 15:28:30 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -77,9 +77,8 @@
 #include <AknTasHook.h> // for testability hooks
 #include <tacticon.h>
 
-#include "akntrace.h"
 const TInt KPinCodeTacticonInterval = 30000000; // 30s
-const TInt KPinCodeMaxTacticons = 5;
+const TInt KPinCodeMaxTacticons = 10;
 /*******
  * CAknQueryControlExtension
  */
@@ -111,14 +110,12 @@
 
 CAknQueryControlExtension::~CAknQueryControlExtension()
     {
-    _AKNTRACE_FUNC_ENTER;
     delete iOriginalPrompt;
     delete iBackspaceButton;
     delete iKeypad;
 
     delete iPinTacticonTimer;
     iPinTacticonTimer = NULL;
-    _AKNTRACE_FUNC_EXIT;
     }
     
 CAknLocationEditor *CAknQueryControl::LocationEd() const
@@ -140,12 +137,10 @@
 
 void CAknQueryExtension::CreateEditorContextL()
     {
-    _AKNTRACE_FUNC_ENTER;
     delete iEditorContext;
     iEditorContext = NULL;
     iEditorContext = CAknsFrameBackgroundControlContext::NewL(
         KAknsIIDQsnFrInput, TRect(0,0,1,1), TRect(0,0,1,1), EFalse );
-    _AKNTRACE_FUNC_EXIT;
     }
 
 CAknsFrameBackgroundControlContext* CAknQueryExtension::EditorContext()
@@ -164,23 +159,19 @@
 void CAknQueryExtension::CreateExtensionL(
     const CAknQueryControl* aQueryControl )
     {
-    _AKNTRACE_FUNC_ENTER;
     CAknQueryExtension* extension = CAknQueryExtension::NewL();
     CleanupStack::PushL( extension );
     AknsPointerStore::StorePointerL( 
         static_cast<const CBase*>(aQueryControl), extension );
     CleanupStack::Pop(); // extension
-    _AKNTRACE_FUNC_EXIT;
     }
 
 void CAknQueryExtension::DestroyExtension(
     const CAknQueryControl* aQueryControl )
     {
-    _AKNTRACE_FUNC_ENTER;
     delete Instance( aQueryControl );
     AknsPointerStore::RemovePointer( 
         static_cast<const CBase*>(aQueryControl) );
-    _AKNTRACE_FUNC_EXIT;
     }
 
 CAknQueryExtension* CAknQueryExtension::NewL()
@@ -191,7 +182,6 @@
 CAknQueryExtension::~CAknQueryExtension()
     {
     delete iEditorContext;
-    _AKNTRACE( "[%s][%s]exit", "CAknQueryExtension", "~CAknQueryExtension" );
     }
 
 /*****************************
@@ -224,24 +214,17 @@
 EXPORT_C void TAknQueryEcsObserver::HandleEcsEvent( CAknEcsDetector* /*aDetector*/,
                                                     CAknEcsDetector::TState aUpdatedState )
     {
-	_AKNTRACE( "[%s][%s] aUpdatedState: %d", "TAknQueryEcsObserver", __FUNCTION__,aUpdatedState);
-    TRAP_IGNORE( iParent->SetEcsCbaVisibleL( aUpdatedState == CAknEcsDetector::ECompleteMatch || 
-                                             aUpdatedState == CAknEcsDetector::EServiceNumMatch ) );
+    TRAP_IGNORE( iParent->SetEcsCbaVisibleL( aUpdatedState == CAknEcsDetector::ECompleteMatch ) );
     
     // Hide the emergency call number again.
     // Number should be visible only in Partial or Complete match state
     if ( aUpdatedState != CAknEcsDetector::EPartialMatch &&
-         aUpdatedState != CAknEcsDetector::ECompleteMatch && 
-         aUpdatedState != CAknEcsDetector::EServiceNumMatch )
+         aUpdatedState != CAknEcsDetector::ECompleteMatch  )
         {
         if ( iParent->QueryType() == EPinLayout )
             {
-            _AKNTRACE( "[%s][%s] ", "RevealSecretText( EFalse )", __FUNCTION__);
-            if( iParent->ControlByLayoutOrNull( EPinLayout ) )
-            	{
-				static_cast<CAknNumericSecretEditor*>
-					( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
-            	}
+            static_cast<CAknNumericSecretEditor*>
+                ( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
             }
         }
     
@@ -249,10 +232,8 @@
     // If the query is cancelled, the iParent is deleted!
     if ( aUpdatedState == CAknEcsDetector::ECallAttempted )
         {
-        _AKNTRACE( "[%s][%s] ", "cancel query", __FUNCTION__);
         TRAP_IGNORE( iParent->CancelQueryL() );
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -313,7 +294,6 @@
  */
 EXPORT_C CAknQueryControl::~CAknQueryControl()
     {
-	_AKNTRACE( "[%s][%s] enter", "CAknQueryControl", "~CAknQueryControl");
     AKNTASHOOK_REMOVE();
 	if (iEdwin)
         AknsUtils::DeregisterControlPosition(iEdwin);
@@ -370,7 +350,6 @@
     delete iIncreaseValueButton;
     delete iDecreaseValueButton;
 #endif //defined( RD_SCALABLE_UI_V2)
-    _AKNTRACE( "[%s][%s] exit", "CAknQueryControl", "~CAknQueryControl");
     }
 
 /**
@@ -378,10 +357,9 @@
  */
 EXPORT_C void CAknQueryControl::ConstructFromResourceL(TResourceReader &aRes)
     {
-    _AKNTRACE_FUNC_ENTER;
     // Construct extension
     CAknQueryExtension::CreateExtensionL( this );
-    iExtension = new (ELeave)CAknQueryControlExtension;
+	iExtension = new (ELeave)CAknQueryControlExtension;
     
     iEcsObserver   = new (ELeave) TAknQueryEcsObserver(this);
     iEditIndicator = CAknQueryEditIndicator::NewL(this);
@@ -425,12 +403,10 @@
             iExtension->iKeypad = CAknKeypad::NewL( *this, iQueryType );
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 void CAknQueryControl::ConstructQueryL(TResourceReader& aRes)
     {
-    _AKNTRACE( "[%s][%s] iQueryType : %d", "CAknQueryControl", "ConstructQueryL", iQueryType );
     switch(iQueryType)
         {
         case EConfirmationQueryLayout:
@@ -744,21 +720,18 @@
         {
         extension->CreateEditorContextL();
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 TInt CAknQueryControl::PinCodeTimeoutCallback( TAny* aThis )
     {
-    _AKNTRACE_FUNC_ENTER;
     // play tacticon
     static_cast<CAknQueryControl*>( aThis )->PlayPinCodeTacticon();
-    _AKNTRACE_FUNC_EXIT;
+    
     return KErrNone;
     }
 
 void CAknQueryControl::PlayPinCodeTacticon()
     {
-    _AKNTRACE_FUNC_ENTER;
     // play tacticon
     RTacticon client;
     if ( KErrNone == client.Connect() )
@@ -783,12 +756,10 @@
             StopPinCodeTacticonTimer();
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 void CAknQueryControl::ResetPinCodeTacticonTimer()
     {
-    _AKNTRACE_FUNC_ENTER;
     // stop old timer
     StopPinCodeTacticonTimer();
 
@@ -806,12 +777,10 @@
                         TCallBack( PinCodeTimeoutCallback, this ) );
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 void CAknQueryControl::StopPinCodeTacticonTimer()
     {
-    _AKNTRACE_FUNC_ENTER;
     if ( iExtension )
         {
         // delete timer
@@ -820,7 +789,6 @@
         // set the timer null, so that it will not be used again
         iExtension->iPinTacticonTimer = NULL;
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 ///
@@ -957,7 +925,6 @@
  */
 EXPORT_C TKeyResponse CAknQueryControl::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType) 
     {
-    _AKNTRACE( "[%s][%s] aKeyEvent.iCode :%d, aType:%d ", "CAknQueryControl", __FUNCTION__, aKeyEvent.iCode, aType);
     TKeyResponse response( EKeyWasNotConsumed );
 
     // Send key handling for emergency call support
@@ -983,7 +950,6 @@
             ResetPinCodeTacticonTimer();
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     return response;
     }
 
@@ -1143,7 +1109,6 @@
                     TBool reveal = EFalse;
                     TInt ecsState( iEcsDetector->State() );
                     if ( ( ecsState == CAknEcsDetector::ECompleteMatch ) ||
-                         ( ecsState == CAknEcsDetector::EServiceNumMatch ) ||
                          ( ecsState == CAknEcsDetector::ECompleteMatchThenSendKey ) )
                         {
                         // Further check to ensure that the matched number is the entire buffer
@@ -1152,14 +1117,12 @@
                             {
                             reveal = ETrue;
                             
-                            if ( ecsState == CAknEcsDetector::ECompleteMatch || 
-                                 ecsState == CAknEcsDetector::EServiceNumMatch )
+                            if ( ecsState == CAknEcsDetector::ECompleteMatch )
                                 {
-                                SetEcsCbaVisibleL( ETrue );
+                                SetEcsCbaVisibleL( ETrue );                                            
                                 }
                             }
                         }
-                    _AKNTRACE( "[%s][%s] iPinEdwin->RevealSecretText( %d )", "CAknQueryControl", __FUNCTION__, reveal);
                     iPinEdwin->RevealSecretText( reveal );
                     }
                 }
@@ -2568,7 +2531,6 @@
 */
 void CAknQueryControl::CancelQueryL()
     {
-    _AKNTRACE_FUNC_ENTER;
     if (iQueryControlObserver)
         {
         iQueryControlObserver->HandleQueryEditorStateEventL(this, MAknQueryControlObserver::EEmergencyCallAttempted, MAknQueryControlObserver::EEditorValueValid);
@@ -2581,7 +2543,6 @@
         key.iScanCode = EStdKeyNull;
         iEikonEnv->SimulateKeyEventL(key, EEventKey);
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 /**
@@ -2639,7 +2600,7 @@
 
 EXPORT_C void CAknQueryControl::SetImageL(CEikImage* aImage)
     { // Gets ownership of the aImage
-    _AKNTRACE_FUNC_ENTER;
+    
 	if ( iImage && iImage->IsPictureOwnedExternally() )
         {
         delete ((CApaMaskedBitmap*) iImage->Bitmap());
@@ -2657,13 +2618,11 @@
     iAnimation = NULL;
 
     Layout();
-    _AKNTRACE_FUNC_EXIT;
     }
 
 EXPORT_C void CAknQueryControl::SetImageL(const TDesC& aImageFile,
                                           TInt aBmpId, TInt aBmpMaskId)
     {
-    _AKNTRACE_FUNC_ENTER;
     CEikImage* image = new(ELeave) CEikImage;
     CleanupStack::PushL( image );
                
@@ -2694,12 +2653,10 @@
 
     CleanupStack::Pop(); //image
     SetImageL(image); // gets ownership
-    _AKNTRACE_FUNC_EXIT;
     }
 
 EXPORT_C void CAknQueryControl::SetAnimationL(TInt aResource)
     {
-    _AKNTRACE_FUNC_ENTER;
     delete iAnimation;
     iAnimation = NULL;
     iAnimation = CAknBitmapAnimation::NewL();
@@ -2720,12 +2677,10 @@
     iExtension->iAnimationId = aResource;
     
     Layout();
-    _AKNTRACE_FUNC_EXIT;
     }
 
 EXPORT_C void CAknQueryControl::StartAnimationL()
     {
-    _AKNTRACE_FUNC_ENTER;
     if (iAnimation)
         {
         CBitmapAnimClientData *animClientData = iAnimation->BitmapAnimData();
@@ -2770,19 +2725,15 @@
 
         iAnimation->StartAnimationL();
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 EXPORT_C TInt CAknQueryControl::CancelAnimation()
     {
-	_AKNTRACE_FUNC_ENTER;
-	TInt result(KErrGeneral);
-	if ( iAnimation )
+    if ( iAnimation )
         {
-		result = iAnimation->CancelAnimation();
+        return iAnimation->CancelAnimation();
         }
-	_AKNTRACE( "[%s][%s] return %d", "CAknQueryControl", "CancelAnimation", result);
-    return result;
+    return KErrGeneral;
     }
 
 
@@ -3029,16 +2980,13 @@
 // Callback for doing a redraw when animating pictographs
 TInt CAknQueryControl::StaticPictographCallBack( TAny* aPtr )
     {
-    _AKNTRACE_FUNC_ENTER;
     CAknQueryControl* me = static_cast<CAknQueryControl*>( aPtr );
     me->PictographCallBack();
-    _AKNTRACE_FUNC_EXIT;
     return KErrNone;
     }
 
 void CAknQueryControl::PictographCallBack()
     {
-    _AKNTRACE_FUNC_ENTER;
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
 
@@ -3072,15 +3020,11 @@
             DeactivateGc();
 
             // Draw the label after the background.
-            TRAPD(err, iPrompt->Line( i )->ActivateL()); // Never leaves
-            if (err == KErrNone)
-                {
-                iPrompt->Line( i )->DrawNow();
-                }
+            iPrompt->Line( i )->ActivateL(); // Never leaves
+            iPrompt->Line( i )->DrawNow();
             iPrompt->SetLineModified( i, EFalse );
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 TBool CAknQueryControl::EmbeddedVirtualInput() const
@@ -3116,12 +3060,10 @@
     
 CEikDialog* CAknQueryControl::Dialog() const
     {
-	_AKNTRACE_FUNC_ENTER;
     CAknQueryControl* control = const_cast<CAknQueryControl*>( this );
     
     CEikDialog* dialog = NULL;
     control->MopGetObject( dialog );
-    _AKNTRACE_FUNC_EXIT;
     return dialog;
     }
    
@@ -3388,34 +3330,32 @@
 
 EXPORT_C void CAknQueryControl::HandlePointerEventL(const TPointerEvent& aPointerEvent) 
     { 
-    if ( iHasEditor && iEditorFrame.Valid() 
-        && iEditorFrame.Rect().Contains( aPointerEvent.iPosition ) )
-    	{
-		/*For the events happening inside editor frame's rect, query control will forward
-		the events to editors to handle.This is added to fix bug ESLM-85YFCH:Text editor is hard 
-		to open in input dialog (usability). The valid area is enlarged to editor frame rect,
-		instead of text's rect, because text rect is too small for user to tap*/
-		CCoeControl* ctrl = ControlByLayoutOrNull( iQueryType );
-		if( ctrl )
-			{
-			TPointerEvent pointerEvent( aPointerEvent );
-			if( !ctrl->Rect().Contains( aPointerEvent.iPosition ) && ( NbrOfEditorLines() == 1 ) )
-				{
-				// for the pointerevents happening in editor frame rect, 
-				// query control forward events to editors after justification
-				pointerEvent.iPosition.iY = ctrl->Rect().iTl.iY + ctrl->Rect().Height()/2;
-				}
-			ctrl->HandlePointerEventL( pointerEvent ); 
-			}
-		else
-			{
-			CAknControl::HandlePointerEventL( aPointerEvent ); 
-			}
-		}
+    CEikMfne* edwin = NULL;
+    if ( iTimeEdwin )
+        {
+        edwin = iTimeEdwin;
+        }        
+    else if ( iDateEdwin )
+        {
+        edwin = iDateEdwin;
+        }
+    else if ( LocationEd() )
+        {
+        edwin = LocationEd();
+        }
+    else if ( iDurationEdwin )
+        {
+        edwin = iDurationEdwin;
+        }
+        
+    if ( edwin && iEditorFrame.Rect().Contains(aPointerEvent.iPosition) )
+        {
+        edwin->HandlePointerEventL(aPointerEvent);
+        }
     else
-    	{
-		CAknControl::HandlePointerEventL( aPointerEvent ); 
-		}
+        {
+        CAknControl::HandlePointerEventL(aPointerEvent); 
+        }
     }
 
 EXPORT_C void* CAknQueryControl::ExtensionInterface( TUid /*aInterface*/ ) 
@@ -3425,7 +3365,6 @@
     
 EXPORT_C void CAknQueryControl::HandleResourceChange(TInt aType)
     {
-    _AKNTRACE_FUNC_ENTER;
     CCoeControl::HandleResourceChange(aType);
     
     if( aType == KAknsMessageSkinChange && iExtension->iAnimationId )
@@ -3438,7 +3377,6 @@
         SizeChanged();
         TRAP_IGNORE(DoSetPromptL());
         }
-    _AKNTRACE_FUNC_EXIT;
     }    
 
 // ---------------------------------------------------------------------------
@@ -3472,7 +3410,6 @@
 //
 void CAknQueryControl::SetEcsCbaVisibleL( TBool aVisible )
     {
-    _AKNTRACE( "[%s][%s] aVisible:%d ", "CAknQueryControl", __FUNCTION__,aVisible);
     if ( iExtension &&
          !COMPARE_BOOLS( aVisible, iExtension->iEcsCbaShown ) &&
          iFlags.IsSet( EEmergencyCallsCBASupport ) )
@@ -3507,7 +3444,6 @@
                 }
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -3517,11 +3453,9 @@
 //
 void CAknQueryControl::AttemptEmergencyCallL()
     {
-    _AKNTRACE_FUNC_ENTER;
     if ( iEcsDetector )
         {
-        if ( iEcsDetector->State() == CAknEcsDetector::ECompleteMatch || 
-             iEcsDetector->State() == CAknEcsDetector::EServiceNumMatch )
+        if ( iEcsDetector->State() == CAknEcsDetector::ECompleteMatch )
             {
             // Further check to ensure that the matched number is the
             // entire buffer. Get the matched text and see if is the same
@@ -3536,7 +3470,6 @@
                 }
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -3574,7 +3507,6 @@
 
 void CAknExtQueryControl::ConstructQueryL(TResourceReader& aRes)
     {   
-    _AKNTRACE_FUNC_ENTER;
     if ( iQueryType == EIpLayout)   
         {
         iIpEditor = new(ELeave)CAknIpFieldEditor;
@@ -3604,7 +3536,6 @@
         {
         extension->CreateEditorContextL();
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 
@@ -3682,7 +3613,7 @@
 EXPORT_C void CAknExtQueryControl::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent aEventType)
     {
     //CAknQueryControl::HandleControlEventL(NULL, aEventType);
-	_AKNTRACE( "[%s][%s] aEventType:%d ", "CAknExtQueryControl", "HandleControlEventL",aEventType);
+    
     if(iQueryControlObserver && aEventType == EEventStateChanged)
         {                
         if(GetTextLength())
@@ -3694,7 +3625,6 @@
             iQueryControlObserver->HandleQueryEditorStateEventL(this,MAknQueryControlObserver::EQueryControlEditorStateChanging, MAknQueryControlObserver::EEditorEmpty);
             }
         }
-    _AKNTRACE( "[%s][%s] EXIT ", "CAknExtQueryControl", "HandleControlEventL");
     }
 
 
@@ -3792,34 +3722,14 @@
 
 EXPORT_C void CAknExtQueryControl::HandlePointerEventL(const TPointerEvent& aPointerEvent) 
     { 
-	if ( iHasEditor && iEditorFrame.Valid() 
-	    && iEditorFrame.Rect().Contains( aPointerEvent.iPosition ) )
-		{
-		/*For the events happening inside editor frame's rect, query control will forward
-		the events to editors to handle.This is added to fix bug ESLM-85YFCH:Text editor is hard 
-		to open in input dialog (usability). The valid area is enlarged to editor frame rect,
-		instead of text's rect, because text rect is too small for user to tap*/
-		CCoeControl* ctrl = ControlByLayoutOrNull( iQueryType );
-		if( ctrl )
-			{
-			TPointerEvent pointerEvent( aPointerEvent );
-			if( !ctrl->Rect().Contains( aPointerEvent.iPosition ) && ( NbrOfEditorLines() == 1 ) )
-				{
-				// for the pointerevents happening in editor frame rect, 
-				// query control forward events to editors after justification
-				pointerEvent.iPosition.iY = ctrl->Rect().iTl.iY + ctrl->Rect().Height()/2;
-				}
-			ctrl->HandlePointerEventL( pointerEvent ); 
-			}
-		else
-			{
-			CAknControl::HandlePointerEventL( aPointerEvent ); 
-			}
-		}
-	else
-		{
-		CAknControl::HandlePointerEventL( aPointerEvent ); 
-		}
+    if ( iIpEditor && iEditorFrame.Rect().Contains(aPointerEvent.iPosition) )
+        {
+        iIpEditor->HandlePointerEventL(aPointerEvent); 
+        }
+    else
+        {
+        CAknQueryControl::HandlePointerEventL(aPointerEvent);
+        }
     }
 
 EXPORT_C void* CAknExtQueryControl::ExtensionInterface( TUid /*aInterface*/ ) 
@@ -4036,16 +3946,13 @@
 // Callback for doing a redraw when animating pictographs
 TInt CAknExtQueryControl::StaticPictographCallBack( TAny* aPtr )
     {
-    _AKNTRACE_FUNC_ENTER;
     CAknExtQueryControl* me = static_cast<CAknExtQueryControl*>( aPtr );
     me->PictographCallBack();
-    _AKNTRACE_FUNC_EXIT;
     return KErrNone;
     }
 
 void CAknExtQueryControl::PictographCallBack()
     {
-    _AKNTRACE_FUNC_ENTER;
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
 
@@ -4079,15 +3986,11 @@
             DeactivateGc();
 
             // Draw the label after the background.
-            TRAPD(err, iPrompt->Line( i )->ActivateL()); // Never leaves
-            if (err == KErrNone)
-                {
-                iPrompt->Line( i )->DrawNow();
-                }
+            iPrompt->Line( i )->ActivateL(); // Never leaves
+            iPrompt->Line( i )->DrawNow();
             iPrompt->SetLineModified( i, EFalse );
             }
         }
-    _AKNTRACE_FUNC_EXIT;
     }
 
 // End of File