Merge heads.
authorPat Downey <pat.downey@symbian.org>
Thu, 24 Jun 2010 13:58:21 +0100
changeset 28 d4f07fd5e979
parent 27 7eb70891911c (diff)
parent 21 5c9f230baf1b (current diff)
Merge heads.
Binary file cbs/CbsServer/conf/cbsserver.confml has changed
--- a/cbs/group/bld.inf	Tue May 18 13:35:23 2010 +0100
+++ b/cbs/group/bld.inf	Thu Jun 24 13:58:21 2010 +0100
@@ -16,7 +16,7 @@
 */
 
 
-#include "../CbsServer/Group/bld.inf"
+#include "../cbsserver/Group/bld.inf"
 
 
-// End of File
\ No newline at end of file
+// End of File
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmMessageHandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmMessageHandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 #define CNWGSMMESSAGEHANDLER_H 
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWMessageHandler.h"
 #include "CNWGsmSessionImplementation.h"
 #include "CNWGsmNetworkCellReselectionHandler.h"
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmNetworkCellReselectionHandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmNetworkCellReselectionHandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,9 +21,9 @@
 #define CNWGSMNETWORKCELLRESELECTIONHANDLER_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include <rmmcustomapi.h>
-#include <CMcn.h>
+#include <cmcn.h>
 #include <e32property.h>
 
 // CONSTANTS
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmSessionImplementation.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmSessionImplementation.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,8 +21,8 @@
 #define CNWGSMSESSIONIMPLEMENTATION_H
 
 //  INCLUDES
-#include "CNWSession.h"
-#include "NWHandlingEngine.h"
+#include <cnwsession.h>
+#include <nwhandlingengine.h>
 
 
 // FORWARD DECLARATIONS
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkMCNEngine.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkMCNEngine.h	Thu Jun 24 13:58:21 2010 +0100
@@ -20,7 +20,7 @@
 #define CNWNETWORKMCNENGINE_H
 
 //  INCLUDES
-#include "MCbsMcnObserver.h" //For McbsMcnObserver
+#include <mcbsmcnobserver.h> //For MCbsMcnObserver
 #include "MNWNetworkTimer.h"
 #include <e32base.h>
 #include <etelmm.h>
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkSystemEventMonitor.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkSystemEventMonitor.h	Thu Jun 24 13:58:21 2010 +0100
@@ -24,7 +24,7 @@
 
 #include <e32base.h>
 
-#include    "NetworkHandlingDomainPSKeys.h"
+#include <networkhandlingdomainpskeys.h>
 #include <PSVariables.h>
 
 // CONSTANTS
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagBaseEngine.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagBaseEngine.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 #define CNWNETWORKVIAGBASEENGINE_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWMessageHandler.h"
 
 #include "CNWNetworkMonitorBase.h"
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagCbEngine.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagCbEngine.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include "MNWNetworkTimer.h"
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWGsmMessageHandler.h"
 #include "CNWNetworkHZCbCacheHandler.h"
 #include "MHZCachesInitialisationObserver.h"
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagLcEngine.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagLcEngine.h	Thu Jun 24 13:58:21 2010 +0100
@@ -27,7 +27,7 @@
 
 // OLD INCLUDES
 #include "MNWNetworkTimer.h"
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWGsmMessageHandler.h"
 #include <MCbsMcnObserver.h> //For McbsMcnObserver
 #include <rmmcustomapi.h>
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmMessageHandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmMessageHandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -19,7 +19,7 @@
 
 
 // INCLUDE FILES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWGsmMessageHandler.h"
 #include "CNWNetworkFailureMonitor.h"
 #include "NWLogger.h"
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmNetworkCellReselectionHandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmNetworkCellReselectionHandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -209,11 +209,7 @@
 //
 CMcn* CNWGsmNetworkCellReselectionHandler::GetMcnPtr()
     {
-    NWLOGSTRING( KNWMESOUT, "NW: CNWGsmMessageHandler::GetMcnPtr() Begin " );
-    
     return iMcn;
-    
-    NWLOGSTRING( KNWMESOUT, "NW: CNWGsmMessageHandler::GetMcnPtr() End " );
     }
 
 // ----------------------------------------------------------------------------
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmSessionImplementation.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmSessionImplementation.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 // INCLUDE FILES
 #include "CNWGsmSessionImplementation.h"
 #include "CNWGsmMessageHandler.h"
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "NWLogger.h"
 
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkMCNEngine.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkMCNEngine.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -23,8 +23,8 @@
 #include "CNWNetworkMcnTimer.h"
 #include "NWPanic.pan"
 #include "NWLogger.h"
-#include <CMcn.h>
-#include <CMcnTopicArray.h>
+#include <cmcn.h>
+#include <cmcntopicarray.h>
 #include <centralrepository.h>
 #include <settingsinternalcrkeys.h>
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagBaseEngine.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagBaseEngine.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -32,7 +32,7 @@
 #include    "CNWNetworkSystemEventMonitor.h"
 #include    "CNWGsmMessageHandler.h"
 #include    "NWPanic.pan"
-#include    "NetworkHandlingDomainPSKeys.h"
+#include    <networkhandlingdomainpskeys.h>
 #include    "CNWNetworkViagTimer.h"
 
 // CONSTANTS
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagCbEngine.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagCbEngine.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -23,10 +23,10 @@
 #include    "CNWNetworkViagBaseEngine.h"
 #include    "CNWNetworkViagTimer.h"
 #include    "NWPanic.pan"
-#include    "NetworkHandlingDomainPSKeys.h"
+#include    <networkhandlingdomainpskeys.h>
 #include    "NWLogger.h"
-#include    <CMcn.h>
-#include    <CMcnTopicArray.h>
+#include    <cmcn.h>
+#include    <cmcntopicarray.h>
 
 // CONSTANTS
 const TUint KNWzero = 0;
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagLcEngine.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagLcEngine.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -24,7 +24,7 @@
 #include "CNWNetworkViagBaseEngine.h"
 #include "CNWNetworkViagTimer.h"
 #include "NWPanic.pan"
-#include "NetworkHandlingDomainPSKeys.h"
+#include <networkhandlingdomainpskeys.h>
 #include "NWLogger.h"
 
 //TEST
@@ -1310,9 +1310,6 @@
             values not match " );
         return KErrNotFound;
         }
-    
-    NWLOGSTRING( KNWOBJECT, 
-        "NW: CNWNetworkViagLcEngine::CompareTIntCellIdValues() End " );
     }
 
 //  End of File  
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/GsmNetworkHandlingProxy.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/GsmNetworkHandlingProxy.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -17,7 +17,7 @@
 
 
 // INCLUDE FILES
-#include "NetworkHandlingProxy.h"
+#include <networkhandlingproxy.h>
 #include "CNWGsmSessionImplementation.h"
 #include "NWLogger.h"
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWMessageHandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWMessageHandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,8 +21,8 @@
 #define CNWMESSAGEHANDLER_H 
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
-#include "CNWSession.h"
+#include <nwhandlingengine.h>
+#include <cnwsession.h>
 #include <mmtsy_names.h>
 #include <etel.h>
 #include <rmmcustomapi.h>
--- a/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkModeMonitor.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkModeMonitor.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include "CNWNetworkMonitorBase.h"
-#include "NetworkHandlingDomainPSKeys.h"
+#include <networkhandlingdomainpskeys.h>
 #include <e32property.h>
 
 // FORWARD DECLARATIONS
--- a/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkMonitorBase.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkMonitorBase.h	Thu Jun 24 13:58:21 2010 +0100
@@ -20,7 +20,7 @@
 #define CNWNETWORKMONITORBASE_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 
 
 // FORWARD DECLARATIONS
--- a/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkRegistrationStatusReceiver.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkRegistrationStatusReceiver.h	Thu Jun 24 13:58:21 2010 +0100
@@ -20,7 +20,7 @@
 #define CNWNETWORKREGISTRATIONSTATUSRECEIVER_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 
 // FORWARD DECLARATIONS
 class CNWNetworkRegistrationStatusMonitor;
--- a/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWProgrammableOperatorNameCommand.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWProgrammableOperatorNameCommand.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,7 +22,7 @@
 #define CNWPROGRAMMABLEOPERATORNAMECOMMAND_H
 
 //  INCLUDES
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include <etelmm.h>
 #include <rmmcustomapi.h>
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingInc/cnwnetworkselectionsettingmonitor.h	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/cnwnetworkselectionsettingmonitor.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include "CNWNetworkMonitorBase.h"
-#include "NetworkHandlingDomainPSKeys.h"
+#include <networkhandlingdomainpskeys.h>
 #include <e32property.h>
 
 // FORWARD DECLARATIONS
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWMessageHandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWMessageHandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include    <featmgr.h>
-#include    "NWHandlingEngine.h"
+#include    <nwhandlingengine.h>
 #include    "CNWMessageHandler.h"
 #include    "CNWNetworkCurrentNetworkMonitor.h"
 #include    "CNWNetworkRegistrationStatusMonitor.h"
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkModeMonitor.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkModeMonitor.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -20,7 +20,7 @@
 //  INCLUDE FILES
 #include    "CNWMessageHandler.h"
 #include    "CNWNetworkModeMonitor.h"
-#include    "NWHandlingEngine.h"
+#include    <nwhandlingengine.h>
 #include    "NWPanic.pan"
 #include    "NWLogger.h"
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkRegistrationStatusMonitor.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkRegistrationStatusMonitor.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 #include    <featmgr.h>
 #include    "CNWNetworkRegistrationStatusMonitor.h"
 #include    "CNWMessageHandler.h"
-#include    "NetworkHandlingDomainPSKeys.h"
+#include    <networkhandlingdomainpskeys.h>
 #include    "NWPanic.pan"
 #include    "NWLogger.h"
 #include    "CNWNetworkRegistrationStatusReceiver.h"
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWSession.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWSession.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -18,7 +18,7 @@
 
 
 // INCLUDE FILES
-#include    "CNWSession.h"
+#include    <cnwsession.h>
 
 
 // ============================ MEMBER FUNCTIONS ==============================
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/cnwnetworkselectionsettingmonitor.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/cnwnetworkselectionsettingmonitor.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 //  INCLUDE FILES
 #include    "CNWMessageHandler.h"
 #include    "cnwnetworkselectionsettingmonitor.h"
-#include    "NWHandlingEngine.h"
+#include    <nwhandlingengine.h>
 #include    "NWPanic.pan"
 #include    "NWLogger.h"
 
--- a/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h	Thu Jun 24 13:58:21 2010 +0100
@@ -188,7 +188,7 @@
         void EncodeL( const TDesC& aSrc, TDes8& aDes );
         
         // Finds CR character        
-        void CPhCltUssdImp::FindFirstCarriageReturnL( 
+        void FindFirstCarriageReturnL( 
         const TDesC& aBuffer ,
         TUint& aSkipChars , 
         TUint& aStartBit );
@@ -201,8 +201,8 @@
         // Wait scheduler used in this class. 
         CActiveSchedulerWait* iWait;
 
-        // Pointer to sending error store place.
-        TInt* iSendError;
+        // TInt to sending error store place.
+        TInt iSendError;
         
         // Data coding scheme value
         TUint8 iDCS;
--- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -416,7 +416,7 @@
 //
 void CPhCltUssdImp::HandleSendEventL( const TInt aError )
     {
-    *iSendError = Min( aError , KErrNone );
+    iSendError = Min( aError , KErrNone );
     TFLOGSTRING2("CPhCltUssdImp: HandleSendEventL\
             aError = %d call", aError)
     // iNoteController is allocated only if notes are shown.
@@ -572,8 +572,7 @@
         return KErrInUse;
         }
 
-    TInt error = KErrNone;
-    iSendError = &error;
+    iSendError = KErrNone;
     TFLOGSTRING("CPhCltUssdImp: SendUssd iRequestHandler")
     iRequestHandler->SendUssd( aMsgData , attributePckg );
     // iNoteController is allocated only if notes are shown.
@@ -588,13 +587,8 @@
     // Set this active object to wait the completion of the send request.
     iWait->Start();
 
-    // If not deleted:
-    if ( iWait )
-        {
-        iSendError = NULL;
-        }
     TFLOGSTRING("CPhCltUssdImp: SendUssd exit") 
-    return error;
+    return iSendError;
     }
 
 
--- a/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/etel_mock.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/etel_mock.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 
 
 #include "ut_testenv.h"
--- a/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 
 
 
--- a/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.h	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 
 
 // include files
--- a/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 
 
 #include <e32base.h>
--- a/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.h	Tue May 18 13:35:23 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 
 
 // include files
--- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDTMF.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDTMF.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include "phonehandlercallbase.h" 
-#include <remconextensionapi.h> 
+#include <RemConExtensionApi.h> 
 
 // CONSTANTS
 
--- a/phonesrv.pro	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -22,10 +22,10 @@
 :BLD_INF_RULES.prj_mmpfiles += $$LITERAL_HASH"include \"group/bld.inf\""
 SUBDIRS += telutils/xqtelephonyservice
 SUBDIRS += telutils/dialpad
+SUBDIRS += telutils/keysequencerecognitionservice
 SUBDIRS += vmbx/vmbxcpplugin
 SUBDIRS += vmbx/vmbxengine
 SUBDIRS += cellular/sssettings/xqbindings/sssettingswrapper
 SUBDIRS += cellular/telephonysettings/xqbindings/psetwrapper
-#SUBDIRS += cbs/cbsui
 SUBDIRS += satui/satapp
 }
--- a/phonesrv_plat/call_information_api/tsrc/group/MT_CallInformation.mmp	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/group/MT_CallInformation.mmp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-2010 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"
@@ -15,9 +15,7 @@
 *
 */
 /*
------------------------------------------------------------------------------
-This file has been generated with EUnit Pro
------------------------------------------------------------------------------
+
 */
 #include <platform_paths.hrh>
 TARGET          MT_CallInformation.dll
@@ -41,15 +39,15 @@
 USERINCLUDE             ../src
 
 MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
+SYSTEMINCLUDE           /epoc32/include/platform/digia/eunit
 #if defined(WINSCW)
 SYSTEMINCLUDE           ../../../../../../app/phone/inc
 SYSTEMINCLUDE           ../../../../../../app/phone/phoneengine/inc
 SYSTEMINCLUDE           ../../../../../../app/phone/phoneengine/audiohandling/inc
 #endif
 
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
+LIBRARY                 eunit.lib
+LIBRARY                 eunitutil.lib
 LIBRARY                 euser.lib
 LIBRARY                 telephonyservice.lib
 LIBRARY                 etel.lib
@@ -57,6 +55,6 @@
 LIBRARY                 phoneclient.lib
 
 #if defined(WINSCW)
-LIBRARY                 PhoneEngine.lib
-LIBRARY                 AudioHandling.lib
+LIBRARY                 phoneengine.lib
+LIBRARY                 audiohandling.lib
 #endif
\ No newline at end of file
--- a/phonesrv_plat/call_information_api/tsrc/src/CPEMessageWaiter.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/CPEMessageWaiter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,7 +16,7 @@
 */
 #include "CPEMessageWaiter.h"
 
-#include <EUnitMacros.h>
+#include <eunitmacros.h>
 
 #include "talogger.h"
 #include "CActiveWait.h"
--- a/phonesrv_plat/call_information_api/tsrc/src/CPhoneEngineCreator.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/CPhoneEngineCreator.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -17,8 +17,7 @@
 #include "CPhoneEngineCreator.h"
 
 #include <TelephonyAudioRoutingManager.h>
-#include <activeidle2domainpskeys.h>
-#include <CPEPhoneModelIf.h>
+#include <cpephonemodelif.h>
 #include "CPEMessageWaiter.h"
 
 
@@ -59,16 +58,7 @@
                 MEngineMonitor::EPEMessagePEConstructionReady,
                 40 );
         }    
-    
-    // No error checking here because this will succeed only once when this is called. The RProperty::Set will
-    // fail, if this call is not successfull at all.
-    RProperty::Define( 
-        KPSUidAiInformation,
-        KActiveIdleState,
-        RProperty::EInt );
-                            
-    User::LeaveIfError( RProperty::Set( KPSUidAiInformation, KActiveIdleState, EPSAiForeground ) ); 
-    
+
     return pEif;
     }
 
--- a/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -22,13 +22,13 @@
 #include "CPEMessageWaiter.h"
 #endif
 
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
+#include <eunitmacros.h>
+#include <eunitdecorators.h>
 
 #include <etelmm.h>
 
 #include <mmtsy_names.h>
-#include <MCall.h>
+#include <mcall.h>
 #include <ccallinfoiter.h>
 #include <cphcltemergencycall.h>
 #include <mphcltemergencycallobserver.h>
--- a/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation.h	Thu Jun 24 13:58:21 2010 +0100
@@ -19,8 +19,8 @@
 #define __MT_CALLINFORMATION_H__
 
 // INCLUDES
-#include <CEUnitTestSuiteClass.h>
-#include <EUnitDecorators.h>
+#include <ceunittestsuiteclass.h>
+#include <eunitdecorators.h>
 
 #include <etel.h>
 #include <CCallInformation.h>
--- a/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation_DllMain.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation_DllMain.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,7 +16,7 @@
 */
 
 #include "MT_CallInformation.h"
-#include <CEUnitTestSuite.h>
+#include <ceunittestsuite.h>
 
 EXPORT_C MEUnitTest* CreateTestSuiteL()
     {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/call_remote_party_information_api/call_remote_party_information_api.metaxml	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="b7a47dc0a3590edb71ae7d1ab16022a3" dataversion="2.0">
+  <name>call_remote_party_information_api</name>
+  <description>This API provides remote party information of ongoing calls.</description>
+  <type>c++</type>
+  <collection>telutils</collection>
+  <libs>
+    <lib name="telephonyservice.lib"/>
+  </libs>
+  <release category="platform" sinceversion="5.2"/>
+  <attributes>
+    <htmldocprovided>no</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- a/phonesrv_plat/cbs_mcn_client_api/group/bld.inf	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/group/bld.inf	Thu Jun 24 13:58:21 2010 +0100
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  File that exports the files belonging to 
-:                CBS MCN Client API
+*               CBS MCN Client API
 *
 */
 
@@ -24,11 +24,12 @@
 
 PRJ_EXPORTS
 
-../inc/CCbsMcnListener.h     MW_LAYER_PLATFORM_EXPORT_PATH(CCbsMcnListener.h)
-../inc/CbsMcnPanic.h     MW_LAYER_PLATFORM_EXPORT_PATH(CbsMcnPanic.h)
-../inc/CbsMcnCommon.h     MW_LAYER_PLATFORM_EXPORT_PATH(CbsMcnCommon.h)
-../inc/CMcnTopicArray.h     MW_LAYER_PLATFORM_EXPORT_PATH(CMcnTopicArray.h)
-../inc/RCbsMcnSession.h     MW_LAYER_PLATFORM_EXPORT_PATH(RCbsMcnSession.h)
-../inc/CMcn.h     MW_LAYER_PLATFORM_EXPORT_PATH(CMcn.h)
-../inc/RMcnSubSession.h     MW_LAYER_PLATFORM_EXPORT_PATH(RMcnSubSession.h)
-../inc/MCbsMcnObserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(MCbsMcnObserver.h)
+../inc/ccbsmcnlistener.h    MW_LAYER_PLATFORM_EXPORT_PATH(ccbsmcnlistener.h)
+../inc/cbsmcnpanic.h        MW_LAYER_PLATFORM_EXPORT_PATH(cbsmcnpanic.h)
+../inc/cbsmcncommon.h       MW_LAYER_PLATFORM_EXPORT_PATH(cbsmcncommon.h)
+../inc/cmcntopicarray.h     MW_LAYER_PLATFORM_EXPORT_PATH(cmcntopicarray.h)
+../inc/rcbsmcnsession.h     MW_LAYER_PLATFORM_EXPORT_PATH(rcbsmcnsession.h)
+../inc/cmcn.h               MW_LAYER_PLATFORM_EXPORT_PATH(cmcn.h)
+../inc/rmcnsubsession.h     MW_LAYER_PLATFORM_EXPORT_PATH(rmcnsubsession.h)
+../inc/mcbsmcnobserver.h    MW_LAYER_PLATFORM_EXPORT_PATH(mcbsmcnobserver.h)
+
--- a/phonesrv_plat/cbs_mcn_client_api/inc/CCbsMcnListener.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/CCbsMcnListener.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <e32base.h>    // CActive
-#include "CbsMcnCommon.h"
+#include <cbsmcncommon.h>
 
 //  FORWARD DECLARATIONS
 class CMcn;
--- a/phonesrv_plat/cbs_mcn_client_api/inc/CMcn.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/CMcn.h	Thu Jun 24 13:58:21 2010 +0100
@@ -27,7 +27,7 @@
 
 // INCLUDES
 #include "e32base.h"
-#include "RCbsMcnSession.h"
+#include <rcbsmcnsession.h>
 
 // CONSTANTS
 // Maximum length of a MCN message.
--- a/phonesrv_plat/cbs_mcn_client_api/inc/RCbsMcnSession.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/RCbsMcnSession.h	Thu Jun 24 13:58:21 2010 +0100
@@ -34,7 +34,7 @@
 
 #include <e32std.h>
 #include <e32base.h>    // CArrayPtrFlat
-#include "RMcnSubSession.h"
+#include <rmcnsubsession.h>
 
 //  FORWARD DECLARATIONS
 
--- a/phonesrv_plat/cbs_message_api/group/bld.inf	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/cbs_message_api/group/bld.inf	Thu Jun 24 13:58:21 2010 +0100
@@ -24,5 +24,5 @@
 
 PRJ_EXPORTS
 
-../inc/ccbsmessageclient.h     MW_LAYER_PLATFORM_EXPORT_PATH(CCbsMessageClient.h)
-../inc/cbscommontypes.h     MW_LAYER_PLATFORM_EXPORT_PATH(CbsCommonTypes.h)
+../inc/ccbsmessageclient.h     MW_LAYER_PLATFORM_EXPORT_PATH(ccbsmessageclient.h)
+../inc/cbscommontypes.h     MW_LAYER_PLATFORM_EXPORT_PATH(cbscommontypes.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/default_emergency_numbers_api/default_emergency_numbers_api.metaxml	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="1415c3e1b254038cedfe73cdad7ebc93" dataversion="2.0">
+  <name>default_emergency_numbers_api</name>
+  <description>Central Repository keys for default emergency numbers.</description>
+  <type>c++</type>
+  <collection>phoneclientserver</collection>
+  <libs/>
+  <release category="platform" sinceversion="5.0"/>
+  <attributes>
+    <htmldocprovided>no</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/dialpad_api/dialpad_api.metaxml	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="b3eae6e0e74d869121a934cb8b48c101" dataversion="2.0">
+  <name>dialpad_api</name>
+  <description>Dialpad widget used by phone and dialer applications.</description>
+  <type>c++</type>
+  <collection>telutils</collection>
+  <libs>
+    <lib name="dialpad.lib"/>
+  </libs>
+  <release category="platform" sinceversion="5.2"/>
+  <attributes>
+    <htmldocprovided>no</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- a/phonesrv_plat/dialpad_api/group/bld.inf	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/dialpad_api/group/bld.inf	Thu Jun 24 13:58:21 2010 +0100
@@ -24,3 +24,4 @@
 PRJ_EXPORTS
 ../inc/dialpad.h                        MW_LAYER_PLATFORM_EXPORT_PATH(dialpad.h)
 ../inc/dialpadkeyhandler.h              MW_LAYER_PLATFORM_EXPORT_PATH(dialpadkeyhandler.h)
+../inc/dialpadvtkeyhandler.h            MW_LAYER_PLATFORM_EXPORT_PATH(dialpadvtkeyhandler.h)
--- a/phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,8 +22,10 @@
 
 class Dialpad;
 class DialpadVoiceMailboxEventFilter;
+class DialpadVideoMailboxEventFilter;
 class DialpadBluetoothEventFilter;
 class DialpadKeySequenceEventFilter;
+class DialpadEmergencyCallEventFilter;
 class HbMainWindow;
 
 #ifdef BUILD_DIALPADKEYHANDLER
@@ -31,6 +33,7 @@
 #else
 #define DIALPADKEYHANDLER_EXPORT Q_DECL_IMPORT
 #endif
+
 /*!
     DialpadKeyHandler
     Class provides key handling for dialpad component.
@@ -39,21 +42,56 @@
     Dialpad *dialpad = new Dialpad();
     DialpadKeyHandler *keyhandler = new DialpadKeyHandler(dialpad, this);
     @endcode
-    
 */
 class DIALPADKEYHANDLER_EXPORT DialpadKeyHandler : public QObject
 {
     Q_OBJECT
 
 public:
-    explicit DialpadKeyHandler(Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent = 0);
+    /*! Declares possible key event filters which can be used with the 
+     * dialpad. */
+    enum DialpadKeyEventFilter
+    {
+        /*! Enables calling to voice mailbox with a long '1' key press. */
+        VoiceMailbox    = 0x0001,
+        /*! Enables calling to video mailbox with a long '2' key press. */
+        VideoMailBox    = 0x0002,
+        /*! Enables switching bluetooth on/off with a long '*' key press. */
+        Bluetooth       = 0x0004,
+        /*! Enables handling of key sequences like *#06# for showing IMEI. */
+        KeySequence     = 0x0008,
+        /*! Forced handling for emergency call. */
+        EmergencyCall   = 0x0010
+    };
+    Q_DECLARE_FLAGS(DialpadKeyEventFilters, DialpadKeyEventFilter)
+    
+public:
+    /*! \deprecated DialpadKeyHandler(Dialpad*, HbMainWindow&, QObject*) is 
+     * deprecated. 
+     * Please use 
+     *     DialpadKeyHandler(
+     *         Dialpad*, 
+     *         QFlags<DialpadKeyHandler::DialpadKeyEventFilter>, 
+     *         QObject*) 
+     * instead. */
+    explicit DialpadKeyHandler(
+        Dialpad *dialPad, 
+        HbMainWindow& mainWindow, 
+        QObject *parent = 0);
+    
+    explicit DialpadKeyHandler(
+        Dialpad *dialPad, 
+        DialpadKeyHandler::DialpadKeyEventFilters filters,
+        QObject *parent = 0);
     virtual ~DialpadKeyHandler();
-
+    
 private:
     HbMainWindow& mMainWindow;
     QScopedPointer<DialpadVoiceMailboxEventFilter> mVmbxFilter;
+    QScopedPointer<DialpadVideoMailboxEventFilter> mVideoVmbxFilter;
     QScopedPointer<DialpadBluetoothEventFilter> mBtFilter;
     QScopedPointer<DialpadKeySequenceEventFilter> mKeySequenceFilter;
+    QScopedPointer<DialpadEmergencyCallEventFilter> mEmergencyCallFilter;
 };
 
 #endif // DIALPADKEYHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/dialpad_api/inc/dialpadvtkeyhandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,57 @@
+/*!
+* Copyright (c) 2010 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: Dialpad key handler.
+*
+*/
+
+#ifndef DIALPADVTKEYHANDLER_H
+#define DIALPADVTKEYHANDLER_H
+
+#include <QObject>
+
+class Dialpad;
+class DialpadKeySequenceEventFilter;
+class DialpadEmergencyCallEventFilter;
+class HbMainWindow;
+
+#ifdef BUILD_DIALPADKEYHANDLER
+#define DIALPADKEYHANDLER_EXPORT Q_DECL_EXPORT
+#else
+#define DIALPADKEYHANDLER_EXPORT Q_DECL_IMPORT
+#endif
+/*!
+    DialpadVtKeyHandler
+    Class provides key handling for dialpad component.
+
+    @code
+    Dialpad *dialpad = new Dialpad();
+    DialpadVtKeyHandler *keyhandler = new DialpadVtKeyHandler(dialpad, this);
+    @endcode
+    
+*/
+class DIALPADKEYHANDLER_EXPORT DialpadVtKeyHandler : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit DialpadVtKeyHandler(Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent = 0);
+    virtual ~DialpadVtKeyHandler();
+
+private:
+    HbMainWindow& mMainWindow;
+    DialpadEmergencyCallEventFilter *mEmergencyCallFilter;
+    DialpadKeySequenceEventFilter *mKeySequenceFilter;
+};
+
+#endif // DIALPADVTKEYHANDLER_H
--- a/phonesrv_plat/phone_settings_api/inc/PsetSAObserver.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/phone_settings_api/inc/PsetSAObserver.h	Thu Jun 24 13:58:21 2010 +0100
@@ -24,7 +24,7 @@
 #include <e32base.h>
 #include <e32property.h> 
 #include <psetcalldiverting.h>
-#include <psvariables.h>
+#include <PSVariables.h>
 #include <ctsydomaincrkeys.h>
 
 // FORWARD DECLARATIONS
--- a/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include <e32std.h>
-#include <Etelsat.h>
+#include <etelsat.h>
 #include <msatrefreshobserver.h>
 
 // FORWARD DECLARATIONS
--- a/phonesrv_plat/voice_mailbox_number_api/inc/cvoicemailbox.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/voice_mailbox_number_api/inc/cvoicemailbox.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
--- a/phonesrv_plat/voice_mailbox_number_api/inc/voicemailboxdefs.h	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/voice_mailbox_number_api/inc/voicemailboxdefs.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -73,8 +73,7 @@
 enum TVmbxFeatureCapabilityFlag
     {
     /**
-     * When flag is enabled the user is not allowed to define or
-     * modify the voice mailbox number.
+     * Used to check whether user editing is allowed or not
      */
     EVmbxChangeNbrAllowedOnUi = 0x01,
 
--- a/phonesrv_plat/voice_mailbox_number_api/tsrc/mt_vmbxengine.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/phonesrv_plat/voice_mailbox_number_api/tsrc/mt_vmbxengine.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -121,21 +121,21 @@
     TVoiceMailboxParams params;
     params.iType = EVmbxVoice;
     TBool result = 
-    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi);
+    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi);
     if (!result) {
     qDebug("Mt_vmbxEngine::testCheckConfiguration: voice not allowed changed");
     QEXPECT_FAIL("","testCheckConfiguration voice not allowed changed", Continue);
     }
     params.iType = EVmbxVideo;
     result = 
-    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi);
+    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi);
     if (!result) {
     qDebug( "Mt_vmbxEngine::testCheckConfiguration: video not allowed changed");
     QEXPECT_FAIL("","testCheckConfiguration video not allowed changed", Continue);
     }
     params.iType = EVmbxVoip;
     result = 
-    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi);
+    mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi);
     if (result) {
     QFAIL ("testCheckConfiguration voip failed");
     }
@@ -170,7 +170,7 @@
     params.iType = EVmbxVoice;
     CVoiceMailboxEntry* storedEntry = 0;
     TInt result(0);
-    if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi)) {
+    if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi)) {
         qDebug("Mt_vmbxEngine::testSaveProvisionedEntry voice");
         result = mVmbxEngine->GetStoredEntry(params,storedEntry);
         if (KErrNotFound == result) {
@@ -186,7 +186,7 @@
         QCOMPARE(result, KErrNone);
     }
     params.iType = EVmbxVideo;
-    if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi)) {
+    if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi)) {
         qDebug("Mt_vmbxEngine::testSaveProvisionedEntry video");
         result = mVmbxEngine->GetStoredEntry(params,storedEntry);
         if (KErrNotFound == result) {
@@ -225,7 +225,7 @@
         // test QueryNewEntry
         result = mVmbxEngine->QueryNewEntry( params, vmbxEntry );
         //QVERIFY2(KErrNone == result, "QueryNewEntry Failed.");
-        if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi)
+        if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi)
             && KErrNone == result) {
         // test SaveEntry
         result = mVmbxEngine->SaveEntry( *vmbxEntry );
@@ -236,7 +236,7 @@
         // test change entry
         result = mVmbxEngine->QueryChangeEntry( params, vmbxEntry );
         //QVERIFY2(KErrNone == result, "QueryChangeEntry Failed.");
-        if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrNotAllowedOnUi) 
+        if (mVmbxEngine->CheckConfiguration(params,EVmbxChangeNbrAllowedOnUi) 
             && KErrNone == result ) {
             result = mVmbxEngine->SaveEntry( *vmbxEntry );
             QVERIFY2(KErrNone == result, "SaveEntry Failed.");
--- a/satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 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"
@@ -16,6 +16,7 @@
 */
 
 
+
 #include    <MSatShellController.h>
 #include    <cmmanager.h>
 #include    <cmconnectionmethod.h>
@@ -211,8 +212,8 @@
                 "LAUNCHBROWSER::Event ESetUpMenuRequested catched and unreg" )
             iUtils->UnregisterEvent( this, MSatUtils::ESetUpMenuRequested );
             // Browser is brought to the top after short period of time.
-            iUtils->SatUiHandler().ShellController().
-                BringBrowserToForegroundAfterPeriod();
+            //iUtils->SatUiHandler().ShellController().
+            //    BringBrowserToForegroundAfterPeriod();
             break;
             }
 
@@ -809,8 +810,9 @@
           url=%s, IAP=%d", &aParam, aAccessPointUid.iUid )        
 
     // Browser launching called.
-    TInt err = iUtils->SatUiHandler().ShellController().LaunchBrowserL(
-        aParam, aAccessPointUid );
+    //TInt err = iUtils->SatUiHandler().ShellController().LaunchBrowserL(
+    //    aParam, aAccessPointUid );
+    TInt err =  KErrNone;
 
     if ( KErrNone == err )
         {
--- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendsshandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/SatServer/Commands/SendSSCmd/src/csatsendsshandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,11 +16,11 @@
 */
 
 #include "csatsendsshandler.h"
-#include <PsetCallWaiting.h>
-#include <PsetContainer.h>
-#include <PsetCallBarring.h>
-#include <PsetCallDiverting.h>
-#include <PsetCli.h>
+#include <psetcallwaiting.h>
+#include <psetcontainer.h>
+#include <psetcallbarring.h>
+#include <psetcalldiverting.h>
+#include <psetcli.h>
 
 #include "csatsendssbarringnouiobs.h"
 #include "csatsendssdivertnouiobs.h"
--- a/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -256,6 +256,9 @@
 
     // Allow next terminal response to be sent
     iTerminalRespSent = EFalse;
+    
+    iSendUssdRsp.iUssdString.iUssdString.FillZ();
+    iSendUssdRsp.iUssdString.iDcs = 0;
 
     RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus(
         iUtils->SystemState().GetNetworkRegistrationStatus() );
@@ -748,6 +751,16 @@
         iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo;
         iSendUssdRsp.iAdditionalInfo.SetLength( 0 );
         iSendUssdRsp.iAdditionalInfo.Zero();
+        }
+    else if ( KErrSatControl == aError )
+        {
+        LOG( SIMPLE, 
+        "SENDUSSD: CSendUssdHandler::HandleSendUssdResult \
+        KModifiedByCallControl" )
+        iSendUssdRsp.iGeneralResult = RSat::KModifiedByCallControl;
+        iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo;
+        iSendUssdRsp.iAdditionalInfo.SetLength( 0 );
+        iSendUssdRsp.iAdditionalInfo.Zero();
 		}
     else if ( KErrNone == aError )   //  Success case
         {
@@ -866,6 +879,11 @@
         LOG( SIMPLE, 
         "SENDUSSD: CSendUssdHandler::SendTerminalResponse iTerminalRespSent \
         false" )
+        
+        LOG3(SIMPLE, "SENDUSSD: CSendUssdHandler::SendTerminalResponse \
+            iDcs=%d,iUssdString=%s", iSendUssdRsp.iUssdString.iDcs,
+            &iSendUssdRsp.iUssdString.iUssdString);
+        
         iTerminalRespSent = ETrue;
         iSendUssdRsp.SetPCmdNumber( iSendUssdData.PCmdNumber() );
         TerminalRsp( RSat::ESendUssd, iSendUssdRspPckg );
--- a/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-2010 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"
@@ -67,6 +67,31 @@
 // Implementation UID is from the <plugin>.rss
 const TUid KSetUpEventListUid = { 0x10202993 };
 
+// ======== LOCAL FUNCTIONS ========
+
+// -----------------------------------------------------------------------------
+// CleanupPointerArray
+// Cleanup RPointerArray objects by using the cleanup stack. Function will be 
+// called when application leaves while a RPointerArray object still alive, 
+// or when CleanupStack::PopAndDestroy is explicitly called to release a 
+// RPointerArray. See CleanupStack::PushL( TCleanupItem ) for more details.
+// -----------------------------------------------------------------------------
+//
+static void CleanupPointerArray( TAny* aArray )
+    {
+    LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CleanupPointerArray \
+        calling array = 0x%08x", aArray )
+    
+    RImplInfoPtrArray* array = reinterpret_cast<RImplInfoPtrArray*>( aArray );
+    if ( array )
+        {
+        array->ResetAndDestroy();
+        }
+    
+    LOG( NORMAL, "SATENGINE: CSatCommandContainer::CleanupPointerArray \
+        exiting" )
+    }
+
 // ======== MEMBER FUNCTIONS ========
 
 // -----------------------------------------------------------------------------
@@ -158,6 +183,8 @@
              in startup phase" )
         // Create command handlers.
         RImplInfoPtrArray satCommandImplementations;
+        CleanupStack::PushL( 
+            TCleanupItem( CleanupPointerArray, &satCommandImplementations ) );
         REComSession::ListImplementationsL( KSatInterfaceDefinitionUid,
             satCommandImplementations );
 
@@ -196,7 +223,7 @@
                     }
                 }
             }
-        satCommandImplementations.ResetAndDestroy();
+        CleanupStack::PopAndDestroy( &satCommandImplementations );
         
         // Notify TSY about readiness i.e. all nofies are sent
         // Done only once in startup phase
@@ -219,6 +246,8 @@
 
         // Create command handlers.
         RImplInfoPtrArray satCommandImplementations;
+        CleanupStack::PushL( 
+            TCleanupItem( CleanupPointerArray, &satCommandImplementations ) );
         REComSession::ListImplementationsL( KSatInterfaceDefinitionUid,
             satCommandImplementations );
 
@@ -253,7 +282,7 @@
             // No commands, remove SAT Icon from shell
             iSatUiHandler.ShellController().RemoveSatUiL();
             }
-        satCommandImplementations.ResetAndDestroy();
+        CleanupStack::PopAndDestroy( &satCommandImplementations );
         }
     else
         {
@@ -1085,9 +1114,11 @@
 
     // Create command handlers.
     RImplInfoPtrArray satCommandImplementations;
+    CleanupStack::PushL( 
+        TCleanupItem( CleanupPointerArray, &satCommandImplementations ) );
     REComSession::ListImplementationsL( KSatInterfaceDefinitionUid,
         satCommandImplementations );
-
+    
     // Container for commands
     const TInt cmdCount( satCommandImplementations.Count() );
     LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\
@@ -1118,8 +1149,8 @@
             CleanupStack::Pop( setUpEventListCmd );
             }
         }
-
-    satCommandImplementations.Close();
+    
+    CleanupStack::PopAndDestroy( &satCommandImplementations );
     LOG( NORMAL, "SATENGINE: CSatCommandContainer::\
         StartImportantCommandHandlersL exiting" )
     }
@@ -1142,3 +1173,5 @@
         }
     LOG( NORMAL, "SATENGINE: CSatCommandContainer::CheckStartupState exiting" )
     }
+
+// End Of File
--- a/satengine/SatServer/Engine/src/CSatSIconSubSession.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/SatServer/Engine/src/CSatSIconSubSession.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -219,27 +219,44 @@
     LOG( SIMPLE,
         "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL calling" )
 
-    if ( iInfo.iLength == iIconData->Length() )
+    LOG2( NORMAL, "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL \
+          infoLength: %x", iInfo.iLength )
+
+    LOG2( NORMAL, "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL \
+          dataLength: %x", iIconData->Length() )
+
+    // Get the CLUT and convert the icon data to bitmap.
+
+    // basic icon has empty CLUT
+    if ( RSat::KBasic == iInfo.iCoding )
         {
-        LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL \
-             length equal" )
-        // Get the clut and convert the icon data to bitmap.
-        if ( RSat::KBasic == iInfo.iCoding )
+        // For the basi icon the length from the icon info and icon data
+        // body should have the same length but for the clore icon the
+        // length not always same.
+        if ( iInfo.iLength == iIconData->Length() )
             {
             LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \
-                 get the clut" )
+             get the basic clut" )
             // Basic icon does not have CLUT.
             iClut = KNullDesC8().AllocL();
-
             // Complete icon.
             NotifyGetClutL();
             }
         else
             {
             LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \
-                 others" )
-            TPtr8 iconDataPtr( iIconData->Des() );
+                notify failure basic" )
+            NotifyFailure( KErrCorrupt );
+            }
+        }
+    else // color icon
+        {
+        LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \
+             others" )
+        TPtr8 iconDataPtr( iIconData->Des() );
 
+        if ( iconDataPtr.Length() >= KNumberOfCLUTByte + 1 )
+            {
             // Create buffer for clut. Each clut entry contains
             // intensity of red, green and blue. The value of 0 is
             // interpreted as 256 clut entries. (ETSI TS 131 102 V4.10.0).
@@ -250,12 +267,17 @@
                 {
                 numberOfClutEntries = KDefaultNumberOfClutEntries;
                 }
-
+    
             // Start getting the icon color lookup table from SIM.
-            iClut = HBufC8::NewL( numberOfClutEntries * KClutEntrySize );
-
-            if ( iconDataPtr.Length() >= KNumberOfCLUTByte + 1 )
+            TInt length = numberOfClutEntries * KClutEntrySize;
+            // In some situation the length we get from the icon information
+            // includes the length of the CLUT and some time it doesn't
+            // Both situation a valid.
+            if ( ( iInfo.iLength == iIconData->Length() )
+                 || ( iInfo.iLength == iIconData->Length() + length ) )  
                 {
+                iClut = HBufC8::NewL( length );
+    
                 LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \
                      get clut" )
                 const TUint offset( iconDataPtr[KColourDepthByte] << 8 |
@@ -271,12 +293,12 @@
                 NotifyFailure( KErrCorrupt );
                 }
             }
-        }
-    else
-        {
-        LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \
-             notify failure" )
-        NotifyFailure( KErrCorrupt );
+        else
+            {
+            LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \
+                 others notify failure" )
+            NotifyFailure( KErrCorrupt );
+            }
         }
 
     LOG( SIMPLE,
--- a/satengine/SatServer/SystemState/src/CSatSystemState.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/SatServer/SystemState/src/CSatSystemState.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,6 +16,7 @@
 */
 
 
+
 #include    <mtclreg.h>
 #include    <smsclnt.h>
 #include    <smutset.h>
@@ -25,7 +26,9 @@
 #include    <ProfileEngineSDKCRKeys.h>
 #include    <settingsinternalcrkeys.h>
 #include    <satdomainpskeys.h>
-#include    <activeidle2domainpskeys.h>
+#define Q_OS_SYMBIAN // needed to activate homescreendomainpskeys.h
+#include    <homescreendomainpskeys.h>
+
 // ******************************************************************
 // TODO: ScreensaverInternalPSKeys.h does no longer exist.
 // Must find an alternative way to check screen locked state.
@@ -273,16 +276,15 @@
 TBool CSatSystemState::IsPhoneInIdleStateL()
     {
     LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsPhoneInIdleState calling" )
-    TInt idleStatus;
+    TInt idleStatus(EHomeScreenIdleState) ;
 
     // Get the idle status from P&S
     User::LeaveIfError( RProperty::Get(
-        KPSUidAiInformation,
-        KActiveIdleState,
-        idleStatus ) );
-
-    // Returns true if phone in idle state.
-    const TBool result( EPSAiForeground == idleStatus );
+        KHsCategoryUid, 
+        KHsCategoryStateKey, 
+        idleStatus));
+    // Returns true if phone in idle state. 
+    const TBool result( EHomeScreenIdleState == idleStatus ); 
 
     LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsPhoneInIdleState exiting \
         with value: %d", result )
--- a/satengine/group/bld.inf	Tue May 18 13:35:23 2010 +0100
+++ b/satengine/group/bld.inf	Thu Jun 24 13:58:21 2010 +0100
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Build information file for project SatServer
+* Description:  Build information file for project satserver
 *
 */
 
@@ -19,4 +19,4 @@
 PRJ_PLATFORMS
 DEFAULT
 
-#include "../SatServer/group/bld.inf"
+#include "../satserver/group/bld.inf"
--- a/satui/satapp/inc/satappcommonconstant.h	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/inc/satappcommonconstant.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,7 +22,8 @@
 
 const int KDisplayTxtUserClearTimeout( 60000 );
 // As the QT for S60 is slow, we use 6 sec, in symbian sat ui we use 3 sec.
-const int KDisplayTxtDefaultduration( 6000 );
+// Rollback to 3s
+const int KDisplayTxtDefaultduration( 3000 );
 
 const unsigned int KGetInputStringMaxSize = 0xEF;
 
--- a/satui/satapp/inc/satappplaytoneprovider.h	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/inc/satappplaytoneprovider.h	Thu Jun 24 13:58:21 2010 +0100
@@ -18,8 +18,8 @@
 #define SATAPPPLAYTONEPROVIDER_H
  
 #include <QObject>
-#include <MdaAudioTonePlayer.h>//PlayStandardTone
-#include <MdaAudioSamplePlayer.h>//PlayUserSelectedTone
+#include <mdaaudiotoneplayer.h> //PlayStandardTone
+#include <mdaaudiosampleplayer.h> //PlayUserSelectedTone
 #include <QEventLoop>
 #include <msatuiobserver.h>
 
--- a/satui/satapp/inc/satappuiprovider.h	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/inc/satappuiprovider.h	Thu Jun 24 13:58:21 2010 +0100
@@ -312,7 +312,9 @@
 
     /*
      * Compose Dialog
-     * @param type 
+     * @param dlg
+     * @param dialog timeout
+     * @param dialog type: DisplayText, GetInput, and etc 
      * @param aModal 
      * @param aDismissPolicy 
      */
--- a/satui/satapp/src/csatuiobserver.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/src/csatuiobserver.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1022,7 +1022,7 @@
         case ESatSLaunchBrowserQuery:
             {
             TFLOGSTRING("Quering LaunchBrowser")
-            HBufC* textHolder = NULL;
+            //HBufC* textHolder = NULL;
 
             TRAP(error,
             if (ESatAlphaIdNull != aAlphaIdStatus)
@@ -1042,16 +1042,16 @@
                     {
                     TFLOGSTRING("CSatUiObserver::ConfirmCommand \
                         AlphaId provided")
-                    textHolder = HBufC::NewLC(aText.Length());
-                    TPtr ptr = textHolder->Des();
-                    ptr.Append(aText);
+                    //textHolder = HBufC::NewLC(aText.Length());
+                    //TPtr ptr = textHolder->Des();
+                    //ptr.Append(aText);
                     }
                 
                 //TRAP(error, iActionImplementer->ConfirmLaunchBrowserL(*textHolder,
                 //    aActionAccepted, iconBitmap, selfExplanatory));
  
                 // Clean textHolder
-                CleanupStack::PopAndDestroy(textHolder);
+                //CleanupStack::PopAndDestroy(textHolder);
                 }
 
            ); // TRAP
--- a/satui/satapp/src/satappcommandhandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/src/satappcommandhandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -123,9 +123,17 @@
             duration = KDisplayTxtUserClearTimeout;
         }
     } else {
-        // if duration  defined
+        TFLOGSTRING(
+        "SATAPP: SatAppCommandHandler::displayText duration given")
         duration = aDuration * 1000;
     }
+    
+    // If not sustained or Clear after delay requested start timer
+    if ( !(!aSustainedText || aDuration || !aWaitUserToClear) ){
+        TFLOGSTRING(
+        "SATAPP: SatAppCommandHandler::displayText no duration")
+        duration = 0;
+    }
     TFLOGSTRING2(
     "SATAPP: SatAppCommandHandler::displayText duration: %d", 
     duration)
--- a/satui/satapp/src/satappplaytoneprovider.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/src/satappplaytoneprovider.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -21,8 +21,8 @@
 #include    <MProfileEngine.h>
 #include    <MProfileTones.h>
 #include    <TProfileToneSettings.h>
-#include    <audiopreference.h>//KAudioPriorityLowLevel
-#include    <Mda/Common/Resource.h>//KMdaRepeatForever
+#include    <AudioPreference.h> //KAudioPriorityLowLevel
+#include    <mda/common/resource.h>//KMdaRepeatForever
 #include    <QTimer> // timeout callback
 #include    <hbmessagebox.h>//playtone note
 #include    <mdaaudiotoneplayer.h>// for CMdaAudioToneUtility&CMdaAudioPlayerUtility
@@ -40,6 +40,11 @@
 // Audio sample is repeated indefinitely.
 const TInt KSoundPlayerRepeatForever = KMdaRepeatForever;
 
+// The max volume value from settings.
+// From TProfileToneSettings.h
+const TInt KMaxVolumeFromProfile( 10 );
+
+
 // ----------------------------------------------------------------------------
 // SatAppPlayToneProvider::SatAppPlayToneProvider
 // (other items were commented in a header).
@@ -220,6 +225,24 @@
     const TProfileToneSettings& ts = tones.ToneSettings();
     mWarningAndPlayTones = ts.iWarningAndGameTones;
     mVolume = ts.iRingingVolume;
+    
+    TFLOGSTRING2( "SatAppCommandHandler::GetProfileParamsL \
+        mVolume before mapping %d", mVolume )
+    
+    // Max volume from profile is KMaxVolumeFromProfile, Max volume from 
+    // CMdaAudioToneUtility is different, maybe 10,000. So, 
+    // rate = maxVolumeFromPlayer / KMaxVolumeFromProfile
+    // User may never hear the TONE, because volume is too small.
+    // iVolume times the rate make it can be heard.
+    
+    CMdaAudioToneUtility* toneUtl = CMdaAudioToneUtility::NewL( *this );
+    TInt maxVolumeFromPlayer( toneUtl->MaxVolume() );
+    mVolume *= maxVolumeFromPlayer / KMaxVolumeFromProfile;
+    delete toneUtl;
+    toneUtl = NULL;
+    TFLOGSTRING2( "CSatUiViewAppUi::GetProfileParamsL \
+        mVolume after mapping %d", mVolume )
+    
     if ( ( ESatUserSelectedToneIncomingSms == aTone ) && ( aToneName ) )
         {
         TFLOGSTRING("SatAppCommandHandler::GetProfileParamsL message tone")
--- a/satui/satapp/src/satappuiprovider.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/src/satappuiprovider.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -41,6 +41,9 @@
 const char *SATAPP_SELECTITEM_VIEW = "selectitem_view";
 
 // ======== MEMBER FUNCTIONS ==================================================
+// TODO: #ifndef _DEBUG need to be remove when orbit works well. Now the macro
+// is to avoid panic on emulator. Deleting pointer before create dialog is to
+// avoid memory leak in emulator.
 
 // ----------------------------------------------------------------------------
 // SatAppUiProvider
@@ -265,19 +268,22 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDisplayTextPopup call")
     resetUserResponse();
     stopShowWaitNote();
-    // Create a note
+    
+    if (mDisplayPopup){
+        delete mDisplayPopup;
+        mDisplayPopup = NULL;        
+    }
     mDisplayPopup = new HbMessageBox(HbMessageBox::MessageTypeInformation);
-
     if (mDisplayPopup) {
         TFLOGSTRING(
         "SATAPP: SatAppUiProvider::showDisplayTextPopup note created")
 
         // Set the label as heading widget
-        HbLabel *heading = new HbLabel(aHeading, mDisplayPopup);
-        mDisplayPopup->setHeadingWidget(heading);
+        HbLabel *lHeading = new HbLabel(aHeading, mDisplayPopup);
+        mDisplayPopup->setHeadingWidget(lHeading);
         mDisplayPopup->setText(aContent);
+        mDisplayPopup->setIconVisible(false);
         composeDialog(mDisplayPopup, aDuration, ESatDialogDisplayText);
-
         TFLOGSTRING(
         "SATAPP: SatAppUiProvider::showDisplayTextPopup duration before open")
         DialogWaiter waiter;
@@ -285,9 +291,11 @@
         waiter.wait();
         TFLOGSTRING(
         "SATAPP: SatAppUiProvider::showDisplayTextPopup duration end open")
-
+        
+#ifndef _DEBUG
         delete mDisplayPopup;
         mDisplayPopup = 0;
+#endif        
     }
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDisplayTextPopup exit")
     return mUserRsp;
@@ -307,7 +315,11 @@
 
     resetUserResponse();
     stopShowWaitNote();
-    // Create a query
+    
+    if (mGetInkeyQuery){
+        delete mGetInkeyQuery;
+        mGetInkeyQuery = NULL;       
+    }
     mGetInkeyQuery = new HbInputDialog();
     if (mGetInkeyQuery) {
         TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInkeyQuery note created")
@@ -317,9 +329,9 @@
         QVariant vContent(aContent);
         mGetInkeyQuery->setValue(vContent);
         HbEditorInterface inputMode(mGetInkeyQuery->lineEdit());
+        mGetInkeyQuery->lineEdit()->setFocus();
         if (ESatDigitOnly == aCharacterSet) {
             // digit mode, digits only (0 9, *, #, and +)
-//            inputMode.setUpAsPhoneNumberEditor();
             inputMode.setFilter(HbPhoneNumberFilter::instance());
          } else {
             // char mode
@@ -342,8 +354,11 @@
 
         QString inputString = (mGetInkeyQuery->value()).toString();
         aContent = inputString;
+        
+#ifndef _DEBUG       
         delete mGetInkeyQuery;
         mGetInkeyQuery = 0;
+#endif        
     }
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInkeyQuery exit")
     return mUserRsp;
@@ -370,6 +385,12 @@
     }
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration=%d",
             duration)
+    
+    if (mYesNoPopup){
+        delete mYesNoPopup;
+        mYesNoPopup = NULL;        
+    }
+    
     if (ESatYesNo == aCharacterSet) {
         mYesNoPopup = new SatAppGetInkeyNote(aText);
         TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery normal")
@@ -401,8 +422,10 @@
         aDuration = time.elapsed() / KSymbianTimeConvertQtTime;
         TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration out=%d",
                 aDuration)
+#ifndef _DEBUG        
         delete mYesNoPopup;
         mYesNoPopup = 0;
+#endif        
     }
     if (ESatYesNo == aCharacterSet) {
         mDigitalRsp = mUserRsp;
@@ -430,14 +453,17 @@
     resetUserResponse();
     stopShowWaitNote();
     mMinLength = minLength;
-    // Create a query
+    
+    if (mGetInputQuery){
+        delete mGetInputQuery;
+        mGetInputQuery = NULL;        
+    }    
     mGetInputQuery = new HbInputDialog();
-    // Set PromptText
     mGetInputQuery->setPromptText(heading);
-    // Set ContentText
     QVariant vContent(content);
     mGetInputQuery->setValue(vContent);
     HbEditorInterface inputMode(mGetInputQuery->lineEdit());
+    mGetInputQuery->lineEdit()->setFocus();
     if (ESatDigitOnly == characterSet) {
         // digit mode, digits only (0 9, *, #, and +)
         inputMode.setFilter(HbPhoneNumberFilter::instance());
@@ -451,18 +477,10 @@
 
     composeDialog(mGetInputQuery, KDefaultSelectionTimeoutMseconds, ESatDialogGetInput);
     // Sets the "OK"-action/button
-    if (0 == minLength || content.length() >= minLength) {
-        HbAction* okAction = new HbAction(hbTrId("txt_sat_general_ok"), 
-            mGetInputQuery);
-        bool ret = connect(okAction, SIGNAL(triggered()),
-                            this, SLOT(userPrimaryResponse()));
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery \
-        connect okAction: %d", ret)
-        mGetInputQuery->setPrimaryAction(okAction);
-    } else {
-        // Set default primary action is 0
-        mGetInputQuery->setPrimaryAction(0);
-    }
+    if ((0 == minLength || content.length() >= minLength) && 
+         mGetInputQuery->actions().at(0)) {
+        mGetInputQuery->actions().at(0)->setEnabled(true);
+    } 
 
     if (aHideInput) {
         mGetInputQuery->lineEdit()->setEchoMode(HbLineEdit::Password);
@@ -476,9 +494,11 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery end pop")
 
     content = (mGetInputQuery->value()).toString();
-
+    
+#ifndef _DEBUG
     delete mGetInputQuery;
     mGetInputQuery = 0;
+#endif    
 
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery mUserRsp =%d exit",
             mUserRsp)
@@ -493,46 +513,20 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction call")
     // Get Input
-    if (mGetInputQuery) {
-        if (text.length() >= mMinLength) {
-            if (!mGetInputQuery->primaryAction()) {
-                HbAction *okAction = new HbAction(hbTrId("txt_sat_general_ok"), 
-                    mGetInputQuery);
-                bool ret = connect(
-                    okAction, SIGNAL(triggered()),
-                    this, SLOT(userPrimaryResponse()));
-              TFLOGSTRING2("SATAPP: SatAppUiProvider::updateQueryAction \
-              get input connect okAction: %d", ret)
-              mGetInputQuery->setPrimaryAction(okAction);
-            }
-            TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction \
-                get input  OK")
+    if (mGetInputQuery && mGetInputQuery->actions().at(0)) {
+        if (text.length() >= mMinLength ) {
+            mGetInputQuery->actions().at(0)->setEnabled(true);
         } else {
-            if (mGetInputQuery->primaryAction()) {
-                mGetInputQuery->removeAction(mGetInputQuery->primaryAction());
-            }
-            TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction \
-                get input no OK Action")
+            mGetInputQuery->actions().at(0)->setEnabled(false);
         }
     }
+    
     // Get InKey
-    if (mGetInkeyQuery) {
-        if (!mGetInkeyQuery->primaryAction() && (text.length() == 1)) {
-            HbAction *okAction = new HbAction(hbTrId("txt_sat_general_ok"), 
-                mGetInkeyQuery);
-            bool ret = connect(okAction, SIGNAL(triggered()),
-                this, SLOT(userPrimaryResponse()));
-            TFLOGSTRING2("SATAPP: SatAppUiProvider::updateQueryAction \
-                get inkey  connect okAction: %d", ret)
-            mGetInkeyQuery->setPrimaryAction(okAction);
-        TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction \
-            get inkey OK")
-    } else {
-        if (mGetInkeyQuery->primaryAction()) {
-            mGetInkeyQuery->removeAction(mGetInkeyQuery->primaryAction());
-        }
-        TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction \
-            get inkey not OK Action")
+    if (mGetInkeyQuery && mGetInkeyQuery->actions().at(0)) {
+        if (1 == text.length()) {
+            mGetInkeyQuery->actions().at(0)->setEnabled(true);
+        } else {
+            mGetInkeyQuery->actions().at(0)->setEnabled(false); 
         }
     }
 
@@ -549,9 +543,15 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSendQuery call")
     resetUserResponse();
-    mConfirmSendQuery = new HbMessageBox();
+    
+    if (mConfirmSendQuery){
+        delete mConfirmSendQuery;
+        mConfirmSendQuery = NULL;        
+    }
+    
+    mConfirmSendQuery = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
     if(mConfirmSendQuery) {
-        mConfirmSendQuery->setText(aText);
+        mConfirmSendQuery->setText(aText);        
         composeDialog(mConfirmSendQuery, 0, ESatDialogConfirmSend);
 
         TFLOGSTRING("SATAPP: SatAppUiProvider::confirmSend before open")
@@ -559,9 +559,11 @@
         mConfirmSendQuery->open(&waiter, SLOT(done(HbAction *)));
         waiter.wait();
         TFLOGSTRING("SATAPP: SatAppUiProvider::confirmSend after open")
-
+        
+#ifndef _DEBUG
         delete mConfirmSendQuery;
         mConfirmSendQuery = 0;
+#endif        
     }
     aActionAccepted = (EUserPrimaryResponse == mUserRsp) ? true : false;
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSendQuery exit")
@@ -580,15 +582,17 @@
     }
     mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
     //remove the default cancel softkey
-    mWaitNote->removeAction(mWaitNote->primaryAction());
-    if(aText.isEmpty()) {
-        mWaitNote->setText(hbTrId("txt_sat_sendingtextmessage"));
-    } else {
-        mWaitNote->setText(aText);
+    if (mWaitNote){
+        mWaitNote->clearActions();
+        if(aText.isEmpty()) {
+            mWaitNote->setText(hbTrId("txt_sat_sendingtextmessage"));
+        } else {
+            mWaitNote->setText(aText);
+        }
+        mWaitNote->show();
+        // Extend showing sms wait note  timer for test
+        extendNoteShowtime();        
     }
-    mWaitNote->show();
-    // Extend showing sms wait note  timer for test
-    extendNoteShowtime();
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSmsWaitNote exit")
  }
 
@@ -610,7 +614,7 @@
 
     mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
     //remove the default cancel softkey
-    bool ret = connect(mWaitNote->primaryAction(), SIGNAL(triggered()),
+    bool ret = connect(mWaitNote->actions().at(0), SIGNAL(triggered()),
                        this, SLOT(cancelResponse()));
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showDtmfWaitNote \
     primaryAction=%d", ret)
@@ -674,10 +678,16 @@
         alphaId.append(aText);
         TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSetUpCallQUery exit")
     }
-
-    mSetUpCallQuery = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+    
+    if (mSetUpCallQuery){
+        delete mSetUpCallQuery;
+        mSetUpCallQuery = NULL;
+    }
+    
+    mSetUpCallQuery = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
     if(mSetUpCallQuery) {
-        mSetUpCallQuery->setText(alphaId);
+        mSetUpCallQuery->setText(alphaId);  
+        
         composeDialog(mSetUpCallQuery, 0, ESatDialogSetUpCall);
 
         TFLOGSTRING("SATAPP: SatAppSetUpCall::showSetUpCallConfirm before open")
@@ -685,9 +695,11 @@
         mSetUpCallQuery->open(&waiter, SLOT(done(HbAction *)));
         waiter.wait();
         TFLOGSTRING("SATAPP: SatAppSetUpCall::showSetUpCallConfirm after open")
-
+        
+#ifndef _DEBUG
         delete mSetUpCallQuery;
         mSetUpCallQuery = 0;
+#endif        
     }
     aActionAccepted = (EUserPrimaryResponse == mUserRsp) ? true : false;
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSetUpCallQUery exit")
@@ -791,15 +803,15 @@
 }
 
 // ----------------------------------------------------------------------------
-// composeDialog
+// composeDialog: make sure dlg has 2 buttons
 // ----------------------------------------------------------------------------
 //
 void SatAppUiProvider::composeDialog(
     HbDialog *dlg, 
     int aDuration,
-    TSatAppDialogActionType type,
-    bool aModal,
-    HbDialog::DismissPolicy aDismissPolicy)
+    TSatAppDialogActionType type, 
+    bool aModal/* = true*/,
+    HbDialog::DismissPolicy aDismissPolicy/* = HbDialog::NoDismiss*/)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog call")
 
@@ -810,67 +822,66 @@
     } else {
         dlg->setTimeout(HbDialog::NoTimeout);
     }
-
-    HbAction *primaryAction = 0;
-    HbAction *secondaryAction = 0;
-
+    
+    dlg->clearActions();
+    HbAction *primaryAction = new HbAction(dlg);
+    dlg->addAction(primaryAction);
+    bool ret = connect(primaryAction, SIGNAL(triggered()),
+                       this, SLOT(userPrimaryResponse()));
+    TFLOGSTRING2("SATAPP: SatAppUiProvider::composeDialog \
+        primaryAction=%d", ret)   
+    
+    HbAction *secondaryAction = new HbAction(dlg);
+    dlg->addAction(secondaryAction);
+    ret = connect(secondaryAction, SIGNAL(triggered()),
+                  this, SLOT(userSecondaryResponse()));
+    TFLOGSTRING2("SATAPP: SatAppUiProvider::composeDialog \
+        secondaryAction=%d", ret)     
+    
     if (ESatDialogDisplayText == type){
-        primaryAction = new HbAction(hbTrId("txt_sat_general_ok"), dlg);
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_back"), dlg);
+        primaryAction->setText(hbTrId("txt_sat_general_ok"));
+        secondaryAction->setText(hbTrId("txt_sat_general_back"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogDisplayText")
     } else if (ESatDialogGetInput == type){
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+        primaryAction->setText(hbTrId("txt_sat_general_ok"));
+        primaryAction->setEnabled(false);
+        secondaryAction->setText(hbTrId("txt_sat_general_cancel"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetInput")
     } else if (ESatDialogGetInkey == type){
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+        primaryAction->setText(hbTrId("txt_sat_general_ok"));
+        primaryAction->setEnabled(false);
+        secondaryAction->setText(hbTrId("txt_sat_general_cancel"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetInkey")
     } else if (ESatDialogGetYesNo == type){
-        primaryAction = new HbAction(hbTrId("txt_sat_general_yes"), dlg);
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_no"), dlg);
+        primaryAction->setText(hbTrId("txt_sat_general_yes"));
+        secondaryAction->setText(hbTrId("txt_sat_general_no"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetYesNo")
     } else if (ESatDialogGetDigitalRsp == type){
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+        dlg->removeAction(primaryAction);
+        secondaryAction->setText(hbTrId("txt_sat_general_cancel"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogGetDigitalRsp")
     } else if (ESatDialogSetUpCall == type){
-        primaryAction = new HbAction(hbTrId("txt_sat_general_call"), dlg);
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+        primaryAction->setText(hbTrId("txt_sat_general_call"));
+        secondaryAction->setText(hbTrId("txt_sat_general_cancel"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogSetUpCall")
     } else if (ESatDialogConfirmSend == type){
-        primaryAction = new HbAction(hbTrId("txt_sat_general_send"), dlg);
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+        primaryAction->setText(hbTrId("txt_sat_general_send"));
+        secondaryAction->setText(hbTrId("txt_sat_general_cancel"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogConfirmSend")
-    }else if (ESatDialogConfirmBip == type){
-        primaryAction = new HbAction(hbTrId("txt_sat_general_ok"), dlg);
-        secondaryAction = new HbAction(hbTrId("txt_sat_general_cancel"), dlg);
+    } else if (ESatDialogConfirmBip == type){
+        primaryAction->setText(hbTrId("txt_sat_general_ok"));
+        secondaryAction->setText(hbTrId("txt_sat_general_cancel"));
         TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog \
             ESatDialogConfirmBip")
     }
-
-    if (primaryAction) {
-        bool ret = connect(
-            primaryAction, SIGNAL(triggered()),
-            this, SLOT(userPrimaryResponse()));
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::composeDialog \
-            primaryAction=%d", ret)
-    }
-    dlg->setPrimaryAction(primaryAction);
-
-    if (secondaryAction) {
-        bool ret = connect(
-            secondaryAction, SIGNAL(triggered()),
-            this, SLOT(userSecondaryResponse()));
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::composeDialog \
-            secondaryAction=%d", ret)
-    }
-    dlg->setSecondaryAction(secondaryAction);
-
+    
     TFLOGSTRING("SATAPP: SatAppUiProvider::composeDialog exit")
 }
 
@@ -974,7 +985,7 @@
         mWaitNote = 0;
     }
     mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
-    mWaitNote->removeAction(mWaitNote->primaryAction());
+    mWaitNote->clearActions();
     if (aText.length()) {
         if (!aSelfExplanatoryIcon)  {
             TFLOGSTRING("SATAPP: SatAppUiProvider::showSsWaitNote !Icon")
@@ -1004,7 +1015,7 @@
         mWaitNote = 0;
     }
     mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
-    mWaitNote->removeAction(mWaitNote->primaryAction());
+    mWaitNote->clearActions();
     mWaitNote->setText(hbTrId("txt_sat_wait_note_without_delay"));
     mWaitNote->show();
     TFLOGSTRING("SATAPP: SatAppUiProvider::showWaitNoteWithoutDelay exit")
@@ -1018,13 +1029,7 @@
 void SatAppUiProvider::showSsErrorNote()
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSsErrorNote")
-    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
-    msgBox->setText(hbTrId("txt_sat_sendss_error_note"));
-    DialogWaiter waiter;
-    msgBox->open(&waiter, SLOT(done(HbAction *)));
-    waiter.wait();
-    delete msgBox;
-    msgBox = NULL;
+    HbMessageBox::warning(hbTrId("txt_sat_sendss_error_note"));
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSsErrorNote exit")
 }
 
@@ -1042,10 +1047,10 @@
         title = hbTrId("txt_sat_openchannel_confirm_note");
     }
 
-    mConfirmBipQuery = new HbMessageBox();
+    mConfirmBipQuery = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
     if(mConfirmBipQuery) {
         // Sets the "Yes"-action/button
-        mConfirmBipQuery->setText(title);
+        mConfirmBipQuery->setText(title);    
         composeDialog(mConfirmBipQuery, 0, ESatDialogConfirmBip);
 
         TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmOpenChannelQuery before open")
@@ -1096,7 +1101,7 @@
         mWaitNote->setText(aText);
 
         //remove the default cancel softkey
-        bool ret = connect(mWaitNote->primaryAction(), SIGNAL(triggered()),
+        bool ret = connect(mWaitNote->actions().at(0), SIGNAL(triggered()),
                            this, SLOT(cancelResponse()));
         TFLOGSTRING2("SATAPP: SatAppUiProvider::showDtmfWaitNote \
         primaryAction=%d", ret)
@@ -1117,13 +1122,7 @@
 void SatAppUiProvider::showMoSmControlNote(const QString &aText)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showMoSmControlNote")
-    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
-    msgBox->setText(aText);
-    msgBox->setTimeout(KMoSmControlTimeOut);
-    DialogWaiter waiter;
-    msgBox->open(&waiter, SLOT(done(HbAction *)));
-    waiter.wait();
-    delete msgBox;
+    HbMessageBox::information(aText);
     TFLOGSTRING("SATAPP: SatAppUiProvider::showMoSmControlNote exit")
 
 }
@@ -1140,7 +1139,7 @@
         mWaitNote = 0;
     }   
     mWaitNote = new HbProgressDialog(HbProgressDialog::WaitDialog);
-    mWaitNote->removeAction(mWaitNote->primaryAction());
+    mWaitNote->clearActions();
     mWaitNote->setText(aText);
     mWaitNote->show();
     TFLOGSTRING("SATAPP: SatAppUiProvider::showCloseChannelWaitNote exit")
@@ -1154,13 +1153,7 @@
 void SatAppUiProvider::showSatInfoNote(const QString &aText)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSatInfoNote")
-    HbMessageBox *msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
-    msgBox->setText(aText);
-    DialogWaiter waiter;
-    msgBox->open(&waiter, SLOT(done(HbAction *)));
-    waiter.wait();
-    delete msgBox;
-    msgBox = 0;
+    HbMessageBox::information(aText);
     TFLOGSTRING("SATAPP: SatAppUiProvider::showSatInfoNote exit")
 }
 
--- a/satui/satapp/src/satappview.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/satui/satapp/src/satappview.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -400,22 +400,32 @@
 void SatAppView::connectItem()
 {
     TFLOGSTRING("SATAPP: SatAppView::connectItem")
+    bool ret = false;
     if (!mSelectItem && mListWidget) {
-        const bool result = connect(
+        ret = connect(
             mListWidget, SIGNAL(activated(HbListWidgetItem *)), 
             this, SLOT(menuItemSelected(HbListWidgetItem *)));
         TFLOGSTRING2( 
-        "SATAPP: SatAppView::connectItem exit: setup menu item result=%d", 
-        result)
+        "SATAPP: SatAppView::connectItem SetupMenu short connect=%d", ret)
+        ret = connect(
+            mListWidget, SIGNAL(longPressed(HbListWidgetItem*, const QPointF&)), 
+            this, SLOT(menuItemSelected(HbListWidgetItem *)));
+        TFLOGSTRING2( 
+        "SATAPP: SatAppView::connectItem SetupMenue long connect=%d", ret)
     }
 
     if (mSelectItem && mSelectListWidget) {
-        const bool result = connect(
+        ret = connect(
             mSelectListWidget, SIGNAL(activated(HbListWidgetItem *)), 
             this, SLOT(menuItemSelected(HbListWidgetItem *)));
         TFLOGSTRING2( 
-        "SATAPP: SatAppView::connectItem exit: select item result=%d", 
-        result)
+        "SATAPP: SatAppView::connectItem SelectItem short connect=%d", ret)
+        ret = connect(
+            mSelectListWidget, 
+            SIGNAL(longPressed(HbListWidgetItem*, const QPointF&)), 
+            this, SLOT(menuItemSelected(HbListWidgetItem *)));
+        TFLOGSTRING2( 
+        "SATAPP: SatAppView::connectItem SelectItem long connect=%d", ret)        
     }
     TFLOGSTRING("SATAPP: SatAppView::connectItem exit")
 }
@@ -431,14 +441,21 @@
     // setup menu view
     if (!mSelectItem && mListWidget) {
         disconnect(mListWidget, SIGNAL( activated(HbListWidgetItem *)),
-              this, SLOT( menuItemSelected( HbListWidgetItem *)));
-        TFLOGSTRING("SATAPP: SatAppView::disconnectItem: setup menu item ")
+              this, SLOT( menuItemSelected( HbListWidgetItem *)));        
+        disconnect(
+            mListWidget, SIGNAL(longPressed(HbListWidgetItem*, const QPointF&)), 
+            this, SLOT(menuItemSelected(HbListWidgetItem *)));
+        TFLOGSTRING("SATAPP: SatAppView::disconnectItem: SetupMenu")
     }
     // select item view
     if (mSelectItem && mSelectListWidget) {
         disconnect(mSelectListWidget, SIGNAL( activated(HbListWidgetItem *)),
               this, SLOT( menuItemSelected( HbListWidgetItem *)));
-        TFLOGSTRING("SATAPP: SatAppView::disconnectItem: select item ")
+        disconnect(
+            mSelectListWidget, 
+            SIGNAL(longPressed(HbListWidgetItem*, const QPointF&)), 
+            this, SLOT(menuItemSelected(HbListWidgetItem *)));        
+        TFLOGSTRING("SATAPP: SatAppView::disconnectItem: SelectItem")
     }
     TFLOGSTRING("SATAPP: SatAppView::disconnectItem exit")
 }
--- a/telutils/dialpad/bwins/dialpadu.def	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/bwins/dialpadu.def	Thu Jun 24 13:58:21 2010 +0100
@@ -49,4 +49,17 @@
 	??0DialpadKeyHandler@@QAE@PAVDialpad@@AAVHbMainWindow@@PAVQObject@@@Z @ 48 NONAME ; DialpadKeyHandler::DialpadKeyHandler(class Dialpad *, class HbMainWindow &, class QObject *)
 	?isOpen@Dialpad@@QBE_NXZ @ 49 NONAME ; bool Dialpad::isOpen(void) const
 	?aboutToOpen@Dialpad@@IAEXXZ @ 50 NONAME ; void Dialpad::aboutToOpen(void)
+	??1DialpadVtKeyHandler@@UAE@XZ @ 51 NONAME ; DialpadVtKeyHandler::~DialpadVtKeyHandler(void)
+	?metaObject@DialpadVtKeyHandler@@UBEPBUQMetaObject@@XZ @ 52 NONAME ; struct QMetaObject const * DialpadVtKeyHandler::metaObject(void) const
+	?tr@DialpadVtKeyHandler@@SA?AVQString@@PBD0H@Z @ 53 NONAME ; class QString DialpadVtKeyHandler::tr(char const *, char const *, int)
+	??0DialpadVtKeyHandler@@QAE@PAVDialpad@@AAVHbMainWindow@@PAVQObject@@@Z @ 54 NONAME ; DialpadVtKeyHandler::DialpadVtKeyHandler(class Dialpad *, class HbMainWindow &, class QObject *)
+	?trUtf8@DialpadVtKeyHandler@@SA?AVQString@@PBD0H@Z @ 55 NONAME ; class QString DialpadVtKeyHandler::trUtf8(char const *, char const *, int)
+	?trUtf8@DialpadVtKeyHandler@@SA?AVQString@@PBD0@Z @ 56 NONAME ; class QString DialpadVtKeyHandler::trUtf8(char const *, char const *)
+	?staticMetaObject@DialpadVtKeyHandler@@2UQMetaObject@@B @ 57 NONAME ; struct QMetaObject const DialpadVtKeyHandler::staticMetaObject
+	?qt_metacall@DialpadVtKeyHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 58 NONAME ; int DialpadVtKeyHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?getStaticMetaObject@DialpadVtKeyHandler@@SAABUQMetaObject@@XZ @ 59 NONAME ; struct QMetaObject const & DialpadVtKeyHandler::getStaticMetaObject(void)
+	??_EDialpadVtKeyHandler@@UAE@I@Z @ 60 NONAME ; DialpadVtKeyHandler::~DialpadVtKeyHandler(unsigned int)
+	?qt_metacast@DialpadVtKeyHandler@@UAEPAXPBD@Z @ 61 NONAME ; void * DialpadVtKeyHandler::qt_metacast(char const *)
+	?tr@DialpadVtKeyHandler@@SA?AVQString@@PBD0@Z @ 62 NONAME ; class QString DialpadVtKeyHandler::tr(char const *, char const *)
+	??0DialpadKeyHandler@@QAE@PAVDialpad@@V?$QFlags@W4DialpadKeyEventFilter@DialpadKeyHandler@@@@PAVQObject@@@Z @ 63 NONAME ; DialpadKeyHandler::DialpadKeyHandler(class Dialpad *, class QFlags<enum DialpadKeyHandler::DialpadKeyEventFilter>, class QObject *)
 
--- a/telutils/dialpad/dialpad.pro	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/dialpad.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -23,6 +23,7 @@
 
 HEADERS += ../../phonesrv_plat/dialpad_api/inc/dialpad.h \
            ../../phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h \
+           ../../phonesrv_plat/dialpad_api/inc/dialpadvtkeyhandler.h \
            inc/dialpadbutton.h \
            inc/dialpadinputfield.h \
            inc/dialpadkeypad.h \
@@ -31,7 +32,10 @@
            inc/dialpadbackground.h \
            inc/dialpadvoicemailboxeventfilter.h \
            inc/dialpadbluetootheventfilter.h \
-           inc/dialpadkeysequenceeventfilter.h
+           inc/dialpadkeysequenceeventfilter.h \
+           inc/dialpadvideomailboxeventfilter.h \
+           inc/dialpadmailboxeventfilterbase.h \
+           inc/dialpademergencycalleventfilter.h
 
 SOURCES += src/dialpad.cpp \
            src/dialpadbutton.cpp \
@@ -43,7 +47,11 @@
            src/dialpadbackground.cpp \
            src/dialpadvoicemailboxeventfilter.cpp \
            src/dialpadbluetootheventfilter.cpp \
-           src/dialpadkeysequenceeventfilter.cpp
+           src/dialpadkeysequenceeventfilter.cpp \
+           src/dialpadvideomailboxeventfilter.cpp \
+           src/dialpadmailboxeventfilterbase.cpp \
+           src/dialpademergencycalleventfilter.cpp \
+           src/dialpadvtkeyhandler.cpp
 
 RESOURCES += dialpad.qrc
 
@@ -70,7 +78,9 @@
     
     LIBS += -lxqservice \
             -lxqserviceutil \
-            -lvmbxengine
+            -lvmbxengine \
+            -lfeatmgr \
+            -lphoneclient
 }
 else:win32 { 
     HEADERS += inc/dialpadsymbianwrapper_p_stub.h
--- a/telutils/dialpad/eabi/dialpadu.def	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/eabi/dialpadu.def	Thu Jun 24 13:58:21 2010 +0100
@@ -57,4 +57,18 @@
 	_ZThn8_N7DialpadD0Ev @ 56 NONAME
 	_ZThn8_N7DialpadD1Ev @ 57 NONAME
 	_ZN7Dialpad11aboutToOpenEv @ 58 NONAME
+	_ZN19DialpadVtKeyHandler11qt_metacallEN11QMetaObject4CallEiPPv @ 59 NONAME
+	_ZN19DialpadVtKeyHandler11qt_metacastEPKc @ 60 NONAME
+	_ZN19DialpadVtKeyHandler16staticMetaObjectE @ 61 NONAME DATA 16
+	_ZN19DialpadVtKeyHandler19getStaticMetaObjectEv @ 62 NONAME
+	_ZN19DialpadVtKeyHandlerC1EP7DialpadR12HbMainWindowP7QObject @ 63 NONAME
+	_ZN19DialpadVtKeyHandlerC2EP7DialpadR12HbMainWindowP7QObject @ 64 NONAME
+	_ZN19DialpadVtKeyHandlerD0Ev @ 65 NONAME
+	_ZN19DialpadVtKeyHandlerD1Ev @ 66 NONAME
+	_ZN19DialpadVtKeyHandlerD2Ev @ 67 NONAME
+	_ZNK19DialpadVtKeyHandler10metaObjectEv @ 68 NONAME
+	_ZTI19DialpadVtKeyHandler @ 69 NONAME
+	_ZTV19DialpadVtKeyHandler @ 70 NONAME
+	_ZN17DialpadKeyHandlerC1EP7Dialpad6QFlagsINS_21DialpadKeyEventFilterEEP7QObject @ 71 NONAME
+	_ZN17DialpadKeyHandlerC2EP7Dialpad6QFlagsINS_21DialpadKeyEventFilterEEP7QObject @ 72 NONAME
 
--- a/telutils/dialpad/inc/dialpadbluetootheventfilter.h	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/inc/dialpadbluetootheventfilter.h	Thu Jun 24 13:58:21 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef DIALPADBLUETOOTHEVENTFILTER_H
 #define DIALPADBLUETOOTHEVENTFILTER_H
 
-#include <QObject>
+#include <qobject>
 
 class QTimer;
 class Dialpad;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/inc/dialpademergencycalleventfilter.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,78 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef DIALPADEMERGENCYCALLEVENTFILTER_H
+#define DIALPADEMERGENCYCALLEVENTFILTER_H
+
+#include <qobject>
+
+class Dialpad;
+class CPhCltEmergencyCall;
+
+/*!
+    DialpadEmergencyCallEventFilter
+    Class provides emergency call key handling.
+*/
+class DialpadEmergencyCallEventFilter : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit DialpadEmergencyCallEventFilter(Dialpad* dialpad, QObject* parent = 0);
+    virtual ~DialpadEmergencyCallEventFilter();
+
+protected:
+    bool eventFilter(QObject *watched, QEvent *event);
+
+private:
+
+    /*!
+       \fn void isEmergencyNumber()
+
+       Checks is string emergency number.
+    */
+    bool isEmergencyNumber(QString string);
+    
+    /*!
+       \fn void editorText()
+
+       Returns text from editor (in western digits).
+    */
+    QString editorText();
+    
+    /*!
+       \fn createCall(const QString phoneNumber)
+
+       Creates call request to QT Highway.
+    */
+    void createCall(const QString &phoneNumber);
+
+protected slots:
+
+    /*!
+        \fn void editorTextChanged()
+        
+        This slot is called when dialpad editor text is changed.
+    */
+    void editorTextChanged();
+    
+private:
+    Dialpad* mDialpad;
+    CPhCltEmergencyCall* mEmergency;
+};
+
+#endif // DIALPADEMERGENCYCALLEVENTFILTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/inc/dialpadmailboxeventfilterbase.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,112 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef DIALPADMAILBOXEVENTFILTERBASE_H
+#define DIALPADMAILBOXEVENTFILTERBASE_H
+
+#include <qobject>
+
+class QTimer;
+class Dialpad;
+class DialpadSymbianWrapper;
+
+enum err {
+    DialpadErrorNone = 0,
+    DialpadErrorCancel = -3
+};
+const int DialpadLongKeyPressTimeOut(1000);
+
+/*!
+    DialpadMailboxEventFilterBase
+    Class provides voice mailbox key handling.
+*/
+class DialpadMailboxEventFilterBase : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit DialpadMailboxEventFilterBase(Dialpad* dialpad, QObject* parent = 0);
+    virtual ~DialpadMailboxEventFilterBase();
+
+protected:
+    virtual bool eventFilter(QObject *watched, QEvent *event) = 0;
+
+    /*!
+        \fn bool isLongKeyPressSupported(const int key)
+
+        Checks if key is numeric key'1' or numbersign key if it is then
+        function return true, if key is something else for example
+        yes/send then this returns false.
+    */
+    bool isLongKeyPressSupported(const int key);
+
+    /*!
+       \fn bool checkIfSendEventAndConsumeEvent(const int pressedKey, const int eventType)
+
+       Checks that keycode is call related key if it is then handle it.
+       */
+    bool checkIfSendEventAndConsumeEvent(const int pressedKey, const int eventType);
+
+    /*!
+       \fn bool handleCallButtonPress()
+
+       Check if editor has number string and if it does then createCall
+       is called and funtion returns true, if there is no number then
+       funtion return false.
+   */
+    virtual bool handleCallButtonPress() = 0;
+
+    /*!
+       \fn void clearEditor()
+
+       Clears dialpad editor.
+    */
+    void clearEditor();
+
+    /*!
+       \fn createCall(const QString phoneNumber)
+
+       Creates call request to QT Highway.
+    */
+    void createCall(const QString &phoneNumber, bool createVideoCall = false);
+
+    /*!
+       \fn handleMailboxOperation
+
+       Start vmbx call or number definition procedures.
+    */
+    virtual void handleMailboxOperation() = 0;
+
+    
+protected slots:
+
+    /*!
+       \fn void handleLongKeyPress()
+    
+       Handles long key presses.
+    */
+    virtual void handleLongKeyPress() = 0;
+
+
+protected:
+    QTimer *mLongPressTimer;
+    DialpadSymbianWrapper *mSymbianWrapper;
+    Dialpad* mDialpad;
+    int mKeyEvent;
+};
+
+#endif // DIALPADMAILBOXEVENTFILTERBASE_H
--- a/telutils/dialpad/inc/dialpadsymbianwrapper.h	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper.h	Thu Jun 24 13:58:21 2010 +0100
@@ -18,8 +18,8 @@
 #ifndef DIALPADSYMBIANWRAPPER_H
 #define DIALPADSYMBIANWRAPPER_H
 
-#include <QObject>
-#include <QString>
+#include <qobject>
+#include <qstring>
 #include <qglobal.h>
 
 class DialpadSymbianWrapperPrivate;
@@ -37,8 +37,10 @@
     ~DialpadSymbianWrapper();
     
     int getMailboxNumber(QString &vmbxNumber);
+    int getVideoMailboxNumber(QString &vmbxNumber);
         
     int defineMailboxNumber(QString &vmbxNumber);
+    int defineVideoMailboxNumber(QString &vmbxNumber);
 
 protected:
     DialpadSymbianWrapperPrivate *const d_ptr;
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Thu Jun 24 13:58:21 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef DIALPADSYMBIANWRAPPERPRIVATE_H
 #define DIALPADSYMBIANWRAPPERPRIVATE_H
 
-#include <QString>
+#include <qstring>
 #include <qglobal.h>
 
 class CVoiceMailbox;
@@ -38,8 +38,10 @@
     ~DialpadSymbianWrapperPrivate();
     
     int getMailboxNumber(QString &vmbxNumber);
+    int getVideoMailboxNumber(QString &vmbxNumber);
     
     int defineMailboxNumber(QString &vmbxNumber);
+    int defineVideoMailboxNumber(QString &vmbxNumber);
     
 private:
     
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h	Thu Jun 24 13:58:21 2010 +0100
@@ -37,8 +37,10 @@
     ~DialpadSymbianWrapperPrivate();
     
     int getMailboxNumber(QString &vmbxNumber);
+    int getVideoMailboxNumber(QString &vmbxNumber);
     
     int defineMailboxNumber(QString &vmbxNumber);
+    int defineVideoMailboxNumber(QString &vmbxNumber);
 
 private:
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/inc/dialpadvideomailboxeventfilter.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,68 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef DIALPADVIDEOMAILBOXEVENTFILTER_H
+#define DIALPADVIDEOMAILBOXEVENTFILTER_H
+
+#include "dialpadmailboxeventfilterbase.h"
+
+class QTimer;
+class Dialpad;
+class DialpadSymbianWrapper;
+
+/*!
+    DialpadVideoMailboxEventFilter
+    Class provides video mailbox key handling.
+*/
+class DialpadVideoMailboxEventFilter : public DialpadMailboxEventFilterBase
+{
+    Q_OBJECT
+
+public:
+    explicit DialpadVideoMailboxEventFilter(Dialpad* dialpad, QObject* parent = 0);
+    virtual ~DialpadVideoMailboxEventFilter();
+
+protected:
+    bool eventFilter(QObject *watched, QEvent *event);
+
+    /*!
+       \fn bool handleCallButtonPress()
+
+       Check if editor has number string and if it does then createVideoCall
+       is called and funtion returns true, if there is no number then
+       funtion return false.
+   */
+    bool handleCallButtonPress();
+
+    /*!
+       \fn handleMailboxOperation
+
+       Start vmbx call or number definition procedures.
+    */
+    void handleMailboxOperation();
+
+protected slots:
+
+    /*!
+       \fn void handleLongKeyPress()
+    
+       Handles long key presses.
+    */
+    void handleLongKeyPress();
+};
+
+#endif // DIALPADVIDEOMAILBOXEVENTFILTER_H
--- a/telutils/dialpad/inc/dialpadvoicemailboxeventfilter.h	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/inc/dialpadvoicemailboxeventfilter.h	Thu Jun 24 13:58:21 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef DIALPADVOICEMAILBOXEVENTFILTER_H
 #define DIALPADVOICEMAILBOXEVENTFILTER_H
 
-#include <QObject>
+#include "dialpadmailboxeventfilterbase.h"
 
 class QTimer;
 class Dialpad;
@@ -28,7 +28,7 @@
     DialpadVoiceMailboxEventFilter
     Class provides voice mailbox key handling.
 */
-class DialpadVoiceMailboxEventFilter : public QObject
+class DialpadVoiceMailboxEventFilter : public DialpadMailboxEventFilterBase
 {
     Q_OBJECT
 
@@ -39,31 +39,6 @@
 protected:
     bool eventFilter(QObject *watched, QEvent *event);
 
-private slots:
-    /*!
-       \fn void handleLongKeyPress()
-
-       Handles long key presses.
-    */
-    void handleLongKeyPress();
-
-private:
-    /*!
-        \fn bool isLongKeyPressSupported(const int key)
-
-        Checks if key is numeric key'1' or numbersign key if it is then
-        function return true, if key is something else for example
-        yes/send then this returns false.
-    */
-    bool isLongKeyPressSupported(const int key);
-
-    /*!
-       \fn bool checkIfSendEventAndConsumeEvent(const int pressedKey, const int eventType)
-
-       Checks that keycode is call related key if it is then handle it.
-       */
-    bool checkIfSendEventAndConsumeEvent(const int pressedKey, const int eventType);
-
     /*!
        \fn bool handleCallButtonPress()
 
@@ -74,31 +49,20 @@
     bool handleCallButtonPress();
 
     /*!
-       \fn void clearEditor()
-
-       Clears dialpad editor.
-    */
-    void clearEditor();
-
-    /*!
-       \fn createCall(const QString phoneNumber)
-
-       Creates call request to QT Highway.
-    */
-    void createCall(const QString &phoneNumber);
-
-    /*!
        \fn handleMailboxOperation
 
        Start vmbx call or number definition procedures.
     */
     void handleMailboxOperation();
+    
+protected slots:
 
-private:
-    QTimer *mLongPressTimer;
-    DialpadSymbianWrapper *mSymbianWrapper;
-    Dialpad* mDialpad;
-    int mKeyEvent;
+    /*!
+       \fn void handleLongKeyPress()
+    
+       Handles long key presses.
+    */
+    void handleLongKeyPress();
 };
 
 #endif // DIALPADVOICEMAILBOXEVENTFILTER_H
--- a/telutils/dialpad/resources/dialpad.css	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/resources/dialpad.css	Thu Jun 24 13:58:21 2010 +0100
@@ -9,13 +9,14 @@
 
 DialpadButton[icon][!text][!additionalText]{
     layout:icon_button;
-    min-height:6.25un;
+    min-height:6.25un; /* default min-height is too small */
     min-width:6.25un;
 }
 
 /* text and additional text */
 DialpadButton[stretched][!icon][text][additionalText]{
     layout:text_additionalText_horizontal;
+    min-height:6.25un;
 }
 
 DialpadButton[stretched][!icon][text][additionalText]::text
@@ -38,6 +39,7 @@
 /* text and icon */
 DialpadButton[stretched][icon][text][!additionalText]{
     layout:icon_text_horizontal;
+    min-height:6.25un;
 }
 
 DialpadButton[stretched][icon][text][!additionalText]::text{
--- a/telutils/dialpad/src/dialpad.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpad.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -96,8 +96,8 @@
     mIconDrawer = new HbFrameDrawer();
 
     // popup layout
-    QGraphicsLinearLayout* popupLayout
-        = new QGraphicsLinearLayout(mMainWindow.orientation());
+    QGraphicsLinearLayout* popupLayout =
+        new QGraphicsLinearLayout(Qt::Vertical);
     popupLayout->addItem(mInputField);
     popupLayout->addItem(mKeypad);
     popupLayout->setContentsMargins(margin, mCloseHandleHeight, margin, margin);
--- a/telutils/dialpad/src/dialpadbluetootheventfilter.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadbluetootheventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <QTimer>
-#include <QKeyEvent>
+#include <qtimer>
+#include <qkeyevent>
 #include <hblineedit.h>
 #include "dialpadbluetootheventfilter.h"
 #include "dialpad.h"
--- a/telutils/dialpad/src/dialpadbutton.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadbutton.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -54,7 +54,7 @@
     bool result = HbPushButton::sceneEvent(event);
 
     if (event->type() == QEvent::UngrabMouse) {
-        if (isDown()) {
+        if (isVisible() && isDown()) {
             // this is needed in situation, where
             // longpress launches a dialog (vmbx)
             // and button release event goes to
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpademergencycalleventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+#include <qkeyevent>
+#include <hblineedit.h>
+#include <hbstringutil.h>
+#include "dialpademergencycalleventfilter.h"
+#include "dialpad.h"
+#include "qtphonesrvlog.h"
+
+#ifdef Q_OS_SYMBIAN
+#include <cphcltemergencycall.h>
+#include <xqservicerequest.h>
+#include <xqserviceutil.h>
+#include <phclttypes.h>
+#endif //Q_OS_SYMBIAN
+
+
+DialpadEmergencyCallEventFilter::DialpadEmergencyCallEventFilter(Dialpad* dialpad, QObject* parent) :
+    QObject(parent), mDialpad(dialpad), mEmergency(0)
+{
+    PHONE_TRACE;
+#ifdef Q_OS_SYMBIAN
+    TRAP_IGNORE(mEmergency = CPhCltEmergencyCall::NewL( NULL ));
+#endif // Q_OS_SYMBIAN
+    mDialpad->setCallButtonEnabled(false);
+    connect(&mDialpad->editor(),SIGNAL(contentsChanged()),
+            this,SLOT(editorTextChanged()));
+}
+
+DialpadEmergencyCallEventFilter::~DialpadEmergencyCallEventFilter()
+{
+}
+
+bool DialpadEmergencyCallEventFilter::eventFilter(QObject *watched, QEvent *event)
+{
+    PHONE_TRACE;
+    Q_UNUSED(watched)
+    
+    bool eventFiltered = false;
+#ifdef Q_OS_SYMBIAN
+       
+    const int eventType = event->type();
+       
+    if (eventType == QEvent::KeyPress) {
+        QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+        const int keyCode = keyEvent->key();
+        if (keyCode == Qt::Key_Yes ||
+             keyCode == Qt::Key_Enter) {           
+            if (isEmergencyNumber(editorText())) {
+                createCall(editorText());
+                eventFiltered = true;
+            }            
+        }
+    }
+#else
+    Q_UNUSED(event)
+#endif // Q_OS_SYMBIAN
+    
+    return eventFiltered;
+}
+
+bool DialpadEmergencyCallEventFilter::isEmergencyNumber(QString string)
+{
+    PHONE_TRACE;
+    bool ret = false;
+#ifdef Q_OS_SYMBIAN
+    if (KPhCltTelephoneNumberLength >= string.length()) {
+        TBool emergency;
+        TPhCltTelephoneNumber number(reinterpret_cast<const TUint16*>(string.utf16()));
+        if (mEmergency && 
+           KErrNone == mEmergency->IsEmergencyPhoneNumber(number, emergency)) {
+            ret = emergency;
+        }               
+    }
+#else
+    Q_UNUSED(string)
+#endif // Q_OS_SYMBIAN
+    return ret;
+}
+
+QString DialpadEmergencyCallEventFilter::editorText()
+{
+    PHONE_TRACE;
+    return HbStringUtil::convertDigitsTo(
+                mDialpad->editor().text(), WesternDigit);
+}
+
+void DialpadEmergencyCallEventFilter::createCall(const QString &phoneNumber)
+{
+    PHONE_TRACE2("phoneNumber:", phoneNumber);
+#ifdef Q_OS_SYMBIAN
+    XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)", false);
+    snd << phoneNumber;
+    QVariant retValue;
+    snd.send(retValue);
+#endif // Q_OS_SYMBIAN
+}
+
+void DialpadEmergencyCallEventFilter::editorTextChanged()
+{
+    mDialpad->setCallButtonEnabled(isEmergencyNumber(editorText())); 
+}
+
--- a/telutils/dialpad/src/dialpadinputfield.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadinputfield.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -43,7 +43,7 @@
     editorInterface.setInputConstraints(HbEditorConstraintIgnoreFocus);
     mNumberEditor->setMaxLength(DialpadMaxEditStringLenght);
     mNumberEditor->setMinRows(1);
-    mNumberEditor->setMaxRows(2);
+    mNumberEditor->setMaxRows(1);    
     mNumberEditor->setAdjustFontSizeToFitHeight(true);
 
     // create backspace button
--- a/telutils/dialpad/src/dialpadkeyhandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadkeyhandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,10 +16,16 @@
 */
 
 #include <hbmainwindow.h>
+#ifdef Q_OS_SYMBIAN
+#include <featmgr.h>
+#endif // Q_OS_SYMBIAN
+#include "dialpad.h"
 #include "dialpadkeyhandler.h"
 #include "dialpadvoicemailboxeventfilter.h"
+#include "dialpadvideomailboxeventfilter.h"
 #include "dialpadbluetootheventfilter.h"
 #include "dialpadkeysequenceeventfilter.h"
+#include "dialpademergencycalleventfilter.h"
 #include "qtphonesrvlog.h"
 
 DialpadKeyHandler::DialpadKeyHandler(
@@ -28,21 +34,81 @@
     QObject(parent),
 	mMainWindow(mainWindow),
 	mVmbxFilter(0),
+	mVideoVmbxFilter(0),
 	mBtFilter(0),
-	mKeySequenceFilter(0)
+	mKeySequenceFilter(0),
+	mEmergencyCallFilter(0)
 {
     PHONE_TRACE;
+
+    // Variations
+    bool isVideoMailboxSupported = false;
+#ifdef Q_OS_SYMBIAN
+    isVideoMailboxSupported = FeatureManager::FeatureSupported(KFeatureIdCsVideoTelephony);
+#endif // Q_OS_SYMBIAN
     
     mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
+    if (isVideoMailboxSupported) {
+        mVideoVmbxFilter.reset(new DialpadVideoMailboxEventFilter(dialPad));
+    }
     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
-    
+
     // Stack different event filters
     mMainWindow.installEventFilter(mVmbxFilter.data());
+    if (isVideoMailboxSupported) {
+        mMainWindow.installEventFilter(mVideoVmbxFilter.data());    
+    }
     mMainWindow.installEventFilter(mBtFilter.data());
     mMainWindow.installEventFilter(mKeySequenceFilter.data());
 }
 
+
+DialpadKeyHandler::DialpadKeyHandler(
+    Dialpad *dialPad, 
+    DialpadKeyHandler::DialpadKeyEventFilters filters, 
+    QObject *parent) 
+    : 
+    QObject(parent),
+    mMainWindow(*(dialPad->mainWindow())),
+    mVmbxFilter(0),
+    mVideoVmbxFilter(0),
+    mBtFilter(0),
+    mKeySequenceFilter(0),
+    mEmergencyCallFilter(0)
+{
+    PHONE_TRACE;
+    
+    if (filters.testFlag(VoiceMailbox)) {
+        mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
+        mMainWindow.installEventFilter(mVmbxFilter.data());
+    }
+    
+    if (filters.testFlag(VideoMailBox)) {
+        mVideoVmbxFilter.reset(
+            new DialpadVideoMailboxEventFilter(dialPad));
+        mMainWindow.installEventFilter(mVideoVmbxFilter.data());
+    }
+    
+    if (filters.testFlag(Bluetooth)) {
+        mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
+        mMainWindow.installEventFilter(mBtFilter.data());
+    }
+    
+    if (filters.testFlag(KeySequence)) {
+        mKeySequenceFilter.reset(
+            new DialpadKeySequenceEventFilter(dialPad));
+        mMainWindow.installEventFilter(mKeySequenceFilter.data());
+    }
+    
+    if (filters.testFlag(EmergencyCall)) {
+        mEmergencyCallFilter.reset(
+            new DialpadEmergencyCallEventFilter(dialPad));
+        mMainWindow.installEventFilter(mEmergencyCallFilter.data());
+    }
+}
+
+
 DialpadKeyHandler::~DialpadKeyHandler()
 {
 }
--- a/telutils/dialpad/src/dialpadkeypad.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadkeypad.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -97,7 +97,6 @@
             button->setIcon(mboxIcon);
         }
 
-        // for Yes-key clicked() signal is enough
         if (keyCode!=Qt::Key_Yes) {
             connect(button,SIGNAL(pressed()),
                     mKeyPressedSignalMapper,SLOT(map()));
@@ -106,6 +105,11 @@
             connect(button,SIGNAL(released()),
                     mKeyReleasedSignalMapper,SLOT(map()));
             mKeyReleasedSignalMapper->setMapping(button,keyCode);
+        } else {
+            // for Yes-key longPress() functionality is same as clicked()
+            connect(button,SIGNAL(longPress(QPointF)),
+                    mKeyClickedSignalMapper,SLOT(map()));
+            mKeyClickedSignalMapper->setMapping(button,keyCode);
         }
 
         connect(button,SIGNAL(clicked()),mKeyClickedSignalMapper,SLOT(map()));
--- a/telutils/dialpad/src/dialpadkeysequenceeventfilter.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadkeysequenceeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -69,7 +69,7 @@
         Qt::Key_NumberSign == keyCode &&
         preValidateKeySequence(keySequenceCandidate)) {
         XQServiceRequest request(
-            "com.nokia.services.telephony",
+            "com.nokia.symbian.IDtmfPlay",
             "executeKeySequence(QString)",
             true);
         
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpadmailboxeventfilterbase.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+#include <QTimer>
+#include <QKeyEvent>
+#include <hblineedit.h>
+#include <hbstringutil.h>
+#include "dialpadmailboxeventfilterbase.h"
+#include "dialpadsymbianwrapper.h"
+#include "dialpad.h"
+#include "qtphonesrvlog.h"
+
+#ifdef Q_OS_SYMBIAN
+#include <xqservicerequest.h>
+#include <xqserviceutil.h>
+#endif //Q_OS_SYMBIAN
+
+const int DialpadLongKeyPressButtonCount(2);
+static const int DialpadLongKeyPressSupportingButtons[DialpadLongKeyPressButtonCount] =
+{ Qt::Key_1, Qt::Key_2 };
+
+
+DialpadMailboxEventFilterBase::DialpadMailboxEventFilterBase(Dialpad* dialpad, QObject* parent) :
+    QObject(parent), mDialpad(dialpad), mKeyEvent(NULL)
+{
+    PHONE_TRACE;
+    mLongPressTimer = new QTimer(this);
+    mLongPressTimer->setSingleShot(true);
+    connect(mLongPressTimer,SIGNAL(timeout()),this,SLOT(handleLongKeyPress()));
+    mSymbianWrapper = new DialpadSymbianWrapper(this);
+}
+
+DialpadMailboxEventFilterBase::~DialpadMailboxEventFilterBase()
+{
+}
+
+bool DialpadMailboxEventFilterBase::checkIfSendEventAndConsumeEvent(const int pressedKey, const int eventType)
+{
+    PHONE_TRACE4("pressedKey:", pressedKey, "eventType:", eventType);
+    bool sendKeyHandled(false);
+    // first check that pressed key is send key.
+    if (pressedKey == Qt::Key_Yes ||
+        pressedKey == Qt::Key_Enter) {
+       if (eventType == QEvent::KeyPress) {
+           sendKeyHandled = handleCallButtonPress();
+       } else if ((eventType == QEvent::KeyRelease) &&
+                  (!mDialpad->editor().text().isEmpty())) {
+           sendKeyHandled = true;
+       }
+    }
+    return sendKeyHandled;
+}
+
+bool DialpadMailboxEventFilterBase::isLongKeyPressSupported(const int key)
+{
+    PHONE_TRACE2("key:", key);
+    bool longKeySupport(false);
+    // check if dialpad button is pressed.
+    for (int i = 0; i < DialpadLongKeyPressButtonCount; i++) {
+        if (key==DialpadLongKeyPressSupportingButtons[i]) {
+            longKeySupport = true;
+            // Save key code for handleCallButtonPress.
+            mKeyEvent = key;
+        }
+    }
+    return longKeySupport;
+}
+
+void DialpadMailboxEventFilterBase::clearEditor()
+{
+    PHONE_TRACE;
+    // Erase data from dialpad editor.
+    mDialpad->editor().setText(QString(""));
+}
+
+void DialpadMailboxEventFilterBase::createCall(const QString &phoneNumber, bool createVideoCall)
+{
+    PHONE_TRACE2("phoneNumber:", phoneNumber);
+#ifdef Q_OS_SYMBIAN
+    if(createVideoCall) {
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVideo(QString)", false);
+        snd << phoneNumber;
+        QVariant retValue;
+        snd.send(retValue);    	
+    } else {
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)", false);
+        snd << phoneNumber;
+        QVariant retValue;
+        snd.send(retValue);
+    }
+#endif // Q_OS_SYMBIAN
+}
--- a/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -36,9 +36,18 @@
     return d_ptr->getMailboxNumber(vmbxNumber);
 }
 
+int DialpadSymbianWrapper::getVideoMailboxNumber(QString &vmbxNumber)
+{
+    return d_ptr->getVideoMailboxNumber(vmbxNumber);
+}
+
 int DialpadSymbianWrapper::defineMailboxNumber(QString &vmbxNumber)
 {
     //Q_D(DialpadSymbianWrapper);
     return d_ptr->defineMailboxNumber(vmbxNumber);
 }
 
+int DialpadSymbianWrapper::defineVideoMailboxNumber(QString &vmbxNumber)
+{
+    return d_ptr->defineVideoMailboxNumber(vmbxNumber);
+}
--- a/telutils/dialpad/src/dialpadsymbianwrapper_p.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadsymbianwrapper_p.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -38,10 +38,11 @@
     int errValue(KErrNone);
     CVoiceMailboxEntry* vmbxEntry = NULL;
     TVoiceMailboxParams vmbxParams;
-    errValue = mVmbx->QueryVmbxType( vmbxParams );
+    vmbxParams.iType = EVmbxVoice;
+
+    errValue = mVmbx->GetStoredEntry(vmbxParams, vmbxEntry);
     
-    if ((KErrNone == errValue) && 
-        (KErrNone == mVmbx->GetStoredEntry(vmbxParams, vmbxEntry))) { 
+    if (KErrNone == errValue) {
         // Number retrieved succesfully:
         vmbxNumber = getVmbxNumber(*vmbxEntry);
      }
@@ -51,21 +52,54 @@
     return errValue;
 }
 
+int DialpadSymbianWrapperPrivate::getVideoMailboxNumber(QString &vmbxNumber)
+{
+    int errValue(KErrNone);
+    CVoiceMailboxEntry* vmbxEntry = NULL;
+    TVoiceMailboxParams vmbxParams;
+    vmbxParams.iType = EVmbxVideo;
+    
+    errValue = mVmbx->GetStoredEntry(vmbxParams, vmbxEntry);
+    
+    if (KErrNone == errValue) {
+        // Number retrieved succesfully:
+        vmbxNumber = getVmbxNumber(*vmbxEntry);
+     }
+    // Entry ownership was transferred.
+    delete vmbxEntry;
+    vmbxEntry = NULL;
+    return errValue;		
+}
 
 int DialpadSymbianWrapperPrivate::defineMailboxNumber(QString &vmbxNumber)
 {
     CVoiceMailboxEntry* vmbxEntry = NULL;
     TVoiceMailboxParams vmbxParams;
-    int errValue = mVmbx->QueryVmbxType( vmbxParams );
-    
-    if ((KErrNotFound == errValue)) {
-        errValue = mVmbx->QueryNewEntry(vmbxParams, vmbxEntry);
-        if (KErrNone == errValue) {
-            mVmbx->SaveEntry(*vmbxEntry);
-            // Do appropriate tasks, e.g. save number.
-            vmbxNumber = getVmbxNumber(*vmbxEntry);
-        }
+    vmbxParams.iType = EVmbxVoice;
+
+    int errValue = mVmbx->QueryNewEntry(vmbxParams, vmbxEntry);
+    if (KErrNone == errValue) {
+        mVmbx->SaveEntry(*vmbxEntry);
+        // Do appropriate tasks, e.g. save number.
+        vmbxNumber = getVmbxNumber(*vmbxEntry);
     }
+
+    return errValue;
+}
+
+int DialpadSymbianWrapperPrivate::defineVideoMailboxNumber(QString &vmbxNumber)
+{
+    CVoiceMailboxEntry* vmbxEntry = NULL;
+    TVoiceMailboxParams vmbxParams;
+    vmbxParams.iType = EVmbxVideo;
+
+    int errValue = mVmbx->QueryNewEntry(vmbxParams, vmbxEntry);
+    if (KErrNone == errValue) {
+        mVmbx->SaveEntry(*vmbxEntry);
+        // Do appropriate tasks, e.g. save number.
+        vmbxNumber = getVmbxNumber(*vmbxEntry);
+    }
+
     return errValue;
 }
 
--- a/telutils/dialpad/src/dialpadsymbianwrapper_p_stub.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadsymbianwrapper_p_stub.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -48,6 +48,11 @@
     return errValue;
 }
 
+int DialpadSymbianWrapperPrivate::getVideoMailboxNumber(QString &vmbxNumber)
+{
+    return getMailboxNumber(vmbxNumber);
+}
+
 int DialpadSymbianWrapperPrivate::defineMailboxNumber(QString &vmbxNumber)
 {
     int errValue(0);
@@ -69,3 +74,8 @@
     mTimes++;
     return errValue;
 }
+
+int DialpadSymbianWrapperPrivate::defineVideoMailboxNumber(QString &vmbxNumber)
+{
+    return defineMailboxNumber(vmbxNumber);	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpadvideomailboxeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+#include <qtimer>
+#include <qkeyevent>
+#include <hblineedit.h>
+#include <hbstringutil.h>
+#include "dialpadvideomailboxeventfilter.h"
+#include "dialpadsymbianwrapper.h"
+#include "dialpad.h"
+#include "qtphonesrvlog.h"
+
+#ifdef Q_OS_SYMBIAN
+#include <xqservicerequest.h>
+#include <xqserviceutil.h>
+#endif //Q_OS_SYMBIAN
+
+const QString VideoVmbxCharacter("2");
+
+DialpadVideoMailboxEventFilter::DialpadVideoMailboxEventFilter(Dialpad* dialpad, QObject* parent) :
+    DialpadMailboxEventFilterBase(dialpad, parent)
+{
+}
+
+DialpadVideoMailboxEventFilter::~DialpadVideoMailboxEventFilter()
+{
+}
+
+bool DialpadVideoMailboxEventFilter::eventFilter(QObject *watched, QEvent *event)
+{
+    Q_UNUSED(watched)
+    bool keyEventEaten(false);
+    
+    QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+    const int keyCode = keyEvent->key();
+    const int eventType = event->type();
+
+    if (eventType == QEvent::KeyPress) {
+        if (checkIfSendEventAndConsumeEvent(keyCode, eventType)) {
+            keyEventEaten = true;
+        } else if ((isLongKeyPressSupported(keyCode)) &&
+                !(mDialpad->editor().text().length() >= 1)) {
+            //Check that there is only one item in dialpad, if there is more than one
+            //do not handle long key press.
+            mLongPressTimer->stop();
+            mLongPressTimer->start(DialpadLongKeyPressTimeOut);
+        }
+    } else if (eventType == QEvent::KeyRelease) {
+        if (checkIfSendEventAndConsumeEvent(keyCode, eventType)) {
+            keyEventEaten = true;
+        } else if (isLongKeyPressSupported(keyCode)){
+            mLongPressTimer->stop();
+        }
+    }
+
+    return keyEventEaten;
+}
+
+void DialpadVideoMailboxEventFilter::handleLongKeyPress()
+{
+    PHONE_TRACE;
+    switch(mKeyEvent) {
+    case Qt::Key_2:{
+       handleMailboxOperation();
+       break;
+       }
+   default:
+       // Do nothing.
+       break;
+    }
+
+    // Reset key code.
+    mKeyEvent = NULL;
+}
+
+bool DialpadVideoMailboxEventFilter::handleCallButtonPress()
+{
+    PHONE_TRACE;
+    bool callButtonhandled(false);
+    if (!mDialpad->editor().text().isEmpty()) {
+#ifdef Q_OS_SYMBIAN
+        // check if editor has '2' character if does then
+        // get MailboxNumber.
+        QString editorContent = HbStringUtil::convertDigitsTo(
+            mDialpad->editor().text(), WesternDigit);
+        if (VideoVmbxCharacter==editorContent) {
+            handleMailboxOperation();
+            callButtonhandled = true;
+        }
+#endif //Q_OS_SYMBIAN
+    }
+    return callButtonhandled;
+}
+
+void DialpadVideoMailboxEventFilter::handleMailboxOperation()
+{
+    PHONE_TRACE;
+    QString mailboxNumber;
+    int error = mSymbianWrapper->getVideoMailboxNumber(mailboxNumber);
+    // If here is no vmbx number and dialpad must start vmbx number definition procedures.
+    if (DialpadErrorNone != error || mailboxNumber.length() == 0) {
+        mDialpad->closeDialpad();
+        // If define mailbox query was interupted than reopen dialpad.
+        error = mSymbianWrapper->defineVideoMailboxNumber(mailboxNumber);
+        if (DialpadErrorCancel == error) {
+            mDialpad->openDialpad();
+        }
+    }
+
+    // Valid vmbx number found or defined and there vmbx didnt
+    // return error values then create a call.
+    if ((DialpadErrorNone == error) &&
+        (mailboxNumber.length() != 0)) {
+        createCall(mailboxNumber, true);
+        clearEditor();
+        mDialpad->openDialpad();
+    }
+}
--- a/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <QTimer>
-#include <QKeyEvent>
+#include <qtimer>
+#include <qkeyevent>
 #include <hblineedit.h>
 #include <hbstringutil.h>
 #include "dialpadvoicemailboxeventfilter.h"
@@ -28,27 +28,11 @@
 #include <xqserviceutil.h>
 #endif //Q_OS_SYMBIAN
 
-const int DialpadLongKeyPressTimeOut(1000);
 const QString VmbxCharacter("1");
 
-enum err {
-    DialpadErrorNone = 0,
-    DialpadErrorCancel = -3
-};
-
-const int DialpadLongKeyPressButtonCount(1);
-static const int DialpadLongKeyPressSupportingButtons[DialpadLongKeyPressButtonCount] =
-{ Qt::Key_1 };
-
-
 DialpadVoiceMailboxEventFilter::DialpadVoiceMailboxEventFilter(Dialpad* dialpad, QObject* parent) :
-    QObject(parent), mDialpad(dialpad), mKeyEvent(NULL)
+    DialpadMailboxEventFilterBase(dialpad, parent)
 {
-    PHONE_TRACE;
-    mLongPressTimer = new QTimer(this);
-    mLongPressTimer->setSingleShot(true);
-    connect(mLongPressTimer,SIGNAL(timeout()),this,SLOT(handleLongKeyPress()));
-    mSymbianWrapper = new DialpadSymbianWrapper(this);
 }
 
 DialpadVoiceMailboxEventFilter::~DialpadVoiceMailboxEventFilter()
@@ -85,38 +69,6 @@
     return keyEventEaten;
 }
 
-bool DialpadVoiceMailboxEventFilter::checkIfSendEventAndConsumeEvent(const int pressedKey, const int eventType)
-{
-    PHONE_TRACE4("pressedKey:", pressedKey, "eventType:", eventType);
-    bool sendKeyHandled(false);
-    // first check that pressed key is send key.
-    if (pressedKey == Qt::Key_Yes ||
-        pressedKey == Qt::Key_Enter) {
-       if (eventType == QEvent::KeyPress) {
-           sendKeyHandled = handleCallButtonPress();
-       } else if ((eventType == QEvent::KeyRelease) &&
-                  (!mDialpad->editor().text().isEmpty())) {
-           sendKeyHandled = true;
-       }
-    }
-    return sendKeyHandled;
-}
-
-bool DialpadVoiceMailboxEventFilter::isLongKeyPressSupported(const int key)
-{
-    PHONE_TRACE2("key:", key);
-    bool longKeySupport(false);
-    // check if dialpad button is pressed.
-    for (int i = 0; i < DialpadLongKeyPressButtonCount; i++) {
-        if (key==DialpadLongKeyPressSupportingButtons[i]) {
-            longKeySupport = true;
-            // Save key code for handleCallButtonPress.
-            mKeyEvent = key;
-        }
-    }
-    return longKeySupport;
-}
-
 void DialpadVoiceMailboxEventFilter::handleLongKeyPress()
 {
     PHONE_TRACE;
@@ -156,10 +108,10 @@
 void DialpadVoiceMailboxEventFilter::handleMailboxOperation()
 {
     PHONE_TRACE;
-    QString mailboxNumber(NULL);
+    QString mailboxNumber;
     int error = mSymbianWrapper->getMailboxNumber(mailboxNumber);
     // If here is no vmbx number and dialpad must start vmbx number definition procedures.
-    if (DialpadErrorNone != error) {
+    if (DialpadErrorNone != error || mailboxNumber.length() == 0) {
         mDialpad->closeDialpad();
         // If define mailbox query was interupted than reopen dialpad.
         error = mSymbianWrapper->defineMailboxNumber(mailboxNumber);
@@ -176,21 +128,3 @@
         mDialpad->openDialpad();
     }
 }
-
-void DialpadVoiceMailboxEventFilter::clearEditor()
-{
-    PHONE_TRACE;
-    // Erase data from dialpad editor.
-    mDialpad->editor().setText(NULL);
-}
-
-void DialpadVoiceMailboxEventFilter::createCall(const QString &phoneNumber)
-{
-    PHONE_TRACE2("phoneNumber:", phoneNumber);
-#ifdef Q_OS_SYMBIAN
-    XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)", false);
-    snd << phoneNumber;
-    QVariant retValue;
-    snd.send(retValue);
-#endif // Q_OS_SYMBIAN
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpadvtkeyhandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,43 @@
+/*!
+* Copyright (c) 2010 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: Custom button
+*
+*/
+
+#include <hbmainwindow.h>
+#include "dialpadvtkeyhandler.h"
+#include "dialpadkeysequenceeventfilter.h"
+#include "dialpademergencycalleventfilter.h"
+#include "qtphonesrvlog.h"
+
+DialpadVtKeyHandler::DialpadVtKeyHandler(
+    Dialpad *dialPad, HbMainWindow& mainWindow, QObject *parent) 
+    : 
+    QObject(parent),
+    mMainWindow(mainWindow),
+    mEmergencyCallFilter(0),
+    mKeySequenceFilter(0)
+{
+    PHONE_TRACE;
+    mEmergencyCallFilter = new DialpadEmergencyCallEventFilter(dialPad, this);
+    mKeySequenceFilter = new DialpadKeySequenceEventFilter(dialPad, this);
+    
+    // Stack different event filters
+    mMainWindow.installEventFilter(mKeySequenceFilter);
+    mMainWindow.installEventFilter(mEmergencyCallFilter);
+}
+
+DialpadVtKeyHandler::~DialpadVtKeyHandler()
+{
+}
--- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -101,10 +101,7 @@
 
 void DialpadTestView::setDialpadPosition()
 {
-    // workaround to tsw error JMKN-83NAPU (fix coming in MCL wk14)
-    // QRectF screenRect(mMainWindow.layoutRect());
-    QRectF screenRect = (mMainWindow.orientation() == Qt::Horizontal) ?
-                        QRectF(0,0,640,360) : QRectF(0,0,360,640);
+    QRectF screenRect(mMainWindow.layoutRect());
 
     if (mMainWindow.orientation() == Qt::Horizontal) {
         // dialpad takes half of the screen
@@ -210,20 +207,15 @@
 
 void DialpadTestView::handleLongKeyPress()
 {
-    HbMessageBox msgBox;
     QString msg;
     msg.append("Long press: ");
     msg.append(mPressedKey);
 
-    msgBox.setText(msg);
-    msgBox.setTimeout(3000);
-
-    msgBox.show();
+    HbMessageBox::information(msg);
 }
 
 void DialpadTestView::handleDial()
 {
-    HbMessageBox msgBox;
     QString msg;
     if (mDialpad->editor().text().length()) {
         msg.append("Dialing to number: ");
@@ -232,10 +224,7 @@
         msg.append("Please, enter phone number first");
     }
 
-    msgBox.setText(msg);
-    msgBox.setTimeout(3000);
-
-    msgBox.show();
+    HbMessageBox::information(msg);
 }
 
 void DialpadTestView::setTapOutsideDismiss()
--- a/telutils/dialpad/tsrc/unit/mt_dialpad/mt_dialpad.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/mt_dialpad/mt_dialpad.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -377,10 +377,15 @@
     QTest::qWait( WAIT_TIME );
     mouseClickDialpad(Qt::Key_5, Press);
     QTest::qWait( LONGPRESS_DURATION );
-    HbMessageBox dlg("Dialpad test dialog");
-    dlg.setTimeout(500);
-    dlg.exec();
+
+    HbMessageBox* box = new HbMessageBox("Test dialog!");
+    box->show();
+    QTest::qWait( 500 );
+
     mouseClickDialpad(Qt::Key_5, Release);
+    QTest::qWait( 100 );
+    delete box;
+
     QVERIFY(mDialpad->editor().text()=="5");
     QVERIFY(mKeyCatcher->mKeyPresses.at(0)==Qt::Key_5);
     QVERIFY(mKeyCatcher->mKeyReleases.at(0)==Qt::Key_5);
--- a/telutils/dialpad/tsrc/unit/runall.cmd	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/runall.cmd	Thu Jun 24 13:58:21 2010 +0100
@@ -17,18 +17,19 @@
 @echo off
 
 if "%1"=="winscw" (
-call runtest.cmd ut_dialpadbuttonstyle
+call runtest.cmd ut_dialpademergencycalleventfilter
 call runtest.cmd ut_dialpadmultitaphandler
 call runtest.cmd mt_dialpad
 call runtest.cmd ut_dialpadvoicemailboxeventfilter
+call runtest.cmd ut_dialpadvideomailboxeventfilter
 call runtest.cmd mt_keyhandler
 call runtest.cmd ut_dialpadbluetootheventfilter
 call runtest.cmd ut_dialpadkeysequenceeventfilter
+call runtest.cmd ut_dialpadkeyhandler
 )
 
 @echo off
 if "%1"=="win32" (
-call runtest_w32.cmd ut_dialpadbuttonstyle
 call runtest_w32.cmd ut_dialpadmultitaphandler
 call runtest_w32.cmd mt_dialpad
 )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadbluetootheventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <QEvent>
+#include <smcmockclassincludes.h>
+#include "dialpadbluetootheventfilter.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadBluetoothEventFilter::DialpadBluetoothEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadBluetoothEventFilter::DialpadBluetoothEventFilter( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    Q_UNUSED(dialpad)
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadBluetoothEventFilter::~DialpadBluetoothEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadBluetoothEventFilter::~DialpadBluetoothEventFilter(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadBluetoothEventFilter::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadBluetoothEventFilter::eventFilter( 
+        QObject * watched,
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD2( bool, QObject *, watched, 
+        QEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadBluetoothEventFilter::toggleBluetooth
+// -----------------------------------------------------------------------------
+//
+void DialpadBluetoothEventFilter::toggleBluetooth()
+{
+    SMC_MOCK_METHOD0( void )
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpademergencycalleventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <QEvent>
+#include <smcmockclassincludes.h>
+#include "dialpademergencycalleventfilter.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadEmergencyCallEventFilter::DialpadEmergencyCallEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadEmergencyCallEventFilter::DialpadEmergencyCallEventFilter( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    Q_UNUSED(dialpad)
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadEmergencyCallEventFilter::~DialpadEmergencyCallEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadEmergencyCallEventFilter::~DialpadEmergencyCallEventFilter(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadEmergencyCallEventFilter::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadEmergencyCallEventFilter::eventFilter( 
+        QObject * watched,
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD2( bool, QObject *, watched, 
+        QEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadEmergencyCallEventFilter::editorTextChanged
+// -----------------------------------------------------------------------------
+//
+void DialpadEmergencyCallEventFilter::editorTextChanged(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadkeysequenceeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <QEvent>
+#include <smcmockclassincludes.h>
+#include "dialpadkeysequenceeventfilter.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadKeySequenceEventFilter::DialpadKeySequenceEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadKeySequenceEventFilter::DialpadKeySequenceEventFilter( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    Q_UNUSED(dialpad)
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadKeySequenceEventFilter::~DialpadKeySequenceEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadKeySequenceEventFilter::~DialpadKeySequenceEventFilter(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadKeySequenceEventFilter::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadKeySequenceEventFilter::eventFilter( 
+        QObject * watched,
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD2( bool, QObject *, watched, 
+        QEvent *, event )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadmailboxeventfilterbase.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <QEvent>
+#include <smcmockclassincludes.h>
+#include "dialpadmailboxeventfilterbase.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::DialpadMailboxEventFilterBase
+// -----------------------------------------------------------------------------
+//
+DialpadMailboxEventFilterBase::DialpadMailboxEventFilterBase( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    Q_UNUSED(dialpad)
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::~DialpadMailboxEventFilterBase
+// -----------------------------------------------------------------------------
+//
+DialpadMailboxEventFilterBase::~DialpadMailboxEventFilterBase(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadMailboxEventFilterBase::eventFilter( 
+        QObject * watched,
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD2( bool, QObject *, watched, 
+        QEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::isLongKeyPressSupported
+// -----------------------------------------------------------------------------
+//
+bool DialpadMailboxEventFilterBase::isLongKeyPressSupported( 
+        const int key )
+    {
+    SMC_MOCK_METHOD1( bool, const int, key )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::checkIfSendEventAndConsumeEvent
+// -----------------------------------------------------------------------------
+//
+bool DialpadMailboxEventFilterBase::checkIfSendEventAndConsumeEvent( 
+        const int pressedKey,
+        const int eventType )
+    {
+    SMC_MOCK_METHOD2( bool, const int, pressedKey, 
+        const int, eventType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::handleCallButtonPress
+// -----------------------------------------------------------------------------
+//
+bool DialpadMailboxEventFilterBase::handleCallButtonPress(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::clearEditor
+// -----------------------------------------------------------------------------
+//
+void DialpadMailboxEventFilterBase::clearEditor(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::createCall
+// -----------------------------------------------------------------------------
+//
+void DialpadMailboxEventFilterBase::createCall( 
+        const QString & phoneNumber,
+        bool createVideoCall )
+    {
+    SMC_MOCK_METHOD2( void, const QString &, phoneNumber, 
+        bool, createVideoCall )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::handleMailboxOperation
+// -----------------------------------------------------------------------------
+//
+void DialpadMailboxEventFilterBase::handleMailboxOperation(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadMailboxEventFilterBase::handleLongKeyPress
+// -----------------------------------------------------------------------------
+//
+void DialpadMailboxEventFilterBase::handleLongKeyPress(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadvideomailboxeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <QEvent>
+#include <smcmockclassincludes.h>
+#include "dialpadvideomailboxeventfilter.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadVideoMailboxEventFilter::DialpadVideoMailboxEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadVideoMailboxEventFilter::DialpadVideoMailboxEventFilter( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    DialpadMailboxEventFilterBase( dialpad, parent )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVideoMailboxEventFilter::~DialpadVideoMailboxEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadVideoMailboxEventFilter::~DialpadVideoMailboxEventFilter(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVideoMailboxEventFilter::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadVideoMailboxEventFilter::eventFilter( 
+        QObject * watched,
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD2( bool, QObject *, watched, 
+        QEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVideoMailboxEventFilter::handleCallButtonPress
+// -----------------------------------------------------------------------------
+//
+bool DialpadVideoMailboxEventFilter::handleCallButtonPress(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVideoMailboxEventFilter::handleMailboxOperation
+// -----------------------------------------------------------------------------
+//
+void DialpadVideoMailboxEventFilter::handleMailboxOperation(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVideoMailboxEventFilter::handleLongKeyPress
+// -----------------------------------------------------------------------------
+//
+void DialpadVideoMailboxEventFilter::handleLongKeyPress(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadvoicemailboxeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <QEvent>
+#include <smcmockclassincludes.h>
+#include "dialpadvoicemailboxeventfilter.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadVoiceMailboxEventFilter::DialpadVoiceMailboxEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadVoiceMailboxEventFilter::DialpadVoiceMailboxEventFilter( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    DialpadMailboxEventFilterBase( dialpad, parent )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVoiceMailboxEventFilter::~DialpadVoiceMailboxEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadVoiceMailboxEventFilter::~DialpadVoiceMailboxEventFilter(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVoiceMailboxEventFilter::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadVoiceMailboxEventFilter::eventFilter( 
+        QObject * watched,
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD2( bool, QObject *, watched, 
+        QEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVoiceMailboxEventFilter::handleCallButtonPress
+// -----------------------------------------------------------------------------
+//
+bool DialpadVoiceMailboxEventFilter::handleCallButtonPress(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVoiceMailboxEventFilter::handleMailboxOperation
+// -----------------------------------------------------------------------------
+//
+void DialpadVoiceMailboxEventFilter::handleMailboxOperation(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadVoiceMailboxEventFilter::handleLongKeyPress
+// -----------------------------------------------------------------------------
+//
+void DialpadVoiceMailboxEventFilter::handleLongKeyPress(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_featmgr.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <smcmockclassincludes.h>
+#include <featmgr/featmgr.h>
+#include <featmgr/featurecontrol.h>
+#include <e32std.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// FeatureManager::FeatureManager
+// -----------------------------------------------------------------------------
+//
+FeatureManager::FeatureManager(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// FeatureManager::InitializeLibL
+// -----------------------------------------------------------------------------
+//
+void FeatureManager::InitializeLibL(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// FeatureManager::UnInitializeLib
+// -----------------------------------------------------------------------------
+//
+void FeatureManager::UnInitializeLib(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// FeatureManager::FeatureSupported
+// -----------------------------------------------------------------------------
+//
+TBool FeatureManager::FeatureSupported( 
+        TInt aFeature )
+    {
+    SMC_MOCK_METHOD1( TBool, TInt, aFeature )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_hbmainwindow.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,555 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include <hbmainwindow.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::HbMainWindow
+// -----------------------------------------------------------------------------
+//
+HbMainWindow::HbMainWindow( 
+        QWidget * parent,
+        Hb::WindowFlags windowFlags )
+    : d_ptr(NULL)
+    //QGraphicsView( /*parent, windowFlags*/ )
+    {
+    Q_UNUSED(parent)
+    Q_UNUSED(windowFlags)
+    }
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::~HbMainWindow
+// -----------------------------------------------------------------------------
+//
+HbMainWindow::~HbMainWindow(  )
+    {
+    
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::removeView
+// -----------------------------------------------------------------------------
+//
+QGraphicsWidget * HbMainWindow::removeView( 
+        int index )
+    {
+    SMC_MOCK_METHOD1( QGraphicsWidget *, int, index )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::currentViewIndex
+// -----------------------------------------------------------------------------
+//
+int HbMainWindow::currentViewIndex(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::viewCount
+// -----------------------------------------------------------------------------
+//
+int HbMainWindow::viewCount(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::indexOfView
+// -----------------------------------------------------------------------------
+//
+int HbMainWindow::indexOfView( 
+        HbView * view ) const
+    {
+    //SMC_MOCK_METHOD1( int, HbView *, view )
+    Q_UNUSED(view)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::viewAt
+// -----------------------------------------------------------------------------
+//
+HbView * HbMainWindow::viewAt( 
+        int index ) const
+    {
+    SMC_MOCK_METHOD1( HbView *, int, index )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::addView
+// -----------------------------------------------------------------------------
+//
+HbView * HbMainWindow::addView( 
+        QGraphicsWidget * widget )
+    {
+    //SMC_MOCK_METHOD1( HbView *, QGraphicsWidget *, widget )
+    Q_UNUSED(widget)
+    }
+// -----------------------------------------------------------------------------
+// HbMainWindow::insertView
+// -----------------------------------------------------------------------------
+//
+HbView * HbMainWindow::insertView( 
+        int index,
+        QGraphicsWidget * widget )
+    {
+    //SMC_MOCK_METHOD2( HbView *, int, index, 
+    //    QGraphicsWidget *, widget )
+	Q_UNUSED(index)
+	Q_UNUSED(widget)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::removeView
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::removeView( 
+        QGraphicsWidget * widget )
+    {
+    //SMC_MOCK_METHOD1( void, QGraphicsWidget *, widget )
+    Q_UNUSED(widget)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::views
+// -----------------------------------------------------------------------------
+//
+QList <HbView * > HbMainWindow::views(  ) const
+    {
+    //SMC_MOCK_METHOD0( QList <HbView * > )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::currentView
+// -----------------------------------------------------------------------------
+//
+HbView * HbMainWindow::currentView(  ) const
+    {
+    SMC_MOCK_METHOD0( HbView * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setCurrentView
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setCurrentView( 
+        HbView * view,
+        bool animate,
+        Hb::ViewSwitchFlags flags )
+    {
+    //SMC_MOCK_METHOD3( void, HbView *, view, 
+    //    bool, animate, 
+    //    Hb::ViewSwitchFlags, flags )
+    Q_UNUSED(view)
+    Q_UNUSED(animate)
+    Q_UNUSED(flags)
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::orientation
+// -----------------------------------------------------------------------------
+//
+Qt::Orientation HbMainWindow::orientation(  ) const
+    {
+    SMC_MOCK_METHOD0( Qt::Orientation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setOrientation
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setOrientation( 
+        Qt::Orientation orientation,
+        bool animate )
+    {
+    //SMC_MOCK_METHOD2( void, Qt::Orientation, orientation, 
+    //    bool, animate )
+    Q_UNUSED(orientation)
+    Q_UNUSED(animate)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::unsetOrientation
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::unsetOrientation( 
+        bool animate )
+    {
+    SMC_MOCK_METHOD1( void, bool, animate )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::showItems
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::showItems( 
+        Hb::SceneItems items )
+    {
+    //SMC_MOCK_METHOD1( void, Hb::SceneItems, items )
+    Q_UNUSED(items)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::hideItems
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::hideItems( 
+        Hb::SceneItems items )
+    {
+    //SMC_MOCK_METHOD1( void, Hb::SceneItems, items )
+    Q_UNUSED(items)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::visibleItems
+// -----------------------------------------------------------------------------
+//
+Hb::SceneItems HbMainWindow::visibleItems(  ) const
+    {
+    SMC_MOCK_METHOD0( Hb::SceneItems )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::isItemVisible
+// -----------------------------------------------------------------------------
+//
+bool HbMainWindow::isItemVisible( 
+        Hb::SceneItem item ) const
+    {
+    //SMC_MOCK_METHOD1( bool, Hb::SceneItem, item )
+    Q_UNUSED(item)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setItemVisible
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setItemVisible( 
+        Hb::SceneItem item,
+        bool visible )
+    {
+    //SMC_MOCK_METHOD2( void, Hb::SceneItem, item, 
+    //    bool, visible )
+    Q_UNUSED(item)
+    Q_UNUSED(visible)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::nativeBackgroundWindow
+// -----------------------------------------------------------------------------
+//
+WId HbMainWindow::nativeBackgroundWindow(  )
+    {
+    SMC_MOCK_METHOD0( WId )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::resetNativeBackgroundWindow
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::resetNativeBackgroundWindow(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::layoutRect
+// -----------------------------------------------------------------------------
+//
+QRectF HbMainWindow::layoutRect(  ) const
+    {
+    SMC_MOCK_METHOD0( QRectF )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setBackgroundImageName
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setBackgroundImageName( 
+        Qt::Orientation orientation,
+        const QString & name )
+    {
+    //SMC_MOCK_METHOD2( void, Qt::Orientation, orientation, 
+    //    const QString &, name )
+	Q_UNUSED(orientation)
+	Q_UNUSED(name)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::backgroundImageName
+// -----------------------------------------------------------------------------
+//
+QString HbMainWindow::backgroundImageName( 
+        Qt::Orientation orientation ) const
+    {
+    //SMC_MOCK_METHOD1( QString, Qt::Orientation, orientation )
+	Q_UNUSED(orientation)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setCurrentViewIndex
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setCurrentViewIndex( 
+        int index )
+    {
+    SMC_MOCK_METHOD1( void, int, index )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::nextView
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::nextView(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::previousView
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::previousView(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::broadcastEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::broadcastEvent( 
+        int eventType )
+    {
+    SMC_MOCK_METHOD1( void, int, eventType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::currentViewIndexChanged
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::currentViewIndexChanged( 
+        int index )
+    {
+    SMC_MOCK_METHOD1( void, int, index )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::viewReady
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::viewReady(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::aboutToChangeView
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::aboutToChangeView( 
+        HbView * oldView,
+        HbView * newView )
+    {
+    //SMC_MOCK_METHOD2( void, HbView *, oldView, 
+    //    HbView *, newView )
+	Q_UNUSED(oldView)
+	Q_UNUSED(newView)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::currentViewChanged
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::currentViewChanged( 
+        HbView * view )
+    {
+    //SMC_MOCK_METHOD1( void, HbView *, view )
+    Q_UNUSED(view)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::aboutToChangeOrientation
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::aboutToChangeOrientation(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::aboutToChangeOrientation
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::aboutToChangeOrientation( 
+        Qt::Orientation newOrientation,
+        bool animated )
+    {
+    //SMC_MOCK_METHOD2( void, Qt::Orientation, newOrientation, 
+    //    bool, animated )
+    Q_UNUSED(newOrientation)
+    Q_UNUSED(animated)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::orientationChanged
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::orientationChanged( 
+        Qt::Orientation orientation )
+    {
+    //SMC_MOCK_METHOD1( void, Qt::Orientation, orientation )
+    Q_UNUSED(orientation)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::changeEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::changeEvent( 
+        QEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::closeEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::closeEvent( 
+        QCloseEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QCloseEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::keyPressEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::keyPressEvent( 
+        QKeyEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QKeyEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::keyReleaseEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::keyReleaseEvent( 
+        QKeyEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QKeyEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::resizeEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::resizeEvent( 
+        QResizeEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QResizeEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::customEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::customEvent( 
+        QEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::scrollContentsBy
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::scrollContentsBy( 
+        int dx,
+        int dy )
+    {
+    SMC_MOCK_METHOD2( void, int, dx, 
+        int, dy )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::paintEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::paintEvent( 
+        QPaintEvent * event )
+    {
+    //SMC_MOCK_METHOD1( void, QPaintEvent *, event )
+    Q_UNUSED(event)
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_xqaiwinterfacedescriptor.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,181 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include <xqaiwinterfacedescriptor.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::XQAiwInterfaceDescriptor
+// -----------------------------------------------------------------------------
+//
+XQAiwInterfaceDescriptor::XQAiwInterfaceDescriptor(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::XQAiwInterfaceDescriptor
+// -----------------------------------------------------------------------------
+//
+XQAiwInterfaceDescriptor::XQAiwInterfaceDescriptor( 
+        const XQAiwInterfaceDescriptor & other )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::~XQAiwInterfaceDescriptor
+// -----------------------------------------------------------------------------
+//
+XQAiwInterfaceDescriptor::~XQAiwInterfaceDescriptor(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::=
+// -----------------------------------------------------------------------------
+//
+XQAiwInterfaceDescriptor & XQAiwInterfaceDescriptor::operator =( 
+        const XQAiwInterfaceDescriptor & other )
+    {
+    return *this;
+    //SMC_MOCK_METHOD1( XQAiwInterfaceDescriptor &, const XQAiwInterfaceDescriptor &, other )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::=
+// -----------------------------------------------------------------------------
+//
+bool XQAiwInterfaceDescriptor::operator==( 
+        const XQAiwInterfaceDescriptor & other ) const
+    {
+    SMC_MOCK_METHOD1( bool, const XQAiwInterfaceDescriptor &, other )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::serviceName
+// -----------------------------------------------------------------------------
+//
+QString XQAiwInterfaceDescriptor::serviceName(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::interfaceName
+// -----------------------------------------------------------------------------
+//
+QString XQAiwInterfaceDescriptor::interfaceName(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::majorVersion
+// -----------------------------------------------------------------------------
+//
+int XQAiwInterfaceDescriptor::majorVersion(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::minorVersion
+// -----------------------------------------------------------------------------
+//
+int XQAiwInterfaceDescriptor::minorVersion(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::isValid
+// -----------------------------------------------------------------------------
+//
+bool XQAiwInterfaceDescriptor::isValid(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::inSystemScope
+// -----------------------------------------------------------------------------
+//
+bool XQAiwInterfaceDescriptor::inSystemScope(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::property
+// -----------------------------------------------------------------------------
+//
+QVariant XQAiwInterfaceDescriptor::property( 
+        XQAiwInterfaceDescriptor::PropertyKey key ) const
+    {
+    SMC_MOCK_METHOD1( QVariant, XQAiwInterfaceDescriptor::PropertyKey, key )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::customProperty
+// -----------------------------------------------------------------------------
+//
+QString XQAiwInterfaceDescriptor::customProperty( 
+        const QString & key ) const
+    {
+    SMC_MOCK_METHOD1( QString, const QString &, key )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::customPropertyKeys
+// -----------------------------------------------------------------------------
+//
+QStringList XQAiwInterfaceDescriptor::customPropertyKeys(  ) const
+    {
+    SMC_MOCK_METHOD0( QStringList )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwInterfaceDescriptor::setProperty
+// -----------------------------------------------------------------------------
+//
+bool XQAiwInterfaceDescriptor::setProperty( 
+        XQAiwInterfaceDescriptor::PropertyKey key,
+        const QVariant value )
+    {
+    SMC_MOCK_METHOD2( bool, XQAiwInterfaceDescriptor::PropertyKey, key, 
+        const QVariant, value )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_xqaiwrequest.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,318 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <qglobal.h>
+#include <smcmockclassincludes.h>
+#include "xqaiwrequest.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation,
+        bool embedded )
+    :
+    QObject()
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const QUrl & uri,
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation )
+    :
+    QObject( )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const QFile & file,
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation )
+    :
+    QObject()
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const XQSharableFile & file,
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation )
+    :
+    QObject()
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::~XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::~XQAiwRequest(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::createAction
+// -----------------------------------------------------------------------------
+//
+QAction * XQAiwRequest::createAction(  )
+    {
+    SMC_MOCK_METHOD0( QAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setArguments
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setArguments( 
+        const QList<QVariant> & arguments )
+    {
+    SMC_MOCK_METHOD1( void, const QList<QVariant> &, arguments )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::lastError
+// -----------------------------------------------------------------------------
+//
+int XQAiwRequest::lastError(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::lastErrorMessage
+// -----------------------------------------------------------------------------
+//
+const QString & XQAiwRequest::lastErrorMessage(  ) const
+    {
+    SMC_MOCK_METHOD0( const QString & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::descriptor
+// -----------------------------------------------------------------------------
+//
+const XQAiwInterfaceDescriptor & XQAiwRequest::descriptor(  ) const
+    {
+    SMC_MOCK_METHOD0( const XQAiwInterfaceDescriptor & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::send
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::send(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::send
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::send( 
+        QVariant & returnValue )
+    {
+    SMC_MOCK_METHOD1( bool, QVariant &, returnValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setEmbedded
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setEmbedded( 
+        bool embedded )
+    {
+    SMC_MOCK_METHOD1( void, bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::isEmbedded
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::isEmbedded(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setOperation
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setOperation( 
+        const QString & operation )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, operation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::operation
+// -----------------------------------------------------------------------------
+//
+const QString & XQAiwRequest::operation(  ) const
+    {
+    SMC_MOCK_METHOD0( const QString & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setSynchronous
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setSynchronous( 
+        bool synchronous )
+    {
+    SMC_MOCK_METHOD1( void, bool, synchronous )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::isSynchronous
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::isSynchronous(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setBackground
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setBackground( 
+        bool background )
+    {
+    SMC_MOCK_METHOD1( void, bool, background )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::isBackground
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::isBackground(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setInfo
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setInfo( 
+        const XQRequestInfo & requestInfo )
+    {
+    SMC_MOCK_METHOD1( void, const XQRequestInfo &, requestInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::info
+// -----------------------------------------------------------------------------
+//
+XQRequestInfo XQAiwRequest::info(  ) const
+    {
+    SMC_MOCK_METHOD0( XQRequestInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::results
+// -----------------------------------------------------------------------------
+//
+const QVariant & XQAiwRequest::results(  ) const
+    {
+    SMC_MOCK_METHOD0( const QVariant & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::sendExecute
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::sendExecute(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::handleAsyncResponse
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::handleAsyncResponse(const QVariant& value)
+{
+    Q_UNUSED(value);
+}
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::sendFromAction
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::sendFromAction(bool checked)
+{
+    Q_UNUSED(checked);
+}
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::handleAsyncError
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::handleAsyncError(int err)
+{
+    Q_UNUSED(err);    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_xqappmgr.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,299 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include <xqaiwrequest.h>
+#include <xqaiwinterfacedescriptor.h>
+#include <QList>
+#include "xqappmgr.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::XQApplicationManager
+// -----------------------------------------------------------------------------
+//
+XQApplicationManager::XQApplicationManager(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::~XQApplicationManager
+// -----------------------------------------------------------------------------
+//
+XQApplicationManager::~XQApplicationManager(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QString & interface,
+        const QString & operation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const QString &, interface, 
+        const QString &, operation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const XQAiwInterfaceDescriptor & implementation,
+        const QString & operation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const XQAiwInterfaceDescriptor &, implementation, 
+        const QString &, operation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QString & service,
+        const QString & interface,
+        const QString & operation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD4( XQAiwRequest *, const QString &, service, 
+        const QString &, interface, 
+        const QString &, operation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QString & interface,
+        const QString & operation )
+    {
+    SMC_MOCK_METHOD2( QList <XQAiwInterfaceDescriptor >, const QString &, interface, 
+        const QString &, operation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QString & service,
+        const QString & interface,
+        const QString & operation )
+    {
+    SMC_MOCK_METHOD3( QList <XQAiwInterfaceDescriptor >, const QString &, service, 
+        const QString &, interface, 
+        const QString &, operation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QUrl & url,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD2( XQAiwRequest *, const QUrl &, url, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QUrl & url,
+        const XQAiwInterfaceDescriptor & implementation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const QUrl &, url, 
+        const XQAiwInterfaceDescriptor &, implementation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QFile & file,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD2( XQAiwRequest *, const QFile &, file, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QFile & file,
+        const XQAiwInterfaceDescriptor & implementation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const QFile &, file, 
+        const XQAiwInterfaceDescriptor &, implementation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QUrl & uri )
+    {
+    SMC_MOCK_METHOD1( QList <XQAiwInterfaceDescriptor >, const QUrl &, uri )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QFile & file )
+    {
+    SMC_MOCK_METHOD1( QList <XQAiwInterfaceDescriptor >, const QFile &, file )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const XQSharableFile & file )
+    {
+    SMC_MOCK_METHOD1( QList <XQAiwInterfaceDescriptor >, const XQSharableFile &, file )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const XQSharableFile & file,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD2( XQAiwRequest *, const XQSharableFile &, file, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const XQSharableFile & file,
+        const XQAiwInterfaceDescriptor & implementation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const XQSharableFile &, file, 
+        const XQAiwInterfaceDescriptor &, implementation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::lastError
+// -----------------------------------------------------------------------------
+//
+int XQApplicationManager::lastError(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::isRunning
+// -----------------------------------------------------------------------------
+//
+bool XQApplicationManager::isRunning( 
+        const XQAiwInterfaceDescriptor & implementation ) const
+    {
+    SMC_MOCK_METHOD1( bool, const XQAiwInterfaceDescriptor &, implementation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::getDrmAttributes
+// -----------------------------------------------------------------------------
+//
+bool XQApplicationManager::getDrmAttributes( 
+        const QFile & file,
+        const QList<int> & attributeNames,
+        QVariantList & attributeValues )
+    {
+    SMC_MOCK_METHOD3( bool, const QFile &, file, 
+        const QList<int> &, attributeNames, 
+        QVariantList &, attributeValues )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::getDrmAttributes
+// -----------------------------------------------------------------------------
+//
+bool XQApplicationManager::getDrmAttributes( 
+        const XQSharableFile & file,
+        const QList<int> & attributeNames,
+        QVariantList & attributeValues )
+    {
+    SMC_MOCK_METHOD3( bool, const XQSharableFile &, file, 
+        const QList<int> &, attributeNames, 
+        QVariantList &, attributeValues )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::status
+// -----------------------------------------------------------------------------
+//
+XQApplicationManager::ServiceStatus XQApplicationManager::status( 
+        const XQAiwInterfaceDescriptor & implementation )
+    {
+    SMC_MOCK_METHOD1( ServiceStatus, const XQAiwInterfaceDescriptor &, implementation )
+    }
+
+
--- a/telutils/dialpad/tsrc/unit/unit.pro	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/unit.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -16,11 +16,13 @@
 #
 
 TEMPLATE = subdirs
-SUBDIRS += ut_dialpadbuttonstyle
+SUBDIRS += ut_dialpademergencycalleventfilter
 SUBDIRS += ut_dialpadbutton
 SUBDIRS += ut_dialpadmultitaphandler
 SUBDIRS += ut_dialpadvoicemailboxeventfilter
+SUBDIRS += ut_dialpadvideomailboxeventfilter
 SUBDIRS += ut_dialpadbluetootheventfilter
 SUBDIRS += ut_dialpadkeysequenceeventfilter
+SUBDIRS += ut_dialpadkeyhandler
 SUBDIRS += mt_dialpad
 SUBDIRS += mt_keyhandler
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.cpp	Tue May 18 13:35:23 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*!
-* Copyright (c) 2009 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:
-*
-*/
-
-#include <QtGui>
-#include <QtTest/QtTest>
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbframeitem.h>
-#include <hbiconitem.h>
-#include <hbtextitem.h>
-#include <hbstyle.h>
-#include <hbstyleoptionpushbutton.h>
-#include <hbcolorscheme.h>
-
-#include "dialpadtest.h"
-#include "dialpadbuttonstyle.h"
-
-class ut_DialpadButtonStyle : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void cleanupTestCase();
-
-    void testPushButtonFrame();
-
-private:
-    DialpadButtonStyle *mStyle;
-};
-
-void ut_DialpadButtonStyle::initTestCase()
-{
-    mStyle = new DialpadButtonStyle();
-}
-
-void ut_DialpadButtonStyle::cleanupTestCase()
-{
-    delete mStyle;
-}
-
-void ut_DialpadButtonStyle::testPushButtonFrame()
-{
-    HbFrameItem* item = new HbFrameItem();
-    HbStyleOptionPushButton option;
-    option.backgroundFrameDrawer = 0;
-
-    // Enabled ON
-    option.state |= QStyle::State_On;
-    option.state |= QStyle::State_Enabled;
-
-    mStyle->setButtonStyle(DialpadButtonStyle::NormalButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_keypad_pressed");
-
-    mStyle->setButtonStyle(DialpadButtonStyle::FunctionButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_pressed");
-
-    mStyle->setButtonStyle(DialpadButtonStyle::CallButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_pressed");
-
-    // Enabled OFF
-    option.state &= ~QStyle::State_On;
-    option.state |= QStyle::State_Off;
-
-    mStyle->setButtonStyle(DialpadButtonStyle::NormalButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_keypad_normal");
-
-    mStyle->setButtonStyle(DialpadButtonStyle::FunctionButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_normal");
-
-    mStyle->setButtonStyle(DialpadButtonStyle::CallButtonStyle);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_normal");
-
-    // Disabled
-    option.state &= ~QStyle::State_Enabled;
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_disabled");
-
-    // Selected
-    option.state |= QStyle::State_Selected;
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_highlight");
-
-    delete item;
-
-    // exception type
-    HbIconItem* item2 = new HbIconItem();
-    mStyle->updatePrimitive(item2,HbStyle::P_PushButton_background,&option);
-    delete item2;
-}
-
-DIALPAD_TEST_MAIN(ut_DialpadButtonStyle)
-#include "ut_dialpadbuttonstyle.moc"
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.pro	Tue May 18 13:35:23 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#
-# Copyright (c) 2009 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:
-#
-#
-
-TEMPLATE = app
-TARGET = 
-DEPENDPATH += . ../../../src
-INCLUDEPATH += . ../../../inc ../shared
-CONFIG += hb qtestlib
-
-symbian {
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-} else:win32 {
-    DESTDIR = ./
-}
-
-SOURCES += ut_dialpadbuttonstyle.cpp \
-           ../../../src/dialpadbuttonstyle.cpp
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpademergencycalleventfilter/ut_dialpademergencycalleventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,200 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hbview.h>
+#include <hblineedit.h>
+#include <hbinstance.h>
+
+#ifdef Q_OS_SYMBIAN
+#include "xqservicerequest.h"
+#endif
+
+#include "dialpadtest.h"
+#include "dialpademergencycalleventfilter.h"
+#include "dialpad.h"
+
+const int WAIT_TIME = 300;
+QString mService;
+QString mMessage;
+bool mXQServiceConstructed;
+bool mSendCalled;
+
+#ifdef Q_OS_SYMBIAN
+XQServiceRequest::XQServiceRequest(const QString& service, const QString& message, const bool& synchronous) { mService=service; mMessage=message; mXQServiceConstructed=true; }
+XQServiceRequest::~XQServiceRequest() {}
+bool XQServiceRequest::send(QVariant& retValue) { mSendCalled=true; return true; }
+void XQServiceRequest::addArg(const QVariant& v) {}
+#endif
+
+// test cases
+class ut_DialpadEmergencyCallEventFilter : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void initTestCase();
+    void init();
+    void cleanupTestCase();
+    void cleanup();
+
+    // These are actual emergency call event filter unit tests
+    void testEmergencyCallEventFilter();
+
+private:
+    QGraphicsWidget* getWidgetByName(const QString& name);
+    void mouseClickDialpad(int key, bool pause=true);
+
+private:
+    HbMainWindow*  mMainWindow; 
+    Dialpad*       mDialpad;
+    DialpadEmergencyCallEventFilter *mEventFilter;
+    QMap<int,QString> mKeyNames;
+};
+
+void ut_DialpadEmergencyCallEventFilter::initTestCase()
+{
+    mMainWindow = new HbMainWindow;
+
+    mDialpad = new Dialpad();
+    mEventFilter = new DialpadEmergencyCallEventFilter(mDialpad, this);
+    //hbInstance->allMainWindows().at(0)->installEventFilter(mEventFilter);
+    mMainWindow->installEventFilter(mEventFilter);
+    
+    QRectF rect(mMainWindow->contentsRect());
+    rect.setHeight(rect.height()*0.7);
+    rect.moveTop((mMainWindow->contentsRect().height()-rect.height())/2);
+
+    mDialpad->setPreferredSize(mMainWindow->layoutRect().width(),
+                               mMainWindow->layoutRect().height()/2);
+    mDialpad->setPos(0,mMainWindow->layoutRect().height()/4);
+
+    mKeyNames.insert(Qt::Key_1,"49");
+    mKeyNames.insert(Qt::Key_2,"50");
+    mKeyNames.insert(Qt::Key_3,"51");
+    mKeyNames.insert(Qt::Key_4,"52");
+    mKeyNames.insert(Qt::Key_5,"53");
+    mKeyNames.insert(Qt::Key_6,"54");
+    mKeyNames.insert(Qt::Key_7,"55");
+    mKeyNames.insert(Qt::Key_8,"56");
+    mKeyNames.insert(Qt::Key_9,"57");
+    mKeyNames.insert(Qt::Key_Asterisk,"42");
+    mKeyNames.insert(Qt::Key_0,"48");
+    mKeyNames.insert(Qt::Key_NumberSign,"35");
+    mKeyNames.insert(Qt::Key_Backspace,"16777219");
+    mKeyNames.insert(Qt::Key_Yes,"16842753");
+
+    mMainWindow->show();
+    mDialpad->show();
+    mDialpad->hide();
+}
+
+void ut_DialpadEmergencyCallEventFilter::init()
+{
+    mService = QString("");
+    mMessage = QString("");
+    mXQServiceConstructed = false;
+    mSendCalled = false;
+}
+
+void ut_DialpadEmergencyCallEventFilter::cleanupTestCase()
+{
+    delete mDialpad;
+    delete mMainWindow;
+}
+
+void ut_DialpadEmergencyCallEventFilter::cleanup()
+{
+    mDialpad->editor().setText(QString());
+    QTest::qWait( WAIT_TIME ); // delay between tests
+}
+
+QGraphicsWidget* ut_DialpadEmergencyCallEventFilter::getWidgetByName(const QString& name)
+{
+    Q_ASSERT(mMainWindow!=0);
+
+    QGraphicsWidget* widget = 0;
+
+    QList<QGraphicsItem*> items = mMainWindow->scene()->items();
+    foreach (QGraphicsItem* item, items) {
+        if (item->isWidget()) {
+            QGraphicsWidget *w = static_cast<QGraphicsWidget*>(item);
+            if (w->objectName()==name) {
+                widget = w;
+            }
+        }
+    }
+
+    return widget;
+}
+
+void ut_DialpadEmergencyCallEventFilter::mouseClickDialpad(int key, bool pause)
+{
+    QString name = mKeyNames.value(key);
+
+    QGraphicsWidget* widget = getWidgetByName(name);
+
+    if ( widget ) {
+        QPointF widgetPos = widget->scenePos() +
+                            widget->rect().center();
+
+        QPoint windowPos = mMainWindow->mapFromScene( widgetPos );
+
+        QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,
+                           0, windowPos );
+
+        if (pause) {
+            QTest::qWait( WAIT_TIME );
+        }
+    } else {
+        QFAIL( "Button could not be accessed!" );
+    }
+}
+
+
+void ut_DialpadEmergencyCallEventFilter::testEmergencyCallEventFilter()
+{
+    mDialpad->openDialpad();
+    QTest::qWait(WAIT_TIME);
+    mouseClickDialpad(Qt::Key_1);
+    QTest::qWait(1000);
+    mouseClickDialpad(Qt::Key_1);
+    QTest::qWait(1000);
+    mouseClickDialpad(Qt::Key_2);
+    QTest::qWait(1000);
+    mouseClickDialpad(Qt::Key_Yes);
+    QTest::qWait(1000);
+    
+    mDialpad->closeDialpad();
+
+#ifdef Q_OS_SYMBIAN
+    QVERIFY(mXQServiceConstructed == true);
+    QVERIFY(mSendCalled == true);
+    QCOMPARE(mService, QString("com.nokia.symbian.ICallDial"));
+    QCOMPARE(mMessage, QString("dial(QString)"));
+#endif
+}
+
+DIALPAD_TEST_MAIN(ut_DialpadEmergencyCallEventFilter)
+#include "ut_dialpademergencycalleventfilter.moc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpademergencycalleventfilter/ut_dialpademergencycalleventfilter.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,40 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET =
+INCLUDEPATH += . ../../../inc ../../../../../inc  ../shared
+
+CONFIG += hb qtestlib
+
+symbian {
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    LIBS += -lphoneclient
+} else:win32 {
+    DESTDIR = ./
+    INCLUDEPATH += ../../../../../phonesrv_plat/dialpad_api/inc
+    INCLUDEPATH += ../../../../xqtelephonyservice/inc
+}
+
+#ß
+HEADERS += ../../../inc/dialpademergencycalleventfilter.h
+HEADERS += xqservicerequest.h
+SOURCES += ut_dialpademergencycalleventfilter.cpp
+SOURCES += ../../../src/dialpademergencycalleventfilter.cpp
+
+# 
+LIBS += -ldialpad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpademergencycalleventfilter/xqservicerequest.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+
+class XQServiceRequest : public QObject
+{
+public:
+    XQServiceRequest(const QString& service, const QString& message, const bool& synchronous);
+    ~XQServiceRequest();
+    bool send(QVariant& retValue);
+    void addArg(const QVariant& v);
+    template<typename T>
+    inline XQServiceRequest &operator<< (const T &var)
+    {
+        QVariant v = qVariantFromValue(var);
+        addArg(v);
+        return *this;
+    }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,138 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include <HbMainWindow>
+#ifdef Q_OS_SYMBIAN
+#include <featmgr.h>
+#endif // Q_OS_SYMBIAN
+
+#include <smcmockclassincludes.h>
+#include "ut_dialpadkeyhandler.h"
+#include "dialpad.h"
+#include "dialpadkeyhandler.h"
+#include "dialpadtest.h"
+
+HbMainWindow *HbWidget::mainWindow() const
+{
+    return 0;
+}
+
+
+void QObject::installEventFilter(QObject *obj)
+{
+    SMC_MOCK_METHOD1( void, QObject *, obj )
+}
+
+
+UT_DialpadKeyHandler::UT_DialpadKeyHandler()
+    :
+    m_dialPad(0), 
+    m_keyHandler(0)
+{
+    
+}
+
+
+UT_DialpadKeyHandler::~UT_DialpadKeyHandler()
+{
+    delete m_dialPad;
+    delete m_keyHandler;
+}
+
+
+void UT_DialpadKeyHandler::init()
+{
+    initialize();
+    
+    HbMainWindow *dummyWindow = 0;
+    m_dialPad = new Dialpad(*dummyWindow);
+}
+
+
+void UT_DialpadKeyHandler::cleanup()
+{
+    reset();
+    
+    delete m_dialPad;
+    m_dialPad = NULL;
+    delete m_keyHandler;
+    m_keyHandler = NULL;
+}
+
+
+void UT_DialpadKeyHandler::t_constructionWithAllFilters()
+{
+    EXPECT(QObject::installEventFilter).times(5);
+    
+    DialpadKeyHandler::DialpadKeyEventFilters filters(
+        DialpadKeyHandler::VoiceMailbox |
+        DialpadKeyHandler::VideoMailBox |
+        DialpadKeyHandler::Bluetooth |
+        DialpadKeyHandler::KeySequence |
+        DialpadKeyHandler::EmergencyCall);
+    
+    m_keyHandler = new DialpadKeyHandler(m_dialPad, filters, this);
+    
+    QVERIFY(verify());
+}
+
+
+void UT_DialpadKeyHandler::t_constructionWithNoFilters()
+{
+    EXPECT(QObject::installEventFilter).times(0);
+    
+    DialpadKeyHandler::DialpadKeyEventFilters filters;
+    m_keyHandler = new DialpadKeyHandler(m_dialPad, filters, this);
+    
+    QVERIFY(verify());
+}
+
+
+void UT_DialpadKeyHandler::t_deprecatedConstructionWithVideoMailbox()
+{
+#ifdef Q_OS_SYMBIAN
+    EXPECT(FeatureManager::FeatureSupported).returns(true);
+    EXPECT(QObject::installEventFilter).times(4);
+    
+    HbMainWindow *dummyWindow = 0;
+    m_keyHandler = new DialpadKeyHandler(m_dialPad, *dummyWindow, this);
+    
+    QVERIFY(verify());
+#endif // Q_OS_SYMBIAN
+}
+
+
+void UT_DialpadKeyHandler::t_deprecatedConstructionWithoutVideoMailbox()
+{
+    EXPECT(FeatureManager::FeatureSupported).returns(false);
+    EXPECT(QObject::installEventFilter).times(3);
+    
+    HbMainWindow *dummyWindow = 0;
+    m_keyHandler = new DialpadKeyHandler(m_dialPad, *dummyWindow, this);
+    
+    QVERIFY(verify());
+}
+
+
+int main(int argc, char *argv[])
+{
+    QCoreApplication app(argc, argv);
+    UT_DialpadKeyHandler tc;
+    return QTest::qExec(&tc, argc, argv);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef UT_DIALPADKEYHANDLER_H
+#define UT_DIALPADKEYHANDLER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class Dialpad;
+class DialpadKeyHandler;
+
+class UT_DialpadKeyHandler : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_DialpadKeyHandler();
+    ~UT_DialpadKeyHandler();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_constructionWithAllFilters();
+    void t_constructionWithNoFilters();
+    void t_deprecatedConstructionWithVideoMailbox();
+    void t_deprecatedConstructionWithoutVideoMailbox();
+    
+private:
+    Dialpad *m_dialPad;
+    DialpadKeyHandler *m_keyHandler;
+};
+
+#endif  // UT_DIALPADKEYHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,69 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET =
+INCLUDEPATH += . ../../../inc ../../../../../inc ../shared
+
+CONFIG += hb qtestlib
+
+QT -= gui
+
+DEFINES += BUILD_DIALPAD \
+           BUILD_DIALPADKEYHANDLER \
+           XQ_BUILD_XQSERVICE_LIB \
+           XQ_BUILD_XQSERVICEUTIL_LIB \
+           BUILD_HB_WIDGETS
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+} else:win32 {
+    DESTDIR = ./
+    INCLUDEPATH += ../../../../../phonesrv_plat/dialpad_api/inc
+}
+
+HEADERS += ../../../../../phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h
+SOURCES += ../../../src/dialpadkeyhandler.cpp
+
+HEADERS += ut_dialpadkeyhandler.h
+SOURCES += ut_dialpadkeyhandler.cpp
+
+HEADERS += ../../../../../phonesrv_plat/dialpad_api/inc/dialpad.h \
+           ../../../inc/dialpadbluetootheventfilter.h             \
+           ../../../inc/dialpademergencycalleventfilter.h         \
+           ../../../inc/dialpadkeysequenceeventfilter.h           \
+           ../../../inc/dialpadmailboxeventfilterbase.h           \
+           ../../../inc/dialpadvideomailboxeventfilter.h          \
+           ../../../inc/dialpadvoicemailboxeventfilter.h          \
+           /epoc32/include/mw/xqservicerequest.h                  \
+           /epoc32/include/mw/xqappmgr.h                          \
+           /epoc32/include/mw/xqaiwrequest.h
+
+SOURCES += ../shared/mock_dialpad.cpp                             \
+           ../shared/mock_dialpadbluetootheventfilter.cpp         \
+           ../shared/mock_dialpademergencycalleventfilter.cpp     \
+           ../shared/mock_dialpadkeysequenceeventfilter.cpp       \
+           ../shared/mock_dialpadmailboxeventfilterbase.cpp       \
+           ../shared/mock_dialpadvideomailboxeventfilter.cpp      \
+           ../shared/mock_dialpadvoicemailboxeventfilter.cpp      \
+           ../shared/mock_featmgr.cpp                             \
+           ../shared/mock_xqappmgr.cpp                            \
+           ../shared/mock_xqaiwrequest.cpp                        \
+           ../shared/mock_xqaiwinterfacedescriptor.cpp            \
+           ../shared/mock_hbmainwindow.cpp
+
+LIBS += -lmocklib -lsymbianmock -lxqservice -lxqserviceutil
--- a/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/hblineedit.h	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/hblineedit.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,20 +1,27 @@
-/*
-* Copyright (c) 2008-2010 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: 
-*
-*/
-
+/****************************************************************************
+**
+** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (developer.feedback@nokia.com)
+**
+** This file is part of the HbWidgets module of the UI Extensions for Mobile.
+**
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this file.
+** Please review the following information to ensure the GNU Lesser General
+** Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at developer.feedback@nokia.com.
+**
+****************************************************************************/
 
 #ifndef HBLINEEDIT_H
 #define HBLINEEDIT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvideomailboxeventfilter/ut_dialpadvideomailboxeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,277 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hbview.h>
+#include <hblineedit.h>
+#include <hbinstance.h>
+
+#ifdef Q_OS_SYMBIAN
+#include "xqservicerequest.h"
+#endif
+
+#include "dialpadtest.h"
+#include "dialpadvideomailboxeventfilter.h"
+#include "dialpad.h"
+#include "dialpadsymbianwrapper.h"
+
+const int WAIT_TIME = 300;
+QString mService;
+QString mMessage;
+bool mXQServiceConstructed;
+bool mSendCalled;
+
+DialpadSymbianWrapper::DialpadSymbianWrapper(QObject *parent) : d_ptr(NULL) {}
+DialpadSymbianWrapper::~DialpadSymbianWrapper() {}
+int DialpadSymbianWrapper::getVideoMailboxNumber(QString &vmbxNumber) { vmbxNumber=QString("12345678"); return 0; }
+int DialpadSymbianWrapper::defineVideoMailboxNumber(QString &vmbxNumber) { return 0; }
+
+#ifdef Q_OS_SYMBIAN
+XQServiceRequest::XQServiceRequest(const QString& service, const QString& message, const bool& synchronous) { mService=service; mMessage=message; mXQServiceConstructed=true; }
+XQServiceRequest::~XQServiceRequest() {}
+bool XQServiceRequest::send(QVariant& retValue) { mSendCalled=true; return true; }
+void XQServiceRequest::addArg(const QVariant& v) {}
+#endif
+
+// helper class
+class KeyEventCatcher : public QObject
+{
+public:
+    bool eventFilter(QObject* watched, QEvent * event)
+    {
+        Q_UNUSED(watched);
+
+        if (event->type() == QEvent::KeyPress) {
+            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+            mKeyPresses.append(keyEvent->key());
+            return false;
+        } else if (event->type() == QEvent::KeyRelease) {
+            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+            mKeyReleases.append(keyEvent->key());
+            return false;
+        }
+        return false;
+    }
+
+public:
+    QList<int> mKeyPresses;
+    QList<int> mKeyReleases;
+};
+
+// test cases
+class ut_DialpadVideoMailboxEventFilter : public QObject
+{
+    Q_OBJECT
+
+public:
+    enum MouseEventType
+    {
+        Press,
+        Release,
+        Click
+    };
+
+private slots:
+    void initTestCase();
+    void init();
+    void cleanupTestCase();
+    void cleanup();
+
+    // These are actual voice mailbox event filter unit tests
+    void testNumericKeyTwoLongPress();
+    void testNumericKeyTwoShortPress();
+    void testNumericKeyTwoShortThenLongPress();
+
+private:
+    QGraphicsWidget* getWidgetByName(const QString& name);
+    void mouseClickDialpad(int key, MouseEventType type=Click,
+                           bool pause=true);
+
+private:
+    HbMainWindow*  mMainWindow;
+    Dialpad*       mDialpad;
+    DialpadVideoMailboxEventFilter *mEventFilter;
+    KeyEventCatcher* mKeyCatcher;
+    QMap<int,QString> mKeyNames;
+};
+
+void ut_DialpadVideoMailboxEventFilter::initTestCase()
+{
+    mMainWindow = new HbMainWindow;
+
+    mKeyCatcher = new KeyEventCatcher;
+    mMainWindow->installEventFilter(mKeyCatcher);
+
+    mDialpad = new Dialpad();
+    mEventFilter = new DialpadVideoMailboxEventFilter(mDialpad, this);
+    hbInstance->allMainWindows().at(0)->installEventFilter(mEventFilter);
+
+    QRectF rect(mMainWindow->contentsRect());
+    rect.setHeight(rect.height()*0.7);
+    rect.moveTop((mMainWindow->contentsRect().height()-rect.height())/2);
+
+    mDialpad->setPreferredSize(360,400);
+    mDialpad->setPos(0,100);
+
+    mKeyNames.insert(Qt::Key_1,"49");
+    mKeyNames.insert(Qt::Key_2,"50");
+    mKeyNames.insert(Qt::Key_3,"51");
+    mKeyNames.insert(Qt::Key_4,"52");
+    mKeyNames.insert(Qt::Key_5,"53");
+    mKeyNames.insert(Qt::Key_6,"54");
+    mKeyNames.insert(Qt::Key_7,"55");
+    mKeyNames.insert(Qt::Key_8,"56");
+    mKeyNames.insert(Qt::Key_9,"57");
+    mKeyNames.insert(Qt::Key_Asterisk,"42");
+    mKeyNames.insert(Qt::Key_0,"48");
+    mKeyNames.insert(Qt::Key_NumberSign,"35");
+    mKeyNames.insert(Qt::Key_Backspace,"16777219");
+    mKeyNames.insert(Qt::Key_Yes,"16842753");
+
+    mMainWindow->show();
+    mDialpad->show();
+    mDialpad->hide();
+}
+
+void ut_DialpadVideoMailboxEventFilter::init()
+{
+    mService = QString("");
+    mMessage = QString("");
+    mXQServiceConstructed = false;
+    mSendCalled = false;
+}
+
+void ut_DialpadVideoMailboxEventFilter::cleanupTestCase()
+{
+    delete mDialpad;
+    delete mMainWindow;
+    delete mKeyCatcher;
+}
+
+void ut_DialpadVideoMailboxEventFilter::cleanup()
+{
+    mKeyCatcher->mKeyPresses.clear();
+    mKeyCatcher->mKeyReleases.clear();
+    mDialpad->editor().setText(QString());
+    QTest::qWait( WAIT_TIME ); // delay between tests
+}
+
+QGraphicsWidget* ut_DialpadVideoMailboxEventFilter::getWidgetByName(const QString& name)
+{
+    Q_ASSERT(mMainWindow!=0);
+
+    QGraphicsWidget* widget = 0;
+
+    QList<QGraphicsItem*> items = mMainWindow->scene()->items();
+    foreach (QGraphicsItem* item, items) {
+        if (item->isWidget()) {
+            QGraphicsWidget *w = static_cast<QGraphicsWidget*>(item);
+            if (w->objectName()==name) {
+                widget = w;
+            }
+        }
+    }
+
+    return widget;
+}
+
+void ut_DialpadVideoMailboxEventFilter::mouseClickDialpad(int key, MouseEventType type, bool pause)
+{
+    QString name = mKeyNames.value(key);
+
+    QGraphicsWidget* widget = getWidgetByName(name);
+
+    if ( widget ) {
+        QPointF widgetPos = widget->scenePos() +
+                            widget->rect().center();
+
+        QPoint windowPos = mMainWindow->mapFromScene( widgetPos );
+
+        if (type==Press) {
+            QTest::mousePress( mMainWindow->viewport(), Qt::LeftButton,
+                               0, windowPos );
+        } else if (type==Release) {
+            QTest::mouseRelease( mMainWindow->viewport(), Qt::LeftButton,
+                                 0, windowPos );
+        } else {
+            QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,
+                               0, windowPos );
+        }
+
+        if (pause) {
+            QTest::qWait( WAIT_TIME );
+        }
+    } else {
+        QFAIL( "Button could not be accessed!" );
+    }
+}
+
+
+void ut_DialpadVideoMailboxEventFilter::testNumericKeyTwoLongPress()
+{
+    mDialpad->openDialpad();
+    QTest::qWait(WAIT_TIME);
+    mouseClickDialpad(Qt::Key_2, Press);
+    QTest::qWait(2000);
+    mouseClickDialpad(Qt::Key_2, Release);
+    QTest::qWait(1000);
+    QCOMPARE(mDialpad->editor().text(), QString(""));
+    mDialpad->closeDialpad();
+
+#ifdef Q_OS_SYMBIAN
+    QVERIFY(mXQServiceConstructed == true);
+    QVERIFY(mSendCalled == true);
+    QCOMPARE(mService, QString("com.nokia.symbian.ICallDial"));
+    QCOMPARE(mMessage, QString("dialVideo(QString)"));
+#endif
+}
+
+void ut_DialpadVideoMailboxEventFilter::testNumericKeyTwoShortPress()
+{
+    mDialpad->openDialpad();
+    QTest::qWait(WAIT_TIME);
+    mouseClickDialpad(Qt::Key_2, Press);
+    QTest::qWait(200);
+    mouseClickDialpad(Qt::Key_2, Release);
+    QTest::qWait(1000);
+    // Check that character '1' is in editor.
+    QCOMPARE(mDialpad->editor().text(), QString("2"));
+}
+
+void ut_DialpadVideoMailboxEventFilter::testNumericKeyTwoShortThenLongPress()
+{
+    // Then one short and one long press
+    mDialpad->openDialpad();
+    QTest::qWait( WAIT_TIME );
+    mouseClickDialpad(Qt::Key_2, Press);
+    mouseClickDialpad(Qt::Key_2, Release);
+    mouseClickDialpad(Qt::Key_2, Press);
+    QTest::qWait(2000);
+    mouseClickDialpad(Qt::Key_2, Release);
+    QTest::qWait(1000);
+    QVERIFY(mDialpad->editor().text()=="22");
+    mDialpad->closeDialpad();
+}
+
+DIALPAD_TEST_MAIN(ut_DialpadVideoMailboxEventFilter)
+#include "ut_dialpadvideomailboxeventfilter.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvideomailboxeventfilter/ut_dialpadvideomailboxeventfilter.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET =
+INCLUDEPATH += . ../../../inc ../../../../../inc  ../shared
+
+CONFIG += hb qtestlib
+
+symbian {
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+} else:win32 {
+    DESTDIR = ./
+    INCLUDEPATH += ../../../../../phonesrv_plat/dialpad_api/inc
+    INCLUDEPATH += ../../../../xqtelephonyservice/inc
+}
+
+#
+HEADERS += ../../../inc/dialpadvideomailboxeventfilter.h
+HEADERS += ../../../inc/dialpadmailboxeventfilterbase.h
+HEADERS += ../../../inc/dialpadsymbianwrapper.h
+HEADERS += xqservicerequest.h
+SOURCES += ut_dialpadvideomailboxeventfilter.cpp
+SOURCES += ../../../src/dialpadvideomailboxeventfilter.cpp
+SOURCES += ../../../src/dialpadmailboxeventfilterbase.cpp
+
+# 
+LIBS += -ldialpad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvideomailboxeventfilter/xqservicerequest.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+
+class XQServiceRequest : public QObject
+{
+public:
+    XQServiceRequest(const QString& service, const QString& message, const bool& synchronous);
+    ~XQServiceRequest();
+    bool send(QVariant& retValue);
+    void addArg(const QVariant& v);
+    template<typename T>
+    inline XQServiceRequest &operator<< (const T &var)
+    {
+        QVariant v = qVariantFromValue(var);
+        addArg(v);
+        return *this;
+    }
+};
--- a/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -251,7 +251,9 @@
     mDialpad->openDialpad();
     QTest::qWait(WAIT_TIME);
     mouseClickDialpad(Qt::Key_1, Press);
+    QTest::qWait(200);
     mouseClickDialpad(Qt::Key_1, Release);
+    QTest::qWait(1000);
     // Check that character '1' is in editor.
     QCOMPARE(mDialpad->editor().text(), QString("1"));
 }
--- a/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro	Tue May 18 13:35:23 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -31,10 +31,12 @@
 
 #
 HEADERS += ../../../inc/dialpadvoicemailboxeventfilter.h
+HEADERS += ../../../inc/dialpadmailboxeventfilterbase.h
 HEADERS += ../../../inc/dialpadsymbianwrapper.h
 HEADERS += xqservicerequest.h
 SOURCES += ut_dialpadvoicemailboxeventfilter.cpp
 SOURCES += ../../../src/dialpadvoicemailboxeventfilter.cpp
+SOURCES += ../../../src/dialpadmailboxeventfilterbase.cpp
 
 # 
 LIBS += -ldialpad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/imeikeysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,46 @@
+/*!
+* Copyright (c) 2010 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 IMEI key sequence handling.
+*
+*/
+
+#ifndef IMEIKEYSEQUENCEHANDLER_H
+#define IMEIKEYSEQUENCEHANDLER_H
+
+#include "keysequencehandler.h"
+
+class HbDeviceMessageBox;
+
+class ImeiKeySequenceHandler : public KeySequenceHandler
+{
+    Q_OBJECT
+
+public:
+
+    ImeiKeySequenceHandler(QObject *parent = 0);
+    ~ImeiKeySequenceHandler();
+    
+    bool executeKeySequence(const QString &keySequence);
+
+private:
+    void launchImeiDialog();
+    
+private slots:
+    void destroyMessageBox();
+
+private:    
+    HbDeviceMessageBox *m_messageBox;
+};
+
+#endif // IMEIKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/keysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,43 @@
+/*!
+* Copyright (c) 2010 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: Base class for key sequence handlers.
+*
+*/
+
+#ifndef KEYSEQUENCEHANDLER_H
+#define KEYSEQUENCEHANDLER_H
+
+#include <QObject>
+#include <QString>
+
+class KeySequenceHandler : public QObject
+{
+    Q_OBJECT
+    
+public:
+
+    KeySequenceHandler(QObject *parent = 0);
+    ~KeySequenceHandler();
+    
+    QString keySequenceValidator() const;
+    virtual bool executeKeySequence(const QString &keySequence) = 0;
+
+protected:
+    void setKeySequenceValidator(const QString &validator);
+    
+private:
+    QString m_keySequenceValidator;
+};
+
+#endif // KEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/keysequencerecognitionprovider.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,95 @@
+/*!
+* Copyright (c) 2010 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 Qt Highway provider for key sequence handling.
+*
+*/
+
+#ifndef KEYSEQUENCERECOGNITIONPROVIDER_H
+#define KEYSEQUENCERECOGNITIONPROVIDER_H
+
+#include <xqserviceprovider.h>
+
+class KeySequenceHandler;
+
+class KeySequenceRecognitionProvider : public XQServiceProvider
+{
+    Q_OBJECT
+
+public:
+
+    KeySequenceRecognitionProvider(QObject *parent = 0);
+    ~KeySequenceRecognitionProvider();
+    
+public slots:
+    
+    /*!
+        \fn keySequenceValidator()
+        
+        Returns regular expression for key sequence validation. Client must 
+        validate sequence before requesting provider to execute it. Regular
+        expression is in escaped format.
+        
+        \return Escaped regular expression.
+        
+        Usage example:
+        XQAiwRequest *request = mAiwMgr.create(
+            "com.nokia.symbian.IKeySequenceRecognition",
+            "keySequenceValidator()", 
+            true);
+        
+        QVariant keySequenceValidator;
+        bool requestOk = request->send(keySequenceValidator);
+        if (requestOk && keySequenceValidator.toString().size()) {
+            QString expression = keySequenceValidator.toString();
+            mValidator = new QRegExp(expression);
+        }
+    */
+    QString keySequenceValidator();
+    
+    /*!
+        \fn executeKeySequence(const QString& keySequence)
+        
+        Client can use this method to execute key sequence.
+        Key sequence may contain for example product codes etc. that
+        may cause lower layers to do any specific things.
+        
+        \param  keySequence          Key sequence to execute.
+        \return True if key sequence was processed, false otherwise.
+        
+        Usage example:
+        XQAiwRequest *request = mAiwMgr.create(
+            "com.nokia.symbian.IKeySequenceRecognition",
+            "executeKeySequence(QString)", 
+            true);
+        
+        QList<QVariant> arguments;
+        arguments << "*#0000#";
+        request->setArguments(arguments);
+        
+        QVariant keySequenceProcessed;
+        bool requestOk = request.send(keySequenceProcessed);
+    */
+    bool executeKeySequence(const QString &keySequence);
+
+private:
+    void setupLocalization();
+    void constructKeySequenceHandlers();
+    void constructKeySequenceValidator();
+    
+private:
+    QString m_keySequenceValidator;
+    QList<KeySequenceHandler*> m_handlers;
+};
+
+#endif // KEYSEQUENCERECOGNITIONPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/keysequencerecognitionservicedefs.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,39 @@
+/*!
+* Copyright (c) 2010 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:  Definitions for key sequence recognition component.
+*
+*/
+
+#ifndef KEYSEQUENCERECOGNITIONSERVICEDEFS_H
+#define KEYSEQUENCERECOGNITIONSERVICEDEFS_H
+
+#include <QString>
+
+/*! code for showing software version number */
+const QString KCodeSwVersion("*#0000#");
+/*! code for launching reset ui */
+const QString KCodeActivateRfsNormal("*#7780#");
+/*! code for launching reset ui */
+const QString KCodeActivateRfsDeep("*#7370#");
+/*! code for showing bluetooth device address */
+const QString KCodeBtAddress("*#2820#");
+/*! code for enabling bluetooth test mode */
+const QString KCodeRFLoopback("*#9990#");
+const QString KCodeBtDebugMode("*#2873#");
+/*! code for showing serial number */
+const QString KCodeImei("*#06#");
+/*! code for showing life timer data */
+const QString KCodeLifeTimer("*#92702689#");
+
+#endif // KEYSEQUENCERECOGNITIONSERVICEDEFS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/keysequencerecognitionservicelog.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,73 @@
+/*!
+* Copyright (c) 2010 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:  Definitions for key sequence recognition component.
+*
+*/
+
+#ifndef KEYSEQUENCERECOGNITIONSERVICELOG_H
+#define KEYSEQUENCERECOGNITIONSERVICELOG_H
+
+#include <QDebug>
+
+class MethodEntryExitDebugPrint
+{
+public:
+    MethodEntryExitDebugPrint(const char* methodDescription)
+        :
+        m_methodDescription(0),
+        m_stackFrame(0)
+    {
+#ifdef __WINS__
+        // Workaround for exception detection as MSL runtime has a bug in
+        // std::uncaught_exception() implementation.
+        int stackFrame = 0;
+        _asm( mov stackFrame, ebp );
+        m_stackFrame = stackFrame;
+#endif
+        m_methodDescription = methodDescription;
+        qDebug() << m_methodDescription << "IN";
+    };
+    
+    ~MethodEntryExitDebugPrint() 
+    {
+#ifdef __WINS__
+        // Workaround for exception detection as MSL runtime has a bug in
+        // std::uncaught_exception() implementation.
+        int stackFrame = 0;
+        int returnValue = -1;
+        _asm( mov stackFrame, ebp );
+        _asm( mov returnValue, ebx );
+        if ((stackFrame + sizeof(int) != m_stackFrame) && (0 == returnValue)) {
+           qDebug() << m_methodDescription << "EXCEPTION!";
+        } else {
+           qDebug() << m_methodDescription << "OUT";
+        }
+#else
+        if (std::uncaught_exception()) {
+           qDebug() << m_methodDescription << "EXCEPTION!";
+        } else {
+           qDebug() << m_methodDescription << "OUT";
+        }
+#endif
+    };
+
+private:
+    const char* m_methodDescription;
+    int m_stackFrame;
+};
+
+#define DPRINT_METHODENTRYEXIT \
+    MethodEntryExitDebugPrint __entryExitDebugPrint(__PRETTY_FUNCTION__)
+
+#endif // KEYSEQUENCERECOGNITIONSERVICELOG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/lifetimerkeysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,63 @@
+/*!
+* Copyright (c) 2010 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 Life Timer key sequence handling.
+*
+*/
+
+#ifndef LIFETIMERKEYSEQUENCEHANDLER_H
+#define LIFETIMERKEYSEQUENCEHANDLER_H
+
+#include <centralrepository.h>
+#include "keysequencehandler.h"
+
+class HbDeviceMessageBox;
+class RTelServer;
+class RMobilePhone;
+class RMmCustomAPI;
+
+class LifeTimerKeySequenceHandler : public KeySequenceHandler
+{
+    Q_OBJECT
+
+public:
+
+    LifeTimerKeySequenceHandler(QObject *parent = 0);
+    ~LifeTimerKeySequenceHandler();
+    
+    bool executeKeySequence(const QString &keySequence);
+
+private:
+    void launchLifeTimerDialog();
+    QString constructLifeTimerData();
+    
+    void openEtelConnectionL(
+        RTelServer &telephonyServer,
+        RMobilePhone &mobilePhone,
+        RMmCustomAPI &mmCustomApi);
+    void closeEtelConnection(
+        RTelServer &telephonyServer,
+        RMobilePhone &mobilePhone,
+        RMmCustomAPI &mmCustomApi);
+    
+    bool lifeTimerFeatureEnabled();
+    
+private slots:
+    void destroyMessageBox();
+
+private:    
+    HbDeviceMessageBox *m_messageBox;
+    QScopedPointer<CRepository> m_repository;
+};
+
+#endif // LIFETIMERKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/manufacturerkeysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,76 @@
+/*!
+* Copyright (c) 2010 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 manufacturer key sequence handling.
+*
+*/
+
+#ifndef MANUFACTURERKEYSEQUENCEHANDLER_H
+#define MANUFACTURERKEYSEQUENCEHANDLER_H
+
+#include <xqappmgr.h>
+#include "keysequencehandler.h"
+
+class XQAiwRequest;
+
+class InterfaceDescription
+{
+public:
+    InterfaceDescription() 
+        :
+        m_service(""),
+        m_interface(""),
+        m_method("") {}
+    
+    InterfaceDescription(
+        const QString &service, 
+        const QString &interface, 
+        const QString &method) 
+    :
+    m_service(service),
+    m_interface(interface),
+    m_method(method) {}
+
+public:
+    QString m_service;
+    QString m_interface;
+    QString m_method;
+};
+
+class ManufacturerKeySequenceHandler : public KeySequenceHandler
+{
+    Q_OBJECT
+
+public:
+
+    ManufacturerKeySequenceHandler(QObject *parent = 0);
+    ~ManufacturerKeySequenceHandler();
+    
+    bool executeKeySequence(
+        const QString &keySequence);
+
+private:
+    bool issueServiceRequest(
+        const InterfaceDescription &description);
+
+private slots:
+    void requestOk(const QVariant &returnValue);
+    void requestError(int error, const QString& errorMessage);
+
+private:
+    XQApplicationManager m_aiwManager;
+    QMap<QString, InterfaceDescription> m_codeToInterfaceMappings;
+    QPointer<XQAiwRequest> m_currentRequest;
+};
+
+#endif // MANUFACTURERKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/keysequencerecognitionservice.pri	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,23 @@
+# Copyright (c) 2010 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:
+
+HEADERS = ./inc/keysequencerecognitionprovider.h        \
+          ./inc/keysequencehandler.h                    \
+          ./inc/manufacturerkeysequencehandler.h        \
+          ./inc/imeikeysequencehandler.h                \
+          ./inc/lifetimerkeysequencehandler.h
+
+SOURCES = ./src/main.cpp                                \
+          ./src/keysequencerecognitionprovider.cpp      \
+          ./src/keysequencehandler.cpp                  \
+          ./src/manufacturerkeysequencehandler.cpp      \
+          ./src/imeikeysequencehandler.cpp              \
+          ./src/lifetimerkeysequencehandler.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/keysequencerecognitionservice.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET = keysequencerecognitionservice
+CONFIG += hb service
+TRANSLATIONS = telephone.ts
+MOC_DIR = moc
+
+symbian {
+    TARGET.UID3 = 0x2002FF8A
+    TARGET.VID = VID_DEFAULT
+    TARGET.CAPABILITY = CAP_APPLICATION
+    TARGET.EPOCALLOWDLLDATA = 1
+    
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += ../../inc 
+    
+    BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
+    BLD_INF_RULES.prj_exports += "./rom/keysequencerecognitionservice.iby \
+        CORE_MW_LAYER_IBY_EXPORT_PATH(keysequencerecognitionservice.iby)"
+    BLD_INF_RULES.prj_exports += \
+      "./rom/keysequencerecognitionservice_resources.iby \
+      LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(keysequencerecognitionservice_resources.iby)"
+    
+    RSS_RULES += "hidden = KAppIsHidden;"
+    RSS_RULES += "launch = KAppLaunchInBackground;"
+    
+    include(./keysequencerecognitionservice.pri)
+    
+    # Service provider specific configuration.
+    SERVICE.FILE = ./resources/keysequencerecognitionservice_conf.xml
+    SERVICE.OPTIONS += embeddable
+    SERVICE.OPTIONS += hidden
+  
+    LIBS += -lxqservice -lxqserviceutil -lxqutils \
+            -letel -letelmm -lcustomapi \
+            -lcentralrepository -lQtSystemInfo
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/resources/keysequencerecognitionservice_conf.xml	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<service>
+  <name>keysequencerecognitionservice</name>
+  <filepath>No path</filepath>
+  <description>Key sequence recognition service</description>
+  <interface>
+     <name>com.nokia.symbian.IKeySequenceRecognition</name>
+     <version>1.0</version>
+     <description>Interface for key sequence recognition</description>
+   </interface>
+</service>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/rom/keysequencerecognitionservice.iby	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 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: KeySequenceRecognitionService's IBY definitions.
+*
+*/
+
+#ifndef __KEYSEQUENCERECOGNITIONSERVICE_IBY__
+#define __KEYSEQUENCERECOGNITIONSERVICE_IBY__
+
+#include <bldvariant.hrh>
+#include <data_caging_paths_for_iby.hrh>
+
+file = ABI_DIR/BUILD_DIR/keysequencerecognitionservice.exe 
+           PROGRAMS_DIR/keysequencerecognitionservice.exe
+data = DATAZ_/private/10003a3f/import/apps/keysequencerecognitionservice_reg.rsc \
+           private/10003a3f/import/apps/keysequencerecognitionservice_reg.rsc
+
+#endif // __KEYSEQUENCERECOGNITIONSERVICE_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/rom/keysequencerecognitionservice_resources.iby	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 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: KeySequenceRecognitionService's resource IBY definitions.
+*
+*/
+
+#ifndef __KEYSEQUENCERECOGNITIONSERVICE_RESORCES_IBY__
+#define __KEYSEQUENCERECOGNITIONSERVICE_RESORCES_IBY__
+
+#include <data_caging_paths_for_iby.hrh> 
+
+data = DATAZ_/resource/apps/keysequencerecognitionservice.rsc \
+           /resource/apps/keysequencerecognitionservice.rsc
+
+#endif // __KEYSEQUENCERECOGNITIONSERVICE_RESORCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/src/imeikeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,110 @@
+/*!
+* Copyright (c) 2010 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 IMEI key sequence handling.
+*
+*/
+
+#include <qsysteminfo.h>
+#include <hbmessagebox.h>
+#include <hbdevicemessagebox.h>
+#include "imeikeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "keysequencerecognitionservicelog.h"
+
+QTM_USE_NAMESPACE
+
+/*!
+  ImeiKeySequenceHandler::ImeiKeySequenceHandler.
+ */
+ImeiKeySequenceHandler::ImeiKeySequenceHandler(
+    QObject* parent)
+    :
+    KeySequenceHandler(parent),
+    m_messageBox(0)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    setKeySequenceValidator(QRegExp::escape(KCodeImei));
+}
+
+
+/*!
+  ImeiKeySequenceHandler::~ImeiKeySequenceHandler.
+ */
+ImeiKeySequenceHandler::~ImeiKeySequenceHandler()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    destroyMessageBox();
+}
+
+
+/*!
+  ImeiKeySequenceHandler::executeKeySequence.
+ */
+bool ImeiKeySequenceHandler::executeKeySequence(
+    const QString &keySequence)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    bool handled = true;
+    
+    if (KCodeImei == keySequence) {
+        launchImeiDialog();
+    } else {
+        handled = false;
+    }
+    
+    return handled;
+}
+
+
+/*!
+  ImeiKeySequenceHandler::launchImeiDialog().
+ */
+void ImeiKeySequenceHandler::launchImeiDialog()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    destroyMessageBox();
+    
+    QScopedPointer<QSystemDeviceInfo> deviceInfo(new QSystemDeviceInfo()); 
+    QString serialNumber = deviceInfo->imei();
+    QString serialNumberNoteText = 
+        hbTrId("txt_phone_info_serial_no").arg(serialNumber);
+    m_messageBox = new HbDeviceMessageBox(
+        serialNumberNoteText, 
+        HbMessageBox::MessageTypeInformation);
+    m_messageBox->setTimeout(HbPopup::NoTimeout);
+    
+    QObject::connect(
+        m_messageBox, SIGNAL(aboutToClose()), 
+        this, SLOT(destroyMessageBox()));
+    
+    m_messageBox->show();
+}
+
+
+/*!
+  ImeiKeySequenceHandler::destroyMessageBox.
+ */
+void ImeiKeySequenceHandler::destroyMessageBox()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    if (m_messageBox) {
+        m_messageBox->deleteLater();
+        m_messageBox = 0;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/src/keysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,65 @@
+/*!
+* Copyright (c) 2010 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: Base class for key sequence handlers.
+*
+*/
+
+#include <QCoreApplication>
+#include <QDebug>
+#include <xqaiwrequest.h>
+#include "keysequencehandler.h"
+#include "keysequencerecognitionservicelog.h"
+
+/*!
+  KeySequenceHandler::KeySequenceHandler.
+ */
+KeySequenceHandler::KeySequenceHandler(
+    QObject* parent)
+    : 
+    QObject(parent),
+    m_keySequenceValidator("")
+{
+    DPRINT_METHODENTRYEXIT;
+}
+
+
+/*!
+  KeySequenceHandler::~KeySequenceHandler.
+ */
+KeySequenceHandler::~KeySequenceHandler()
+{
+    DPRINT_METHODENTRYEXIT;
+}
+
+
+/*!
+  KeySequenceHandler::keySequenceValidator.
+ */
+QString KeySequenceHandler::keySequenceValidator() const
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    return m_keySequenceValidator;
+}
+
+
+/*!
+  KeySequenceHandler::setKeySequenceValidator.
+ */
+void KeySequenceHandler::setKeySequenceValidator(const QString &validator)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    m_keySequenceValidator = validator;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/src/keysequencerecognitionprovider.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,156 @@
+/*!
+* Copyright (c) 2010 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 Qt Highway provider for key sequence handling.
+*
+*/
+
+#include <QCoreApplication>
+#include <QTimer>
+#include <QTranslator>
+#include <QLocale>
+#include "keysequencerecognitionprovider.h"
+#include "manufacturerkeysequencehandler.h"
+#include "imeikeysequencehandler.h"
+#include "lifetimerkeysequencehandler.h"
+#include "keysequencerecognitionservicelog.h"
+
+/*!
+  KeySequenceRecognitionProvider::KeySequenceRecognitionProvider.
+ */
+KeySequenceRecognitionProvider::KeySequenceRecognitionProvider(
+    QObject* parent)
+    : 
+    XQServiceProvider(QLatin1String(
+        "keysequencerecognitionservice.com.nokia.symbian.IKeySequenceRecognition"),
+        parent),
+    m_keySequenceValidator("")
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    publishAll();
+    
+    setupLocalization();
+    
+    // One should not call anything exception generating after handlers are
+    // created because memory for handlers will be leaked on an exception 
+    // while being in c++ constructor.
+    constructKeySequenceHandlers();
+}
+
+
+/*!
+  KeySequenceRecognitionProvider::~KeySequenceRecognitionProvider.
+ */
+KeySequenceRecognitionProvider::~KeySequenceRecognitionProvider()
+{
+    DPRINT_METHODENTRYEXIT;
+}
+
+
+/*!
+  KeySequenceRecognitionProvider::keySequenceValidator.
+ */
+QString KeySequenceRecognitionProvider::keySequenceValidator()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    if (m_keySequenceValidator.isEmpty()) {
+        constructKeySequenceValidator();
+    }
+    
+    return m_keySequenceValidator;
+}
+
+
+/*!
+  KeySequenceRecognitionProvider::executeKeySequence.
+ */
+bool KeySequenceRecognitionProvider::executeKeySequence(
+    const QString &keySequence)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    bool handled = false;
+    
+    QList<KeySequenceHandler*>::const_iterator it = m_handlers.constBegin();
+    for (;(it != m_handlers.constEnd()) && (!handled); ++it) {
+        handled = (*it)->executeKeySequence(keySequence);
+    }
+    
+    return handled;
+}
+
+
+/*!
+  KeySequenceRecognitionProvider::setupLocalization.
+ */
+void KeySequenceRecognitionProvider::setupLocalization()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    QScopedPointer<QTranslator> translator(new QTranslator(this));
+    
+    QString locale = QLocale::system().name();
+    QString path = QString("z:/resource/qt/translations/");
+    bool translatorLoaded = 
+        translator->load(QString(path + "telephone_" + locale));
+    
+    if (translatorLoaded) {
+        qApp->installTranslator(translator.data());
+        translator.take();
+    }
+}
+
+
+/*!
+  KeySequenceRecognitionProvider::constructKeySequenceHandlers.
+ */
+void KeySequenceRecognitionProvider::constructKeySequenceHandlers()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    QScopedPointer<KeySequenceHandler> manufacturerHandler( 
+        new ManufacturerKeySequenceHandler(this));
+    m_handlers.append(manufacturerHandler.data());
+    manufacturerHandler.take();
+    
+    QScopedPointer<KeySequenceHandler> imeiHandler( 
+        new ImeiKeySequenceHandler(this));
+    m_handlers.append(imeiHandler.data());
+    imeiHandler.take();
+
+    QScopedPointer<KeySequenceHandler> lifeTimerHandler( 
+        new LifeTimerKeySequenceHandler(this));
+    m_handlers.append(lifeTimerHandler.data());
+    lifeTimerHandler.take();
+}
+
+
+/*!
+  KeySequenceRecognitionProvider::constructKeySequenceValidator.
+ */
+void KeySequenceRecognitionProvider::constructKeySequenceValidator()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    QList<KeySequenceHandler*>::const_iterator it = m_handlers.constBegin();
+    for (;it != m_handlers.constEnd(); ++it) {
+        if (!m_keySequenceValidator.isEmpty()) {
+            m_keySequenceValidator.append("|");
+        }
+        
+        QString validator = (*it)->keySequenceValidator();
+        m_keySequenceValidator.append(validator);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/src/lifetimerkeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,208 @@
+/*!
+* Copyright (c) 2010 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 Life Timer key sequence handling.
+*
+*/
+
+#include <QDebug>
+#include <hbmessagebox.h>
+#include <hbdevicemessagebox.h>
+#include <hbextendedlocale.h>
+#include <etelmm.h>
+#include <rmmcustomapi.h>
+#include <mmtsy_names.h>
+#include <xqconversions.h>
+#include "lifetimerkeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "telservicesinternalcrkeys.h"
+#include "telservicesvariant.hrh"
+#include "keysequencerecognitionservicelog.h"
+
+/*!
+  LifeTimerKeySequenceHandler::LifeTimerKeySequenceHandler.
+ */
+LifeTimerKeySequenceHandler::LifeTimerKeySequenceHandler(
+    QObject* parent)
+    : 
+    KeySequenceHandler(parent),
+    m_messageBox(0),
+    m_repository(0)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    CRepository *repository = 0;
+    QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidTelSrvVariation))
+    m_repository.reset(repository);
+    
+    if (lifeTimerFeatureEnabled()) {
+        setKeySequenceValidator(QRegExp::escape(KCodeLifeTimer));
+    }
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::~LifeTimerKeySequenceHandler.
+ */
+LifeTimerKeySequenceHandler::~LifeTimerKeySequenceHandler()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    destroyMessageBox();
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::executeKeySequence.
+ */
+bool LifeTimerKeySequenceHandler::executeKeySequence(
+    const QString &keySequence)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    bool handled = true;
+    
+    if (KCodeLifeTimer == keySequence && lifeTimerFeatureEnabled()) {
+        launchLifeTimerDialog();
+    } else {
+        handled = false;
+    }
+    
+    return handled;
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::launchLifeTimerDialog().
+ */
+void LifeTimerKeySequenceHandler::launchLifeTimerDialog()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    destroyMessageBox();
+    
+    QString lifeTimerData = constructLifeTimerData();
+    QString lifeTimerNoteText = 
+        hbTrId("txt_phone_info_life_timer").arg(lifeTimerData);
+    m_messageBox = new HbDeviceMessageBox(
+        lifeTimerNoteText, 
+        HbMessageBox::MessageTypeInformation);
+    m_messageBox->setTimeout(HbPopup::NoTimeout);
+    
+    QObject::connect(
+        m_messageBox, SIGNAL(aboutToClose()), 
+        this, SLOT(destroyMessageBox()));
+    
+    m_messageBox->show();
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::constructLifeTimerData.
+ */
+QString LifeTimerKeySequenceHandler::constructLifeTimerData()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    QString lifeTimerText;
+    
+    RTelServer telephonyServer;
+    RMobilePhone mobilePhone;
+    RMmCustomAPI mmCustomApi;
+    QT_TRAP_THROWING(
+        openEtelConnectionL(telephonyServer, mobilePhone, mmCustomApi);
+    )
+    
+    RMmCustomAPI::TLifeTimeData lifeTimeData;
+    RMmCustomAPI::TLifeTimeDataPckg dataPckg(lifeTimeData);
+    int lifeTimeDataQueryResult = mmCustomApi.GetLifeTime(dataPckg);
+    closeEtelConnection(telephonyServer, mobilePhone, mmCustomApi);
+    
+    if (KErrNone == lifeTimeDataQueryResult) {
+        lifeTimeData = dataPckg();
+        
+        HbExtendedLocale locale = HbExtendedLocale::system();
+        lifeTimerText.append(QString::number(lifeTimeData.iHours));
+        const int KMinuteSeparatorInd = 2;
+        lifeTimerText.append(locale.timeSeparator(KMinuteSeparatorInd));
+        lifeTimerText.append(
+            QString::number(static_cast<int>(lifeTimeData.iMinutes)));
+        // pad hour field to a length of 6 digits
+        const int KLifeTimerDataFieldLength = 9;
+        lifeTimerText = lifeTimerText.rightJustified(
+            KLifeTimerDataFieldLength, QChar('0'));
+    }
+    
+    return lifeTimerText;
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::openEtelConnectionL.
+ */
+void LifeTimerKeySequenceHandler::openEtelConnectionL(
+    RTelServer &telephonyServer,
+    RMobilePhone &mobilePhone,
+    RMmCustomAPI &mmCustomApi)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    User::LeaveIfError(telephonyServer.Connect());
+    User::LeaveIfError(mobilePhone.Open(telephonyServer, KMmTsyPhoneName()));
+    User::LeaveIfError(mmCustomApi.Open(mobilePhone));
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::closeEtelConnection.
+ */
+void LifeTimerKeySequenceHandler::closeEtelConnection(
+    RTelServer &telephonyServer,
+    RMobilePhone &mobilePhone,
+    RMmCustomAPI &mmCustomApi)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    mmCustomApi.Close();
+    mobilePhone.Close();
+    telephonyServer.Close();
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::lifeTimerFeatureEnabled.
+ */
+bool LifeTimerKeySequenceHandler::lifeTimerFeatureEnabled()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    TInt telephoneVariant = 0;
+    TInt result = m_repository->Get(KTelSrvVariationFlags, telephoneVariant);
+    return (KErrNone == result) 
+        ? static_cast<bool>(telephoneVariant & KTelSrvLVFlagLifeTimer)
+        : false;
+}
+
+
+/*!
+  LifeTimerKeySequenceHandler::destroyMessageBox.
+ */
+void LifeTimerKeySequenceHandler::destroyMessageBox()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    if (m_messageBox) {
+        m_messageBox->deleteLater();
+        m_messageBox = 0;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/src/main.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <hbapplication.h>
+#include "keysequencerecognitionprovider.h"
+
+int main(int argc, char **argv)
+{
+    HbApplication app(argc, argv);
+    KeySequenceRecognitionProvider provider;
+    
+    int result = app.exec();
+    return result;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/src/manufacturerkeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,165 @@
+/*!
+* Copyright (c) 2010 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 manufacturer key sequence handling.
+*
+*/
+
+#include <QDebug>
+#include <xqserviceutil.h>
+#include <xqservicerequest.h>
+#include <hbapplication.h>
+#include "manufacturerkeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "keysequencerecognitionservicelog.h"
+
+/*!
+  ManufacturerKeySequenceHandler::ManufacturerKeySequenceHandler.
+ */
+ManufacturerKeySequenceHandler::ManufacturerKeySequenceHandler(
+    QObject* parent)
+    : 
+    KeySequenceHandler(parent),
+    m_currentRequest(0)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    setKeySequenceValidator(
+        QRegExp::escape(KCodeSwVersion) + "|" +
+        QRegExp::escape(KCodeActivateRfsNormal)  + "|" +
+        QRegExp::escape(KCodeActivateRfsDeep) + "|" +
+        QRegExp::escape(KCodeBtAddress) + "|" +
+        QRegExp::escape(KCodeRFLoopback) + "|" +
+        QRegExp::escape(KCodeBtDebugMode));
+    
+    m_codeToInterfaceMappings[KCodeSwVersion] = InterfaceDescription(
+        "com.nokia.services", "devicemanager", "showVersionNumber()");
+    
+    m_codeToInterfaceMappings[KCodeActivateRfsNormal] = InterfaceDescription(
+        "com.nokia.symbian", "IFactoryReset", "showResetUi()");
+    m_codeToInterfaceMappings[KCodeActivateRfsDeep] = InterfaceDescription(
+        "com.nokia.symbian", "IFactoryReset", "showResetUi()");
+    
+    m_codeToInterfaceMappings[KCodeBtAddress] = InterfaceDescription(
+        "com.nokia.services", "bluetooth", "showBluetoothDeviceAddress()");
+    m_codeToInterfaceMappings[KCodeRFLoopback] = InterfaceDescription(
+        "com.nokia.services", "bluetooth", "showBluetoothLoopback()");
+    m_codeToInterfaceMappings[KCodeBtDebugMode] = InterfaceDescription(
+        "com.nokia.services", "bluetooth", "activateBluetoothDebugMode()");
+}
+
+
+/*!
+  ManufacturerKeySequenceHandler::~ManufacturerKeySequenceHandler.
+ */
+ManufacturerKeySequenceHandler::~ManufacturerKeySequenceHandler()
+{
+    DPRINT_METHODENTRYEXIT;
+}
+
+
+/*!
+  ManufacturerKeySequenceHandler::executeKeySequence.
+ */
+bool ManufacturerKeySequenceHandler::executeKeySequence(
+    const QString &keySequence)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    bool handled = true;
+    
+    if (m_codeToInterfaceMappings.contains(keySequence)) {
+        handled = issueServiceRequest(m_codeToInterfaceMappings[keySequence]);
+    } else {
+        handled = false;
+    }
+    
+    return handled;
+}
+
+
+/*!
+  ManufacturerKeySequenceHandler::issueServiceRequest.
+ */
+bool ManufacturerKeySequenceHandler::issueServiceRequest(
+    const InterfaceDescription &description)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    bool serviceRequestOk = false;
+    if (m_currentRequest.isNull()) {
+        const bool isEmbedded = false;
+        QScopedPointer<XQAiwRequest> request(m_aiwManager.create(
+            description.m_service, 
+            description.m_interface, 
+            description.m_method, 
+            isEmbedded));
+        
+        if (!request.isNull()) {
+            m_currentRequest = request.data();
+            
+            // Due to a Qt Highway bug in assignment operator implementation we
+            // need to set request as asynchronous with a setter function.
+            request->setSynchronous(false);
+            
+            connect(
+                request.data(), SIGNAL(requestOk(const QVariant &)), 
+                this, SLOT(requestOk(const QVariant &)));
+            connect(
+                request.data(), SIGNAL(requestError(int, const QString&)), 
+                this, SLOT(requestError(int, const QString&)));
+            
+            serviceRequestOk = request->send();
+            if (serviceRequestOk) {
+                m_currentRequest = request.take();
+            } else {
+                // On a controlled error Qt Highway should call requestError,
+                // so clean scoped pointer here.
+                request.take();
+            }
+        }
+    }
+    
+    return serviceRequestOk;
+}
+
+
+/*!
+  ManufacturerKeySequenceHandler::requestOk.
+ */
+void ManufacturerKeySequenceHandler::requestOk(
+    const QVariant &returnValue)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    Q_UNUSED(returnValue)
+    
+    delete m_currentRequest;
+    m_currentRequest = 0;
+}
+
+
+/*!
+  ManufacturerKeySequenceHandler::requestError.
+ */
+void ManufacturerKeySequenceHandler::requestError(
+    int error, const QString& errorMessage)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    Q_UNUSED(error)
+    Q_UNUSED(errorMessage)
+    
+    delete m_currentRequest;
+    m_currentRequest = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/run_auto_tests_qt.bat	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,194 @@
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem
+
+@echo off
+setlocal
+goto :startup 
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function DEFAULT
+::
+:: Modify this function
+::  - TESTED_SRC can be changed to match tested code.
+::    Specifies path from testcode group directory to
+::    tested code
+::  - Add test directories to be runned
+::    ie. "call :build ut_projectdirectory" or use
+::    "for /f %%a in ('dir /b ut_*') do call :build %%a"
+::    which compiles, instruments and runs all test directories
+::    starting with "ut_".
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:DEFAULT
+set TESTED_SRC=..\..\src\*
+
+for /f %%a in ('dir /b ut_*') do call :build %%a
+if [%DOMODULESTESTS%] EQU [TRUE] (
+for /f %%a in ('dir /b mt_*') do call :build %%a
+)
+
+call :finish
+goto :END
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function STARTUP
+::
+:: Initializing script
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:STARTUP
+
+set BUILDTESTS=TRUE
+set RUNTESTS=TRUE
+set INSTRUMENT=TRUE
+set REMOVEINSTRUMENT=TRUE
+set DOMODULESTESTS=TRUE
+set SBS_CALL=sbs --config winscw_udeb --keepgoing
+set PATH_TO_DLL=\epoc32\release\winscw\udeb
+set PATH_TO_COVERAGE_DATA=\coverage_data
+set PATH_TO_RESULT=\test_result
+
+if not exist %PATH_TO_COVERAGE_DATA% (
+mkdir %PATH_TO_COVERAGE_DATA%
+)
+
+if not exist %PATH_TO_RESULT% (
+mkdir %PATH_TO_RESULT%
+)
+
+if [%1] EQU [] ( goto default )
+
+call :%1
+call :%2
+call :%3
+call :%4
+call :%5
+echo Running tests = %RUNTESTS%
+echo Instrumenting tests = %INSTRUMENT%
+goto default
+
+:/NOCLEANUP
+set REMOVEINSTRUMENT=FALSE
+goto end
+
+:/NORUN
+set RUNTESTS=FALSE
+set REMOVEINSTRUMENT=FALSE
+goto end
+
+:/NOINSTRUMENT
+set INSTRUMENT=FALSE
+goto end
+
+:/NOBUILD
+set BUILDTESTS=FALSE
+goto end
+
+:/ONLYUNITTESTS
+set DOMODULESTESTS=FALSE
+goto end
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function FINISH
+::
+:: Finishes run_auto_tests.bat
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:FINISH
+
+if [%RUNTESTS%] EQU [TRUE] (
+call :runtests
+)
+
+if [%INSTRUMENT%] EQU [TRUE] (
+call :calculatecoverage
+)
+
+if [%REMOVEINSTRUMENT%] EQU [TRUE] (
+call :removecoverage
+)
+goto end
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function BUILD
+::    param directory
+::
+:: builds test from given directory
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:BUILD
+setlocal
+if [%BUILDTESTS%] EQU [FALSE] ( goto end )
+echo Building %1
+if not exist %1 ( 
+echo %1 Not found! 
+goto end
+)
+
+pushd .
+call cd %1
+call qmake
+call sbs --config winscw_udeb --keepgoing CLEAN
+if [%INSTRUMENT%] EQU [TRUE] (
+call ctcwrap -2comp -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%"
+) else (
+call %SBS_CALL%
+)
+
+popd
+endlocal
+goto end
+
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function RUNTESTS
+::
+:: NOTE! Function assumes that test binary is named according to test directory.
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:RUNTESTS
+echo Running tests
+for /f %%a in ('dir /b ut_*') do (
+    call %PATH_TO_DLL%\%%a.exe -dtextshell --
+    move \epoc32\winscw\c\data\%%a.log %PATH_TO_RESULT%\%%a.log
+)
+goto end
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function CALCULATECOVERAGE
+::
+:: Calculates test coverage. Generates html
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:CALCULATECOVERAGE
+echo Calculating coverage
+ctcpost %PATH_TO_COVERAGE_DATA%\*.sym -p - | ctcmerge -i - -o profile.txt
+call ctc2html -t 70 -i profile.txt -o \coverage_result -nsb
+goto end
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function REMOVECOVERAGE
+::
+:: Removes data from coverage directory
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:REMOVECOVERAGE
+echo Removing deleting coverage data
+call del %PATH_TO_COVERAGE_DATA%\*.sym
+call del %PATH_TO_COVERAGE_DATA%\*.dat
+call del profile.txt
+goto end
+
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: function END
+::
+:: Prints done
+::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:END
+echo Done!
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_centralrepository.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,628 @@
+/* 
+* Copyright (c) 2009 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:
+*
+*/
+#include <smcmockclassincludes.h>
+#include <centralrepository.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CRepository::NewL
+// -----------------------------------------------------------------------------
+//
+CRepository * CRepository::NewL( 
+        TUid aRepositoryUid )
+    {
+    SMC_MOCK_NEWL1( CRepository *, TUid, aRepositoryUid )
+
+    CRepository* self = new( ELeave ) CRepository;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::NewLC
+// -----------------------------------------------------------------------------
+//
+CRepository * CRepository::NewLC( 
+        TUid aRepositoryUid )
+    {
+    SMC_MOCK_NEWLC1( CRepository *, TUid, aRepositoryUid )
+
+    CRepository* self = new( ELeave ) CRepository;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::~CRepository
+// -----------------------------------------------------------------------------
+//
+CRepository::~CRepository(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Create
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Create( 
+        TUint32 aKey,
+        TInt aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TInt, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Create
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Create( 
+        TUint32 aKey,
+        const TReal & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        const TReal &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Create
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Create( 
+        TUint32 aKey,
+        const TDesC8 & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        const TDesC8 &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Create
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Create( 
+        TUint32 aKey,
+        const TDesC16 & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        const TDesC16 &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Delete
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Delete( 
+        TUint32 aKey )
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32, aKey )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Delete
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Delete( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        TUint32 & aErrorKey )
+    {
+    SMC_MOCK_METHOD3( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        TUint32 &, aErrorKey )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Get
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Get( 
+        TUint32 aKey,
+        TInt & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TInt &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Set
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Set( 
+        TUint32 aKey,
+        TInt aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TInt, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Get
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Get( 
+        TUint32 aKey,
+        TReal & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TReal &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Set
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Set( 
+        TUint32 aKey,
+        const TReal & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        const TReal &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Get
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Get( 
+        TUint32 aKey,
+        TDes8 & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TDes8 &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Get
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Get( 
+        TUint32 aId,
+        TDes8 & aValue,
+        TInt & aActualLength )
+    {
+    SMC_MOCK_METHOD3( TInt, TUint32, aId, 
+        TDes8 &, aValue, 
+        TInt &, aActualLength )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Set
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Set( 
+        TUint32 aKey,
+        const TDesC8 & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        const TDesC8 &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Get
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Get( 
+        TUint32 aKey,
+        TDes16 & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TDes16 &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Get
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Get( 
+        TUint32 aId,
+        TDes16 & aValue,
+        TInt & aActualLength )
+    {
+    SMC_MOCK_METHOD3( TInt, TUint32, aId, 
+        TDes16 &, aValue, 
+        TInt &, aActualLength )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Set
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Set( 
+        TUint32 aKey,
+        const TDesC16 & aValue )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        const TDesC16 &, aValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::GetMeta
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::GetMeta( 
+        TUint32 aKey,
+        TUint32 & aMeta )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TUint32 &, aMeta )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Move
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Move( 
+        TUint32 aSourcePartialKey,
+        TUint32 aTargetPartialKey,
+        TUint32 aMask,
+        TUint32 & aErrorKey )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aSourcePartialKey, 
+        TUint32, aTargetPartialKey, 
+        TUint32, aMask, 
+        TUint32 &, aErrorKey )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD3( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindEqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindEqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        TInt aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        TInt, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindEqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindEqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        const TReal & aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        const TReal &, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindEqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindEqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        const TDesC8 & aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        const TDesC8 &, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindEqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindEqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        const TDesC16 & aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        const TDesC16 &, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindNeqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindNeqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        TInt aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        TInt, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindNeqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindNeqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        const TReal & aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        const TReal &, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindNeqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindNeqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        const TDesC8 & aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        const TDesC8 &, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FindNeqL
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::FindNeqL( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        const TDesC16 & aValue,
+        RArray<TUint32> & aFoundKeys )
+    {
+    SMC_MOCK_METHOD4( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        const TDesC16 &, aValue, 
+        RArray<TUint32> &, aFoundKeys )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::NotifyRequest
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::NotifyRequest( 
+        TUint32 aKey,
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aKey, 
+        TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::NotifyRequest
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::NotifyRequest( 
+        TUint32 aPartialKey,
+        TUint32 aMask,
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD3( TInt, TUint32, aPartialKey, 
+        TUint32, aMask, 
+        TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::NotifyCancel
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::NotifyCancel( 
+        TUint32 aKey )
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32, aKey )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::NotifyCancel
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::NotifyCancel( 
+        TUint32 aPartialKey,
+        TUint32 aMask )
+    {
+    SMC_MOCK_METHOD2( TInt, TUint32, aPartialKey, 
+        TUint32, aMask )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::NotifyCancelAll
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::NotifyCancelAll(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Reset
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Reset(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::Reset
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::Reset( 
+        TUint32 aKey )
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32, aKey )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::StartTransaction
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::StartTransaction( 
+        TTransactionMode aMode )
+    {
+    SMC_MOCK_METHOD1( TInt, TTransactionMode, aMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::StartTransaction
+// -----------------------------------------------------------------------------
+//
+void CRepository::StartTransaction( 
+        TTransactionMode aMode,
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD2( void, TTransactionMode, aMode, 
+        TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::CommitTransaction
+// -----------------------------------------------------------------------------
+//
+TInt CRepository::CommitTransaction( 
+        TUint32 & aKeyInfo )
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32 &, aKeyInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::CommitTransaction
+// -----------------------------------------------------------------------------
+//
+void CRepository::CommitTransaction( 
+        TDes8 & aKeyInfo,
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD2( void, TDes8 &, aKeyInfo, 
+        TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::CancelTransaction
+// -----------------------------------------------------------------------------
+//
+void CRepository::CancelTransaction(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::CleanupCancelTransactionPushL
+// -----------------------------------------------------------------------------
+//
+void CRepository::CleanupCancelTransactionPushL(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::FailTransaction
+// -----------------------------------------------------------------------------
+//
+void CRepository::FailTransaction(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CRepository::CleanupFailTransactionPushL
+// -----------------------------------------------------------------------------
+//
+void CRepository::CleanupFailTransactionPushL(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_etel.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,1927 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <smcmockclassincludes.h>
+#include <f32file.h>
+#include "etel.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// RPhone::RPhone
+// -----------------------------------------------------------------------------
+//
+RPhone::RPhone(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::ConstructL
+// -----------------------------------------------------------------------------
+//
+void RPhone::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::Open
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::Open( 
+        RTelServer & aSession,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RTelServer &, aSession, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::Close
+// -----------------------------------------------------------------------------
+//
+void RPhone::Close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::Initialise
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::Initialise(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::Initialise
+// -----------------------------------------------------------------------------
+//
+void RPhone::Initialise( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::InitialiseCancel
+// -----------------------------------------------------------------------------
+//
+void RPhone::InitialiseCancel(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::GetCaps
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::GetCaps( 
+        TCaps & aCaps ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TCaps &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::NotifyCapsChange
+// -----------------------------------------------------------------------------
+//
+void RPhone::NotifyCapsChange( 
+        TRequestStatus & aStatus,
+        TCaps & aCaps )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TCaps &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::NotifyCapsChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RPhone::NotifyCapsChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::GetStatus
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::GetStatus( 
+        TStatus & aStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::EnumerateLines
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::EnumerateLines( 
+        TInt & aCount ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TInt &, aCount )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::GetLineInfo
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::GetLineInfo( 
+        const TInt aIndex,
+        TLineInfo & aLineInfo ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TInt, aIndex, 
+        TLineInfo &, aLineInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::GetInfo
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::GetInfo( 
+        TPhoneInfo & aPhoneInfo ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TPhoneInfo &, aPhoneInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::NotifyModemDetected
+// -----------------------------------------------------------------------------
+//
+void RPhone::NotifyModemDetected( 
+        TRequestStatus & aStatus,
+        TModemDetection & aDetection )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TModemDetection &, aDetection )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::NotifyModemDetectedCancel
+// -----------------------------------------------------------------------------
+//
+void RPhone::NotifyModemDetectedCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::SetEmergencyClient
+// -----------------------------------------------------------------------------
+//
+TInt RPhone::SetEmergencyClient( 
+        const TUint32 aEmergencyRequest ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TUint32, aEmergencyRequest )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RPhone::Destruct
+// -----------------------------------------------------------------------------
+//
+void RPhone::Destruct(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::RCall
+// -----------------------------------------------------------------------------
+//
+RCall::RCall(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::ConstructL
+// -----------------------------------------------------------------------------
+//
+void RCall::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenNewCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenNewCall( 
+        RTelServer & aServer,
+        const TDesC & aName,
+        TDes & aNewName )
+    {
+    SMC_MOCK_METHOD3( TInt, RTelServer &, aServer, 
+        const TDesC &, aName, 
+        TDes &, aNewName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenNewCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenNewCall( 
+        RTelServer & aServer,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RTelServer &, aServer, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenNewCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenNewCall( 
+        RPhone & aPhone,
+        const TDesC & aName,
+        TDes & aNewName )
+    {
+    SMC_MOCK_METHOD3( TInt, RPhone &, aPhone, 
+        const TDesC &, aName, 
+        TDes &, aNewName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenNewCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenNewCall( 
+        RPhone & aPhone,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RPhone &, aPhone, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenNewCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenNewCall( 
+        RLine & aLine,
+        TDes & aNewName )
+    {
+    SMC_MOCK_METHOD2( TInt, RLine &, aLine, 
+        TDes &, aNewName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenNewCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenNewCall( 
+        RLine & aLine )
+    {
+    SMC_MOCK_METHOD1( TInt, RLine &, aLine )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenExistingCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenExistingCall( 
+        RTelServer & aServer,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RTelServer &, aServer, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenExistingCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenExistingCall( 
+        RPhone & aPhone,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RPhone &, aPhone, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::OpenExistingCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::OpenExistingCall( 
+        RLine & aLine,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RLine &, aLine, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Close
+// -----------------------------------------------------------------------------
+//
+void RCall::Close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetStatus
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetStatus( 
+        TStatus & aStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetCaps
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetCaps( 
+        TCaps & aCaps ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TCaps &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyCapsChange
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyCapsChange( 
+        TRequestStatus & aStatus,
+        TCaps & aCaps )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TCaps &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyCapsChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyCapsChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetBearerServiceInfo
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetBearerServiceInfo( 
+        TBearerService & aBearerService ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TBearerService &, aBearerService )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetInfo
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetInfo( 
+        TCallInfo & aCallInfo ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TCallInfo &, aCallInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyHookChange
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyHookChange( 
+        TRequestStatus & aStatus,
+        THookStatus & aHookStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        THookStatus &, aHookStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyHookChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyHookChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyStatusChange
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyStatusChange( 
+        TRequestStatus & aStatus,
+        TStatus & aCallStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TStatus &, aCallStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyStatusChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyStatusChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyCallDurationChange
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyCallDurationChange( 
+        TRequestStatus & aStatus,
+        TTimeIntervalSeconds & aTime )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TTimeIntervalSeconds &, aTime )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::NotifyCallDurationChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::NotifyCallDurationChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetCallDuration
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetCallDuration( 
+        TTimeIntervalSeconds & aTime ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TTimeIntervalSeconds &, aTime )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Dial
+// -----------------------------------------------------------------------------
+//
+TInt RCall::Dial( 
+        const TTelNumberC & aTelNumber ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TTelNumberC &, aTelNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Dial
+// -----------------------------------------------------------------------------
+//
+TInt RCall::Dial( 
+        const TDesC8 & aCallParams,
+        const TTelNumberC & aTelNumber ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TDesC8 &, aCallParams, 
+        const TTelNumberC &, aTelNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Dial
+// -----------------------------------------------------------------------------
+//
+void RCall::Dial( 
+        TRequestStatus & aStatus,
+        const TTelNumberC & aTelNumber )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TTelNumberC &, aTelNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Dial
+// -----------------------------------------------------------------------------
+//
+void RCall::Dial( 
+        TRequestStatus & aStatus,
+        const TDesC8 & aCallParams,
+        const TTelNumberC & aTelNumber )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        const TDesC8 &, aCallParams, 
+        const TTelNumberC &, aTelNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::DialCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::DialCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Connect
+// -----------------------------------------------------------------------------
+//
+TInt RCall::Connect(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Connect
+// -----------------------------------------------------------------------------
+//
+TInt RCall::Connect( 
+        const TDesC8 & aCallParams ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TDesC8 &, aCallParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Connect
+// -----------------------------------------------------------------------------
+//
+void RCall::Connect( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Connect
+// -----------------------------------------------------------------------------
+//
+void RCall::Connect( 
+        TRequestStatus & aStatus,
+        const TDesC8 & aCallParams )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TDesC8 &, aCallParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::ConnectCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::ConnectCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AnswerIncomingCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::AnswerIncomingCall(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AnswerIncomingCall
+// -----------------------------------------------------------------------------
+//
+TInt RCall::AnswerIncomingCall( 
+        const TDesC8 & aCallParams ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TDesC8 &, aCallParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AnswerIncomingCall
+// -----------------------------------------------------------------------------
+//
+void RCall::AnswerIncomingCall( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AnswerIncomingCall
+// -----------------------------------------------------------------------------
+//
+void RCall::AnswerIncomingCall( 
+        TRequestStatus & aStatus,
+        const TDesC8 & aCallParams )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TDesC8 &, aCallParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AnswerIncomingCallCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::AnswerIncomingCallCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::HangUp
+// -----------------------------------------------------------------------------
+//
+TInt RCall::HangUp(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::HangUp
+// -----------------------------------------------------------------------------
+//
+void RCall::HangUp( 
+        TRequestStatus & aStatus ) const
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::HangUpCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::HangUpCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::LoanDataPort
+// -----------------------------------------------------------------------------
+//
+TInt RCall::LoanDataPort( 
+        TCommPort & aDataPort ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TCommPort &, aDataPort )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::LoanDataPort
+// -----------------------------------------------------------------------------
+//
+void RCall::LoanDataPort( 
+        TRequestStatus & aStatus,
+        TCommPort & aDataPort )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TCommPort &, aDataPort )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::LoanDataPortCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::LoanDataPortCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::RecoverDataPort
+// -----------------------------------------------------------------------------
+//
+TInt RCall::RecoverDataPort(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::TransferOwnership
+// -----------------------------------------------------------------------------
+//
+TInt RCall::TransferOwnership(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AcquireOwnership
+// -----------------------------------------------------------------------------
+//
+void RCall::AcquireOwnership( 
+        TRequestStatus & aStatus ) const
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AcquireOwnershipCancel
+// -----------------------------------------------------------------------------
+//
+void RCall::AcquireOwnershipCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetOwnershipStatus
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetOwnershipStatus( 
+        TOwnershipStatus & aOwnershipStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TOwnershipStatus &, aOwnershipStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetCallParams
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetCallParams( 
+        TDes8 & aParams ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TDes8 &, aParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::GetFaxSettings
+// -----------------------------------------------------------------------------
+//
+TInt RCall::GetFaxSettings( 
+        TFaxSessionSettings & aSettings ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TFaxSessionSettings &, aSettings )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::SetFaxSettings
+// -----------------------------------------------------------------------------
+//
+TInt RCall::SetFaxSettings( 
+        const TFaxSessionSettings & aSettings ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TFaxSessionSettings &, aSettings )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::AdoptFaxSharedHeaderFile
+// -----------------------------------------------------------------------------
+//
+TInt RCall::AdoptFaxSharedHeaderFile( 
+        const RFile & aSharedFile ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const RFile &, aSharedFile )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::ReferenceCount
+// -----------------------------------------------------------------------------
+//
+TInt RCall::ReferenceCount(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RCall::Destruct
+// -----------------------------------------------------------------------------
+//
+void RCall::Destruct(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::RFax
+// -----------------------------------------------------------------------------
+//
+RFax::RFax(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::ConstructL
+// -----------------------------------------------------------------------------
+//
+void RFax::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::Open
+// -----------------------------------------------------------------------------
+//
+TInt RFax::Open( 
+        RCall & aCall )
+    {
+    SMC_MOCK_METHOD1( TInt, RCall &, aCall )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::Close
+// -----------------------------------------------------------------------------
+//
+void RFax::Close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::Read
+// -----------------------------------------------------------------------------
+//
+void RFax::Read( 
+        TRequestStatus & aStatus,
+        TDes8 & aDes )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aDes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::Write
+// -----------------------------------------------------------------------------
+//
+void RFax::Write( 
+        TRequestStatus & aStatus,
+        const TDesC8 & aDes )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TDesC8 &, aDes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::WaitForEndOfPage
+// -----------------------------------------------------------------------------
+//
+void RFax::WaitForEndOfPage( 
+        TRequestStatus & aStatus ) const
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::TerminateFaxSession
+// -----------------------------------------------------------------------------
+//
+TInt RFax::TerminateFaxSession(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::GetProgress
+// -----------------------------------------------------------------------------
+//
+TInt RFax::GetProgress( 
+        TProgress & aProgress )
+    {
+    SMC_MOCK_METHOD1( TInt, TProgress &, aProgress )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RFax::Destruct
+// -----------------------------------------------------------------------------
+//
+void RFax::Destruct(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::RLine
+// -----------------------------------------------------------------------------
+//
+RLine::RLine(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::ConstructL
+// -----------------------------------------------------------------------------
+//
+void RLine::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::Open
+// -----------------------------------------------------------------------------
+//
+TInt RLine::Open( 
+        RPhone & aPhone,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RPhone &, aPhone, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::Open
+// -----------------------------------------------------------------------------
+//
+TInt RLine::Open( 
+        RTelServer & aServer,
+        const TDesC & aName )
+    {
+    SMC_MOCK_METHOD2( TInt, RTelServer &, aServer, 
+        const TDesC &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::Close
+// -----------------------------------------------------------------------------
+//
+void RLine::Close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::GetCaps
+// -----------------------------------------------------------------------------
+//
+TInt RLine::GetCaps( 
+        TCaps & aCaps ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TCaps &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyCapsChange
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyCapsChange( 
+        TRequestStatus & aStatus,
+        TCaps & aCaps )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TCaps &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyCapsChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyCapsChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::GetStatus
+// -----------------------------------------------------------------------------
+//
+TInt RLine::GetStatus( 
+        RCall::TStatus & aStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, RCall::TStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::GetHookStatus
+// -----------------------------------------------------------------------------
+//
+TInt RLine::GetHookStatus( 
+        RCall::THookStatus & aHookStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, RCall::THookStatus &, aHookStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::EnumerateCall
+// -----------------------------------------------------------------------------
+//
+TInt RLine::EnumerateCall( 
+        TInt & aCount ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TInt &, aCount )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::GetCallInfo
+// -----------------------------------------------------------------------------
+//
+TInt RLine::GetCallInfo( 
+        TInt aIndex,
+        TCallInfo & aCallInfo ) const
+    {
+    SMC_MOCK_METHOD2( TInt, TInt, aIndex, 
+        TCallInfo &, aCallInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::GetInfo
+// -----------------------------------------------------------------------------
+//
+TInt RLine::GetInfo( 
+        TLineInfo & aLineInfo ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TLineInfo &, aLineInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyIncomingCall
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyIncomingCall( 
+        TRequestStatus & aStatus,
+        TName & aName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TName &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyIncomingCallCancel
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyIncomingCallCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyHookChange
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyHookChange( 
+        TRequestStatus & aStatus,
+        RCall::THookStatus & aHookStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        RCall::THookStatus &, aHookStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyHookChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyHookChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyStatusChange
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyStatusChange( 
+        TRequestStatus & aStatus,
+        RCall::TStatus & aLineStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        RCall::TStatus &, aLineStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyStatusChangeCancel
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyStatusChangeCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyCallAdded
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyCallAdded( 
+        TRequestStatus & aStatus,
+        TName & aName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TName &, aName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::NotifyCallAddedCancel
+// -----------------------------------------------------------------------------
+//
+void RLine::NotifyCallAddedCancel(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RLine::Destruct
+// -----------------------------------------------------------------------------
+//
+void RLine::Destruct(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::RTelSubSessionBase
+// -----------------------------------------------------------------------------
+//
+RTelSubSessionBase::RTelSubSessionBase(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::CancelAsyncRequest
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::CancelAsyncRequest( 
+        TInt aReqToCancel ) const
+    {
+    SMC_MOCK_METHOD1( void, TInt, aReqToCancel )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Blank
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Blank( 
+        const TInt aIpc,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TInt, aIpc, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Blank
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Blank( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD3( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        const TDesC8 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD3( TInt, const TInt, aIpc, 
+        const TDesC8 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC8 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC8 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TDes8 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD3( TInt, const TInt, aIpc, 
+        TDes8 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TDes8 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TDes8 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        const TDesC8 & aDes1,
+        const TDesC8 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( TInt, const TInt, aIpc, 
+        const TDesC8 &, aDes1, 
+        const TDesC8 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC8 & aDes1,
+        const TDesC8 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC8 &, aDes1, 
+        const TDesC8 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TDes8 & aDes1,
+        TDes8 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( TInt, const TInt, aIpc, 
+        TDes8 &, aDes1, 
+        TDes8 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TDes8 & aDes1,
+        TDes8 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TDes8 &, aDes1, 
+        TDes8 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        const TDesC16 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD3( TInt, const TInt, aIpc, 
+        const TDesC16 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC16 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC16 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TDes16 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD3( TInt, const TInt, aIpc, 
+        TDes16 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TDes16 & aDes,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TDes16 &, aDes, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        const TDesC16 & aDes1,
+        const TDesC16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( TInt, const TInt, aIpc, 
+        const TDesC16 &, aDes1, 
+        const TDesC16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC16 & aDes1,
+        const TDesC16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC16 &, aDes1, 
+        const TDesC16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        const TDesC8 & aDes1,
+        const TDesC16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( TInt, const TInt, aIpc, 
+        const TDesC8 &, aDes1, 
+        const TDesC16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC8 & aDes1,
+        const TDesC16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC8 &, aDes1, 
+        const TDesC16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TDes16 & aDes1,
+        TDes16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( TInt, const TInt, aIpc, 
+        TDes16 &, aDes1, 
+        TDes16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TDes16 & aDes1,
+        TDes16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TDes16 &, aDes1, 
+        TDes16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TDes8 & aDes1,
+        TDes16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD4( TInt, const TInt, aIpc, 
+        TDes8 &, aDes1, 
+        TDes16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Get
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::Get( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TDes8 & aDes1,
+        TDes16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TDes8 &, aDes1, 
+        TDes16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::SetAndGet
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::SetAndGet( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC8 & aDes1,
+        TDes8 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC8 &, aDes1, 
+        TDes8 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::SetAndGet
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::SetAndGet( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        TDes8 & aDes1,
+        const TDesC16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        TDes8 &, aDes1, 
+        const TDesC16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::SetAndGet
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::SetAndGet( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC8 & aDummyValue,
+        TDes16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC8&, aDummyValue, 
+        TDes16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::SetAndGet
+// -----------------------------------------------------------------------------
+//
+void RTelSubSessionBase::SetAndGet( 
+        const TInt aIpc,
+        TRequestStatus & aStatus,
+        const TDesC16 & aDes1,
+        TDes16 & aDes2,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD5( void, const TInt, aIpc, 
+        TRequestStatus &, aStatus, 
+        const TDesC16 &, aDes1, 
+        TDes16 &, aDes2, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::Set
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::Set( 
+        const TInt aIpc,
+        const RFile & aFile,
+        TReqPriorityType aType ) const
+    {
+    SMC_MOCK_METHOD3( TInt, const TInt, aIpc, 
+        const RFile &, aFile, 
+        TReqPriorityType, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::CancelReq
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::CancelReq( 
+        const TInt aIpc,
+        const TInt aIpcToCancel ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TInt, aIpc, 
+        const TInt, aIpcToCancel )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelSubSessionBase::CancelSubSession
+// -----------------------------------------------------------------------------
+//
+TInt RTelSubSessionBase::CancelSubSession(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::RTelServer
+// -----------------------------------------------------------------------------
+//
+RTelServer::RTelServer(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::Connect
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::Connect( 
+        TInt aMessageSlots )
+    {
+    SMC_MOCK_METHOD1( TInt, TInt, aMessageSlots )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::EnumeratePhones
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::EnumeratePhones( 
+        TInt & aNoOfPhones ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TInt &, aNoOfPhones )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::GetPhoneInfo
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::GetPhoneInfo( 
+        const TInt aIndex,
+        TPhoneInfo & aInfo ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TInt, aIndex, 
+        TPhoneInfo &, aInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::GetTsyName
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::GetTsyName( 
+        const TInt aIndexOfPhone,
+        TDes & aTsyName ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TInt, aIndexOfPhone, 
+        TDes &, aTsyName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::LoadPhoneModule
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::LoadPhoneModule( 
+        const TDesC & aFileName ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TDesC &, aFileName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::UnloadPhoneModule
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::UnloadPhoneModule( 
+        const TDesC & aFileName ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TDesC &, aFileName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::IsSupportedByModule
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::IsSupportedByModule( 
+        const TDesC & aTsyName,
+        const TInt aMixin,
+        TBool & aResult ) const
+    {
+    SMC_MOCK_METHOD3( TInt, const TDesC &, aTsyName, 
+        const TInt, aMixin, 
+        TBool &, aResult )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::GetTsyVersionNumber
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::GetTsyVersionNumber( 
+        const TDesC & aTsyName,
+        TVersion & aVersion ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TDesC &, aTsyName, 
+        TVersion &, aVersion )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::SetPriorityClient
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::SetPriorityClient(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::SetExtendedErrorGranularity
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::SetExtendedErrorGranularity( 
+        const TErrorGranularity aGranularity ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TErrorGranularity, aGranularity )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::__DbgMarkHeap
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::__DbgMarkHeap(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::__DbgCheckHeap
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::__DbgCheckHeap( 
+        TInt aCount )
+    {
+    SMC_MOCK_METHOD1( TInt, TInt, aCount )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::__DbgMarkEnd
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::__DbgMarkEnd( 
+        TInt aCount )
+    {
+    SMC_MOCK_METHOD1( TInt, TInt, aCount )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::__DbgFailNext
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::__DbgFailNext( 
+        TInt aCount )
+    {
+    SMC_MOCK_METHOD1( TInt, TInt, aCount )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::__DbgFailNextAvailable
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::__DbgFailNextAvailable( 
+        TBool & aResult )
+    {
+    SMC_MOCK_METHOD1( TInt, TBool &, aResult )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RTelServer::SetPriorityClientV2
+// -----------------------------------------------------------------------------
+//
+TInt RTelServer::SetPriorityClientV2(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_hbdevicemessagebox.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,305 @@
+/* 
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include <hbdevicemessagebox.h>
+#include <hbaction.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::HbDeviceMessageBox
+// -----------------------------------------------------------------------------
+//
+HbDeviceMessageBox::HbDeviceMessageBox( 
+        const QString & text,
+        HbMessageBox::MessageBoxType type,
+        QObject * parent )
+    :
+    QObject(parent)
+    {
+    Q_UNUSED(text)
+    Q_UNUSED(type)
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::~HbDeviceMessageBox
+// -----------------------------------------------------------------------------
+//
+HbDeviceMessageBox::~HbDeviceMessageBox(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::question
+// -----------------------------------------------------------------------------
+//
+bool HbDeviceMessageBox::question( 
+        const QString & text,
+        const QString & primaryButtonText,
+        const QString & secondaryButtonText )
+    {
+    SMC_MOCK_METHOD3( bool, const QString &, text, 
+        const QString &, primaryButtonText, 
+        const QString &, secondaryButtonText )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::information
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::information( 
+        const QString & text )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, text )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::warning
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::warning( 
+        const QString & text )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, text )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::show
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::show(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::close
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::exec
+// -----------------------------------------------------------------------------
+//
+HbAction * HbDeviceMessageBox::exec(  )
+    {
+    SMC_MOCK_METHOD0( HbAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setText
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setText( 
+        const QString & text )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, text )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::text
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::text(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setIconName
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setIconName( 
+        const QString & iconName )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, iconName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::iconName
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::iconName(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setIconAlignment
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setIconAlignment( 
+        Qt::Alignment align )
+    {
+    //SMC_MOCK_METHOD1( void, Qt::Alignment, align )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::iconAlignment
+// -----------------------------------------------------------------------------
+//
+Qt::Alignment HbDeviceMessageBox::iconAlignment(  ) const
+    {
+    //SMC_MOCK_METHOD0( Qt::Alignment )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setTimeout
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setTimeout( 
+        int timeout )
+    {
+    SMC_MOCK_METHOD1( void, int, timeout )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setTimeout
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setTimeout( 
+        HbPopup::DefaultTimeout timeout )
+    {
+    SMC_MOCK_METHOD1( void, HbPopup::DefaultTimeout, timeout )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::timeout
+// -----------------------------------------------------------------------------
+//
+int HbDeviceMessageBox::timeout(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setDismissPolicy
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setDismissPolicy( 
+        HbPopup::DismissPolicy dismissPolicy )
+    {
+    SMC_MOCK_METHOD1( void, HbPopup::DismissPolicy, dismissPolicy )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::dismissPolicy
+// -----------------------------------------------------------------------------
+//
+HbPopup::DismissPolicy HbDeviceMessageBox::dismissPolicy(  ) const
+    {
+    SMC_MOCK_METHOD0( HbPopup::DismissPolicy )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::primaryAction
+// -----------------------------------------------------------------------------
+//
+HbAction * HbDeviceMessageBox::primaryAction(  ) const
+    {
+    SMC_MOCK_METHOD0( HbAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setPrimaryAction
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setPrimaryAction( 
+        HbAction * hbAction )
+    {
+    SMC_MOCK_METHOD1( void, HbAction *, hbAction )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::secondaryAction
+// -----------------------------------------------------------------------------
+//
+HbAction * HbDeviceMessageBox::secondaryAction(  ) const
+    {
+    SMC_MOCK_METHOD0( HbAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setSecondaryAction
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setSecondaryAction( 
+        HbAction * hbAction )
+    {
+    SMC_MOCK_METHOD1( void, HbAction *, hbAction )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setAnimationDefinition
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setAnimationDefinition( 
+        QString & animationDefinition )
+    {
+    SMC_MOCK_METHOD1( void, QString &, animationDefinition )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::animationDefinition
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::animationDefinition(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::aboutToClose
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::aboutToClose(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_imeikeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include "imeikeysequencehandler.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ImeiKeySequenceHandler::ImeiKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+ImeiKeySequenceHandler::ImeiKeySequenceHandler( 
+        QObject * parent )
+    :
+    KeySequenceHandler(parent),
+    m_messageBox(0)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// ImeiKeySequenceHandler::~ImeiKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+ImeiKeySequenceHandler::~ImeiKeySequenceHandler(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// ImeiKeySequenceHandler::executeKeySequence
+// -----------------------------------------------------------------------------
+//
+bool ImeiKeySequenceHandler::executeKeySequence( 
+        const QString & keySequence )
+    {
+    SMC_MOCK_METHOD1( bool, const QString &, keySequence )
+    }
+
+
+// -----------------------------------------------------------------------------
+// ImeiKeySequenceHandler::destroyMessageBox
+// -----------------------------------------------------------------------------
+//
+void ImeiKeySequenceHandler::destroyMessageBox()
+{
+    
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_keysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include "keysequencehandler.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// KeySequenceHandler::KeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+KeySequenceHandler::KeySequenceHandler( 
+        QObject * parent )
+    :
+    QObject(parent),
+    m_keySequenceValidator("")
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// KeySequenceHandler::~KeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+KeySequenceHandler::~KeySequenceHandler(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// KeySequenceHandler::keySequenceValidator
+// -----------------------------------------------------------------------------
+//
+QString KeySequenceHandler::keySequenceValidator(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// KeySequenceHandler::setKeySequenceValidator
+// -----------------------------------------------------------------------------
+//
+void KeySequenceHandler::setKeySequenceValidator( 
+        const QString & validator )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, validator )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_lifetimerkeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include "lifetimerkeysequencehandler.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// LifeTimerKeySequenceHandler::LifeTimerKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+LifeTimerKeySequenceHandler::LifeTimerKeySequenceHandler( 
+        QObject * parent )
+    :
+    KeySequenceHandler(parent),
+    m_messageBox(0), 
+    m_repository(0)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// LifeTimerKeySequenceHandler::~LifeTimerKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+LifeTimerKeySequenceHandler::~LifeTimerKeySequenceHandler(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// LifeTimerKeySequenceHandler::executeKeySequence
+// -----------------------------------------------------------------------------
+//
+bool LifeTimerKeySequenceHandler::executeKeySequence( 
+        const QString & keySequence )
+    {
+    SMC_MOCK_METHOD1( bool, const QString &, keySequence )
+    }
+
+
+// -----------------------------------------------------------------------------
+// LifeTimerKeySequenceHandler::destroyMessageBox
+// -----------------------------------------------------------------------------
+//
+void LifeTimerKeySequenceHandler::destroyMessageBox()
+{
+    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_manufacturerkeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include "manufacturerkeysequencehandler.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ManufacturerKeySequenceHandler::ManufacturerKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+ManufacturerKeySequenceHandler::ManufacturerKeySequenceHandler( 
+        QObject * parent )
+    :
+    KeySequenceHandler(parent),
+    m_currentRequest(0)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// ManufacturerKeySequenceHandler::~ManufacturerKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+ManufacturerKeySequenceHandler::~ManufacturerKeySequenceHandler(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// ManufacturerKeySequenceHandler::executeKeySequence
+// -----------------------------------------------------------------------------
+//
+bool ManufacturerKeySequenceHandler::executeKeySequence( 
+        const QString & keySequence )
+    {
+    SMC_MOCK_METHOD1( bool, const QString &, keySequence )
+    }
+
+
+// -----------------------------------------------------------------------------
+// ManufacturerKeySequenceHandler::requestOk
+// -----------------------------------------------------------------------------
+//
+void ManufacturerKeySequenceHandler::requestOk(
+        const QVariant &/*returnValue*/)
+    {
+        
+    }
+
+
+// -----------------------------------------------------------------------------
+// ManufacturerKeySequenceHandler::requestError
+// -----------------------------------------------------------------------------
+//
+void ManufacturerKeySequenceHandler::requestError(
+        int /*error*/, const QString& /*errorMessage*/)
+    {
+        
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_qsysteminfo.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,574 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include <qsysteminfo.h>
+#include <QStringList>
+#include <QSize>
+#include <QFile>
+#include <QTextStream>
+#include <QLocale>
+#include <QLibraryInfo>
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QDebug>
+
+QTM_BEGIN_NAMESPACE
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// QSystemStorageInfo::QSystemStorageInfo
+// -----------------------------------------------------------------------------
+//
+QSystemStorageInfo::QSystemStorageInfo( QObject * parent )
+    :
+    QObject(parent)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemStorageInfo::~QSystemStorageInfo
+// -----------------------------------------------------------------------------
+//
+QSystemStorageInfo::~QSystemStorageInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemStorageInfo::totalDiskSpace
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE qlonglong QSystemStorageInfo::totalDiskSpace( 
+        const QString & driveVolume )
+    {
+    SMC_MOCK_METHOD1( Q_INVOKABLE qlonglong, const QString &, driveVolume )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemStorageInfo::availableDiskSpace
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE qlonglong QSystemStorageInfo::availableDiskSpace( 
+        const QString & driveVolume )
+    {
+    SMC_MOCK_METHOD1( Q_INVOKABLE qlonglong, const QString &, driveVolume )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemStorageInfo::logicalDrives
+// -----------------------------------------------------------------------------
+//
+QStringList QSystemStorageInfo::logicalDrives(  )
+    {
+    SMC_MOCK_METHOD0( QStringList )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemStorageInfo::typeForDrive
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE QSystemStorageInfo::DriveType QSystemStorageInfo::typeForDrive( 
+        const QString & driveVolume )
+    {
+    SMC_MOCK_METHOD1( Q_INVOKABLE QSystemStorageInfo::DriveType, const QString &, driveVolume )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::Q_PROPERTY
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::QSystemDeviceInfo ( QObject * parent )
+    : 
+    QObject(parent)
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::~QSystemDeviceInfo
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::~QSystemDeviceInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::inputMethodType
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::InputMethodFlags QSystemDeviceInfo::inputMethodType(  )
+    {
+    SMC_MOCK_METHOD0( QSystemDeviceInfo::InputMethodFlags )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::imei
+// -----------------------------------------------------------------------------
+//
+QString QSystemDeviceInfo::imei(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::imsi
+// -----------------------------------------------------------------------------
+//
+QString QSystemDeviceInfo::imsi(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::manufacturer
+// -----------------------------------------------------------------------------
+//
+QString QSystemDeviceInfo::manufacturer(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::model
+// -----------------------------------------------------------------------------
+//
+QString QSystemDeviceInfo::model(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::productName
+// -----------------------------------------------------------------------------
+//
+QString QSystemDeviceInfo::productName(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::batteryLevel
+// -----------------------------------------------------------------------------
+//
+int QSystemDeviceInfo::batteryLevel(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::batteryStatus
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::BatteryStatus QSystemDeviceInfo::batteryStatus(  )
+    {
+    SMC_MOCK_METHOD0( QSystemDeviceInfo::BatteryStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::isDeviceLocked
+// -----------------------------------------------------------------------------
+//
+bool QSystemDeviceInfo::isDeviceLocked(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::simStatus
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::SimStatus QSystemDeviceInfo::simStatus(  )
+    {
+    SMC_MOCK_METHOD0( QSystemDeviceInfo::SimStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::currentProfile
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::Profile QSystemDeviceInfo::currentProfile(  )
+    {
+    SMC_MOCK_METHOD0( QSystemDeviceInfo::Profile )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDeviceInfo::currentPowerState
+// -----------------------------------------------------------------------------
+//
+QSystemDeviceInfo::PowerState QSystemDeviceInfo::currentPowerState(  )
+    {
+    SMC_MOCK_METHOD0( QSystemDeviceInfo::PowerState )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::QSystemInfo
+// -----------------------------------------------------------------------------
+//
+QSystemInfo::QSystemInfo( QObject * parent )
+    : 
+    QObject(parent)
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::~QSystemInfo
+// -----------------------------------------------------------------------------
+//
+QSystemInfo::~QSystemInfo()
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::currentLanguage
+// -----------------------------------------------------------------------------
+//
+QString QSystemInfo::currentLanguage()
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::availableLanguages
+// -----------------------------------------------------------------------------
+//
+QStringList QSystemInfo::availableLanguages(  )
+    {
+    SMC_MOCK_METHOD0( QStringList )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::currentCountryCode
+// -----------------------------------------------------------------------------
+//
+QString QSystemInfo::currentCountryCode(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::version
+// -----------------------------------------------------------------------------
+//
+QString QSystemInfo::version( 
+        QSystemInfo::Version type,
+        const QString & parameter )
+    {
+    SMC_MOCK_METHOD2( QString, QSystemInfo::Version, type, 
+        const QString &, parameter )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemInfo::hasFeatureSupported
+// -----------------------------------------------------------------------------
+//
+bool QSystemInfo::hasFeatureSupported( 
+        QSystemInfo::Feature feature )
+    {
+    SMC_MOCK_METHOD1( bool, QSystemInfo::Feature, feature )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::QSystemNetworkInfo
+// -----------------------------------------------------------------------------
+//
+QSystemNetworkInfo::QSystemNetworkInfo( QObject * parent )
+    : 
+    QObject(parent)
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::~QSystemNetworkInfo
+// -----------------------------------------------------------------------------
+//
+QSystemNetworkInfo::~QSystemNetworkInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::networkStatus
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE QSystemNetworkInfo::NetworkStatus QSystemNetworkInfo::networkStatus( 
+        QSystemNetworkInfo::NetworkMode mode )
+    {
+    SMC_MOCK_METHOD1( Q_INVOKABLE QSystemNetworkInfo::NetworkStatus, 
+        QSystemNetworkInfo::NetworkMode, mode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::networkSignalStrength
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE int QSystemNetworkInfo::networkSignalStrength( 
+    QSystemNetworkInfo::NetworkMode mode )
+    {
+    SMC_MOCK_METHOD1( Q_INVOKABLE int, 
+        QSystemNetworkInfo::NetworkMode, mode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::macAddress
+// -----------------------------------------------------------------------------
+//
+QString QSystemNetworkInfo::macAddress( 
+    QSystemNetworkInfo::NetworkMode mode )
+    {
+    SMC_MOCK_METHOD1( QString, QSystemNetworkInfo::NetworkMode, mode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::currentMode
+// -----------------------------------------------------------------------------
+//
+QSystemNetworkInfo::NetworkMode QSystemNetworkInfo::currentMode(  )
+    {
+    SMC_MOCK_METHOD0( QSystemNetworkInfo::NetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::cellId
+// -----------------------------------------------------------------------------
+//
+int QSystemNetworkInfo::cellId(  )
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::locationAreaCode
+// -----------------------------------------------------------------------------
+//
+int QSystemNetworkInfo::locationAreaCode(  )
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::currentMobileCountryCode
+// -----------------------------------------------------------------------------
+//
+QString QSystemNetworkInfo::currentMobileCountryCode(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::currentMobileNetworkCode
+// -----------------------------------------------------------------------------
+//
+QString QSystemNetworkInfo::currentMobileNetworkCode(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::homeMobileCountryCode
+// -----------------------------------------------------------------------------
+//
+QString QSystemNetworkInfo::homeMobileCountryCode(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::homeMobileNetworkCode
+// -----------------------------------------------------------------------------
+//
+QString QSystemNetworkInfo::homeMobileNetworkCode(  )
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::networkName
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE QString QSystemNetworkInfo::networkName( 
+    QSystemNetworkInfo::NetworkMode mode )
+    {
+    SMC_MOCK_METHOD1( Q_INVOKABLE QString, QSystemNetworkInfo::NetworkMode, mode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::interfaceForMode
+// -----------------------------------------------------------------------------
+//
+QNetworkInterface QSystemNetworkInfo::interfaceForMode( 
+    QSystemNetworkInfo::NetworkMode mode )
+    {
+    SMC_MOCK_METHOD1( QNetworkInterface, QSystemNetworkInfo::NetworkMode, mode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::connectNotify
+// -----------------------------------------------------------------------------
+//
+void QSystemNetworkInfo::connectNotify( 
+        const char * signal )
+    {
+    SMC_MOCK_METHOD1( void, const char *, signal )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemNetworkInfo::disconnectNotify
+// -----------------------------------------------------------------------------
+//
+void QSystemNetworkInfo::disconnectNotify( 
+        const char * signal )
+    {
+    SMC_MOCK_METHOD1( void, const char *, signal )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemScreenSaver::QSystemScreenSaver
+// -----------------------------------------------------------------------------
+//
+QSystemScreenSaver::QSystemScreenSaver ( QObject * parent )
+    :
+    QObject(parent)
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemScreenSaver::~QSystemScreenSaver
+// -----------------------------------------------------------------------------
+//
+QSystemScreenSaver::~QSystemScreenSaver(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemScreenSaver::screenSaverInhibited
+// -----------------------------------------------------------------------------
+//
+bool QSystemScreenSaver::screenSaverInhibited(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemScreenSaver::setScreenSaverInhibit
+// -----------------------------------------------------------------------------
+//
+Q_INVOKABLE bool QSystemScreenSaver::setScreenSaverInhibit(  )
+    {
+    SMC_MOCK_METHOD0( Q_INVOKABLE bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDisplayInfo::QSystemDisplayInfo
+// -----------------------------------------------------------------------------
+//
+QSystemDisplayInfo::QSystemDisplayInfo( 
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDisplayInfo::~QSystemDisplayInfo
+// -----------------------------------------------------------------------------
+//
+QSystemDisplayInfo::~QSystemDisplayInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDisplayInfo::displayBrightness
+// -----------------------------------------------------------------------------
+//
+int QSystemDisplayInfo::displayBrightness( 
+        int screen )
+    {
+    SMC_MOCK_METHOD1( int, int, screen )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QSystemDisplayInfo::colorDepth
+// -----------------------------------------------------------------------------
+//
+int QSystemDisplayInfo::colorDepth( 
+        int screen )
+    {
+    SMC_MOCK_METHOD1( int, int, screen )
+    }
+
+#include "moc_qsysteminfo.cpp"
+
+QTM_END_NAMESPACE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_qtranslator.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,119 @@
+/* 
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <qcoreapplication.h>
+#include <smcmockclassincludes.h>
+#include "qtranslator.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// QTranslator::QTranslator
+// -----------------------------------------------------------------------------
+//
+QTranslator::QTranslator( 
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QTranslator::~QTranslator
+// -----------------------------------------------------------------------------
+//
+QTranslator::~QTranslator(  )
+    {
+    if (QCoreApplication::instance()) 
+        {
+        QCoreApplication::removeTranslator(this);
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// QTranslator::translate
+// -----------------------------------------------------------------------------
+//
+QString QTranslator::translate( 
+        const char * aContext,
+        const char * sourceText,
+        const char * disambiguation ) const
+    {
+    SMC_MOCK_METHOD3( QString, const char *, aContext, 
+        const char *, sourceText, 
+        const char *, disambiguation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QTranslator::translate
+// -----------------------------------------------------------------------------
+//
+QString QTranslator::translate( 
+        const char * aContext,
+        const char * sourceText,
+        const char * disambiguation,
+        int n ) const
+    {
+    SMC_MOCK_METHOD4( QString, const char *, aContext, 
+        const char *, sourceText, 
+        const char *, disambiguation, 
+        int, n )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QTranslator::isEmpty
+// -----------------------------------------------------------------------------
+//
+bool QTranslator::isEmpty(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QTranslator::load
+// -----------------------------------------------------------------------------
+//
+bool QTranslator::load( 
+        const QString & filename,
+        const QString & directory,
+        const QString & search_delimiters,
+        const QString & suffix )
+    {
+    SMC_MOCK_METHOD4( bool, const QString &, filename, 
+        const QString &, directory, 
+        const QString &, search_delimiters, 
+        const QString &, suffix )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QTranslator::load
+// -----------------------------------------------------------------------------
+//
+bool QTranslator::load( 
+        const uchar * data,
+        int len )
+    {
+    SMC_MOCK_METHOD2( bool, const uchar *, data, 
+        int, len )
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_rmmcustomapi.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,1432 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <smcmockclassincludes.h>
+#include <etelext.h>
+#include <etelmm.h>
+#include <ctsy/rmmcustomapi.h>
+#include "rmmcustomapi.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMmCustomPtrHolder::CMmCustomPtrHolder
+// -----------------------------------------------------------------------------
+//
+CMmCustomPtrHolder::CMmCustomPtrHolder(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CMmCustomPtrHolder::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CMmCustomPtrHolder::ConstructL( 
+        const TInt aSizeOfPtrArray,
+        const TInt aSizeOfPtrCArray )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CMmCustomPtrHolder::NewL
+// -----------------------------------------------------------------------------
+//
+CMmCustomPtrHolder * CMmCustomPtrHolder::NewL( 
+        const TInt aSizeOfPtrArray,
+        const TInt aSizeOfPtrCArray )
+    {
+    SMC_MOCK_NEWL2( CMmCustomPtrHolder *, const TInt, aSizeOfPtrArray, 
+        const TInt, aSizeOfPtrCArray )
+
+    CMmCustomPtrHolder* self = new( ELeave ) CMmCustomPtrHolder;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CMmCustomPtrHolder::~CMmCustomPtrHolder
+// -----------------------------------------------------------------------------
+//
+CMmCustomPtrHolder::~CMmCustomPtrHolder(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::RMmCustomAPI
+// -----------------------------------------------------------------------------
+//
+RMmCustomAPI::RMmCustomAPI(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ConstructL
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::Open
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::Open( 
+        RMobilePhone & aPhone )
+    {
+    SMC_MOCK_METHOD1( TInt, RMobilePhone &, aPhone )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::Close
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::Close(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetDriveMode
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SetDriveMode( 
+        TRequestStatus & aStatus,
+        const TSetDriveMode aModeStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TSetDriveMode, aModeStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ActivateSimLock
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::ActivateSimLock( 
+        const TSimLockPassword & aPassWord,
+        const TLockNumber aNumber ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TSimLockPassword &, aPassWord, 
+        const TLockNumber, aNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ActivateSimLock
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ActivateSimLock( 
+        TRequestStatus & aStatus,
+        const TSimLockPassword & aPassWord,
+        const TLockNumber aNumber ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        const TSimLockPassword &, aPassWord, 
+        const TLockNumber, aNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::DeActivateSimLock
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::DeActivateSimLock( 
+        const TSimLockPassword & aPassWord,
+        const TLockNumber aNumber ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TSimLockPassword &, aPassWord, 
+        const TLockNumber, aNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::DeActivateSimLock
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::DeActivateSimLock( 
+        TRequestStatus & aStatus,
+        const TSimLockPassword & aPassWord,
+        const TLockNumber aNumber ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        const TSimLockPassword &, aPassWord, 
+        const TLockNumber, aNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneParams
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::ReadViagHomeZoneParams( 
+        TViagParams & aParam,
+        TViagElements & aElems ) const
+    {
+    SMC_MOCK_METHOD2( TInt, TViagParams &, aParam, 
+        TViagElements &, aElems )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneParams
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ReadViagHomeZoneParams( 
+        TRequestStatus & aStatus,
+        TViagParams & aParam,
+        TViagElements & aElems )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TViagParams &, aParam, 
+        TViagElements &, aElems )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneCache
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::ReadViagHomeZoneCache( 
+        TViagCacheRecordId & aId,
+        TViagCacheRecordContent & aRecord ) const
+    {
+    SMC_MOCK_METHOD2( TInt, TViagCacheRecordId &, aId, 
+        TViagCacheRecordContent &, aRecord )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReadViagHomeZoneCache
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ReadViagHomeZoneCache( 
+        TRequestStatus & aStatus,
+        TViagCacheRecordId & aId,
+        TViagCacheRecordContent & aRecord )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TViagCacheRecordId &, aId, 
+        TViagCacheRecordContent &, aRecord )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneCache
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::WriteViagHomeZoneCache( 
+        const TViagCacheRecordId & aId,
+        const TViagCacheRecordContent & aRecord ) const
+    {
+    SMC_MOCK_METHOD2( TInt, const TViagCacheRecordId &, aId, 
+        const TViagCacheRecordContent &, aRecord )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetAlwaysOn
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SetAlwaysOn( 
+        TRequestStatus & aStatus,
+        TSetAlwaysOnMode & aMode ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TSetAlwaysOnMode &, aMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyRauEvent
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyRauEvent( 
+        TRequestStatus & aStatus,
+        TRauEventStatus & aEventStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TRauEventStatus &, aEventStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneCache
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::WriteViagHomeZoneCache( 
+        TRequestStatus & aStatus,
+        const TViagCacheRecordId & aId,
+        const TViagCacheRecordContent & aRecord )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        const TViagCacheRecordId &, aId, 
+        const TViagCacheRecordContent &, aRecord )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyDtmfEvent
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyDtmfEvent( 
+        TRequestStatus & aStatus,
+        TDtmfInfo & aInfo )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDtmfInfo &, aInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetDiagnosticInfo
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetDiagnosticInfo( 
+        TName & aCallName ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TName &, aCallName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetAlsBlocked
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::SetAlsBlocked( 
+        const TSetAlsBlock aBlockStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, const TSetAlsBlock, aBlockStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetAlsBlocked
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SetAlsBlocked( 
+        TRequestStatus & aStatus,
+        const TSetAlsBlock aBlockStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TSetAlsBlock, aBlockStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetAlsBlocked
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetAlsBlocked( 
+        TGetAlsBlockStatus & aBlockStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TGetAlsBlockStatus &, aBlockStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetAlsBlocked
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetAlsBlocked( 
+        TRequestStatus & aStatus,
+        TGetAlsBlockStatus & aBlockStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TGetAlsBlockStatus &, aBlockStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetRemoteAlertingToneStatus
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetRemoteAlertingToneStatus( 
+        TRemoteAlertingToneStatus & aToneStatus ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TRemoteAlertingToneStatus &, aToneStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CallOrigin
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::CallOrigin( 
+        TName & aCallName,
+        TCallOrigin & aOrigin ) const
+    {
+    SMC_MOCK_METHOD2( TInt, TName &, aCallName, 
+        TCallOrigin &, aOrigin )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::TerminateCall
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::TerminateCall( 
+        TName & aCallName ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TName &, aCallName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::TerminateCall
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::TerminateCall( 
+        TRequestStatus & aStatus,
+        TName & aCallName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TName &, aCallName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyAlsBlockedChanged
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyAlsBlockedChanged( 
+        TRequestStatus & aStatus,
+        TGetAlsBlockStatus & aBlockStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TGetAlsBlockStatus &, aBlockStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetCipheringInfo
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetCipheringInfo( 
+        TCipheringInfo & aInfo )
+    {
+    SMC_MOCK_METHOD1( TInt, TCipheringInfo &, aInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetCipheringInfo
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetCipheringInfo( 
+        TRequestStatus & aStatus,
+        TCipheringInfo & aInfo )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TCipheringInfo &, aInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyCipheringInfoChange
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyCipheringInfoChange( 
+        TRequestStatus & aStatus,
+        TCipheringInfo & aInfo )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TCipheringInfo &, aInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyNSPSStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyNSPSStatus( 
+        TRequestStatus & aStatus,
+        TNspsStatus & aNspsStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TNspsStatus &, aNspsStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NetWakeup
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NetWakeup( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckAlsPpSupport
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::CheckAlsPpSupport( 
+        TAlsSupport & aSupport ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TAlsSupport &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckAlsPpSupport
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::CheckAlsPpSupport( 
+        TRequestStatus & aStatus,
+        TAlsSupport & aSupport )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TAlsSupport &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetNetworkProviderName
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetNetworkProviderName( 
+        TDes & aNetworkProviderName ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TDes &, aNetworkProviderName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetNetworkProviderName
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetNetworkProviderName( 
+        TRequestStatus & aStatus,
+        TDes & aNetworkProviderName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes &, aNetworkProviderName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::IsBlocked
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::IsBlocked( 
+        TSecurityCodeType & aType,
+        TBool & aIsBlocked )
+    {
+    SMC_MOCK_METHOD2( TInt, TSecurityCodeType &, aType, 
+        TBool &, aIsBlocked )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckSecurityCode
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::CheckSecurityCode( 
+        const TSecurityCodeType aCode )
+    {
+    SMC_MOCK_METHOD1( TInt, const TSecurityCodeType, aCode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckSecurityCode
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::CheckSecurityCode( 
+        TRequestStatus & aStatus,
+        const TSecurityCodeType aCode )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TSecurityCodeType, aCode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetActivePin
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetActivePin( 
+        RMobilePhone::TMobilePhoneSecurityCode & aActivePin )
+    {
+    SMC_MOCK_METHOD1( void, RMobilePhone::TMobilePhoneSecurityCode &, aActivePin )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetAirTimeDuration
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetAirTimeDuration( 
+        TTimeIntervalSeconds & aTime ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TTimeIntervalSeconds &, aTime )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckEmergencyNumber
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::CheckEmergencyNumber( 
+        TEmerNumberCheckMode & aNumMode,
+        TBool & aResult ) const
+    {
+    SMC_MOCK_METHOD2( TInt, TEmerNumberCheckMode &, aNumMode, 
+        TBool &, aResult )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckEmergencyNumber
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::CheckEmergencyNumber( 
+        TRequestStatus & aStatus,
+        TEmerNumberCheckMode & aNumMode,
+        TBool & aResult )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TEmerNumberCheckMode &, aNumMode, 
+        TBool &, aResult )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ClearCallBlackList
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ClearCallBlackList( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ClearCallBlackList
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::ClearCallBlackList(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SsAdditionalInfoNotification
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SsAdditionalInfoNotification( 
+        TRequestStatus & aStatus,
+        TSsAdditionalInfo & aSsAdditionalInfo )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TSsAdditionalInfo &, aSsAdditionalInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SsRequestCompleteNotification
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SsRequestCompleteNotification( 
+        TRequestStatus & aStatus,
+        TInt & aSsStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TInt &, aSsStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyPndCacheReady
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyPndCacheReady( 
+        TRequestStatus & aStatus,
+        TName & aPndName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TName &, aPndName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetPndCacheStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetPndCacheStatus( 
+        TRequestStatus & aStatus,
+        RMmCustomAPI::TPndCacheStatus & aPndStatus,
+        const TName & aPndName ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        RMmCustomAPI::TPndCacheStatus &, aPndStatus, 
+        const TName &, aPndName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetOperatorName
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetOperatorName( 
+        TRequestStatus & aStatus,
+        TOperatorNameInfo & aOperatorNameInfo )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TOperatorNameInfo &, aOperatorNameInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetProgrammableOperatorLogo
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetProgrammableOperatorLogo( 
+        TRequestStatus & aStatus,
+        TOperatorId & aOperatorId,
+        TOperatorLogo & aLogo )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TOperatorId &, aOperatorId, 
+        TOperatorLogo &, aLogo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyProgrammableOperatorLogoChange
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyProgrammableOperatorLogoChange( 
+        TRequestStatus & aStatus,
+        TOperatorId & aOperatorId )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TOperatorId &, aOperatorId )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SatRefreshCompleteNotification
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SatRefreshCompleteNotification( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifySsNetworkEvent
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifySsNetworkEvent( 
+        TRequestStatus & aStatus,
+        TSsTypeAndMode & aSsTypeAndMode,
+        TSsInfo & aSsInfo )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TSsTypeAndMode &, aSsTypeAndMode, 
+        TSsInfo &, aSsInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CancelUssdSession
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::CancelUssdSession(  ) const
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CancelUssdSession
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::CancelUssdSession( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckTwoDigitDialSupport
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::CheckTwoDigitDialSupport( 
+        TTwoDigitDialSupport & aSupport ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TTwoDigitDialSupport &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::CheckTwoDigitDialSupport
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::CheckTwoDigitDialSupport( 
+        TRequestStatus & aStatus,
+        TTwoDigitDialSupport & aSupport )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TTwoDigitDialSupport &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ResetNetServer
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ResetNetServer(  ) const
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ResetNetServer
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ResetNetServer( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReleaseFile
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ReleaseFile( 
+        TRequestStatus & aStatus,
+        const TDesC & aFileName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TDesC &, aFileName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::RestartFile
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::RestartFile( 
+        TRequestStatus & aStatus,
+        const TDesC & aFileName )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TDesC &, aFileName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::StartSimCbTopicBrowsing
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::StartSimCbTopicBrowsing(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetNextSimCbTopic
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetNextSimCbTopic( 
+        TSimCbTopic & aSimCbTopic )
+    {
+    SMC_MOCK_METHOD1( TInt, TSimCbTopic &, aSimCbTopic )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetNextSimCbTopic
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetNextSimCbTopic( 
+        TRequestStatus & aStatus,
+        TSimCbTopic & aSimCbTopic )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TSimCbTopic &, aSimCbTopic )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::DeleteSimCbTopic
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::DeleteSimCbTopic( 
+        const TUint & aSimCbTopicNumber )
+    {
+    SMC_MOCK_METHOD1( TInt, const TUint &, aSimCbTopicNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::DeleteSimCbTopic
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::DeleteSimCbTopic( 
+        TRequestStatus & aStatus,
+        const TUint & aSimCbTopicNumber )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TUint &, aSimCbTopicNumber )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyNetworkConnectionFailure
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyNetworkConnectionFailure( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SendAPDUReq
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::SendAPDUReq( 
+        TApdu & anAPDUReq )
+    {
+    SMC_MOCK_METHOD1( TInt, TApdu &, anAPDUReq )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SendAPDUReq
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SendAPDUReq( 
+        TRequestStatus & aStatus,
+        TApdu & anAPDUReq )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TApdu &, anAPDUReq )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::DisablePhoneLock
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::DisablePhoneLock( 
+        TRequestStatus & aStatus,
+        RMobilePhone::TMobilePassword & aVerifyCode ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        RMobilePhone::TMobilePassword &, aVerifyCode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyEGprsInfoChange
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyEGprsInfoChange( 
+        TRequestStatus & aStatus,
+        TDes8 & aGprsInfo ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aGprsInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetEGprsInfo
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetEGprsInfo( 
+        TRequestStatus & aStatus,
+        TDes8 & aGprsInfo ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aGprsInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReadSimFile
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ReadSimFile( 
+        TRequestStatus & aStatus,
+        TDes8 & aSimFileInfo,
+        TDes8 & aResponseBytes ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TDes8 &, aSimFileInfo, 
+        TDes8 &, aResponseBytes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetLifeTime
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetLifeTime( 
+        TDes8 & aLifeTimeInfo ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TDes8 &, aLifeTimeInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetLifeTime
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetLifeTime( 
+        TRequestStatus & aStatus,
+        TDes8 & aLifeTimeInfo ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aLifeTimeInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::Get3GPBInfo
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::Get3GPBInfo( 
+        TRequestStatus & aStatus,
+        T3GPBInfo & aInfo ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        T3GPBInfo &, aInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkModes
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetSystemNetworkModes( 
+        TUint32 & aSupportedNetworkModes ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32 &, aSupportedNetworkModes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkModes
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetSystemNetworkModes( 
+        TRequestStatus & aStatus,
+        TUint32 & aSupportedNetworkModes ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TUint32 &, aSupportedNetworkModes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkMode
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::SetSystemNetworkMode( 
+        const TNetworkModeCaps aNetworkMode )
+    {
+    SMC_MOCK_METHOD1( TInt, const TNetworkModeCaps, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkMode
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SetSystemNetworkMode( 
+        TRequestStatus & aStatus,
+        const TNetworkModeCaps aNetworkMode )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        const TNetworkModeCaps, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetCurrentSystemNetworkModes
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetCurrentSystemNetworkModes( 
+        TUint32 & aCurrentNetworkModes ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32 &, aCurrentNetworkModes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetCurrentSystemNetworkModes
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetCurrentSystemNetworkModes( 
+        TRequestStatus & aStatus,
+        TUint32 & aCurrentNetworkModes ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TUint32 &, aCurrentNetworkModes )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkBand
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::GetSystemNetworkBand( 
+        TBandSelection & aSupportedNetworkBand,
+        TNetworkModeCaps & aNetworkMode ) const
+    {
+    SMC_MOCK_METHOD2( TInt, TBandSelection &, aSupportedNetworkBand, 
+        TNetworkModeCaps &, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetSystemNetworkBand
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetSystemNetworkBand( 
+        TRequestStatus & aStatus,
+        TBandSelection & aSupportedNetworkBand,
+        TNetworkModeCaps & aNetworkMode ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        TBandSelection &, aSupportedNetworkBand, 
+        TNetworkModeCaps &, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkBand
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::SetSystemNetworkBand( 
+        const TBandSelection aNetworkBand,
+        const TNetworkModeCaps aNetworkMode )
+    {
+    SMC_MOCK_METHOD2( TInt, const TBandSelection, aNetworkBand, 
+        const TNetworkModeCaps, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetSystemNetworkBand
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SetSystemNetworkBand( 
+        TRequestStatus & aStatus,
+        const TBandSelection aNetworkBand,
+        const TNetworkModeCaps aNetworkMode )
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aStatus, 
+        const TBandSelection, aNetworkBand, 
+        const TNetworkModeCaps, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::PowerSimOn
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::PowerSimOn( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::PowerSimOff
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::PowerSimOff( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SimWarmReset
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SimWarmReset( 
+        TRequestStatus & aStatus )
+    {
+    SMC_MOCK_METHOD1( void, TRequestStatus &, aStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SendAPDUReq
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SendAPDUReq( 
+        TRequestStatus & aStatus,
+        TApduParameters & aParams )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TApduParameters &, aParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetATR
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetATR( 
+        TRequestStatus & aStatus,
+        TDes8 & aATR )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aATR )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetSimCardReaderStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetSimCardReaderStatus( 
+        TRequestStatus & aStatus,
+        TSimCardReaderStatus & aCardReaderStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TSimCardReaderStatus &, aCardReaderStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifySimCardStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifySimCardStatus( 
+        TRequestStatus & aStatus,
+        TSIMCardStatus & aCardStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TSIMCardStatus &, aCardStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetWlanSimAuthenticationData
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetWlanSimAuthenticationData( 
+        TRequestStatus & aReqStatus,
+        TDes8 & aAuthenticationData ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aReqStatus, 
+        TDes8 &, aAuthenticationData )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::SetSimMessageStatusRead
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::SetSimMessageStatusRead( 
+        TTime & aTime,
+        TInt & aTimezoneDiff ) const
+    {
+    SMC_MOCK_METHOD2( void, TTime &, aTime, 
+        TInt &, aTimezoneDiff )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneUHZIUESettings
+// -----------------------------------------------------------------------------
+//
+TInt RMmCustomAPI::WriteViagHomeZoneUHZIUESettings( 
+        TViagUHZIUESettings & aSettings ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TViagUHZIUESettings &, aSettings )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::WriteViagHomeZoneUHZIUESettings
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::WriteViagHomeZoneUHZIUESettings( 
+        TRequestStatus & aStatus,
+        TViagUHZIUESettings & aSettings ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TViagUHZIUESettings &, aSettings )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::ReadHSxPAStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::ReadHSxPAStatus( 
+        TRequestStatus & aStatus,
+        THSxPAStatus & aHSxPAStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        THSxPAStatus &, aHSxPAStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::WriteHSxPAStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::WriteHSxPAStatus( 
+        TRequestStatus & aStatus,
+        THSxPAStatus & aHSxPAStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        THSxPAStatus &, aHSxPAStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyHSxPAStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyHSxPAStatus( 
+        TRequestStatus & aStatus,
+        THSxPAStatus & aHSxPAStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        THSxPAStatus &, aHSxPAStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetIccCallForwardingIndicatorStatus
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetIccCallForwardingIndicatorStatus( 
+        TRequestStatus & aReqStatus,
+        TDes8 & aCFIndicators ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aReqStatus, 
+        TDes8 &, aCFIndicators )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyIccCallForwardingStatusChange
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyIccCallForwardingStatusChange( 
+        TRequestStatus & aReqStatus,
+        TDes8 & aCFIndicators )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aReqStatus, 
+        TDes8 &, aCFIndicators )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetCellInfo
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetCellInfo( 
+        TRequestStatus & aStatus,
+        TDes8 & aCellInfo ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aCellInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyCellInfoChange
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyCellInfoChange( 
+        TRequestStatus & aStatus,
+        TDes8 & aCellInfo ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TDes8 &, aCellInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::GetUSIMServiceSupport
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::GetUSIMServiceSupport( 
+        TRequestStatus & aStatus,
+        TAppSupport & aParams ) const
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TAppSupport &, aParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::NotifyRemoteAlertingToneStatusChange
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::NotifyRemoteAlertingToneStatusChange( 
+        TRequestStatus & aStatus,
+        TRemoteAlertingToneStatus & aToneStatus )
+    {
+    SMC_MOCK_METHOD2( void, TRequestStatus &, aStatus, 
+        TRemoteAlertingToneStatus &, aToneStatus )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMmCustomAPI::Destruct
+// -----------------------------------------------------------------------------
+//
+void RMmCustomAPI::Destruct(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_xqaiwrequest.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,326 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <qglobal.h>
+#include <smcmockclassincludes.h>
+#include "xqaiwrequest.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation,
+        bool embedded )
+    :
+    QObject()
+    {
+    Q_UNUSED(descriptor)
+    Q_UNUSED(operation)
+    Q_UNUSED(embedded)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const QUrl & uri,
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation )
+    :
+    QObject( )
+    {
+    Q_UNUSED(uri)
+    Q_UNUSED(descriptor)
+    Q_UNUSED(operation)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const QFile & file,
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation )
+    :
+    QObject()
+    {
+    Q_UNUSED(file)
+    Q_UNUSED(descriptor)
+    Q_UNUSED(operation)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::XQAiwRequest( 
+        const XQSharableFile & file,
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & operation )
+    :
+    QObject()
+    {
+    Q_UNUSED(file)
+    Q_UNUSED(descriptor)
+    Q_UNUSED(operation)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::~XQAiwRequest
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest::~XQAiwRequest(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::createAction
+// -----------------------------------------------------------------------------
+//
+QAction * XQAiwRequest::createAction(  )
+    {
+    SMC_MOCK_METHOD0( QAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setArguments
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setArguments( 
+        const QList<QVariant> & arguments )
+    {
+    SMC_MOCK_METHOD1( void, const QList<QVariant> &, arguments )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::lastError
+// -----------------------------------------------------------------------------
+//
+int XQAiwRequest::lastError(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::lastErrorMessage
+// -----------------------------------------------------------------------------
+//
+const QString & XQAiwRequest::lastErrorMessage(  ) const
+    {
+    SMC_MOCK_METHOD0( const QString & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::descriptor
+// -----------------------------------------------------------------------------
+//
+const XQAiwInterfaceDescriptor & XQAiwRequest::descriptor(  ) const
+    {
+    SMC_MOCK_METHOD0( const XQAiwInterfaceDescriptor & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::send
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::send(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::send
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::send( 
+        QVariant & returnValue )
+    {
+    SMC_MOCK_METHOD1( bool, QVariant &, returnValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setEmbedded
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setEmbedded( 
+        bool embedded )
+    {
+    SMC_MOCK_METHOD1( void, bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::isEmbedded
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::isEmbedded(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setOperation
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setOperation( 
+        const QString & operation )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, operation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::operation
+// -----------------------------------------------------------------------------
+//
+const QString & XQAiwRequest::operation(  ) const
+    {
+    SMC_MOCK_METHOD0( const QString & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setSynchronous
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setSynchronous( 
+        bool synchronous )
+    {
+    SMC_MOCK_METHOD1( void, bool, synchronous )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::isSynchronous
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::isSynchronous(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setBackground
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setBackground( 
+        bool background )
+    {
+    SMC_MOCK_METHOD1( void, bool, background )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::isBackground
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::isBackground(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::setInfo
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::setInfo( 
+        const XQRequestInfo & requestInfo )
+    {
+    SMC_MOCK_METHOD1( void, const XQRequestInfo &, requestInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::info
+// -----------------------------------------------------------------------------
+//
+XQRequestInfo XQAiwRequest::info(  ) const
+    {
+    SMC_MOCK_METHOD0( XQRequestInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::results
+// -----------------------------------------------------------------------------
+//
+const QVariant & XQAiwRequest::results(  ) const
+    {
+    SMC_MOCK_METHOD0( const QVariant & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::sendExecute
+// -----------------------------------------------------------------------------
+//
+bool XQAiwRequest::sendExecute(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::handleAsyncResponse
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::handleAsyncResponse(const QVariant& value)
+{
+    Q_UNUSED(value);
+}
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::sendFromAction
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::sendFromAction(bool checked)
+{
+    Q_UNUSED(checked);
+}
+
+
+// -----------------------------------------------------------------------------
+// XQAiwRequest::handleAsyncError
+// -----------------------------------------------------------------------------
+//
+void XQAiwRequest::handleAsyncError(int err)
+{
+    Q_UNUSED(err);    
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_xqappmgr.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,299 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#include <QDebug>
+#include <smcmockclassincludes.h>
+#include <xqaiwrequest.h>
+#include <xqaiwinterfacedescriptor.h>
+#include <QList>
+#include "xqappmgr.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::XQApplicationManager
+// -----------------------------------------------------------------------------
+//
+XQApplicationManager::XQApplicationManager(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::~XQApplicationManager
+// -----------------------------------------------------------------------------
+//
+XQApplicationManager::~XQApplicationManager(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QString & interface,
+        const QString & operation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const QString &, interface, 
+        const QString &, operation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const XQAiwInterfaceDescriptor & implementation,
+        const QString & operation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const XQAiwInterfaceDescriptor &, implementation, 
+        const QString &, operation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QString & service,
+        const QString & interface,
+        const QString & operation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD4( XQAiwRequest *, const QString &, service, 
+        const QString &, interface, 
+        const QString &, operation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QString & interface,
+        const QString & operation )
+    {
+    SMC_MOCK_METHOD2( QList <XQAiwInterfaceDescriptor >, const QString &, interface, 
+        const QString &, operation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QString & service,
+        const QString & interface,
+        const QString & operation )
+    {
+    SMC_MOCK_METHOD3( QList <XQAiwInterfaceDescriptor >, const QString &, service, 
+        const QString &, interface, 
+        const QString &, operation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QUrl & url,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD2( XQAiwRequest *, const QUrl &, url, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QUrl & url,
+        const XQAiwInterfaceDescriptor & implementation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const QUrl &, url, 
+        const XQAiwInterfaceDescriptor &, implementation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QFile & file,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD2( XQAiwRequest *, const QFile &, file, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const QFile & file,
+        const XQAiwInterfaceDescriptor & implementation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const QFile &, file, 
+        const XQAiwInterfaceDescriptor &, implementation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QUrl & uri )
+    {
+    SMC_MOCK_METHOD1( QList <XQAiwInterfaceDescriptor >, const QUrl &, uri )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const QFile & file )
+    {
+    SMC_MOCK_METHOD1( QList <XQAiwInterfaceDescriptor >, const QFile &, file )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::list
+// -----------------------------------------------------------------------------
+//
+QList <XQAiwInterfaceDescriptor > XQApplicationManager::list( 
+        const XQSharableFile & file )
+    {
+    SMC_MOCK_METHOD1( QList <XQAiwInterfaceDescriptor >, const XQSharableFile &, file )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const XQSharableFile & file,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD2( XQAiwRequest *, const XQSharableFile &, file, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::create
+// -----------------------------------------------------------------------------
+//
+XQAiwRequest * XQApplicationManager::create( 
+        const XQSharableFile & file,
+        const XQAiwInterfaceDescriptor & implementation,
+        bool embedded )
+    {
+    SMC_MOCK_METHOD3( XQAiwRequest *, const XQSharableFile &, file, 
+        const XQAiwInterfaceDescriptor &, implementation, 
+        bool, embedded )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::lastError
+// -----------------------------------------------------------------------------
+//
+int XQApplicationManager::lastError(  ) const
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::isRunning
+// -----------------------------------------------------------------------------
+//
+bool XQApplicationManager::isRunning( 
+        const XQAiwInterfaceDescriptor & implementation ) const
+    {
+    SMC_MOCK_METHOD1( bool, const XQAiwInterfaceDescriptor &, implementation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::getDrmAttributes
+// -----------------------------------------------------------------------------
+//
+bool XQApplicationManager::getDrmAttributes( 
+        const QFile & file,
+        const QList<int> & attributeNames,
+        QVariantList & attributeValues )
+    {
+    SMC_MOCK_METHOD3( bool, const QFile &, file, 
+        const QList<int> &, attributeNames, 
+        QVariantList &, attributeValues )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::getDrmAttributes
+// -----------------------------------------------------------------------------
+//
+bool XQApplicationManager::getDrmAttributes( 
+        const XQSharableFile & file,
+        const QList<int> & attributeNames,
+        QVariantList & attributeValues )
+    {
+    SMC_MOCK_METHOD3( bool, const XQSharableFile &, file, 
+        const QList<int> &, attributeNames, 
+        QVariantList &, attributeValues )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQApplicationManager::status
+// -----------------------------------------------------------------------------
+//
+XQApplicationManager::ServiceStatus XQApplicationManager::status( 
+        const XQAiwInterfaceDescriptor & implementation )
+    {
+    SMC_MOCK_METHOD1( ServiceStatus, const XQAiwInterfaceDescriptor &, implementation )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_xqservicerequest.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,296 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+#include <QDebug>
+#include <QVariant>
+#include <smcmockclassincludes.h>
+#include <xqservicerequest.h>
+#include <xqrequestinfo.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::XQServiceRequest
+// -----------------------------------------------------------------------------
+//
+XQServiceRequest::XQServiceRequest(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::XQServiceRequest
+// -----------------------------------------------------------------------------
+//
+XQServiceRequest::XQServiceRequest( 
+        const QString & service,
+        const QString & message,
+        const bool & synchronous )
+    {
+    Q_UNUSED(service)
+    Q_UNUSED(message)
+    Q_UNUSED(synchronous)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::XQServiceRequest
+// -----------------------------------------------------------------------------
+//
+XQServiceRequest::XQServiceRequest( 
+        const XQServiceRequest & orig )
+    {
+    Q_UNUSED(orig)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::XQServiceRequest
+// -----------------------------------------------------------------------------
+//
+XQServiceRequest::XQServiceRequest( 
+        const XQAiwInterfaceDescriptor & descriptor,
+        const QString & message,
+        const bool & synchronous )
+    {
+    Q_UNUSED(descriptor)
+    Q_UNUSED(message)
+    Q_UNUSED(synchronous)
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::~XQServiceRequest
+// -----------------------------------------------------------------------------
+//
+XQServiceRequest::~XQServiceRequest(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::send
+// -----------------------------------------------------------------------------
+//
+bool XQServiceRequest::send(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::send
+// -----------------------------------------------------------------------------
+//
+bool XQServiceRequest::send( 
+        QVariant & retValue )
+    {
+    SMC_MOCK_METHOD1( bool, QVariant &, retValue )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::isNull
+// -----------------------------------------------------------------------------
+//
+bool XQServiceRequest::isNull(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::setSynchronous
+// -----------------------------------------------------------------------------
+//
+void XQServiceRequest::setSynchronous( 
+        const bool & synchronous )
+    {
+    SMC_MOCK_METHOD1( void, const bool &, synchronous )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::isSynchronous
+// -----------------------------------------------------------------------------
+//
+bool XQServiceRequest::isSynchronous(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::setService
+// -----------------------------------------------------------------------------
+//
+void XQServiceRequest::setService( 
+        const QString & service )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, service )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::service
+// -----------------------------------------------------------------------------
+//
+QString XQServiceRequest::service(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::setMessage
+// -----------------------------------------------------------------------------
+//
+void XQServiceRequest::setMessage( 
+        const QString & message )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, message )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::message
+// -----------------------------------------------------------------------------
+//
+QString XQServiceRequest::message(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::arguments
+// -----------------------------------------------------------------------------
+//
+const QList <QVariant > & XQServiceRequest::arguments(  ) const
+    {
+    SMC_MOCK_METHOD0( const QList <QVariant > & )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::setArguments
+// -----------------------------------------------------------------------------
+//
+void XQServiceRequest::setArguments( 
+        const QList<QVariant> & arguments )
+    {
+    SMC_MOCK_METHOD1( void, const QList<QVariant> &, arguments )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::latestError
+// -----------------------------------------------------------------------------
+//
+int XQServiceRequest::latestError(  )
+    {
+    SMC_MOCK_METHOD0( int )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::setInfo
+// -----------------------------------------------------------------------------
+//
+void XQServiceRequest::setInfo( 
+        const XQRequestInfo & requestInfo )
+    {
+    SMC_MOCK_METHOD1( void, const XQRequestInfo &, requestInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::info
+// -----------------------------------------------------------------------------
+//
+XQRequestInfo XQServiceRequest::info(  ) const
+    {
+    //SMC_MOCK_METHOD0( XQRequestInfo )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::=
+// -----------------------------------------------------------------------------
+//
+XQServiceRequest & XQServiceRequest::operator=( 
+        const XQServiceRequest & orig )
+    {
+    SMC_MOCK_METHOD1( XQServiceRequest &, const XQServiceRequest &, orig )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::serializeArguments
+// -----------------------------------------------------------------------------
+//
+QByteArray XQServiceRequest::serializeArguments( 
+        const XQServiceRequest & request )
+    {
+    SMC_MOCK_METHOD1( QByteArray, const XQServiceRequest &, request )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::deserializeArguments
+// -----------------------------------------------------------------------------
+//
+void XQServiceRequest::deserializeArguments( 
+        XQServiceRequest & request,
+        const QByteArray & data )
+    {
+    SMC_MOCK_METHOD2( void, XQServiceRequest &, request, 
+        const QByteArray &, data )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::serialize
+// -----------------------------------------------------------------------------
+//
+template <typename Stream > void XQServiceRequest::serialize( 
+        Stream & stream ) const
+    {
+    SMC_MOCK_METHOD1( template <typename Stream > void, Stream &, stream )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQServiceRequest::deserialize
+// -----------------------------------------------------------------------------
+//
+template <typename Stream > void XQServiceRequest::deserialize( 
+        Stream & stream )
+    {
+    SMC_MOCK_METHOD1( template <typename Stream > void, Stream &, stream )
+    }
+
+void XQServiceRequest::addArg(const QVariant& v)
+{
+    Q_UNUSED(v)
+}
+
+bool XQServiceRequest::handleSharableFileArgs()
+{
+    SMC_MOCK_METHOD0( bool )
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/qtestmains60.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+
+#ifndef QTESTMAINS60
+#define QTESTMAINS60
+
+#define QTEST_MAIN_S60(TestObject) \
+int main(int argc, char *argv[]) \
+{ \
+char *new_argv[3]; \
+QCoreApplication app(argc, argv); \
+\
+QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \
+QByteArray   bytes  = str.toAscii(); \
+\
+char arg1[] = "-o"; \
+\
+new_argv[0] = argv[0]; \
+new_argv[1] = arg1; \
+new_argv[2] = bytes.data(); \
+\
+TestObject tc; \
+return QTest::qExec(&tc, 3, new_argv); \
+}
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_imeikeysequencehandler/ut_imeikeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,91 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include <qsysteminfo.h>
+#include <hbdevicemessagebox.h>
+#include "ut_imeikeysequencehandler.h"
+#include "imeikeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "qtestmains60.h"
+
+QTM_USE_NAMESPACE
+
+UT_ImeiKeySequenceHandler::UT_ImeiKeySequenceHandler()
+    : 
+    m_handler(0)
+{
+    
+}
+
+
+UT_ImeiKeySequenceHandler::~UT_ImeiKeySequenceHandler()
+{
+    delete m_handler;
+}
+
+
+void UT_ImeiKeySequenceHandler::init()
+{
+    initialize();
+    
+    m_handler = new ImeiKeySequenceHandler();
+}
+
+
+void UT_ImeiKeySequenceHandler::cleanup()
+{
+    reset();
+    
+    delete m_handler;
+    m_handler = 0;
+}
+
+
+void UT_ImeiKeySequenceHandler::t_keySequenceValidator()
+{
+    expect("KeySequenceHandler::setKeySequenceValidator")
+        .with(QRegExp::escape(KCodeImei));
+    
+    QScopedPointer<ImeiKeySequenceHandler> handler(
+        new ImeiKeySequenceHandler());
+    
+    QVERIFY(verify());
+}
+
+
+void UT_ImeiKeySequenceHandler::t_executeValidKeySequence()
+{
+    const QString KSerialNumber = "1234567890";
+    EXPECT(QtMobility::QSystemDeviceInfo::imei).returns(KSerialNumber);
+    EXPECT(HbDeviceMessageBox::setTimeout).with(HbPopup::NoTimeout);
+    EXPECT(HbDeviceMessageBox::show);
+    bool handled = m_handler->executeKeySequence(KCodeImei);
+    QCOMPARE(handled, true);
+    QVERIFY(verify());
+}
+
+
+void UT_ImeiKeySequenceHandler::t_executeInvalidKeySequence()
+{
+    const QString KUnknownSequence("123");
+    bool handled = m_handler->executeKeySequence(KUnknownSequence);
+    QCOMPARE(handled, false);
+}
+
+QTEST_MAIN_S60(UT_ImeiKeySequenceHandler)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_imeikeysequencehandler/ut_imeikeysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef UT_IMEIKEYSEQUENCEHANDLER_H
+#define UT_IMEIKEYSEQUENCEHANDLER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class ImeiKeySequenceHandler;
+
+class UT_ImeiKeySequenceHandler : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_ImeiKeySequenceHandler();
+    ~UT_ImeiKeySequenceHandler();
+    
+private slots:
+
+    void init();
+    void cleanup();
+
+    void t_keySequenceValidator();
+    void t_executeValidKeySequence();
+    void t_executeInvalidKeySequence();
+    
+private:
+    ImeiKeySequenceHandler *m_handler;
+};
+
+#endif  // UT_IMEIKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_imeikeysequencehandler/ut_imeikeysequencehandler.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET =
+MOC_DIR = moc
+CONFIG += hb qtestlib
+DEFINES += QT_NO_DEBUG_STREAM
+DEFINES += QT_BUILD_SYSINFO_LIB QT_MAKEDLL
+
+QT -= gui
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += . ../shared ../../inc
+    
+    HEADERS += ../../inc/imeikeysequencehandler.h
+    SOURCES += ../../src/imeikeysequencehandler.cpp
+
+    HEADERS += ut_imeikeysequencehandler.h
+    SOURCES += ut_imeikeysequencehandler.cpp
+    
+    #MOCKED DEPENDENCIES
+    HEADERS +=                                  \
+        ../../inc/keysequencehandler.h          \
+        /epoc32/include/mw/qsysteminfo.h
+    SOURCES +=                                  \ 
+        ../shared/mock_keysequencehandler.cpp   \
+        ../shared/mock_qsysteminfo.cpp          \
+        ../shared/mock_hbdevicemessagebox.cpp
+    
+    LIBS += -lmocklib -lsymbianmock -lxqserviceutil
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencehandler/ut_keysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,77 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include "ut_keysequencehandler.h"
+#include "keysequencehandler.h"
+#include "qtestmains60.h"
+
+bool TestClassDriver::executeKeySequence(const QString &keySequence)
+{
+    Q_UNUSED(keySequence)
+    return true;
+}
+
+void TestClassDriver::setKeySequenceValidator(const QString &validator)
+{
+    KeySequenceHandler::setKeySequenceValidator(validator);
+}
+
+UT_KeySequenceHandler::UT_KeySequenceHandler()
+    :
+    m_handler(0)
+{
+    
+}
+
+UT_KeySequenceHandler::~UT_KeySequenceHandler()
+{
+    
+}
+
+void UT_KeySequenceHandler::init()
+{
+    initialize();
+    
+    m_handler = new TestClassDriver();
+}
+
+void UT_KeySequenceHandler::cleanup()
+{
+    reset();
+    
+    delete m_handler;
+    m_handler = 0;
+}
+
+
+void UT_KeySequenceHandler::t_keySequenceValidator()
+{
+    QString validator = m_handler->keySequenceValidator();
+    QCOMPARE(validator, QString(""));
+}
+
+
+void UT_KeySequenceHandler::t_setKeySequenceValidator()
+{
+    const QString KValidatorString = "123";
+    m_handler->setKeySequenceValidator(KValidatorString);
+    QCOMPARE(m_handler->keySequenceValidator(), KValidatorString);
+}
+
+QTEST_MAIN_S60(UT_KeySequenceHandler)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencehandler/ut_keysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef UT_KEYSEQUENCEHANDLER_H
+#define UT_KEYSEQUENCEHANDLER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include "keysequencehandler.h"
+
+class TestClassDriver;
+
+class TestClassDriver : public KeySequenceHandler
+{
+public:
+    bool executeKeySequence(const QString &keySequence);
+    void setKeySequenceValidator(const QString &validator);  
+};
+
+class UT_KeySequenceHandler : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_KeySequenceHandler();
+    ~UT_KeySequenceHandler();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_keySequenceValidator();
+    void t_setKeySequenceValidator();
+    
+private:
+    TestClassDriver *m_handler;
+};
+
+#endif  // UT_KEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencehandler/ut_keysequencehandler.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,37 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET =
+MOC_DIR = moc
+CONFIG += hb qtestlib
+DEFINES += QT_NO_DEBUG_STREAM
+
+QT -= gui
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += . ../shared ../../inc
+    
+    HEADERS += ../../inc/keysequencehandler.h
+    SOURCES += ../../src/keysequencehandler.cpp
+
+    HEADERS += ut_keysequencehandler.h
+    SOURCES += ut_keysequencehandler.cpp
+    
+    LIBS += -lmocklib -lsymbianmock -lxqserviceutil
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprov.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET = ut_keysequencerecognitionprovider
+CONFIG += hb qtestlib
+MOC_DIR = moc
+DEFINES += QT_NO_DEBUG_STREAM
+
+QT -= gui
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += . ../shared ../../inc
+    
+    HEADERS += ../../inc/keysequencerecognitionprovider.h
+    SOURCES += ../../src/keysequencerecognitionprovider.cpp
+
+    HEADERS += ut_keysequencerecognitionprovider.h
+    SOURCES += ut_keysequencerecognitionprovider.cpp
+    
+    #MOCKED DEPENDENCIES
+    HEADERS +=                                            \
+        ../../inc/keysequencehandler.h                    \
+        ../../inc/imeikeysequencehandler.h                \
+        ../../inc/lifetimerkeysequencehandler.h           \
+        ../../inc/manufacturerkeysequencehandler.h
+    
+    SOURCES +=                                            \
+        ../shared/mock_qtranslator.cpp                    \
+        ../shared/mock_keysequencehandler.cpp             \
+        ../shared/mock_imeikeysequencehandler.cpp         \
+        ../shared/mock_lifetimerkeysequencehandler.cpp    \
+        ../shared/mock_manufacturerkeysequencehandler.cpp \
+        ../shared/mock_centralrepository.cpp
+    
+    LIBS += -lmocklib -lsymbianmock -lxqservice -lxqserviceutil
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprovider.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,147 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include <QTranslator>
+#include <smcmockclassincludes.h>
+#include "ut_keysequencerecognitionprovider.h"
+#include "keysequencerecognitionprovider.h"
+#include "keysequencehandler.h"
+#include "qtestmains60.h"
+
+void QCoreApplication::installTranslator(QTranslator * messageFile)
+{
+    SMC_MOCK_METHOD1( void, QTranslator *, messageFile)
+}
+
+
+UT_KeySequenceRecognitionProvider::UT_KeySequenceRecognitionProvider()
+    :
+    m_provider(0)
+{
+    
+}
+
+
+UT_KeySequenceRecognitionProvider::~UT_KeySequenceRecognitionProvider()
+{
+    delete m_provider;
+}
+
+
+void UT_KeySequenceRecognitionProvider::init()
+{
+    initialize();
+    QT_TRAP_THROWING(SmcDefaultValue<QString>::SetL(QString("")))
+    
+    m_provider = new KeySequenceRecognitionProvider();
+}
+
+
+void UT_KeySequenceRecognitionProvider::cleanup()
+{
+    reset();
+    SmcDefaultValue<QString>::Reset();
+    
+    delete m_provider;
+    m_provider = 0;
+}
+
+
+void UT_KeySequenceRecognitionProvider::t_setupLocalization()
+{
+    // localization setup ok
+    EXPECT(QTranslator::load).returns(true);
+    EXPECT(QCoreApplication::installTranslator).times(1);
+    
+    QScopedPointer<KeySequenceRecognitionProvider> provider1(
+        new KeySequenceRecognitionProvider());
+    
+    QVERIFY(verify());
+    
+    // localization setup fails
+    EXPECT(QTranslator::load).returns(false);
+    EXPECT(QCoreApplication::installTranslator).times(0);
+    
+    QScopedPointer<KeySequenceRecognitionProvider> provider2(
+        new KeySequenceRecognitionProvider());
+    
+    QVERIFY(verify());
+}
+
+
+void UT_KeySequenceRecognitionProvider::t_keySequenceValidator()
+{
+    QString KExpectedValidator = "1|2|3";
+    EXPECT(KeySequenceHandler::keySequenceValidator)
+        .returns(QString("1"));
+    EXPECT(KeySequenceHandler::keySequenceValidator)
+        .returns(QString("2"));
+    EXPECT(KeySequenceHandler::keySequenceValidator)
+        .returns(QString("3"));
+    
+    QString actualValidator = m_provider->keySequenceValidator();
+    
+    QCOMPARE(actualValidator, KExpectedValidator);
+    QVERIFY(verify());
+    
+    // second query should not require validator string construction again
+    EXPECT(KeySequenceHandler::keySequenceValidator).times(0);
+    actualValidator = m_provider->keySequenceValidator();
+    QCOMPARE(actualValidator, KExpectedValidator);
+    QVERIFY(verify());
+}
+
+
+void UT_KeySequenceRecognitionProvider::t_keySequenceValidatorEmptyString()
+{
+    QString KExpectedValidator = "";
+    EXPECT(KeySequenceHandler::keySequenceValidator)
+        .returns(QString(""));
+    EXPECT(KeySequenceHandler::keySequenceValidator)
+        .returns(QString(""));
+    EXPECT(KeySequenceHandler::keySequenceValidator)
+        .returns(QString(""));
+    
+    QString actualValidator = m_provider->keySequenceValidator();
+    
+    QCOMPARE(actualValidator, KExpectedValidator);
+    QVERIFY(verify());
+}
+
+
+void UT_KeySequenceRecognitionProvider::t_executeValidKeySequence()
+{
+    QT_TRAP_THROWING(SmcDefaultValue<bool>::SetL(true))
+    
+    bool handled = m_provider->executeKeySequence("123");
+    
+    SmcDefaultValue<bool>::Reset();
+    QCOMPARE(handled, true);
+    QVERIFY(verify());
+}
+
+
+void UT_KeySequenceRecognitionProvider::t_executeInvalidKeySequence()
+{
+    bool handled = m_provider->executeKeySequence("123");
+    
+    QCOMPARE(handled, false);
+}
+
+QTEST_MAIN_S60(UT_KeySequenceRecognitionProvider)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprovider.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef UT_KEYSEQUENCERECOGNITIONPROVIDER_H
+#define UT_KEYSEQUENCERECOGNITIONPROVIDER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class KeySequenceRecognitionProvider;
+
+class UT_KeySequenceRecognitionProvider : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_KeySequenceRecognitionProvider();
+    ~UT_KeySequenceRecognitionProvider();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_setupLocalization();
+    void t_keySequenceValidator();
+    void t_keySequenceValidatorEmptyString();
+    void t_executeValidKeySequence();
+    void t_executeInvalidKeySequence();
+    
+private:
+    KeySequenceRecognitionProvider *m_provider;
+};
+
+#endif  // UT_KEYSEQUENCERECOGNITIONPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_lifetimerkeysequencehandler/ut_lifetimerkeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,181 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include <hbdevicemessagebox.h>
+#include <centralrepository.h>
+#include <etel.h>
+#include <etelmm.h>
+#include <rmmcustomapi.h>
+#include <mmtsy_names.h>
+#include "ut_lifetimerkeysequencehandler.h"
+#include "lifetimerkeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "telservicesinternalcrkeys.h"
+#include "telservicesvariant.hrh"
+#include "qtestmains60.h"
+
+void generateLeaveL()
+{
+    User::Leave(KErrUnknown);
+}
+
+UT_LifeTimerKeySequenceHandler::UT_LifeTimerKeySequenceHandler()
+    :
+    m_handler(0)
+{
+    
+}
+
+
+UT_LifeTimerKeySequenceHandler::~UT_LifeTimerKeySequenceHandler()
+{
+    delete m_handler;
+}
+
+
+void UT_LifeTimerKeySequenceHandler::setLifeTimerData(
+    TUint32 aKey,
+    TInt & aValue )
+{
+    if (KTelSrvVariationFlags == aKey) {
+        aValue = KTelSrvLVFlagLifeTimer;
+    }
+}
+
+
+void UT_LifeTimerKeySequenceHandler::setLifeTimeData(
+    TDes8& aLifeTimeInfo)
+{
+    RMmCustomAPI::TLifeTimeDataPckg &pckg = 
+        reinterpret_cast<RMmCustomAPI::TLifeTimeDataPckg&>(aLifeTimeInfo);
+    pckg.Copy(aLifeTimeInfo);
+    pckg().iHours = 999;
+    pckg().iMinutes = 59;
+}
+
+
+void UT_LifeTimerKeySequenceHandler::init()
+{
+    initialize();
+    
+    m_handler = new LifeTimerKeySequenceHandler();
+}
+
+
+void UT_LifeTimerKeySequenceHandler::cleanup()
+{
+    reset();
+    
+    delete m_handler;
+    m_handler = 0;
+}
+
+
+void UT_LifeTimerKeySequenceHandler::t_constructionFails()
+{
+    EXPECT(CRepository::NewL).willOnce(invoke(generateLeaveL));
+    
+    int result = 0;
+    QT_TRYCATCH_ERROR(result, 
+        QScopedPointer<LifeTimerKeySequenceHandler> handler(
+            new LifeTimerKeySequenceHandler())
+    )
+    QVERIFY(0 != result);
+}
+
+
+void UT_LifeTimerKeySequenceHandler::t_keySequenceValidator()
+{
+    // life timer feature enabled scenario
+    EXPECT(CRepository::Get)
+        .willOnce(invoke(this, setLifeTimerData))
+        .returns(KErrNone);
+    expect("KeySequenceHandler::setKeySequenceValidator")
+        .with(QRegExp::escape(KCodeLifeTimer));
+    
+    QScopedPointer<LifeTimerKeySequenceHandler> handler1(
+        new LifeTimerKeySequenceHandler());
+    
+    QVERIFY(verify());
+    
+    // life timer feature not enabled scenario
+    EXPECT(CRepository::Get).returns(KErrNotFound);
+    expect("KeySequenceHandler::setKeySequenceValidator").times(0);
+    
+    QScopedPointer<LifeTimerKeySequenceHandler> handler2(
+        new LifeTimerKeySequenceHandler());
+    
+    QVERIFY(verify());
+}
+
+
+void UT_LifeTimerKeySequenceHandler::t_executeValidKeySequence()
+{
+    EXPECT(CRepository::Get)
+        .willOnce(invoke(this, setLifeTimerData))
+        .returns(KErrNone);
+    EXPECT(RMmCustomAPI::GetLifeTime)
+        .willOnce(invoke(this, setLifeTimeData));
+    
+    EXPECT(HbDeviceMessageBox::setTimeout).with(HbPopup::NoTimeout);
+    EXPECT(HbDeviceMessageBox::show);
+    bool handled = m_handler->executeKeySequence(KCodeLifeTimer);
+    QCOMPARE(handled, true);
+    
+    QVERIFY(verify());
+}
+
+
+void UT_LifeTimerKeySequenceHandler::t_executeInvalidKeySequence()
+{
+    const QString KUnknownSequence("123");
+    bool handled = m_handler->executeKeySequence(KUnknownSequence);
+    QCOMPARE(handled, false);
+}
+
+
+void UT_LifeTimerKeySequenceHandler::t_executeKeySequenceEtelConnectionCreationFails()
+{
+    EXPECT(CRepository::Get)
+        .willOnce(invoke(this, setLifeTimerData))
+        .returns(KErrNone);
+    EXPECT(RTelServer::Connect).willOnce(invoke(generateLeaveL));
+    
+    int result = 0;
+    QT_TRYCATCH_ERROR(result, m_handler->executeKeySequence(KCodeLifeTimer));
+    
+    QVERIFY(0 != result);
+    QVERIFY(verify());
+}
+
+
+void UT_LifeTimerKeySequenceHandler::t_executeKeySequenceLifeTimeDataQueryFails()
+{
+    EXPECT(CRepository::Get)
+        .willOnce(invoke(this, setLifeTimerData))
+        .returns(KErrNone);
+    EXPECT(RMmCustomAPI::GetLifeTime).returns(KErrArgument);
+    
+    bool handled = m_handler->executeKeySequence(KCodeLifeTimer);
+    
+    QCOMPARE(handled, true);
+    QVERIFY(verify());
+}
+
+QTEST_MAIN_S60(UT_LifeTimerKeySequenceHandler)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_lifetimerkeysequencehandler/ut_lifetimerkeysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef UT_LIFETIMERKEYSEQUENCEHANDLER_H
+#define UT_LIFETIMERKEYSEQUENCEHANDLER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include <etel.h>
+
+class LifeTimerKeySequenceHandler;
+
+class UT_LifeTimerKeySequenceHandler : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_LifeTimerKeySequenceHandler();
+    ~UT_LifeTimerKeySequenceHandler();
+
+private:
+    void setLifeTimerData(
+        TUint32 aKey,
+        TInt & aValue );
+    void setMobilePhoneCount(
+        TInt & aNoOfPhones);
+    void setMobilePhoneInfo(
+        const TInt aIndex,
+        RTelServer::TPhoneInfo & aInfo );
+    void setLifeTimeData(
+        TDes8& aLifeTimeInfo);
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_constructionFails();
+    void t_keySequenceValidator();
+    void t_executeValidKeySequence();
+    void t_executeInvalidKeySequence();
+    void t_executeKeySequenceEtelConnectionCreationFails();
+    void t_executeKeySequenceLifeTimeDataQueryFails();
+    
+private:
+    LifeTimerKeySequenceHandler *m_handler;
+};
+
+#endif  // UT_LIFETIMERKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_lifetimerkeysequencehandler/ut_lifetimerkeysequencehandler.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET =
+INCLUDEPATH += ../../../../inc
+
+MOC_DIR = moc
+CONFIG += hb qtestlib
+DEFINES += QT_NO_DEBUG_STREAM
+
+QT -= gui
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += . ../shared ../../inc
+
+    HEADERS += ../../inc/lifetimerkeysequencehandler.h
+    SOURCES += ../../src/lifetimerkeysequencehandler.cpp
+
+    HEADERS += ut_lifetimerkeysequencehandler.h
+    SOURCES += ut_lifetimerkeysequencehandler.cpp
+
+    #MOCKED DEPENDENCIES
+    HEADERS += ../../inc/keysequencehandler.h
+    SOURCES +=                                    \
+        ../shared/mock_keysequencehandler.cpp     \
+        ../shared/mock_centralrepository.cpp      \
+        ../shared/mock_hbdevicemessagebox.cpp     \
+        ../shared/mock_etel.cpp                   \
+        ../shared/mock_rmmcustomapi.cpp
+
+    LIBS += -lmocklib -lsymbianmock -lxqserviceutil
+    LIBS += -letel -letelmm -lcustomapi
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_manufacturerkeysequencehandler/ut_manufacturerkeysequencehandle.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,49 @@
+#
+# Copyright (c) 2010 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:
+#
+#
+
+TEMPLATE = app
+TARGET = ut_manufacturerkeysequencehandler
+MOC_DIR = moc
+CONFIG += hb qtestlib
+DEFINES += QT_NO_DEBUG_STREAM
+DEFINES += XQ_BUILD_XQSERVICE_LIB
+
+QT -= gui
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += . ../shared ../../inc
+    HEADERS += ../../inc/manufacturerkeysequencehandler.h
+    SOURCES += ../../src/manufacturerkeysequencehandler.cpp
+
+    HEADERS += ut_manufacturerkeysequencehandler.h
+    SOURCES += ut_manufacturerkeysequencehandler.cpp
+    
+    #MOCKED DEPENDENCIES
+    HEADERS +=                                  \ 
+        ../../inc/keysequencehandler.h          \
+        /epoc32/include/mw/xqappmgr.h           \
+        /epoc32/include/mw/xqservicerequest.h   \
+        /epoc32/include/mw/xqaiwrequest.h
+  SOURCES +=                                    \ 
+      ../shared/mock_keysequencehandler.cpp     \
+      ../shared/mock_xqappmgr.cpp               \
+      ../shared/mock_xqservicerequest.cpp       \
+      ../shared/mock_xqaiwrequest.cpp
+    
+    LIBS += -lmocklib -lsymbianmock -lxqserviceutil
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_manufacturerkeysequencehandler/ut_manufacturerkeysequencehandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,286 @@
+/*!
+* Copyright (c) 2010 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:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include "ut_manufacturerkeysequencehandler.h"
+#define private friend class UT_ManufacturerKeySequenceHandler;private
+#include "manufacturerkeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "qtestmains60.h"
+
+const bool KIsEmbedded = false;
+
+void generateException()
+{
+    qBadAlloc();
+}
+
+UT_ManufacturerKeySequenceHandler::UT_ManufacturerKeySequenceHandler()
+    :
+    m_handler(0)
+{
+    
+}
+
+
+UT_ManufacturerKeySequenceHandler::~UT_ManufacturerKeySequenceHandler()
+{
+    delete m_handler;
+}
+
+
+void UT_ManufacturerKeySequenceHandler::init()
+{
+    initialize();
+    
+    m_handler = new ManufacturerKeySequenceHandler();
+}
+
+
+void UT_ManufacturerKeySequenceHandler::cleanup()
+{
+    reset();
+    
+    delete m_handler;
+    m_handler = 0;
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_keySequenceValidator()
+{
+    QString expectedValidator =
+        QRegExp::escape(KCodeSwVersion) + "|" +
+        QRegExp::escape(KCodeActivateRfsNormal)  + "|" +
+        QRegExp::escape(KCodeActivateRfsDeep) + "|" +
+        QRegExp::escape(KCodeBtAddress) + "|" +
+        QRegExp::escape(KCodeRFLoopback) + "|" +
+        QRegExp::escape(KCodeBtDebugMode);
+    
+    expect("KeySequenceHandler::setKeySequenceValidator")
+        .with(expectedValidator);
+    
+    QScopedPointer<ManufacturerKeySequenceHandler> handler(
+        new ManufacturerKeySequenceHandler());
+    
+    QVERIFY(verify());
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_executeKeySequenceDeviceManagerCodes()
+{
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QPointer<XQAiwRequest> request =
+        new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("devicemanager"), 
+            QString("showVersionNumber()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    bool handled = m_handler->executeKeySequence(KCodeSwVersion);
+    
+    QVERIFY(verify());
+    emit request->requestOk(QVariant(true));
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, true);
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_executeKeySequenceFactoryResetCodes()
+{
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QPointer<XQAiwRequest> request =
+        new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.symbian"), QString("IFactoryReset"), 
+            QString("showResetUi()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    bool handled = m_handler->executeKeySequence(KCodeActivateRfsNormal);
+    
+    QVERIFY(verify());
+    emit request->requestOk(QVariant(true));
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, true);
+    
+    request = new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.symbian"), QString("IFactoryReset"), 
+            QString("showResetUi()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    handled = m_handler->executeKeySequence(KCodeActivateRfsDeep);
+    
+    QVERIFY(verify());
+    emit request->requestOk(QVariant(true));
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, true);
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_executeKeySequenceBluetoothCodes()
+{
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QPointer<XQAiwRequest> request =
+        new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("bluetooth"), 
+            QString("showBluetoothDeviceAddress()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    bool handled = m_handler->executeKeySequence(KCodeBtAddress);
+    
+    QVERIFY(verify());
+    emit request->requestOk(QVariant(true));
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, true);
+    
+    request = new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("bluetooth"), 
+            QString("showBluetoothLoopback()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    handled = m_handler->executeKeySequence(KCodeRFLoopback);
+    
+    QVERIFY(verify());
+    emit request->requestOk(QVariant(true));
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, true);
+    
+    request = new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("bluetooth"), 
+            QString("activateBluetoothDebugMode()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    handled = m_handler->executeKeySequence(KCodeBtDebugMode);
+    
+    QVERIFY(verify());
+    emit request->requestOk(QVariant(true));
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, true);
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_executeInvalidKeySequence()
+{
+    const QString KUnknownSequence = "123";
+    bool handled = m_handler->executeKeySequence(KUnknownSequence);
+    QCOMPARE(handled, false);
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_executeKeySequenceRequestDispatchingFails()
+{
+    // controlled synchronous Qt Highway error during request processing
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QPointer<XQAiwRequest> request =
+        new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("devicemanager"), 
+            QString("showVersionNumber()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(false);
+    
+    bool handled = m_handler->executeKeySequence(KCodeSwVersion);
+    m_handler->requestError(0, QString(""));
+    
+    QVERIFY(verify());
+    QVERIFY(request.isNull());
+    QCOMPARE(handled, false);
+    
+    // controlled asynchronous Qt Highway error during request processing
+    request = new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("devicemanager"), 
+            QString("showVersionNumber()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    handled = m_handler->executeKeySequence(KCodeSwVersion);
+    
+    QVERIFY(verify());
+    emit request->requestError(0, QString(""));
+    QVERIFY(request.isNull());
+    // asynchronous errors have to be silently discarded
+    QCOMPARE(handled, true);
+    
+    // exception during service request dispatching/send
+    request = new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("devicemanager"), 
+            QString("showVersionNumber()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send)
+        .willOnce(invokeWithoutArguments(generateException));
+    
+    int result = 0;
+    QT_TRYCATCH_ERROR(
+        result, handled = m_handler->executeKeySequence(KCodeSwVersion));
+    
+    QVERIFY(verify());
+    QVERIFY(request.isNull());
+    QVERIFY(0 != result);
+    
+    // request object creation fails
+    handled = m_handler->executeKeySequence(KCodeSwVersion);
+    QCOMPARE(handled, false);
+}
+
+
+void UT_ManufacturerKeySequenceHandler::t_executeKeySequenceSimultaneousRequest()
+{
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QPointer<XQAiwRequest> request =
+        new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
+    EXPECT(XQApplicationManager::create)
+        .with(
+            QString("com.nokia.services"), QString("devicemanager"), 
+            QString("showVersionNumber()"), KIsEmbedded)
+        .returns(request.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    
+    bool handled = m_handler->executeKeySequence(KCodeSwVersion);
+    
+    QVERIFY(verify());
+    QVERIFY(!request.isNull());
+    QCOMPARE(handled, true);
+    
+    // simultaneous request attempt
+    EXPECT(XQApplicationManager::create).times(0);
+    EXPECT(XQAiwRequest::send).times(0);
+    handled = m_handler->executeKeySequence(KCodeSwVersion);
+    QCOMPARE(handled, false);
+}
+
+QTEST_MAIN_S60(UT_ManufacturerKeySequenceHandler)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_manufacturerkeysequencehandler/ut_manufacturerkeysequencehandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef UT_MANUFACTURERKEYSEQUENCEHANDLER_H
+#define UT_MANUFACTURERKEYSEQUENCEHANDLER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class ManufacturerKeySequenceHandler;
+
+class UT_ManufacturerKeySequenceHandler : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_ManufacturerKeySequenceHandler();
+    ~UT_ManufacturerKeySequenceHandler();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_keySequenceValidator();
+    void t_executeKeySequenceDeviceManagerCodes();
+    void t_executeKeySequenceFactoryResetCodes();
+    void t_executeKeySequenceBluetoothCodes();
+    void t_executeInvalidKeySequence();
+    void t_executeKeySequenceRequestDispatchingFails();
+    void t_executeKeySequenceSimultaneousRequest();
+    
+private:
+    ManufacturerKeySequenceHandler *m_handler;
+};
+
+#endif  // UT_MANUFACTURERKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/inc/actioncustomitem.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2010 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:
+ *
+ */
+
+#ifndef ACTIONCUSTOMITEM_H
+#define ACTIONCUSTOMITEM_H
+
+
+// System includes
+#include <qobject.h>
+#include <hbdataformviewitem.h>
+#include <hbdataformmodelitem.h>
+
+// Forward declarations
+class CpItemDataHelper;
+
+// Class declaration
+class ActionCustomItem :  public HbDataFormViewItem
+{
+    Q_OBJECT
+public:
+    /*!
+        Constructor
+    */
+    ActionCustomItem(QGraphicsItem *parent = 0);
+    
+    /*!
+        Destructor
+    */
+
+    ~ActionCustomItem();
+    /*!
+        From base class CpPluginInterface
+        Form more information please check the base class.
+    */
+     virtual HbAbstractViewItem* createItem();
+
+     virtual bool canSetModelIndex(const QModelIndex &index) const;
+
+     enum { VmbxEditItem = HbDataFormModelItem::CustomItemBase + 1  };
+    
+protected:
+
+    virtual HbWidget* createCustomWidget();
+        
+};
+
+#endif // ACTIONCUSTOMITEM_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/inc/customedit.h	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2010 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:  
+*
+*/
+
+#ifndef CUSTOMEDIT_H
+#define CUSTOMEDIT_H
+
+#include <hblineedit.h>
+
+class CustomEdit : public HbLineEdit
+{
+    Q_OBJECT
+public:
+
+    /*!
+        Constructor
+    */
+    explicit CustomEdit(QGraphicsItem *parent = 0);
+
+    /*!
+        Distructor
+    */
+    virtual ~CustomEdit();
+
+    /*!
+        Rewriten,from base class HbLineEdit
+    */    
+    void focusInEvent ( QFocusEvent * event );
+
+signals:
+
+    /*!
+        Click line edit
+    */
+    void editItemClicked();
+};
+
+#endif //CUSTOMEDIT_H
+
--- a/vmbx/vmbxcpplugin/inc/loggerutil.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/inc/loggerutil.h	Thu Jun 24 13:58:21 2010 +0100
@@ -19,9 +19,9 @@
 #define __LOGGERUTIL_H
 
 //  INCLUDES
-#include <qdebug>
-#include <qfile>
-#include <qdatetime>
+#include <QDebug>
+#include <QFile>
+#include <QDateTime>
 
 /***************************
  * LOGGER SETTINGS
--- a/vmbx/vmbxcpplugin/inc/vmbxcpgroup.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/inc/vmbxcpgroup.h	Thu Jun 24 13:58:21 2010 +0100
@@ -21,6 +21,7 @@
 // System includes
 #include <cpsettingformitemdata.h>
 #include <voicemailboxdefs.h>
+#include <QModelIndex>
 
 
 // Forward declarations
@@ -28,6 +29,7 @@
 class CpItemDataHelper;
 class HbDataFormModelItem;
 
+
 // Class declaration
 class VmbxCpGroup : public CpSettingFormItemData
 {
@@ -49,17 +51,6 @@
 private slots:
 
     /*!
-        Notification slot for engine signal about 
-        Voice Mailbox entries' changes
-    */
-    void voiceMailboxEngineEntriesUpdated();
-
-    /*!
-        Save default Mailbox
-    */
-    void saveDefaultMailbox(int aIndex);
-
-    /*!
         Query cs voice number when user click line edit
     */
     void queryCsVoiceNumber();
@@ -72,34 +63,30 @@
     /*!
         Update number when vmbx number changed by OTA,OMA etc.
     */
-    void vmbxNumberChanged(const TVmbxType vmbxType);
+    void updateVmbxNumber(const TVmbxType vmbxType);
 
+    /*!
+         Slot which handles item updating when it is needed.
+     */
+    void itemShown(const QModelIndex &item);    
+    
 private:
     
     /*!
         Preparation before loading
     */
-    void loadingPreparation(CpItemDataHelper &itemDataHelper);    
+    void loadingPreparation();    
     
     /*!
-        Update default mailbox
-    */
-    void updateDefaultMailboxToUi();
-
+         Create the data form item by type
+     */
+    HbDataFormModelItem* createDataFormModelItem(const TVmbxType vmbxType);
+        
     /*!
-       Update Cs voice primary 
-    */
-    void updateCsVoice1ToUi();
+      Update the vmbx number to the UI
+     */
+    void UpdateWidgetContent(const QModelIndex &item, const QString &string);
 
-    /*!
-       update Cs video primary
-    */
-    void updateCsVideo1ToUi();
-    
-    /*!
-        Update all mailboxes
-    */
-    void updateAllMailboxesToUi();
 
 private:
     
@@ -114,6 +101,15 @@
 
     // Not own.
     HbDataFormModelItem *mCsVideo1Editor;
+    
+    // Index
+    QModelIndex mCsVoice1Index;
+
+    // Index
+    QModelIndex mCsVideo1Index;
+    
+    // Not own
+    CpItemDataHelper &mItemHelper;
 };
 
 #endif // VMBXCPGROUP_H
--- a/vmbx/vmbxcpplugin/inc/vmbxuiengine.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/inc/vmbxuiengine.h	Thu Jun 24 13:58:21 2010 +0100
@@ -49,25 +49,25 @@
         Getter method for primary voice number of Voice Mailbox.
         @param aValue Retrieved number.
     */
-    void getCsVoice1Number(QString &aValue);
+    void getCsVoiceNumber(QString &aValue);
     
     /*!
         Getter method for primary video number of Voice Mailbox.
         @param aValue Retrieved number.
     */
-    void getCsVideo1Number(QString &aValue);
+    void getCsVideoNumber(QString &aValue);
     
     /*!
         Set number when cs voice number has been edited on UI.
         @param aValue New value.
     */
-    void setCsVoice1Number( const QString &aValue );
+    void setCsVoiceNumber( const QString &aValue );
     
     /*!
         Set number when cs voice number has been edited on UI.
         @param aValue New value.
     */
-    void setCsVideo1Number( const QString &aValue );
+    void setCsVideoNumber( const QString &aValue );
     
     /*!
         If video mailbox supported.
@@ -122,9 +122,26 @@
     void voiceMailboxEngineEntriesUpdated(const TVmbxType vmbxType); 
 
 
-private: // New Method    
+private: // New Method
+
+    /*!
+        Initialize vmbx ui engine.
+    */
+    void init();
+ 
+    /*!
+        Getter method for primary voice number of Voice Mailbox.
+        @param aValue Retrieved number.
+    */
+    void getCsVoicePrimaryNumber(QString &aValue);
     
     /*!
+        Getter method for primary video number of Voice Mailbox.
+        @param aValue Retrieved number.
+    */
+    void getCsVideoPrimaryNumber(QString &aValue);
+ 
+    /*!
         Getter method for voice mailbox number.
         @param aParam Identify voice mailbox type
         @param aValue Retrieved number.
@@ -156,6 +173,16 @@
         Own.
     */
     CVoiceMailbox *mVmbxEngine;
+    /*!
+        Cs voice number
+     */
+    QString mCsVoiceNumber;
+
+    /*!
+        Cs video number
+     */
+    QString mCsVideoNumber;
+    
 };
 
 #endif // VMBXUIENGINE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/src/actioncustomitem.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2010 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:
+ *
+ */
+
+// System includes
+#include <qdebug>
+#include <QVariant>
+
+#include <hbdataformmodelitem.h>
+#include <cpitemdatahelper.h>
+#include "customedit.h"
+
+// User includes
+#include "actioncustomitem.h"
+#include "loggerutil.h"
+
+/*!
+    Constructor
+*/
+ActionCustomItem::ActionCustomItem(QGraphicsItem *parent)
+    : HbDataFormViewItem(parent)
+{
+    _DBGLOG("ActionCustomItem::ActionCustomItem()")
+}
+
+/*!
+    Destructor
+*/
+ActionCustomItem::~ActionCustomItem()
+{
+    _DBGLOG("VmbxCpPlugin::~ActionCustomItem()")
+}
+
+/*!
+    From base class HbDataFormViewItem
+*/
+HbAbstractViewItem* ActionCustomItem::createItem()
+{
+    _DBGLOG("ActionCustomItem::createItem <>")
+    return new ActionCustomItem(*this);
+}
+
+/*!
+    From base class HbDataFormViewItem
+*/
+HbWidget* ActionCustomItem::createCustomWidget()
+{
+    _DBGLOG("ActionCustomItem::createCustomWidget >")
+    int type = modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt();
+
+    CustomEdit *edit = 0;
+    if (type == VmbxEditItem) {
+        edit = new CustomEdit(this);
+        edit->setEchoMode(HbLineEdit::Normal );
+        edit->setReadOnly(true);        
+        _DBGLOG("ActionCustomItem::createCustomWidget customItem editor")
+    }
+    _DBGLOG("ActionCustomItem::createCustomWidget default<")
+    return edit;
+}
+
+bool ActionCustomItem::canSetModelIndex(const QModelIndex &index) const
+{
+    _DBGLOG("ActionCustomItem::canSetModelIndex >")
+    int type = index.data(HbDataFormModelItem::ItemTypeRole).toInt();
+    return type == VmbxEditItem;
+}
+
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/src/customedit.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -0,0 +1,59 @@
+                         /*
+* Copyright (c) 2010 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:  
+*
+*/
+
+#include <QGraphicsSceneMouseEvent>
+
+#include "customedit.h"
+#include "loggerutil.h"
+
+/*!
+    Constructor
+*/
+CustomEdit::CustomEdit(QGraphicsItem *parent)
+    : HbLineEdit(parent)
+{
+    _DBGLOG("CustomEdit::CustomEdit()")
+}
+
+/*!
+    Distructor
+*/
+CustomEdit::~CustomEdit()
+{
+    _DBGLOG("CustomEdit::CustomEdit()")
+}
+
+/*!
+    mousePressEvent
+*/
+void CustomEdit::focusInEvent(QFocusEvent *event)
+{
+    _DBGLOG("CustomEdit::focusInEvent() >")
+    if (!event->gotFocus()) {
+        event->ignore();
+        _DBGLOG("CustomEdit::focusInEvent() ignore")
+        return;
+    } else {
+        emit editItemClicked();
+        event->accept();
+        _DBGLOG("CustomEdit::focusInEvent() emit clicked")
+    }
+    _DBGLOG("CustomEdit::focusInEvent() <")
+}
+    
+
+// End of file
--- a/vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -22,16 +22,14 @@
 #include <QStringList>
 #include <cpitemdatahelper.h>
 #include <hblineedit.h>
+#include <hbdataformmodel.h>
+#include "actioncustomitem.h"
 
 // User includes
 #include "vmbxuiengine.h"
 #include "vmbxcpgroup.h"
 #include "loggerutil.h"
 
-// custom dataform type
-#define CustomDataFormType \
-    static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase)
-
 /*!
     Constructor
 */
@@ -42,9 +40,10 @@
         mUiEngine(NULL),
         mDefaultMailboxEditor(NULL),
         mCsVoice1Editor(NULL),
-        mCsVideo1Editor(NULL)
+        mCsVideo1Editor(NULL),
+        mItemHelper(itemDataHelper)
 { 
-    _DBGLOG2("VmbxCpGroup::VmbxCpGroup label=",label)
+    _DBGLOG("VmbxCpGroup::VmbxCpGroup >")
     // Localization file loading
     QTranslator translator; 
     QString lang = QLocale::system().name();
@@ -58,13 +57,14 @@
     }
 
     mUiEngine = new VmbxUiEngine();
-    loadingPreparation(itemDataHelper);
 
+    loadingPreparation();
+    
     // Request notify when VMBX number changed
     mUiEngine->notifyVmbxNumberChange(true);
     bool ret = connect(mUiEngine,
             SIGNAL(voiceMailboxEngineEntriesUpdated(const TVmbxType)), 
-            this, SLOT(vmbxNumberChanged(const TVmbxType)));
+            this, SLOT(updateVmbxNumber(const TVmbxType)));
     _DBGLOG2("VmbxCpGroup::VmbxCpGroup connect ret=", ret)
     _DBGLOG("VmbxCpGroup::VmbxCpGroup <")
 }
@@ -82,178 +82,75 @@
 }
 
 /*!
-    Notification slot for engine signal about 
-    Voice Mailbox entries' changes
-*/
-void VmbxCpGroup::voiceMailboxEngineEntriesUpdated()
-{
-    _DBGLOG("VmbxCpGroup::voiceMailboxEngineEntriesUpdated")
-    // Consider is there need to pass the actual modified data 
-    // and mailbox type enum to slot (here) so only needed 
-    // data can be updated.
-    updateAllMailboxesToUi();
-}
-
-/*!
-    Save default mailbox when user selection finished
-*/ 
-void VmbxCpGroup::saveDefaultMailbox(int aIndex)
-{
-    if (0 == aIndex){
-        _DBGLOG("VmbxCpGroup::saveDefaultMailbox voice")
-    }else if(1 == aIndex){
-        _DBGLOG("VmbxCpGroup::saveDefaultMailbox video")
-    }else{
-        _DBGLOG("VmbxCpGroup::saveDefaultMailbox other")
-    }
-}
-
-/*!
     Preparation before loading
 */
-void VmbxCpGroup::loadingPreparation(CpItemDataHelper &itemDataHelper)
-{   
+void VmbxCpGroup::loadingPreparation()
+{
     _DBGLOG("VmbxCpGroup::loadingPreparation >")
     
-    // #Following code is reserved for TB10.2
-    // Create default mailbox selection
-    // appendChild takes ownership
-    //if (mUiEngine->isVideoSupport()){
-    //    mDefaultMailboxEditor = new CpSettingFormItemData(
-    //            HbDataFormModelItem::ComboBoxItem, 
-    //            hbTrId("Default mailbox"),
-    //            this);
-        //itemDataHelper.addConnection( 
-        //    mDefaultMailboxEditor, SIGNAL(currentIndexChanged(int)), 
-        //    mUiEngine, SLOT(saveCsVoice1Number()));
-        //QStringList list;
-        //list.append(hbTrId("Voice"));
-        //list.append(hbTrId("Video"));
-        //mDefaultMailboxEditor->setContentWidgetData("items", QVariant(list));
-        //appendChild(mDefaultMailboxEditor);          
-    //}
-
+    ActionCustomItem *viewItem = new ActionCustomItem();
+    mItemHelper.addItemPrototype(viewItem);
+    mItemHelper.connectToForm(
+        SIGNAL(itemShown(QModelIndex)), this, SLOT(itemShown(QModelIndex)));
+  
     // Create cs voice primary editor
-    mCsVoice1Editor= new HbDataFormModelItem(
-        CustomDataFormType,
-        hbTrId("txt_phone_setlabel_default_mbx_val_voice"));
-    _DBGLOG("VmbxCpGroup::loadingPreparation appendChild voice1 mailbox")
-
-    QString voice1Number;
-    mUiEngine->getCsVoice1Number(voice1Number);
-    // Show voice line1 number on lineedit
-    mCsVoice1Editor->setContentWidgetData(QString("text"), voice1Number);
-    // Connect ui editing signals and allow ui control
-    // eidting if vmbx allows editing
-    if (mUiEngine->isVoiceWritable()) {
-         // When click the lineedit, the query dialog would pop up.
-        itemDataHelper.addConnection(mCsVoice1Editor, SIGNAL(clicked()),
-            this, SLOT(queryCsVoiceNumber()));
-    } else {
-        // If not writable, Dim the voice editor
-        mCsVoice1Editor->setEnabled(false);
-    }
-    // Add child
-    appendChild(mCsVoice1Editor);
- 
-    // Create cs video primary editor
+    mCsVoice1Editor= createDataFormModelItem(EVmbxVoice);       
     if (mUiEngine->isVideoSupport()){
-        mCsVideo1Editor= new HbDataFormModelItem(
-            CustomDataFormType,
-            hbTrId("txt_phone_setlabel_default_mbx_val_video"));
-        _DBGLOG("VmbxCpGroup::loadingPreparation appendChild video1 mailbox")
-        QString video1Number;
-        mUiEngine->getCsVideo1Number(video1Number);
-        // Show video line1 number on lineedit
-        mCsVideo1Editor->setContentWidgetData(QString("text"), video1Number);
-        // Check video editing permission and connect signal
-        if (mUiEngine->isVideoWritable()) {
-            itemDataHelper.addConnection(mCsVideo1Editor, SIGNAL(clicked()),
-                this, SLOT(queryCsVideoNumber()));
-        } else {
-            // If not writable, Dim the Video editor
-            mCsVideo1Editor->setEnabled(false);
-        }
-        appendChild( mCsVideo1Editor );
+        _DBGLOG("VmbxCpGroup::loadingPreparation create video1 mailbox")
+        mCsVideo1Editor= createDataFormModelItem(EVmbxVideo);
     }
-    // TODO: Create cs voice als editor
-    // TODO: Create cs video als editor    
-    // TODO: Create all ps service editors
-    
-    updateAllMailboxesToUi();
-                
-    // TODO: here check CS ALS editing permission and connnect signal
-    // and enable editing 
-        
-    // No need for Video ALS on UI, implement later if necessary.
-    // Editing of PS Services is not allowed by default, disable ui editing
-    // for them.
-
     _DBGLOG("VmbxCpGroup::loadingPreparation <")
 }
 
-/*!
-    Update default mailbox
-*/
-void VmbxCpGroup::updateDefaultMailboxToUi()
+HbDataFormModelItem* VmbxCpGroup::createDataFormModelItem(
+    const TVmbxType vmbxType)
 {
-    _DBGLOG("VmbxCpGroup::updateDefaultMailboxToUi >")
-    // Consider should you check here if the number 
-    // length of the default mailbox
-    // and reset the default mailbox type selection to "none" if it is.
-    // If you do so, remember to save the new value to engine.
-    if (mDefaultMailboxEditor && mUiEngine) {
-        // TODO: Need a new API to save default mailbox
+    _DBGLOG("VmbxCpGroup::createDataFormModelItem >")
+    QString number("");
+    HbDataFormModelItem *item = 0;
+    QString name("");
+    bool create(false);
+    if (EVmbxVoice == vmbxType) {
+        _DBGLOG("VmbxCpGroup::createDataFormModelItem voice")
+        name = hbTrId("txt_phone_setlabel_default_mbx_val_voice");
+        create = true;
+    } else if (EVmbxVideo == vmbxType) {
+        _DBGLOG("VmbxCpGroup::createDataFormModelItem video")
+        name = hbTrId("txt_phone_setlabel_default_mbx_val_video");
+        create = true;
     }
-    _DBGLOG("VmbxCpGroup::updateDefaultMailboxToUi <")
-}
+    if (create) {
+        item = new HbDataFormModelItem(
+            static_cast<HbDataFormModelItem::DataItemType>(
+            ActionCustomItem::VmbxEditItem),name);
 
-/*!
-   Update Cs voice primary 
-*/
-void VmbxCpGroup::updateCsVoice1ToUi()
-{
-    _DBGLOG("VmbxCpGroup::updateCsVoice1ToUi")
-    if (mCsVoice1Editor && mUiEngine) {
-        QString newUiValue("");
-        mUiEngine->getCsVoice1Number(newUiValue);
-        _DBGLOG2("VmbxCpGroup::updateCsVoice1ToUi\
-             newUiValue=", newUiValue)
-        mCsVoice1Editor->setContentWidgetData("text", newUiValue);
+        appendChild(item);
+        
+        if (EVmbxVoice == vmbxType) {
+            if (mUiEngine->isVoiceWritable()) {
+                _DBGLOG("VmbxCpGroup::createDataFormModelItem add voice")
+                mItemHelper.addConnection(item, SIGNAL(editItemClicked()),
+                this, SLOT(queryCsVoiceNumber()));
+            }else {
+                _DBGLOG("VmbxCpGroup::createDataFormModelItem voice no read")
+                item->setEnabled(false);   
+            }                
+        } else if (EVmbxVideo == vmbxType) {
+            if (mUiEngine->isVideoWritable()) {
+                _DBGLOG("VmbxCpGroup::createDataFormModelItem add video")
+                mItemHelper.addConnection(item, SIGNAL(editItemClicked()),
+                    this, SLOT(queryCsVideoNumber()));
+            }else {
+                _DBGLOG("VmbxCpGroup::createDataFormModelItem video no read")
+                item->setEnabled(false);   
+            }                
+        }
     }
+    _DBGLOG("VmbxCpGroup::createDataFormModelItem <")
+    return item;
 }
 
 /*!
-   update Cs video primary
-*/
-void VmbxCpGroup::updateCsVideo1ToUi()
-{
-    _DBGLOG("VmbxCpGroup::updateCsVideo1ToUi >")
-    if (mCsVideo1Editor && mUiEngine){
-        QString newUiValue("");
-        mUiEngine->getCsVideo1Number(newUiValue);
-        _DBGLOG2("VmbxCpGroup::updateCsVideo1ToUi\
-             newUiValue=", newUiValue)
-        mCsVideo1Editor->setContentWidgetData("text", newUiValue);
-    }
-    _DBGLOG("VmbxCpGroup::updateCsVideo1ToUi <")
-}
-
-/*!
-    Update all mailboxes
-*/
-void VmbxCpGroup::updateAllMailboxesToUi()
-{
-    _DBGLOG("VmbxCpGroup::updateAllMailboxesToUi >")
-    updateCsVoice1ToUi();
-    if (mUiEngine->isVideoSupport()) {
-        updateDefaultMailboxToUi();
-        updateCsVideo1ToUi();
-    }
-    _DBGLOG("VmbxCpGroup::updateAllMailboxesToUi <")
-} 
-
-/*!
     Query voice number
 */
 void VmbxCpGroup::queryCsVoiceNumber()
@@ -264,9 +161,9 @@
     int result = mUiEngine->queryVoiceNumber(number);
     _DBGLOG2("VmbxCpGroup::queryCsVoiceNumber result=", result)
     if (KErrNone == result) {
-        mCsVoice1Editor->setContentWidgetData(QString("text"), number);
-        _DBGLOG2("VmbxCpGroup::queryCsVoiceNumber >, number=", number)
-        mUiEngine->setCsVoice1Number(number);   
+        _DBGLOG2("VmbxCpGroup::queryCsVoiceNumber >, number=", number) 
+        mUiEngine->setCsVoiceNumber(number);
+        UpdateWidgetContent(mCsVoice1Index, number);
     }
     mCsVoice1Editor->setEnabled(true);
     _DBGLOG("VmbxCpGroup::queryCsVoiceNumber <")
@@ -283,9 +180,9 @@
     int result = mUiEngine->queryVideoNumber(number);
     _DBGLOG2("VmbxCpGroup::queryCsVideoNumber  result=", result)
     if (KErrNone == result) {
-        mCsVideo1Editor->setContentWidgetData(QString("text"), number);
         _DBGLOG2("VmbxCpGroup::queryCsVideoNumber >, number=", number)
-        mUiEngine->setCsVideo1Number(number);
+        mUiEngine->setCsVideoNumber(number);
+        UpdateWidgetContent(mCsVideo1Index, number);
     }
     mCsVideo1Editor->setEnabled(true);
     _DBGLOG("VmbxCpGroup::queryCsVideoNumber <")
@@ -294,17 +191,70 @@
 /*!
     Update number when vmbx number changed by OTA,OMA etc.
 */
-void VmbxCpGroup::vmbxNumberChanged(const TVmbxType vmbxType)
+void VmbxCpGroup::updateVmbxNumber(const TVmbxType vmbxType)
 {
-    _DBGLOG("VmbxCpGroup::vmbxNumberChanged >")
-    // Update cs voice number
+    _DBGLOG("VmbxCpGroup::updateVmbxNumber >")
+
+    QString number("");
     if (EVmbxVoice == vmbxType) {
-       updateCsVoice1ToUi();
-    // Update cs video number
+        if (mCsVideo1Editor && mUiEngine){
+            mUiEngine->getCsVoiceNumber(number);
+            _DBGLOG2("VmbxCpGroup::updateVmbxNumber\
+                 number=", number)
+            UpdateWidgetContent(mCsVoice1Index, number); 
+        }
     } else if (EVmbxVideo == vmbxType) {
-       updateCsVideo1ToUi();
+        if (mCsVideo1Editor && mUiEngine){
+            mUiEngine->getCsVideoNumber(number);
+            _DBGLOG2("VmbxCpGroup::updateVmbxNumber\
+                 newUiValue=", number)
+            UpdateWidgetContent(mCsVideo1Index, number);  
+        }
+    }  
+    _DBGLOG("VmbxCpGroup::updateVmbxNumber <")
+}
+
+/*!
+  slot for item has been shown on the UI
+ */
+void VmbxCpGroup::itemShown(const QModelIndex &item)
+{
+    _DBGLOG("VmbxCpGroup::itemShown >")
+
+    HbDataFormModelItem* modelItem = mItemHelper.modelItemFromModelIndex(item);
+
+    if (modelItem == mCsVoice1Editor ) {
+        _DBGLOG("VmbxCpGroup::itemShown voice")
+        mCsVoice1Index = item;
+        updateVmbxNumber(EVmbxVoice);
+    }else if (modelItem == mCsVideo1Editor ) {
+        _DBGLOG("VmbxCpGroup::itemShown video")
+        mCsVideo1Index = item;
+        updateVmbxNumber(EVmbxVideo);
     }
-    _DBGLOG("VmbxCpGroup::vmbxNumberChanged <")
+    _DBGLOG("VmbxCpGroup::itemShown <")
+}
+
+/*!
+  Update the vmbx number to the UI
+ */
+void VmbxCpGroup::UpdateWidgetContent(const QModelIndex &item,
+        const QString &string)
+{
+    _DBGLOG("VmbxCpGroup::UpdateWidgetContent >")
+    HbLineEdit* widget = static_cast<HbLineEdit *>(
+            mItemHelper.widgetFromModelIndex(item));
+    if (widget) {
+        _DBGLOG("VmbxCpGroup::UpdateWidgetContent widegt found")
+        widget->setText(string);
+    }
+    if (item == mCsVoice1Index) {
+        mCsVoice1Editor->setContentWidgetData("setText", string);
+    } else if (item == mCsVideo1Index) {
+        mCsVideo1Editor->setContentWidgetData("setText", string);
+    }
+    _DBGLOG("VmbxCpGroup::UpdateWidgetContent <")
+
 }
 
 //End of file
--- a/vmbx/vmbxcpplugin/src/vmbxcpplugin.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/src/vmbxcpplugin.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,7 +16,7 @@
  */
 
 // System includes
-#include <qdebug>
+#include <QDebug>
 #include <cpitemdatahelper.h>
 
 // User includes
--- a/vmbx/vmbxcpplugin/src/vmbxuiengine.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/src/vmbxuiengine.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -26,10 +26,12 @@
 /*!
     Constructor
 */
-VmbxUiEngine::VmbxUiEngine() : mVmbxEngine(NULL)
+VmbxUiEngine::VmbxUiEngine() : mVmbxEngine(NULL),
+    mCsVoiceNumber(""),mCsVideoNumber("")
 { 
     _DBGLOG("VmbxUiEngine::VmbxUiEngine >")
     QT_TRAP_THROWING(mVmbxEngine = CVoiceMailbox::NewL());
+    init();
     _DBGLOG("VmbxUiEngine::VmbxUiEngine <")
 }
 
@@ -46,61 +48,70 @@
 }
 
 /*!
+    Initialize vmbx ui engine.
+*/
+void VmbxUiEngine::init()
+{
+    _DBGLOG("VmbxUiEngine::init >")
+    // Init voice primary line number
+    getCsVoicePrimaryNumber(mCsVoiceNumber);
+    // Init video primary line nubmer
+    if (isVideoSupport()) {
+        getCsVideoPrimaryNumber(mCsVideoNumber);
+    }
+    _DBGLOG("VmbxUiEngine::init <")
+}
+
+/*!
     Getter method for primary voice number of Voice Mailbox.
 */
-void VmbxUiEngine::getCsVoice1Number(QString &aValue)
+void VmbxUiEngine::getCsVoiceNumber(QString &aValue)
 {
-    _DBGLOG("VmbxUiEngine::getCsVoice1Number >")
-    TVoiceMailboxParams vmbxParams;
-    vmbxParams.iType = EVmbxVoice;
-    vmbxParams.iLineType = EVmbxAlsLine1;
-    vmbxParams.iServiceId = KVmbxServiceVoice;
-    getNumber(vmbxParams, aValue);
-    _DBGLOG2("VmbxUiEngine::getCsVoice1Number < , string=", aValue)
+    _DBGLOG("VmbxUiEngine::getCsVoiceNumber >")
+    aValue = mCsVoiceNumber;
+    _DBGLOG2("VmbxUiEngine::getCsVoiceNumber < , string=", aValue)
 }
 
 /*!
     Getter method for primary video number of Voice Mailbox.
 */
-void VmbxUiEngine::getCsVideo1Number(QString &aValue)
+void VmbxUiEngine::getCsVideoNumber(QString &aValue)
 {
-    _DBGLOG("VmbxUiEngine::getCsVideo1Number >")
-    TVoiceMailboxParams vmbxParams;
-    vmbxParams.iType = EVmbxVideo;
-    vmbxParams.iLineType = EVmbxAlsLine1;
-    vmbxParams.iServiceId = KVmbxServiceVideo;
-    getNumber(vmbxParams, aValue);
-    _DBGLOG2("VmbxUiEngine::getCsVideo1Number < , string=", aValue)
+    _DBGLOG("VmbxUiEngine::getCsVideoNumber >")
+    aValue = mCsVideoNumber;
+    _DBGLOG2("VmbxUiEngine::getCsVideoNumber < , string=", aValue)
 }
 
 /*!
     Set number when cs voice number has been edited on UI.
     @param aValue New value.
 */
-void VmbxUiEngine::setCsVoice1Number(const QString &aValue)
+void VmbxUiEngine::setCsVoiceNumber(const QString &aValue)
 {
-    _DBGLOG2("VmbxUiEngine::setCsVoice1Number >, value=",aValue)
+    _DBGLOG2("VmbxUiEngine::setCsVoiceNumber >, value=",aValue)
     TVoiceMailboxParams vmbxParams;
     vmbxParams.iType = EVmbxVoice;
     vmbxParams.iLineType = EVmbxAlsLine1;
     vmbxParams.iServiceId = KVmbxServiceVoice;
     setNumber(vmbxParams, aValue);
-    _DBGLOG("VmbxUiEngine::setCsVoice1Number <");
+    mCsVoiceNumber = aValue;
+    _DBGLOG("VmbxUiEngine::setCsVoiceNumber <");
 }
 
 /*!
     Set number when cs video number has been edited on UI.
     @param aValue New value.
 */
-void VmbxUiEngine::setCsVideo1Number(const QString &aValue)
+void VmbxUiEngine::setCsVideoNumber(const QString &aValue)
 {
-    _DBGLOG2("VmbxUiEngine::setCsVideo1Number >, value=",aValue)
+    _DBGLOG2("VmbxUiEngine::setCsVideoNumber >, value=",aValue)
     TVoiceMailboxParams vmbxParams;
     vmbxParams.iType = EVmbxVideo;
     vmbxParams.iLineType = EVmbxAlsLine1;
     vmbxParams.iServiceId = KVmbxServiceVideo;
     setNumber(vmbxParams, aValue);
-    _DBGLOG("VmbxUiEngine::setCsVideo1Number <");
+    mCsVideoNumber = aValue;
+    _DBGLOG("VmbxUiEngine::setCsVideoNumber <");
 }
 
 /*!
@@ -204,11 +215,46 @@
 {
     _DBGLOG( "VmbxUiEngine::HandleNotifyL >")
     TVmbxType type = aVmbxEntry.VoiceMailboxType();
+    TPtrC number(KNullDesC);
+    aVmbxEntry.GetVmbxNumber(number);
+    if (EVmbxVoice == type) {
+        mCsVoiceNumber = QString::fromUtf16(number.Ptr(), number.Length());
+    } else if (EVmbxVideo == type) {
+        mCsVideoNumber = QString::fromUtf16(number.Ptr(), number.Length());
+    }
     emit voiceMailboxEngineEntriesUpdated(type);
     _DBGLOG( "VmbxUiEngine::HandleNotifyL <")
 }
 
 /*!
+    Getter method for primary voice number of Voice Mailbox.
+*/
+void VmbxUiEngine::getCsVoicePrimaryNumber(QString &aValue)
+{
+    _DBGLOG("VmbxUiEngine::getCsVoicePrimaryNumber >")
+    TVoiceMailboxParams vmbxParams;
+    vmbxParams.iType = EVmbxVoice;
+    vmbxParams.iLineType = EVmbxAlsLine1;
+    vmbxParams.iServiceId = KVmbxServiceVoice;
+    getNumber(vmbxParams, aValue);
+    _DBGLOG2("VmbxUiEngine::getCsVoicePrimaryNumber < , string=", aValue)
+}
+
+/*!
+    Getter method for primary video number of Voice Mailbox.
+*/
+void VmbxUiEngine::getCsVideoPrimaryNumber(QString &aValue)
+{
+    _DBGLOG("VmbxUiEngine::getCsVideoPrimaryNumber >")
+    TVoiceMailboxParams vmbxParams;
+    vmbxParams.iType = EVmbxVideo;
+    vmbxParams.iLineType = EVmbxAlsLine1;
+    vmbxParams.iServiceId = KVmbxServiceVideo;
+    getNumber(vmbxParams, aValue);
+    _DBGLOG2("VmbxUiEngine::getCsVideoPrimaryNumber < , string=", aValue)
+}
+
+/*!
     Private getter method for voice mailbox number.
 */  
 void VmbxUiEngine::getNumber(const TVoiceMailboxParams &aParam, 
@@ -224,7 +270,7 @@
         _DBGLOG3("VmbxUiEngine::getNumber, GetVmbxNumber result=", 
             result,
             " but ignore code and allow returning of an empty string to UI");
-        aValue = QString::fromUtf16 (entryNumber.Ptr(), entryNumber.Length());
+        aValue = QString::fromUtf16(entryNumber.Ptr(), entryNumber.Length());
     }
     delete vmbxEntry;
     vmbxEntry = NULL;
--- a/vmbx/vmbxcpplugin/tsrc/src/main.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/tsrc/src/main.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <QtTest/QtTest>
 #include "ut_vmbxcpplugin.h"
 #include "ut_vmbxuiengine.h"
@@ -26,7 +10,8 @@
     {
     qDebug("main() >");
     
-    QApplication app(argc, argv);
+    //TODO: wk18 QApplication can not be created will casue crash.
+    //QApplication app(argc, argv);
 
     qDebug("ut_vmbxuiengine");
     Ut_VmbxUiEngine tcUiEngine; 
--- a/vmbx/vmbxcpplugin/tsrc/src/ut_vmbxcpplugin.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/tsrc/src/ut_vmbxcpplugin.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -49,10 +49,5 @@
     QVERIFY(group);
     delete group;
     group = NULL;
-    
-    group = new VmbxCpGroup();
-    QVERIFY(group);
-    delete group;
-    group = NULL;
 }
 //End of file
--- a/vmbx/vmbxcpplugin/vmbxcpplugin.pri	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxcpplugin/vmbxcpplugin.pri	Thu Jun 24 13:58:21 2010 +0100
@@ -63,9 +63,12 @@
 HEADERS += inc/vmbxcpplugin.h \
            inc/vmbxcpgroup.h \
            inc/vmbxuiengine.h \
-           inc/loggerutil.h
+           inc/loggerutil.h \
+           inc/actioncustomitem.h \
+           inc/customedit.h
 
 SOURCES += src/vmbxcpplugin.cpp \
            src/vmbxcpgroup.cpp \
-           src/vmbxuiengine.cpp
-
+           src/vmbxuiengine.cpp \
+           src/actioncustomitem.cpp \
+           src/customedit.cpp
\ No newline at end of file
Binary file vmbx/vmbxengine/cenrep/101f874f.txt has changed
Binary file vmbx/vmbxengine/conf/CI_voicemailbox.confml has changed
Binary file vmbx/vmbxengine/conf/voicemailbox.confml has changed
--- a/vmbx/vmbxengine/inc/mvmbxuihandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/mvmbxuihandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -45,7 +45,7 @@
      * @param aNumber the voice mailbox number
      * @param aResult out the result of dialog
      */
-    virtual void ShowVmbxQueryDialog( const TVmbxType& aType,
+    virtual void ShowVmbxQueryDialogL( const TVmbxType& aType,
         TDes& aNumber, TInt& aResult )= 0;
 
 
@@ -55,7 +55,7 @@
      * @param in aType vmbx type
      * @param out aResult the result of dialog
      */
-    virtual void ShowDefineSelectionDialog( 
+    virtual void ShowDefineSelectionDialogL( 
         TVmbxType& aType, TInt& aResult ) = 0;
 
     /**
--- a/vmbx/vmbxengine/inc/mvmbxuiutilities.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/mvmbxuiutilities.h	Thu Jun 24 13:58:21 2010 +0100
@@ -73,7 +73,7 @@
      * @param in aType vmbx type
      * @param out aResult the result of dialog
      */
-    virtual void ShowDefineSelectionDialog( TVmbxType& aType, TInt& aResult ) = 0;
+    virtual void ShowDefineSelectionDialogL( TVmbxType& aType, TInt& aResult ) = 0;
 
     /**
      * Show call number in selection dialog
--- a/vmbx/vmbxengine/inc/vmbxemergencycall.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxemergencycall.h	Thu Jun 24 13:58:21 2010 +0100
@@ -22,8 +22,8 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <PhCltTypes.h>         // from PhoneClient
-#include <MPhCltEmergencyCallObserver.h>
+#include <phclttypes.h>         // from PhoneClient
+#include <mphcltemergencycallobserver.h>
 
 // CLASS DECLARATION
 
--- a/vmbx/vmbxengine/inc/vmbxpbkstore.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxpbkstore.h	Thu Jun 24 13:58:21 2010 +0100
@@ -217,12 +217,6 @@
     TVmbxSimPhonebookType iPhoneBookType;
 
     /**
-     * Alpha string which is read from the SIM card
-     * Own.
-     */
-     HBufC* iAlphaStringFromSIM;
-
-    /**
      * CActiveSchedulerWait
      * Own.
      */
--- a/vmbx/vmbxengine/inc/vmbxqtuihandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxqtuihandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -98,6 +98,13 @@
     * @param aNoteType in TVmbxType type
     */
     void showInformationNote(const TVmbxNoteType aType);
+
+    /**
+    * Check qt environment supported or not.
+    *
+    * @return qt environment supported or not.
+    */
+    bool isQtEnvSupported();
     
 private slots:
     /**
@@ -123,7 +130,6 @@
     * Query and Define mailbox dialog. Own
     */    
     HbInputDialog *iQueryDialog;
-
     };
 
 #endif  // VMBXQTUIHANDLER_H
--- a/vmbx/vmbxengine/inc/vmbxuihandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxuihandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -57,7 +57,7 @@
      * @param aNumber the voice mailbox number
      * @param aResult out the result of dialog
      */
-    virtual void ShowVmbxQueryDialog( const TVmbxType& aType,
+    virtual void ShowVmbxQueryDialogL( const TVmbxType& aType,
         TDes& aNumber, TInt& aResult );
 
     /**
@@ -66,7 +66,7 @@
      * @param in aType vmbx type
      * @param out aResult the result of dialog
      */
-    virtual void ShowDefineSelectionDialog( TVmbxType& aType, TInt& aResult );
+    virtual void ShowDefineSelectionDialogL( TVmbxType& aType, TInt& aResult );
 
     /**
      * Show call number in selection dialog
@@ -115,7 +115,6 @@
      * Own
      */
     VmbxQtUiHandler* iHandler;
-
     };
 
 #endif  // VMBXENGINEQTUI_H
--- a/vmbx/vmbxengine/inc/vmbxuiutilities.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxuiutilities.h	Thu Jun 24 13:58:21 2010 +0100
@@ -34,7 +34,6 @@
 *  Implementation of the auxiliary methods for the VMBX engine classes
 *
 *  @lib vmbxengine.lib
-*  @since S60 v5.2
 */
 NONSHARABLE_CLASS( CVmbxUiUtilities ): public CBase,
                                        public MVmbxUiUtilities
@@ -55,7 +54,6 @@
     /**
      * Show mailbox query
      *
-     * @since S60 v5.2
      * @param in aType TVmbxType type
      * @param in aMode TVmbxQueryMode mode
      * @param out aNumber the voice mailbox number
@@ -65,25 +63,12 @@
                     TDes& aNumber );
 
     /**
-     * Show mailbox query dialog
-     * Leaves if user cancel selected.
-     *
-     * @param aType in TVmbxType type
-     * @param aMode Tin VmbxQueryMode mode
-     * @param aNumber the voice mailbox number
-     * @param aResult out the result of dialog
-     */
-    void ShowQueryDialogL( const TVmbxType& aType,
-        const TVmbxQueryMode & aMode, TDes& aNumber, TInt& aResult );
-
-    /**
      * Show informationd note
      *
      * @param aType in TVmbxNoteType type
      */
     void ShowInformationdNoteL(const TVmbxNoteType aType);
  
-
     /**
      * Show define number in selection dialog
      * Leaves if user cancel selected.
@@ -91,7 +76,7 @@
      * @param in aType vmbx type
      * @param out aResult the result of dialog
      */
-    void ShowDefineSelectionDialog( TVmbxType& aType, TInt& aResult );
+    void ShowDefineSelectionDialogL( TVmbxType& aType, TInt& aResult );
 
     /**
      * Show call number in selection dialog
@@ -109,13 +94,6 @@
                 TVoiceMailboxParams& aParams, TInt& aResult );
 
     /**
-     * Tries to close all open dialogs
-     *
-     */
-    void DismissDialogL();
-
-
-    /**
      * Get Mailbox type default image.
      * If get unseccessful, Leaves with Symbian OS error code
      *
@@ -136,6 +114,11 @@
      */
     void ShowInvalidWarningDialogL();
 
+     /**
+     * Tries to close all open dialogs
+     *
+     */
+    void DismissDialogL();   
 
 private: // data
 
@@ -149,10 +132,20 @@
      */
     void ConstructL();
 
+    /**
+     * Show mailbox query dialog
+     * Leaves if user cancel selected.
+     *
+     * @param aType in TVmbxType type
+     * @param aMode Tin VmbxQueryMode mode
+     * @param aNumber the voice mailbox number
+     * @param aResult out the result of dialog
+     */
+    void ShowQueryDialogL( const TVmbxType& aType,
+        const TVmbxQueryMode & aMode, TDes& aNumber, TInt& aResult );
 
     /**
     * Open phonebook's Single Fetch Dialog
-    * @since S60 v5.2
     * @param aPhoneNumber Phone number
     */
     void FetchNumberFromPhonebook2L( TDes& aPhoneNumber );
--- a/vmbx/vmbxengine/inc/voicemailboxprivatecrkeys.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/inc/voicemailboxprivatecrkeys.h	Thu Jun 24 13:58:21 2010 +0100
@@ -91,7 +91,13 @@
 */
 const TUint32 KVmbxUiCaps                   = 0x00000006;
 
-
+/** Flag which Video mailbox is supported or NOT
+*
+* Integer type
+*
+* Default value: 1
+*/
+const TUint32 KVmbxVideoMbxSupport = 0x00000015;
 
 
 #endif      // VOICEMAILBOXPRIVATECRKEYS_H
--- a/vmbx/vmbxengine/src/cvoicemailboxentry.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/cvoicemailboxentry.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -186,7 +186,7 @@
     TInt result( KErrNoMemory );
     if ( aVmbxNumber.Length() > KVmbxMaxNumberLength )
         {
-        result = KErrArgument;
+        result = KErrOverflow;
         }
     else
         {
@@ -291,7 +291,7 @@
     TInt result( KErrNoMemory );
     if ( KVmbxMaxNumberLength < aVmbxName.Length() )
         {
-        result = KErrArgument;
+        result = KErrOverflow;
         }
     else
         {
--- a/vmbx/vmbxengine/src/dialogwaiter.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/dialogwaiter.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -17,18 +17,36 @@
 */
 
 #include "dialogwaiter.h"
+#include "vmbxlogger.h"
 
+// ======== MEMBER FUNCTIONS ==================================================
+
+// ----------------------------------------------------------------------------
+// DialogWaiter::wait
+// 
+// ----------------------------------------------------------------------------
+//
 HbAction* DialogWaiter::wait()
 {
+    VMBLOGSTRING("DialogWaiter::wait=>")
     mLoop.exec();
     HbAction* a=mResult;
     mResult=0;
+    VMBLOGSTRING2("VMBX: DialogWaiter::wait action a %d <=",a)
     return a;
 }
 
+// ----------------------------------------------------------------------------
+// DialogWaiter::done
+// 
+// ----------------------------------------------------------------------------
+//
 void DialogWaiter::done(HbAction* result)
 {
+    VMBLOGSTRING("DialogWaiter::done=>")
     mResult=result;
     mLoop.quit();
+    VMBLOGSTRING("DialogWaiter::done<=")
 }
 
+//End of file
--- a/vmbx/vmbxengine/src/vmbxcenrephandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxcenrephandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -266,7 +266,7 @@
     VMBLOGSTRING( "VMBX: CVmbxCenRepHandler::VideoSupported =>" );
     TBool supported( EFalse);
 
-    TInt res = iCRSession->Get( KVideoMbxSupport, supported );
+    TInt res = iCRSession->Get( KVmbxVideoMbxSupport, supported );
 
     if ( KErrNone != res )
         {
--- a/vmbx/vmbxengine/src/vmbxemergencycall.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxemergencycall.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -16,8 +16,8 @@
 */
 
 // INCLUDE FILES
-#include <CPhCltEmergencyCall.h>
-#include <PhCltUtils.h>
+#include <cphcltemergencycall.h>
+#include <phcltutils.h>
 #include "vmbxlogger.h"
 #include "vmbxemergencycall.h"
 
--- a/vmbx/vmbxengine/src/vmbxpbkstore.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxpbkstore.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -59,7 +59,6 @@
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::~CVmbxPbkStore =>" );
     Cancel();
     iPhoneBook.Close();
-    delete iAlphaStringFromSIM;
     delete iWait;
     delete iETelConnection;
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::~CVmbxPbkStore <=" );
@@ -251,24 +250,20 @@
             RMobilePhoneBookStore::ETagPBAdnIndex, (TUint16)entryIndex );
             VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBAdnIndex \
                     result=%I",  result );
-            // Add name if it existed on SIM card,Type of ETagPBText is TDes16
-            if ( iAlphaStringFromSIM )
-                {
-                result = pbkBuffer->PutTagAndValue( 
-                RMobilePhoneBookStore::ETagPBText, *iAlphaStringFromSIM );
-                VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBText\
-                        result=%I",  result );
-                }
+            // Add name, Type of ETagPBText is TDes16
+            TPtrC vmbxName( KNullDesC );
+            aEntry.GetVmbxName( vmbxName );
+            result = pbkBuffer->PutTagAndValue( 
+            RMobilePhoneBookStore::ETagPBText, vmbxName );
+            VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBText\
+                    result=%I",  result );
+            // Add number, Type of ETagPBNumber is TDes16
             TPtrC vmbxNumber( KNullDesC );
-            result = aEntry.GetVmbxNumber( vmbxNumber );
-            if ( KErrNone == result )
-                {
-                // Add number,Type of ETagPBNumber is TDes16
-                result = pbkBuffer->PutTagAndValue( 
-                RMobilePhoneBookStore::ETagPBNumber, vmbxNumber );
-                VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBNumber\
-                        result=%I",  result );
-                }
+            aEntry.GetVmbxNumber( vmbxNumber );
+            result = pbkBuffer->PutTagAndValue( 
+            RMobilePhoneBookStore::ETagPBNumber, vmbxNumber );
+            VMBLOGSTRING2( "VMBX: CVmbxPbkStore::Write: ETagPBNumber\
+                    result=%I",  result );
             }
 
         if ( KErrNone == result )
@@ -477,8 +472,6 @@
     TInt numEntries( 1 );
     TBuf8<KVmbxPhonebookBufferSize> pbData;
 
-    delete iAlphaStringFromSIM;
-    iAlphaStringFromSIM = NULL;
     TInt result( KErrInUse );
     if ( iPhoneBookType == EMBDNPhoneBook )
         {
@@ -548,8 +541,6 @@
     {
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::ParseDataL =>" );
     TInt result( KErrNotFound );
-    delete iAlphaStringFromSIM;
-    iAlphaStringFromSIM = NULL;
 
     VMBLOGSTRING2( "CVmbxPbkStore::ParseDataL Lengh = %d", aPbData.Length() );
 
@@ -618,6 +609,8 @@
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL =>" );
 
     TInt result( KErrNone );
+    TInt next( KErrNone );
+    TBool found( EFalse );
     TUint8 tagValue( 0 );
     CPhoneBookBuffer::TPhBkTagType dataType(
                                           CPhoneBookBuffer::EPhBkTypeNoData );
@@ -625,7 +618,7 @@
     result = aPbkBuffer->GetTagAndType( tagValue, dataType );
 
     // loop through data to find a number and an possible alpha string
-    while ( result == KErrNone && aPbkBuffer->RemainingReadLength() > 0 )
+    while ( next == KErrNone && result == KErrNone )
         {
         VMBLOGSTRING2("VMBX: CVmbxPbkStore::ReadPbkDataL: tagValue: %d",
          tagValue );
@@ -635,48 +628,38 @@
         // Check for text field
         if ( tagValue == RMobilePhoneBookStore::ETagPBText )
             {
+            VMBLOGSTRING("VMBX: CVmbxPbkStore::ReadPbkDataL: \
+                          ETagPBText found Alpha ID" );
+            found = ETrue;
             // Alpha string field found from TLV entry,
             // assuming 16bit data
             TPtrC16 alphaPtrC;
             result = aPbkBuffer->GetValue( alphaPtrC );
+            
             if ( KErrNone == result )
                 {
-                iAlphaStringFromSIM = alphaPtrC.AllocL();
-                VMBLOGSTRING2("VMBX: CVmbxPbkStore::ReadPbkDataL: \
-                iAlphaStringFromSIM: %S", iAlphaStringFromSIM );
+                // set name to vmbx entry
+                result = aEntry.SetVmbxName( alphaPtrC );
                 }
             }
 
-         // Check for number field
-         else if ( tagValue == RMobilePhoneBookStore::ETagPBNumber )
+        // Check for number field
+        else if ( tagValue == RMobilePhoneBookStore::ETagPBNumber )
             {
+            VMBLOGSTRING("VMBX: CVmbxPbkStore::ReadPbkDataL: \
+                          ETagPBNumber found Number" );
+            found = ETrue;
             // Number field found from TLV entry, assuming 16bit data
             TPtrC16 numberPtrC;
             result = aPbkBuffer->GetValue( numberPtrC );
 
-            VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL:\
-                                            ETagPBNumber found" );
-
             if ( KErrNone == result )
                 {
-                // Error code is returned if number not fit to
-                // local buffer.
-                if ( numberPtrC.Length() > KVmbxMaxNumberLength )
-                    {
-                    result = KErrOverflow;
-                    VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL: \
-                                            Overflow error" );
-                    }
-                else
-                    {
-                    result = aEntry.SetVmbxNumber( numberPtrC );
-                    VMBLOGSTRING("VMBX: CVmbxPbkStore::ReadPbkDataL: \
-                                    ETagPBNumber found Number" );
-                    break;
-                    }
+                // set number to vmbx entry
+                result = aEntry.SetVmbxNumber( numberPtrC );
                 }
             }
-         else
+        else
             {
             // skip field
             aPbkBuffer->SkipValue( dataType );
@@ -686,12 +669,18 @@
         if ( KErrNone == result )
             {
             // Read next field type
-            result = aPbkBuffer->GetTagAndType( tagValue, dataType );
+            next = aPbkBuffer->GetTagAndType( tagValue, dataType );
             VMBLOGSTRING2( "VMBX: CVmbxPbkStore::ReadPbkDataL: \
                                     next GetTagAndType = %I", result );
             }
         }
 
+    // Neither alpha string Nor number is found
+    if( KErrNone == result && !found )
+        {
+        result = KErrNotFound;
+        }
+    
     VMBLOGSTRING2( "VMBX: CVmbxPbkStore::ReadPbkDataL result=%I", result );
     User::LeaveIfError( result );
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL <=" );
--- a/vmbx/vmbxengine/src/vmbxqtuihandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxqtuihandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -18,9 +18,8 @@
 
 // qt
 #include <QString>
+#include <QRegExp>
 #include <QCoreApplication>
-#include <QRegExp>
-
 #include <hbinputdialog.h>
 #include <hblabel.h>
 #include <hbaction.h>
@@ -86,7 +85,7 @@
     VMBLOGSTRING2("VmbxQtUiHandler::init load vmbx result %d",
             translatorLoaded)
     // Install vmbx localization
-    if (translatorLoaded && qApp) {
+    if (translatorLoaded) {
         VMBLOGSTRING("VmbxQtUiHandler::init qApp !")
         qApp->installTranslator(&iTranslator);
     }
@@ -94,7 +93,7 @@
     bool loaded = iCommonTranslator.load( "common_"+lang, path);
     VMBLOGSTRING2("VmbxQtUiHandler::init load common result %d",
         loaded)
-    if (loaded && qApp) {
+    if (loaded) {
         VMBLOGSTRING("VmbxQtUiHandler::init qApp !!")
         qApp->installTranslator(&iCommonTranslator);
     }
@@ -121,6 +120,12 @@
         VMBLOGSTRING( "VmbxQtUiHandler::showVmbxQueryDialog type error" )
         return;
     }
+    if (iQueryDialog) {
+        delete iQueryDialog;
+        iQueryDialog = 0;
+    }
+        
+    
     iQueryDialog = new HbInputDialog();
     iQueryDialog->setDismissPolicy(HbDialog::NoDismiss);
     iQueryDialog->setTimeout(HbDialog::NoTimeout);
@@ -131,17 +136,24 @@
 
     // Set HbLineEdit  Content 
     iQueryDialog->lineEdit()->setText(aNumber); // default text
-    iQueryDialog->lineEdit()->setFocus(); // Enable the VKB
     iQueryDialog->lineEdit()->setMaxLength(KVmbxPhoneCharMaxLength);
     HbEditorInterface inputMode(iQueryDialog->lineEdit());
     inputMode.setFilter(HbPhoneNumberFilter::instance());
     bool ret = connect(iQueryDialog->lineEdit(), SIGNAL(textChanged(QString)),
         this, SLOT(updatePrimaryAction(QString)));    
     VMBLOGSTRING2( "VmbxQtUiHandler::showVmbxQueryDialog connect textChanged %d", ret)
+    
     DialogWaiter waiter;
+    HbAction *primary = 0;
+    if (iQueryDialog->actions().count()>= 1) {
+        primary = qobject_cast<HbAction*>(iQueryDialog->actions().at(0));
+    }
+    
     iQueryDialog->open(&waiter, SLOT(done(HbAction *)));
+    iQueryDialog->lineEdit()->setFocus(); // Enable the VKB
+    
     HbAction *result = waiter.wait();
-    if (result == iQueryDialog->primaryAction()) {
+    if (result == primary) {
         VMBLOGSTRING( "VmbxQtUiHandler::showVmbxQueryDialog select OK" )
         // asign OK KEY value
         aResult = KErrNone;
@@ -149,8 +161,15 @@
     } else {
         aResult = KErrCancel;
     }
+    
+    disconnect(iQueryDialog->lineEdit(), SIGNAL(textChanged(QString)),
+            this, SLOT(updatePrimaryAction(QString))); 
+    
+
+    // TODO Delete Operation will case panic on EM
     delete iQueryDialog;
     iQueryDialog = 0;
+    
     VMBLOGSTRING2("VmbxQtUiHandler::showVmbxQueryDialog aResult = %d", aResult)
     VMBLOGSTRING("VmbxQtUiHandler::showVmbxQueryDialog Exit")
 }
@@ -182,10 +201,10 @@
     defineListDialog->setContentWidget(list);
 
     //  Sets the "Cancel"-action/button
-    HbAction *cancelAction =  new HbAction(hbTrId(
-            "txt_common_button_cancel"));
-    defineListDialog->setSecondaryAction(cancelAction);
-
+    HbAction *cancelAction = 
+        new HbAction(hbTrId("txt_common_button_cancel"),defineListDialog);
+    defineListDialog->addAction(cancelAction);
+    
     connect(list, SIGNAL(activated(HbListWidgetItem *)), 
         defineListDialog, SLOT(close()));
     DialogWaiter waiter;
@@ -209,8 +228,12 @@
     VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog: aType%d", aType)
     VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog: aResult%d", \
         aResult)
+        
+    
+     // TODO Delete Operation will case panic on EM
     delete defineListDialog;
     defineListDialog = 0;
+    
     VMBLOGSTRING("VmbxQtUiHandler::showDefineSelectionDialog Exit")
 }
 
@@ -280,10 +303,10 @@
         }
     }
     //  Sets the "Cancel"-action/button
-    HbAction *cancelAction = new HbAction(hbTrId(
-        "txt_common_button_cancel_toolbar"));
-    callListDialog->setSecondaryAction(cancelAction);
-
+    HbAction *cancelAction = 
+        new HbAction(hbTrId("txt_common_button_cancel"),callListDialog);
+    callListDialog->addAction(cancelAction);
+    
     connect(list, SIGNAL(activated(HbListWidgetItem *)), 
             callListDialog, SLOT(close()));
     DialogWaiter waiter;
@@ -358,7 +381,8 @@
         msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
     }
     msgBox->setText(noteText);
-    msgBox->removeAction(msgBox->primaryAction());
+    msgBox->setTimeout( HbDialog::StandardTimeout );
+    msgBox->clearActions();
     DialogWaiter waiter;
     msgBox->open(&waiter, SLOT(done(HbAction *)));
     waiter.wait();
@@ -374,18 +398,22 @@
 //
 void VmbxQtUiHandler::updatePrimaryAction(const QString &aInput)
 {
-    HbAction *ok = iQueryDialog->primaryAction();
-    if (aInput.isEmpty() || aInput.contains(QRegExp("\\d\\d\\d"))){
-        if (!ok->isEnabled()){
-            ok->setEnabled(true);
-            VMBLOGSTRING("VmbxQtUiHandler::updatePrimaryAction enable OK")
+    if (iQueryDialog) {    
+        QAction *ok = iQueryDialog->actions().at(0);
+        if (ok) {
+            if ( aInput.isEmpty() || aInput.contains(QRegExp("\\d\\d\\d"))){
+                if (!ok->isEnabled()){
+                    ok->setEnabled(true);
+                    VMBLOGSTRING("VmbxQtUiHandler::updatePrimaryAction enable OK")
+                }
+            } else {
+                if (ok->isEnabled()){
+                    ok->setEnabled(false);
+                    VMBLOGSTRING("VmbxQtUiHandler::updatePrimaryAction disable OK")  
+                }
+            }
         }
-    }else{
-        if (ok->isEnabled()){
-            ok->setEnabled(false);
-            VMBLOGSTRING("VmbxQtUiHandler::updatePrimaryAction disable OK")  
-        }
-    }  
+    }
 }
 
 //End of file
--- a/vmbx/vmbxengine/src/vmbxuihandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxuihandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -18,6 +18,7 @@
 
 // qt
 #include <QString>
+#include <QCoreApplication>
 #include <cvoicemailbox.h>
 #include <cvoicemailboxentry.h>
 
@@ -52,7 +53,14 @@
 void CVmbxUiHandler::ConstructL()
 {
     VMBLOGSTRING( "CVmbxUiHandler::ConstructL" )
-    iHandler = new VmbxQtUiHandler;
+    if ( qApp )
+        {
+        iHandler = new VmbxQtUiHandler;
+        }
+    else 
+        {
+        User::Leave(KErrNotSupported);
+        }
     VMBLOGSTRING( "CVmbxUiHandler::ConstructL Exit" )
 }
 
@@ -80,49 +88,54 @@
 }
 
 // ----------------------------------------------------------------------------
-// CVmbxUiHandler::ShowVmbxQueryDialog
+// CVmbxUiHandler::ShowVmbxQueryDialogL
 // (Show query dialog).
 // ----------------------------------------------------------------------------
 //
-void CVmbxUiHandler::ShowVmbxQueryDialog(const TVmbxType& aType,
+void CVmbxUiHandler::ShowVmbxQueryDialogL(const TVmbxType& aType,
                           TDes& aNumber, TInt& aResult)
 {
     VMBLOGSTRING( "CVmbxUiHandler::ShowVmbxQueryDialog" )
-    QString vmbxNumber;
-    if ( aNumber.Length() > 0 )
+    if ( iHandler )
         {
-        vmbxNumber=QString::fromUtf16(aNumber.Ptr(), aNumber.Length());
+        QString vmbxNumber;
+        if ( aNumber.Length() > 0 )
+            {
+            vmbxNumber=QString::fromUtf16(aNumber.Ptr(), aNumber.Length());
+            }
+        QT_TRYCATCH_LEAVING(
+            iHandler->showVmbxQueryDialog( aType, vmbxNumber, aResult ));
+        aNumber = vmbxNumber.utf16();
+        VMBLOGSTRING2( "CVmbxUiHandler::ShowVmbxQueryDialogL:\
+            aNumber = %S", &aNumber );
         }
-    QT_TRYCATCH_LEAVING(
-        iHandler->showVmbxQueryDialog( aType, vmbxNumber, aResult ));
-    aNumber = vmbxNumber.utf16();
-    VMBLOGSTRING2( "CVmbxUiHandler::ShowVmbxQueryDialog:\
-        aNumber = %S", &aNumber );
-    VMBLOGSTRING( "CVmbxUiHandler::ShowVmbxQueryDialog show over" )
-    VMBLOGSTRING( "CVmbxUiHandler::ShowVmbxQueryDialog Exit" )
+    VMBLOGSTRING( "CVmbxUiHandler::ShowVmbxQueryDialogL Exit" )
 }
 
 // ----------------------------------------------------------------------------
-// CVmbxUiHandler::ShowVmbxQueryDialog
-// (Show query dialog).
+// CVmbxUiHandler::ShowDefineSelectionDialogL
+// (Show define slection dialog).
 // ----------------------------------------------------------------------------
 //
-void CVmbxUiHandler::ShowDefineSelectionDialog( TVmbxType& aType,
+void CVmbxUiHandler::ShowDefineSelectionDialogL( TVmbxType& aType,
        TInt& aResult )
 {
     VMBLOGSTRING( "CVmbxUiHandler::ShowDefineSelectionDialog" )
-    QT_TRYCATCH_LEAVING(iHandler->showDefineSelectionDialog( aType, aResult ));
-    VMBLOGSTRING2( "CVmbxUiHandler::ShowDefineSelectionDialog:\
-        aType = %d", aType );
-    VMBLOGSTRING2( "CVmbxUiHandler::ShowDefineSelectionDialog:\
-        aResult = %d", aResult );
-    VMBLOGSTRING( "CVmbxUiHandler::ShowDefineSelectionDialog Exit" )
+    if ( iHandler )
+        {
+        QT_TRYCATCH_LEAVING(iHandler->showDefineSelectionDialog( aType, aResult ));
+        VMBLOGSTRING2( "CVmbxUiHandler::ShowDefineSelectionDialogL:\
+            aType = %d", aType );
+        VMBLOGSTRING2( "CVmbxUiHandler::ShowDefineSelectionDialogL:\
+            aResult = %d", aResult );
+        }
+    VMBLOGSTRING( "CVmbxUiHandler::ShowDefineSelectionDialogL Exit" )
 
 }
 
 // ----------------------------------------------------------------------------
 // CVmbxUiHandler::ShowCallSelectionDialogL
-// (Show query dialog).
+// (Show call selection dialog).
 // ----------------------------------------------------------------------------
 //
 void CVmbxUiHandler::ShowCallSelectionDialogL(
@@ -130,44 +143,54 @@
             TVoiceMailboxParams& aParams, TInt& aResult )
 {
     VMBLOGSTRING( "CVmbxUiHandler::ShowCallSelectionDialogL" )
-    TInt count = aArray.Count();
-    VMBLOGSTRING2("CVmbxUiHandler::showCallSelectionDialogL count = %d", count)
-    if (count < 1) 
+    if ( iHandler )
         {
-        VMBLOGSTRING("CVmbxUiHandler::showCallSelectionDialogL leave<=")
-        User::Leave(KErrArgument);
+        TInt count = aArray.Count();
+        VMBLOGSTRING2("CVmbxUiHandler::showCallSelectionDialogL count = %d",
+            count)
+        if (count < 1)
+            {
+            VMBLOGSTRING("CVmbxUiHandler::showCallSelectionDialogL leave<=")
+            User::Leave(KErrArgument);
+            }
+        QList<CVoiceMailboxEntry* > entryList;
+        for ( int i = 0; i < aArray.Count(); i++ )
+            {
+            entryList.append(aArray[i]);
+            }
+        QT_TRYCATCH_LEAVING(
+            iHandler->showCallSelectionDialog( entryList, aParams, aResult ));
+        VMBLOGSTRING2( "CVmbxUiHandler::ShowCallSelectionDialogL:\
+            aResult = %d", aResult );
         }
-    QList<CVoiceMailboxEntry* > entryList;
-    for ( int i = 0; i < aArray.Count(); i++ ) 
-        {
-        entryList.append(aArray[i]);
-        }
-    QT_TRYCATCH_LEAVING(
-        iHandler->showCallSelectionDialog( entryList, aParams, aResult ));
-    VMBLOGSTRING2( "CVmbxUiHandler::ShowCallSelectionDialogL:\
-        aResult = %d", aResult );
     VMBLOGSTRING( "CVmbxUiHandler::ShowCallSelectionDialogL" )
 }
 
 // ----------------------------------------------------------------------------
-// CVmbxUiHandler::ShowInformationdNote
+// CVmbxUiHandler::ShowInformationdNoteL
 // ----------------------------------------------------------------------------
 //
 void CVmbxUiHandler::ShowInformationdNoteL(const TVmbxNoteType aType)
 {
     VMBLOGSTRING( "CVmbxUiHandler::ShowInformationdNoteL" )
-    QT_TRYCATCH_LEAVING(iHandler->showInformationNote(aType));
+    if ( iHandler )
+        {
+        QT_TRYCATCH_LEAVING(iHandler->showInformationNote(aType));
+        }
     VMBLOGSTRING( "CVmbxUiHandler::ShowInformationdNoteL Exit" )
 }
 
 // ----------------------------------------------------------------------------
-// CVmbxUiHandler::ShowInvalidWarningNote
+// CVmbxUiHandler::ShowInvalidWarningNoteL
 // ----------------------------------------------------------------------------
 //
 void CVmbxUiHandler::ShowInvalidWarningNoteL()
 {
     VMBLOGSTRING( "CVmbxUiHandler::ShowInvalidWarningNoteL" )
-    QT_TRYCATCH_LEAVING(iHandler->showInformationNote( EInvalidNumber ));
+    if ( iHandler )
+        {
+        QT_TRYCATCH_LEAVING(iHandler->showInformationNote( EInvalidNumber ));
+        }
     VMBLOGSTRING( "CVmbxUiHandler::ShowInvalidWarningNoteL Exit" )
 }
 
--- a/vmbx/vmbxengine/src/vmbxuiutilities.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxuiutilities.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -75,7 +75,7 @@
     {
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ConstructL =>" );
     // create resource handler
-    iUiHandler = CVmbxUiHandler::NewL();
+    TRAP_IGNORE(iUiHandler = CVmbxUiHandler::NewL());
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ConstructL <=" );
     }
 
@@ -88,6 +88,11 @@
         const TVmbxQueryMode & aMode, TDes& aNumber )
     {
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL =>" );
+    if ( !iUiHandler ) 
+        {
+        VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL no qt env Exit" )
+        User::Leave(KErrNotSupported);
+        }
     VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryL: aNumber =%S ", &aNumber );
     TInt result( KErrNone );
     FOREVER
@@ -122,13 +127,128 @@
                 break;
                 }// number NULL
             }
-        }// End FOREVER;
+        }// End FOREVER
     VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryL: result=%I ", result );
     User::LeaveIfError( result );
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL <=" );
     }
 
 // ---------------------------------------------------------------------------
+// VmbxUtilities::ShowInformationdNote
+//
+// ---------------------------------------------------------------------------
+//
+void CVmbxUiUtilities::ShowInformationdNoteL(const TVmbxNoteType aType )
+    {
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInformationdNoteL =>" );
+    if ( iUiHandler ) 
+        {
+        iUiHandler->ShowInformationdNoteL( aType );
+        }
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInformationdNoteL <=" );
+    }
+
+// ---------------------------------------------------------------------------
+// VmbxUtilities::ShowDefineSelectionDialogL
+// Show define number in selection list
+// ---------------------------------------------------------------------------
+//
+void CVmbxUiUtilities::ShowDefineSelectionDialogL( TVmbxType& aType,
+                                                         TInt& aResult )
+    {
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL =>" );
+    if (!iUiHandler ) 
+        {
+        VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL\
+            no qt env Exit" )
+        User::Leave(KErrNotSupported);
+        }
+    iUiHandler->ShowDefineSelectionDialogL( aType, aResult );
+    VMBLOGSTRING3( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL: \
+                     aType=%I, aResult=%I <=", aType, aResult );
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL <=" );
+    }
+
+// ---------------------------------------------------------------------------
+// VmbxUtilities::ShowCallSelectionDialogL
+// Show call number in selection list
+// ---------------------------------------------------------------------------
+//
+void CVmbxUiUtilities::ShowCallSelectionDialogL(
+                    const RPointerArray<CVoiceMailboxEntry>& aArray,
+                    TVoiceMailboxParams& aParams,
+                    TInt& aResult )
+    {
+    VMBLOGSTRING("VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL  =>");
+    if (!iUiHandler) 
+        {
+        VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL\
+            no qt env Exit" )
+        User::Leave(KErrNotSupported);
+        }
+    if ( aArray.Count() < 1 )
+        {
+        User::Leave( KErrArgument );
+        }
+    iUiHandler->ShowCallSelectionDialogL( aArray, aParams, aResult );
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL <=" );
+    }
+
+// --------------------------------------------------------------------------
+// CVmbxUiUtilities::ShowNotAllowedEditingDialogL
+// --------------------------------------------------------------------------
+//
+void CVmbxUiUtilities::ShowNotAllowedEditingDialogL()
+    {
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowNotAllowedEditingDialogL =>" );
+    // Information user can't edit.
+    if ( iUiHandler) 
+        {
+        iUiHandler->ShowInformationdNoteL( ENotAllowUserEditing );
+        }
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowNotAllowedEditingDialogL <=" );
+    }
+
+// ---------------------------------------------------------------------------
+// VmbxUtilities::ShowInvalidWarningDialogL
+//
+// ---------------------------------------------------------------------------
+//
+void CVmbxUiUtilities::ShowInvalidWarningDialogL()
+    {
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInvalidWarningDialogL =>" );
+    if ( iUiHandler) 
+        {
+        iUiHandler->ShowInformationdNoteL( EInvalidNumber );
+        }
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInvalidWarningDialogL <=" );
+    }
+
+// ---------------------------------------------------------------------------
+// VmbxUtilities::DismissDialogL
+// Tries to close all open dialogs
+// ---------------------------------------------------------------------------
+//
+void CVmbxUiUtilities::DismissDialogL()
+    {
+    VMBLOGSTRING( 
+    "VMBX: CVmbxUiUtilities::DismissDialogL EMPTY IMPLEMENTATION!=>" );
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::DismissDialogL <=" );
+    }
+
+// Commented out because branding is not supported yet.
+// ---------------------------------------------------------------------------
+// CVmbxUiUtilities::GetVmbxImageL
+//
+// ---------------------------------------------------------------------------
+/*
+CGulIcon* CVmbxUiUtilities::GetVmbxImageL(
+                        const TVoiceMailboxParams& aParams )
+    {
+    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::GetVmbxImageL" );
+*/
+
+// ---------------------------------------------------------------------------
 // VmbxUtilities::ShowQueryDialogL
 // Show query dialog
 // ---------------------------------------------------------------------------
@@ -143,113 +263,19 @@
         {
         VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: \
                             User::Leave( KErrNotSupported )" );
-        User::Leave( KErrNotSupported );
+        User::Leave( KErrArgument );
         }
     VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: in\
     aNumber = %S", &aNumber );
     // to show dialog via qt part
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryDialogL to show qt" );
-    iUiHandler->ShowVmbxQueryDialog( aType, aNumber, aResult );
+    iUiHandler->ShowVmbxQueryDialogL( aType, aNumber, aResult );
     VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: out\
     aNumber = %S", &aNumber );
     VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryDialogL: aResult=%I <=",
      aResult );
     }
 
-// ---------------------------------------------------------------------------
-// VmbxUtilities::ShowInvalidWarningDialogL
-//
-// ---------------------------------------------------------------------------
-//
-void CVmbxUiUtilities::ShowInvalidWarningDialogL()
-    {
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInvalidWarningDialogL =>" );
-    iUiHandler->ShowInformationdNoteL( EInvalidNumber );
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInvalidWarningDialogL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// VmbxUtilities::ShowInformationdNote
-//
-// ---------------------------------------------------------------------------
-//
-void CVmbxUiUtilities::ShowInformationdNoteL(const TVmbxNoteType aType )
-    {
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInformationdNoteL =>" );
-    iUiHandler->ShowInformationdNoteL( aType );
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowInformationdNoteL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// VmbxUtilities::ShowDefineSelectionDialog
-// Show define number in selection list
-// ---------------------------------------------------------------------------
-//
-void CVmbxUiUtilities::ShowDefineSelectionDialog( TVmbxType& aType,
-                                                         TInt& aResult )
-    {
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL =>" );
-    iUiHandler->ShowDefineSelectionDialog( aType, aResult );
-    VMBLOGSTRING3( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL: \
-                     aType=%I, aResult=%I <=", aType, aResult );
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowDefineSelectionDialogL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// VmbxUtilities::ShowCallSelectionDialogL
-// Show call number in selection list
-// ---------------------------------------------------------------------------
-//
-void CVmbxUiUtilities::ShowCallSelectionDialogL(
-                    const RPointerArray<CVoiceMailboxEntry>& aArray,
-                    TVoiceMailboxParams& aParams,
-                    TInt& aResult )
-    {
-    VMBLOGSTRING("VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL  =>");
-    if ( aArray.Count() < 1 )
-        {
-        User::Leave(KErrArgument);
-        }
-    iUiHandler->ShowCallSelectionDialogL( aArray, aParams, aResult );
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowCallSelectionDialogL <=" );
-    }
-
-// ---------------------------------------------------------------------------
-// VmbxUtilities::DismissDialogL
-// Tries to close all open dialogs
-// ---------------------------------------------------------------------------
-//
-void CVmbxUiUtilities::DismissDialogL()
-    {
-    VMBLOGSTRING( 
-    "VMBX: CVmbxUiUtilities::DismissDialogL EMPTY IMPLEMENTATION!=>" );
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::DismissDialogL <=" );
-    }
-    
-// Commented out because branding is not supported yet.
-// ---------------------------------------------------------------------------
-// CVmbxUiUtilities::GetVmbxImageL
-//
-// ---------------------------------------------------------------------------
-/*
-CGulIcon* CVmbxUiUtilities::GetVmbxImageL(
-                        const TVoiceMailboxParams& aParams )
-    {
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::GetVmbxImageL" );
-*/
-
-// --------------------------------------------------------------------------
-// CVmbxUiUtilities::ShowNotAllowedEditingDialog
-// --------------------------------------------------------------------------
-//
-void CVmbxUiUtilities::ShowNotAllowedEditingDialogL()
-    {
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowNotAllowedEditingDialogL =>" );
-    // Information user can't edit.
-    iUiHandler->ShowInformationdNoteL( ENotAllowUserEditing );
-    VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowNotAllowedEditingDialogL <=" );
-    }
-
 // -----------------------------------------------------------------------------
 // CVmbxUiUtilities::FetchNumberFromPhonebook2L
 // Create and show Phonebook's Single Fetch Dialog
--- a/vmbx/vmbxengine/src/vmbxutilities.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxutilities.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -18,7 +18,7 @@
 
 // INCLUDE FILES
 #include <featmgr.h>
-#include <MSSSettingsObserver.h> // ALS changes
+#include <msssettingsobserver.h> // ALS changes
 
 #include "vmbxlogger.h"
 #include "vmbxcenrephandler.h"
--- a/vmbx/vmbxengine/src/voicemailboximpl.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/src/voicemailboximpl.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -544,7 +544,7 @@
         if ( VmbxUtilities::VideoSupported() )
             {
             // query to be defined type
-            iUiUtilities->ShowDefineSelectionDialog( aParams.iType, result );
+            iUiUtilities->ShowDefineSelectionDialogL( aParams.iType, result );
             // if result is KErrNone(but result should be also KErrNotFound ),
             // it means user have seclected the defined type;
             // else user cancel to select the type, so should return result value
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/inc/ut_pbkstore.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/inc/ut_pbkstore.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #ifndef UT_PBKSTORE_H
 #define UT_PBKSTORE_H
 
@@ -34,9 +18,9 @@
     void testIsWritable();
     void testPhoneBookType();
     // Can not handle AO in Current UT desing
-    //void testWrite(); 
+    void testWrite(); 
     void testPhonebookStore();
-    //void testGetL();
+    void testGetL();
     
 private:
     void createPbk();
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/inc/ut_simhandler.h	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/inc/ut_simhandler.h	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #ifndef UT_SIMHANDLER_H
 #define UT_SIMHANDLER_H
 
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/cenrep_mock.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/cenrep_mock.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <QtTest/QtTest>
 #include <centralrepository.h>
 #include "voicemailboxdomaincrkeys.h"
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/etel_mock.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/etel_mock.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,22 +1,7 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <etelmm.h>
 #include <etel.h>
 #include <e32std.h>
+#include <rsssettings.h>
 #include <QtTest/QtTest>
 
 RPhone::RPhone()
@@ -163,9 +148,13 @@
 
 void RMobilePhoneBookStore::Read(
     TRequestStatus& aReqStatus, TInt /*aIndex*/, 
-    TInt /*aNumSlots*/, TDes8& /*aPBData*/) const
+    TInt /*aNumSlots*/, TDes8& aPBData) const
 { 
     TRequestStatus* tmp = &aReqStatus;
+// data ?
+    TBuf<5> pbdata(_L("data5"));
+    aPBData.Copy(pbdata);
+    
     User::RequestComplete(tmp, KErrNone);
 }
 
@@ -194,3 +183,11 @@
 // refers to ut_ussd
 }
 
+TInt RSSSettings::Get( 
+    TSSSettingsSetting /*aSetting*/,
+    TInt& aValue )
+{
+	aValue = ESSSettingsAlsPrimary;
+	return KErrNone;
+}
+
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/main.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/main.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <e32base.h>
 #include <QObject>
 #include <QtTest/QtTest>
@@ -24,21 +8,22 @@
 int main(int argc, char *argv[])
 {
     qDebug("main() IN");
-    CTrapCleanup* cleanup = CTrapCleanup::New();
-    QApplication app(argc, argv);
+//    CTrapCleanup* cleanup = CTrapCleanup::New();
+    QCoreApplication app(argc, argv);
     
     qDebug("testing start...");
     
     // API tester
-    Ut_VmbxEngine tc1;
+    int result = -1;
     char *pass[3];  
     pass[0] = argv[0];
     pass[1] = "-o"; 
+    
+    Ut_VmbxEngine tc1;
     pass[2] = "c:\\logs\\vmbx\\ut_vmbxengine.txt";
-    int result = -1;
     result = QTest::qExec(&tc1, 3, pass);
     qDebug("ut_vmbxengine result=%d", result);
-    
+
     Ut_PbkStore tc2;
     pass[2] = "c:\\logs\\vmbx\\ut_pbkstore.txt";
     result = QTest::qExec(&tc2, 3, pass);
@@ -53,8 +38,8 @@
     
     qDebug("testing end...");
     qDebug("main() OUT");
-    delete cleanup;
-    cleanup = NULL;
+//    delete cleanup;
+//    cleanup = NULL;
     return result;
 }
 
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/mpbutil_mock.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/mpbutil_mock.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,24 +1,9 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
-
 #include <mpbutil.h>
 #include <e32base.h>
 #include <e32des8.h>
 
+TInt time = 0;
+
 CPhoneBookBuffer::CPhoneBookBuffer():iMonitor(NULL,0,0)
 {
 }
@@ -51,8 +36,45 @@
 
 void CPhoneBookBuffer::StartRead(){}
 
-TInt CPhoneBookBuffer::GetTagAndType(TUint8 &/*aTagValue*/, TPhBkTagType &/*aDataType*/)
-{ return 0; }
+TInt CPhoneBookBuffer::GetTagAndType(TUint8 &aTagValue, TPhBkTagType &aDataType)
+{ 
+	switch(aDataType)
+		{
+		case CPhoneBookBuffer::EPhBkTypeNoData:
+			{
+			if(time == 0)
+				{
+				aTagValue = RMobilePhoneBookStore::ETagPBNewEntry;
+				time ++;
+				}
+			else if (time == 1)
+				{
+				aTagValue = RMobilePhoneBookStore::ETagPBNumber;
+				time ++;
+				}
+			else if (time == 2)
+				{
+				aTagValue = RMobilePhoneBookStore::ETagPBText;
+				time ++;
+				}
+			else if (time == 3)
+				{
+				aTagValue = RMobilePhoneBookStore::ETagPBTonNpi;
+				time ++;
+				}
+			else
+				{
+				time = 0;
+				return KErrNotFound;
+				}
+			break;
+			}
+		default:
+			aTagValue = 0;
+		}
+	
+	return KErrNone; 
+}
 
 TInt CPhoneBookBuffer::GetValue(TUint8 &/*aInteger*/)
 { return 0; }
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/qtuihandler_mock.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/qtuihandler_mock.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <QtTest/QtTest>
 #include "vmbxqtuihandler.h"
 
@@ -56,4 +40,20 @@
     qDebug("mock showCallSelectionDialogL");  
 }
 
+void VmbxQtUiHandler::updatePrimaryAction(const QString &/*aInput*/)
+{
+	qDebug("mock updatePrimaryAction");  
+}
+
+bool VmbxQtUiHandler::isQtEnvSupported()
+{
+	qDebug("mock isQtEnvSupported");
+	return true;
+}
+
+void  VmbxQtUiHandler::init()
+{
+	qDebug("mock init");
+}
+
 //End of file
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/ut_pbkstore.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/ut_pbkstore.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <QtTest/QtTest>
 #include <cvoicemailboxentry.h>
 #include "vmbxpbkstore.h"
@@ -48,7 +32,7 @@
     deletePbk(); 
 }
 
-/*
+
 void Ut_PbkStore::testWrite()
 {
     createPbk();
@@ -65,14 +49,14 @@
     entry = NULL;
     deletePbk(); 
 }
-*/
+
 void Ut_PbkStore::testPhonebookStore()
 {
     createPbk();
     mPbk->PhonebookStore();
     deletePbk(); 
 }
-/*
+
 void Ut_PbkStore::testGetL()
 {
     createPbk();
@@ -87,7 +71,7 @@
     entry = NULL;
     deletePbk(); 
 }
-*/
+
 void Ut_PbkStore::createPbk()
 {
     if (!mPbk){
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/ut_simhandler.cpp	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/ut_simhandler.cpp	Thu Jun 24 13:58:21 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
 #include <QtTest/QtTest>
 #include <cvoicemailboxentry.h>
 #include "vmbxsimhandler.h"
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/ut_vmbxengine.cpp	Tue May 18 13:35:23 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
-* Copyright (c) 2009 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 Ut_vmbxEngine class
-*
-*/
-
-#include <QtGui>
-
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-#include <cvoicemailbox.h>
-#include <cvoicemailboxentry.h>
-#include <voicemailboxdefs.h>
-#include <mvoicemailboxobserver.h>
-#include "../../../inc/vmbxqtuihandler.h"
-#include "../../../inc/vmbxuihandler.h"
-
-#include "ut_vmbxengine.h"
-
-// -----------------------------------------------------------------------------
-// Constants for verifying test case results
-// -----------------------------------------------------------------------------
-//
-
-
- // -----------------------------------------------------------------------------
-// Ut_vmbxEngine::Ut_vmbxEngine
-// Default constructor, remember to null new members here.
-// -----------------------------------------------------------------------------
-//
-Ut_vmbxEngine::Ut_vmbxEngine()
-{
-    qDebug("Ut_vmbxEngine::Ut_vmbxEngine >");
-    qDebug("Ut_vmbxEngine::Ut_vmbxEngine <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::~Ut_vmbxEngine
-// -----------------------------------------------------------------------------    
-Ut_vmbxEngine::~Ut_vmbxEngine()
-{
-    qDebug("Ut_vmbxEngine::~Ut_vmbxEngine >");
-    qDebug("Ut_vmbxEngine::~Ut_vmbxEngine <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::initTestCase
-// QTestLib initialization method, called before the last testfunction .
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::initTestCase()
-{
-    qDebug("Ut_vmbxEngine::initTestCase >");
-    mQtUiHandler = new VmbxQtUiHandler();
-    QVERIFY(mQtUiHandler);
-    qDebug("Ut_vmbxEngine::initTestCase <");
-}
-
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::cleanupTestCase
-// QTestLib cleanup method, called after the last testfunction .
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::cleanupTestCase()
-{
-    qDebug("Ut_vmbxEngine::cleanupTestCase >");
-    delete mQtUiHandler;
-    mQtUiHandler = 0;
-    qDebug("Ut_vmbxEngine::cleanupTestCase <");
-}
-
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testCreateVmbxMailbox
-// CreateVmbxMailbox test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testCreateVmbxMailbox()
-{
-    qDebug("Ut_vmbxEngine::testCreateVmbxMailbox >");
-    TRAPD(err,mVmbxEngine = CVoiceMailbox::NewL());
-    QVERIFY2(KErrNone == err, "CVoiceMailbox::NewL failed");
-    qDebug("Ut_vmbxEngine::testCreateVmbxMailbox <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testCreateWindow
-// testCreateWindow test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testCreateWindow()
-{
-    qDebug("Ut_vmbxEngine::testCreateWindow >");
-    mWindow = new HbMainWindow();
-    QVERIFY(mWindow);
-    mWindow->show();
-    qDebug("Ut_vmbxEngine::testCreateWindow Windowshow");
-	qDebug("Ut_vmbxEngine::testCreateWindow <");
-}
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testshowVmbxQueryDialog
-// Define selection dialog test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testshowVmbxQueryDialog()
-{
-    qDebug("Ut_vmbxEngine::testshowVmbxQueryDialog >");
-    QVERIFY(mQtUiHandler);
-    TVmbxType vmbxtype(EVmbxVoice);
-    TVmbxQueryMode queryMode(EVmbxDefineMode);
-    QString number(tr(""));
-    int result(0);
-    mQtUiHandler->showVmbxQueryDialog(
-            EVmbxVoice, EVmbxDefineMode, number, result);
-    if ( KErrCancel == result ) {
-        QCOMPARE(number, tr(""));
-    }
-    number = tr("123456");
-    mQtUiHandler->showVmbxQueryDialog(
-            EVmbxVoice, EVmbxChangeMode, number, result);
-
-    if ( KErrCancel == result ) {
-        QCOMPARE(number, tr(""));
-    }
-    qDebug("Ut_vmbxEngine::testshowVmbxQueryDialog <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testshowDefineSelectionDialog
-// Define selection dialog test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testshowDefineSelectionDialog()
-{
-    qDebug("Ut_vmbxEngine::testshowDefineSelectionDialog >");
-    QVERIFY(mQtUiHandler);
-    TVmbxType vmbxtype;
-    int result;
-    mQtUiHandler->showDefineSelectionDialog(vmbxtype, result);
-    if (KErrCancel == result &&  EVmbxNone != vmbxtype) {
-        QFAIL("Ut_vmbxEngine::testshowDefineSelectionDialog:Cancel");
-    } else if ( KErrNone == result &&  EVmbxNone == vmbxtype ){
-        QFAIL("Ut_vmbxEngine::testshowDefineSelectionDialog:vmbxtype wrong");
-    }
-    qDebug("Ut_vmbxEngine::testshowDefineSelectionDialog:vmbxtype%d",
-        vmbxtype);
-    qDebug("Ut_vmbxEngine::testshowDefineSelectionDialog:result%d",
-        result);
-    qDebug("Ut_vmbxEngine::testshowDefineSelectionDialog <");
-}
-
-
-void Ut_vmbxEngine::testshowSaveEmptyNote_data()
-{
-    qDebug("Ut_vmbxEngine::testshowSaveEmptyNote_data >");
-    QTest::addColumn<QString>("vmbx");
-    QTest::newRow("CS voice") << "CsVoice";
-    QTest::newRow("CS video") << "CsVideo";
-    qDebug("Ut_vmbxEngine::testshowSaveEmptyNote_data <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testshowSaveEmptyNote
-// CreateVmbxMailbox test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testshowSaveEmptyNote()
-{
-    qDebug("Ut_vmbxEngine::testshowSaveEmptyNote >");
-    TRAPD(err,mUiHandler = CVmbxUiHandler::NewL());
-    QVERIFY2(KErrNone == err, "create CVmbxUiHandler failed");
-    TVmbxType vmbxtype(EVmbxVoice);
-    QFETCH(QString, vmbx);
-    if ("CsVoice" == vmbx) {
-        vmbxtype = EVmbxVoice;
-        qDebug("Ut_vmbxEngine::testshowSaveEmptyNote Voice");
-    } else if ("CsVideo" == vmbx) { 
-        vmbxtype = EVmbxVideo;
-        qDebug("Ut_vmbxEngine::testshowSaveEmptyNote Video");
-    }
-    mUiHandler->ShowSaveEmptyNote(vmbxtype);
-
-    delete mUiHandler;
-    mUiHandler = 0;
-    qDebug("Ut_vmbxEngine::testshowSaveEmptyNote <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testDeleteWindow
-// testDeleteWindow test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testDeleteWindow()
-{
-    qDebug("Ut_vmbxEngine::testDeleteWindow >");
-    delete mWindow;
-    mWindow = 0;
-    qDebug("Ut_vmbxEngine::testDeleteWindow <");
-}
-
-// -----------------------------------------------------------------------------
-// Ut_vmbxEngine::testCreateVmbxMailbox
-// CreateVmbxMailbox test case
-// Connects to test object signal and verifies received data.
-// -----------------------------------------------------------------------------
-void Ut_vmbxEngine::testDeleteVmbxMailbox()
-{
-    qDebug("Ut_vmbxEngine::testDeleteVmbxMailbox >");
-    delete mVmbxEngine;
-    mVmbxEngine = 0;
-    qDebug("Ut_vmbxEngine::testDeleteVmbxMailbox <");
-}
-
-// TODO: move main method to a separate file
-        
-// -----------------------------------------------------------------------------
-// main()
-// Main method implemented for directing test output to a file.
-// -----------------------------------------------------------------------------
-int main(int argc, char *argv[])
-    {
-    qDebug("ut_vmbxengine.cpp: main() >");
-    QApplication app(argc, argv);
-
-    qDebug("ut_vmbxengine.cpp: Ut_vmbxEngine");
-    Ut_vmbxEngine tc;
-    char *pass[3];  
-    pass[0] = argv[0];
-    pass[1] = "-o"; 
-    pass[2] = "c:\\logs\\vmbx\\ut_vmbxengine.txt";
-    const int result = QTest::qExec(&tc, 3, pass);
-
-    qDebug("ut_vmbxengine.cpp: main() <, result=%d", result);
-    return result;
-    }
-
-// .moc file was not created during build for some reason, but looks like 
-// we don't need it since this works.
-//#include "ut_vmbxengine.moc"
-//#include "moc_ut_vmbxengine.cpp"
--- a/vmbx/vmbxengine/tsrc/ut_vmbxengine/ut_vmbxengine.h	Tue May 18 13:35:23 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
-* Copyright (c) 2009 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 Ut_vmbxEngine class
-*
-*/
-
-#ifndef _UT_VMBXENGINE_H
-#define _UT_VMBXENGINE_H
-
-#include <QtTest/QtTest>
-#include <QString>
-#include <QStringList>
-#include <QSignalSpy>
-#include <QMetaType>
-#include <QObject>
-
-
-// Class forwards
-class CVoiceMailbox;
-class CVmbxUiHandler;
-class VmbxQtUiHandler;
-class HbMainWindow;
-
-
-/**
- *  Ut_vmbxEngine unit test class.
- * 
- *  Tests vmbxEngine cpp files public APIS.
- *  See cpp file for more information. 
- *
- *  @lib ut_vmbxengine.lib
- *  @since S60 <TB10.1>
- */
-class Ut_vmbxEngine : public QObject
-{
-    Q_OBJECT
-
-public:
-    Ut_vmbxEngine();
-    virtual ~Ut_vmbxEngine();
-
-    //void testResult(const bool aResult);
-
-private slots: 
-
-     /**
-     * Called before the first testfunction is executed.
-     * Handles the SetUpMenu command.
-     */
-    void initTestCase();
-
-     /**
-     * Called after the last testfunction has been executed.
-     * 
-     */
-    void cleanupTestCase();
-    
-    /**
-    * Test middle case,CreateWindow
-    * 
-    * provide window for UI
-    */
-    void testCreateWindow();
-
-    /**
-    * Test middle case,showVmbxQueryDialog
-    * 
-    */   
-    void testshowVmbxQueryDialog();
-
-     /**
-     * Test middle case,showDefineSelectionDialog
-     * 
-     */
-    void testshowDefineSelectionDialog();
-
-     /**
-     * Test first case,Create CVoiceMailbox
-     * 
-     */
-    void testCreateVmbxMailbox();
-
-    void testshowSaveEmptyNote_data();
-
-     /**
-     * Test middle case,showSaveEmptyNote
-     * 
-     */
-    void testshowSaveEmptyNote();
-
-    /**
-    * Test middle case,delete HbMainWindow
-    * 
-    */  
-    void testDeleteWindow();
-      /**
-     * Test last case,delete CVoiceMailbox
-     * 
-     */
-    void testDeleteVmbxMailbox();
-
-private:  //data
-
-    /**
-     * Own.
-     */
-    CVoiceMailbox* mVmbxEngine;
-
-    /**
-     * Own.
-     */
-    CVmbxUiHandler *mUiHandler;
-  
-    /**
-     * Own.
-     */
-    VmbxQtUiHandler *mQtUiHandler;
-    
-    /**
-     * Own.
-     */
-    HbMainWindow* mWindow;
-};
-
-#endif // _UT_VMBXENGINE_H
--- a/vmbx/vmbxengine/vmbxengine.pro	Tue May 18 13:35:23 2010 +0100
+++ b/vmbx/vmbxengine/vmbxengine.pro	Thu Jun 24 13:58:21 2010 +0100
@@ -76,7 +76,6 @@
                inc/vmsettingsuiiconfileprovider.h \
                inc/vmspshandler.h \
                inc/voicemailboxdefsinternal.h \
-               inc/voicemailboxdomaincrkeys.h \
                inc/voicemailboximpl.h \
                inc/voicemailboxprivatecrkeys.h \
                inc/dialogwaiter.h
@@ -115,10 +114,10 @@
         "$${LITERAL_HASH}endif"
     
     MMP_RULES += defFiles
-                          
-    BLD_INF_RULES.prj_exports += "conf/voicemailbox.confml         MW_LAYER_CONFML(voicemailbox.confml)" \
+
+    BLD_INF_RULES.prj_exports += "rom/backup_registration.xml /epoc32/data/z/private/100058F5/backup_registration.xml" \
+                                 "conf/CI_voicemailbox.confml         MW_LAYER_CONFML(CI_voicemailbox.confml)" \
                                  "conf/voicemailbox_101F874F.crml  MW_LAYER_CRML(voicemailbox_101F874F.crml)" \
-                                 "rom/backup_registration.xml /epoc32/data/z/private/100058F5/backup_registration.xml" \
                                  "rom/backup_registration.xml   /epoc32/release/winscw/udeb/z/private/100058F5/backup_registration.xml" \
                                  "rom/backup_registration.xml   /epoc32/release/winscw/urel/z/private/100058F5/backup_registration.xml" \
                                  "rom/vmbxengine_stub.sis /epoc32/data/z/system/install/vmbxengine_stub.sis" \
@@ -127,4 +126,3 @@
 TRANSLATIONS = vmbx.ts
 
 }
-