Catchup to latest Symbian^4 GCC_SURGE
authorWilliam Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:38:43 +0100
branchGCC_SURGE
changeset 34 8ed2e80af9dd
parent 26 c9c7ab911778 (current diff)
parent 32 1f002146abb4 (diff)
Catchup to latest Symbian^4
cellular/SSSettings/xqbindings/bwins/sssettingswrapperu.def
cellular/SSSettings/xqbindings/eabi/sssettingswrapperu.def
cellular/telephonysettings/xqbindings/bwins/psetwrapperu.def
cellular/telephonysettings/xqbindings/eabi/psetwrapperu.def
satui/satapp/inc/satappgetinkeynote.h
satui/satapp/src/satappgetinkeynote.cpp
telutils/dialpad/resources/dialpad.dialpadbutton.widgetml
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_b.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_bl.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_br.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_c.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_l.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_r.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_t.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_tl.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_tr.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_b.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_bl.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_br.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_c.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_l.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_r.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_t.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_tl.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_tr.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_bg_b.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_bg_c.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_bg_t.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_c.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_l.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_r.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_graf_input_h_swipe.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_graf_input_swipe.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_mono_answer_call.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_mono_backspace2.svg
telutils/dialpad/themes/icons/hbdefault/scalable/qtg_mono_voice_mailbox.svg
telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.cpp
telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.pro
telutils/phoneparser/inc/CPhoneGsmImeiParser.h
telutils/phoneparser/src/CPhoneGsmImeiParser.cpp
vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp
vmbx/vmbxengine/conf/voicemailbox.confml
vmbx/vmbxengine/tsrc/ut_vmbxengine/ut_vmbxengine.cpp
vmbx/vmbxengine/tsrc/ut_vmbxengine/ut_vmbxengine.h
--- a/cbs/CbsServer/ClientInc/CbsCommon.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/ClientInc/CbsCommon.h	Thu Jul 22 16:38:43 2010 +0100
@@ -24,7 +24,7 @@
 //  INCLUDES
 #include <e32base.h>
 #include <s32std.h>
-#include <CbsCommonTypes.h>
+#include <cbscommontypes.h>
 
 // CONSTANTS
 
--- a/cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h	Thu Jul 22 16:38:43 2010 +0100
@@ -23,7 +23,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include "CCbsMessageClient.h"
+#include <ccbsmessageclient.h>
 #include "RCbs.h"
 
 //  CLASS DECLARATION 
--- a/cbs/CbsServer/ClientSrc/ccbsmessageclient.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/ClientSrc/ccbsmessageclient.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -17,7 +17,7 @@
 
 
 // INCLUDE FILES
-#include "CCbsMessageClient.h"
+#include <ccbsmessageclient.h>
 #include "ccbsmessageclientimpl.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
--- a/cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,9 +19,9 @@
 
 // INCLUDE FILES
 
-#include "CCbsMcnListener.h"
-#include "RCbsMcnSession.h"
-#include "CMcn.h"
+#include <ccbsmcnlistener.h>
+#include <rcbsmcnsession.h>
+#include <cmcn.h>
 #include "CbsLogger.h"
 
 // CONSTANTS
--- a/cbs/CbsServer/McnClientSrc/CMcn.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/McnClientSrc/CMcn.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -17,12 +17,12 @@
 
 
 // INCLUDE FILES
-#include "CMcn.h"
-#include "CCbsMcnListener.h"
-#include "MCbsMcnObserver.h"
-#include "CbsMcnPanic.h"
+#include <cmcn.h>
+#include <ccbsmcnlistener.h>
+#include <mcbsmcnobserver.h>
+#include <cbsmcnpanic.h>
 #include "CbsLogger.h"
-#include <CMcnTopicArray.h>
+#include <cmcntopicarray.h>
 
 // CONSTANTS
 const TInt KReservedSpaceForMcnObservers = 3;
--- a/cbs/CbsServer/McnClientSrc/CMcnTopicArray.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/McnClientSrc/CMcnTopicArray.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 
-#include "CMcnTopicArray.h"
+#include <cmcntopicarray.h>
 
 // CONSTANTS
 
--- a/cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,7 +19,7 @@
 // INCLUDE FILES
 
 #include <e32svr.h>
-#include "CbsMcnPanic.h"        // common header
+#include <cbsmcnpanic.h>        // common header
 
 // CONSTANTS
 
--- a/cbs/CbsServer/McnClientSrc/Rcbsmcnsession.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/McnClientSrc/Rcbsmcnsession.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,11 +19,11 @@
 // INCLUDE FILES
 
 #include "CbsServerConstants.h"
-#include "CbsMcnPanic.h"
-#include "CMcn.h"
-#include "RCbsMcnSession.h"
-#include "CCbsMcnListener.h"
-#include "CMcnTopicArray.h"
+#include <cbsmcnpanic.h>
+#include <cmcn.h>
+#include <rcbsmcnsession.h>
+#include <ccbsmcnlistener.h>
+#include <cmcntopicarray.h>
 #include "CbsLogger.h"
 
 // ================= MEMBER FUNCTIONS =======================
--- a/cbs/CbsServer/McnClientSrc/Rmcnsubsession.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/McnClientSrc/Rmcnsubsession.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -18,11 +18,11 @@
 
 // INCLUDE FILES
 #include "CbsServerConstants.h"
-#include "CbsMcnPanic.h"
-#include "RCbsMcnSession.h"
-#include "RMcnSubSession.h"
-#include "CCbsMcnListener.h"
-#include "CMcnTopicArray.h"
+#include <cbsmcnpanic.h>
+#include <rcbsmcnsession.h>
+#include <rmcnsubsession.h>
+#include <ccbsmcnlistener.h>
+#include <cmcntopicarray.h>
 #include "CbsLogger.h"
 
 // ================= MEMBER FUNCTIONS =======================
--- a/cbs/CbsServer/ServerInc/CCbsMcnSession.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/ServerInc/CCbsMcnSession.h	Thu Jul 22 16:38:43 2010 +0100
@@ -27,7 +27,7 @@
 #include <e32base.h>
 #include "CCbsObject.h"
 #include "MCbsMcnSubscriptionsProvider.h"
-#include "CbsMcnCommon.h"
+#include <cbsmcncommon.h>
 
 //  FORWARD DECLARATIONS
 
--- a/cbs/CbsServer/ServerInc/CCbsMessage.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/ServerInc/CCbsMessage.h	Thu Jul 22 16:38:43 2010 +0100
@@ -24,7 +24,7 @@
 #include <etelmm.h>
 #include "CbsReceiverTypes.h"
 #include "CbsCommon.h"
-#include "CbsMcnCommon.h"
+#include <cbsmcncommon.h>
 
 //  CONSTANTS  
 // If this constant is set to iPLMN.iMCC, iPLMN does not contain network info
--- a/cbs/CbsServer/ServerInc/CCbsRecEtel.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/CbsServer/ServerInc/CCbsRecEtel.h	Thu Jul 22 16:38:43 2010 +0100
@@ -21,7 +21,7 @@
 
 
 //  INCLUDES
-#include "CMcn.h"
+#include <cmcn.h>
 #include "MCbsEtelMessaging.h"
 
 		/*****************************************************
Binary file cbs/CbsServer/conf/cbsserver.confml has changed
--- a/cbs/group/bld.inf	Tue Jun 15 11:45:07 2010 +0100
+++ b/cbs/group/bld.inf	Thu Jul 22 16:38:43 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/cellular/SSSettings/inc/CSSSettingsRefreshHandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/SSSettings/inc/CSSSettingsRefreshHandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -27,8 +27,8 @@
 #include <msssettingsrefreshobserver.h> 
 #include <rsssettings.h> 
 #include <rcustomerserviceprofilecache.h> 
-#include <RSatRefresh.h> 
-#include <RSatSession.h> 
+#include <rsatrefresh.h>
+#include <rsatsession.h> 
 #include <cenrepnotifyhandler.h>
 #include "csssettingsactiveobject.h" 
 
--- a/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include    <centralrepository.h>
-#include    <RSatRefresh.h> 
+#include    <rsatrefresh.h> 
 #include    <BTSapDomainPSKeys.h> // bt sap central repository key. 
 #include    <featmgr.h>
 
--- a/cellular/SSSettings/xqbindings/bwins/sssettingswrapperu.def	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-EXPORTS
-	?qt_metacast@SsSettingsWrapper@@UAEPAXPBD@Z @ 1 NONAME ; void * SsSettingsWrapper::qt_metacast(char const *)
-	?metaObject@SsSettingsWrapper@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * SsSettingsWrapper::metaObject(void) const
-	??_ESsSettingsWrapper@@UAE@I@Z @ 3 NONAME ; SsSettingsWrapper::~SsSettingsWrapper(unsigned int)
-	??1SsSettingsWrapper@@UAE@XZ @ 4 NONAME ; SsSettingsWrapper::~SsSettingsWrapper(void)
-	?get@SsSettingsWrapper@@QAEHW4SsSettingsWrapperSettings@@AAH@Z @ 5 NONAME ; int SsSettingsWrapper::get(enum SsSettingsWrapperSettings, int &)
-	?staticMetaObject@SsSettingsWrapper@@2UQMetaObject@@B @ 6 NONAME ; struct QMetaObject const SsSettingsWrapper::staticMetaObject
-	?set@SsSettingsWrapper@@QAEHW4SsSettingsWrapperSettings@@H@Z @ 7 NONAME ; int SsSettingsWrapper::set(enum SsSettingsWrapperSettings, int)
-	?trUtf8@SsSettingsWrapper@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString SsSettingsWrapper::trUtf8(char const *, char const *)
-	?qt_metacall@SsSettingsWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int SsSettingsWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?phoneSettingChanged@SsSettingsWrapper@@IAEXW4SsSettingsWrapperSettings@@H@Z @ 10 NONAME ; void SsSettingsWrapper::phoneSettingChanged(enum SsSettingsWrapperSettings, int)
-	?tr@SsSettingsWrapper@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString SsSettingsWrapper::tr(char const *, char const *, int)
-	?tr@SsSettingsWrapper@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString SsSettingsWrapper::tr(char const *, char const *)
-	?trUtf8@SsSettingsWrapper@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString SsSettingsWrapper::trUtf8(char const *, char const *, int)
-	??0SsSettingsWrapper@@QAE@PAVQObject@@@Z @ 14 NONAME ; SsSettingsWrapper::SsSettingsWrapper(class QObject *)
-	?getStaticMetaObject@SsSettingsWrapper@@SAABUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const & SsSettingsWrapper::getStaticMetaObject(void)
-
--- a/cellular/SSSettings/xqbindings/eabi/sssettingswrapperu.def	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-EXPORTS
-	_ZN17SsSettingsWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN17SsSettingsWrapper11qt_metacastEPKc @ 2 NONAME
-	_ZN17SsSettingsWrapper16staticMetaObjectE @ 3 NONAME DATA 16
-	_ZN17SsSettingsWrapper19getStaticMetaObjectEv @ 4 NONAME
-	_ZN17SsSettingsWrapper19phoneSettingChangedE25SsSettingsWrapperSettingsi @ 5 NONAME
-	_ZN17SsSettingsWrapper3getE25SsSettingsWrapperSettingsRi @ 6 NONAME
-	_ZN17SsSettingsWrapper3setE25SsSettingsWrapperSettingsi @ 7 NONAME
-	_ZN17SsSettingsWrapperC1EP7QObject @ 8 NONAME
-	_ZN17SsSettingsWrapperC2EP7QObject @ 9 NONAME
-	_ZN17SsSettingsWrapperD0Ev @ 10 NONAME
-	_ZN17SsSettingsWrapperD1Ev @ 11 NONAME
-	_ZN17SsSettingsWrapperD2Ev @ 12 NONAME
-	_ZNK17SsSettingsWrapper10metaObjectEv @ 13 NONAME
-	_ZTI17SsSettingsWrapper @ 14 NONAME
-	_ZTV17SsSettingsWrapper @ 15 NONAME
-
--- a/cellular/SSSettings/xqbindings/sssettingswrapper/sssettingswrapper.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/SSSettings/xqbindings/sssettingswrapper/sssettingswrapper.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -35,6 +35,14 @@
     TARGET.CAPABILITY = CAP_GENERAL_DLL
     TARGET.UID3 = 0X20029F22
 
+    defFiles = \
+    "$${LITERAL_HASH}ifdef WINS" \
+        "DEFFILE bwins/sssettingswrapper.def" \
+    "$${LITERAL_HASH}else" \
+        "DEFFILE eabi/sssettingswrapper.def" \
+    "$${LITERAL_HASH}endif"
+    MMP_RULES += defFiles
+    
     # For sis file
     dllfile.sources = $${TARGET}.dll
     dllfile.path = $$SHARED_LIB_DIR
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/bwins/psuinotesu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,105 @@
+EXPORTS
+	?qt_metacall@PsUiUtils@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1 NONAME ; int PsUiUtils::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?getStaticMetaObject@PsUiNotes@@SAABUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const & PsUiNotes::getStaticMetaObject(void)
+	?tr@PsUiWaitingNoteHandler@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString PsUiWaitingNoteHandler::tr(char const *, char const *, int)
+	?tr@PsUiSettingsWrapper@@SA?AVQString@@PBD0@Z @ 4 NONAME ; class QString PsUiSettingsWrapper::tr(char const *, char const *)
+	?qt_metacast@PsUiNotes@@UAEPAXPBD@Z @ 5 NONAME ; void * PsUiNotes::qt_metacast(char const *)
+	?qt_metacall@PsUiSettingsWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6 NONAME ; int PsUiSettingsWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?metaObject@PsUiUtils@@UBEPBUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const * PsUiUtils::metaObject(void) const
+	?passwordQueryCompleted@PsUiNotes@@IAEXVQString@@_N@Z @ 8 NONAME ; void PsUiNotes::passwordQueryCompleted(class QString, bool)
+	?handleProgressNoteCanceled@PsUiNotes@@AAEXXZ @ 9 NONAME ; void PsUiNotes::handleProgressNoteCanceled(void)
+	?errorCodeTextMapping@PsUiUtils@@SA_NHAAVQString@@@Z @ 10 NONAME ; bool PsUiUtils::errorCodeTextMapping(int, class QString &)
+	?showNotificationDialog@PsUiNotes@@QAEXABVQString@@@Z @ 11 NONAME ; void PsUiNotes::showNotificationDialog(class QString const &)
+	??1PsUiDivertNoteHandler@@UAE@XZ @ 12 NONAME ; PsUiDivertNoteHandler::~PsUiDivertNoteHandler(void)
+	?qt_metacall@PsUiNotes@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 13 NONAME ; int PsUiNotes::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?handleDivertingError@PsUiDivertNoteHandler@@QAEXH@Z @ 14 NONAME ; void PsUiDivertNoteHandler::handleDivertingError(int)
+	??0PsUiNotes@@AAE@XZ @ 15 NONAME ; PsUiNotes::PsUiNotes(void)
+	?showPasswordQueryDialog@PsUiNotes@@QAEXABVQString@@ABVQValidator@@H@Z @ 16 NONAME ; void PsUiNotes::showPasswordQueryDialog(class QString const &, class QValidator const &, int)
+	?trUtf8@PsUiNotes@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString PsUiNotes::trUtf8(char const *, char const *)
+	?getStaticMetaObject@PsUiUtils@@SAABUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const & PsUiUtils::getStaticMetaObject(void)
+	?readCenrepValue@PsUiSettingsWrapper@@ABE?AVQVariant@@JK@Z @ 19 NONAME ; class QVariant PsUiSettingsWrapper::readCenrepValue(long, unsigned long) const
+	?getStaticMetaObject@PsUiDivertNoteHandler@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & PsUiDivertNoteHandler::getStaticMetaObject(void)
+	?isFeatureCallWaitingDistiquishNotProvisionedEnabled@PsUiSettingsWrapper@@QAE_NXZ @ 21 NONAME ; bool PsUiSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled(void)
+	??1PsUiWaitingNoteHandler@@UAE@XZ @ 22 NONAME ; PsUiWaitingNoteHandler::~PsUiWaitingNoteHandler(void)
+	?formatPhoneNumber@PsUiNotes@@ABE?AVQString@@V2@@Z @ 23 NONAME ; class QString PsUiNotes::formatPhoneNumber(class QString) const
+	?passwordTextChanged@PsUiNotes@@AAEXXZ @ 24 NONAME ; void PsUiNotes::passwordTextChanged(void)
+	?tr@PsUiNotes@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString PsUiNotes::tr(char const *, char const *)
+	??0PsUiSettingsWrapper@@QAE@PAVQObject@@@Z @ 26 NONAME ; PsUiSettingsWrapper::PsUiSettingsWrapper(class QObject *)
+	?staticMetaObject@PsUiLocalisation@@2UQMetaObject@@B @ 27 NONAME ; struct QMetaObject const PsUiLocalisation::staticMetaObject
+	??1PsUiSettingsWrapper@@UAE@XZ @ 28 NONAME ; PsUiSettingsWrapper::~PsUiSettingsWrapper(void)
+	?getStaticMetaObject@PsUiWaitingNoteHandler@@SAABUQMetaObject@@XZ @ 29 NONAME ; struct QMetaObject const & PsUiWaitingNoteHandler::getStaticMetaObject(void)
+	?getStaticMetaObject@PsUiSettingsWrapper@@SAABUQMetaObject@@XZ @ 30 NONAME ; struct QMetaObject const & PsUiSettingsWrapper::getStaticMetaObject(void)
+	?trUtf8@PsUiUtils@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString PsUiUtils::trUtf8(char const *, char const *)
+	?qt_metacast@PsUiWaitingNoteHandler@@UAEPAXPBD@Z @ 32 NONAME ; void * PsUiWaitingNoteHandler::qt_metacast(char const *)
+	?finishedPasswordQueryDialog@PsUiNotes@@QAEXPAVHbAction@@@Z @ 33 NONAME ; void PsUiNotes::finishedPasswordQueryDialog(class HbAction *)
+	?handleDivertingStatus@PsUiDivertNoteHandler@@QAEXAAV?$QList@PAVPSCallDivertingStatus@@@@_N@Z @ 34 NONAME ; void PsUiDivertNoteHandler::handleDivertingStatus(class QList<class PSCallDivertingStatus *> &, bool)
+	??0PsUiWaitingNoteHandler@@QAE@AAVPSetCallWaitingWrapper@@@Z @ 35 NONAME ; PsUiWaitingNoteHandler::PsUiWaitingNoteHandler(class PSetCallWaitingWrapper &)
+	?trUtf8@PsUiSettingsWrapper@@SA?AVQString@@PBD0H@Z @ 36 NONAME ; class QString PsUiSettingsWrapper::trUtf8(char const *, char const *, int)
+	?tr@PsUiSettingsWrapper@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString PsUiSettingsWrapper::tr(char const *, char const *, int)
+	?cancelNote@PsUiNotes@@QAEXH@Z @ 38 NONAME ; void PsUiNotes::cancelNote(int)
+	?tr@PsUiLocalisation@@SA?AVQString@@PBD0H@Z @ 39 NONAME ; class QString PsUiLocalisation::tr(char const *, char const *, int)
+	?removeTranslators@PsUiLocalisation@@QAEXXZ @ 40 NONAME ; void PsUiLocalisation::removeTranslators(void)
+	?tr@PsUiUtils@@SA?AVQString@@PBD0@Z @ 41 NONAME ; class QString PsUiUtils::tr(char const *, char const *)
+	?qt_metacast@PsUiSettingsWrapper@@UAEPAXPBD@Z @ 42 NONAME ; void * PsUiSettingsWrapper::qt_metacast(char const *)
+	?tr@PsUiDivertNoteHandler@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString PsUiDivertNoteHandler::tr(char const *, char const *)
+	??0PsUiLocalisation@@QAE@PAVQObject@@@Z @ 44 NONAME ; PsUiLocalisation::PsUiLocalisation(class QObject *)
+	??1PsUiLocalisation@@UAE@XZ @ 45 NONAME ; PsUiLocalisation::~PsUiLocalisation(void)
+	?trUtf8@PsUiWaitingNoteHandler@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString PsUiWaitingNoteHandler::trUtf8(char const *, char const *, int)
+	?noteShowing@PsUiNotes@@QAE_NXZ @ 47 NONAME ; bool PsUiNotes::noteShowing(void)
+	??_EPsUiWaitingNoteHandler@@UAE@I@Z @ 48 NONAME ; PsUiWaitingNoteHandler::~PsUiWaitingNoteHandler(unsigned int)
+	?trUtf8@PsUiNotes@@SA?AVQString@@PBD0H@Z @ 49 NONAME ; class QString PsUiNotes::trUtf8(char const *, char const *, int)
+	?trUtf8@PsUiDivertNoteHandler@@SA?AVQString@@PBD0@Z @ 50 NONAME ; class QString PsUiDivertNoteHandler::trUtf8(char const *, char const *)
+	?handleCFRequesting@PsUiDivertNoteHandler@@QAEX_N0@Z @ 51 NONAME ; void PsUiDivertNoteHandler::handleCFRequesting(bool, bool)
+	?metaObject@PsUiLocalisation@@UBEPBUQMetaObject@@XZ @ 52 NONAME ; struct QMetaObject const * PsUiLocalisation::metaObject(void) const
+	?trUtf8@PsUiDivertNoteHandler@@SA?AVQString@@PBD0H@Z @ 53 NONAME ; class QString PsUiDivertNoteHandler::trUtf8(char const *, char const *, int)
+	??_EPsUiLocalisation@@UAE@I@Z @ 54 NONAME ; PsUiLocalisation::~PsUiLocalisation(unsigned int)
+	?handleCallWaitingGetStatus@PsUiWaitingNoteHandler@@QAEXW4PsCallWaitingStatus@PSetCallWaitingWrapper@@ABV?$QList@E@@@Z @ 55 NONAME ; void PsUiWaitingNoteHandler::handleCallWaitingGetStatus(enum PSetCallWaitingWrapper::PsCallWaitingStatus, class QList<unsigned char> const &)
+	?formatActiveDivertsNoteText@PsUiNotes@@AAEXABV?$QList@PAVPSCallDivertingStatus@@@@AAVQString@@@Z @ 56 NONAME ; void PsUiNotes::formatActiveDivertsNoteText(class QList<class PSCallDivertingStatus *> const &, class QString &)
+	?instance@PsUiNotes@@SAPAV1@XZ @ 57 NONAME ; class PsUiNotes * PsUiNotes::instance(void)
+	?staticMetaObject@PsUiDivertNoteHandler@@2UQMetaObject@@B @ 58 NONAME ; struct QMetaObject const PsUiDivertNoteHandler::staticMetaObject
+	?staticMetaObject@PsUiUtils@@2UQMetaObject@@B @ 59 NONAME ; struct QMetaObject const PsUiUtils::staticMetaObject
+	?qt_metacast@PsUiLocalisation@@UAEPAXPBD@Z @ 60 NONAME ; void * PsUiLocalisation::qt_metacast(char const *)
+	?handleCallWaitingError@PsUiWaitingNoteHandler@@QAEXH@Z @ 61 NONAME ; void PsUiWaitingNoteHandler::handleCallWaitingError(int)
+	?progressNoteCanceled@PsUiNotes@@IAEXXZ @ 62 NONAME ; void PsUiNotes::progressNoteCanceled(void)
+	?launchNextNoteIfReady@PsUiNotes@@AAEXXZ @ 63 NONAME ; void PsUiNotes::launchNextNoteIfReady(void)
+	?qt_metacast@PsUiUtils@@UAEPAXPBD@Z @ 64 NONAME ; void * PsUiUtils::qt_metacast(char const *)
+	?trUtf8@PsUiWaitingNoteHandler@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString PsUiWaitingNoteHandler::trUtf8(char const *, char const *)
+	?tr@PsUiDivertNoteHandler@@SA?AVQString@@PBD0H@Z @ 66 NONAME ; class QString PsUiDivertNoteHandler::tr(char const *, char const *, int)
+	?staticMetaObject@PsUiSettingsWrapper@@2UQMetaObject@@B @ 67 NONAME ; struct QMetaObject const PsUiSettingsWrapper::staticMetaObject
+	?staticMetaObject@PsUiNotes@@2UQMetaObject@@B @ 68 NONAME ; struct QMetaObject const PsUiNotes::staticMetaObject
+	?tr@PsUiLocalisation@@SA?AVQString@@PBD0@Z @ 69 NONAME ; class QString PsUiLocalisation::tr(char const *, char const *)
+	??_EPsUiSettingsWrapper@@UAE@I@Z @ 70 NONAME ; PsUiSettingsWrapper::~PsUiSettingsWrapper(unsigned int)
+	?getStaticMetaObject@PsUiLocalisation@@SAABUQMetaObject@@XZ @ 71 NONAME ; struct QMetaObject const & PsUiLocalisation::getStaticMetaObject(void)
+	?showCallDivertDetails@PsUiNotes@@QAEXABV?$QList@PAVPSCallDivertingStatus@@@@@Z @ 72 NONAME ; void PsUiNotes::showCallDivertDetails(class QList<class PSCallDivertingStatus *> const &)
+	?trUtf8@PsUiUtils@@SA?AVQString@@PBD0H@Z @ 73 NONAME ; class QString PsUiUtils::trUtf8(char const *, char const *, int)
+	??1PsUiNotes@@EAE@XZ @ 74 NONAME ; PsUiNotes::~PsUiNotes(void)
+	?qt_metacall@PsUiDivertNoteHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 75 NONAME ; int PsUiDivertNoteHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacast@PsUiDivertNoteHandler@@UAEPAXPBD@Z @ 76 NONAME ; void * PsUiDivertNoteHandler::qt_metacast(char const *)
+	?trUtf8@PsUiLocalisation@@SA?AVQString@@PBD0H@Z @ 77 NONAME ; class QString PsUiLocalisation::trUtf8(char const *, char const *, int)
+	?trUtf8@PsUiSettingsWrapper@@SA?AVQString@@PBD0@Z @ 78 NONAME ; class QString PsUiSettingsWrapper::trUtf8(char const *, char const *)
+	?staticMetaObject@PsUiWaitingNoteHandler@@2UQMetaObject@@B @ 79 NONAME ; struct QMetaObject const PsUiWaitingNoteHandler::staticMetaObject
+	?handleCallWaitingRequesting@PsUiWaitingNoteHandler@@QAEX_N0@Z @ 80 NONAME ; void PsUiWaitingNoteHandler::handleCallWaitingRequesting(bool, bool)
+	?tr@PsUiNotes@@SA?AVQString@@PBD0H@Z @ 81 NONAME ; class QString PsUiNotes::tr(char const *, char const *, int)
+	?metaObject@PsUiWaitingNoteHandler@@UBEPBUQMetaObject@@XZ @ 82 NONAME ; struct QMetaObject const * PsUiWaitingNoteHandler::metaObject(void) const
+	?tr@PsUiWaitingNoteHandler@@SA?AVQString@@PBD0@Z @ 83 NONAME ; class QString PsUiWaitingNoteHandler::tr(char const *, char const *)
+	?showGlobalNotificationDialog@PsUiNotes@@QAEXABVQString@@@Z @ 84 NONAME ; void PsUiNotes::showGlobalNotificationDialog(class QString const &)
+	?qt_metacall@PsUiWaitingNoteHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int PsUiWaitingNoteHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?activeNoteAboutToClose@PsUiNotes@@AAEXXZ @ 86 NONAME ; void PsUiNotes::activeNoteAboutToClose(void)
+	??_EPsUiNotes@@UAE@I@Z @ 87 NONAME ; PsUiNotes::~PsUiNotes(unsigned int)
+	?metaObject@PsUiSettingsWrapper@@UBEPBUQMetaObject@@XZ @ 88 NONAME ; struct QMetaObject const * PsUiSettingsWrapper::metaObject(void) const
+	?metaObject@PsUiNotes@@UBEPBUQMetaObject@@XZ @ 89 NONAME ; struct QMetaObject const * PsUiNotes::metaObject(void) const
+	??0PsUiDivertNoteHandler@@QAE@AAVPSetCallDivertingWrapper@@@Z @ 90 NONAME ; PsUiDivertNoteHandler::PsUiDivertNoteHandler(class PSetCallDivertingWrapper &)
+	?showGlobalNote@PsUiNotes@@QAEXAAHABVQString@@W4MessageBoxType@HbMessageBox@@@Z @ 91 NONAME ; void PsUiNotes::showGlobalNote(int &, class QString const &, enum HbMessageBox::MessageBoxType)
+	?handleDivertingChanged@PsUiDivertNoteHandler@@QAEXABVPSCallDivertingCommand@@_N@Z @ 92 NONAME ; void PsUiDivertNoteHandler::handleDivertingChanged(class PSCallDivertingCommand const &, bool)
+	?showGlobalProgressNote@PsUiNotes@@QAEXAAHABVQString@@@Z @ 93 NONAME ; void PsUiNotes::showGlobalProgressNote(int &, class QString const &)
+	?handleCallWaitingChanged@PsUiWaitingNoteHandler@@QAEXW4PsCallWaitingCommand@PSetCallWaitingWrapper@@H@Z @ 94 NONAME ; void PsUiWaitingNoteHandler::handleCallWaitingChanged(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
+	??_EPsUiDivertNoteHandler@@UAE@I@Z @ 95 NONAME ; PsUiDivertNoteHandler::~PsUiDivertNoteHandler(unsigned int)
+	?qt_metacall@PsUiLocalisation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 96 NONAME ; int PsUiLocalisation::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?installTranslator@PsUiLocalisation@@QAE_NW4TranslationFileId@1@@Z @ 97 NONAME ; bool PsUiLocalisation::installTranslator(enum PsUiLocalisation::TranslationFileId)
+	?showGlobalErrorNote@PsUiNotes@@QAEXAAHH@Z @ 98 NONAME ; void PsUiNotes::showGlobalErrorNote(int &, int)
+	?isPhoneOffline@PsUiSettingsWrapper@@QBE_NXZ @ 99 NONAME ; bool PsUiSettingsWrapper::isPhoneOffline(void) const
+	?metaObject@PsUiDivertNoteHandler@@UBEPBUQMetaObject@@XZ @ 100 NONAME ; struct QMetaObject const * PsUiDivertNoteHandler::metaObject(void) const
+	?trUtf8@PsUiLocalisation@@SA?AVQString@@PBD0@Z @ 101 NONAME ; class QString PsUiLocalisation::trUtf8(char const *, char const *)
+	?tr@PsUiUtils@@SA?AVQString@@PBD0H@Z @ 102 NONAME ; class QString PsUiUtils::tr(char const *, char const *, int)
+	?numberGroupingSupported@PsUiSettingsWrapper@@QBE_NXZ @ 103 NONAME ; bool PsUiSettingsWrapper::numberGroupingSupported(void) const
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/eabi/psuinotesu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,103 @@
+EXPORTS
+	_ZN16PsUiLocalisation11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+	_ZN16PsUiLocalisation11qt_metacastEPKc @ 2 NONAME
+	_ZN16PsUiLocalisation16staticMetaObjectE @ 3 NONAME DATA 16
+	_ZN16PsUiLocalisation17installTranslatorENS_17TranslationFileIdE @ 4 NONAME
+	_ZN16PsUiLocalisation17removeTranslatorsEv @ 5 NONAME
+	_ZN16PsUiLocalisation19getStaticMetaObjectEv @ 6 NONAME
+	_ZN16PsUiLocalisationC1EP7QObject @ 7 NONAME
+	_ZN16PsUiLocalisationC2EP7QObject @ 8 NONAME
+	_ZN16PsUiLocalisationD0Ev @ 9 NONAME
+	_ZN16PsUiLocalisationD1Ev @ 10 NONAME
+	_ZN16PsUiLocalisationD2Ev @ 11 NONAME
+	_ZN19PsUiSettingsWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 12 NONAME
+	_ZN19PsUiSettingsWrapper11qt_metacastEPKc @ 13 NONAME
+	_ZN19PsUiSettingsWrapper16staticMetaObjectE @ 14 NONAME DATA 16
+	_ZN19PsUiSettingsWrapper19getStaticMetaObjectEv @ 15 NONAME
+	_ZN19PsUiSettingsWrapper51isFeatureCallWaitingDistiquishNotProvisionedEnabledEv @ 16 NONAME
+	_ZN19PsUiSettingsWrapperC1EP7QObject @ 17 NONAME
+	_ZN19PsUiSettingsWrapperC2EP7QObject @ 18 NONAME
+	_ZN19PsUiSettingsWrapperD0Ev @ 19 NONAME
+	_ZN19PsUiSettingsWrapperD1Ev @ 20 NONAME
+	_ZN19PsUiSettingsWrapperD2Ev @ 21 NONAME
+	_ZN21PsUiDivertNoteHandler11qt_metacallEN11QMetaObject4CallEiPPv @ 22 NONAME
+	_ZN21PsUiDivertNoteHandler11qt_metacastEPKc @ 23 NONAME
+	_ZN21PsUiDivertNoteHandler16staticMetaObjectE @ 24 NONAME DATA 16
+	_ZN21PsUiDivertNoteHandler18handleCFRequestingEbb @ 25 NONAME
+	_ZN21PsUiDivertNoteHandler19getStaticMetaObjectEv @ 26 NONAME
+	_ZN21PsUiDivertNoteHandler20handleDivertingErrorEi @ 27 NONAME
+	_ZN21PsUiDivertNoteHandler21handleDivertingStatusER5QListIP21PSCallDivertingStatusEb @ 28 NONAME
+	_ZN21PsUiDivertNoteHandler22handleDivertingChangedERK22PSCallDivertingCommandb @ 29 NONAME
+	_ZN21PsUiDivertNoteHandlerC1ER24PSetCallDivertingWrapper @ 30 NONAME
+	_ZN21PsUiDivertNoteHandlerC2ER24PSetCallDivertingWrapper @ 31 NONAME
+	_ZN21PsUiDivertNoteHandlerD0Ev @ 32 NONAME
+	_ZN21PsUiDivertNoteHandlerD1Ev @ 33 NONAME
+	_ZN21PsUiDivertNoteHandlerD2Ev @ 34 NONAME
+	_ZN22PsUiWaitingNoteHandler11qt_metacallEN11QMetaObject4CallEiPPv @ 35 NONAME
+	_ZN22PsUiWaitingNoteHandler11qt_metacastEPKc @ 36 NONAME
+	_ZN22PsUiWaitingNoteHandler16staticMetaObjectE @ 37 NONAME DATA 16
+	_ZN22PsUiWaitingNoteHandler19getStaticMetaObjectEv @ 38 NONAME
+	_ZN22PsUiWaitingNoteHandler22handleCallWaitingErrorEi @ 39 NONAME
+	_ZN22PsUiWaitingNoteHandler24handleCallWaitingChangedEN22PSetCallWaitingWrapper20PsCallWaitingCommandEi @ 40 NONAME
+	_ZN22PsUiWaitingNoteHandler26handleCallWaitingGetStatusEN22PSetCallWaitingWrapper19PsCallWaitingStatusERK5QListIhE @ 41 NONAME
+	_ZN22PsUiWaitingNoteHandler27handleCallWaitingRequestingEbb @ 42 NONAME
+	_ZN22PsUiWaitingNoteHandlerC1ER22PSetCallWaitingWrapper @ 43 NONAME
+	_ZN22PsUiWaitingNoteHandlerC2ER22PSetCallWaitingWrapper @ 44 NONAME
+	_ZN22PsUiWaitingNoteHandlerD0Ev @ 45 NONAME
+	_ZN22PsUiWaitingNoteHandlerD1Ev @ 46 NONAME
+	_ZN22PsUiWaitingNoteHandlerD2Ev @ 47 NONAME
+	_ZN9PsUiNotes10cancelNoteEi @ 48 NONAME
+	_ZN9PsUiNotes11noteShowingEv @ 49 NONAME
+	_ZN9PsUiNotes11qt_metacallEN11QMetaObject4CallEiPPv @ 50 NONAME
+	_ZN9PsUiNotes11qt_metacastEPKc @ 51 NONAME
+	_ZN9PsUiNotes14showGlobalNoteERiRK7QStringN12HbMessageBox14MessageBoxTypeE @ 52 NONAME
+	_ZN9PsUiNotes16staticMetaObjectE @ 53 NONAME DATA 16
+	_ZN9PsUiNotes19getStaticMetaObjectEv @ 54 NONAME
+	_ZN9PsUiNotes19passwordTextChangedEv @ 55 NONAME
+	_ZN9PsUiNotes19showGlobalErrorNoteERii @ 56 NONAME
+	_ZN9PsUiNotes20progressNoteCanceledEv @ 57 NONAME
+	_ZN9PsUiNotes21launchNextNoteIfReadyEv @ 58 NONAME
+	_ZN9PsUiNotes21showCallDivertDetailsERK5QListIP21PSCallDivertingStatusE @ 59 NONAME
+	_ZN9PsUiNotes22activeNoteAboutToCloseEv @ 60 NONAME
+	_ZN9PsUiNotes22passwordQueryCompletedE7QStringb @ 61 NONAME
+	_ZN9PsUiNotes22showGlobalProgressNoteERiRK7QString @ 62 NONAME
+	_ZN9PsUiNotes22showNotificationDialogERK7QString @ 63 NONAME
+	_ZN9PsUiNotes23showPasswordQueryDialogERK7QStringRK10QValidatori @ 64 NONAME
+	_ZN9PsUiNotes26handleProgressNoteCanceledEv @ 65 NONAME
+	_ZN9PsUiNotes27finishedPasswordQueryDialogEP8HbAction @ 66 NONAME
+	_ZN9PsUiNotes27formatActiveDivertsNoteTextERK5QListIP21PSCallDivertingStatusER7QString @ 67 NONAME
+	_ZN9PsUiNotes28showGlobalNotificationDialogERK7QString @ 68 NONAME
+	_ZN9PsUiNotes8instanceEv @ 69 NONAME
+	_ZN9PsUiNotesC1Ev @ 70 NONAME
+	_ZN9PsUiNotesC2Ev @ 71 NONAME
+	_ZN9PsUiNotesD0Ev @ 72 NONAME
+	_ZN9PsUiNotesD1Ev @ 73 NONAME
+	_ZN9PsUiNotesD2Ev @ 74 NONAME
+	_ZN9PsUiUtils11qt_metacallEN11QMetaObject4CallEiPPv @ 75 NONAME
+	_ZN9PsUiUtils11qt_metacastEPKc @ 76 NONAME
+	_ZN9PsUiUtils16staticMetaObjectE @ 77 NONAME DATA 16
+	_ZN9PsUiUtils19getStaticMetaObjectEv @ 78 NONAME
+	_ZN9PsUiUtils20errorCodeTextMappingEiR7QString @ 79 NONAME
+	_ZNK16PsUiLocalisation10metaObjectEv @ 80 NONAME
+	_ZNK19PsUiSettingsWrapper10metaObjectEv @ 81 NONAME
+	_ZNK19PsUiSettingsWrapper14isPhoneOfflineEv @ 82 NONAME
+	_ZNK19PsUiSettingsWrapper15readCenrepValueElm @ 83 NONAME
+	_ZNK19PsUiSettingsWrapper23numberGroupingSupportedEv @ 84 NONAME
+	_ZNK21PsUiDivertNoteHandler10metaObjectEv @ 85 NONAME
+	_ZNK22PsUiWaitingNoteHandler10metaObjectEv @ 86 NONAME
+	_ZNK9PsUiNotes10metaObjectEv @ 87 NONAME
+	_ZNK9PsUiNotes17formatPhoneNumberE7QString @ 88 NONAME
+	_ZNK9PsUiUtils10metaObjectEv @ 89 NONAME
+	_ZTI16PsUiLocalisation @ 90 NONAME
+	_ZTI19PsUiSettingsWrapper @ 91 NONAME
+	_ZTI21PsUiDivertNoteHandler @ 92 NONAME
+	_ZTI22PsUiWaitingNoteHandler @ 93 NONAME
+	_ZTI9PsUiNotes @ 94 NONAME
+	_ZTI9PsUiUtils @ 95 NONAME
+	_ZTV16PsUiLocalisation @ 96 NONAME
+	_ZTV19PsUiSettingsWrapper @ 97 NONAME
+	_ZTV21PsUiDivertNoteHandler @ 98 NONAME
+	_ZTV22PsUiWaitingNoteHandler @ 99 NONAME
+	_ZTV9PsUiNotes @ 100 NONAME
+	_ZTV9PsUiUtils @ 101 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/inc/psuilogging.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,75 @@
+/*
+ * 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 PSUILOGGING_H
+#define PSUILOGGING_H
+
+#include <QDebug>
+
+
+/*!
+  Define MSG_OUTPUT_RDEBUG 
+  for enabling RDebug prints in development tracing. 
+  Shouldn't be used in release code.
+  */
+#undef MSG_OUTPUT_RDEBUG
+
+#ifdef MSG_OUTPUT_RDEBUG
+#ifdef Q_OS_SYMBIAN
+#include <e32debug.h>
+
+static void PsUiNotesMsgOutput(QtMsgType type, const char *msg)
+{
+    switch (type) {
+    
+    case QtDebugMsg:
+        RDebug::Printf("PsUiNotes Debug: %s\n", msg);
+        break;        
+    case QtWarningMsg:
+        RDebug::Printf("PsUiNotes Warning: %s\n", msg);
+        break;
+    case QtCriticalMsg:
+        RDebug::Printf("PsUiNotes Critical: %s\n", msg);
+        break;        
+    case QtFatalMsg:
+        RDebug::Printf("PsUiNotes Fatal: %s\n", msg);
+        abort();
+        break; 
+    default:
+        break; 
+    }
+}
+
+    #define INSTALL_TRACE_MSG_HANDLER qInstallMsgHandler(PsUiNotesMsgOutput)
+    #define UNINSTALL_TRACE_MSG_HANDLER qInstallMsgHandler(0)
+#else //Q_OS_SYMBIAN
+    #define INSTALL_TRACE_MSG_HANDLER
+    #define UNINSTALL_TRACE_MSG_HANDLER
+#endif
+#else 
+    #define INSTALL_TRACE_MSG_HANDLER 
+    #define UNINSTALL_TRACE_MSG_HANDLER 
+#endif //MSG_OUTPUT_RDEBUG
+
+/*!
+  Debug macros
+  */
+#define DPRINT qDebug() << __PRETTY_FUNCTION__
+#define DWARNING qWarning() << __PRETTY_FUNCTION__
+
+#endif // PSUILOGGING_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/inc/psuiutils.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,88 @@
+/*
+ * 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 PSUIUTILS_H
+#define PSUIUTILS_H
+
+#include <qvariant.h>
+
+#ifdef BUILD_PSUINOTES
+#define PSUINOTES_EXPORT Q_DECL_EXPORT
+#else
+#define PSUINOTES_EXPORT Q_DECL_IMPORT
+#endif
+
+class XQSettingsManager;
+
+/*!
+    \class PsUiUtils
+    \brief The static functionality.
+ */
+class PSUINOTES_EXPORT PsUiUtils : public QObject
+{
+    Q_OBJECT
+
+public:
+    /*!
+      Error code text conversion
+      */
+    static bool errorCodeTextMapping(const int errorcode, QString &errorText);
+   
+};
+
+/*!
+    \class SettingsWrapper
+    \brief Wraps central repository and P&S dependency.
+ */
+class PSUINOTES_EXPORT PsUiSettingsWrapper : public QObject
+{
+    Q_OBJECT
+public:
+    PsUiSettingsWrapper(QObject *parent = NULL);
+    ~PsUiSettingsWrapper();
+public:
+    
+    /*!
+     Call waiting distiquish not provisioned support
+     */
+    bool isFeatureCallWaitingDistiquishNotProvisionedEnabled();
+    
+    /*!
+     Checks if phone is in offline mode or not.
+     Return true if phone is in offline mode.
+     Return false if phone is not in offline mode.
+     */
+    bool isPhoneOffline() const;
+    
+    /*!
+     Number grouping support
+     */
+    bool numberGroupingSupported() const;
+
+private:
+    /*!
+      Read cenrep value. 
+      */
+    QVariant readCenrepValue( const long int uid, const unsigned long int key) const;
+
+private: // Data
+    // Own
+    XQSettingsManager* m_Settings;
+};
+
+
+#endif // PSUIUTILS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/psuinotes.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,63 @@
+# 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 = lib
+TARGET = psuinotes
+CONFIG += hb
+MOC_DIR = moc
+TRANSLATIONS = telephone_cp.ts
+INCLUDEPATH += inc
+SOURCEPATH += src
+
+# Input
+HEADERS += ../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuidivertnotehandler.h \
+	../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuiwaitingnotehandler.h \
+    ../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuinotes.h \
+    ../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuilocalisation.h \
+    inc/psuiutils.h 
+SOURCES += src/psuidivertnotehandler.cpp \
+	src/psuiwaitingnotehandler.cpp \
+    src/psuinotes.cpp \
+    src/psuilocalisation.cpp \
+    src/psuiutils.cpp 
+DEFINES += BUILD_PSUINOTES
+symbian: { 
+    load(data_caging_paths)
+    
+     LIBS += -lxqsysinfo \
+    -lxqsettingsmanager \
+    
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    TARGET.EPOCALLOWDLLDATA = 1
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.UID3 = 0X200315B9
+    
+    defFiles = \
+    "$${LITERAL_HASH}ifdef WINS" \
+        "DEFFILE bwins/psuinotes.def" \
+    "$${LITERAL_HASH}else" \
+        "DEFFILE eabi/psuinotes.def" \
+    "$${LITERAL_HASH}endif"
+    MMP_RULES += defFiles
+     
+    # For sis file
+    dllfile.sources = $${TARGET}.dll
+    dllfile.path = $$SHARED_LIB_DIR
+    DEPLOYMENT += dllfile
+    
+    BLD_INF_RULES.prj_exports +=  \
+    "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "./rom/psuinotes.iby    CORE_MW_LAYER_IBY_EXPORT_PATH(psuinotes.iby)"   
+} else: { 
+	INCLUDEPATH += ../../../../../mw/phonesrv/phonesrv_plat/phone_settings_api/inc
+    INCLUDEPATH += ../../../../../mw/gsprofilesrv/controlpanel/controlpanel_plat/inc
+    DESTDIR = c:\hb\lib
+    DLLDESTDIR = c:\hb\bin
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/rom/psuinotes.iby	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* 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 __PSETNOTESUI2_IBY__
+#define __PSETNOTESUI2_IBY__
+
+#include <bldvariant.hrh>
+
+file=ABI_DIR/BUILD_DIR/psuinotes.dll             SHARED_LIB_DIR/psuinotes.dll
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/src/psuidivertnotehandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,143 @@
+/*
+ * 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 <psetcalldivertingwrapper.h>
+#include "psuinotes.h"
+#include "psuidivertnotehandler.h"
+#include "psuilogging.h"
+
+/*!
+  PsUiDivertNoteHandler::PsUiDivertNoteHandler 
+ */
+PsUiDivertNoteHandler::PsUiDivertNoteHandler(PSetCallDivertingWrapper& callDivertingWrapper) :
+    m_callDivertingWrapper(callDivertingWrapper)
+{
+    DPRINT << ": IN";
+   
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleDivertingChanged(const PSCallDivertingCommand&,bool)),
+        this, 
+        SLOT(handleDivertingChanged(const PSCallDivertingCommand&,bool)));
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleDivertingStatus(QList<PSCallDivertingStatus*>&, bool)),
+        this, 
+        SLOT(handleDivertingStatus(QList<PSCallDivertingStatus*>&, bool)));
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleDivertingError(int)),
+        this, 
+        SLOT(handleDivertingError(int))); 
+    QObject::connect(
+        &m_callDivertingWrapper, 
+        SIGNAL(handleCFRequesting(bool,bool)),
+        this,
+        SLOT(handleCFRequesting(bool,bool)));
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiDivertNoteHandler::~PsUiDivertNoteHandler
+ */
+PsUiDivertNoteHandler::~PsUiDivertNoteHandler()
+{  
+}
+
+/*!
+  PsUiDivertNoteHandler::handleDivertingChanged
+ */
+void PsUiDivertNoteHandler::handleDivertingChanged(
+    const PSCallDivertingCommand& aSetting, 
+    bool aPlural)
+{  
+    DPRINT << ": IN";
+    switch ( aSetting.iStatus ) {
+        case DivertingStatusActive:
+            if (aPlural) {   
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_diverts_activated"));
+            } else {       
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_divert_activated"));
+            }
+            break;
+        case DivertingStatusNotRegistered:  
+        case DivertingStatusInactive:
+            if (aPlural) {
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_diverts_deactivated"));
+            } else {
+                PsUiNotes::instance()->showGlobalNotificationDialog(
+                    hbTrId("txt_phone_info_divert_deactivated"));
+            }
+            break;
+        case DivertingStatusNotProvisioned:
+        case DivertingStatusUnknown:
+        default:
+            PsUiNotes::instance()->showGlobalNotificationDialog(
+                hbTrId("txt_phone_info_request_not_completed"));
+    }
+    DPRINT << ": OUT";
+}
+   
+/*!
+  PsUiDivertNoteHandler::handleDivertingStatus
+ */
+void PsUiDivertNoteHandler::handleDivertingStatus(
+    QList<PSCallDivertingStatus*>& divertList, 
+    bool plural)
+{
+    DPRINT << ": IN";   
+    Q_UNUSED(plural);
+
+    PsUiNotes::instance()->showCallDivertDetails(divertList);
+    DPRINT << ": OUT";
+}
+   
+/*!
+  PsUiDivertNoteHandler::handleDivertingError
+ */
+void PsUiDivertNoteHandler::handleDivertingError(int aReason)
+{
+    DPRINT << ": IN";
+    // Cancel previous note
+    PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    // Show error note
+    PsUiNotes::instance()->showGlobalErrorNote(m_activeNoteId, aReason);    
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiDivertNoteHandler::handleCFRequesting
+ */
+void PsUiDivertNoteHandler::handleCFRequesting(bool ongoing, bool interrupted)
+{
+    DPRINT << ": IN";
+    if (interrupted) {
+       PsUiNotes::instance()->cancelNote(m_activeProgressNoteId);
+       PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    } else {
+       if (ongoing) {
+           PsUiNotes::instance()->showGlobalProgressNote(
+               m_activeProgressNoteId, hbTrId("txt_phone_info_requesting"));
+       } else {
+           PsUiNotes::instance()->cancelNote(m_activeProgressNoteId);
+       }
+    }       
+    DPRINT << ": OUT";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/src/psuilocalisation.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,125 @@
+/*
+ * 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 "psuilocalisation.h"
+#include "psuilogging.h"
+#include <QTranslator>
+#include <QLocale>
+#include <QApplication>
+
+
+// Constant definitions 
+const char *TS_FILE_TELEPHONE_CP = "telephone_cp";
+const char *TS_FILE_COMMON = "common"; 
+
+/*!
+    \class PsUiLocalisation
+    \brief Localisation utility class for 
+           Telephony control panel plugins. 
+
+    Use installTranslator function for installing 
+    needed translation files. 
+    
+    Takes ownership of the created QTranslator objects
+    and destroys them when PsUiLocalisation 
+    object is destructed. 
+*/
+
+
+/*!
+  PsUiLocalisation::PsUiLocalisation() 
+ */
+PsUiLocalisation::PsUiLocalisation(QObject *parent)
+ :QObject(parent)
+{
+    DPRINT; 
+}
+
+
+/*!
+  PsUiLocalisation::~PsUiLocalisation() 
+*/
+PsUiLocalisation::~PsUiLocalisation()
+{
+    DPRINT << ":IN"; 
+    removeTranslators();
+    DPRINT << ":OUT";
+}
+
+
+/*!
+  PsUiLocalisation::installTranslator() 
+*/
+bool PsUiLocalisation::installTranslator(
+        TranslationFileId translationFileId)
+{
+    DPRINT << ": IN";
+   
+    QString lang = QLocale::system().name();
+    QString path = "z:/resource/qt/translations/";
+    bool translatorLoaded(false);  
+
+    QString fileName; 
+    switch (translationFileId) {
+        case TranslationFileTelephoneCp: 
+            fileName = TS_FILE_TELEPHONE_CP; 
+            break; 
+        case TranslationFileCommon:
+            fileName = TS_FILE_COMMON; 
+            break;
+        default: 
+            DWARNING << ": Unknown enum value!";
+            break; 
+    }
+
+    if (!fileName.isEmpty()) {
+        QTranslator* translator = new QTranslator;
+        translatorLoaded = translator->load(
+                path + fileName + "_" + lang);
+        if (translatorLoaded) {
+            m_translators.append(translator); 
+            qApp->installTranslator(translator);
+            DPRINT << ": translator installed: " << fileName; 
+        } else {
+            delete translator; 
+            translator = NULL;
+            DWARNING << ": Translator not loaded!";
+        }
+    }
+
+    DPRINT << ": OUT";
+    return translatorLoaded;
+}
+
+
+/*!
+  PsUiLocalisation::removeTranslators()
+*/
+void PsUiLocalisation::removeTranslators()
+{
+    DPRINT << ": IN";
+
+    foreach (QTranslator *translator, m_translators) {
+        qApp->removeTranslator(translator);
+    }    
+    qDeleteAll(m_translators);
+    m_translators.clear();
+    
+    DPRINT << ": OUT";
+}
+
+
+// End of File. 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/src/psuinotes.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,544 @@
+/*
+ * 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 <hbdevicemessagebox.h>
+#include <hbdevicenotificationdialog.h>
+#include <HbDeviceProgressDialog>
+#include <hblistview.h>
+#include <hbdialog.h>
+#include <hblabel.h>
+#include <hbaction.h>
+#include <hbmessagebox.h>
+#include <hbnotificationdialog.h>
+#include <QStandardItemModel>
+#include <QItemSelectionModel>
+#include <hbstringutil.h>
+#include <hbextendedlocale.h>
+#include <HbInputDialog>
+#include <HbEditorInterface>
+#include <hbinputdef.h>
+#include <hbinputstandardfilters.h>
+#include <xqserviceutil.h>
+#include <QApplication>
+#include <QTranslator>
+#include <Qt>
+
+#include "psuinotes.h"
+#include "psuiutils.h"
+#include "psuilogging.h"
+#include "psuilocalisation.h"
+
+/*!
+  PsUiNotes::instance.
+ */
+PsUiNotes* PsUiNotes::instance()
+{
+    DPRINT << ": IN";
+  
+    static PsUiNotes theInstance;
+    
+    DPRINT << ", instance address: " << reinterpret_cast<int>(&theInstance);
+    return &theInstance;
+}
+ 
+/*!
+  PsUiNotes::PsUiNotes.
+ */
+PsUiNotes::PsUiNotes(): 
+     QObject(NULL), 
+     m_notesQueue(NULL),
+     m_isNoteShowingOngoing(false),
+     m_passwordDialog(NULL),
+     m_passwordValidator(NULL)
+    {
+    DPRINT << ": IN";
+
+    m_notesQueue = new QQueue<QObject*>();
+    
+    m_psuiSettings = new PsUiSettingsWrapper();
+ 
+    // Localization file loading 
+    m_localisation = new PsUiLocalisation(this); 
+       
+    // Install required translations
+    m_localisation->installTranslator(
+           PsUiLocalisation::
+           TranslationFileCommon);
+    m_localisation->installTranslator(
+           PsUiLocalisation::
+           TranslationFileTelephoneCp);
+    DPRINT << ": OUT";
+    }
+
+/*!
+  PsUiNotes::~PsUiNotes.
+ */
+PsUiNotes::~PsUiNotes()
+{
+    DPRINT << ": IN";
+
+    delete m_localisation;
+ 
+    qDeleteAll(*m_notesQueue);
+    
+    delete m_psuiSettings;
+    
+    delete m_notesQueue;
+        
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::showGlobalProgressNote.
+ */
+void PsUiNotes::showGlobalProgressNote(
+    int &noteId, const QString& text)
+{
+    DPRINT << ": IN";
+    
+    HbDeviceProgressDialog *note = 
+        new HbDeviceProgressDialog(HbProgressDialog::WaitDialog, this);
+    note->setText(text);
+    
+    if(hbTrId("txt_common_info_requesting") == text){
+        QAction *action = new QAction(hbTrId("txt_common_button_hide"), note);
+        note->setAction(action, HbDeviceProgressDialog::CancelButtonRole );
+    }
+    
+    noteId = reinterpret_cast<int>(note);
+    DPRINT << ", NOTEID: " << noteId;
+    QObject::connect(
+        note, SIGNAL(aboutToClose()),
+        this, SLOT(activeNoteAboutToClose()));
+    QObject::connect(
+        note, SIGNAL(cancelled()),
+        this, SLOT(handleProgressNoteCanceled()));
+    m_notesQueue->enqueue(note);    
+    launchNextNoteIfReady();
+    
+    DPRINT << ": OUT";
+}
+    
+/*!
+  PsUiNotes::showGlobalNote.
+ */
+void PsUiNotes::showGlobalNote(int &noteId, const QString& text, 
+    HbMessageBox::MessageBoxType messageBoxType)
+{
+    DPRINT << ": IN";
+
+    HbDeviceMessageBox *note
+        = new HbDeviceMessageBox(text, messageBoxType, this);
+    if (messageBoxType == HbMessageBox::MessageTypeQuestion ||
+        messageBoxType == HbMessageBox::MessageTypeInformation) {
+        note->setTimeout(HbPopup::ConfirmationNoteTimeout);
+    }
+    else {
+        note->setTimeout(0);
+    }
+    noteId = reinterpret_cast<int>(note);
+    DPRINT << ", NOTEID: " << noteId;
+    
+    QObject::connect(
+        note, SIGNAL(aboutToClose()),
+        this, SLOT(activeNoteAboutToClose()));
+    
+    m_notesQueue->enqueue(note);
+    launchNextNoteIfReady();
+    
+    DPRINT << ": OUT";
+}
+
+
+/*!
+  PsUiNotes::cancelNote.
+ */
+void PsUiNotes::cancelNote(int noteId)
+{
+    DPRINT << ": IN";
+    
+    if (!m_notesQueue->isEmpty()) {
+        QObject *note = m_notesQueue->head();
+        if(note == reinterpret_cast<QObject *>(noteId)) {
+            int index = m_notesQueue->indexOf(reinterpret_cast<QObject *>(noteId));
+            Q_ASSERT(-1 < index);
+            QObject *note = m_notesQueue->at(index);
+            DPRINT << ": NOTEID: " << noteId;
+            if (qobject_cast<HbDeviceProgressDialog *>(note)) {
+                static_cast<HbDeviceProgressDialog *>(note)->close();
+            } else if (qobject_cast<HbDeviceMessageBox *>(note)) {
+                static_cast<HbDeviceMessageBox *>(note)->close();
+            } else {
+                DPRINT << ", UNKNOWN NOTE";
+                Q_ASSERT(false);
+            }
+        }
+        else {
+            DPRINT << ": remove from queue, noteId: " << noteId;
+            m_notesQueue->removeOne(reinterpret_cast<QObject *>(noteId));
+        }
+    }
+    
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::noteShowing.
+ */
+bool PsUiNotes::noteShowing()
+{
+    return !m_notesQueue->isEmpty();
+}
+
+/*!
+  PsUiNotes::showGlobalErrorNote.
+ */
+void PsUiNotes::showGlobalErrorNote(int &noteId, int errorcode)
+{
+    DPRINT << ": IN";
+    
+    QString errorText = "";
+    PsUiUtils::errorCodeTextMapping(errorcode, errorText);
+
+    HbDeviceMessageBox *note 
+        = new HbDeviceMessageBox(errorText, HbMessageBox::MessageTypeWarning, this);
+    note->setTimeout(0);
+    noteId = reinterpret_cast<int>(note);
+    DPRINT << ", NOTEID: " << noteId;
+    QObject::connect(
+        note, SIGNAL(aboutToClose()),
+        this, SLOT(activeNoteAboutToClose()));
+    m_notesQueue->enqueue(note);
+    launchNextNoteIfReady();
+    
+    DPRINT << ": OUT";
+} 
+
+/*!
+  PsUiNotes::showCallDivertDetails.
+ */
+void PsUiNotes::showCallDivertDetails(
+    const QList<PSCallDivertingStatus*> &divertingStatusList)
+{
+    DPRINT << ": IN";
+    
+    DPRINT << ": Status " << divertingStatusList.first()->iStatus;
+    DPRINT << ": ServiceGroup " << divertingStatusList.first()->iServiceGroup;
+    
+    QString status;
+    QString content;
+    
+    switch( divertingStatusList.first()->iStatus )
+        {
+        case DivertingStatusActive:   
+            formatActiveDivertsNoteText(divertingStatusList,content);
+            break;
+        case DivertingStatusInactive:
+        case DivertingStatusNotRegistered:
+            status.append(hbTrId("txt_phone_dpopinfo_divert_not_active")); 
+            break;
+        case DivertingStatusNotProvisioned:
+            status.append(hbTrId("txt_phone_info_not_allowed"));
+            break;
+        case DivertingStatusUnknown:
+        default:
+            status.append(hbTrId("txt_phone_info_request_not_completed"));
+            break;
+        } 
+    if (divertingStatusList.first()->iStatus != DivertingStatusActive) {
+        showGlobalNotificationDialog(status);
+    }
+    else {     
+        HbDeviceMessageBox * note = 
+            new HbDeviceMessageBox(content, HbMessageBox::MessageTypeQuestion, this);
+        note->setIconVisible(EFalse);
+        note->setTimeout(0);
+        HbAction *backAction = 
+            new HbAction(hbTrId("txt_common_button_close_singledialog") );
+        note->setAction(backAction, HbDeviceMessageBox::AcceptButtonRole );
+        note->setAction(NULL, HbDeviceMessageBox::RejectButtonRole);
+        
+        QObject::connect(
+            note, SIGNAL(aboutToClose()),
+            this, SLOT(activeNoteAboutToClose()));
+        
+        m_notesQueue->enqueue(note);
+        launchNextNoteIfReady();      
+    }
+ 
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::showPasswordQueryDialog.
+ */
+void PsUiNotes::showPasswordQueryDialog(
+    const QString &title, 
+    const QValidator &validator,
+    int maxPasswordLength)
+{
+    DPRINT << ": IN";
+    
+    QScopedPointer<HbInputDialog> passwordDialog(new HbInputDialog());
+    
+    // configure editor so that only digits can be inputted
+    passwordDialog->setPromptText(title);
+    passwordDialog->setEchoMode(HbLineEdit::Password);
+    passwordDialog->setInputMethodHints(Qt::ImhDigitsOnly);
+    passwordDialog->actions().at(0)->setEnabled(false);
+    
+    HbLineEdit *hbLineEdit = passwordDialog->lineEdit();
+    hbLineEdit->setMaxLength(maxPasswordLength);
+    
+    HbEditorInterface editorInterface(hbLineEdit);
+    editorInterface.setMode(HbInputModeNumeric);
+    editorInterface.setInputConstraints(HbEditorConstraintFixedInputMode);
+    editorInterface.setFilter(HbDigitsOnlyFilter::instance());
+    
+    m_passwordValidator = &validator;
+    
+    connect(
+        hbLineEdit, SIGNAL(contentsChanged()), 
+        this, SLOT(passwordTextChanged()));
+    
+    passwordDialog->open(this, SLOT(finishedPasswordQueryDialog(HbAction*)));
+    if(m_passwordDialog) {
+        m_passwordDialog->deleteLater();
+        m_passwordDialog = NULL;
+    }
+    m_passwordDialog = passwordDialog.take();
+    m_passwordDialog->setParent(this);
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::finishedPasswordQueryDialog.
+ */
+void PsUiNotes::finishedPasswordQueryDialog(HbAction* action)
+{
+    bool ok;
+    QString password;
+    if(m_passwordDialog) {
+        if (action == m_passwordDialog->actions().at(1)) {
+            ok = false;
+        } else {
+            ok = true;
+            password = m_passwordDialog->value().toString();
+        }
+        
+        disconnect(
+            m_passwordDialog->lineEdit(), SIGNAL(contentsChanged()), 
+            this, SLOT(passwordTextChanged()));
+        
+        m_passwordDialog->deleteLater();
+        m_passwordDialog = NULL;
+        m_passwordValidator = NULL;
+        
+        emit passwordQueryCompleted(password, ok);
+    }
+}
+
+/*!
+  PsUiNotes::formatPhoneNumber.
+  Formats phone number according to locale specific rules.
+ */
+QString PsUiNotes::formatPhoneNumber(QString number) const
+{
+    DPRINT << ": IN";
+    
+    QString formattedNumber = number;
+    
+    if (m_psuiSettings->numberGroupingSupported() == true) {
+         //TODO: utilize HbNumberGrouping API when available
+    }
+    
+    // TODO: digit conversion e.g. into arabic-indic
+//    HbExtendedLocale locale = HbExtendedLocale::system();
+//    HbStringUtil::convertDigitsTo(formattedNumber, ArabicIndicDigit);
+    
+    DPRINT << ": OUT";
+
+    return formattedNumber;
+}
+
+/*!
+  PsUiNotes::launchNextNoteIfReady.
+ */
+void PsUiNotes::launchNextNoteIfReady()
+{
+    DPRINT << ": IN";
+    
+    if (m_notesQueue->isEmpty()) {
+        DPRINT << ", QUEUE EMPTY";
+        return;
+    }
+    if (!m_isNoteShowingOngoing) {
+        m_isNoteShowingOngoing = true;
+        // note is left in the queue so that it can be cancelled at request
+        QObject *note = m_notesQueue->head();
+        DPRINT << ", note: " << reinterpret_cast<int>(note);
+        if (qobject_cast<HbDeviceProgressDialog *>(note)) {
+            DPRINT << ", show HbDeviceProgressDialog";
+            static_cast<HbDeviceProgressDialog *>(note)->show();
+        } else if (qobject_cast<HbDeviceMessageBox *>(note)) {
+            DPRINT << ", show HbDeviceMessageBox";    
+            static_cast<HbDeviceMessageBox *>(note)->show();
+        } else {
+            DPRINT << ", UNKNOWN NOTE";
+            Q_ASSERT(false);
+        }
+    } else {
+        DPRINT << ", BUSY";
+    }
+    
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::handleActiveDiverts   
+ */
+void PsUiNotes::formatActiveDivertsNoteText(
+    const QList<PSCallDivertingStatus*> &divertingStatusList,
+    QString &text)
+{
+    text.append(hbTrId("Active for:") + "\n\n"); //txt_phone_title_active_for
+             
+    int entries = divertingStatusList.count(); 
+    DPRINT << ": entries " << entries;
+    bool dataSet = false;
+    bool voiceSet = false;
+    for (int i = 0; entries > i; i++) {
+       PSCallDivertingStatus *entry = divertingStatusList.at(i);
+       
+       if (((entry->iServiceGroup & ServiceGroupVoice) && !voiceSet ) ||
+           ((entry->iServiceGroup & ServiceGroupData)) && !dataSet) {   
+           if ((entry->iServiceGroup & ServiceGroupVoice) && !voiceSet) {
+               voiceSet = true;
+               text.append(hbTrId("Voice calls") + "\n"); //txt_phone_info_voice_calls  
+              
+           }
+           else if ((entry->iServiceGroup & ServiceGroupData) && !dataSet) {
+               dataSet = true;
+               text.append(hbTrId("Video calls") + "\n"); //txt_phone_info_video_calls
+           }
+                
+           QString phoneNumber = formatPhoneNumber(divertingStatusList.at(i)->iNumber);
+           text.append(hbTrId("To number:\n%L1").arg(phoneNumber) +"\n"); //txt_phone_info_to_numbernl1
+           if (0 < entry->iTimeout) {
+               text.append(hbTrId("Delay time:\n%L1 seconds").
+                   arg(entry->iTimeout) +"\n\n"); // txt_phone_info_delay_timenln_seconds    
+           }
+           else {
+               text.append("\n");
+           }
+          
+       }
+    }
+    // Convert plain text to html 
+    text = Qt::convertFromPlainText(text);
+}
+
+/*!
+  PsUiNotes::activeNoteAboutToClose.
+ */
+void PsUiNotes::activeNoteAboutToClose()
+{
+    DPRINT << ": IN";
+    
+    if (m_isNoteShowingOngoing) {
+        m_isNoteShowingOngoing = false;
+        QObject* note(NULL);
+        if (!m_notesQueue->isEmpty()) {
+            note = m_notesQueue->dequeue();
+        }
+        if(note) {
+            launchNextNoteIfReady();
+            note->disconnect(this);
+            DPRINT << ", delete note: " << reinterpret_cast<int>(note);
+            HbDeviceProgressDialog *pNote = 
+                qobject_cast<HbDeviceProgressDialog *>(note);
+            note->deleteLater();
+        }
+    }
+    
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::handleProgressNoteCanceled().
+ */
+void PsUiNotes::handleProgressNoteCanceled()
+{
+    DPRINT << ": IN";
+    
+    emit progressNoteCanceled();
+    
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::passwordTextChanged().
+ */
+void PsUiNotes::passwordTextChanged()
+{
+    DPRINT << ": IN";
+    Q_ASSERT(m_passwordDialog && m_passwordValidator);
+    
+    HbLineEdit *hbLineEdit = m_passwordDialog->lineEdit();
+    int position = 0;
+    QString password = hbLineEdit->text();
+    bool isPasswordValid = 
+        (QValidator::Acceptable == m_passwordValidator->validate(
+            password, position));
+    m_passwordDialog->actions().at(0)->setEnabled(isPasswordValid);
+        
+    DPRINT << ": OUT";
+}
+
+
+/*!
+  PsUiNotes::showNotificationDialog.
+ */
+void PsUiNotes::showNotificationDialog(const QString& text)
+{
+    DPRINT << ": IN";
+    
+    HbNotificationDialog *notifDialog = new HbNotificationDialog();
+    
+    notifDialog->setDismissPolicy(HbPopup::TapAnywhere);
+    notifDialog->setAttribute(Qt::WA_DeleteOnClose, true);
+    notifDialog->setText(text);
+    notifDialog->show();
+
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiNotes::showGlobalNotificationDialog   
+ */
+void PsUiNotes::showGlobalNotificationDialog(const QString& text)
+{
+    DPRINT << ": IN";
+        
+    HbDeviceNotificationDialog notifDialog;
+      
+    notifDialog.setText(text);
+    notifDialog.show();
+    
+    DPRINT << ": OUT";    
+}
+
+// End of File.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/src/psuiutils.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,153 @@
+/*
+ * 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 <xqsysinfo.h>
+#include <xqsettingsmanager.h>
+#include <xqsettingskey.h>
+#include <BTSapDomainPSKeys.h>
+#include <settingsinternalcrkeys.h>
+#include <CoreApplicationUIsSDKCRKeys.h>
+#include <NumberGroupingCRKeys.h>
+
+#include <etelmm.h>
+#include <exterror.h>               
+#include <gsmerror.h>
+
+#include <hbglobal.h>
+#include "psuiutils.h"
+#include "psuilogging.h"
+
+/*!
+  PsUiTools::errorCodeTextMapping.
+ */
+bool PsUiUtils::errorCodeTextMapping(const int errorcode, QString &errorText)
+{
+    DPRINT;
+    errorText.clear();
+    bool errorTextFound(true);
+
+    switch(errorcode){
+        case KErrGsmSSSubscriptionViolation:
+            errorText = hbTrId("txt_phone_info_barring_operation_not_successful");
+            break;
+        case KErrGsmSSUnknownSubscriber:
+        case KErrGsmSSAbsentSubscriber:
+        case KErrGsmSSIllegalOperation:
+        case KErrGsmSSIllegalSubscriber:
+        case KErrGsmSSIllegalEquipment:
+        case KErrGsmSSCallBarred:
+        case KErrGsmSSDataMissing:
+            errorText = hbTrId("txt_phone_info_not_allowed");
+            break;
+        case KErrGsmSSIncompatibility:
+            errorText = hbTrId("txt_phone_info_conflict_error");
+            break;
+        case KErrGsmSSSystemFailure:
+            errorText = hbTrId("txt_phone_info_result_unknown");
+            break;
+        case KErrGsmSSUnexpectedDataValue:
+        case KErrGsmSSResourcesUnavailable:
+            errorText = hbTrId("txt_phone_info_request_rejected");
+            break;
+        case KErrGsmSSNegativePasswordCheck:
+        case KErrGsmSSPasswordRegistrationFailure:
+            errorText = hbTrId("Password error");
+            break;
+        case KErrGsmSSPasswordAttemptsViolation:
+            errorText = hbTrId("txt_phone_info_barring_password_blocked");
+            break;
+        case KErrGsmSMSNoNetworkService:
+        case KErrGsmNoService:
+            errorText = hbTrId("No network coverage");
+            break;
+        case KErrSsActivationDataLost:
+            errorText = hbTrId("Check network services");
+            break;
+        case KErrGsmOfflineOpNotAllowed:
+            if(XQSysInfo::isSupported(KFeatureIdOfflineMode)){
+                XQSettingsManager *xqsettingsManager = new XQSettingsManager();
+                XQSettingsKey key(XQSettingsKey::TargetPublishAndSubscribe,
+                        KPSUidBluetoothSapConnectionState.iUid,
+                        KBTSapConnectionState);
+                QVariant startupValue = xqsettingsManager->readItemValue(key);
+                int value = startupValue.toInt();
+                delete xqsettingsManager;
+                xqsettingsManager = NULL;
+                if (value == EBTSapConnected){
+                    errorText = hbTrId("Operation not possible in SIM access profile mode");
+                } else {
+                    errorText = hbTrId("Operation not possible in Off-line mode");
+                }
+            } else {
+                errorText = hbTrId("txt_phone_info_request_not_completed");
+            }
+
+            break;
+        case KErrGsmSSUnknownAlphabet:
+            errorText = hbTrId("txt_phone_info_invalid_phone_number");
+            break;
+        default:
+            errorText = hbTrId("txt_phone_info_request_not_completed");
+            break;
+    }
+
+    return errorTextFound;
+}
+
+PsUiSettingsWrapper::PsUiSettingsWrapper(QObject *parent): 
+    QObject(parent)
+{
+    m_Settings = new XQSettingsManager();
+}
+
+PsUiSettingsWrapper::~PsUiSettingsWrapper()
+{
+    delete m_Settings;
+}
+
+bool PsUiSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled()
+{
+    bool enabled = readCenrepValue(KCRUidPhoneSettings.iUid, KPSetCallWaiting).toBool();
+    DPRINT << "enabled: " << enabled;
+    return enabled;
+}
+
+bool PsUiSettingsWrapper::isPhoneOffline() const
+{
+    bool offLinesupport(false);
+    if (XQSysInfo::isSupported(KFeatureIdOfflineMode)) {
+        offLinesupport = !readCenrepValue(
+                KCRUidCoreApplicationUIs.iUid, 
+                KCoreAppUIsNetworkConnectionAllowed).toBool();
+    }
+    return offLinesupport;
+}
+
+QVariant PsUiSettingsWrapper::readCenrepValue(
+    const long int uid, const unsigned long int key) const
+{
+    XQSettingsKey settingsKey(XQSettingsKey::TargetCentralRepository, uid, key);
+    QVariant ret = m_Settings->readItemValue(settingsKey);
+    DPRINT << "ret: " << ret;
+    return ret;
+}
+
+bool PsUiSettingsWrapper::numberGroupingSupported() const
+ {
+     return readCenrepValue(KCRUidNumberGrouping.iUid, KNumberGrouping).toBool();
+ }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/src/psuiwaitingnotehandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,168 @@
+/*
+ * 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 <hbdevicenotificationdialog.h>
+#include <psetcallwaitingwrapper.h>
+#include "psuinotes.h"
+#include "psuiwaitingnotehandler.h"
+#include "psuiutils.h"
+#include "psuilogging.h"
+
+/*!
+  PsUiWaitingNoteHandler::PsUiWaitingNoteHandler
+ */
+PsUiWaitingNoteHandler::PsUiWaitingNoteHandler(PSetCallWaitingWrapper& callWaitingWrapper) :
+    m_callWaitingWrapper(callWaitingWrapper)
+{
+    DPRINT << ": IN";
+    
+    m_settingsWrapper = new PsUiSettingsWrapper();
+    
+    QObject::connect(
+        &m_callWaitingWrapper, 
+        SIGNAL(handleCallWaitingGetStatus(
+           PSetCallWaitingWrapper::PsCallWaitingStatus, const QList<unsigned char> &)),
+        this, 
+        SLOT(handleCallWaitingGetStatus(
+           PSetCallWaitingWrapper::PsCallWaitingStatus, const QList<unsigned char> &)));
+    QObject::connect(
+        &m_callWaitingWrapper, 
+        SIGNAL(handleCallWaitingChanged(PSetCallWaitingWrapper::PsCallWaitingCommand, int)),
+        this, 
+        SLOT(handleCallWaitingChanged(PSetCallWaitingWrapper::PsCallWaitingCommand, int)));
+    QObject::connect(
+        &m_callWaitingWrapper, 
+        SIGNAL(handleCallWaitingRequesting( bool, bool )),
+        this, 
+        SLOT(handleCallWaitingRequesting( bool, bool )));
+    QObject::connect(
+        &m_callWaitingWrapper, 
+        SIGNAL(handleCallWaitingError( int )),
+        this, 
+        SLOT(handleCallWaitingError( int )));
+
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiWaitingNoteHandler::~PsUiWaitingNoteHandler
+ */
+PsUiWaitingNoteHandler::~PsUiWaitingNoteHandler()
+{
+    DPRINT << ": IN";
+    delete m_settingsWrapper;
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiWaitingNoteHandler::handleCallWaitingGetStatus
+ */
+void PsUiWaitingNoteHandler::handleCallWaitingGetStatus( 
+    PSetCallWaitingWrapper::PsCallWaitingStatus status,
+    const QList<unsigned char> &basicServiceGroupIds)
+{
+    DPRINT << ": IN";
+    DPRINT << ": IN status: " << status;
+    Q_UNUSED(basicServiceGroupIds);
+
+    PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    
+    if (PSetCallWaitingWrapper::StatusNotProvisioned == status && 
+        m_settingsWrapper->isFeatureCallWaitingDistiquishNotProvisionedEnabled()) {
+        DPRINT << ": not provisioned";
+        PsUiNotes::instance()->showGlobalNotificationDialog(hbTrId("txt_phone_info_request_not_completed"));
+    }
+    
+    else if (PSetCallWaitingWrapper::StatusActive == status) {
+        DPRINT << ": status active";
+        PsUiNotes::instance()->showGlobalNotificationDialog(
+            hbTrId("Call waiting active")); //txt_phone_dpopinfo_call_waiting_active 
+    }
+    else {
+        DPRINT << ": status not active";
+        PsUiNotes::instance()->showGlobalNotificationDialog(
+            hbTrId("Call waiting not active")); //txt_phone_dpopinfo_call_waiting_not_active      
+    }
+
+    DPRINT << ": OUT";   
+}
+
+/*!
+  PsUiWaitingNoteHandler::handleCallWaitingChanged
+ */
+void PsUiWaitingNoteHandler::handleCallWaitingChanged( 
+    PSetCallWaitingWrapper::PsCallWaitingCommand setting,
+    int result )
+{
+    DPRINT << ": IN";
+    PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    if (result) {
+        PsUiNotes::instance()->showGlobalNote(m_activeNoteId,
+        hbTrId("txt_phone_info_request_not_confirmed"), 
+            HbMessageBox::MessageTypeWarning);
+    } else {
+        switch (setting){
+            case PSetCallWaitingWrapper::ActivateCallWaiting:
+                 PsUiNotes::instance()->showGlobalNotificationDialog(
+                 hbTrId("txt_phone_info_call_waiting_activated"));
+             break;
+            case PSetCallWaitingWrapper::DeactivateCallWaiting:
+                 PsUiNotes::instance()->showGlobalNotificationDialog(
+                 hbTrId("txt_phone_info_call_waiting_deactivated")); 
+             break;
+            default: 
+                 PsUiNotes::instance()->showGlobalNotificationDialog(
+                 hbTrId("txt_phone_info_result_unknown"));
+             break;
+        }
+      }
+        
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiWaitingNoteHandler::handleCallWaitingRequesting
+ */
+void PsUiWaitingNoteHandler::handleCallWaitingRequesting( bool ongoing, bool interrupted )
+{
+    DPRINT << ": IN";
+    DPRINT << "ongoing:" << ongoing << ", interrupted:" << interrupted;
+   
+    if (ongoing) {
+        PsUiNotes::instance()->showGlobalProgressNote(m_activeNoteId, hbTrId("txt_common_info_requesting"));
+    }
+      
+    if (interrupted) {
+        PsUiNotes::instance()->cancelNote(m_activeNoteId);
+    }
+    
+     
+    DPRINT << ": OUT";
+}
+
+/*!
+  PsUiWaitingNoteHandler::handleCallWaitingError
+ */
+void PsUiWaitingNoteHandler::handleCallWaitingError( int error )
+{
+    DPRINT << ": IN";
+    DPRINT << "errorCode:" << error;
+    PsUiNotes::instance()->cancelNote(m_activeNoteId);     
+    PsUiNotes::instance()->showGlobalErrorNote(m_activeNoteId, error);
+
+    DPRINT << ": OUT";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/mocks/mock_psuilocalisation.cpp	Thu Jul 22 16:38:43 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 "psuilocalisation.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// PsUiLocalisation::PsUiLocalisation
+// -----------------------------------------------------------------------------
+//
+PsUiLocalisation::PsUiLocalisation( 
+        QObject * parent )
+    //:
+    //QObject( /*parent*/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiLocalisation::~PsUiLocalisation
+// -----------------------------------------------------------------------------
+//
+PsUiLocalisation::~PsUiLocalisation(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiLocalisation::installTranslator
+// -----------------------------------------------------------------------------
+//
+bool PsUiLocalisation::installTranslator( 
+        TranslationFileId translationFileId )
+    {
+    SMC_MOCK_METHOD1( bool, TranslationFileId, translationFileId )
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiLocalisation::removeTranslators
+// -----------------------------------------------------------------------------
+//
+void PsUiLocalisation::removeTranslators(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/mocks/mock_psuiutils.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,88 @@
+/*
+* 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 "psuiutils.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// PsUiUtils::errorCodeTextMapping
+// -----------------------------------------------------------------------------
+//
+bool PsUiUtils::errorCodeTextMapping( 
+        const int errorcode,
+        QString & errorText )
+    {
+    SMC_MOCK_METHOD2( bool, const int, errorcode, 
+        QString &, errorText )
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiSettingsWrapper::PsUiSettingsWrapper
+// -----------------------------------------------------------------------------
+//
+PsUiSettingsWrapper::PsUiSettingsWrapper( 
+        QObject * parent )
+    //:
+    //QObject( /*parent*/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiSettingsWrapper::~PsUiSettingsWrapper
+// -----------------------------------------------------------------------------
+//
+PsUiSettingsWrapper::~PsUiSettingsWrapper(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled
+// -----------------------------------------------------------------------------
+//
+bool PsUiSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled(  )
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiSettingsWrapper::isPhoneOffline
+// -----------------------------------------------------------------------------
+//
+bool PsUiSettingsWrapper::isPhoneOffline(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// PsUiSettingsWrapper::numberGroupingSupported
+// -----------------------------------------------------------------------------
+//
+bool PsUiSettingsWrapper::numberGroupingSupported(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/mocks/mock_qobject.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,557 @@
+/* 
+* 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 <QObject>
+#include <QVariant>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// QObjectUserData::~QObjectUserData
+// -----------------------------------------------------------------------------
+//
+QObjectUserData::~QObjectUserData(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObjectData::~QObjectData
+// -----------------------------------------------------------------------------
+//
+QObjectData::~QObjectData(  )
+    {
+    
+    }
+
+#ifdef QT3_SUPPORT
+// -----------------------------------------------------------------------------
+// QObject::QObject
+// -----------------------------------------------------------------------------
+//
+QT3_SUPPORT_CONSTRUCTOR QObject::QObject( 
+        QObject * parent,
+        const char * name )
+    {
+    
+    }
+#endif
+
+// -----------------------------------------------------------------------------
+// QObject::~QObject
+// -----------------------------------------------------------------------------
+//
+QObject::~QObject(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::event
+// -----------------------------------------------------------------------------
+//
+bool QObject::event( 
+        QEvent * )
+    {
+ //   SMC_MOCK_METHOD1( bool, QEvent, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool QObject::eventFilter( 
+        QObject *,
+        QEvent * )
+    {
+ //   SMC_MOCK_METHOD2( bool, QObject, *, 
+//        QEvent, * )
+    }
+
+#ifdef qdoc
+// -----------------------------------------------------------------------------
+// QObject::tr
+// -----------------------------------------------------------------------------
+//
+QString QObject::tr( 
+        const char * sourceText,
+        const char * comment,
+        int n )
+    {
+    SMC_MOCK_METHOD3( QString, const char *, sourceText, 
+        const char *, comment, 
+        int, n )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::trUtf8
+// -----------------------------------------------------------------------------
+//
+QString QObject::trUtf8( 
+        const char * sourceText,
+        const char * comment,
+        int n )
+    {
+    SMC_MOCK_METHOD3( QString, const char *, sourceText, 
+        const char *, comment, 
+        int, n )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::metaObject
+// -----------------------------------------------------------------------------
+//
+const QMetaObject * QObject::metaObject(  ) const
+    {
+ //   SMC_MOCK_METHOD0( const QMetaObject * )
+    }
+
+#endif
+#ifdef QT_NO_TRANSLATION
+// -----------------------------------------------------------------------------
+// QObject::tr
+// -----------------------------------------------------------------------------
+//
+QString QObject::tr( 
+        const char * sourceText,
+        const char * )
+    {
+    SMC_MOCK_METHOD2( QString, const char *, sourceText, 
+        const char, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::tr
+// -----------------------------------------------------------------------------
+//
+QString QObject::tr( 
+        const char * sourceText,
+        const char * )
+    {
+    SMC_MOCK_METHOD2( QString, const char *, sourceText, 
+        const char, * )
+    }
+#ifndef QT_NO_TEXTCODEC
+
+// -----------------------------------------------------------------------------
+// QObject::trUtf8
+// -----------------------------------------------------------------------------
+//
+QString QObject::trUtf8( 
+        const char * sourceText,
+        const char * )
+    {
+    SMC_MOCK_METHOD2( QString, const char *, sourceText, 
+        const char, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::trUtf8
+// -----------------------------------------------------------------------------
+//
+QString QObject::trUtf8( 
+        const char * sourceText,
+        const char * )
+    {
+    SMC_MOCK_METHOD2( QString, const char *, sourceText, 
+        const char, * )
+    }
+#endif
+#endif //QT_NO_TRANSLATION
+
+// -----------------------------------------------------------------------------
+// QObject::objectName
+// -----------------------------------------------------------------------------
+//
+QString QObject::objectName(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::setObjectName
+// -----------------------------------------------------------------------------
+//
+void QObject::setObjectName( 
+        const QString & name )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, name )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::blockSignals
+// -----------------------------------------------------------------------------
+//
+bool QObject::blockSignals( 
+        bool b )
+    {
+    SMC_MOCK_METHOD1( bool, bool, b )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::thread
+// -----------------------------------------------------------------------------
+//
+QThread * QObject::thread(  ) const
+    {
+//    SMC_MOCK_METHOD0( QThread * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::moveToThread
+// -----------------------------------------------------------------------------
+//
+void QObject::moveToThread( 
+        QThread * thread )
+    {
+ //   SMC_MOCK_METHOD1( void, QThread *, thread )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::startTimer
+// -----------------------------------------------------------------------------
+//
+int QObject::startTimer( 
+        int interval )
+    {
+    SMC_MOCK_METHOD1( int, int, interval )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::killTimer
+// -----------------------------------------------------------------------------
+//
+void QObject::killTimer( 
+        int id )
+    {
+    SMC_MOCK_METHOD1( void, int, id )
+    }
+
+#ifdef QT3_SUPPORT
+// -----------------------------------------------------------------------------
+// QObject::child
+// -----------------------------------------------------------------------------
+//
+QT3_SUPPORT QObject * QObject::child( 
+        const char * objName,
+        const char * inheritsClass,
+        bool recursiveSearch ) const
+    {
+    SMC_MOCK_METHOD3( QT3_SUPPORT QObject *, const char *, objName, 
+        const char *, inheritsClass, 
+        bool, recursiveSearch )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::queryList
+// -----------------------------------------------------------------------------
+//
+QT3_SUPPORT QObjectList QObject::queryList( 
+        const char * inheritsClass,
+        const char * objName,
+        bool regexpMatch,
+        bool recursiveSearch ) const
+    {
+    SMC_MOCK_METHOD4( QT3_SUPPORT QObjectList, const char *, inheritsClass, 
+        const char *, objName, 
+        bool, regexpMatch, 
+        bool, recursiveSearch )
+    }
+#endif
+
+// -----------------------------------------------------------------------------
+// QObject::setParent
+// -----------------------------------------------------------------------------
+//
+void QObject::setParent( 
+        QObject * )
+    {
+ //   SMC_MOCK_METHOD1( void, QObject, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::installEventFilter
+// -----------------------------------------------------------------------------
+//
+void QObject::installEventFilter( 
+        QObject * )
+    {
+ //   SMC_MOCK_METHOD1( void, QObject, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::removeEventFilter
+// -----------------------------------------------------------------------------
+//
+void QObject::removeEventFilter( 
+        QObject * )
+    {
+ //   SMC_MOCK_METHOD1( void, QObject, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::connect
+// -----------------------------------------------------------------------------
+//
+bool QObject::connect( 
+        const QObject * sender,
+        const char * signal,
+        const QObject * receiver,
+        const char * member,
+        Qt:: ConnectionType )
+    {
+//    SMC_MOCK_METHOD5( bool, const QObject *, sender, 
+//        const char *, signal, 
+//        const QObject *, receiver, 
+//        const char *, member, 
+//        Qt::, ConnectionType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::disconnect
+// -----------------------------------------------------------------------------
+//
+bool QObject::disconnect( 
+        const QObject * sender,
+        const char * signal,
+        const QObject * receiver,
+        const char * member )
+    {
+//    SMC_MOCK_METHOD4( bool, const QObject *, sender, 
+//        const char *, signal, 
+//        const QObject *, receiver, 
+//        const char *, member )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::dumpObjectTree
+// -----------------------------------------------------------------------------
+//
+void QObject::dumpObjectTree(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::dumpObjectInfo
+// -----------------------------------------------------------------------------
+//
+void QObject::dumpObjectInfo(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+#ifndef QT_NO_PROPERTIES
+// -----------------------------------------------------------------------------
+// QObject::setProperty
+// -----------------------------------------------------------------------------
+//
+bool QObject::setProperty( 
+        const char * name,
+        const QVariant & value )
+    {
+//    SMC_MOCK_METHOD2( bool, const char *, name, 
+//        const QVariant &, value )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::property
+// -----------------------------------------------------------------------------
+//
+QVariant QObject::property( 
+        const char * name ) const
+    {
+//    SMC_MOCK_METHOD1( QVariant, const char *, name )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::dynamicPropertyNames
+// -----------------------------------------------------------------------------
+//
+QList <QByteArray > QObject::dynamicPropertyNames(  ) const
+    {
+//    SMC_MOCK_METHOD0( QList <QByteArray > )
+    }
+#endif // QT_NO_PROPERTIES
+#ifndef QT_NO_USERDATA
+// -----------------------------------------------------------------------------
+// QObject::registerUserData
+// -----------------------------------------------------------------------------
+//
+uint QObject::registerUserData(  )
+    {
+    SMC_MOCK_METHOD0( uint )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::setUserData
+// -----------------------------------------------------------------------------
+//
+void QObject::setUserData( 
+        uint id,
+        QObjectUserData * data )
+    {
+//    SMC_MOCK_METHOD2( void, uint, id, 
+//        QObjectUserData *, data )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::userData
+// -----------------------------------------------------------------------------
+//
+QObjectUserData * QObject::userData( 
+        uint id ) const
+    {
+//    SMC_MOCK_METHOD1( QObjectUserData *, uint, id )
+    }
+#endif // QT_NO_USERDATA
+
+// -----------------------------------------------------------------------------
+// QObject::destroyed
+// -----------------------------------------------------------------------------
+//
+/*
+Q_SIGNALS : void QObject::destroyed( 
+        QObject * )
+    {
+    SMC_MOCK_METHOD1( Q_SIGNALS : void, QObject, * )
+    }*/
+
+
+// -----------------------------------------------------------------------------
+// QObject::deleteLater
+// -----------------------------------------------------------------------------
+//
+void QObject::deleteLater(  )
+    {
+  //  SMC_MOCK_METHOD0( Q_SLOTS : void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::sender
+// -----------------------------------------------------------------------------
+//
+QObject * QObject::sender(  ) const
+    {
+ //   SMC_MOCK_METHOD0( QObject * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::receivers
+// -----------------------------------------------------------------------------
+//
+int QObject::receivers( 
+        const char * signal ) const
+    {
+    SMC_MOCK_METHOD1( int, const char *, signal )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::timerEvent
+// -----------------------------------------------------------------------------
+//
+void QObject::timerEvent( 
+        QTimerEvent * )
+    {
+ //   SMC_MOCK_METHOD1( void, QTimerEvent, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::childEvent
+// -----------------------------------------------------------------------------
+//
+void QObject::childEvent( 
+        QChildEvent * )
+    {
+ //   SMC_MOCK_METHOD1( void, QChildEvent, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::customEvent
+// -----------------------------------------------------------------------------
+//
+void QObject::customEvent( 
+        QEvent * )
+    {
+ //   SMC_MOCK_METHOD1( void, QEvent, * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::connectNotify
+// -----------------------------------------------------------------------------
+//
+void QObject::connectNotify( 
+        const char * signal )
+    {
+ //   SMC_MOCK_METHOD1( void, const char *, signal )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::disconnectNotify
+// -----------------------------------------------------------------------------
+//
+void QObject::disconnectNotify( 
+        const char * signal )
+    {
+  //  SMC_MOCK_METHOD1( void, const char *, signal )
+    }
+
+
+// -----------------------------------------------------------------------------
+// QObject::QObject
+// -----------------------------------------------------------------------------
+//
+QObject::QObject( 
+        QObjectPrivate & dd,
+        QObject * parent )
+    {
+    
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/mocks/mock_qtranslator.cpp	Thu Jul 22 16:38:43 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/cellular/psuinotes/tsrc/mocks/mock_xqsettingskey.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,124 @@
+/* 
+* 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 "xqsettingskey.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQSettingsKey::XQSettingsKey
+// -----------------------------------------------------------------------------
+//
+XQSettingsKey::XQSettingsKey( 
+        XQSettingsKey::Target target,
+        long int uid,
+        unsigned long int key )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsKey::~XQSettingsKey
+// -----------------------------------------------------------------------------
+//
+XQSettingsKey::~XQSettingsKey(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsKey::target
+// -----------------------------------------------------------------------------
+//
+XQSettingsKey::Target XQSettingsKey::target(  ) const
+    {
+    
+    XQSettingsKey::Target variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsKey::uid
+// -----------------------------------------------------------------------------
+//
+long int XQSettingsKey::uid(  ) const
+    {
+    
+    return 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsKey::key
+// -----------------------------------------------------------------------------
+//
+unsigned long int XQSettingsKey::key(  ) const
+    {
+    
+    return 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQPublishAndSubscribeSettingsKey::XQPublishAndSubscribeSettingsKey
+// -----------------------------------------------------------------------------
+//
+XQPublishAndSubscribeSettingsKey::XQPublishAndSubscribeSettingsKey( 
+        long int categoryUid,
+        unsigned long int key ) : 
+        XQSettingsKey( XQSettingsKey::TargetPublishAndSubscribe, categoryUid, key )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQPublishAndSubscribeSettingsKey::~XQPublishAndSubscribeSettingsKey
+// -----------------------------------------------------------------------------
+//
+XQPublishAndSubscribeSettingsKey::~XQPublishAndSubscribeSettingsKey(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQCentralRepositorySettingsKey::XQCentralRepositorySettingsKey
+// -----------------------------------------------------------------------------
+//
+XQCentralRepositorySettingsKey::XQCentralRepositorySettingsKey( 
+        long int repositoryUid,
+        unsigned long int key ) : 
+        XQSettingsKey( XQSettingsKey::TargetCentralRepository, repositoryUid, key )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQCentralRepositorySettingsKey::~XQCentralRepositorySettingsKey
+// -----------------------------------------------------------------------------
+//
+XQCentralRepositorySettingsKey::~XQCentralRepositorySettingsKey(  )
+    {
+    
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/mocks/mock_xqsettingsmanager.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,108 @@
+/* 
+* 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 "xqsettingsmanager.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::XQSettingsManager
+// -----------------------------------------------------------------------------
+//
+XQSettingsManager::XQSettingsManager( 
+        QObject * parent )
+    : QObject( parent )
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::~XQSettingsManager
+// -----------------------------------------------------------------------------
+//
+XQSettingsManager::~XQSettingsManager(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::readItemValue
+// -----------------------------------------------------------------------------
+//
+QVariant XQSettingsManager::readItemValue( 
+        const XQSettingsKey & key,
+        XQSettingsManager::Type type )
+    {
+    SMC_MOCK_METHOD2( QVariant, XQSettingsKey &, key, XQSettingsManager::Type, type )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::writeItemValue
+// -----------------------------------------------------------------------------
+//
+bool XQSettingsManager::writeItemValue( 
+        const XQSettingsKey & key,
+        const QVariant & value )
+    {
+    SMC_MOCK_METHOD2( bool, XQSettingsKey &, key, QVariant &, value )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::startMonitoring
+// -----------------------------------------------------------------------------
+//
+bool XQSettingsManager::startMonitoring( 
+        const XQSettingsKey & key,
+        XQSettingsManager::Type type )
+    {
+    Q_UNUSED( key )
+    Q_UNUSED( type )
+    bool variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::stopMonitoring
+// -----------------------------------------------------------------------------
+//
+bool XQSettingsManager::stopMonitoring( 
+        const XQSettingsKey & key )
+    {
+    Q_UNUSED( key )
+    bool variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSettingsManager::error
+// -----------------------------------------------------------------------------
+//
+XQSettingsManager::Error XQSettingsManager::error(  ) const
+    {
+    
+    XQSettingsManager::Error variable;
+    return variable;
+    }
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/mocks/mock_xqsysinfo.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,222 @@
+/* 
+* 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 "xqsysinfo.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::XQSysInfo
+// -----------------------------------------------------------------------------
+//
+XQSysInfo::XQSysInfo( 
+        QObject * parent )
+    //:
+    //QObject( /*parent*/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::~XQSysInfo
+// -----------------------------------------------------------------------------
+//
+XQSysInfo::~XQSysInfo(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::currentLanguage
+// -----------------------------------------------------------------------------
+//
+XQSysInfo::Language XQSysInfo::currentLanguage(  ) const
+    {
+    
+    XQSysInfo::Language variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::imei
+// -----------------------------------------------------------------------------
+//
+QString XQSysInfo::imei(  ) const
+    {
+    
+    QString variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::model
+// -----------------------------------------------------------------------------
+//
+QString XQSysInfo::model(  ) const
+    {
+    
+    QString variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::manufacturer
+// -----------------------------------------------------------------------------
+//
+QString XQSysInfo::manufacturer(  ) const
+    {
+    
+    QString variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::softwareVersion
+// -----------------------------------------------------------------------------
+//
+QString XQSysInfo::softwareVersion(  ) const
+    {
+    
+    QString variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::batteryLevel
+// -----------------------------------------------------------------------------
+//
+uint XQSysInfo::batteryLevel(  ) const
+    {
+    
+    return 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::imsi
+// -----------------------------------------------------------------------------
+//
+QString XQSysInfo::imsi(  ) const
+    {
+    
+    QString variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::signalStrength
+// -----------------------------------------------------------------------------
+//
+int XQSysInfo::signalStrength(  ) const
+    {
+    
+    return 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::diskSpace
+// -----------------------------------------------------------------------------
+//
+qlonglong XQSysInfo::diskSpace( 
+        XQSysInfo::Drive drive ) const
+    {
+    Q_UNUSED( drive )
+    qlonglong variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::isDiskSpaceCritical
+// -----------------------------------------------------------------------------
+//
+bool XQSysInfo::isDiskSpaceCritical( 
+        XQSysInfo::Drive drive ) const
+    {
+    Q_UNUSED( drive )
+    bool variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::isNetwork
+// -----------------------------------------------------------------------------
+//
+bool XQSysInfo::isNetwork(  ) const
+    {
+    
+    bool variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::memory
+// -----------------------------------------------------------------------------
+//
+int XQSysInfo::memory(  ) const
+    {
+    
+    return 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::browserVersion
+// -----------------------------------------------------------------------------
+//
+QString XQSysInfo::browserVersion(  ) const
+    {
+    
+    QString variable;
+    return variable;
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::isSupported
+// -----------------------------------------------------------------------------
+//
+bool XQSysInfo::isSupported( 
+        int featureId )
+    {
+    SMC_MOCK_METHOD1( bool, int, featureId )
+    }
+
+
+// -----------------------------------------------------------------------------
+// XQSysInfo::error
+// -----------------------------------------------------------------------------
+//
+XQSysInfo::Error XQSysInfo::error(  ) const
+    {
+    
+    XQSysInfo::Error variable;
+    return variable;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/run_auto_tests_qt.bat	Thu Jul 22 16:38:43 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\*.cpp
+
+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 BUILD
+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
+    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/cellular/psuinotes/tsrc/ut_psuilocalisation/qtestmains60.h	Thu Jul 22 16:38:43 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/cellular/psuinotes/tsrc/ut_psuilocalisation/ut_psuilocalisation.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,132 @@
+/*
+* 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_psuilocalisation.h"
+#include "qtestmains60.h"
+#include <smcmockclassincludes.h>
+#define private public
+#include "psuilocalisation.h"
+
+void QCoreApplication::installTranslator(QTranslator * messageFile)
+{
+    SMC_MOCK_METHOD1( void, QTranslator *, messageFile)
+}
+
+/*!
+  UT_psuilocalisation::UT_psuilocalisation
+ */
+UT_psuilocalisation::UT_psuilocalisation() 
+{
+    
+}
+
+/*!
+  UT_psuilocalisation::~UT_psuilocalisation
+ */
+UT_psuilocalisation::~UT_psuilocalisation()
+{
+    
+}
+
+/*!
+  UT_psuilocalisation::init
+ */
+void UT_psuilocalisation::init()
+{
+    initialize();
+    
+    m_psuiLocalisation.reset(new PsUiLocalisation); 
+}
+
+/*!
+  UT_psuilocalisation::cleanup
+ */
+void UT_psuilocalisation::cleanup()
+{
+    reset();
+    delete m_psuiLocalisation.take(); 
+}
+
+/*!
+  UT_psuilocalisation::t_memleak
+ */
+void UT_psuilocalisation::t_memleak()
+{
+    
+}
+
+/*!
+  UT_psuilocalisation::t_installTranslator
+ */
+void UT_psuilocalisation::t_installTranslator()
+{
+    
+    // Test: successfull load  
+    expect("QTranslator::load").
+        returns(true);    
+    expect("QCoreApplication::installTranslator").times(1);
+    
+    m_psuiLocalisation->installTranslator(
+            PsUiLocalisation::TranslationFileCommon);
+    QVERIFY(m_psuiLocalisation->m_translators.count() == 1);
+    QVERIFY(verify());
+    
+    // Test: failing load  
+    expect("QTranslator::load").
+        returns(false);
+    expect("QCoreApplication::installTranslator").times(0);
+    m_psuiLocalisation->installTranslator(
+        PsUiLocalisation::TranslationFileCommon);
+    QVERIFY(m_psuiLocalisation->m_translators.count() == 1);
+    
+    // Test: Unknown enum value
+    QVERIFY(verify());
+    expect("QCoreApplication::installTranslator").times(0);
+    m_psuiLocalisation->installTranslator(
+            (PsUiLocalisation::TranslationFileId)2);
+    QVERIFY(m_psuiLocalisation->m_translators.count() == 1);
+    QVERIFY(verify());
+    
+    // Test: telephone_cp translator load 
+    expect("QTranslator::load").
+        returns(false);
+    expect("QCoreApplication::installTranslator").times(0);
+    m_psuiLocalisation->installTranslator(
+        PsUiLocalisation::TranslationFileTelephoneCp);
+    QVERIFY(verify());
+ 
+}
+
+/*!
+  UT_psuilocalisation::t_removeTranslators
+ */
+void UT_psuilocalisation::t_removeTranslators()
+{
+    expect("QTranslator::load").
+        returns(true);
+    
+    m_psuiLocalisation->installTranslator(
+        PsUiLocalisation::TranslationFileCommon); 
+    m_psuiLocalisation->installTranslator(
+        PsUiLocalisation::TranslationFileTelephoneCp);
+    
+    m_psuiLocalisation->removeTranslators(); 
+    QVERIFY(m_psuiLocalisation->m_translators.count() == 0);
+    QVERIFY(verify());
+}
+
+QTEST_MAIN_S60(UT_psuilocalisation)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuilocalisation/ut_psuilocalisation.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* 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_PSUILOCALISATION_H
+#define UT_PSUILOCALISATION_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class PsUiLocalisation; 
+
+class UT_psuilocalisation : public QObject, MockService
+{
+    Q_OBJECT
+
+public:    
+    UT_psuilocalisation();
+    ~UT_psuilocalisation();
+    
+private slots:
+    void init();
+    void cleanup();
+    void t_memleak();
+    void t_installTranslator();
+    void t_removeTranslators(); 
+ 
+private: 
+    QScopedPointer<PsUiLocalisation> m_psuiLocalisation; 
+    
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuilocalisation/ut_psuilocalisation.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,45 @@
+#
+# 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: 
+#
+
+CONFIG += qtestlib
+CONFIG += hb
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += . ../../src/
+INCLUDEPATH += . ../../inc/
+DEFINES += BUILD_PSUINOTES 
+    
+QT -= gui
+QT += testlib
+
+symbian: {
+  CONFIG += no_icon
+  INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+  INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+  LIBS += -lmocklib -lsymbianmock
+}
+
+# test code
+HEADERS += ut_psuilocalisation.h
+SOURCES += ut_psuilocalisation.cpp
+
+# code to be tested
+HEADERS += ../../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuilocalisation.h 
+           
+SOURCES += ../../src/psuilocalisation.cpp
+
+# mocks needed for testing
+SOURCES += ../mocks/mock_qtranslator.cpp 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuinotes/qtestmains60ui.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* 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
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+
+char *new_argv[3];
+HbMainWindow *mainWindow;
+#define QTEST_MAIN_S60UI(TestObject) \
+int main(int argc, char *argv[]) \
+{ \
+HbApplication 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; \
+QResource::registerResource("../hbcore.rcc"); \
+mainWindow = new HbMainWindow;\
+mainWindow->show(); \
+int ret = QTest::qExec(&tc, 3, new_argv); \
+delete mainWindow; \
+return ret; \
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuinotes/ut_psuinotes.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,244 @@
+/*
+* 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_psuinotes.h"
+#include "qtestmains60ui.h"
+#include <hbmainwindow.h>
+#include <HbDeviceMessageBox.h>
+#include <HbMessageBox.h>
+#include <hbnotificationdialog.h>
+#define private public
+#include "psuinotes.h"
+
+/*!
+  UT_PsUiNotes::UT_PsUiNotes
+ */
+UT_PsUiNotes::UT_PsUiNotes() 
+{
+    PsUiNotes::instance();
+}
+
+/*!
+  UT_PsUiNotes::~UT_PsUiNotes
+ */
+UT_PsUiNotes::~UT_PsUiNotes()
+{
+    //delete m_psui;
+}
+
+/*!
+  UT_PsUiNotes::timerEvent
+ */
+void UT_PsUiNotes::timerEvent( QTimerEvent* event )
+{
+    QString currentTest(QTest::currentTestFunction());
+    qDebug() << "timerEvent:" << currentTest;
+    
+    if (currentTest == "t_showGlobalErrorNote") {
+        verifyGlobalNote(wantedNoteText);
+    }
+    
+    if (m_noteid1) {
+        PsUiNotes::instance()->cancelNote(m_noteid1);
+        m_noteid1 = 0;
+    }
+    if (m_noteid2) {
+        PsUiNotes::instance()->cancelNote(m_noteid2);
+        m_noteid2 = 0;
+    }
+    if (m_noteid3) {
+        PsUiNotes::instance()->cancelNote(m_noteid3);
+        m_noteid3 = 0;
+    }
+    
+    if (visibleDialog()) {
+        visibleDialog()->close();
+        QTest::qWait(1);
+    }
+	
+}
+
+/*!
+  UT_PsUiNotes::visibleDialog
+ */
+HbDialog *UT_PsUiNotes::visibleDialog()
+{
+    QList<QGraphicsItem*> items = mainWindow->scene()->items();
+    foreach (QGraphicsItem* item, items) {
+        HbDialog *w = qobject_cast<HbDialog*>(item->parentWidget());
+        if (w && w->isVisible()) {
+            qDebug() << "visibleDialog: " << w->getStaticMetaObject().className() <<
+                    "contentWidget: " << w->contentWidget()->getStaticMetaObject().className();
+            return w;
+        }
+    }
+    
+    return 0;
+}
+
+/*!
+  UT_PsUiNotes::verifyGlobalNote
+ */
+void UT_PsUiNotes::verifyGlobalNote( const QString& noteText )
+{
+    qDebug() << "verifyGlobalNote:" << noteText;
+    HbDeviceMessageBox *note=0;
+    QObject* o=0;
+    QVERIFY(PsUiNotes::instance()->m_notesQueue->count());
+    QVERIFY(o = PsUiNotes::instance()->m_notesQueue->at(0));
+    QVERIFY(note = qobject_cast<HbDeviceMessageBox *>(o));
+    QCOMPARE(note->text(), noteText);
+    note->close();
+    QTest::qWait(1);
+}
+
+/*!
+  UT_PsUiNotes::init
+ */
+void UT_PsUiNotes::init()
+{
+    initialize();
+    timerid = startTimer(3000);
+    m_noteid1 = 0;
+    m_noteid2 = 0;
+    m_noteid3 = 0;
+}
+
+/*!
+  UT_PsUiNotes::cleanup
+ */
+void UT_PsUiNotes::cleanup()
+{
+    reset();
+    if (timerid) {
+        killTimer(timerid);
+        timerid = 0;
+    }
+}
+
+/*!
+  UT_PsUiNotes::t_memleak
+ */
+void UT_PsUiNotes::t_memleak()
+{
+    
+}
+
+/*!
+  UT_PsUiNotes::t_showNotificationDialog
+ */
+void UT_PsUiNotes::t_showNotificationDialog()
+{
+    PsUiNotes::instance()->showNotificationDialog("NotificationDialog");
+}
+
+/*!
+  UT_PsUiNotes::t_showProgressNote
+ */
+void UT_PsUiNotes::t_showProgressNote()
+{
+    PsUiNotes::instance()->showGlobalProgressNote(m_noteid1, "testshowProgressNote1");
+    PsUiNotes::instance()->showGlobalProgressNote(m_noteid2, "testshowProgressNote2");
+    QTest::qWait(5000);
+}
+
+/*!
+  UT_PsUiNotes::t_showGlobalProgressNote
+ */
+void UT_PsUiNotes::t_showGlobalProgressNote()
+{
+    PsUiNotes::instance()->showGlobalProgressNote(m_noteid1, "testshowGPN");
+    QTest::qWait(5000);
+    PsUiNotes::instance()->showGlobalProgressNote(m_noteid1,
+            hbTrId("txt_common_info_requesting"));
+    QTest::qWait(5000);
+}
+
+/*!
+  UT_PsUiNotes::t_showGlobalNote
+ */
+void UT_PsUiNotes::t_showGlobalNote()
+{
+    PsUiNotes::instance()->showGlobalNote(m_noteid1, "MessageTypeQuestion",HbMessageBox::MessageTypeQuestion );
+    PsUiNotes::instance()->showGlobalNote(m_noteid2, "MessageTypeInformation",HbMessageBox::MessageTypeInformation);
+    PsUiNotes::instance()->showGlobalNote(m_noteid3, "MessageTypeWarning",HbMessageBox::MessageTypeWarning );
+    
+}
+
+/*!
+  UT_PsUiNotes::t_showGlobalErrorNote
+ */
+void UT_PsUiNotes::t_showGlobalErrorNote()
+{
+    int errorcode = -1;
+    wantedNoteText = "";
+    expect("PsUiUtils::errorCodeTextMapping").with(errorcode,wantedNoteText).returns(true);
+    PsUiNotes::instance()->showGlobalErrorNote(m_noteid1, errorcode );
+    QVERIFY( verify() );
+
+}
+
+
+/*!
+  UT_PsUiNotes::t_showCallDivertDetails
+ */
+void UT_PsUiNotes::t_showCallDivertDetails()
+{
+    expect("PsUiSettingsWrapper::numberGroupingSupported").returns(QVariant(true));
+    PSCallDivertingStatus status;
+    status.iStatus = DivertingStatusActive;
+    status.iServiceGroup = ServiceGroupVoice;
+    status.iTimeout = 30;
+    QList<PSCallDivertingStatus*> statusList;
+    statusList.append(&status);
+    PsUiNotes::instance()->showCallDivertDetails(statusList);
+    QVERIFY( verify() );
+
+    expect("PsUiSettingsWrapper::numberGroupingSupported").returns(QVariant(false));
+    PsUiNotes::instance()->showCallDivertDetails(statusList);
+    QVERIFY( verify() );
+}
+
+/*!
+  UT_PsUiNotes::t_showPasswordQueryDialog
+ */
+void UT_PsUiNotes::t_showPasswordQueryDialog()
+{
+    QString queryTitle("Password query title");
+    QString password = "";
+    bool okPressed = false;
+    QRegExp regExpression("\\d{4}");
+    QRegExpValidator validator(regExpression, this);
+    PsUiNotes::instance()->showPasswordQueryDialog(
+        queryTitle, validator, 5);
+
+}
+
+/*!
+  UT_PsUiNotes::t_cancelNote
+ */
+void UT_PsUiNotes::t_cancelNote()
+{
+    PsUiNotes::instance()->cancelNote(m_noteid1);
+    PsUiNotes::instance()->showGlobalProgressNote(m_noteid1, "testcancelNote");
+    PsUiNotes::instance()->noteShowing();
+    PsUiNotes::instance()->cancelNote(m_noteid1);
+        
+    QTest::qWait(5000);
+}
+
+QTEST_MAIN_S60UI(UT_PsUiNotes)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuinotes/ut_psuinotes.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* 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_PSUINOTES_H
+#define UT_PSUINOTES_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include <etelmm.h>
+#include <psetcalldivertingwrapper.h>
+
+class HbDialog;
+
+class UT_PsUiNotes : public QObject, MockService
+{
+    Q_OBJECT
+
+public:    
+    UT_PsUiNotes();
+    ~UT_PsUiNotes();
+    
+private: // From QObject
+    void timerEvent( QTimerEvent* event );
+    
+private: // Tools
+    HbDialog *visibleDialog();
+    void verifyGlobalNote( const QString& noteText );
+    void appendAllEtelServices(QList<PSCallDivertingStatus*>& list);
+    void appendService(
+            QList<PSCallDivertingStatus*>& list, 
+            RMobilePhone::TMobileService service);
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_memleak();
+    
+    void t_showProgressNote();
+    void t_showGlobalProgressNote();
+    void t_showGlobalNote();
+    void t_showGlobalErrorNote();
+    void t_showCallDivertDetails();
+    void t_showPasswordQueryDialog();
+    void t_cancelNote();
+    void t_showNotificationDialog();
+
+private:
+    int m_noteid1;
+    int m_noteid2;
+    int m_noteid3;
+    int timerid;
+    QString wantedNoteText;
+
+};
+
+#endif // UT_PSUINOTES_H 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuinotes/ut_psuinotes.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,47 @@
+#
+# 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: 
+#
+
+
+CONFIG += hb qtestlib
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += . ../../src/
+INCLUDEPATH += . ../../inc/
+DEFINES += BUILD_PSUINOTES
+
+QT -= gui
+QT += testlib
+
+symbian: {
+  INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+  LIBS += -lmocklib -lsymbianmock
+}
+
+# test code
+HEADERS += ut_psuinotes.h
+SOURCES += ut_psuinotes.cpp
+
+# code to be tested
+HEADERS += ../../../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuinotes.h	 
+                   
+SOURCES += ../../src/psuinotes.cpp 
+
+# mocks needed for testing
+HEADERS += ../../../../phonesrv_plat/phone_settings_ui_notes_api/inc/psuilocalisation.h \
+		../../inc/psuiutils.h	
+
+SOURCES += ../mocks/mock_psuilocalisation.cpp \
+		../mocks/mock_psuiutils.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuiutils/qtestmains60.h	Thu Jul 22 16:38:43 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/cellular/psuinotes/tsrc/ut_psuiutils/ut_psuiutils.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,180 @@
+/*
+* 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_psuiutils.h"
+#include "qtestmains60.h"
+#include <gsmerror.h>
+#include <exterror.h>
+#include <etelmm.h>
+#include <btsapdomainpskeys.h>
+#define private public
+#include "psuiutils.h"
+
+/*!
+  UT_PsUiUtils::UT_PsUiUtils
+ */
+UT_PsUiUtils::UT_PsUiUtils() :
+    mWrapper(NULL)
+{
+}
+
+/*!
+  UT_PsUiUtils::~UT_PsUiUtils
+ */
+UT_PsUiUtils::~UT_PsUiUtils()
+{
+    delete mWrapper;
+}
+
+/*!
+  UT_PsUiUtils::init
+ */
+void UT_PsUiUtils::init()
+{
+    initialize();
+    
+    mWrapper = new PsUiSettingsWrapper();
+}
+
+/*!
+  UT_PsUiUtils::cleanup
+ */
+void UT_PsUiUtils::cleanup()
+{
+    reset();
+}
+
+/*!
+  UT_PsUiUtils::t_memleak
+ */
+void UT_PsUiUtils::t_memleak()
+{
+    
+}
+
+/*!
+  UT_PsUiUtils::t_errorCodeTextMapping
+ */
+void UT_PsUiUtils::t_errorCodeTextMapping()
+{
+    QString text = "";
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSSubscriptionViolation, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_barring_operation_not_successful"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSUnknownSubscriber, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSAbsentSubscriber, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSIllegalOperation, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSIllegalSubscriber, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSIllegalEquipment, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSCallBarred, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSDataMissing, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_not_allowed"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSIncompatibility, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_conflict_error"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSSystemFailure, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_result_unknown"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSUnexpectedDataValue, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_request_rejected"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSResourcesUnavailable, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_request_rejected"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSNegativePasswordCheck, text);
+    QCOMPARE( text, QString(
+            "Password error"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSPasswordRegistrationFailure, text);
+    QCOMPARE( text, QString(
+            "Password error"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSPasswordAttemptsViolation, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_barring_password_blocked"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSMSNoNetworkService, text);
+    QCOMPARE( text, QString(
+            "No network coverage"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmNoService, text);
+    QCOMPARE( text, QString(
+            "No network coverage"));
+    PsUiUtils::errorCodeTextMapping(KErrSsActivationDataLost, text);
+    QCOMPARE( text, QString(
+            "Check network services"));
+    PsUiUtils::errorCodeTextMapping(KErrGsmSSUnknownAlphabet, text);
+    QCOMPARE( text, QString("txt_phone_info_invalid_phone_number"));
+    
+    expect("XQSysInfo::isSupported").returns(false);
+    PsUiUtils::errorCodeTextMapping(KErrGsmOfflineOpNotAllowed, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_request_not_completed"));
+    QVERIFY( verify() );
+    
+    expect("XQSysInfo::isSupported").returns(true);
+    expect("XQSettingsManager::readItemValue").returns(QVariant(EBTSapConnected));
+    PsUiUtils::errorCodeTextMapping(KErrGsmOfflineOpNotAllowed, text);
+    QCOMPARE( text, QString(
+            "Operation not possible in SIM access profile mode"));
+    QVERIFY( verify() );
+    
+    expect("XQSysInfo::isSupported").returns(true);
+    expect("XQSettingsManager::readItemValue").returns(QVariant(EBTSapNotConnected));
+    PsUiUtils::errorCodeTextMapping(KErrGsmOfflineOpNotAllowed, text);
+    QCOMPARE( text, QString(
+            "Operation not possible in Off-line mode"));
+    
+    PsUiUtils::errorCodeTextMapping(-1, text);
+    QCOMPARE( text, QString(
+            "txt_phone_info_request_not_completed"));
+    
+    QVERIFY( verify() );
+        
+}
+
+/*!
+  UT_PsUiUtils::::t_isFeatureCallWaitingDistiquishNotProvisionedEnabled
+ */
+void UT_PsUiUtils::t_isFeatureCallWaitingDistiquishNotProvisionedEnabled()
+{
+    expect("XQSettingsManager::readItemValue").
+                returns(QVariant(1));
+    mWrapper->isFeatureCallWaitingDistiquishNotProvisionedEnabled();
+    QVERIFY( verify() );
+}
+
+/*!
+  UT_PsUiUtils::::t_isPhoneOffline
+ */
+void UT_PsUiUtils::t_isPhoneOffline()
+{
+    expect("XQSysInfo::isSupported");
+    mWrapper->isPhoneOffline();
+    QVERIFY( verify() );
+}
+
+QTEST_MAIN_S60(UT_PsUiUtils)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuiutils/ut_psuiutils.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* 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_PSUIUTILS_H
+#define UT_PSUIUTILS_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class PsUiSettingsWrapper;
+
+class UT_PsUiUtils : public QObject, MockService
+{
+    Q_OBJECT
+
+public:    
+    UT_PsUiUtils();
+    ~UT_PsUiUtils();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_memleak();
+    
+    void t_errorCodeTextMapping();
+    
+    void t_isFeatureCallWaitingDistiquishNotProvisionedEnabled();
+    void t_isPhoneOffline();
+    
+private:
+    PsUiSettingsWrapper *mWrapper;
+    
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/tsrc/ut_psuiutils/ut_psuiutils.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,53 @@
+#
+# 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: 
+#
+
+CONFIG += qtestlib
+CONFIG += hb
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += . ../../src/
+INCLUDEPATH += . ../../inc/
+DEFINES += BUILD_PSUINOTES \ 
+           XQSETTINGSMANAGER_NO_LIBRARY \
+           XQSYSINFO_NO_LIBRARY 
+
+QT -= gui
+QT += testlib
+
+symbian: {
+  CONFIG += no_icon
+  INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+  INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+  LIBS += -lmocklib -lsymbianmock
+}
+
+# test code
+HEADERS += ut_psuiutils.h
+SOURCES += ut_psuiutils.cpp
+
+# code to be tested
+HEADERS += ../../inc/psuiutils.h 
+SOURCES += ../../src/psuiutils.cpp
+
+#mocks needed for testing
+HEADERS +=  /epoc32/include/platform/mw/xqsettingskey.h \
+           /epoc32/include/platform/mw/xqsettingsmanager.h \
+           /epoc32/include/platform/mw/xqsysinfo.h
+
+SOURCES += ../mocks/mock_xqsettingskey.cpp \
+           ../mocks/mock_xqsettingsmanager.cpp \
+           ../mocks/mock_xqsysinfo.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/sssettings/xqbindings/sssettingswrapper/bwins/sssettingswrapperu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,17 @@
+EXPORTS
+	?qt_metacast@SsSettingsWrapper@@UAEPAXPBD@Z @ 1 NONAME ; void * SsSettingsWrapper::qt_metacast(char const *)
+	?metaObject@SsSettingsWrapper@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * SsSettingsWrapper::metaObject(void) const
+	??_ESsSettingsWrapper@@UAE@I@Z @ 3 NONAME ; SsSettingsWrapper::~SsSettingsWrapper(unsigned int)
+	??1SsSettingsWrapper@@UAE@XZ @ 4 NONAME ; SsSettingsWrapper::~SsSettingsWrapper(void)
+	?get@SsSettingsWrapper@@QAEHW4SsSettingsWrapperSettings@@AAH@Z @ 5 NONAME ; int SsSettingsWrapper::get(enum SsSettingsWrapperSettings, int &)
+	?staticMetaObject@SsSettingsWrapper@@2UQMetaObject@@B @ 6 NONAME ; struct QMetaObject const SsSettingsWrapper::staticMetaObject
+	?set@SsSettingsWrapper@@QAEHW4SsSettingsWrapperSettings@@H@Z @ 7 NONAME ; int SsSettingsWrapper::set(enum SsSettingsWrapperSettings, int)
+	?trUtf8@SsSettingsWrapper@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString SsSettingsWrapper::trUtf8(char const *, char const *)
+	?qt_metacall@SsSettingsWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int SsSettingsWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?phoneSettingChanged@SsSettingsWrapper@@IAEXW4SsSettingsWrapperSettings@@H@Z @ 10 NONAME ; void SsSettingsWrapper::phoneSettingChanged(enum SsSettingsWrapperSettings, int)
+	?tr@SsSettingsWrapper@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString SsSettingsWrapper::tr(char const *, char const *, int)
+	?tr@SsSettingsWrapper@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString SsSettingsWrapper::tr(char const *, char const *)
+	?trUtf8@SsSettingsWrapper@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString SsSettingsWrapper::trUtf8(char const *, char const *, int)
+	??0SsSettingsWrapper@@QAE@PAVQObject@@@Z @ 14 NONAME ; SsSettingsWrapper::SsSettingsWrapper(class QObject *)
+	?getStaticMetaObject@SsSettingsWrapper@@SAABUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const & SsSettingsWrapper::getStaticMetaObject(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/sssettings/xqbindings/sssettingswrapper/eabi/sssettingswrapperu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,17 @@
+EXPORTS
+	_ZN17SsSettingsWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+	_ZN17SsSettingsWrapper11qt_metacastEPKc @ 2 NONAME
+	_ZN17SsSettingsWrapper16staticMetaObjectE @ 3 NONAME DATA 16
+	_ZN17SsSettingsWrapper19getStaticMetaObjectEv @ 4 NONAME
+	_ZN17SsSettingsWrapper19phoneSettingChangedE25SsSettingsWrapperSettingsi @ 5 NONAME
+	_ZN17SsSettingsWrapper3getE25SsSettingsWrapperSettingsRi @ 6 NONAME
+	_ZN17SsSettingsWrapper3setE25SsSettingsWrapperSettingsi @ 7 NONAME
+	_ZN17SsSettingsWrapperC1EP7QObject @ 8 NONAME
+	_ZN17SsSettingsWrapperC2EP7QObject @ 9 NONAME
+	_ZN17SsSettingsWrapperD0Ev @ 10 NONAME
+	_ZN17SsSettingsWrapperD1Ev @ 11 NONAME
+	_ZN17SsSettingsWrapperD2Ev @ 12 NONAME
+	_ZNK17SsSettingsWrapper10metaObjectEv @ 13 NONAME
+	_ZTI17SsSettingsWrapper @ 14 NONAME
+	_ZTV17SsSettingsWrapper @ 15 NONAME
+
--- a/cellular/telephonysettings/src/PsetNetwork.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/src/PsetNetwork.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -332,6 +332,9 @@
 
                     iTempNetInfo.iId.iNetworkCode.Copy( nwNames.iNetworkId );
                     __PHSLOGSTRING1("[PHS]   CPsetNetwork::RunL: NetworkCode: %S", &iTempNetInfo.iId.iNetworkCode);
+                    
+                    iTempNetInfo.iStatus = (MPsetNetworkSelect::TNetworkStatus)nwNames.iStatus;
+                    __PHSLOGSTRING1("[PHS]   CPsetNetwork::RunL: Status: %d", &iTempNetInfo.iStatus);
 
                     iTempNetInfo.iLongName.Copy( nwNames.iLongName );
                     __PHSLOGSTRING1("[PHS]   CPsetNetwork::RunL: LongName: %S", &iTempNetInfo.iLongName);
@@ -343,6 +346,10 @@
                         {
                         iTempNetInfo.iAccess = ENetNetworkWCDMA;
                         }
+                    else if ( nwNames.iAccess == RMobilePhone::ENetworkAccessGsmAndUtran )
+                        {
+                        iTempNetInfo.iAccess = ENetNetworkGSMandWCDMA;
+                        }
                     else
                         {
                         iTempNetInfo.iAccess = ENetNetworkGSM;
--- a/cellular/telephonysettings/xqbindings/bwins/psetwrapperu.def	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-EXPORTS
-	?trUtf8@PSetCallBarringWrapper@@SA?AVQString@@PBD0H@Z @ 1 NONAME ; class QString PSetCallBarringWrapper::trUtf8(char const *, char const *, int)
-	?getAvailableNetworks@PSetNetworkWrapper@@QAEXXZ @ 2 NONAME ; void PSetNetworkWrapper::getAvailableNetworks(void)
-	?trUtf8@PSetWrapper@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString PSetWrapper::trUtf8(char const *, char const *)
-	?getStaticMetaObject@PSetWrapper@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & PSetWrapper::getStaticMetaObject(void)
-	?staticMetaObject@PSetCallWaitingWrapper@@2UQMetaObject@@B @ 5 NONAME ; struct QMetaObject const PSetCallWaitingWrapper::staticMetaObject
-	?staticMetaObject@PSetWrapper@@2UQMetaObject@@B @ 6 NONAME ; struct QMetaObject const PSetWrapper::staticMetaObject
-	?disableBarringRequestCompleted@PSetCallBarringWrapper@@IAEXHW4BarringType@1@W4BarringStatus@1@_N@Z @ 7 NONAME ; void PSetCallBarringWrapper::disableBarringRequestCompleted(int, enum PSetCallBarringWrapper::BarringType, enum PSetCallBarringWrapper::BarringStatus, bool)
-	??_EPSetWrapper@@UAE@I@Z @ 8 NONAME ; PSetWrapper::~PSetWrapper(unsigned int)
-	?trUtf8@PSetCallWaitingWrapper@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString PSetCallWaitingWrapper::trUtf8(char const *, char const *)
-	?validateDivertNumber@PSetCallDivertingWrapper@@ABEHABVTDesC16@@@Z @ 10 NONAME ; int PSetCallDivertingWrapper::validateDivertNumber(class TDesC16 const &) const
-	?qt_metacast@PSetNetworkWrapper@@UAEPAXPBD@Z @ 11 NONAME ; void * PSetNetworkWrapper::qt_metacast(char const *)
-	?metaObject@PSetWrapper@@UBEPBUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const * PSetWrapper::metaObject(void) const
-	?callDivertingWrapper@PSetWrapper@@QAEAAVPSetCallDivertingWrapper@@XZ @ 13 NONAME ; class PSetCallDivertingWrapper & PSetWrapper::callDivertingWrapper(void)
-	?getDefaultNumbers@PSetCallDivertingWrapper@@QAEXAAVQStringList@@@Z @ 14 NONAME ; void PSetCallDivertingWrapper::getDefaultNumbers(class QStringList &)
-	?getVoiceMailBoxNumber@PSetCallDivertingWrapper@@QAEXAAVQString@@@Z @ 15 NONAME ; void PSetCallDivertingWrapper::getVoiceMailBoxNumber(class QString &)
-	?getCallWaitingStatus@PSetCallWaitingWrapper@@QAEXXZ @ 16 NONAME ; void PSetCallWaitingWrapper::getCallWaitingStatus(void)
-	?tr@PSetCliWrapper@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString PSetCliWrapper::tr(char const *, char const *)
-	?cliInformation@PSetCliWrapper@@IAEXABW4PsCallLineIdentity@@@Z @ 18 NONAME ; void PSetCliWrapper::cliInformation(enum PsCallLineIdentity const &)
-	?handleDivertingError@PSetCallDivertingWrapper@@IAEXH@Z @ 19 NONAME ; void PSetCallDivertingWrapper::handleDivertingError(int)
-	?tr@PSetWrapper@@SA?AVQString@@PBD0H@Z @ 20 NONAME ; class QString PSetWrapper::tr(char const *, char const *, int)
-	?staticMetaObject@PSetCliWrapper@@2UQMetaObject@@B @ 21 NONAME ; struct QMetaObject const PSetCliWrapper::staticMetaObject
-	?cancelRequest@PSetNetworkWrapper@@QAEXXZ @ 22 NONAME ; void PSetNetworkWrapper::cancelRequest(void)
-	?qt_metacast@PSetCallBarringWrapper@@UAEPAXPBD@Z @ 23 NONAME ; void * PSetCallBarringWrapper::qt_metacast(char const *)
-	?staticMetaObject@PSetCallBarringWrapper@@2UQMetaObject@@B @ 24 NONAME ; struct QMetaObject const PSetCallBarringWrapper::staticMetaObject
-	?getClipMode@PSetCliWrapper@@QAEXXZ @ 25 NONAME ; void PSetCliWrapper::getClipMode(void)
-	??0PSetCallDivertingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 26 NONAME ; PSetCallDivertingWrapper::PSetCallDivertingWrapper(class CPsetContainer &, class QObject *)
-	?metaObject@PSetCliWrapper@@UBEPBUQMetaObject@@XZ @ 27 NONAME ; struct QMetaObject const * PSetCliWrapper::metaObject(void) const
-	?tr@PSetCallWaitingWrapper@@SA?AVQString@@PBD0@Z @ 28 NONAME ; class QString PSetCallWaitingWrapper::tr(char const *, char const *)
-	?qt_metacast@PSetCallDivertingWrapper@@UAEPAXPBD@Z @ 29 NONAME ; void * PSetCallDivertingWrapper::qt_metacast(char const *)
-	?getNetworkAccessMode@PSetNetworkWrapper@@QBEXXZ @ 30 NONAME ; void PSetNetworkWrapper::getNetworkAccessMode(void) const
-	??1PSetCallWaitingWrapper@@UAE@XZ @ 31 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(void)
-	?callWaitingWrapper@PSetWrapper@@QAEAAVPSetCallWaitingWrapper@@XZ @ 32 NONAME ; class PSetCallWaitingWrapper & PSetWrapper::callWaitingWrapper(void)
-	?handleCnapStatus@PSetCliWrapper@@IAEXH@Z @ 33 NONAME ; void PSetCliWrapper::handleCnapStatus(int)
-	?availableNetworksGot@PSetNetworkWrapper@@IAEXAAV?$QList@PAUNetworkInfo@PSetNetworkWrapper@@@@@Z @ 34 NONAME ; void PSetNetworkWrapper::availableNetworksGot(class QList<struct PSetNetworkWrapper::NetworkInfo *> &)
-	?handleCallWaitingChanged@PSetCallWaitingWrapper@@IAEXW4PsCallWaitingCommand@1@H@Z @ 35 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingChanged(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
-	?metaObject@PSetCallDivertingWrapper@@UBEPBUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const * PSetCallDivertingWrapper::metaObject(void) const
-	?cancelProcess@PSetCallDivertingWrapper@@QAEXXZ @ 37 NONAME ; void PSetCallDivertingWrapper::cancelProcess(void)
-	?networkWrapper@PSetWrapper@@QAEAAVPSetNetworkWrapper@@XZ @ 38 NONAME ; class PSetNetworkWrapper & PSetWrapper::networkWrapper(void)
-	?getColpMode@PSetCliWrapper@@QAEXXZ @ 39 NONAME ; void PSetCliWrapper::getColpMode(void)
-	?requestingSelectedNetwork@PSetNetworkWrapper@@IAEX_N@Z @ 40 NONAME ; void PSetNetworkWrapper::requestingSelectedNetwork(bool)
-	?metaObject@PSetCallBarringWrapper@@UBEPBUQMetaObject@@XZ @ 41 NONAME ; struct QMetaObject const * PSetCallBarringWrapper::metaObject(void) const
-	?qt_metacall@PSetNetworkWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 42 NONAME ; int PSetNetworkWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?handleDivertingChanged@PSetCallDivertingWrapper@@IAEXABVPSCallDivertingCommand@@_N@Z @ 43 NONAME ; void PSetCallDivertingWrapper::handleDivertingChanged(class PSCallDivertingCommand const &, bool)
-	?trUtf8@PSetCallWaitingWrapper@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString PSetCallWaitingWrapper::trUtf8(char const *, char const *, int)
-	?networkChanged@PSetNetworkWrapper@@IAEXAAUNetworkInfo@1@AAW4RegistrationStatus@1@@Z @ 45 NONAME ; void PSetNetworkWrapper::networkChanged(struct PSetNetworkWrapper::NetworkInfo &, enum PSetNetworkWrapper::RegistrationStatus &)
-	?cliWrapper@PSetWrapper@@QAEAAVPSetCliWrapper@@XZ @ 46 NONAME ; class PSetCliWrapper & PSetWrapper::cliWrapper(void)
-	?handleCliStatus@PSetCliWrapper@@IAEXPAEHABW4PsCallLineIdentity@@@Z @ 47 NONAME ; void PSetCliWrapper::handleCliStatus(unsigned char *, int, enum PsCallLineIdentity const &)
-	?getStaticMetaObject@PSetCallBarringWrapper@@SAABUQMetaObject@@XZ @ 48 NONAME ; struct QMetaObject const & PSetCallBarringWrapper::getStaticMetaObject(void)
-	?qt_metacall@PSetCallDivertingWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 49 NONAME ; int PSetCallDivertingWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@PSetCallDivertingWrapper@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString PSetCallDivertingWrapper::trUtf8(char const *, char const *, int)
-	?getNetworkSelectionMode@PSetNetworkWrapper@@QBE?AW4ErrorCode@1@AAW4NetworkSelectionMode@1@@Z @ 51 NONAME ; enum PSetNetworkWrapper::ErrorCode PSetNetworkWrapper::getNetworkSelectionMode(enum PSetNetworkWrapper::NetworkSelectionMode &) const
-	?tr@PSetNetworkWrapper@@SA?AVQString@@PBD0@Z @ 52 NONAME ; class QString PSetNetworkWrapper::tr(char const *, char const *)
-	?qt_metacast@PSetCliWrapper@@UAEPAXPBD@Z @ 53 NONAME ; void * PSetCliWrapper::qt_metacast(char const *)
-	?callBarringWrapper@PSetWrapper@@QAEAAVPSetCallBarringWrapper@@XZ @ 54 NONAME ; class PSetCallBarringWrapper & PSetWrapper::callBarringWrapper(void)
-	?staticMetaObject@PSetCallDivertingWrapper@@2UQMetaObject@@B @ 55 NONAME ; struct QMetaObject const PSetCallDivertingWrapper::staticMetaObject
-	??0PSetCliWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 56 NONAME ; PSetCliWrapper::PSetCliWrapper(class CPsetContainer &, class QObject *)
-	?trUtf8@PSetCliWrapper@@SA?AVQString@@PBD0@Z @ 57 NONAME ; class QString PSetCliWrapper::trUtf8(char const *, char const *)
-	??0PSetNetworkWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 58 NONAME ; PSetNetworkWrapper::PSetNetworkWrapper(class CPsetContainer &, class QObject *)
-	?tr@PSetCallBarringWrapper@@SA?AVQString@@PBD0H@Z @ 59 NONAME ; class QString PSetCallBarringWrapper::tr(char const *, char const *, int)
-	?qt_metacall@PSetCallWaitingWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 60 NONAME ; int PSetCallWaitingWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?networkAccessModeGot@PSetNetworkWrapper@@IAEXH@Z @ 61 NONAME ; void PSetNetworkWrapper::networkAccessModeGot(int)
-	?searchingNetworks@PSetNetworkWrapper@@IAEXAAW4RequestType@1@@Z @ 62 NONAME ; void PSetNetworkWrapper::searchingNetworks(enum PSetNetworkWrapper::RequestType &)
-	??_EPSetCallBarringWrapper@@UAE@I@Z @ 63 NONAME ; PSetCallBarringWrapper::~PSetCallBarringWrapper(unsigned int)
-	?trUtf8@PSetNetworkWrapper@@SA?AVQString@@PBD0@Z @ 64 NONAME ; class QString PSetNetworkWrapper::trUtf8(char const *, char const *)
-	?handleDivertingStatus@PSetCallDivertingWrapper@@IAEXAAV?$QList@PAVPSCallDivertingStatus@@@@_N@Z @ 65 NONAME ; void PSetCallDivertingWrapper::handleDivertingStatus(class QList<class PSCallDivertingStatus *> &, bool)
-	?getClirMode@PSetCliWrapper@@QAEXXZ @ 66 NONAME ; void PSetCliWrapper::getClirMode(void)
-	?getStaticMetaObject@PSetCliWrapper@@SAABUQMetaObject@@XZ @ 67 NONAME ; struct QMetaObject const & PSetCliWrapper::getStaticMetaObject(void)
-	??1PSetCallDivertingWrapper@@UAE@XZ @ 68 NONAME ; PSetCallDivertingWrapper::~PSetCallDivertingWrapper(void)
-	?selectNetwork@PSetNetworkWrapper@@QAEXABUNetworkInfo@1@@Z @ 69 NONAME ; void PSetNetworkWrapper::selectNetwork(struct PSetNetworkWrapper::NetworkInfo const &)
-	?qt_metacall@PSetWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 70 NONAME ; int PSetWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@PSetNetworkWrapper@@SA?AVQString@@PBD0H@Z @ 71 NONAME ; class QString PSetNetworkWrapper::trUtf8(char const *, char const *, int)
-	?trUtf8@PSetCallDivertingWrapper@@SA?AVQString@@PBD0@Z @ 72 NONAME ; class QString PSetCallDivertingWrapper::trUtf8(char const *, char const *)
-	?tr@PSetCallDivertingWrapper@@SA?AVQString@@PBD0H@Z @ 73 NONAME ; class QString PSetCallDivertingWrapper::tr(char const *, char const *, int)
-	?handleCliRequesting@PSetCliWrapper@@IAEX_N0@Z @ 74 NONAME ; void PSetCliWrapper::handleCliRequesting(bool, bool)
-	?handleCallWaitingError@PSetCallWaitingWrapper@@IAEXH@Z @ 75 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingError(int)
-	?enableBarringRequestCompleted@PSetCallBarringWrapper@@IAEXHW4BarringType@1@W4BarringStatus@1@_N@Z @ 76 NONAME ; void PSetCallBarringWrapper::enableBarringRequestCompleted(int, enum PSetCallBarringWrapper::BarringType, enum PSetCallBarringWrapper::BarringStatus, bool)
-	?getStaticMetaObject@PSetCallWaitingWrapper@@SAABUQMetaObject@@XZ @ 77 NONAME ; struct QMetaObject const & PSetCallWaitingWrapper::getStaticMetaObject(void)
-	?disableBarring@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@VQString@@@Z @ 78 NONAME ; void PSetCallBarringWrapper::disableBarring(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType, class QString)
-	?metaObject@PSetCallWaitingWrapper@@UBEPBUQMetaObject@@XZ @ 79 NONAME ; struct QMetaObject const * PSetCallWaitingWrapper::metaObject(void) const
-	?trUtf8@PSetWrapper@@SA?AVQString@@PBD0H@Z @ 80 NONAME ; class QString PSetWrapper::trUtf8(char const *, char const *, int)
-	?getCallDivertingStatus@PSetCallDivertingWrapper@@QAEXV?$QFlags@W4PsService@@@@W4PsCallDivertingCondition@@H@Z @ 81 NONAME ; void PSetCallDivertingWrapper::getCallDivertingStatus(class QFlags<enum PsService>, enum PsCallDivertingCondition, int)
-	?tr@PSetWrapper@@SA?AVQString@@PBD0@Z @ 82 NONAME ; class QString PSetWrapper::tr(char const *, char const *)
-	?setNetworkAccessMode@PSetNetworkWrapper@@QAEXW4NetworkAccessMode@1@@Z @ 83 NONAME ; void PSetNetworkWrapper::setNetworkAccessMode(enum PSetNetworkWrapper::NetworkAccessMode)
-	?setCallDiverting@PSetCallDivertingWrapper@@QAEHAAVPSCallDivertingCommand@@H@Z @ 84 NONAME ; int PSetCallDivertingWrapper::setCallDiverting(class PSCallDivertingCommand &, int)
-	??1PSetCliWrapper@@UAE@XZ @ 85 NONAME ; PSetCliWrapper::~PSetCliWrapper(void)
-	?getColrMode@PSetCliWrapper@@QAEXXZ @ 86 NONAME ; void PSetCliWrapper::getColrMode(void)
-	??0PSetWrapper@@QAE@PAVQObject@@@Z @ 87 NONAME ; PSetWrapper::PSetWrapper(class QObject *)
-	?qt_metacall@PSetCliWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 88 NONAME ; int PSetCliWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?handleCallWaitingRequesting@PSetCallWaitingWrapper@@IAEX_N0@Z @ 89 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingRequesting(bool, bool)
-	?trUtf8@PSetCallBarringWrapper@@SA?AVQString@@PBD0@Z @ 90 NONAME ; class QString PSetCallBarringWrapper::trUtf8(char const *, char const *)
-	?handleCliError@PSetCliWrapper@@IAEXH@Z @ 91 NONAME ; void PSetCliWrapper::handleCliError(int)
-	?cancelAll@PSetCliWrapper@@QAEXXZ @ 92 NONAME ; void PSetCliWrapper::cancelAll(void)
-	?barringStatus@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@@Z @ 93 NONAME ; void PSetCallBarringWrapper::barringStatus(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType)
-	??1PSetWrapper@@UAE@XZ @ 94 NONAME ; PSetWrapper::~PSetWrapper(void)
-	?handleCFRequesting@PSetCallDivertingWrapper@@IAEX_N0@Z @ 95 NONAME ; void PSetCallDivertingWrapper::handleCFRequesting(bool, bool)
-	?networkReqestFailed@PSetNetworkWrapper@@IAEXW4ErrorCode@1@W4RequestType@1@@Z @ 96 NONAME ; void PSetNetworkWrapper::networkReqestFailed(enum PSetNetworkWrapper::ErrorCode, enum PSetNetworkWrapper::RequestType)
-	?cancelProcess@PSetCallWaitingWrapper@@QAEXXZ @ 97 NONAME ; void PSetCallWaitingWrapper::cancelProcess(void)
-	?enableBarring@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@VQString@@@Z @ 98 NONAME ; void PSetCallBarringWrapper::enableBarring(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType, class QString)
-	?setNewDefaultNumber@PSetCallDivertingWrapper@@QAEXVQString@@@Z @ 99 NONAME ; void PSetCallDivertingWrapper::setNewDefaultNumber(class QString)
-	?findPlus@PSetCallDivertingWrapper@@ABE_NABVTDesC16@@@Z @ 100 NONAME ; bool PSetCallDivertingWrapper::findPlus(class TDesC16 const &) const
-	??0PSetCallBarringWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 101 NONAME ; PSetCallBarringWrapper::PSetCallBarringWrapper(class CPsetContainer &, class QObject *)
-	?barringStatusRequestCompleted@PSetCallBarringWrapper@@IAEXHABV?$QList@E@@W4BarringStatus@1@@Z @ 102 NONAME ; void PSetCallBarringWrapper::barringStatusRequestCompleted(int, class QList<unsigned char> const &, enum PSetCallBarringWrapper::BarringStatus)
-	??_EPSetNetworkWrapper@@UAE@I@Z @ 103 NONAME ; PSetNetworkWrapper::~PSetNetworkWrapper(unsigned int)
-	??_EPSetCallDivertingWrapper@@UAE@I@Z @ 104 NONAME ; PSetCallDivertingWrapper::~PSetCallDivertingWrapper(unsigned int)
-	?setCallWaiting@PSetCallWaitingWrapper@@QAEXW4PsCallWaitingCommand@1@H@Z @ 105 NONAME ; void PSetCallWaitingWrapper::setCallWaiting(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
-	??_EPSetCliWrapper@@UAE@I@Z @ 106 NONAME ; PSetCliWrapper::~PSetCliWrapper(unsigned int)
-	?tr@PSetCallBarringWrapper@@SA?AVQString@@PBD0@Z @ 107 NONAME ; class QString PSetCallBarringWrapper::tr(char const *, char const *)
-	?trUtf8@PSetCliWrapper@@SA?AVQString@@PBD0H@Z @ 108 NONAME ; class QString PSetCliWrapper::trUtf8(char const *, char const *, int)
-	?handleCallWaitingGetStatus@PSetCallWaitingWrapper@@IAEXW4PsCallWaitingStatus@1@ABV?$QList@E@@@Z @ 109 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingGetStatus(enum PSetCallWaitingWrapper::PsCallWaitingStatus, class QList<unsigned char> const &)
-	?tr@PSetCallDivertingWrapper@@SA?AVQString@@PBD0@Z @ 110 NONAME ; class QString PSetCallDivertingWrapper::tr(char const *, char const *)
-	?requestDone@PSetCallDivertingWrapper@@IAEXXZ @ 111 NONAME ; void PSetCallDivertingWrapper::requestDone(void)
-	?qt_metacast@PSetWrapper@@UAEPAXPBD@Z @ 112 NONAME ; void * PSetWrapper::qt_metacast(char const *)
-	??1PSetCallBarringWrapper@@UAE@XZ @ 113 NONAME ; PSetCallBarringWrapper::~PSetCallBarringWrapper(void)
-	?getCnap@PSetCliWrapper@@QAEXXZ @ 114 NONAME ; void PSetCliWrapper::getCnap(void)
-	?tr@PSetCliWrapper@@SA?AVQString@@PBD0H@Z @ 115 NONAME ; class QString PSetCliWrapper::tr(char const *, char const *, int)
-	?metaObject@PSetNetworkWrapper@@UBEPBUQMetaObject@@XZ @ 116 NONAME ; struct QMetaObject const * PSetNetworkWrapper::metaObject(void) const
-	?getStaticMetaObject@PSetCallDivertingWrapper@@SAABUQMetaObject@@XZ @ 117 NONAME ; struct QMetaObject const & PSetCallDivertingWrapper::getStaticMetaObject(void)
-	?tr@PSetNetworkWrapper@@SA?AVQString@@PBD0H@Z @ 118 NONAME ; class QString PSetNetworkWrapper::tr(char const *, char const *, int)
-	?staticMetaObject@PSetNetworkWrapper@@2UQMetaObject@@B @ 119 NONAME ; struct QMetaObject const PSetNetworkWrapper::staticMetaObject
-	?qt_metacast@PSetCallWaitingWrapper@@UAEPAXPBD@Z @ 120 NONAME ; void * PSetCallWaitingWrapper::qt_metacast(char const *)
-	??1PSetNetworkWrapper@@UAE@XZ @ 121 NONAME ; PSetNetworkWrapper::~PSetNetworkWrapper(void)
-	?tr@PSetCallWaitingWrapper@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString PSetCallWaitingWrapper::tr(char const *, char const *, int)
-	?qt_metacall@PSetCallBarringWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 123 NONAME ; int PSetCallBarringWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0PSetCallWaitingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 124 NONAME ; PSetCallWaitingWrapper::PSetCallWaitingWrapper(class CPsetContainer &, class QObject *)
-	??_EPSetCallWaitingWrapper@@UAE@I@Z @ 125 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(unsigned int)
-	?getStaticMetaObject@PSetNetworkWrapper@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & PSetNetworkWrapper::getStaticMetaObject(void)
-	?barringPasswordChangeRequestCompleted@PSetCallBarringWrapper@@IAEXH@Z @ 127 NONAME ; void PSetCallBarringWrapper::barringPasswordChangeRequestCompleted(int)
-	?changeBarringPassword@PSetCallBarringWrapper@@QAEXABVQString@@00@Z @ 128 NONAME ; void PSetCallBarringWrapper::changeBarringPassword(class QString const &, class QString const &, class QString const &)
-
--- a/cellular/telephonysettings/xqbindings/eabi/psetwrapperu.def	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-EXPORTS
-	_ZN11PSetWrapper10cliWrapperEv @ 1 NONAME
-	_ZN11PSetWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
-	_ZN11PSetWrapper11qt_metacastEPKc @ 3 NONAME
-	_ZN11PSetWrapper14networkWrapperEv @ 4 NONAME
-	_ZN11PSetWrapper16staticMetaObjectE @ 5 NONAME DATA 16
-	_ZN11PSetWrapper18callBarringWrapperEv @ 6 NONAME
-	_ZN11PSetWrapper18callWaitingWrapperEv @ 7 NONAME
-	_ZN11PSetWrapper19getStaticMetaObjectEv @ 8 NONAME
-	_ZN11PSetWrapper20callDivertingWrapperEv @ 9 NONAME
-	_ZN11PSetWrapperC1EP7QObject @ 10 NONAME
-	_ZN11PSetWrapperC2EP7QObject @ 11 NONAME
-	_ZN11PSetWrapperD0Ev @ 12 NONAME
-	_ZN11PSetWrapperD1Ev @ 13 NONAME
-	_ZN11PSetWrapperD2Ev @ 14 NONAME
-	_ZN14PSetCliWrapper11getClipModeEv @ 15 NONAME
-	_ZN14PSetCliWrapper11getClirModeEv @ 16 NONAME
-	_ZN14PSetCliWrapper11getColpModeEv @ 17 NONAME
-	_ZN14PSetCliWrapper11getColrModeEv @ 18 NONAME
-	_ZN14PSetCliWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 19 NONAME
-	_ZN14PSetCliWrapper11qt_metacastEPKc @ 20 NONAME
-	_ZN14PSetCliWrapper14cliInformationERK18PsCallLineIdentity @ 21 NONAME
-	_ZN14PSetCliWrapper14handleCliErrorEi @ 22 NONAME
-	_ZN14PSetCliWrapper15handleCliStatusEPhiRK18PsCallLineIdentity @ 23 NONAME
-	_ZN14PSetCliWrapper16handleCnapStatusEi @ 24 NONAME
-	_ZN14PSetCliWrapper16staticMetaObjectE @ 25 NONAME DATA 16
-	_ZN14PSetCliWrapper19getStaticMetaObjectEv @ 26 NONAME
-	_ZN14PSetCliWrapper19handleCliRequestingEbb @ 27 NONAME
-	_ZN14PSetCliWrapper7getCnapEv @ 28 NONAME
-	_ZN14PSetCliWrapper9cancelAllEv @ 29 NONAME
-	_ZN14PSetCliWrapperC1ER14CPsetContainerP7QObject @ 30 NONAME
-	_ZN14PSetCliWrapperC2ER14CPsetContainerP7QObject @ 31 NONAME
-	_ZN14PSetCliWrapperD0Ev @ 32 NONAME
-	_ZN14PSetCliWrapperD1Ev @ 33 NONAME
-	_ZN14PSetCliWrapperD2Ev @ 34 NONAME
-	_ZN18PSetNetworkWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 35 NONAME
-	_ZN18PSetNetworkWrapper11qt_metacastEPKc @ 36 NONAME
-	_ZN18PSetNetworkWrapper13cancelRequestEv @ 37 NONAME
-	_ZN18PSetNetworkWrapper13selectNetworkERKNS_11NetworkInfoE @ 38 NONAME
-	_ZN18PSetNetworkWrapper14networkChangedERNS_11NetworkInfoERNS_18RegistrationStatusE @ 39 NONAME
-	_ZN18PSetNetworkWrapper16staticMetaObjectE @ 40 NONAME DATA 16
-	_ZN18PSetNetworkWrapper17searchingNetworksERNS_11RequestTypeE @ 41 NONAME
-	_ZN18PSetNetworkWrapper19getStaticMetaObjectEv @ 42 NONAME
-	_ZN18PSetNetworkWrapper19networkReqestFailedENS_9ErrorCodeENS_11RequestTypeE @ 43 NONAME
-	_ZN18PSetNetworkWrapper20availableNetworksGotER5QListIPNS_11NetworkInfoEE @ 44 NONAME
-	_ZN18PSetNetworkWrapper20getAvailableNetworksEv @ 45 NONAME
-	_ZN18PSetNetworkWrapper20networkAccessModeGotEi @ 46 NONAME
-	_ZN18PSetNetworkWrapper20setNetworkAccessModeENS_17NetworkAccessModeE @ 47 NONAME
-	_ZN18PSetNetworkWrapper25requestingSelectedNetworkEb @ 48 NONAME
-	_ZN18PSetNetworkWrapperC1ER14CPsetContainerP7QObject @ 49 NONAME
-	_ZN18PSetNetworkWrapperC2ER14CPsetContainerP7QObject @ 50 NONAME
-	_ZN18PSetNetworkWrapperD0Ev @ 51 NONAME
-	_ZN18PSetNetworkWrapperD1Ev @ 52 NONAME
-	_ZN18PSetNetworkWrapperD2Ev @ 53 NONAME
-	_ZN22PSetCallBarringWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 54 NONAME
-	_ZN22PSetCallBarringWrapper11qt_metacastEPKc @ 55 NONAME
-	_ZN22PSetCallBarringWrapper13barringStatusE6QFlagsI9PsServiceENS_11BarringTypeE @ 56 NONAME
-	_ZN22PSetCallBarringWrapper13enableBarringE6QFlagsI9PsServiceENS_11BarringTypeE7QString @ 57 NONAME
-	_ZN22PSetCallBarringWrapper14disableBarringE6QFlagsI9PsServiceENS_11BarringTypeE7QString @ 58 NONAME
-	_ZN22PSetCallBarringWrapper16staticMetaObjectE @ 59 NONAME DATA 16
-	_ZN22PSetCallBarringWrapper19getStaticMetaObjectEv @ 60 NONAME
-	_ZN22PSetCallBarringWrapper29barringStatusRequestCompletedEiRK5QListIhENS_13BarringStatusE @ 61 NONAME
-	_ZN22PSetCallBarringWrapper29enableBarringRequestCompletedEiNS_11BarringTypeENS_13BarringStatusEb @ 62 NONAME
-	_ZN22PSetCallBarringWrapper30disableBarringRequestCompletedEiNS_11BarringTypeENS_13BarringStatusEb @ 63 NONAME
-	_ZN22PSetCallBarringWrapperC1ER14CPsetContainerP7QObject @ 64 NONAME
-	_ZN22PSetCallBarringWrapperC2ER14CPsetContainerP7QObject @ 65 NONAME
-	_ZN22PSetCallBarringWrapperD0Ev @ 66 NONAME
-	_ZN22PSetCallBarringWrapperD1Ev @ 67 NONAME
-	_ZN22PSetCallBarringWrapperD2Ev @ 68 NONAME
-	_ZN22PSetCallWaitingWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 69 NONAME
-	_ZN22PSetCallWaitingWrapper11qt_metacastEPKc @ 70 NONAME
-	_ZN22PSetCallWaitingWrapper13cancelProcessEv @ 71 NONAME
-	_ZN22PSetCallWaitingWrapper14setCallWaitingENS_20PsCallWaitingCommandEi @ 72 NONAME
-	_ZN22PSetCallWaitingWrapper16staticMetaObjectE @ 73 NONAME DATA 16
-	_ZN22PSetCallWaitingWrapper19getStaticMetaObjectEv @ 74 NONAME
-	_ZN22PSetCallWaitingWrapper20getCallWaitingStatusEv @ 75 NONAME
-	_ZN22PSetCallWaitingWrapper22handleCallWaitingErrorEi @ 76 NONAME
-	_ZN22PSetCallWaitingWrapper24handleCallWaitingChangedENS_20PsCallWaitingCommandEi @ 77 NONAME
-	_ZN22PSetCallWaitingWrapper26handleCallWaitingGetStatusENS_19PsCallWaitingStatusERK5QListIhE @ 78 NONAME
-	_ZN22PSetCallWaitingWrapper27handleCallWaitingRequestingEbb @ 79 NONAME
-	_ZN22PSetCallWaitingWrapperC1ER14CPsetContainerP7QObject @ 80 NONAME
-	_ZN22PSetCallWaitingWrapperC2ER14CPsetContainerP7QObject @ 81 NONAME
-	_ZN22PSetCallWaitingWrapperD0Ev @ 82 NONAME
-	_ZN22PSetCallWaitingWrapperD1Ev @ 83 NONAME
-	_ZN22PSetCallWaitingWrapperD2Ev @ 84 NONAME
-	_ZN24PSetCallDivertingWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 85 NONAME
-	_ZN24PSetCallDivertingWrapper11qt_metacastEPKc @ 86 NONAME
-	_ZN24PSetCallDivertingWrapper11requestDoneEv @ 87 NONAME
-	_ZN24PSetCallDivertingWrapper13cancelProcessEv @ 88 NONAME
-	_ZN24PSetCallDivertingWrapper16setCallDivertingER22PSCallDivertingCommandi @ 89 NONAME
-	_ZN24PSetCallDivertingWrapper16staticMetaObjectE @ 90 NONAME DATA 16
-	_ZN24PSetCallDivertingWrapper17getDefaultNumbersER11QStringList @ 91 NONAME
-	_ZN24PSetCallDivertingWrapper18handleCFRequestingEbb @ 92 NONAME
-	_ZN24PSetCallDivertingWrapper19getStaticMetaObjectEv @ 93 NONAME
-	_ZN24PSetCallDivertingWrapper19setNewDefaultNumberE7QString @ 94 NONAME
-	_ZN24PSetCallDivertingWrapper20handleDivertingErrorEi @ 95 NONAME
-	_ZN24PSetCallDivertingWrapper21getVoiceMailBoxNumberER7QString @ 96 NONAME
-	_ZN24PSetCallDivertingWrapper21handleDivertingStatusER5QListIP21PSCallDivertingStatusEb @ 97 NONAME
-	_ZN24PSetCallDivertingWrapper22getCallDivertingStatusE6QFlagsI9PsServiceE24PsCallDivertingConditioni @ 98 NONAME
-	_ZN24PSetCallDivertingWrapper22handleDivertingChangedERK22PSCallDivertingCommandb @ 99 NONAME
-	_ZN24PSetCallDivertingWrapperC1ER14CPsetContainerP7QObject @ 100 NONAME
-	_ZN24PSetCallDivertingWrapperC2ER14CPsetContainerP7QObject @ 101 NONAME
-	_ZN24PSetCallDivertingWrapperD0Ev @ 102 NONAME
-	_ZN24PSetCallDivertingWrapperD1Ev @ 103 NONAME
-	_ZN24PSetCallDivertingWrapperD2Ev @ 104 NONAME
-	_ZNK11PSetWrapper10metaObjectEv @ 105 NONAME
-	_ZNK14PSetCliWrapper10metaObjectEv @ 106 NONAME
-	_ZNK18PSetNetworkWrapper10metaObjectEv @ 107 NONAME
-	_ZNK18PSetNetworkWrapper20getNetworkAccessModeEv @ 108 NONAME
-	_ZNK18PSetNetworkWrapper23getNetworkSelectionModeERNS_20NetworkSelectionModeE @ 109 NONAME
-	_ZNK22PSetCallBarringWrapper10metaObjectEv @ 110 NONAME
-	_ZNK22PSetCallWaitingWrapper10metaObjectEv @ 111 NONAME
-	_ZNK24PSetCallDivertingWrapper10metaObjectEv @ 112 NONAME
-	_ZNK24PSetCallDivertingWrapper20validateDivertNumberERK7TDesC16 @ 113 NONAME
-	_ZNK24PSetCallDivertingWrapper8findPlusERK7TDesC16 @ 114 NONAME
-	_ZTI11PSetWrapper @ 115 NONAME
-	_ZTI14PSetCliWrapper @ 116 NONAME
-	_ZTI18PSetNetworkWrapper @ 117 NONAME
-	_ZTI22PSetCallBarringWrapper @ 118 NONAME
-	_ZTI22PSetCallWaitingWrapper @ 119 NONAME
-	_ZTI24PSetCallDivertingWrapper @ 120 NONAME
-	_ZTV11PSetWrapper @ 121 NONAME
-	_ZTV14PSetCliWrapper @ 122 NONAME
-	_ZTV18PSetNetworkWrapper @ 123 NONAME
-	_ZTV22PSetCallBarringWrapper @ 124 NONAME
-	_ZTV22PSetCallWaitingWrapper @ 125 NONAME
-	_ZTV24PSetCallDivertingWrapper @ 126 NONAME
-	_ZN22PSetCallBarringWrapper21changeBarringPasswordERK7QStringS2_S2_ @ 127 NONAME
-	_ZN22PSetCallBarringWrapper37barringPasswordChangeRequestCompletedEi @ 128 NONAME
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/bwins/psetwrapperu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,134 @@
+EXPORTS
+	?trUtf8@PSetCallBarringWrapper@@SA?AVQString@@PBD0H@Z @ 1 NONAME ; class QString PSetCallBarringWrapper::trUtf8(char const *, char const *, int)
+	?getAvailableNetworks@PSetNetworkWrapper@@QAEXXZ @ 2 NONAME ; void PSetNetworkWrapper::getAvailableNetworks(void)
+	?staticMetaObject@PSetCallWaitingWrapper@@2UQMetaObject@@B @ 3 NONAME ; struct QMetaObject const PSetCallWaitingWrapper::staticMetaObject
+	?disableBarringRequestCompleted@PSetCallBarringWrapper@@IAEXHW4BarringType@1@W4BarringStatus@1@_N@Z @ 4 NONAME ; void PSetCallBarringWrapper::disableBarringRequestCompleted(int, enum PSetCallBarringWrapper::BarringType, enum PSetCallBarringWrapper::BarringStatus, bool)
+	??_EPSetWrapper@@UAE@I@Z @ 5 NONAME ; PSetWrapper::~PSetWrapper(unsigned int)
+	?trUtf8@PSetCallWaitingWrapper@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString PSetCallWaitingWrapper::trUtf8(char const *, char const *)
+	?validateDivertNumber@PSetCallDivertingWrapper@@ABEHABVTDesC16@@@Z @ 7 NONAME ; int PSetCallDivertingWrapper::validateDivertNumber(class TDesC16 const &) const
+	?qt_metacast@PSetNetworkWrapper@@UAEPAXPBD@Z @ 8 NONAME ; void * PSetNetworkWrapper::qt_metacast(char const *)
+	?isManualNetworkSelectionSupported@PSetNetworkWrapper@@QBE_NXZ @ 9 NONAME ; bool PSetNetworkWrapper::isManualNetworkSelectionSupported(void) const
+	?callDivertingWrapper@PSetWrapper@@QAEAAVPSetCallDivertingWrapper@@XZ @ 10 NONAME ; class PSetCallDivertingWrapper & PSetWrapper::callDivertingWrapper(void)
+	?cliInformation@PSetCliWrapper@@IAEXABW4PsCallLineIdentity@@@Z @ 11 NONAME ; void PSetCliWrapper::cliInformation(enum PsCallLineIdentity const &)
+	?handleDivertingError@PSetCallDivertingWrapper@@IAEXH@Z @ 12 NONAME ; void PSetCallDivertingWrapper::handleDivertingError(int)
+	?cancelRequest@PSetNetworkWrapper@@QAEXXZ @ 13 NONAME ; void PSetNetworkWrapper::cancelRequest(void)
+	?qt_metacast@PSetCallBarringWrapper@@UAEPAXPBD@Z @ 14 NONAME ; void * PSetCallBarringWrapper::qt_metacast(char const *)
+	?staticMetaObject@PSetCallBarringWrapper@@2UQMetaObject@@B @ 15 NONAME ; struct QMetaObject const PSetCallBarringWrapper::staticMetaObject
+	??0PSetCallDivertingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 16 NONAME ; PSetCallDivertingWrapper::PSetCallDivertingWrapper(class CPsetContainer &, class QObject *)
+	?metaObject@PSetCliWrapper@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * PSetCliWrapper::metaObject(void) const
+	?tr@PSetCallWaitingWrapper@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString PSetCallWaitingWrapper::tr(char const *, char const *)
+	?getNetworkAccessMode@PSetNetworkWrapper@@QBEXXZ @ 19 NONAME ; void PSetNetworkWrapper::getNetworkAccessMode(void) const
+	?callWaitingWrapper@PSetWrapper@@QAEAAVPSetCallWaitingWrapper@@XZ @ 20 NONAME ; class PSetCallWaitingWrapper & PSetWrapper::callWaitingWrapper(void)
+	?handleCnapStatus@PSetCliWrapper@@IAEXH@Z @ 21 NONAME ; void PSetCliWrapper::handleCnapStatus(int)
+	?availableNetworksGot@PSetNetworkWrapper@@IAEXAAV?$QList@PAUNetworkInfo@PSetNetworkWrapper@@@@@Z @ 22 NONAME ; void PSetNetworkWrapper::availableNetworksGot(class QList<struct PSetNetworkWrapper::NetworkInfo *> &)
+	?handleCallWaitingChanged@PSetCallWaitingWrapper@@IAEXW4PsCallWaitingCommand@1@H@Z @ 23 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingChanged(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
+	?metaObject@PSetCallDivertingWrapper@@UBEPBUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const * PSetCallDivertingWrapper::metaObject(void) const
+	?cancelProcess@PSetCallDivertingWrapper@@QAEXXZ @ 25 NONAME ; void PSetCallDivertingWrapper::cancelProcess(void)
+	?getCPsetCallDiverting@PSetCallDivertingWrapper@@QBEAAVCPsetCallDiverting@@XZ @ 26 NONAME ; class CPsetCallDiverting & PSetCallDivertingWrapper::getCPsetCallDiverting(void) const
+	?trUtf8@PSetCallWaitingWrapper@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString PSetCallWaitingWrapper::trUtf8(char const *, char const *, int)
+	?networkChanged@PSetNetworkWrapper@@IAEXAAUNetworkInfo@1@AAW4RegistrationStatus@1@@Z @ 28 NONAME ; void PSetNetworkWrapper::networkChanged(struct PSetNetworkWrapper::NetworkInfo &, enum PSetNetworkWrapper::RegistrationStatus &)
+	?trUtf8@PSetCallDivertingWrapper@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString PSetCallDivertingWrapper::trUtf8(char const *, char const *, int)
+	?qt_metacast@PSetCliWrapper@@UAEPAXPBD@Z @ 30 NONAME ; void * PSetCliWrapper::qt_metacast(char const *)
+	?callBarringWrapper@PSetWrapper@@QAEAAVPSetCallBarringWrapper@@XZ @ 31 NONAME ; class PSetCallBarringWrapper & PSetWrapper::callBarringWrapper(void)
+	?tr@PSetCallBarringWrapper@@SA?AVQString@@PBD0H@Z @ 32 NONAME ; class QString PSetCallBarringWrapper::tr(char const *, char const *, int)
+	?networkAccessModeGot@PSetNetworkWrapper@@IAEXH@Z @ 33 NONAME ; void PSetNetworkWrapper::networkAccessModeGot(int)
+	??_EPSetCallBarringWrapper@@UAE@I@Z @ 34 NONAME ; PSetCallBarringWrapper::~PSetCallBarringWrapper(unsigned int)
+	?trUtf8@PSetNetworkWrapper@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString PSetNetworkWrapper::trUtf8(char const *, char const *)
+	?getClirMode@PSetCliWrapper@@QAEXXZ @ 36 NONAME ; void PSetCliWrapper::getClirMode(void)
+	?qt_metacall@PSetWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 37 NONAME ; int PSetWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@PSetNetworkWrapper@@SA?AVQString@@PBD0H@Z @ 38 NONAME ; class QString PSetNetworkWrapper::trUtf8(char const *, char const *, int)
+	?trUtf8@PSetCallDivertingWrapper@@SA?AVQString@@PBD0@Z @ 39 NONAME ; class QString PSetCallDivertingWrapper::trUtf8(char const *, char const *)
+	?tr@PSetCallDivertingWrapper@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString PSetCallDivertingWrapper::tr(char const *, char const *, int)
+	?handleCallWaitingError@PSetCallWaitingWrapper@@IAEXH@Z @ 41 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingError(int)
+	?getStaticMetaObject@PSetCallWaitingWrapper@@SAABUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const & PSetCallWaitingWrapper::getStaticMetaObject(void)
+	?disableBarring@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@VQString@@@Z @ 43 NONAME ; void PSetCallBarringWrapper::disableBarring(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType, class QString)
+	?tr@PSetWrapper@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString PSetWrapper::tr(char const *, char const *)
+	??1PSetCliWrapper@@UAE@XZ @ 45 NONAME ; PSetCliWrapper::~PSetCliWrapper(void)
+	?getColrMode@PSetCliWrapper@@QAEXXZ @ 46 NONAME ; void PSetCliWrapper::getColrMode(void)
+	?qt_metacall@PSetCliWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 47 NONAME ; int PSetCliWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?handleCallWaitingRequesting@PSetCallWaitingWrapper@@IAEX_N0@Z @ 48 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingRequesting(bool, bool)
+	?trUtf8@PSetCallBarringWrapper@@SA?AVQString@@PBD0@Z @ 49 NONAME ; class QString PSetCallBarringWrapper::trUtf8(char const *, char const *)
+	?barringStatus@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@@Z @ 50 NONAME ; void PSetCallBarringWrapper::barringStatus(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType)
+	??1PSetWrapper@@UAE@XZ @ 51 NONAME ; PSetWrapper::~PSetWrapper(void)
+	?cancelProcess@PSetCallWaitingWrapper@@QAEXXZ @ 52 NONAME ; void PSetCallWaitingWrapper::cancelProcess(void)
+	?findPlus@PSetCallDivertingWrapper@@ABE_NABVTDesC16@@@Z @ 53 NONAME ; bool PSetCallDivertingWrapper::findPlus(class TDesC16 const &) const
+	??_EPSetCallDivertingWrapper@@UAE@I@Z @ 54 NONAME ; PSetCallDivertingWrapper::~PSetCallDivertingWrapper(unsigned int)
+	?setCallWaiting@PSetCallWaitingWrapper@@QAEXW4PsCallWaitingCommand@1@H@Z @ 55 NONAME ; void PSetCallWaitingWrapper::setCallWaiting(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
+	??_EPSetCliWrapper@@UAE@I@Z @ 56 NONAME ; PSetCliWrapper::~PSetCliWrapper(unsigned int)
+	?tr@PSetCallBarringWrapper@@SA?AVQString@@PBD0@Z @ 57 NONAME ; class QString PSetCallBarringWrapper::tr(char const *, char const *)
+	?trUtf8@PSetCliWrapper@@SA?AVQString@@PBD0H@Z @ 58 NONAME ; class QString PSetCliWrapper::trUtf8(char const *, char const *, int)
+	?handleCallWaitingGetStatus@PSetCallWaitingWrapper@@IAEXW4PsCallWaitingStatus@1@ABV?$QList@E@@@Z @ 59 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingGetStatus(enum PSetCallWaitingWrapper::PsCallWaitingStatus, class QList<unsigned char> const &)
+	?requestDone@PSetCallDivertingWrapper@@IAEXXZ @ 60 NONAME ; void PSetCallDivertingWrapper::requestDone(void)
+	?qt_metacast@PSetWrapper@@UAEPAXPBD@Z @ 61 NONAME ; void * PSetWrapper::qt_metacast(char const *)
+	?tr@PSetCliWrapper@@SA?AVQString@@PBD0H@Z @ 62 NONAME ; class QString PSetCliWrapper::tr(char const *, char const *, int)
+	?tr@PSetNetworkWrapper@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString PSetNetworkWrapper::tr(char const *, char const *, int)
+	?qt_metacast@PSetCallWaitingWrapper@@UAEPAXPBD@Z @ 64 NONAME ; void * PSetCallWaitingWrapper::qt_metacast(char const *)
+	?tr@PSetCallWaitingWrapper@@SA?AVQString@@PBD0H@Z @ 65 NONAME ; class QString PSetCallWaitingWrapper::tr(char const *, char const *, int)
+	?getStaticMetaObject@PSetNetworkWrapper@@SAABUQMetaObject@@XZ @ 66 NONAME ; struct QMetaObject const & PSetNetworkWrapper::getStaticMetaObject(void)
+	?trUtf8@PSetWrapper@@SA?AVQString@@PBD0@Z @ 67 NONAME ; class QString PSetWrapper::trUtf8(char const *, char const *)
+	?getStaticMetaObject@PSetWrapper@@SAABUQMetaObject@@XZ @ 68 NONAME ; struct QMetaObject const & PSetWrapper::getStaticMetaObject(void)
+	?staticMetaObject@PSetWrapper@@2UQMetaObject@@B @ 69 NONAME ; struct QMetaObject const PSetWrapper::staticMetaObject
+	?metaObject@PSetWrapper@@UBEPBUQMetaObject@@XZ @ 70 NONAME ; struct QMetaObject const * PSetWrapper::metaObject(void) const
+	?getDefaultNumbers@PSetCallDivertingWrapper@@QAEXAAVQStringList@@@Z @ 71 NONAME ; void PSetCallDivertingWrapper::getDefaultNumbers(class QStringList &)
+	?getCallWaitingStatus@PSetCallWaitingWrapper@@QAEXXZ @ 72 NONAME ; void PSetCallWaitingWrapper::getCallWaitingStatus(void)
+	?tr@PSetCliWrapper@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString PSetCliWrapper::tr(char const *, char const *)
+	?staticMetaObject@PSetCliWrapper@@2UQMetaObject@@B @ 74 NONAME ; struct QMetaObject const PSetCliWrapper::staticMetaObject
+	?tr@PSetWrapper@@SA?AVQString@@PBD0H@Z @ 75 NONAME ; class QString PSetWrapper::tr(char const *, char const *, int)
+	?getClipMode@PSetCliWrapper@@QAEXXZ @ 76 NONAME ; void PSetCliWrapper::getClipMode(void)
+	??1PSetCallWaitingWrapper@@UAE@XZ @ 77 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(void)
+	?qt_metacast@PSetCallDivertingWrapper@@UAEPAXPBD@Z @ 78 NONAME ; void * PSetCallDivertingWrapper::qt_metacast(char const *)
+	?barringPasswordChangeRequestCompleted@PSetCallBarringWrapper@@IAEXH@Z @ 79 NONAME ; void PSetCallBarringWrapper::barringPasswordChangeRequestCompleted(int)
+	?networkWrapper@PSetWrapper@@QAEAAVPSetNetworkWrapper@@XZ @ 80 NONAME ; class PSetNetworkWrapper & PSetWrapper::networkWrapper(void)
+	?getColpMode@PSetCliWrapper@@QAEXXZ @ 81 NONAME ; void PSetCliWrapper::getColpMode(void)
+	?metaObject@PSetCallBarringWrapper@@UBEPBUQMetaObject@@XZ @ 82 NONAME ; struct QMetaObject const * PSetCallBarringWrapper::metaObject(void) const
+	?requestingSelectedNetwork@PSetNetworkWrapper@@IAEX_N@Z @ 83 NONAME ; void PSetNetworkWrapper::requestingSelectedNetwork(bool)
+	?queryVoiceMailBoxNumber@PSetCallDivertingWrapper@@QAEHAAVQString@@W4PsService@@@Z @ 84 NONAME ; int PSetCallDivertingWrapper::queryVoiceMailBoxNumber(class QString &, enum PsService)
+	?qt_metacall@PSetNetworkWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 85 NONAME ; int PSetNetworkWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?handleDivertingChanged@PSetCallDivertingWrapper@@IAEXABVPSCallDivertingCommand@@_N@Z @ 86 NONAME ; void PSetCallDivertingWrapper::handleDivertingChanged(class PSCallDivertingCommand const &, bool)
+	?cliWrapper@PSetWrapper@@QAEAAVPSetCliWrapper@@XZ @ 87 NONAME ; class PSetCliWrapper & PSetWrapper::cliWrapper(void)
+	?handleCliStatus@PSetCliWrapper@@IAEXPAEHABW4PsCallLineIdentity@@@Z @ 88 NONAME ; void PSetCliWrapper::handleCliStatus(unsigned char *, int, enum PsCallLineIdentity const &)
+	?getStaticMetaObject@PSetCallBarringWrapper@@SAABUQMetaObject@@XZ @ 89 NONAME ; struct QMetaObject const & PSetCallBarringWrapper::getStaticMetaObject(void)
+	?qt_metacall@PSetCallDivertingWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 90 NONAME ; int PSetCallDivertingWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?changeBarringPassword@PSetCallBarringWrapper@@QAEXABVQString@@00@Z @ 91 NONAME ; void PSetCallBarringWrapper::changeBarringPassword(class QString const &, class QString const &, class QString const &)
+	?getNetworkSelectionMode@PSetNetworkWrapper@@QBE?AW4ErrorCode@1@AAW4NetworkSelectionMode@1@@Z @ 92 NONAME ; enum PSetNetworkWrapper::ErrorCode PSetNetworkWrapper::getNetworkSelectionMode(enum PSetNetworkWrapper::NetworkSelectionMode &) const
+	?getVoiceMailBoxNumber@PSetCallDivertingWrapper@@QAEHAAVQString@@W4PsService@@@Z @ 93 NONAME ; int PSetCallDivertingWrapper::getVoiceMailBoxNumber(class QString &, enum PsService)
+	?tr@PSetNetworkWrapper@@SA?AVQString@@PBD0@Z @ 94 NONAME ; class QString PSetNetworkWrapper::tr(char const *, char const *)
+	?staticMetaObject@PSetCallDivertingWrapper@@2UQMetaObject@@B @ 95 NONAME ; struct QMetaObject const PSetCallDivertingWrapper::staticMetaObject
+	??0PSetCliWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 96 NONAME ; PSetCliWrapper::PSetCliWrapper(class CPsetContainer &, class QObject *)
+	?trUtf8@PSetCliWrapper@@SA?AVQString@@PBD0@Z @ 97 NONAME ; class QString PSetCliWrapper::trUtf8(char const *, char const *)
+	??0PSetNetworkWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 98 NONAME ; PSetNetworkWrapper::PSetNetworkWrapper(class CPsetContainer &, class QObject *)
+	?qt_metacall@PSetCallWaitingWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 99 NONAME ; int PSetCallWaitingWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?searchingNetworks@PSetNetworkWrapper@@IAEXAAW4RequestType@1@@Z @ 100 NONAME ; void PSetNetworkWrapper::searchingNetworks(enum PSetNetworkWrapper::RequestType &)
+	?getStaticMetaObject@PSetCliWrapper@@SAABUQMetaObject@@XZ @ 101 NONAME ; struct QMetaObject const & PSetCliWrapper::getStaticMetaObject(void)
+	?handleDivertingStatus@PSetCallDivertingWrapper@@IAEXAAV?$QList@PAVPSCallDivertingStatus@@@@_N@Z @ 102 NONAME ; void PSetCallDivertingWrapper::handleDivertingStatus(class QList<class PSCallDivertingStatus *> &, bool)
+	??1PSetCallDivertingWrapper@@UAE@XZ @ 103 NONAME ; PSetCallDivertingWrapper::~PSetCallDivertingWrapper(void)
+	?selectNetwork@PSetNetworkWrapper@@QAEXABUNetworkInfo@1@@Z @ 104 NONAME ; void PSetNetworkWrapper::selectNetwork(struct PSetNetworkWrapper::NetworkInfo const &)
+	?handleCliRequesting@PSetCliWrapper@@IAEX_N0@Z @ 105 NONAME ; void PSetCliWrapper::handleCliRequesting(bool, bool)
+	?enableBarringRequestCompleted@PSetCallBarringWrapper@@IAEXHW4BarringType@1@W4BarringStatus@1@_N@Z @ 106 NONAME ; void PSetCallBarringWrapper::enableBarringRequestCompleted(int, enum PSetCallBarringWrapper::BarringType, enum PSetCallBarringWrapper::BarringStatus, bool)
+	?metaObject@PSetCallWaitingWrapper@@UBEPBUQMetaObject@@XZ @ 107 NONAME ; struct QMetaObject const * PSetCallWaitingWrapper::metaObject(void) const
+	?trUtf8@PSetWrapper@@SA?AVQString@@PBD0H@Z @ 108 NONAME ; class QString PSetWrapper::trUtf8(char const *, char const *, int)
+	?getCallDivertingStatus@PSetCallDivertingWrapper@@QAEXV?$QFlags@W4PsService@@@@W4PsCallDivertingCondition@@H@Z @ 109 NONAME ; void PSetCallDivertingWrapper::getCallDivertingStatus(class QFlags<enum PsService>, enum PsCallDivertingCondition, int)
+	?setCallDiverting@PSetCallDivertingWrapper@@QAEHAAVPSCallDivertingCommand@@H@Z @ 110 NONAME ; int PSetCallDivertingWrapper::setCallDiverting(class PSCallDivertingCommand &, int)
+	?setNetworkAccessMode@PSetNetworkWrapper@@QAEXW4NetworkAccessMode@1@@Z @ 111 NONAME ; void PSetNetworkWrapper::setNetworkAccessMode(enum PSetNetworkWrapper::NetworkAccessMode)
+	??0PSetWrapper@@QAE@PAVQObject@@@Z @ 112 NONAME ; PSetWrapper::PSetWrapper(class QObject *)
+	?handleCliError@PSetCliWrapper@@IAEXH@Z @ 113 NONAME ; void PSetCliWrapper::handleCliError(int)
+	?handleCFRequesting@PSetCallDivertingWrapper@@IAEX_N0@Z @ 114 NONAME ; void PSetCallDivertingWrapper::handleCFRequesting(bool, bool)
+	?cancelAll@PSetCliWrapper@@QAEXXZ @ 115 NONAME ; void PSetCliWrapper::cancelAll(void)
+	?networkReqestFailed@PSetNetworkWrapper@@IAEXW4ErrorCode@1@W4RequestType@1@@Z @ 116 NONAME ; void PSetNetworkWrapper::networkReqestFailed(enum PSetNetworkWrapper::ErrorCode, enum PSetNetworkWrapper::RequestType)
+	?enableBarring@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@VQString@@@Z @ 117 NONAME ; void PSetCallBarringWrapper::enableBarring(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType, class QString)
+	?setNewDefaultNumber@PSetCallDivertingWrapper@@QAEXVQString@@@Z @ 118 NONAME ; void PSetCallDivertingWrapper::setNewDefaultNumber(class QString)
+	??0PSetCallBarringWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 119 NONAME ; PSetCallBarringWrapper::PSetCallBarringWrapper(class CPsetContainer &, class QObject *)
+	?barringStatusRequestCompleted@PSetCallBarringWrapper@@IAEXHABV?$QList@E@@W4BarringStatus@1@@Z @ 120 NONAME ; void PSetCallBarringWrapper::barringStatusRequestCompleted(int, class QList<unsigned char> const &, enum PSetCallBarringWrapper::BarringStatus)
+	??_EPSetNetworkWrapper@@UAE@I@Z @ 121 NONAME ; PSetNetworkWrapper::~PSetNetworkWrapper(unsigned int)
+	?getCPsetCallWaiting@PSetCallWaitingWrapper@@QBEAAVCPsetCallWaiting@@XZ @ 122 NONAME ; class CPsetCallWaiting & PSetCallWaitingWrapper::getCPsetCallWaiting(void) const
+	?getCnap@PSetCliWrapper@@QAEXXZ @ 123 NONAME ; void PSetCliWrapper::getCnap(void)
+	??1PSetCallBarringWrapper@@UAE@XZ @ 124 NONAME ; PSetCallBarringWrapper::~PSetCallBarringWrapper(void)
+	?tr@PSetCallDivertingWrapper@@SA?AVQString@@PBD0@Z @ 125 NONAME ; class QString PSetCallDivertingWrapper::tr(char const *, char const *)
+	?getStaticMetaObject@PSetCallDivertingWrapper@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & PSetCallDivertingWrapper::getStaticMetaObject(void)
+	?metaObject@PSetNetworkWrapper@@UBEPBUQMetaObject@@XZ @ 127 NONAME ; struct QMetaObject const * PSetNetworkWrapper::metaObject(void) const
+	??1PSetNetworkWrapper@@UAE@XZ @ 128 NONAME ; PSetNetworkWrapper::~PSetNetworkWrapper(void)
+	?staticMetaObject@PSetNetworkWrapper@@2UQMetaObject@@B @ 129 NONAME ; struct QMetaObject const PSetNetworkWrapper::staticMetaObject
+	??_EPSetCallWaitingWrapper@@UAE@I@Z @ 130 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(unsigned int)
+	??0PSetCallWaitingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 131 NONAME ; PSetCallWaitingWrapper::PSetCallWaitingWrapper(class CPsetContainer &, class QObject *)
+	?qt_metacall@PSetCallBarringWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 132 NONAME ; int PSetCallBarringWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/eabi/psetwrapperu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,134 @@
+EXPORTS
+	_ZN11PSetWrapper10cliWrapperEv @ 1 NONAME
+	_ZN11PSetWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
+	_ZN11PSetWrapper11qt_metacastEPKc @ 3 NONAME
+	_ZN11PSetWrapper14networkWrapperEv @ 4 NONAME
+	_ZN11PSetWrapper16staticMetaObjectE @ 5 NONAME DATA 16
+	_ZN11PSetWrapper18callBarringWrapperEv @ 6 NONAME
+	_ZN11PSetWrapper18callWaitingWrapperEv @ 7 NONAME
+	_ZN11PSetWrapper19getStaticMetaObjectEv @ 8 NONAME
+	_ZN11PSetWrapper20callDivertingWrapperEv @ 9 NONAME
+	_ZN11PSetWrapperC1EP7QObject @ 10 NONAME
+	_ZN11PSetWrapperC2EP7QObject @ 11 NONAME
+	_ZN11PSetWrapperD0Ev @ 12 NONAME
+	_ZN11PSetWrapperD1Ev @ 13 NONAME
+	_ZN11PSetWrapperD2Ev @ 14 NONAME
+	_ZN14PSetCliWrapper11getClipModeEv @ 15 NONAME
+	_ZN14PSetCliWrapper11getClirModeEv @ 16 NONAME
+	_ZN14PSetCliWrapper11getColpModeEv @ 17 NONAME
+	_ZN14PSetCliWrapper11getColrModeEv @ 18 NONAME
+	_ZN14PSetCliWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 19 NONAME
+	_ZN14PSetCliWrapper11qt_metacastEPKc @ 20 NONAME
+	_ZN14PSetCliWrapper14cliInformationERK18PsCallLineIdentity @ 21 NONAME
+	_ZN14PSetCliWrapper14handleCliErrorEi @ 22 NONAME
+	_ZN14PSetCliWrapper15handleCliStatusEPhiRK18PsCallLineIdentity @ 23 NONAME
+	_ZN14PSetCliWrapper16handleCnapStatusEi @ 24 NONAME
+	_ZN14PSetCliWrapper16staticMetaObjectE @ 25 NONAME DATA 16
+	_ZN14PSetCliWrapper19getStaticMetaObjectEv @ 26 NONAME
+	_ZN14PSetCliWrapper19handleCliRequestingEbb @ 27 NONAME
+	_ZN14PSetCliWrapper7getCnapEv @ 28 NONAME
+	_ZN14PSetCliWrapper9cancelAllEv @ 29 NONAME
+	_ZN14PSetCliWrapperC1ER14CPsetContainerP7QObject @ 30 NONAME
+	_ZN14PSetCliWrapperC2ER14CPsetContainerP7QObject @ 31 NONAME
+	_ZN14PSetCliWrapperD0Ev @ 32 NONAME
+	_ZN14PSetCliWrapperD1Ev @ 33 NONAME
+	_ZN14PSetCliWrapperD2Ev @ 34 NONAME
+	_ZN18PSetNetworkWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 35 NONAME
+	_ZN18PSetNetworkWrapper11qt_metacastEPKc @ 36 NONAME
+	_ZN18PSetNetworkWrapper13cancelRequestEv @ 37 NONAME
+	_ZN18PSetNetworkWrapper13selectNetworkERKNS_11NetworkInfoE @ 38 NONAME
+	_ZN18PSetNetworkWrapper14networkChangedERNS_11NetworkInfoERNS_18RegistrationStatusE @ 39 NONAME
+	_ZN18PSetNetworkWrapper16staticMetaObjectE @ 40 NONAME DATA 16
+	_ZN18PSetNetworkWrapper17searchingNetworksERNS_11RequestTypeE @ 41 NONAME
+	_ZN18PSetNetworkWrapper19getStaticMetaObjectEv @ 42 NONAME
+	_ZN18PSetNetworkWrapper19networkReqestFailedENS_9ErrorCodeENS_11RequestTypeE @ 43 NONAME
+	_ZN18PSetNetworkWrapper20availableNetworksGotER5QListIPNS_11NetworkInfoEE @ 44 NONAME
+	_ZN18PSetNetworkWrapper20getAvailableNetworksEv @ 45 NONAME
+	_ZN18PSetNetworkWrapper20networkAccessModeGotEi @ 46 NONAME
+	_ZN18PSetNetworkWrapper20setNetworkAccessModeENS_17NetworkAccessModeE @ 47 NONAME
+	_ZN18PSetNetworkWrapper25requestingSelectedNetworkEb @ 48 NONAME
+	_ZN18PSetNetworkWrapperC1ER14CPsetContainerP7QObject @ 49 NONAME
+	_ZN18PSetNetworkWrapperC2ER14CPsetContainerP7QObject @ 50 NONAME
+	_ZN18PSetNetworkWrapperD0Ev @ 51 NONAME
+	_ZN18PSetNetworkWrapperD1Ev @ 52 NONAME
+	_ZN18PSetNetworkWrapperD2Ev @ 53 NONAME
+	_ZN22PSetCallBarringWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 54 NONAME
+	_ZN22PSetCallBarringWrapper11qt_metacastEPKc @ 55 NONAME
+	_ZN22PSetCallBarringWrapper13barringStatusE6QFlagsI9PsServiceENS_11BarringTypeE @ 56 NONAME
+	_ZN22PSetCallBarringWrapper13enableBarringE6QFlagsI9PsServiceENS_11BarringTypeE7QString @ 57 NONAME
+	_ZN22PSetCallBarringWrapper14disableBarringE6QFlagsI9PsServiceENS_11BarringTypeE7QString @ 58 NONAME
+	_ZN22PSetCallBarringWrapper16staticMetaObjectE @ 59 NONAME DATA 16
+	_ZN22PSetCallBarringWrapper19getStaticMetaObjectEv @ 60 NONAME
+	_ZN22PSetCallBarringWrapper21changeBarringPasswordERK7QStringS2_S2_ @ 61 NONAME
+	_ZN22PSetCallBarringWrapper29barringStatusRequestCompletedEiRK5QListIhENS_13BarringStatusE @ 62 NONAME
+	_ZN22PSetCallBarringWrapper29enableBarringRequestCompletedEiNS_11BarringTypeENS_13BarringStatusEb @ 63 NONAME
+	_ZN22PSetCallBarringWrapper30disableBarringRequestCompletedEiNS_11BarringTypeENS_13BarringStatusEb @ 64 NONAME
+	_ZN22PSetCallBarringWrapper37barringPasswordChangeRequestCompletedEi @ 65 NONAME
+	_ZN22PSetCallBarringWrapperC1ER14CPsetContainerP7QObject @ 66 NONAME
+	_ZN22PSetCallBarringWrapperC2ER14CPsetContainerP7QObject @ 67 NONAME
+	_ZN22PSetCallBarringWrapperD0Ev @ 68 NONAME
+	_ZN22PSetCallBarringWrapperD1Ev @ 69 NONAME
+	_ZN22PSetCallBarringWrapperD2Ev @ 70 NONAME
+	_ZN22PSetCallWaitingWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 71 NONAME
+	_ZN22PSetCallWaitingWrapper11qt_metacastEPKc @ 72 NONAME
+	_ZN22PSetCallWaitingWrapper13cancelProcessEv @ 73 NONAME
+	_ZN22PSetCallWaitingWrapper14setCallWaitingENS_20PsCallWaitingCommandEi @ 74 NONAME
+	_ZN22PSetCallWaitingWrapper16staticMetaObjectE @ 75 NONAME DATA 16
+	_ZN22PSetCallWaitingWrapper19getStaticMetaObjectEv @ 76 NONAME
+	_ZN22PSetCallWaitingWrapper20getCallWaitingStatusEv @ 77 NONAME
+	_ZN22PSetCallWaitingWrapper22handleCallWaitingErrorEi @ 78 NONAME
+	_ZN22PSetCallWaitingWrapper24handleCallWaitingChangedENS_20PsCallWaitingCommandEi @ 79 NONAME
+	_ZN22PSetCallWaitingWrapper26handleCallWaitingGetStatusENS_19PsCallWaitingStatusERK5QListIhE @ 80 NONAME
+	_ZN22PSetCallWaitingWrapper27handleCallWaitingRequestingEbb @ 81 NONAME
+	_ZN22PSetCallWaitingWrapperC1ER14CPsetContainerP7QObject @ 82 NONAME
+	_ZN22PSetCallWaitingWrapperC2ER14CPsetContainerP7QObject @ 83 NONAME
+	_ZN22PSetCallWaitingWrapperD0Ev @ 84 NONAME
+	_ZN22PSetCallWaitingWrapperD1Ev @ 85 NONAME
+	_ZN22PSetCallWaitingWrapperD2Ev @ 86 NONAME
+	_ZN24PSetCallDivertingWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 87 NONAME
+	_ZN24PSetCallDivertingWrapper11qt_metacastEPKc @ 88 NONAME
+	_ZN24PSetCallDivertingWrapper11requestDoneEv @ 89 NONAME
+	_ZN24PSetCallDivertingWrapper13cancelProcessEv @ 90 NONAME
+	_ZN24PSetCallDivertingWrapper16setCallDivertingER22PSCallDivertingCommandi @ 91 NONAME
+	_ZN24PSetCallDivertingWrapper16staticMetaObjectE @ 92 NONAME DATA 16
+	_ZN24PSetCallDivertingWrapper17getDefaultNumbersER11QStringList @ 93 NONAME
+	_ZN24PSetCallDivertingWrapper18handleCFRequestingEbb @ 94 NONAME
+	_ZN24PSetCallDivertingWrapper19getStaticMetaObjectEv @ 95 NONAME
+	_ZN24PSetCallDivertingWrapper19setNewDefaultNumberE7QString @ 96 NONAME
+	_ZN24PSetCallDivertingWrapper20handleDivertingErrorEi @ 97 NONAME
+	_ZN24PSetCallDivertingWrapper21getVoiceMailBoxNumberER7QString9PsService @ 98 NONAME
+	_ZN24PSetCallDivertingWrapper21handleDivertingStatusER5QListIP21PSCallDivertingStatusEb @ 99 NONAME
+	_ZN24PSetCallDivertingWrapper22getCallDivertingStatusE6QFlagsI9PsServiceE24PsCallDivertingConditioni @ 100 NONAME
+	_ZN24PSetCallDivertingWrapper22handleDivertingChangedERK22PSCallDivertingCommandb @ 101 NONAME
+	_ZN24PSetCallDivertingWrapper23queryVoiceMailBoxNumberER7QString9PsService @ 102 NONAME
+	_ZN24PSetCallDivertingWrapperC1ER14CPsetContainerP7QObject @ 103 NONAME
+	_ZN24PSetCallDivertingWrapperC2ER14CPsetContainerP7QObject @ 104 NONAME
+	_ZN24PSetCallDivertingWrapperD0Ev @ 105 NONAME
+	_ZN24PSetCallDivertingWrapperD1Ev @ 106 NONAME
+	_ZN24PSetCallDivertingWrapperD2Ev @ 107 NONAME
+	_ZNK11PSetWrapper10metaObjectEv @ 108 NONAME
+	_ZNK14PSetCliWrapper10metaObjectEv @ 109 NONAME
+	_ZNK18PSetNetworkWrapper10metaObjectEv @ 110 NONAME
+	_ZNK18PSetNetworkWrapper20getNetworkAccessModeEv @ 111 NONAME
+	_ZNK18PSetNetworkWrapper23getNetworkSelectionModeERNS_20NetworkSelectionModeE @ 112 NONAME
+	_ZNK18PSetNetworkWrapper33isManualNetworkSelectionSupportedEv @ 113 NONAME
+	_ZNK22PSetCallBarringWrapper10metaObjectEv @ 114 NONAME
+	_ZNK22PSetCallWaitingWrapper10metaObjectEv @ 115 NONAME
+	_ZNK22PSetCallWaitingWrapper19getCPsetCallWaitingEv @ 116 NONAME
+	_ZNK24PSetCallDivertingWrapper10metaObjectEv @ 117 NONAME
+	_ZNK24PSetCallDivertingWrapper20validateDivertNumberERK7TDesC16 @ 118 NONAME
+	_ZNK24PSetCallDivertingWrapper21getCPsetCallDivertingEv @ 119 NONAME
+	_ZNK24PSetCallDivertingWrapper8findPlusERK7TDesC16 @ 120 NONAME
+	_ZTI11PSetWrapper @ 121 NONAME
+	_ZTI14PSetCliWrapper @ 122 NONAME
+	_ZTI18PSetNetworkWrapper @ 123 NONAME
+	_ZTI22PSetCallBarringWrapper @ 124 NONAME
+	_ZTI22PSetCallWaitingWrapper @ 125 NONAME
+	_ZTI24PSetCallDivertingWrapper @ 126 NONAME
+	_ZTV11PSetWrapper @ 127 NONAME
+	_ZTV14PSetCliWrapper @ 128 NONAME
+	_ZTV18PSetNetworkWrapper @ 129 NONAME
+	_ZTV22PSetCallBarringWrapper @ 130 NONAME
+	_ZTV22PSetCallWaitingWrapper @ 131 NONAME
+	_ZTV24PSetCallDivertingWrapper @ 132 NONAME
+
--- a/cellular/telephonysettings/xqbindings/psetwrapper/psetwrapper.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/psetwrapper.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -41,6 +41,14 @@
     TARGET.CAPABILITY = CAP_GENERAL_DLL
     TARGET.UID3 = 0X20029F20
     
+    defFiles = \
+    "$${LITERAL_HASH}ifdef WINS" \
+        "DEFFILE bwins/psetwrapper.def" \
+    "$${LITERAL_HASH}else" \
+        "DEFFILE eabi/psetwrapper.def" \
+    "$${LITERAL_HASH}endif"
+    MMP_RULES += defFiles
+    
     # For sis file
     dllfile.sources = $${TARGET}.dll
     dllfile.path = $$SHARED_LIB_DIR
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -36,7 +36,8 @@
   PSetCallDivertingWrapper::PSetCallDivertingWrapper
  */
 PSetCallDivertingWrapper::PSetCallDivertingWrapper(
-        CPsetContainer &psetContainer, QObject *parent) :
+        CPsetContainer &psetContainer, 
+        QObject *parent) :
     QObject(parent), m_psetCallDiverting(NULL), m_emergencyCall(NULL), 
     m_DefaultNumberListCDes(NULL), m_Priv(NULL)
 {
@@ -200,9 +201,12 @@
 }
 
 /*!
-  PSetCallDivertingWrapper::getVoiceMailBoxNumber
+ * PSetCallDivertingWrapper::getVoiceMailBoxNumber
+ * @param aNumber empty if not set
+ * @return -1 if not supported
  */
-void PSetCallDivertingWrapper::getVoiceMailBoxNumber(QString &aVmbxNumber)
+int PSetCallDivertingWrapper::getVoiceMailBoxNumber(
+        QString &aNumber, PsService aService)
 {
     DPRINT << ": IN";
 
@@ -213,46 +217,90 @@
 
     TVoiceMailboxParams psetVoiceMailboxParams;
     // Selected mailbox type is voice
-    psetVoiceMailboxParams.iType = EVmbxVoice;
+    psetVoiceMailboxParams.iType = m_Priv->convert(aService);
     psetVoiceMailboxEntry = 0;
-    TInt error = psetVoiceMailBox->GetStoredEntry( psetVoiceMailboxParams, psetVoiceMailboxEntry );
-    if ( KErrNone == error ) {
+    int ret = 0;
+    TInt error = psetVoiceMailBox->GetStoredEntry(
+            psetVoiceMailboxParams, psetVoiceMailboxEntry);
+    DPRINT << "error: " << error;
+    if (KErrNotSupported == error) {
+        ret = -1;
+    } else if (KErrNone == error) {
         // Entry ok, check the number
-        TPtrC ptrNumber( KNullDesC );
-        if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) {
+        TPtrC ptrNumber(KNullDesC);
+        if (KErrNone == psetVoiceMailboxEntry->GetVmbxNumber(ptrNumber)) {
             // number ok
-            aVmbxNumber = QString::fromUtf16(ptrNumber.Ptr(),
+            aNumber = QString::fromUtf16(ptrNumber.Ptr(),
                     ptrNumber.Length());
-            }
         }
-      else if ( KErrNotFound == error ) {
+        
+    } else {
+        // illegal argument
+    }
+
+    delete psetVoiceMailboxEntry; // Entry ownership was transferred
+    psetVoiceMailboxEntry = NULL;
+
+    DPRINT << "aVmbxNumber: " << aNumber;
+    DPRINT << ": OUT";
+    return ret;
+}
+
+/*!
+ * PSetCallDivertingWrapper::queryVoiceMailBoxNumber
+ * @param aNumber empty if not set
+ * @return -1 if not supported
+ */
+int PSetCallDivertingWrapper::queryVoiceMailBoxNumber(
+        QString &aNumber, PsService aService)
+{
+    DPRINT << ": IN";
+
+    CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL;
+    CVoiceMailbox* psetVoiceMailBoxScoped = NULL;
+    QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL());
+    QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped);
+
+    TVoiceMailboxParams psetVoiceMailboxParams;
+    // Selected mailbox type is voice
+    psetVoiceMailboxParams.iType = m_Priv->convert(aService);
+    psetVoiceMailboxEntry = 0;
+    int ret = 0;
+    TInt error = psetVoiceMailBox->GetStoredEntry(
+            psetVoiceMailboxParams, psetVoiceMailboxEntry);
+    
+    if (KErrNotSupported == error) {
+        ret = -1;
+    } else if (KErrNone == error || KErrNotFound == error) {
         // No number defined, query new entry from user
-        error = psetVoiceMailBox->QueryNewEntry( psetVoiceMailboxParams, psetVoiceMailboxEntry );
+        error = psetVoiceMailBox->QueryNewEntry(
+                psetVoiceMailboxParams, psetVoiceMailboxEntry);
 
-        if ( KErrNone == error ) {
+        if (KErrNone == error) {
             // Save new entry and get the number.
             error = psetVoiceMailBox->SaveEntry( *psetVoiceMailboxEntry );
             TPtrC ptrNumber( KNullDesC );
             if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) {
                 // New number ok.
-                aVmbxNumber = QString::fromUtf16(ptrNumber.Ptr(),
+                aNumber = QString::fromUtf16(ptrNumber.Ptr(),
                         ptrNumber.Length());
-                }
-            } else {
-                // New number not given.
-                DPRINT << "New number error: " << error;
             }
+        
+        } else {
+            // New number not given.
+            DPRINT << "New number error: " << error;
         }
-    else {
+    } else {
         // illegal argument 
         DPRINT << "error: " << error;
-        }
+    }
 
     delete psetVoiceMailboxEntry; // Entry ownership was transferred
     psetVoiceMailboxEntry = NULL;
 
-    DPRINT << "aVmbxNumber: " << aVmbxNumber;
+    DPRINT << "aVmbxNumber: " << aNumber;
     DPRINT << ": OUT";
+    return ret;
 }
 
 /*!
@@ -315,4 +363,14 @@
     return plusFound;
 }
 
+/**
+ * Get CPsetCallDiverting reference.
+ */
+CPsetCallDiverting &  PSetCallDivertingWrapper::getCPsetCallDiverting() const
+    {
+    DPRINT;
+    
+    return *m_psetCallDiverting;
+    }
+
 // End of File. 
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -440,4 +440,25 @@
     return ret;
 }
 
+TVmbxType PSetCallDivertingWrapperPrivate::convert(
+        PsService aService)
+{
+    TVmbxType ret = EVmbxNone;
+    switch (aService) {
+    case ServiceGroupVoice:
+        ret = EVmbxVoice;
+        break;
+    case ServiceGroupData:
+        ret = EVmbxVideo;
+        break;
+    case ServiceGroupAllTeleservices:
+    case ServiceGroupFax:
+    case ServiceGroupUnknown:
+    default:
+        ret = EVmbxNone;
+        break;
+    }
+    return ret;
+}
+
 // end of file
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper_p.h	Thu Jul 22 16:38:43 2010 +0100
@@ -21,6 +21,7 @@
 #include <mpsetdivertobs.h>
 #include <mphcltemergencycallobserver.h>
 #include <mpsetrequestobs.h>
+#include <voicemailboxdefs.h>
 #include "psetcalldivertingwrapper.h"
 #include "psetwrappertypes.h"
 
@@ -107,6 +108,7 @@
     TDivertingStatus convert(PsCallDivertingStatus type);
     TServiceGroup convert(PsServiceGroup type);
     TDivertingSetting convert(PsCallDivertingSetting type);
+    TVmbxType convert(PsService aService);
     
 private:
     PsCallDivertingCondition convert(TCallDivertingCondition type);
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallwaitingwrapper.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallwaitingwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -92,4 +92,14 @@
     DPRINT << ": OUT ";
 }
 
+/*!
+  PSetCallWaitingWrapper::getCPsetCallWaiting
+ */
+CPsetCallWaiting &  PSetCallWaitingWrapper::getCPsetCallWaiting() const
+    {
+    DPRINT;
+    
+    return *m_psetCallWaiting;
+    }
+
 // End of File. 
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -219,4 +219,14 @@
     m_privateImpl->setNetworkAccessMode(mode);
 }
 
+/*!
+  Is manual network selection supported.
+*/
+bool PSetNetworkWrapper::isManualNetworkSelectionSupported() const
+{
+    DPRINT;
+    
+    return m_privateImpl->isManualNetworkSelectionSupported();
+}
+
 // End of File. 
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,6 +19,8 @@
 #include <psetcontainer.h>
 #include <psetnetwork.h>
 #include <gsmerror.h>
+#include <PsetCSP.h>
+
 #include "psetnetworkwrapper_p.h"
 #include "logging.h"
 #include "psetnetworkinfoconverter.h"
@@ -48,6 +50,9 @@
     QT_TRAP_THROWING(
         m_psetNetworkMode.reset(psetContainer.CreateNetworkModeObjectL(*this)));
     
+    QT_TRAP_THROWING(m_csp.reset(CPsetCustomerServiceProfile::NewL()));
+    QT_TRAP_THROWING(m_csp->OpenCSProfileL());
+
     DPRINT << ": OUT ";
 }
 
@@ -59,8 +64,8 @@
     DPRINT << ": IN ";
     
     while (!m_networkInfoList.isEmpty()) {
-         DPRINT << " delete : " << m_networkInfoList.takeFirst()->m_longName;
-         delete m_networkInfoList.takeFirst();
+        DPRINT << " delete : " << m_networkInfoList.first()->m_longName;
+        delete m_networkInfoList.takeFirst();
     }
     m_networkInfoList.clear();
     
@@ -178,8 +183,8 @@
     
     // delete qlist
     while (!m_networkInfoList.isEmpty()) {
-         DPRINT << " delete : " << m_networkInfoList.takeFirst()->m_longName;
-         delete m_networkInfoList.takeFirst();
+        DPRINT << " delete : " << m_networkInfoList.first()->m_longName;
+        delete m_networkInfoList.takeFirst();
     }
     m_networkInfoList.clear();
     
@@ -455,3 +460,21 @@
         return PSetNetworkWrapper::ErrGeneral;
     }    
 }
+
+bool PSetNetworkWrapperPrivate::isManualNetworkSelectionSupported() const
+{
+    DPRINT << ": IN ";
+    
+    TBool settingSupported(EFalse);
+    TInt retVal = m_csp->IsNetworkSelectionSupported(settingSupported);
+ 
+    if ( retVal != KErrNone )
+         {
+        //if a CSP error occurs, by default service is available
+        settingSupported = ETrue;
+        }
+
+    DPRINT << ": OUT ";
+    return settingSupported;
+}
+
--- a/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.h	Thu Jul 22 16:38:43 2010 +0100
@@ -27,6 +27,7 @@
 class PSetNetworkWrapper;
 class CPsetContainer;
 class CPsetNetwork;
+class CPsetCustomerServiceProfile;
 
 class PSetNetworkWrapperPrivate
     :
@@ -58,6 +59,8 @@
     void getNetworkAccessMode() const;
 
     void setNetworkAccessMode(PSetNetworkWrapper::NetworkAccessMode mode);
+    
+    bool isManualNetworkSelectionSupported() const;
 
 public: // From MPsetNetworkInfoObserver
     
@@ -119,6 +122,10 @@
     QScopedPointer<CPsetNetwork> m_psetNetworkMode;
     
     QList<PSetNetworkWrapper::NetworkInfo*> m_networkInfoList;
+    
+    /*! Own. */
+    QScopedPointer<CPsetCustomerServiceProfile> m_csp;
+
 
     
 };
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcalldivertingwrapper.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcalldivertingwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -108,9 +108,18 @@
 // PSetCallDivertingWrapper::getVoiceMailBoxNumber
 // -----------------------------------------------------------------------------
 //
-void PSetCallDivertingWrapper::getVoiceMailBoxNumber( 
-        QString & aNumber )
+int PSetCallDivertingWrapper::getVoiceMailBoxNumber(
+        QString &aNumber, PsService aService)
     {
-    SMC_MOCK_METHOD1( void, QString & , aNumber )
+    SMC_MOCK_METHOD2( int, QString & , aNumber, PsService, aService )
     }
 
+// -----------------------------------------------------------------------------
+// PSetCallDivertingWrapper::queryVoiceMailBoxNumber
+// -----------------------------------------------------------------------------
+//
+int PSetCallDivertingWrapper::queryVoiceMailBoxNumber(
+        QString &aNumber, PsService aService)
+    {
+    SMC_MOCK_METHOD2( int, QString & , aNumber, PsService, aService )
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcsp.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,168 @@
+/*
+* 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 <psetcsp.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::NewL
+// -----------------------------------------------------------------------------
+//
+CPsetCustomerServiceProfile * CPsetCustomerServiceProfile::NewL(  )
+    {
+    SMC_MOCK_NEWL0( CPsetCustomerServiceProfile * )
+
+    CPsetCustomerServiceProfile* self = new( ELeave ) CPsetCustomerServiceProfile;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::~CPsetCustomerServiceProfile
+// -----------------------------------------------------------------------------
+//
+CPsetCustomerServiceProfile::~CPsetCustomerServiceProfile(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::IsCWSupported
+// -----------------------------------------------------------------------------
+//
+TInt CPsetCustomerServiceProfile::IsCWSupported( 
+        TBool & aSupport )
+    {
+    SMC_MOCK_METHOD1( TInt, TBool &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::IsCBSupported
+// -----------------------------------------------------------------------------
+//
+TInt CPsetCustomerServiceProfile::IsCBSupported( 
+        TBool & aSupport )
+    {
+    SMC_MOCK_METHOD1( TInt, TBool &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::IsCFSupported
+// -----------------------------------------------------------------------------
+//
+TInt CPsetCustomerServiceProfile::IsCFSupported( 
+        TBool & aSupport )
+    {
+    SMC_MOCK_METHOD1( TInt, TBool &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::IsALSSupported
+// -----------------------------------------------------------------------------
+//
+TInt CPsetCustomerServiceProfile::IsALSSupported( 
+        TBool & aSupport )
+    {
+    SMC_MOCK_METHOD1( TInt, TBool &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::OpenCSProfileL
+// -----------------------------------------------------------------------------
+//
+TInt CPsetCustomerServiceProfile::OpenCSProfileL(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::IsNetworkSelectionSupported
+// -----------------------------------------------------------------------------
+//
+TInt CPsetCustomerServiceProfile::IsNetworkSelectionSupported( 
+        TBool & aSupport )
+    {
+    SMC_MOCK_METHOD1( TInt, TBool &, aSupport )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::CheckIfCWSupported
+// -----------------------------------------------------------------------------
+//
+TBool CPsetCustomerServiceProfile::CheckIfCWSupported( 
+        const RMobilePhone::TCspCallCompletion aContainer ) const
+    {
+    SMC_MOCK_METHOD1( TBool, const RMobilePhone::TCspCallCompletion, aContainer )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::CheckIfCBSupported
+// -----------------------------------------------------------------------------
+//
+TBool CPsetCustomerServiceProfile::CheckIfCBSupported( 
+        const RMobilePhone::TCspCallRestriction aContainer ) const
+    {
+    SMC_MOCK_METHOD1( TBool, const RMobilePhone::TCspCallRestriction, aContainer )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::CheckIfCFSupported
+// -----------------------------------------------------------------------------
+//
+TBool CPsetCustomerServiceProfile::CheckIfCFSupported( 
+        const RMobilePhone::TCspCallOffering aContainer ) const
+    {
+    SMC_MOCK_METHOD1( TBool, const RMobilePhone::TCspCallOffering, aContainer )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::CheckIfAlsSupported
+// -----------------------------------------------------------------------------
+//
+TBool CPsetCustomerServiceProfile::CheckIfAlsSupported( 
+        const RMobilePhone::TCspCPHSTeleservices aContainer ) const
+    {
+    SMC_MOCK_METHOD1( TBool, const RMobilePhone::TCspCPHSTeleservices, aContainer )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPsetCustomerServiceProfile::CheckIfNetworkSelectionSupported
+// -----------------------------------------------------------------------------
+//
+TBool CPsetCustomerServiceProfile::CheckIfNetworkSelectionSupported( 
+        const RMobilePhone::TCspValueAdded aContainer ) const
+    {
+    SMC_MOCK_METHOD1( TBool, const RMobilePhone::TCspValueAdded, aContainer )
+    }
+
+
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcalldivertingwrapper/ut_psetcalldivertingwrapper.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcalldivertingwrapper/ut_psetcalldivertingwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -361,47 +361,93 @@
 {
     // Fail case #1, illegal argument
     QString defNumber;
+    int ret;
+    
     expect("CVoiceMailbox::GetStoredEntry").returns(-2).times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
+    ret = mWrapper->getVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
+    
+    // Fail case #2, Not supported.
+    expect("CVoiceMailbox::GetStoredEntry").returns(-5).times(1);
+    ret = mWrapper->getVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, -1);
 
-    // Fail case #2, New number not given.
+    // Fail case #3, number nok
+    expect("CVoiceMailbox::GetStoredEntry").times(1);
+    expect("CVoiceMailboxEntry::GetVmbxNumber").returns(-1).times(1);
+    ret = mWrapper->getVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
+
+    // ok case#1, number and save ok but no new number. 
     expect("CVoiceMailbox::GetStoredEntry").returns(-1).times(1);
+    ret = mWrapper->getVoiceMailBoxNumber(defNumber, ServiceGroupData);
+    QCOMPARE(ret, 0);
+
+    // ok case#2, number ok
+    expect("CVoiceMailbox::GetStoredEntry").times(1);
+    expect("CVoiceMailboxEntry::GetVmbxNumber").times(1);
+    ret = mWrapper->getVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
+
+    expect("CVoiceMailbox::NewL")
+        .willOnce(invoke(SimulateLeaveL));
+    EXPECT_EXCEPTION(
+        mWrapper->getVoiceMailBoxNumber(defNumber, ServiceGroupFax);
+    )
+    
+    QVERIFY(true == verify());
+}
+
+/*!
+  UT_PSetCallDivertingWrapper::t_queryVoiceMailBoxNumber
+ */
+void UT_PSetCallDivertingWrapper::t_queryVoiceMailBoxNumber()
+{
+    // Fail case #1, illegal argument
+    QString defNumber;
+    int ret;
+    expect("CVoiceMailbox::GetStoredEntry").returns(-2).times(1);
+    ret = mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
+    
+    // Fail case #2, Not supported.
+    expect("CVoiceMailbox::GetStoredEntry").returns(-5).times(1);
+    ret = mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, -1);
+    
+    // Fail case #3, New number not given.
+    expect("CVoiceMailbox::GetStoredEntry").times(1);
     expect("CVoiceMailbox::QueryNewEntry").returns(-5).times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
-
-    // Fail case #3, save nok
+    ret = mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
+    
+    // Fail case #4, save nok
     expect("CVoiceMailbox::GetStoredEntry").returns(-1).times(1);
     expect("CVoiceMailbox::QueryNewEntry").times(1);
     expect("CVoiceMailbox::SaveEntry").returns(-4).times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
-
-    // Fail case #4, number nok
-    expect("CVoiceMailbox::GetStoredEntry").times(1);
-    expect("CVoiceMailboxEntry::GetVmbxNumber").returns(-1).times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
-
-    // ok case#2, number and save ok but no new number. 
+    ret = mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupData);
+    QCOMPARE(ret, 0);
+    
+    // ok case#1, number and save ok but no new number. 
     expect("CVoiceMailbox::GetStoredEntry").returns(-1).times(1);
     expect("CVoiceMailbox::QueryNewEntry").times(1);
     expect("CVoiceMailbox::SaveEntry").times(1);
     expect("CVoiceMailboxEntry::GetVmbxNumber").returns(-5).times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
-
-    // ok case#1, number ok
+    ret = mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
+    
+    // ok case#2, number ok
     expect("CVoiceMailbox::GetStoredEntry").times(1);
-    expect("CVoiceMailboxEntry::GetVmbxNumber").times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
-
-    // ok case#2, number and save ok
-    expect("CVoiceMailbox::GetStoredEntry").returns(-1).times(1);
     expect("CVoiceMailbox::QueryNewEntry").times(1);
     expect("CVoiceMailbox::SaveEntry").times(1);
-    mWrapper->getVoiceMailBoxNumber(defNumber);
+    expect("CVoiceMailboxEntry::GetVmbxNumber").times(1);
+    ret = mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupVoice);
+    QCOMPARE(ret, 0);
 
     expect("CVoiceMailbox::NewL")
         .willOnce(invoke(SimulateLeaveL));
     EXPECT_EXCEPTION(
-        mWrapper->getVoiceMailBoxNumber(defNumber);
+        mWrapper->queryVoiceMailBoxNumber(defNumber, ServiceGroupFax);
     )
     
     QVERIFY(true == verify());
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcalldivertingwrapper/ut_psetcalldivertingwrapper.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcalldivertingwrapper/ut_psetcalldivertingwrapper.h	Thu Jul 22 16:38:43 2010 +0100
@@ -52,6 +52,7 @@
     void t_getDefaultNumbersException();
     void t_setNewDefaultNumber();
     void t_getVoiceMailBoxNumber();
+    void t_queryVoiceMailBoxNumber();
     void t_swapDefaultNumber();
 
     // tests for private implementation
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -309,16 +309,26 @@
         HandleNetworkInfoReceivedL(infos, KErrNone));
     QVERIFY(KErrArgument == result);
     
-    const TInt KGranularity = 2;
+    const TInt KGranularity = 3;
     infos = new CNetworkInfoArray(KGranularity);
     QScopedPointer<CNetworkInfoArray> infoArrayGuard(infos);
     MPsetNetworkSelect::TNetworkInfo info1;
+    infos->AppendL(info1);
+    TRAP(result, m_wrapper->m_privateImpl->
+        HandleNetworkInfoReceivedL(infos, KErrNone));
+    QVERIFY(KErrNone == result);
+    
     MPsetNetworkSelect::TNetworkInfo info2;
-    infos->AppendL(info1);
     infos->AppendL(info2);
     TRAP(result, m_wrapper->m_privateImpl->
         HandleNetworkInfoReceivedL(infos, KErrNone));
     QVERIFY(KErrNone == result);
+    
+    MPsetNetworkSelect::TNetworkInfo info3;
+    infos->AppendL(info3);
+    TRAP(result, m_wrapper->m_privateImpl->
+        HandleNetworkInfoReceivedL(infos, KErrNone));
+    QVERIFY(KErrNone == result);
 }
 
 
@@ -487,4 +497,18 @@
     OomTestExecuter::runAllTests(*this, "t_exceptionSafety");
 }
 
+/*!
+  UT_PSetNetworkWrapper::t_isManualNetworkSelectionSupported
+ */
+void UT_PSetNetworkWrapper::t_isManualNetworkSelectionSupported()
+{
+    expect("CPsetCustomerServiceProfile::IsNetworkSelectionSupported").returns(KErrNone);
+    m_wrapper->isManualNetworkSelectionSupported();
+    QVERIFY(verify());
+    
+    expect("CPsetCustomerServiceProfile::IsNetworkSelectionSupported").returns(KErrGeneral);
+    m_wrapper->isManualNetworkSelectionSupported();
+    QVERIFY(verify());
+}
+
 QTEST_MAIN_S60(UT_PSetNetworkWrapper)
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.h	Thu Jul 22 16:38:43 2010 +0100
@@ -64,6 +64,8 @@
     
     void t_exceptionSafety();
     
+    void t_isManualNetworkSelectionSupported();
+    
 private:
     PSetNetworkWrapper *m_wrapper;
     CPsetContainer *m_psetContainerMock;
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -47,4 +47,5 @@
 
 # mocks needed for testing
 SOURCES += ../mocks/mock_psetcontainer.cpp \
-           ../mocks/mock_psetnetwork.cpp
+           ../mocks/mock_psetnetwork.cpp \
+           ../mocks/mock_psetcsp.cpp
--- a/convergedcallengine/cce/src/cccecallcontainer.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/cce/src/cccecallcontainer.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -370,7 +370,7 @@
     TCallReleaseEntry entry;
     entry.iCallToRelease = &aCalltoRemove;
     entry.iUid = aUid;
-    iCallstoRelease.Append(entry);
+    iCallstoRelease.Append(entry); 
     if (!iIdle->IsActive())
         {
         iIdle->Start( TCallBack(ReleaseCalls,this) );
@@ -699,7 +699,9 @@
             {
             if( call->ImplementationUid() == aImplementationUid )
                 {
-                aCallArray.Append(call);
+                // return value ignored. Ownership of the call object is not 
+                // transferred to array. 
+                aCallArray.Append(call); 
                 }
             }
         }
@@ -729,8 +731,10 @@
                  callState == CCPCall::EStateConnecting ||
                  callState == CCPCall::EStateConnected )
                 {
-                aCallArray.Append( call );
-                err = KErrNone;
+                // Ownership of the call object is not 
+                // transferred to array.
+                err = aCallArray.Append( call );
+                
                 }
             }
         }
@@ -742,8 +746,8 @@
              callState == CCPCall::EStateConnecting ||
              callState == CCPCall::EStateConnected )
             {
-            aCallArray.Append( iEmergencyCall );
-            err = KErrNone;
+            // Ownership of the iEmergencyCall object is not transfered.
+            err = aCallArray.Append( iEmergencyCall );
             }
         }
         
--- a/convergedcallengine/cce/src/ccceconferencecall.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/cce/src/ccceconferencecall.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -286,10 +286,11 @@
         
         for( TInt i = 0; i < array.Count(); i++ )
             {
+            // *call ownership is not transfered.
             const CCCECall* call = iCallContainer.GetCall( array[i] );
             
             // Check if cce call matching to ccp call is available
-            iCallArray.Append( call );
+            iCallArray.Append( call ); // Ignore return value;
             iCallParameters->SetServiceId( call->ServiceId() );
                 
             CCELOGSTRING("CCCEConferenceCall:: Call added to conferencecall");
@@ -390,14 +391,12 @@
 TInt CCCEConferenceCall::GetCallArray( RPointerArray<MCCECall>& aCallArray )
     {
     TInt err( KErrNotFound );
-    
-    for (TInt a = 0; a < iCallArray.Count(); a++)
+    TInt count = iCallArray.Count();
+    aCallArray.Reserve(count);
+    for (TInt a = 0; a < count; a++)
         {
-        aCallArray.Append( iCallArray[a] );
-        err = KErrNone;
+        err= aCallArray.Append( iCallArray[a] );
         }
-
-    
     return err;
     }
 
--- a/convergedcallengine/cce/src/cccedtmf.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/cce/src/cccedtmf.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -103,7 +103,8 @@
             
         if( !error && provider )
             {
-            aProviders.InsertInAddressOrder( provider );
+            // Ref-to-Ptr -> ownership not transfered. 
+            err = aProviders.InsertInAddressOrder( provider ); 
             }
         }
         
--- a/convergedcallengine/cce/src/cccepluginmanager.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/cce/src/cccepluginmanager.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -471,7 +471,7 @@
     else if( iAlternativeEmergencyPlugins.Find( aUid ) == KErrNotFound )
         {
         CCELOGSTRING("CCCEPluginManager::AddToAlternativeEmergencyArray: New plugin. Append to array ");    
-        iAlternativeEmergencyPlugins.Append( aUid );  
+        iAlternativeEmergencyPlugins.Append( aUid );  // return value ignored..
         }    
     else
         {
@@ -609,12 +609,16 @@
     {
     CCCEPlugin* plugin( NULL );
     
-    for( TInt i=0; i<iPluginArray.Count(); i++ )
+    // performance note: a loop is nothing but keeping count in a register, decrementing it's
+    // value after each iteration and jumping back.
+    // But, calling RPointerArray.Count() is expensive.. that's why const TInt count
+    const TInt count = iPluginArray.Count();
+    for( TInt i=0; i < count; i++ )
         {
         if( iPluginArray[i]->Type().iUid == aImplementationUid.iUid )
             {
             plugin =  iPluginArray[i];
-            i = iPluginArray.Count();
+            i = count;
             }
         }
   
@@ -656,14 +660,16 @@
         {
         if ( iPluginArray[a]->Type() == aPluginId )
             {
-            iPluginsToClose.Append(iPluginArray[a]);
-            if (!iIdle->IsActive())
-                {
-                iIdle->Start( TCallBack(RemovePlugins,this) );
+            if( KErrNone == iPluginsToClose.Append(iPluginArray[a]))
+                {          
+                if (!iIdle->IsActive())
+                    {
+                    iIdle->Start( TCallBack(RemovePlugins,this) );
+                    }
+                iPluginArray.Remove(a);
+                iPluginArray.Compress();
+                return;
                 }
-            iPluginArray.Remove(a);
-            iPluginArray.Compress();
-            return;
             }
         }
     }
@@ -688,14 +694,16 @@
         {
         if ( iPluginArray[a]->Type() == aPluginUid )
             {
-            iPluginsToClose.Append(iPluginArray[a]);
-            if (!iIdle->IsActive())
-                {
-                iIdle->Start( TCallBack(RemovePlugins,this) );
+            if( KErrNone == iPluginsToClose.Append(iPluginArray[a]))
+                {          
+                if (!iIdle->IsActive())
+                    {
+                    iIdle->Start( TCallBack(RemovePlugins,this) );
+                    }
+                iPluginArray.Remove(a);
+                iPluginArray.Compress();
+                return;
                 }
-            iPluginArray.Remove(a);
-            iPluginArray.Compress();
-            return;
             }
         }
     }
--- a/convergedcallengine/spsettings/backuphelper/group/spsbackuphelper.mmp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/spsettings/backuphelper/group/spsbackuphelper.mmp	Thu Jul 22 16:38:43 2010 +0100
@@ -35,4 +35,5 @@
 LIBRARY      euser.lib
 LIBRARY      serviceprovidersettings.lib
 LIBRARY      centralrepository.lib
+LIBRARY      abclient.lib
 
--- a/convergedcallengine/spsettings/backuphelper/inc/spsbackuphelpermonitor.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/spsettings/backuphelper/inc/spsbackuphelpermonitor.h	Thu Jul 22 16:38:43 2010 +0100
@@ -68,6 +68,11 @@
     TBool NoBackupRestore( TInt aBackupStateValue );
     
     /**
+     * Check the sbs status
+     */
+    void CheckStatusL();
+    
+    /**
      * Subscribe P&S key
      */
     void Subscribe();
@@ -86,6 +91,11 @@
 
 private:
     /**
+     * Active backup client
+     */
+    CActiveBackupClient* iABClient;
+    
+    /**
      * Performs restore finalization
      */
     CSpsBackupHelperPerformer* iPerformer;
--- a/convergedcallengine/spsettings/backuphelper/src/spsbackuphelpermonitor.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/spsettings/backuphelper/src/spsbackuphelpermonitor.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -44,6 +44,7 @@
     Cancel();
     iProperty.Close();
     delete iPerformer;
+    delete iABClient;
     }
 
 // ---------------------------------------------------------------------------
@@ -74,6 +75,14 @@
     // Check current state to see if we were started for backup purposes
     iProperty.Get(backupStateValue);
     
+    if (!NoBackupRestore(backupStateValue))
+        {
+        iABClient = CActiveBackupClient::NewL();
+            
+        // Confirm that this data owner is ready for backup/restore operations
+        iABClient->ConfirmReadyForBURL(KErrNone);
+        }
+    
     // Subscribe to the P&S flag to catch transitions
     Subscribe();
     
@@ -143,8 +152,8 @@
     {
     // Not set or no backup or restore ongoing
     TBool ret = 
-        ( ( aBackupStateValue == conn::EBURUnset ) ||
-        ( aBackupStateValue == conn::EBURNormal ) );
+        ( ( aBackupStateValue & KBURPartTypeMask ) == conn::EBURUnset ||
+        ( aBackupStateValue & KBURPartTypeMask ) == conn::EBURNormal );
     
     return ret;
     }
@@ -174,10 +183,8 @@
     // re-subscribe to the flag to monitor future changes
     Subscribe();
 
-    iProperty.Get(backupStateValue);
+    CheckStatusL();
 
-    // Process the mode change accordingly
-    ProcessBackupStateL(backupStateValue);
     XSPSLOGSTRING( "CSpsBackupHelperMonitor::RunL OUT" );
     }
 
@@ -200,5 +207,56 @@
     iProperty.Cancel();
     }
 
+void CSpsBackupHelperMonitor::CheckStatusL()
+    {
+    TInt backupInfo =0;
+    iProperty.Get(backupInfo);
+    
+    // Process the mode change accordingly
+    ProcessBackupStateL(backupInfo);
+
+    if (NoBackupRestore(backupInfo))
+        {
+        delete iABClient;
+        iABClient = NULL;
+        }
+    else 
+        {
+        if (iABClient == NULL)
+            {
+            iABClient = CActiveBackupClient::NewL();
+            }
+        
+        TDriveList driveList;
+        TBURPartType partType;
+        TBackupIncType incType;
+        TInt err;
+        TRAP(err, iABClient->BURModeInfoL(driveList, partType, incType));
+        if (err != KErrNone)
+            {
+            XSPSLOGSTRING("BURModeInfoL error");
+            }
+        
+        TBool amIaffected = ETrue;
+        
+        if (partType == EBURRestorePartial || partType == EBURBackupPartial)
+            {
+            TRAP(err, amIaffected = iABClient->DoesPartialBURAffectMeL());
+            if (err != KErrNone)
+                {
+                User::After(5000000);
+                TRAP(err, amIaffected = iABClient->DoesPartialBURAffectMeL());
+                }
+            }
+        
+        if (amIaffected)
+            {
+            // Confirm that this data owner is ready for backup/restore operations
+            iABClient->ConfirmReadyForBURL(KErrNone);
+            }
+        }
+    }
+
+
 // End of file
 
--- a/convergedcallengine/spsettings/group/bld.inf	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/spsettings/group/bld.inf	Thu Jul 22 16:38:43 2010 +0100
@@ -32,7 +32,7 @@
 
 // Generic configuration interface for component cenrep settings  
 ../conf/spsettings.confml                       MW_LAYER_CONFML(spsettings.confml)
-../conf/spsettings_10282e7f.crml            MW_LAYER_CRML(spsettings_10282e7f.crml)
+../conf/spsettings_10282E7F.crml            MW_LAYER_CRML(spsettings_10282E7F.crml)
 
 PRJ_MMPFILES
 serviceprovidersettings.mmp
--- a/convergedcallengine/spsettings/src/spsbufferedpublisher.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/convergedcallengine/spsettings/src/spsbufferedpublisher.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -142,7 +142,7 @@
         }
     
     // Start reading
-    while( lastModified != iIndex )
+    while( lastModified != iIndex ) 
         {
         iIndex++;
         
@@ -151,8 +151,7 @@
             // Skip index if real index is same as KRealGlobalIndex
             iIndex++;
             }
-
-        aData.Append( At(data, iIndex) );
+        aData.AppendL( At(data, iIndex) );
         }
 
     }
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmMessageHandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmMessageHandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmNetworkCellReselectionHandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWGsmSessionImplementation.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkMCNEngine.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkSystemEventMonitor.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagBaseEngine.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagCbEngine.h	Thu Jul 22 16:38:43 2010 +0100
@@ -22,11 +22,11 @@
 
 //  INCLUDES
 #include "MNWNetworkTimer.h"
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWGsmMessageHandler.h"
 #include "CNWNetworkHZCbCacheHandler.h"
 #include "MHZCachesInitialisationObserver.h"
-#include <MCbsMcnObserver.h> //For McbsMcnObserver
+#include <mcbsmcnobserver.h> //For McbsMcnObserver
 #include <rmmcustomapi.h>
 #include <e32property.h>
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagLcEngine.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagLcEngine.h	Thu Jul 22 16:38:43 2010 +0100
@@ -27,9 +27,9 @@
 
 // OLD INCLUDES
 #include "MNWNetworkTimer.h"
-#include "NWHandlingEngine.h"
+#include <nwhandlingengine.h>
 #include "CNWGsmMessageHandler.h"
-#include <MCbsMcnObserver.h> //For McbsMcnObserver
+#include <mcbsmcnobserver.h> //For McbsMcnObserver
 #include <rmmcustomapi.h>
 #include <e32property.h>
 
--- a/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmMessageHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmMessageHandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmNetworkCellReselectionHandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWGsmSessionImplementation.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkMCNEngine.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagBaseEngine.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagCbEngine.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/CNWNetworkViagLcEngine.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmSrc/GsmNetworkHandlingProxy.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWMessageHandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkModeMonitor.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkMonitorBase.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWNetworkRegistrationStatusReceiver.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWProgrammableOperatorNameCommand.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/cnwnetworkselectionsettingmonitor.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWMessageHandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkModeMonitor.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWNetworkRegistrationStatusMonitor.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/CNWSession.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -18,7 +18,7 @@
 
 
 // INCLUDE FILES
-#include    "CNWSession.h"
+#include    <cnwsession.h>
 
 
 // ============================ MEMBER FUNCTIONS ==============================
--- a/networkhandling/networkhandlingengine/NetworkHandlingSrc/cnwnetworkselectionsettingmonitor.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/networkhandling/networkhandlingengine/NetworkHandlingSrc/cnwnetworkselectionsettingmonitor.cpp	Thu Jul 22 16:38:43 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/EnPolicy/Src/SosEnPolicy/CSosEnPolicySatRefresh.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySatRefresh.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -23,8 +23,8 @@
 #include "csosemergencynumberpolicyhandler.h" 
 #include "csosenpolicysatrefresh.h" 
 
-#include <RSatRefresh.h> 
-#include <RSatSession.h> 
+#include <rsatrefresh.h> 
+#include <rsatsession.h> 
 
 #include  <startupdomainpskeys.h> // Property values
 
--- a/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h	Thu Jul 22 16:38:43 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/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -82,7 +82,10 @@
 void CPhCltEmergencyCallImpl::RunL()
     {
     // inform observer
-    iObserver->HandleEmergencyDialL( iStatus.Int() );
+    if(iObserver)
+        {
+        iObserver->HandleEmergencyDialL( iStatus.Int() );
+        }
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneclientserver/phoneclient/Src/ImageHandler/RPhCltImageHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/Src/ImageHandler/RPhCltImageHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -184,7 +184,9 @@
             ( TPhCltExtOperatorLogoType )
             aImages.iImages[ EPhCltExtLogoTypeIndex ],
             bitMap );
-        iOperatorLogos.Append( logo );
+        CleanupStack::PushL(logo);
+        iOperatorLogos.AppendL( logo );
+        CleanupStack::Pop(logo);
         }
     }
 
@@ -198,12 +200,14 @@
     {
     // Remove all first.
     iVTBitMaps.ResetAndDestroy();
-
+    iVTBitMaps.ReserveL(aImages.iImageCount);
     for ( TInt i = 0 ; i < aImages.iImageCount; i ++ )
         {
         CFbsBitmap* bitMap = 
             CreateBitMapL( aImages.iImages[ i ] );
-        iVTBitMaps.Append( bitMap );
+        CleanupStack::PushL( bitMap );
+        iVTBitMaps.AppendL( bitMap );
+        CleanupStack::Pop(bitMap);
         }
     }
 
--- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp	Thu Jul 22 16:38:43 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/Src/UssdWrapper/CPhCltUssdNoteController.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -25,8 +25,9 @@
 #include "cphcltussdnotecontroller.h" 
 #include "tflogger.h"
 
-_LIT(KFilename, "phcltsrvussd.ts");
-_LIT(KPath, "z://data");
+_LIT(KUssdLocFilename, "ussd_");
+_LIT(KCommonLocFilename, "common_");
+_LIT(KPath, "z:\\resource\\qt\\translations");
 _LIT(KUssdRequesting, "txt_common_info_requesting"); // Requesting
 _LIT(KUssdDone, "txt_ussd_dpopinfo_done"); // Done
 _LIT(KUssdNotDone, "txt_ussd_dpopinfo_not_done"); // NotDone
@@ -34,6 +35,7 @@
 _LIT(KUssdUnconfirmed, "txt_ussd_dpopinfo_unconfirmed"); // Unconfirmed
 _LIT(KUssdNoService, "txt_ussd_dpopinfo_no_service"); // NoService
 _LIT(KUssdOffline, "txt_ussd_dpopinfo_offline_not_possible"); // Offline
+_LIT(KUssdHide, "txt_common_button_hide"); // Hide
 
 const int KPhCltUssdProgressBarMaxLength = 10;
 // ============================ MEMBER FUNCTIONS ===============================
@@ -64,11 +66,7 @@
 //
 void CPhCltUssdNoteController::ConstructL()
     {
-    TFLOGSTRING( "CPhCltUssdNoteController: ConstructL\
-             init in" ) 
-    iIsResolverSuccess = HbTextResolverSymbian::Init(KFilename, KPath);
-    TFLOGSTRING2("CPhCltUssdNoteController: ConstructL\
-             init filename iIsResolverSuccess = %d", iIsResolverSuccess ) 
+    TFLOGSTRING( "CPhCltUssdNoteController: ConstructL call_exit" ) 
     }
 
 // -----------------------------------------------------------------------------
@@ -108,7 +106,9 @@
     {
     TFLOGSTRING2("CPhCltUssdNoteController: ShowGlobalInformationNoteL\
             aInfoType = %d call", aInfoType)
-
+    iIsResolverSuccess = HbTextResolverSymbian::Init( KUssdLocFilename, KPath );
+    TFLOGSTRING2("CPhCltUssdNoteController: ShowGlobalInformationNoteL\
+        ussd iIsResolverSuccess = %d", iIsResolverSuccess ) 
     HBufC* temp(NULL);
     switch ( aInfoType )
         {
@@ -168,6 +168,9 @@
     {
     TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL call")
     DestroyGlobalWaitNote();
+    iIsResolverSuccess = HbTextResolverSymbian::Init( KCommonLocFilename, KPath );
+    TFLOGSTRING2("CPhCltUssdNoteController: ConstructL\
+        init common iIsResolverSuccess = %d", iIsResolverSuccess ) 
     //CHbDeviceProgressDialogSymbian
     iGlobalWaitNote = CHbDeviceProgressDialogSymbian::NewL(
             CHbDeviceProgressDialogSymbian::EProgressDialog );
@@ -177,8 +180,9 @@
     iGlobalWaitNote->SetObserver( this );
     TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL before setactive")
     iGlobalWaitNote->SetRange(0,KPhCltUssdProgressBarMaxLength);
-    iGlobalWaitNote->SetProgressValue(KPhCltUssdProgressBarMaxLength);
-    iGlobalWaitNote->SetAutoClose(EFalse);
+    iGlobalWaitNote->SetProgressValue( KPhCltUssdProgressBarMaxLength );
+    iGlobalWaitNote->SetAutoClose( EFalse );
+    iGlobalWaitNote->SetButtonTextL( LoadDefaultStringL( KUssdHide )->Des() );
     iGlobalWaitNote->ShowL();
     CleanupStack::Pop( iGlobalWaitNote );
     TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL after setactive")
Binary file phoneclientserver/phoneclient/conf/telephonyservices.confml has changed
--- a/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/etel_mock.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/etel_mock.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_ussd.h	Thu Jul 22 16:38:43 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/phoneserver/Src/ImageHandler/CPhSrvSubSessionImageHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneserver/Src/ImageHandler/CPhSrvSubSessionImageHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -721,8 +721,9 @@
         bitMap );
     aImages.iImages[ EPhCltExtOperatorLogoIndex ] = bitMap->Handle();
     aImages.iImageCount = 1;
-    iOperatorLogos.Append( logoContainer );
-    
+    CleanupStack::PushL(logoContainer);
+    iOperatorLogos.AppendL( logoContainer );
+    CleanupStack::Pop(logoContainer);
     CleanupStack::Pop( bitMap );
     CleanupStack::PopAndDestroy( hbuf );
     
--- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -49,10 +49,12 @@
 
 // CONSTANTS
 const TInt KPhSrvDefaultValue = 0x00000000;
-// const TInt KPhSrvUssdNoTone = 0; // See SharedDataKeysVariant.h or NcnListInternalPSKeys.h
+// See SharedDataKeysVariant.h or NcnListInternalPSKeys.h
+// const TInt KPhSrvUssdNoTone = 0; 
 // const TInt KPhSrvUssdTimeOutObserverGranularity = 2;
 // const TInt KPhSrvUssdSentMessageObserverGranularity = 2;
-const TInt KPhSrvUssdAppUID = 0x10005955;
+// See KUssdSecureId in phcltclientserver.h
+//const TInt KPhSrvUssdAppUID = 0x10005955; 
 
 const TInt KPhSrvUssdMessageQueryInterval = 500000; // 0.5 sec
 //const TInt KPhSrvUssdNoteExitPeriod = 500000; // 0.5 sec
@@ -86,8 +88,9 @@
 const TUint KPhSrvUssdTimeout = 300000000;
 
 // Use QT style localization
-_LIT(KUssdLocFilename, "phcltsrvussd.ts");
-_LIT(KUssdLocPath, "z://data");
+_LIT(KUssdLocFilename, "ussd_");
+_LIT(KCommonLocFilename, "common_");
+_LIT(KLocPath, "z:\\resource\\qt\\translations");
 _LIT(KUssdReply, "txt_ussd_button_reply"); // Reply
 _LIT(KUssdExit, "txt_ussd_button_exit"); // Exit
 _LIT(KUssdNext, "txt_ussd_button_next"); //Next
@@ -458,8 +461,8 @@
     {
     _DPRINT( 4, "PhSrv.ConstructL.Start" );
     iTextResolver = HbTextResolverSymbian::Init( 
-        KUssdLocFilename, KUssdLocPath );
-    _DDPRINT( 4, "PhSrv.ConstructL.loc:", iTextResolver );
+        KUssdLocFilename, KLocPath );
+    _DDPRINT( 4, "PhSrv.ConstructL.ussd loc:", iTextResolver );
     User::LeaveIfError( iTimer.CreateLocal() );
 
     User::LeaveIfError( iMobileUssdMessaging.Open( aPhoneInterface.PhSrvMobilePhone() ) );
@@ -731,7 +734,7 @@
     _DPRINT( 4, "PhSrv.UssdAppTaskExists.wsSession.Connect" );
     CleanupClosePushL(wsSession);
     TApaTaskList tasklist(wsSession);
-    TApaTask task = tasklist.FindApp(TUid::Uid(KPhSrvUssdAppUID));
+    TApaTask task = tasklist.FindApp( KUssdSecureId );
     ret = task.Exists();
 
     CleanupStack::PopAndDestroy();
@@ -1422,6 +1425,9 @@
             }
         if ( iClearArray )
             {
+            iTextResolver = HbTextResolverSymbian::Init( 
+                KCommonLocFilename, KLocPath );
+            _DPRINT( 4, "PhSrv.LGMQ.use common loc file" );
             // Yes, No
             iDeviceDialog->SetButton(
                 CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue );               
@@ -1434,6 +1440,9 @@
                 CHbDeviceMessageBoxSymbian::ERejectButton, 
                 LoadDefaultString( KUssdNo ) );  
             _DPRINT( 4, "PhSrv.LGMQ.Yes&No" );
+            iTextResolver = HbTextResolverSymbian::Init( 
+                KUssdLocFilename, KLocPath );
+            _DPRINT( 4, "PhSrv.LGMQ.back up to use ussd loc file" );
             }
         iReceivedMessage.Zero();
         iReceivedMessage = (*iNotifyArray)[0];
@@ -1720,7 +1729,7 @@
 
     // Find the task with name
     TApaTaskList tasklist( wsSession );
-    TApaTask task = tasklist.FindApp( TUid::Uid( KPhSrvUssdAppUID ) );
+    TApaTask task = tasklist.FindApp( KUssdSecureId );
 
     // If task exists, bring it to foreground
     if ( task.Exists() )
@@ -1737,13 +1746,12 @@
         CleanupClosePushL( apaLsSession );
 
         TApaAppInfo appInfo;
-        TInt err = apaLsSession.GetAppInfo(
-            appInfo,
-            TUid::Uid( KPhSrvUssdAppUID )  );
+        
+        TInt err = apaLsSession.GetAppInfo( appInfo, KUssdSecureId );
+        _DDPRINT( 4, "PhSrv.RequestStartEditingL.GetAppInfo ", err );     // debug print
+        
         if ( err == KErrNone )
             {
-            _DDPRINT( 4, "PhSrv.RequestStartEditingL.GetAppInfo ", err );     // debug print
-
         #ifndef SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1
             CApaCommandLine* apaCommandLine = CApaCommandLine::NewLC();
             apaCommandLine->SetExecutableNameL( appInfo.iFullName );
@@ -1752,14 +1760,16 @@
                 CApaCommandLine::NewLC( appInfo.iFullName );
         #endif // SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1
 
-            err = apaLsSession.StartApp( *apaCommandLine );
+            TThreadId id( static_cast<TInt64>( 0 ) );
+            err = apaLsSession.StartApp( *apaCommandLine, id );
+            _DDPRINT( 4, "PhSrv.RequestStartEditingL.ThreadId ", id ); 
             CleanupStack::PopAndDestroy( apaCommandLine );
             }
-        CleanupStack::PopAndDestroy(); // apaLsSession
+        CleanupStack::PopAndDestroy( &apaLsSession ); // apaLsSession
         
         // bring the ussd editor to foreground, only for testing
         TApaTaskList tasklist( wsSession );
-        TApaTask task = tasklist.FindApp( TUid::Uid( KPhSrvUssdAppUID ) );
+        TApaTask task = tasklist.FindApp( KUssdSecureId );
         if ( task.Exists() )
             {
             _DPRINT( 4, "PhSrv.UssdM.RequestStartEditingL.task.BringToForeground" );
--- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h	Thu Jul 22 16:38:43 2010 +0100
@@ -213,11 +213,6 @@
             const TRemConExtCallHandlingApiOperationId aOperation );
         
         /**
-        * Initializes speed dial.
-        */
-        void InitializeSpeedDialL();
-        
-        /**
         * Returns call status.
         */
         void CallStatusL( RPhone::TLineInfo& aLineInfo );
--- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDTMF.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDTMF.h	Thu Jul 22 16:38:43 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include "phonehandlercallbase.h" 
-#include <remconextensionapi.h> 
+#include <RemConExtensionApi.h> 
 
 // CONSTANTS
 
--- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonecmdhandler/phonecmdhnlr/src/PhoneHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,7 +19,7 @@
 // INCLUDE FILES
 #include "phonehandlercontrol.h" 
 #include "phonehandlerdebug.h" 
-#include "phonehandler.h" 
+#include "PhoneHandler.h" 
 
 // EXTERNAL DATA STRUCTURES
 
--- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -485,15 +485,9 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-void CPhoneHandlerControl::SpeedDial( const TInt aIndex )
-    {
-    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() aIndex=%d", aIndex );
-
-    iIndex = aIndex;
-    
-    StartProcessing( ERemConExtSpeedDial );
-    
-    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() end" );
+void CPhoneHandlerControl::SpeedDial( const TInt /*aIndex*/ )
+    {    
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() - Not Supported" );
     }
 
 // -----------------------------------------------------------------------------
@@ -695,16 +689,6 @@
             pService = CPhoneHandlerDTMF::NewL( *this );
             break;  
             }
-            
-        case ERemConExtSpeedDial:
-            {
-            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtSpeedDial command" );
-                        
-            InitializeSpeedDialL();
-            pService = CPhoneHandlerDialCall::NewL( *this, 
-                                                    aOperation );
-            break;  
-            } 
                     
         default:
             {
@@ -718,15 +702,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneHandlerControl::InitializeSpeedDialL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPhoneHandlerControl::InitializeSpeedDialL()
-    {
-    }
-
-// -----------------------------------------------------------------------------
 // CPhoneHandlerControl::SwitchCall
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
--- a/phonesrv.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -22,10 +22,11 @@
 :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
+SUBDIRS += cellular/psuinotes
 }
--- a/phonesrv_plat/call_information_api/tsrc/group/MT_CallInformation.mmp	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/group/MT_CallInformation.mmp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/CPEMessageWaiter.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/CPhoneEngineCreator.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/call_information_api/tsrc/src/MT_CallInformation_DllMain.cpp	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/group/bld.inf	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/CCbsMcnListener.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/CMcn.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/RCbsMcnSession.h	Thu Jul 22 16:38:43 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_mcn_client_api/inc/RMcnSubSession.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h	Thu Jul 22 16:38:43 2010 +0100
@@ -23,7 +23,7 @@
 #define RMCNSUBSESSION_H
 
 // INCLUDES
-#include "CbsMcnCommon.h"
+#include "cbsmcncommon.h"
 
 //  FORWARD DECLARATIONS
 class CMcnTopicArray;
--- a/phonesrv_plat/cbs_message_api/group/bld.inf	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_message_api/group/bld.inf	Thu Jul 22 16:38:43 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)
--- a/phonesrv_plat/cbs_message_api/inc/ccbsmessageclient.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/cbs_message_api/inc/ccbsmessageclient.h	Thu Jul 22 16:38:43 2010 +0100
@@ -26,7 +26,7 @@
 #define     CCBSMESSAGECLIENT_H
 
 // INCLUDES
-#include "CbsCommonTypes.h"
+#include "cbscommontypes.h"
 
 //  CLASS DECLARATION
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/default_emergency_numbers_api/default_emergency_numbers_api.metaxml	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/dialpad_api/group/bld.inf	Thu Jul 22 16:38:43 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/dialpad.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/dialpad_api/inc/dialpad.h	Thu Jul 22 16:38:43 2010 +0100
@@ -48,6 +48,8 @@
     HbLineEdit& editor() const;
 
     bool isOpen() const;
+    
+    bool isCallButtonEnabled() const;
 
 public slots:
     void openDialpad();
@@ -63,18 +65,14 @@
                const QStyleOptionGraphicsItem* option,
                QWidget* widget);
                
-    bool sceneEvent(QEvent *event);
-
-    bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
-
-    bool handleSceneEvent(QEvent *event);
-
     void showEvent(QShowEvent *event);
 
     void hideEvent(QHideEvent *event);
 
     void closeEvent(QCloseEvent * event);
 
+    void gestureEvent(QGestureEvent *event);
+
 protected slots:
     void closeAnimValueChanged(qreal value);
     void closeAnimFinished();
@@ -101,8 +99,6 @@
     DialpadInputField* mInputField;
     DialpadKeypad* mKeypad;
     DialpadMultitapHandler* mMultitap;
-    int mMouseButtonPressedDown;
-    QTime mSwipeTimer;
     QTimeLine mOpenTimeLine;
     QTimeLine mCloseTimeLine;
     bool mAnimationOngoing;
--- a/phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -22,8 +22,11 @@
 
 class Dialpad;
 class DialpadVoiceMailboxEventFilter;
+class DialpadVideoMailboxEventFilter;
 class DialpadBluetoothEventFilter;
 class DialpadKeySequenceEventFilter;
+class DialpadEmergencyCallEventFilter;
+class DialpadHashEventFilter;
 class HbMainWindow;
 
 #ifdef BUILD_DIALPADKEYHANDLER
@@ -31,6 +34,7 @@
 #else
 #define DIALPADKEYHANDLER_EXPORT Q_DECL_IMPORT
 #endif
+
 /*!
     DialpadKeyHandler
     Class provides key handling for dialpad component.
@@ -39,21 +43,59 @@
     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,
+        /*! Enables and disables silent mode with a long '#' key press. */
+        Hash    = 0x23
+    };
+    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;
+    QScopedPointer<DialpadHashEventFilter> mHashFilter;
 };
 
 #endif // DIALPADKEYHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/dialpad_api/inc/dialpadvtkeyhandler.h	Thu Jul 22 16:38:43 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/group/bld.inf	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/group/bld.inf	Thu Jul 22 16:38:43 2010 +0100
@@ -56,4 +56,5 @@
 #include "../call_remote_party_information_api/group/bld.inf"
 #include "../telephony_mediator_api/group/bld.inf"
 #include "../dialpad_api/group/bld.inf"
+#include "../phone_settings_ui_notes_api/group/bld.inf"
 // End of file
--- a/phonesrv_plat/phone_settings_api/inc/MPsetNetworkSelect.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/phone_settings_api/inc/MPsetNetworkSelect.h	Thu Jul 22 16:38:43 2010 +0100
@@ -80,7 +80,8 @@
         enum TNetworkAccess
             {
             ENetNetworkGSM,
-            ENetNetworkWCDMA
+            ENetNetworkWCDMA,
+            ENetNetworkGSMandWCDMA
             };
 
         //Information about network
--- a/phonesrv_plat/phone_settings_api/inc/PsetSAObserver.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/phone_settings_api/inc/PsetSAObserver.h	Thu Jul 22 16:38:43 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/phone_settings_api/inc/psetcalldivertingwrapper.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h	Thu Jul 22 16:38:43 2010 +0100
@@ -124,9 +124,22 @@
 
     /**
      * Get voicemailbox number.
+     * @param aNumber empty if not set
+     * @return -1 if not supported
      */
-    void getVoiceMailBoxNumber(QString &aNumber);
+    int getVoiceMailBoxNumber(QString &aNumber, PsService aService);
+    
+    /**
+     * Query voicemailbox number.
+     * @param aNumber empty if not set
+     * @return -1 if not supported
+     */
+    int queryVoiceMailBoxNumber(QString &aNumber, PsService aService);
 
+    /**
+     * Get CPsetCallDiverting reference.
+     */
+    CPsetCallDiverting & getCPsetCallDiverting() const;
 
 signals: // Notify via signals     
 
--- a/phonesrv_plat/phone_settings_api/inc/psetcallwaitingwrapper.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/phone_settings_api/inc/psetcallwaitingwrapper.h	Thu Jul 22 16:38:43 2010 +0100
@@ -83,6 +83,11 @@
     * Cancels the call waiting-request process.
     */
     void cancelProcess();
+    
+    /**
+    * Get CPsetCallwaiting reference.
+    */
+    CPsetCallWaiting &  getCPsetCallWaiting() const;
 
 signals: // Notify via signals     
 
--- a/phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h	Thu Jul 22 16:38:43 2010 +0100
@@ -88,7 +88,8 @@
     
     enum NetworkAccessType {
         AccessTypeGsm, 
-        AccessTypeWcdma
+        AccessTypeWcdma,
+        AccessTypeGsmAndWcdma
     };
 
     struct NetworkInfo {
@@ -126,6 +127,8 @@
     void getNetworkAccessMode() const;
 
     void setNetworkAccessMode(PSetNetworkWrapper::NetworkAccessMode mode);
+    
+    bool isManualNetworkSelectionSupported() const;
 
 signals:
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_ui_notes_api/group/bld.inf	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2006 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:  File that exports the files belonging to 
+				Phone Settings UI Notes API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/psuinotes.h     MW_LAYER_PLATFORM_EXPORT_PATH(psuinotes.h)
+../inc/psuilocalisation.h     MW_LAYER_PLATFORM_EXPORT_PATH(psuilocalisation.h)
+../inc/psuiwaitingnotehandler.h     MW_LAYER_PLATFORM_EXPORT_PATH(psuiwaitingnotehandler.h)
+../inc/psuidivertnotehandler.h     MW_LAYER_PLATFORM_EXPORT_PATH(psuidivertnotehandler.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_ui_notes_api/inc/psuidivertnotehandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,85 @@
+/*
+ * 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 PSUIDIVERTNOTETHANDLER_H_
+#define PSUIDIVERTNOTEHANDLER_H_
+
+#include <QObject>
+#include <QList>
+
+class PSetCallDivertingWrapper;
+class PSCallDivertingCommand;
+class PSCallDivertingStatus;
+
+#ifdef BUILD_PSUINOTES
+#define PSUINOTES_EXPORT Q_DECL_EXPORT
+#else
+#define PSUINOTES_EXPORT Q_DECL_IMPORT
+#endif
+
+class PSUINOTES_EXPORT PsUiDivertNoteHandler : public QObject
+{
+    Q_OBJECT
+    
+public:
+    PsUiDivertNoteHandler(PSetCallDivertingWrapper& callDivertingWrapper);
+    ~PsUiDivertNoteHandler();
+
+public slots: // Slots: 
+
+   /**
+    * Set info request results
+    * @param setting 
+    * @param plural
+    */
+   void handleDivertingChanged(
+        const PSCallDivertingCommand& setting, 
+        bool plural);
+   
+   /**
+    * Get info request results
+    * @param divertList
+    * @param plural
+    */
+   void handleDivertingStatus(
+        QList<PSCallDivertingStatus*>& divertList, 
+        bool plural);
+   
+   /**
+    * Request failed.
+    * @param reason Reason code for fail 
+    */
+   void handleDivertingError(int reason);
+ 
+   /**
+    * Handles requesting notes.
+    *
+    * @param aOngoing Is there a request going on.
+    * @param aInterrupted Request needs to immediately cancelled.
+    */
+   void handleCFRequesting(bool ongoing, bool interrupted);
+   
+private:   // data
+    
+   PSetCallDivertingWrapper& m_callDivertingWrapper;
+   
+   int m_activeNoteId;
+   int m_activeProgressNoteId;
+   
+};
+
+#endif /* PSUIDIVERTNOTEHANDLER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_ui_notes_api/inc/psuilocalisation.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,65 @@
+/*
+ * 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 PSUILOCALISATION_H_
+#define PSUILOCALISATION_H_
+
+#include <QObject>
+#include <QList>
+
+// Forward declarations 
+class QTranslator; 
+
+#ifdef BUILD_PSUINOTES
+#define PSUINOTES_EXPORT Q_DECL_EXPORT
+#else
+#define PSUINOTES_EXPORT Q_DECL_IMPORT
+#endif
+
+class PSUINOTES_EXPORT PsUiLocalisation: public QObject
+    {
+    Q_OBJECT
+    
+public: 
+    
+    enum TranslationFileId {
+        TranslationFileCommon, 
+        TranslationFileTelephoneCp
+    }; 
+        
+public:
+    
+    PsUiLocalisation(QObject *parent = NULL);
+    ~PsUiLocalisation();
+
+    /**
+     * Installs specific translation file
+     * @param translationFileId Id of file to be installed
+     */
+    bool installTranslator(TranslationFileId translationFileId);
+    
+    /**
+     * Removes installed translators
+     */
+    void removeTranslators();
+
+private:     
+    
+    QList<QTranslator *> m_translators;
+    };
+
+
+#endif /* PSUILOCALISATION_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_ui_notes_api/inc/psuinotes.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,222 @@
+/*
+ * 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 PSUINOTES_H
+#define PSUINOTES_H
+
+#include <QObject>
+#include <QString>
+#include <QQueue>
+#include <hbmessagebox.h>
+#include <psetcalldivertingwrapper.h>
+
+#ifdef BUILD_PSUINOTES
+#define PSUINOTES_EXPORT Q_DECL_EXPORT
+#else
+#define PSUINOTES_EXPORT Q_DECL_IMPORT
+#endif
+
+class HbInputDialog;
+class QValidator;
+class QTranslator; 
+class PsUiLocalisation;
+class PsUiSettingsWrapper;
+
+class PSUINOTES_EXPORT PsUiNotes: public QObject
+{
+    Q_OBJECT
+    
+public:
+
+    static PsUiNotes* instance();
+    
+private: 
+    
+    PsUiNotes();
+    
+    ~PsUiNotes();
+
+    Q_DISABLE_COPY(PsUiNotes)
+    
+signals:
+    
+    /**
+     This signal is emitted when the device progress dialog is cancelled by 
+     user pressing the "cancel" button or by the application itself.
+     @param     noteId      On return contains unique note identifier.
+     */
+    void progressNoteCanceled();
+    
+    /**
+     This signal is emitted when the user coplete password query.
+     @param password            On return contains user given password.
+     @param ok                  True if the user pressed OK, false if the user 
+                                pressed Cancel.
+     */
+    void passwordQueryCompleted(
+        QString password,
+        bool okPressed);
+    
+public slots: // Slots: 
+    
+    /**
+     Shows global progress note. Note showing may be delayed if other note 
+     showing is ongoing. 
+     @param     noteId      On return contains unique note identifier.
+     @param     text        Text to show on a note.
+     */
+    void showGlobalProgressNote(int &noteId, const QString& text);
+    
+    /**
+     Shows global note. Note showing may be delayed if other note 
+     showing is ongoing. 
+     @param     noteId      On return contains unique note identifier.
+     @param     text        Text to show on a note.
+     @param     noteType    Note type.
+     */
+    void showGlobalNote(int &noteId, const QString& text, 
+        HbMessageBox::MessageBoxType noteType);
+    
+    /**
+     Shows global error note. Note showing may be delayed if other note 
+     showing is ongoing. 
+     @param     noteId      On return contains unique note identifier.
+     @param     errorCode   Code specifying error situation. 
+     */
+    void showGlobalErrorNote(int &noteId, int errorCode);
+    
+    
+    /**
+     Shows detailed call divert information about the selected divert service
+     group.
+     @param     divertStatusList    Divert status information.
+     */
+    void showCallDivertDetails(
+        const QList<PSCallDivertingStatus*> &divertingStatusList);
+    
+    /**
+     Shows password query dialog with OK & Cancel buttons and returns user
+     given password unless user has canceled query. Only valid password is
+     accepted.
+     @param title               Title for the query dialog.
+     @param validator           Password validator.
+     @param maxPasswordLength   Maximum length for the password.
+     */
+    void showPasswordQueryDialog(
+        const QString &title,
+        const QValidator &validator,
+        int maxPasswordLength);
+    
+    /**
+     Cancels specified note.
+     @param     noteId      Note identifier.
+     */
+    void cancelNote(int noteId);
+    
+    /**
+     Retuns true if note is currently shown.
+     */
+    bool noteShowing();
+    
+    /**
+     Slot for HbDialog finished signal.
+     */
+    void finishedPasswordQueryDialog(HbAction* action);
+
+    /**
+     Shows notification dialog. 
+     @param     text        Text to show on a dialog.
+     */
+    void showNotificationDialog(const QString& text);
+    
+    /**
+    Shows global notification dialog. 
+    @param     text        Text to show on a dialog.
+    */
+    void showGlobalNotificationDialog(const QString& text);
+
+private:
+    
+    /**
+     Formats phone number according to locale specific rules.
+     @param     number          Unformatted phone number.
+     @return    Formatted number.
+     */
+    QString formatPhoneNumber(QString number) const;
+    
+    /**
+     Launches next note in the queue if not busy with showing other 
+     note currently.
+     */
+    void launchNextNoteIfReady();
+    
+    /**
+     Formats the active diverts note content text
+     @param     divertinStatusList Status of diverts
+     @param     text Contains formatted text on return
+     */
+       void formatActiveDivertsNoteText(
+           const QList<PSCallDivertingStatus*> &divertingStatusList,
+           QString &text);
+
+private slots:
+    
+    /**
+     Handler method for notes' about to close signal.
+     */
+    void activeNoteAboutToClose();
+    
+    /**
+     Handler method for notes' canceled signal.
+     */
+    void handleProgressNoteCanceled();
+    
+    /**
+     Used for dynamic enable/disable of password dialog's OK button according
+     to validity of the currently inputted password.
+     */
+    void passwordTextChanged();
+    
+private: // Data: 
+
+    /**
+      Notes waiting to be shown.
+     */
+    QQueue<QObject*> *m_notesQueue;
+    
+    /**
+      Indicates whether note controller is busy with some note showing.
+     */
+    bool m_isNoteShowingOngoing;
+    
+    /**
+      Password query dialog. Own.
+     */
+    HbInputDialog *m_passwordDialog;
+
+    /**
+      Password validator. Not own.
+     */
+    const QValidator *m_passwordValidator;
+    
+    /**
+      Translators.
+     */
+    PsUiLocalisation *m_localisation; 
+
+    PsUiSettingsWrapper *m_psuiSettings;
+};
+#endif // PSUINOTES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_ui_notes_api/inc/psuiwaitingnotehandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,93 @@
+/*
+ * 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 PSUIWAITINGNOTEHANDLER_H_
+#define PSUIWAITINGNOTEHANDLER_H_
+
+#include <QObject>
+#include <QList>
+#include <psetcallwaitingwrapper.h>
+
+class PSetCallWaitingWrapper;
+class PSCallWaitingCommand;
+class PsUiSettingsWrapper;
+
+#ifdef BUILD_PSUINOTES
+#define PSUINOTES_EXPORT Q_DECL_EXPORT
+#else
+#define PSUINOTES_EXPORT Q_DECL_IMPORT
+#endif
+
+class PSUINOTES_EXPORT PsUiWaitingNoteHandler : public QObject
+{
+    Q_OBJECT
+    
+public:
+    PsUiWaitingNoteHandler(PSetCallWaitingWrapper& callWaitingWrapper);
+    ~PsUiWaitingNoteHandler();
+
+public slots: // Slots: 
+
+    /**
+     * Shows notes for call waiting status interrogation
+     * @param status    Status of the call waiting
+     * @param basicServiceGroupIds
+     */
+    void handleCallWaitingGetStatus( 
+        PSetCallWaitingWrapper::PsCallWaitingStatus status,
+        const QList<unsigned char> &basicServiceGroupIds);
+    
+    /**
+     * Shows notes for call waiting status change request
+     * @param setting   Type of the call waiting request  
+     * @param result    Result code of the request
+     */
+    void handleCallWaitingChanged( 
+        PSetCallWaitingWrapper::PsCallWaitingCommand setting,
+        int result );
+    
+    /**
+     * Handles call waiting requesting notes
+     * @param ongoing       If true, there is an active request   
+     * @param interrupted   If true, means that requesting note 
+     *                      should be cancelled
+     */
+    void handleCallWaitingRequesting( bool ongoing, bool interrupted ); 
+    
+    /**
+     * Handles call waiting error notes
+     * @param error     Error value   
+     */
+    void handleCallWaitingError( int error );
+
+private:   // data
+   
+    // For diverting signals
+    PSetCallWaitingWrapper& m_callWaitingWrapper;
+    
+    // Own.
+    PsUiSettingsWrapper* m_settingsWrapper;
+    
+    // Current active note id 
+    int m_activeNoteId;
+    
+    // Current progress note id
+    int m_activeProgressNoteId;
+   
+};
+
+#endif /* PSUIWAITINGNOTEHANDLER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/phone_settings_ui_notes_api/phone_settings_ui_notes_api.metaxml	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<api id="bb4622107e68f568ff4f711d62cc837b" dataversion="2.0">
+  <name>Phone Settings UI Notes API</name>
+  <description>Provides common interface for showing phone settings specific notes. Contains interface classes for showing supplementary services specific notes.</description>
+  <type>c++</type>
+  <collection>domain</collection>
+  <libs/>
+  <release category="platform" sinceversion=""/>
+  <attributes>
+    <htmldocprovided>yes</htmldocprovided>
+    <adaptation>no</adaptation>
+  </attributes>
+</api>
--- a/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h	Thu Jul 22 16:38:43 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include <e32std.h>
-#include <Etelsat.h>
+#include <etelsat.h>
 #include <msatrefreshobserver.h>
 
 // FORWARD DECLARATIONS
--- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmManufacturerHandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/string_parser_api/inc/CPhoneGsmManufacturerHandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -45,25 +45,20 @@
         * EBadPin2Unblock - bad PIN2 unblock request
         * EActivateRfsNormal - RFS activation
         * EActivateRfsDeep - RFS activation, deep version
-        * EActivateWarranty - Warranty application activation
         * EShowBtAddress - BT address display
         * EResetWallet - Wallet reset
-        * ELifeTimer - Life timer
         * EBTLoopback - BT RF loopback activation/deactivation
         * EBTDebugMode - BT debug mode activation
         */
         enum
             {
-            EShowVersion,
             EBadPinChange,
             EBadPin2Change,
             EBadPinUnblock,
             EBadPin2Unblock,
             EActivateRfsNormal,
             EActivateRfsDeep,
-            EActivateWarranty,
             EShowBtAddress,
-            ELifeTimer,
             EBTLoopback,
             EShowWlanMac,
             EBTDebugMode
--- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmMiscHandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/string_parser_api/inc/CPhoneGsmMiscHandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -36,11 +36,6 @@
     public: // New functions
         
         /**
-        * Process IMEI display.
-        */
-        virtual void ProcessShowIMEIL() = 0;
-
-        /**
         * Process USSD request.
         *
         * @param aString It is string to be sent.
--- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmParserBase.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/string_parser_api/inc/CPhoneGsmParserBase.h	Thu Jul 22 16:38:43 2010 +0100
@@ -70,7 +70,7 @@
 const TUint32 KPhoneGsmUidDialPhoneNumber = 3;
 
 /**
-* Misc GSM required strings, most notably USSD and IMEI.
+* Misc GSM required strings, most notably USSD.
 */
 const TUint32 KPhoneGsmUidMisc = 4;
 
@@ -104,8 +104,6 @@
 */
 const TUint32 KPhoneUidUnstructuredService = 
     PHONE_MAKE_UID( KPhoneGsmUidMisc, 0 );
-const TUint32 KPhoneUidIMEI =
-    PHONE_MAKE_UID( KPhoneGsmUidMisc, 1 );
 
 // FORWARD DECLARATIONS
 class CPhoneGsmParserResult;
--- a/phonesrv_plat/voice_mailbox_number_api/inc/cvoicemailbox.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/voice_mailbox_number_api/inc/cvoicemailbox.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/voice_mailbox_number_api/inc/voicemailboxdefs.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/phonesrv_plat/voice_mailbox_number_api/tsrc/mt_vmbxengine.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SendSSCmd/src/csatsendsshandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2007 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"
@@ -18,6 +18,7 @@
 
 #include    <cphcltussdsatclient.h>
 #include	<cphcltussd.h>
+#include    <exterror.h>
 
 #include    "MSatSystemState.h"
 #include    "MSatApi.h"
@@ -256,6 +257,9 @@
 
     // Allow next terminal response to be sent
     iTerminalRespSent = EFalse;
+    
+    iSendUssdRsp.iUssdString.iUssdString.FillZ();
+    iSendUssdRsp.iUssdString.iDcs = 0;
 
     RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus(
         iUtils->SystemState().GetNetworkRegistrationStatus() );
@@ -688,8 +692,17 @@
     else if ( TSatExtErrorUtils::IsExtendedError( aError ) ) // extended error
         {
         TUint8 addInfo( 0 );
+        if ( KErrGsmCCCallRejected == aError )   
+           {
+           LOG( SIMPLE, 
+           "SENDUSSD: CSendUssdHandler::HandleSendUssdResult permanent error" )	
+           // ussd request is rejected by SIM
+           iSendUssdRsp.iGeneralResult = RSat::KInteractionWithCCPermanentError;
+           iSendUssdRsp.iInfoType = RSat::KMeProblem;
+           addInfo = RSat::KActionNotAllowed;
+           }   
         // Check and map network failure
-        if ( TSatExtErrorUtils::IsNetworkError( aError ) )
+        else if ( TSatExtErrorUtils::IsNetworkError( aError ) )
             {
             LOG( SIMPLE, 
             "SENDUSSD: CSendUssdHandler::HandleSendUssdResult NetworkError" )
@@ -748,6 +761,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 +889,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/Commands/SetUpCallCmd/group/SetUpCallCmd.mmp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SetUpCallCmd/group/SetUpCallCmd.mmp	Thu Jul 22 16:38:43 2010 +0100
@@ -31,6 +31,7 @@
 SOURCE                  std.cpp
 SOURCE                  CSetUpCallHandler.cpp
 SOURCE                  csetupcallrequesthandler.cpp
+SOURCE                  csetupcalldtmfsender.cpp
 
 START RESOURCE          1000f005.rss
 TARGET                  SetUpCallCmd.rsc
@@ -48,7 +49,7 @@
 LIBRARY                 etelsat.lib
 LIBRARY                 etelmm.lib
 LIBRARY                 etel.lib
-LIBRARY                 SatEngine.lib
+LIBRARY                 satengine.lib
 
 #ifdef ENABLE_SAT_LOGGING
 LIBRARY                 flogger.lib
--- a/satengine/SatServer/Commands/SetUpCallCmd/inc/CSetUpCallHandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SetUpCallCmd/inc/CSetUpCallHandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -67,21 +67,6 @@
     */
     void SetupCallRequestComplete( const TInt aErrCode );
 
-    /**
-    * TSetupCallStatus
-    * setup call status, when there is an asynchronous
-    * operation is handling by the CSetupCallCallRequestHandler
-    * we will save some status information
-    */
-    enum TSetupCallStatus
-        {
-        ESetupCallIdle = 0,
-        ESetupCallDialWaiting,
-        ESetupCallTerminateWaiting,
-        ESetupCallEmergencyWaiting
-        };
-    
-    
 protected:
 
 // from base class CActive
@@ -252,11 +237,6 @@
     TBool iCallControlActive;
 
     /**
-     * Dial completion status
-     */
-    TInt iSetUpCallStatus;
-
-    /**
      * wait scheduler
      */
     CActiveSchedulerWait iWait;
--- a/satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h	Thu Jul 22 16:38:43 2010 +0100
@@ -24,6 +24,7 @@
 
 class CSetUpCallHandler;
 class MSatAsyncToSync;
+class CSetupCallDtmfSender;
 
 /**
 *  This is the handler for the ETel MM api Request.
@@ -32,7 +33,7 @@
 *
 */
 
-class CSetupCallRequestHandler : public CActive
+NONSHARABLE_CLASS ( CSetupCallRequestHandler ) : public CActive
     {
 public:
 
@@ -54,14 +55,14 @@
      * Access RMobileCall::DialNoFdnCheck by MSatMultiModeApi
      * for the paramter information please see the etelmm.h
      */
-    void DialNumber( const TDesC8& aCallParams, const TDesC& aTelNumber,
+    void DialNumber( const TDesC8& aCallParams, TDes& aTelNumber,
             TBool aTerminateOtherCall, MSatAsyncToSync* aAsyncToSync );
 
     /**
      * Access RMobileCall::DialEmergencyCall by MSatMultiModeApi
      * for the paramter information please see the etelmm.h
      */
-    void DialEmergencyCall( const TDesC& aTelNumber );    
+    void DialEmergencyCall( const TDesC& aTelNumber );
     
     /**
      * Cancel the asynchronous operations that required to the ETel MM api  
@@ -91,6 +92,11 @@
      */
     CSetupCallRequestHandler( MSatMultiModeApi& aPhone,
         CSetUpCallHandler* aDispatcher );
+    
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */ 
+    void ConstructL();
         
 private: // Data
 
@@ -100,15 +106,14 @@
     MSatMultiModeApi& iPhone;
         
     /**
-     * Pointer to SendSs command handler
+     * Pointer to SetupCall command handler
      */
     CSetUpCallHandler* iDispatcher;
-
+    
     /**
-     * Current call is an emergency call.
-     */
-    TBool iEmergencyCall;
-      
+     * Own. Dtmf sender
+     */    
+    CSetupCallDtmfSender* iDtmfSender;
     };
 
 #endif      // CSETUPCALLREQUESTHANDLER_H
--- a/satengine/SatServer/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -87,7 +87,6 @@
     LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::~CSetUpCallHandler calling" )
 
     Cancel();
-
     
     delete iRequestHandler;
     iRequestHandler = NULL;
@@ -537,7 +536,6 @@
     
     if( !iEmergencyCall )
         {
-        iSetUpCallStatus = ESetupCallIdle;
         CompleteSetupCallWithStatus( aErrCode );
         }
     else
@@ -568,7 +566,6 @@
         "SETUPCALL: CSetUpCallHandler::SetupCallRequestComplete exiting %d", aErrCode )
     }
 
-
 // -----------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
 // might leave.
@@ -624,7 +621,7 @@
     {
     LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::DoSetupCallL calling" )
     
-    if( CheckSetupCallParam () )
+    if( CheckSetupCallParam() )
         {
 
         RSat::TSetUpCallType callType( iSetUpCallData.iType );
@@ -939,6 +936,7 @@
             aNumber[i] = KExpansionChar;
             }
         }
+    
     LOG2( SIMPLE, 
     "SETUPCALL: CSetUpCallHandler::CheckNumber length of aNumber: %d",
      aNumber.Length() )
@@ -993,8 +991,7 @@
         }    
     LOG2( SIMPLE, 
     "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam exiting %d", valid )
+    
     return valid;        
     }
-
-
 // End Of File
--- a/satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,9 +19,9 @@
 #include <etelmm.h>
 #include <mmtsy_names.h>
 
-
 #include "csetupcallrequesthandler.h"
 #include "CSetUpCallHandler.h"
+#include "csetupcalldtmfsender.h"
 #include "msatasynctosync.h"
 #include "SatLog.h"
 
@@ -60,6 +60,8 @@
 
     CSetupCallRequestHandler* self =
         new ( ELeave ) CSetupCallRequestHandler( aPhone, aDispatcher );
+    
+    self->ConstructL();
  
     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL exiting" )
     return self;
@@ -76,17 +78,31 @@
             CSetupCallRequestHandler::~CSetupCallRequestHandler calling" )
     Cancel();
     iDispatcher = NULL;
+    
+    delete iDtmfSender;
+    iDtmfSender = NULL;
 
     LOG( SIMPLE, "SETUPCALL: \
             CSetupCallRequestHandler::~CSetupCallRequestHandler exiting" )
     }
 
 // -----------------------------------------------------------------------------
+// CSetupCallRequestHandler::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CSetupCallRequestHandler::ConstructL()
+{
+    LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::ConstructL calling" )
+    iDtmfSender = CSetupCallDtmfSender::NewL( iPhone );
+    LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::ConstructL exiting" )
+}
+
+// -----------------------------------------------------------------------------
 // CSetupCallRequestHandler::DialNumber
 // -----------------------------------------------------------------------------
 //
 void CSetupCallRequestHandler::DialNumber( const TDesC8& aCallParams,
-                  const TDesC& aTelNumber, TBool aTerminateOtherCall,
+                  TDes& aTelNumber, TBool aTerminateOtherCall,
                   MSatAsyncToSync* aAsyncToSync )
     {
     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" )
@@ -97,7 +113,7 @@
         {
         if( aAsyncToSync )
             {
-            iPhone.TerminateAllCalls( aAsyncToSync->RequestStatus() );
+            iPhone.TerminateActiveCalls( aAsyncToSync->RequestStatus() );
             terminateRes = aAsyncToSync->SetActiveAndWait();
             }
         else
@@ -112,6 +128,10 @@
         {
         if( KErrNone == terminateRes )
             {
+            // Separate dtmf string from whole number and store in iDtmfString
+            // the dtmf string will be removed from aTelNumber 
+            iDtmfSender->SeparateDtmfFromTelNumber(aTelNumber);
+            // Dial the pure tel number
             iPhone.DialNoFdnCheck( iStatus, aCallParams, aTelNumber );
             SetActive();
             }
@@ -138,7 +158,6 @@
      
     if( !IsActive() )
         {
-        iEmergencyCall = ETrue;
         iPhone.DialEmergencyCall( iStatus, aTelNumber );
         SetActive();
         }
@@ -147,7 +166,8 @@
         iDispatcher->SetupCallRequestComplete( KErrInUse );
         }
     
-    LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialEmergencyCall exiting" )
+    LOG( SIMPLE, 
+        "SETUPCALL: CSetupCallRequestHandler::DialEmergencyCall exiting" )
     }
 
 // -----------------------------------------------------------------------------
@@ -157,18 +177,16 @@
 //
 void CSetupCallRequestHandler::RunL()
     {
-    LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL calling" )
+    LOG2( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL calling\
+        iStatus=%i", iStatus.Int() )
+    
+    iDispatcher->SetupCallRequestComplete( iStatus.Int() );
     
-    LOG2( NORMAL, "SETUPCALL: CSetupCallRequestHandler::RunL\
-          iStatus == %i", iStatus.Int() )
-
-    if ( iEmergencyCall )
+    if ( KErrNone == iStatus.Int() )
         {
-        iEmergencyCall = EFalse;
+        iDtmfSender->SendDtmfString();
         }
     
-    iDispatcher->SetupCallRequestComplete( iStatus.Int() );                
-    
     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL exiting" )
     }
 
@@ -181,6 +199,7 @@
     LOG( SIMPLE, "SETUPCALL: \
                   CSetupCallRequestHandler::CancelOperation calling" )
     iPhone.DialCancel();
+    iDtmfSender->Cancel();
     LOG( SIMPLE, 
         "SETUPCALL: CSetupCallRequestHandler::CancelOperation exiting" )
     }
--- a/satengine/SatServer/Engine/inc/csatmultimodeapi.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Engine/inc/csatmultimodeapi.h	Thu Jul 22 16:38:43 2010 +0100
@@ -109,7 +109,13 @@
      * Access RMobilePhone::SendDTMFTones
      * for the paramter information please see the etelmm.h
      */ 
-    void SendDTMFTones( TRequestStatus& aReqStatus, const TDesC& aTones);    
+    void SendDTMFTones( TRequestStatus& aReqStatus, const TDesC& aTones);   
+    
+    /**
+     * Access RMobilePhone::ContinueDTMFStringSending
+     * for the paramter information please see the etelmm.h
+     */ 
+    TInt ContinueDTMFStringSending( TBool aContinue );
     
     /**
      * Access RMobilePhone::CancelAsyncRequest
@@ -165,9 +171,9 @@
      */
     void NotifyCallStatusChangeCancel();
     /**
-     * Access RMobilePhone::TerminateAllCalls NotifyMobileCallStatusChange
+     * Access RMobilePhone::TerminateActiveCalls NotifyMobileCallStatusChange
      */
-    void TerminateAllCalls(TRequestStatus& aReqStatus);
+    void TerminateActiveCalls(TRequestStatus& aReqStatus);
 
     
     /**
--- a/satengine/SatServer/Engine/src/CSatApnHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Engine/src/CSatApnHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -276,7 +276,7 @@
     cm.SetIntAttributeL( CMManager::ECmWapIPWSPOption, 
                          CMManager::ECmWapWspOptionConnectionOriented );
     cm.SetBoolAttributeL( CMManager::EPacketDataDisablePlainTextAuth, EFalse );
-    cm.SetIntAttributeL( CMManager::ECmIFPromptForAuth, EFalse );
+    cm.SetBoolAttributeL( CMManager::ECmIFPromptForAuth, EFalse );
 
     if ( aUserLogin != KNullDesC )
         {
--- a/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Engine/src/CSatCommandContainer.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Engine/src/CSatSIconSubSession.cpp	Thu Jul 22 16:38:43 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/Engine/src/csatmultimodeapi.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/Engine/src/csatmultimodeapi.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -218,6 +218,17 @@
     }
 
 // -----------------------------------------------------------------------------
+// CSatMultiModeApi::ContinueDTMFStringSending
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CSatMultiModeApi::ContinueDTMFStringSending( TBool aContinue )
+    {
+    LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::ContinueDTMFStringSending" )
+    return iPhone.ContinueDTMFStringSending( aContinue );
+    }
+
+// -----------------------------------------------------------------------------
 // CSatMultiModeApi::DialNoFdnCheck
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
@@ -390,14 +401,12 @@
 // CSatMultiModeApi::NotifyMobileCallStatusChange
 // -----------------------------------------------------------------------------
 //
-void CSatMultiModeApi::TerminateAllCalls(TRequestStatus& aReqStatus)
+void CSatMultiModeApi::TerminateActiveCalls(TRequestStatus& aReqStatus)
     {
     LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::TerminateAllCalls calling" )
-    // RMobilePhone::TerminateAllCalls don't work.
-    TName allCalls;
-    allCalls.Copy( KTerminateAllCalls );
-    iCustomPhone.TerminateCall( aReqStatus, allCalls );
 
+    iPhone.TerminateActiveCalls( aReqStatus );
+    
     LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::TerminateAllCalls exiting" )
     } 
 
--- a/satengine/SatServer/SystemState/src/CSatSystemState.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/SystemState/src/CSatSystemState.cpp	Thu Jul 22 16:38:43 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/SatServer/SystemState/src/TSatSystemStateFactory.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/SystemState/src/TSatSystemStateFactory.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -18,7 +18,8 @@
 
 #include    <startupdomainpskeys.h>
 #include    <PSVariables.h>
-#include    <activeidle2domainpskeys.h>
+#define Q_OS_SYMBIAN // needed to activate homescreendomainpskeys.h
+#include    <homescreendomainpskeys.h>
 #include    <CommonEngineDomainCRKeys.h>
 #include    <BTSapDomainPSKeys.h>
 #include    <ProfileEngineSDKCRKeys.h>
@@ -61,10 +62,10 @@
         CreateIdleModeChangeNotifierL calling" )
 
     MSatSystemStateChangeNotifier* ret = CSatPSChangeNotifier::NewL(
-        KPSUidAiInformation,
-        KActiveIdleState,
+        KHsCategoryUid,
+        KHsCategoryStateKey,
         aObserver,
-        EPSAiForeground );
+        EHomeScreenIdleState );
 
     LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\
         CreateIdleModeChangeNotifierL exiting" )
--- a/satengine/SatServer/inc/msatmultimodeapi.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/SatServer/inc/msatmultimodeapi.h	Thu Jul 22 16:38:43 2010 +0100
@@ -95,6 +95,12 @@
      */ 
     virtual void SendDTMFTones(TRequestStatus& aReqStatus, 
                     const TDesC& aTones) = 0;    
+    
+    /**
+     * Access RMobilePhone::ContinueDTMFStringSending
+     * for the paramter information please see the etelmm.h
+     */ 
+    virtual TInt ContinueDTMFStringSending( TBool aContinue ) = 0;
     /**
      * Access RMobilePhone::CancelAsyncRequest
      * for the paramter information please see the etelmm.h
@@ -151,9 +157,9 @@
     virtual void NotifyCallStatusChangeCancel() = 0;
 
     /**
-     * Access RMobilePhone::TerminateAllCalls
+     * Access RMobilePhone::TerminateActiveCalls
      */
-    virtual void TerminateAllCalls(TRequestStatus& aReqStatus) = 0;
+    virtual void TerminateActiveCalls(TRequestStatus& aReqStatus) = 0;
     
     /**
      * Access RMboileCall::GetMobileCallInfo
--- a/satengine/group/bld.inf	Tue Jun 15 11:45:07 2010 +0100
+++ b/satengine/group/bld.inf	Thu Jul 22 16:38:43 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"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/satserver/Commands/SetUpCallCmd/inc/csetupcalldtmfsender.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,88 @@
+/*
+* 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:  Create the call and emergency call to ETelMM
+*
+*/
+
+
+#ifndef CSETUPCALLDTMFSENDER_H
+#define CSETUPCALLDTMFSENDER_H
+
+#include <e32base.h>
+
+class MSatMultiModeApi;
+
+NONSHARABLE_CLASS ( CSetupCallDtmfSender ) : public CActive
+{
+public:
+
+    /**
+     * Two-phased constructor.
+     * @param aPhone A reference to the MSatMultiModeApi.
+     * @return a pointer to the newly created object.
+     */
+    static CSetupCallDtmfSender* NewL( MSatMultiModeApi& aPhone );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CSetupCallDtmfSender();
+
+    /**
+     * Send Dtmf string after creating a call successfully 
+     */
+    void SendDtmfString();    
+
+    /**
+     * Separate Dtmf string from whole string.
+     * Purl tel number will return by aString.
+     * Dtmf string will store in data member for furture sending dtmf. 
+     */
+    void SeparateDtmfFromTelNumber( TDes& aString );
+    
+protected:
+
+    /**
+     * From CActive, handles the request completion.
+     */
+    void RunL();    
+    
+    /**
+     * From CActive, handle the request cancel
+     */
+    void DoCancel();
+    
+private:
+
+    /**
+     * C++ default constructor.
+     * @param aPhone A reference to MSatMultiModeApi.
+     */
+    CSetupCallDtmfSender( MSatMultiModeApi& aPhone );
+        
+private: // Data
+
+    /**
+     * Reference to the MSatMultiModeApi
+     */
+    MSatMultiModeApi& iPhone;
+    
+    /**
+     * Own. Dtmf string
+     */    
+    HBufC* iDtmfString;    
+
+};
+
+#endif // CSETUPCALLDTMFSENDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/satserver/Commands/SetUpCallCmd/src/csetupcalldtmfsender.cpp	Thu Jul 22 16:38:43 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: Send DTMF string if necessary after creating a call 
+*
+*/
+
+#include <etelmm.h>
+#include <mmtsy_names.h>
+#include "msatmultimodeapi.h"
+#include "csetupcalldtmfsender.h"
+#include "msatasynctosync.h"
+#include "SatLog.h"
+
+_LIT( KSatDtmfCharp, "p" );
+_LIT( KSatDtmfCharw, "w" );
+
+// ================= MEMBER FUNCTIONS =======================
+
+// -----------------------------------------------------------------------------
+// CSetupCallDtmfSender::CSetupCallDtmfSender
+// The class constructor.
+// -----------------------------------------------------------------------------
+//
+CSetupCallDtmfSender::CSetupCallDtmfSender( MSatMultiModeApi& aPhone )
+    : CActive( EPriorityStandard ), iPhone( aPhone ), iDtmfString( NULL ) 
+    {
+    LOG( SIMPLE,
+        "SETUPCALL: CSetupCallDtmfSender::CSetupCallDtmfSender calling" )
+
+    CActiveScheduler::Add( this );
+
+    LOG( SIMPLE,
+        "SETUPCALL: CSetupCallDtmfSender::CSetupCallDtmfSender exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetupCallDtmfSender::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CSetupCallDtmfSender* CSetupCallDtmfSender::NewL( MSatMultiModeApi& aPhone )
+    {
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::NewL calling" )
+
+    CSetupCallDtmfSender* self =
+        new ( ELeave ) CSetupCallDtmfSender( aPhone );
+ 
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::NewL exiting" )
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CSetupCallDtmfSender::~CSetupCallDtmfSender
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CSetupCallDtmfSender::~CSetupCallDtmfSender()
+    {
+    LOG( SIMPLE, "SETUPCALL: \
+            CSetupCallDtmfSender::~CSetupCallDtmfSender calling" )
+    Cancel();
+    
+    delete iDtmfString;
+    iDtmfString = NULL;
+
+    LOG( SIMPLE, "SETUPCALL: \
+            CSetupCallDtmfSender::~CSetupCallDtmfSender exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetupCallDtmfSender::SendDtmfString
+// -----------------------------------------------------------------------------
+//
+void CSetupCallDtmfSender::SendDtmfString()
+{
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::SendDtmfString calling" )
+    if( !IsActive() && iDtmfString )
+        {
+        const TInt ret = iPhone.ContinueDTMFStringSending( ETrue );
+        LOG2( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::SendDtmfString\
+            ContinueDTMFStringSending ret %d", ret )        
+        iPhone.SendDTMFTones( iStatus, *iDtmfString );  
+        
+        SetActive();
+        }
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::SendDtmfString exit" )
+}
+
+// -----------------------------------------------------------------------------
+// CSetupCallDtmfSender::SeparateDtmfFromTelNumber
+// Refers to 
+// RPhCltEmergencyCall::RemoveDTMF
+// RPhCltEmergencyCall::FindStartOfDtmfString
+// -----------------------------------------------------------------------------
+//
+void CSetupCallDtmfSender::SeparateDtmfFromTelNumber(TDes& aString)
+    {
+    LOG( SIMPLE, 
+        "SETUPCALL: CSetupCallDtmfSender::SeparateDtmfFromTelNumber calling")
+        
+    delete iDtmfString;
+    iDtmfString = NULL;
+    
+    // String must contain 'p' or 'w'. Find start of dtmf string.
+    TInt indexp; //char 'p' index
+    TInt indexw; // char 'w' index
+    TPtrC ptrDtmfCharp( KSatDtmfCharp );
+    TPtrC ptrDtmfCharw( KSatDtmfCharw );
+
+    indexp = aString.Locate( ptrDtmfCharp[ 0 ] );
+    indexw = aString.Locate( ptrDtmfCharw[ 0 ] ); 
+
+    TInt dtmfIndex = KErrNotFound;
+    if ( indexp != KErrNotFound || indexw != KErrNotFound )
+        {
+        // dtmf char found
+        if ( indexw == KErrNotFound )
+            {
+            // char p index
+            dtmfIndex = indexp;    
+            }   
+        else if ( indexp == KErrNotFound )
+            {
+            // char w index
+            dtmfIndex = indexw;    
+            }                 
+        else
+            {
+            // Both chars p and w found, smaller index selected
+            indexp < indexw ? dtmfIndex = indexp : dtmfIndex = indexw;    
+            }         
+        }
+    LOG2( SIMPLE, 
+        "SETUPCALL: CSetupCallDtmfSender::SeparateDtmfFromTelNumber \
+        dtmfIndex=%d", dtmfIndex )  
+    
+    // Separate purl tel number and dtmf string
+    if ( dtmfIndex != KErrNotFound )
+        {
+        // Dtmf string to member data for furture sending
+        TPtrC temp( aString.Right( aString.Length() - dtmfIndex ) );
+        LOG2( SIMPLE, 
+            "SETUPCALL: CSetupCallDtmfSender::SeparateDtmfFromTelNumber \
+            DTMF=%S", &temp)  
+        
+        iDtmfString = temp.Alloc();
+        LOG2( SIMPLE, 
+            "SETUPCALL: CSetupCallDtmfSender::SeparateDtmfFromTelNumber \
+            iDtmfString address=%d", iDtmfString )         
+        
+        // Tel number for dialing call
+        aString.Delete( dtmfIndex, aString.Length() - dtmfIndex );
+        LOG2( SIMPLE, 
+            "SETUPCALL: CSetupCallDtmfSender::SeparateDtmfFromTelNumber \
+            TelNumber=%S", &aString ) 
+        }
+    LOG( SIMPLE, 
+        "SETUPCALL: CSetupCallDtmfSender::SeparateDtmfFromTelNumber exit" )
+    }
+
+// -----------------------------------------------------------------------------
+// CSetupCallDtmfSender::RunL
+// Handles the command.
+// -----------------------------------------------------------------------------
+//
+void CSetupCallDtmfSender::RunL()
+    {
+    LOG2( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::RunL calling iStatus=%i", 
+        iStatus.Int() )
+    
+    delete iDtmfString;
+    iDtmfString = NULL;
+    
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::RunL exiting" )
+    }
+
+// -----------------------------------------------------------------------------
+// From class CActive.
+// Cancels the sat request.
+// -----------------------------------------------------------------------------
+//
+void CSetupCallDtmfSender::DoCancel()
+    {
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::DoCancel calling" )
+    iPhone.CancelAsyncRequest( EMobilePhoneSendDTMFTones );
+    LOG( SIMPLE, "SETUPCALL: CSetupCallDtmfSender::DoCancel exiting" )
+    }
+
+//  End of File
--- a/satui/satapp/inc/satappcommonconstant.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/inc/satappcommonconstant.h	Thu Jul 22 16:38:43 2010 +0100
@@ -22,11 +22,13 @@
 
 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;
 
 const int KExtendTimeoutMseconds(3000);
+// 1 minute
 const int KDefaultSelectionTimeoutMseconds(60000);
 const int KSymbianTimeConvertQtTime(100);
 const int KMoSmControlTimeOut(3000);
--- a/satui/satapp/inc/satappgetinkeynote.h	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* 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 SATAPPGETINKEYNOTE_H
-#define SATAPPGETINKEYNOTE_H
-
-#include <QObject>
-#include <hbmessagebox.h>
-
-
-class SatAppGetInkeyNote : public HbMessageBox
-{
-    Q_OBJECT
-
-public:
-
-    SatAppGetInkeyNote(const QString &text,
-                       MessageBoxType type=MessageTypeInformation, 
-                       QGraphicsItem *parent=0);
-
-    virtual ~SatAppGetInkeyNote();
-
-signals:
-
-    void digitalKeyPressed(const int key);
-
-public:
-    void  keyPressEvent(QKeyEvent *event);
-
-    };
-#endif //SATAPPGETINKEYNOTE_H
-
--- a/satui/satapp/inc/satappplaytoneprovider.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/inc/satappplaytoneprovider.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/inc/satappuiprovider.h	Thu Jul 22 16:38:43 2010 +0100
@@ -29,7 +29,6 @@
 class SatAppView;           // SetupMenu and SelectItem
 class HbMessageBox;         // DisplayText
 class HbDeviceMessageBox;   // CallControl
-class SatAppGetInkeyNote;   // GetInKey
 class HbInputDialog;        // GetInKey
 class QTimer;               // For SMS/DTMF
 class HbProgressDialog;
@@ -148,6 +147,7 @@
     int showGetYesNoQuery(
             const QString &aText,
             const TSatCharacterSet aCharacterSet,
+            unsigned int &aInkey,
             unsigned int &aDuration,
             const bool aImmediateDigitResponse);
 
@@ -260,11 +260,6 @@
     void closeUi();
 
     /*
-     * Digital response
-     */
-    void digitalResponse(const int aKey);
-
-    /*
      * The response of user selected the Primary action
      */
     void userPrimaryResponse();
@@ -281,6 +276,14 @@
     void updateQueryAction(QString text);
 
     /*
+     * Handle HbLineEdit contentsChanged signal.
+     * when the input dialog in the password mode 
+     * there is no textChanged signal, get this from
+     * HbAbstractEdit 
+     */  
+    void contentChanged();
+    
+    /*
      * User cancel response, Send DTMF, Send Data, Receive Data
      */
     void cancelResponse();
@@ -304,6 +307,11 @@
             const QString &aText,
             bool &aActionAccepted);
 
+    /*
+     * handleImmediateCancel
+     */  
+    void handleImmediateCancel();
+
 private:
     /*
      * Reset the data member mUserRsp value
@@ -312,7 +320,9 @@
 
     /*
      * Compose Dialog
-     * @param type 
+     * @param dlg
+     * @param dialog timeout
+     * @param dialog type: DisplayText, GetInput, and etc 
      * @param aModal 
      * @param aDismissPolicy 
      */
@@ -324,6 +334,12 @@
      * Extend the note shown time
      */
     void extendNoteShowtime();
+    
+    /*
+     * Digital immediately response
+     * @param text 
+     */
+    void immediateResponse(QString text);
 
 private:
     /*
@@ -364,7 +380,12 @@
     /*
      *  Own. YesNoPopup
      */
-    SatAppGetInkeyNote *mYesNoPopup;
+    HbMessageBox *mYesNoPopup;
+
+    /*
+     *  Own. Get inkey immediately response query dialog
+     */
+    HbInputDialog *mImmediateQuery;
 
     /*
      *  Own. GetInputQuery
@@ -399,7 +420,7 @@
     /*
      *  GetInkey immediate digital response
      */
-    int mDigitalRsp;
+    unsigned int mDigitalRsp;
 
     /*
      *  GetInput min legnth, en/dis able ok buttion
--- a/satui/satapp/rom/satapp.iby	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/rom/satapp.iby	Thu Jul 22 16:38:43 2010 +0100
@@ -1,19 +1,19 @@
-;
-; 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: IBY file for satapp application
-;
-;
+/*
+* 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: IBY file for satapp application
+*
+*/
 
 #ifndef __SATAPP_IBY__
 #define __SATAPP_IBY__
--- a/satui/satapp/satapp.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/satapp.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -26,21 +26,26 @@
 
 ICON = resource/qtg_large_sat.svg
 symbian: {
-    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.CAPABILITY = CAP_APPLICATION NetworkControl
     TARGET.UID3=0x101f4ce0
+}
+
+
     INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
         .inc\
         MOC_DIR \
         ../../inc 
-    LIBS += -lSatClient.dll \
-            -lSatInternalClient.dll \
-            -legul.dll \
-            -lfbscli.dll \
-            -lcentralrepository.dll \
-            -lCenRepNotifHandler.dll \
-            -lCdlEngine.dll \
-            -lFlogger.dll \
-            -lprofileeng.dll 
+
+    LIBS += -lSatClient \
+            -lSatInternalClient \
+            -legul \
+            -lfbscli \
+            -lcentralrepository \
+            -lCenRepNotifHandler \
+            -lCdlEngine \
+            -lmediaclientaudio \
+            -lFlogger \
+            -lprofileeng 
 
     HEADERS += inc/msatuiactionimplementer.h \
                inc/satappcommonconstant.h \
@@ -50,7 +55,6 @@
                inc/satappeventprovider.h \
                inc/satappuiprovider.h \
                inc/satappview.h \
-               inc/satappgetinkeynote.h \
                inc/csatuiobserver.h \
                inc/csatuiiconhandler.h \
                inc/satappplaytoneprovider.h \
@@ -62,7 +66,6 @@
                src/satappeventprovider.cpp \
                src/satappuiprovider.cpp \
                src/satappview.cpp \
-               src/satappgetinkeynote.cpp \
                src/csatuiobserver.cpp \
                src/csatuiiconhandler.cpp \
                src/satappplaytoneprovider.cpp \
@@ -72,7 +75,6 @@
                                  "rom/satapp_stub.sis /epoc32/data/z/system/install/satapp_stub.sis" \
                                  "resource/satapp_en.ts /epoc32/include/platform/qt/translations/satapp_en.ts"
                                  
-}
 
 RESOURCES += resource/satapp.qrc
 
--- a/satui/satapp/src/csatuiobserver.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/src/csatuiobserver.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/src/satappcommandhandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -123,9 +123,18 @@
             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)
@@ -180,9 +189,11 @@
     // the timeout expires The timer starts when the text is
     //displayed on the screen and stops when the TERMINALRESPONSE is sent.
     QTime time;
+    unsigned int duration = KDefaultSelectionTimeoutMseconds;
     if (aDuration) {
         TFLOGSTRING2("SATAPP: SatAppCommandHandler::getInkey\
         in aDuration: %d", aDuration)
+        duration = aDuration * KSymbianTimeConvertQtTime;
         time.start();
     }
 
@@ -202,7 +213,7 @@
      }
    //Duration will be implemented in GetInkey proactive command
     TSatAppUserResponse rsp = EUserNoResponse;
-    rsp = mUi.showGetInkeyQuery(heading, aInputText, aCharacterSet, aDuration);
+    rsp = mUi.showGetInkeyQuery(heading, aInputText, aCharacterSet, duration);
 
     if (aDuration) {
         aDuration = time.elapsed() / KSymbianTimeConvertQtTime;
@@ -248,30 +259,50 @@
     // the timeout expires The timer starts when the text is
     //displayed on the screen and stops when the TERMINALRESPONSE is sent.
     QTime time;
+    unsigned int duration = KDefaultSelectionTimeoutMseconds;
     if (aDuration) {
         TFLOGSTRING2("SATAPP: SatAppUiProvider::getYesNo in aDuration: %d",
         aDuration)
+        duration = aDuration * KSymbianTimeConvertQtTime;
         time.start();
     }
+    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration=%d",
+            duration)
 
     aRes = ESatSuccess;
     int rsp = -1;
-    rsp = mUi.showGetYesNoQuery(aText, aCharacterSet, 
-            aDuration, aImmediateDigitResponse);
-    // User press OK key
+    unsigned int inKey = aInkey;
+    rsp = mUi.showGetYesNoQuery(aText, aCharacterSet, inKey,
+            duration, aImmediateDigitResponse);
+
+    if (aDuration) {
+        aDuration = time.elapsed() / KSymbianTimeConvertQtTime;
+    }
+    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration out=%d",
+            aDuration)
     if (EUserPrimaryResponse == rsp) {
         aRes = ESatSuccess;
-        aInkey = 1;
+        if ( Qt::Key_unknown == inKey ) {
+            // User press yes key 
+            aInkey = 1;
+        } else {
+            // User press digital key
+            aInkey = inKey;
+        }
         TFLOGSTRING("SATAPP: SatAppCommandHandler::getYesNo successful response")
     } else if (EUserSecondaryResponse == rsp)
         {
-        // User press NO key
-        aRes = ESatSuccess;
-        aInkey = 0;
-        TFLOGSTRING("SATAPP: SatAppCommandHandler::getYesNo No request by user")
-    } else if (ESatYesNo != aCharacterSet && !rsp) {
-        aRes = ESatSuccess;
-    }
+        // User press cancel in immediate digital mode
+        if (ESatYesNo != aCharacterSet) {
+            aRes = ESatBackwardModeRequestedByUser;
+            TFLOGSTRING("SATAPP: SatAppCommandHandler::getYesNo Cancel")  
+        } else {
+            // User press NO key
+            aRes = ESatSuccess;
+            aInkey = 0;
+            TFLOGSTRING("SATAPP: SatAppCommandHandler::getYesNo No")  
+        }
+    } 
     // else if {
     //    // User press end/back key
     //    aRes = ESatBackwardModeRequestedByUser;
--- a/satui/satapp/src/satappeventprovider.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/src/satappeventprovider.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -413,7 +413,7 @@
         immediateDigitResponse);
 
     aInkey = inKey;
-    TFLOGSTRING2("SATAPP: SatAppEventProvider::GetYesNoL key=%d", inKey)
+    TFLOGSTRING2("SATAPP: SatAppEventProvider::GetYesNoL key=%x", inKey)
     TFLOGSTRING("SATAPP: SatAppEventProvider::GetYesNoL exit")
     return response;
 }
@@ -681,6 +681,10 @@
         }
     bool actionAccepted = aActionAccepted;
     emit showOpenChannelConfirmEvent(title, actionAccepted);
+    // Show progress dialog when Openchannel confirmed
+    if( actionAccepted ) {
+        emit showWaitNoteWithoutDelayEvent();
+    }
     aActionAccepted = actionAccepted;
     TFLOGSTRING2( "SATAPP: SatAppEventProvider::ConfirmOpenChannelL exit\
         response: %d", response)
--- a/satui/satapp/src/satappgetinkeynote.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* 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 "tflogger.h"
-#include "satappgetinkeynote.h"
-
-// ======== MEMBER FUNCTIONS ==================================================
-
-// ----------------------------------------------------------------------------
-// SatAppGetInkeyNote::SatAppGetInkeyNote
-// (Constructor).
-// ----------------------------------------------------------------------------
-//
-SatAppGetInkeyNote::SatAppGetInkeyNote(const QString &text,
-        MessageBoxType type, QGraphicsItem *parent):
-        HbMessageBox(text, type, parent)
-{
-    TFLOGSTRING("SATAPP: SatAppGetInkeyNote::SatAppGetInkeyNote call - exit")
-}
-
-// ----------------------------------------------------------------------------
-// SatAppGetInkeyNote::~SatAppGetInkeyNote
-// (Destructor).
-// ----------------------------------------------------------------------------
-//
-SatAppGetInkeyNote::~SatAppGetInkeyNote()
-{
-    TFLOGSTRING("SATAPP: SatAppGetInkeyNote::~SatAppGetInkeyNote call - exit")
-}
-
-
-// ----------------------------------------------------------------------------
-// SatAppGetInkeyNote::keyPressEvent
-// (keyPressEvent).
-// ----------------------------------------------------------------------------
-//
-void SatAppGetInkeyNote::keyPressEvent(QKeyEvent *event)
-{
-    TFLOGSTRING("SATAPP: SatAppGetInkeyNote::keyPressEvent")
-    switch (event->key())
-    {
-    case Qt::Key_0:
-    case Qt::Key_1:
-    case Qt::Key_2:
-    case Qt::Key_3:
-    case Qt::Key_4:
-    case Qt::Key_5:
-    case Qt::Key_6:
-    case Qt::Key_7:
-    case Qt::Key_8:
-    case Qt::Key_9:
-    case Qt::Key_Plus:
-    case Qt::Key_Asterisk:
-    case Qt::Key_NumberSign:
-        {
-        TFLOGSTRING("SATAPP: SatAppGetInkeyNote::keyPressEvent digits key")
-        emit digitalKeyPressed(event->key());
-        }
-        break;
-    default :
-        {
-        HbMessageBox::keyPressEvent(event);
-        break;
-        }
-    }
-    TFLOGSTRING2("SATAPP: SatAppGetInkeyNote::keyPressEvent key %d", \
-        event->key())
-    TFLOGSTRING("SATAPP: SatAppGetInkeyNote::keyPressEvent exit")
-}
-
-//End of file
--- a/satui/satapp/src/satappplaytoneprovider.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/src/satappplaytoneprovider.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/src/satappuiprovider.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -32,7 +32,6 @@
 #include <hbinputfilter.h> 
 #include <dialogwaiter.h>
 #include "satappview.h" // SetUpMenu, SelectItem
-#include "satappgetinkeynote.h" // GetYesNo immediate digit response
 #include "satappuiprovider.h"
 #include "tflogger.h"
 
@@ -41,6 +40,9 @@
 const char *SATAPP_SELECTITEM_VIEW = "selectitem_view";
 
 // ======== MEMBER FUNCTIONS ==================================================
+// TODO: #ifndef __WINS__ 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
@@ -52,7 +54,7 @@
     QObject *parent) :
     QObject(parent), mMainWindow(window), mLoader(0),
     mSetupMenuView(0), mSelectItemView(0), mDisplayPopup(0),
-    mGetInkeyQuery(0), mYesNoPopup(0), mGetInputQuery(0),
+    mGetInkeyQuery(0),mYesNoPopup(0), mImmediateQuery(0), mGetInputQuery(0),
     mConfirmSendQuery(0), mSetUpCallQuery(0), mCallControlMsg(0),
     mConfirmBipQuery(0), mUserRsp(EUserNoResponse), mDigitalRsp(0), 
     mMinLength(0), mTimer(0), mLoop(0),mWaitNote(0)
@@ -123,18 +125,26 @@
         "SATAPP: SatAppUiProvider::~SatAppUiProvider object tree");
         delete mObjects.takeFirst();
     }
+    
     if (mDisplayPopup) {
         delete mDisplayPopup;
         mDisplayPopup = 0;
     }
+    
     if (mGetInkeyQuery) {
         delete mGetInkeyQuery;
         mGetInkeyQuery = 0;
     }
+
     if (mYesNoPopup) {
         delete mYesNoPopup;
         mYesNoPopup = 0;
     }
+
+    if (mImmediateQuery) {
+        delete mImmediateQuery;
+        mImmediateQuery = 0;
+    }
     if (mGetInputQuery) {
         delete mGetInputQuery;
         mGetInputQuery = 0;
@@ -265,7 +275,11 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDisplayTextPopup call")
     resetUserResponse();
     stopShowWaitNote();
-    // Create a note
+    
+    if (mDisplayPopup){
+        delete mDisplayPopup;
+        mDisplayPopup = NULL;
+    }
     mDisplayPopup = new HbMessageBox(HbMessageBox::MessageTypeInformation);
 
     if (mDisplayPopup) {
@@ -273,11 +287,11 @@
         "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 +299,10 @@
         waiter.wait();
         TFLOGSTRING(
         "SATAPP: SatAppUiProvider::showDisplayTextPopup duration end open")
-
+#ifndef __WINS__
         delete mDisplayPopup;
         mDisplayPopup = 0;
+#endif
     }
     TFLOGSTRING("SATAPP: SatAppUiProvider::showDisplayTextPopup exit")
     return mUserRsp;
@@ -307,7 +322,11 @@
 
     resetUserResponse();
     stopShowWaitNote();
-    // Create a query
+    
+    if (mGetInkeyQuery){
+        delete mGetInkeyQuery;
+        mGetInkeyQuery = NULL;
+    }
     mGetInkeyQuery = new HbInputDialog();
     if (mGetInkeyQuery) {
         TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInkeyQuery note created")
@@ -317,20 +336,15 @@
         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
             inputMode.setUpAsLatinAlphabetOnlyEditor();
         }
-
-        unsigned int duration = KDefaultSelectionTimeoutMseconds;
-        if (aDuration) {
-            duration = aDuration * KSymbianTimeConvertQtTime;
-        }
-        composeDialog(mGetInkeyQuery, duration, ESatDialogGetInkey);
+        composeDialog(mGetInkeyQuery, aDuration, ESatDialogGetInkey);
         mGetInkeyQuery->lineEdit()->setMaxLength(1);
         connect(mGetInkeyQuery->lineEdit(), SIGNAL(textChanged(QString)),
             this, SLOT(updateQueryAction(QString)));
@@ -342,8 +356,11 @@
 
         QString inputString = (mGetInkeyQuery->value()).toString();
         aContent = inputString;
+        
+#ifndef __WINS__
         delete mGetInkeyQuery;
         mGetInkeyQuery = 0;
+#endif
     }
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInkeyQuery exit")
     return mUserRsp;
@@ -356,6 +373,7 @@
 int SatAppUiProvider::showGetYesNoQuery(
     const QString &aText,
     const TSatCharacterSet aCharacterSet,
+    unsigned int &aInkey,
     unsigned int &aDuration,
     const bool aImmediateDigitResponse)
 {
@@ -364,54 +382,81 @@
     stopShowWaitNote();
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration in=%d",
             aDuration)
-    unsigned int duration = KDefaultSelectionTimeoutMseconds;
-    if (aDuration) {
-        duration = aDuration * KSymbianTimeConvertQtTime;
-    }
-    TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration=%d",
-            duration)
     if (ESatYesNo == aCharacterSet) {
-        mYesNoPopup = new SatAppGetInkeyNote(aText);
-        TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery normal")
-        composeDialog(mYesNoPopup, duration, ESatDialogGetYesNo);
-    } else if (aImmediateDigitResponse){
-        // user can choose the charactor or digital , and only cancel
-        // key press, then close current dialog
-        mYesNoPopup = new SatAppGetInkeyNote(aText);
-        composeDialog(mYesNoPopup, duration, ESatDialogGetDigitalRsp);
+        if (mYesNoPopup){
+            delete mYesNoPopup;
+            mYesNoPopup = 0;
+       }
+        mYesNoPopup = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+
+        if (mYesNoPopup) {
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery normal")
+            // Set the label as heading widget
+            HbLabel *lHeading = new HbLabel(aText, mYesNoPopup);
+            mYesNoPopup->setHeadingWidget(lHeading);
+            mYesNoPopup->setIconVisible(false);
+
+            composeDialog(mYesNoPopup, aDuration, ESatDialogGetYesNo);
 
-        TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery immediate")
-        bool ret = connect(mYesNoPopup, SIGNAL(digitalKeyPressed(int)),
-                 this, SLOT(digitalResponse(int)),
-                 Qt::DirectConnection);
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery:\
-        digitalKeyPressed=%d", ret)
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery before open")
+            DialogWaiter waiter;
+            mYesNoPopup->open(&waiter, SLOT(done(HbAction *)));
+            waiter.wait();
+            TFLOGSTRING( "SATAPP: SatAppUiProvider::showGetYesNoQuery after open")
+            mYesNoPopup->close();
+        }
+    } else if (aImmediateDigitResponse) {
+        if (mImmediateQuery) {
+            delete mImmediateQuery;
+            mImmediateQuery = 0;
+        }
+        mImmediateQuery = new HbInputDialog();
+        if (mImmediateQuery) {
+            mImmediateQuery->setPromptText(aText);
+            // user can choose the charactor or digital , and only cancel
+            // key press, then close current dialog
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery immediate")
+            composeDialog(mImmediateQuery, aDuration, ESatDialogGetDigitalRsp);
+            bool ret = connect(mImmediateQuery->lineEdit(), 
+               SIGNAL(textChanged(QString)),
+               this, SLOT(updateQueryAction(QString)));
+            TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery:\
+               connect updateQueryAction=%d", ret)
+            // digit mode, digits only (0 9, *, #, and +)
+            HbEditorInterface inputMode(mImmediateQuery->lineEdit());
+            inputMode.setFilter(HbPhoneNumberFilter::instance());
+            if (mLoop) {
+                TFLOGSTRING("SatAppUiProvider::showGetYesNoQuery delete loop")
+                delete mLoop;
+                mLoop = 0;
+            }
+            if (mTimer) {
+                delete mTimer;
+                mTimer = 0;
+                TFLOGSTRING("SatAppUiProvider::showGetYesNoQuery delete timer")
+            }
+            mTimer = new QTimer(this);
+            mTimer->start(aDuration);
+            ret = connect(mTimer, SIGNAL(timeout()), mTimer, SLOT(stop()));
+            TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery connect\
+                mTimer stop: %d", ret)
+            mLoop = new QEventLoop(this);
+            ret = connect(mTimer, SIGNAL(timeout()), mLoop, SLOT(quit()));
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery befor pop")
+            mImmediateQuery->open();
+            mLoop->exec();
+            TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery end pop")
+            if (mTimer->isActive()) {
+                TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery stop time")
+                mTimer->stop();
+            }
+            aInkey = mDigitalRsp;
+            mImmediateQuery->close();
+        }
     }
-    if (mYesNoPopup) {
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration=%d",
-                aDuration)
-        QTime time;
-        time.start();
-
-        TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery befor pop")
-        DialogWaiter waiter;
-        mYesNoPopup->open(&waiter, SLOT(done(HbAction *)));
-        waiter.wait();
-        TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery end pop")
-        aDuration = time.elapsed() / KSymbianTimeConvertQtTime;
-        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetYesNoQuery duration out=%d",
-                aDuration)
-        delete mYesNoPopup;
-        mYesNoPopup = 0;
-    }
-    if (ESatYesNo == aCharacterSet) {
-        mDigitalRsp = mUserRsp;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::showGetYesNoQuery:yes/no rsp")
-    }
-    return  mDigitalRsp;
+    return  mUserRsp;
 }
 
-
 // ----------------------------------------------------------------------------
 // showGetInputQuery
 // ----------------------------------------------------------------------------
@@ -430,14 +475,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());
@@ -445,28 +493,26 @@
         // char mode
         inputMode.setUpAsLatinAlphabetOnlyEditor();
     }
-    connect(mGetInputQuery->lineEdit(), SIGNAL(textChanged(QString)),
-        this, SLOT(updateQueryAction(QString)));
+    
     mGetInputQuery->lineEdit()->setMaxLength(maxLength);
 
     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);
-        TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery hide")
+        
+        bool res = connect(mGetInputQuery->lineEdit(), 
+            SIGNAL(contentsChanged()), this, SLOT(contentChanged()));
+        TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery \
+                     connect %d",res);
+    }else {
+        connect(mGetInputQuery->lineEdit(), SIGNAL(textChanged(QString)),
+            this, SLOT(updateQueryAction(QString)));        
     }
 
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery before pop")
@@ -476,9 +522,11 @@
     TFLOGSTRING("SATAPP: SatAppUiProvider::showGetInputQuery end pop")
 
     content = (mGetInputQuery->value()).toString();
-
+    
+#ifndef __WINS__
     delete mGetInputQuery;
     mGetInputQuery = 0;
+#endif
 
     TFLOGSTRING2("SATAPP: SatAppUiProvider::showGetInputQuery mUserRsp =%d exit",
             mUserRsp)
@@ -486,6 +534,19 @@
 }
 
 // ----------------------------------------------------------------------------
+// SatAppInputProvider::contentChanged
+// Called when editor field is modified
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::contentChanged()
+{
+    if (mGetInputQuery) {
+        QString content = (mGetInputQuery->value()).toString();
+        updateQueryAction(content);
+    }
+}
+
+// ----------------------------------------------------------------------------
 // Called when editor field is modified
 // ----------------------------------------------------------------------------
 //
@@ -493,49 +554,27 @@
 {
     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")
-        }
-    }
-    // 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")
+            mGetInputQuery->actions().at(0)->setEnabled(false);
         }
     }
 
+    // Get InKey
+    if (mGetInkeyQuery && mGetInkeyQuery->actions().at(0)) {
+        if (1 == text.length()) {
+            mGetInkeyQuery->actions().at(0)->setEnabled(true);
+        } else {
+            mGetInkeyQuery->actions().at(0)->setEnabled(false); 
+        }
+    }
+    if (mImmediateQuery) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction \
+            digital immediate")
+        immediateResponse(text);
+    }
     TFLOGSTRING("SATAPP: SatAppUiProvider::updateQueryAction exit")
 }
 
@@ -549,7 +588,12 @@
 {
     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);
         composeDialog(mConfirmSendQuery, 0, ESatDialogConfirmSend);
@@ -559,9 +603,11 @@
         mConfirmSendQuery->open(&waiter, SLOT(done(HbAction *)));
         waiter.wait();
         TFLOGSTRING("SATAPP: SatAppUiProvider::confirmSend after open")
-
+        
+#ifndef __WINS__
         delete mConfirmSendQuery;
         mConfirmSendQuery = 0;
+#endif
     }
     aActionAccepted = (EUserPrimaryResponse == mUserRsp) ? true : false;
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSendQuery exit")
@@ -580,15 +626,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 +658,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,8 +722,12 @@
         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);
         composeDialog(mSetUpCallQuery, 0, ESatDialogSetUpCall);
@@ -685,9 +737,11 @@
         mSetUpCallQuery->open(&waiter, SLOT(done(HbAction *)));
         waiter.wait();
         TFLOGSTRING("SATAPP: SatAppSetUpCall::showSetUpCallConfirm after open")
-
+        
+#ifndef __WINS__
         delete mSetUpCallQuery;
         mSetUpCallQuery = 0;
+#endif
     }
     aActionAccepted = (EUserPrimaryResponse == mUserRsp) ? true : false;
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmSetUpCallQUery exit")
@@ -701,49 +755,63 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen called")
     if (mDisplayPopup) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen DisplayText")
         mDisplayPopup->close();
         mDisplayPopup = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen DisplayText")
     }
     if (mGetInkeyQuery) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetInkey")
         mGetInkeyQuery->close();
         mGetInkeyQuery = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetInkey")
     }
+
     if (mYesNoPopup) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen mYesNoPopup")
         mYesNoPopup->close();
-        mYesNoPopup = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetYesNo")
+        delete mYesNoPopup;
+        mYesNoPopup = 0;
     }
+
+    if (mImmediateQuery) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen mImmediateQuery")
+        mImmediateQuery->close();
+        mImmediateQuery = NULL;
+    }
+
     if (mGetInputQuery) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetInput")
         mGetInputQuery->close();
         mGetInputQuery = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen GetInput")
     }
+
     if(mConfirmSendQuery) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen ConfirmSend")
         mConfirmSendQuery->close();
         mConfirmSendQuery = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen ConfirmSend")
     }
+
     if (mSetUpCallQuery) {
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen SetUpCall")
         mSetUpCallQuery->close();
         mSetUpCallQuery = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen SetUpCall")
     }
+
     if (mCallControlMsg){
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen CallControlMsg")
         mCallControlMsg->close();
         mCallControlMsg = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen CallControlMsg")
     }
+
     if (mConfirmBipQuery){
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen ConfirmBip")
         mConfirmBipQuery->close();
         mConfirmBipQuery = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen ConfirmBip")
     }
+
     if (mWaitNote){
+        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen WaitNote")
         mWaitNote->close();
         mWaitNote = NULL;
-        TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen WaitNote")
     }
     mUserRsp = EUserClearResponse;
     TFLOGSTRING("SATAPP: SatAppUiProvider::clearScreen exit")
@@ -763,21 +831,6 @@
 }
 
 // ----------------------------------------------------------------------------
-// digitalResponse
-// ----------------------------------------------------------------------------
-//
-void SatAppUiProvider::digitalResponse(const int aKey)
-{
-    TFLOGSTRING("SATAPP: SatAppGetInkey::digitalResponse call")
-    mDigitalRsp = aKey;
-    if (mYesNoPopup){
-        TFLOGSTRING("SATAPP: SatAppUiProvider::digitalResponse Close")
-        mYesNoPopup->close();
-        }
-    TFLOGSTRING("SATAPP: SatAppUiProvider::digitalResponse exit")
-}
-
-// ----------------------------------------------------------------------------
 // resetUserResponse
 // ----------------------------------------------------------------------------
 //
@@ -785,21 +838,21 @@
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::resetUserResponse call")
     mUserRsp = EUserNoResponse;
-    mDigitalRsp = 0;
+    mDigitalRsp = Qt::Key_unknown;
     mMinLength = 0;
     TFLOGSTRING("SATAPP: SatAppUiProvider::resetUserResponse exit")
 }
 
 // ----------------------------------------------------------------------------
-// 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 +863,70 @@
     } 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"));
+        ret = connect(secondaryAction, SIGNAL(triggered()),
+                      this, SLOT(handleImmediateCancel()));
+        TFLOGSTRING2("SATAPP: SatAppUiProvider::composeDialog \
+            con secondaryAction=%d", ret)
         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 +1030,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 +1060,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 +1074,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")
 }
 
@@ -1037,15 +1087,20 @@
         bool &aActionAccepted)
 {
     TFLOGSTRING("SATAPP: SatAppUiProvider::showConfirmOpenChannelQuery call")
+    stopShowWaitNote();
+    if (mConfirmBipQuery){
+        delete mConfirmBipQuery;
+        mConfirmBipQuery = NULL;
+    }
     QString title = aText;
     if (!aText.length()){
         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 +1151,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 +1172,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 +1189,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,14 +1203,81 @@
 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")
 }
 
+
+// ----------------------------------------------------------------------------
+//handleImmediateCancel
+//
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::handleImmediateCancel()
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::handleImmediateCancel")
+    if (mLoop && mLoop->isRunning()) {
+        mLoop->quit();
+    }
+    TFLOGSTRING("SATAPP: SatAppUiProvider::handleImmediateCancel exit")
+}
+
+// ----------------------------------------------------------------------------
+//immediateResponse
+//
+// ----------------------------------------------------------------------------
+//
+void SatAppUiProvider::immediateResponse(QString text)
+{
+    TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse")
+    if (mLoop && mLoop->isRunning()) {
+        mLoop->quit();
+    }
+    if ("0" == text) {
+        mDigitalRsp = Qt::Key_0;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 0")
+    } else if ("1" == text) {
+        mDigitalRsp = Qt::Key_1;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 1")
+    } else if ("2" == text) {
+        mDigitalRsp = Qt::Key_2;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 2")
+    } else if ("3" == text) {
+        mDigitalRsp = Qt::Key_3;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 3")
+    } else if ("4" == text) {
+        mDigitalRsp = Qt::Key_4;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 4")
+    }else if ("5" == text) {
+        mDigitalRsp = Qt::Key_5;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 5")
+    } else if ("6" == text) {
+        mDigitalRsp = Qt::Key_6;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 6")
+    } else if ("7" == text) {
+        mDigitalRsp = Qt::Key_7;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 7")
+    } else if ("8" == text) {
+        mDigitalRsp = Qt::Key_8;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 8")
+    } else if ("9" == text) {
+        mDigitalRsp = Qt::Key_9;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse 9")
+    } else if ("+" == text) {
+        mDigitalRsp = Qt::Key_Plus;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse +")
+    } else if ("*" == text) {
+        mDigitalRsp = Qt::Key_Asterisk;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse *")
+    } else if ("#" == text) {
+        mDigitalRsp = Qt::Key_NumberSign;
+        TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse #")
+    }
+    mUserRsp = EUserPrimaryResponse;
+    TFLOGSTRING2("SATAPP: SatAppUiProvider::immediateResponse key %x",
+        mDigitalRsp)
+
+    TFLOGSTRING("SATAPP: SatAppUiProvider::immediateResponse exit")
+}
+
 // End of file
--- a/satui/satapp/src/satappview.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/satui/satapp/src/satappview.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/bwins/dialpadu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -1,52 +1,64 @@
 EXPORTS
-	?initialize@Dialpad@@AAEXXZ @ 1 NONAME ; void Dialpad::initialize(void)
-	?closeEvent@Dialpad@@MAEXPAVQCloseEvent@@@Z @ 2 NONAME ; void Dialpad::closeEvent(class QCloseEvent *)
-	?trUtf8@DialpadKeyHandler@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString DialpadKeyHandler::trUtf8(char const *, char const *, int)
-	?openAnimValueChanged@Dialpad@@IAEXM@Z @ 4 NONAME ; void Dialpad::openAnimValueChanged(float)
-	?getStaticMetaObject@DialpadKeyHandler@@SAABUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const & DialpadKeyHandler::getStaticMetaObject(void)
-	?handleSceneEvent@Dialpad@@IAE_NPAVQEvent@@@Z @ 6 NONAME ; bool Dialpad::handleSceneEvent(class QEvent *)
-	?showEvent@Dialpad@@MAEXPAVQShowEvent@@@Z @ 7 NONAME ; void Dialpad::showEvent(class QShowEvent *)
-	?metaObject@Dialpad@@UBEPBUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const * Dialpad::metaObject(void) const
-	?staticMetaObject@Dialpad@@2UQMetaObject@@B @ 9 NONAME ; struct QMetaObject const Dialpad::staticMetaObject
-	??1Dialpad@@UAE@XZ @ 10 NONAME ; Dialpad::~Dialpad(void)
-	?setTapOutsideDismiss@Dialpad@@QAEX_N@Z @ 11 NONAME ; void Dialpad::setTapOutsideDismiss(bool)
-	?getStaticMetaObject@Dialpad@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & Dialpad::getStaticMetaObject(void)
-	?trUtf8@DialpadKeyHandler@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString DialpadKeyHandler::trUtf8(char const *, char const *)
-	?paint@Dialpad@@MAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 14 NONAME ; void Dialpad::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
-	?layoutBackgroundItem@Dialpad@@AAEXXZ @ 15 NONAME ; void Dialpad::layoutBackgroundItem(void)
-	?updateLayout@Dialpad@@AAEXW4Orientation@Qt@@@Z @ 16 NONAME ; void Dialpad::updateLayout(enum Qt::Orientation)
-	?openAnimFinished@Dialpad@@IAEXXZ @ 17 NONAME ; void Dialpad::openAnimFinished(void)
-	?setCallButtonEnabled@Dialpad@@QAEX_N@Z @ 18 NONAME ; void Dialpad::setCallButtonEnabled(bool)
-	?startCloseAnimation@Dialpad@@AAEXXZ @ 19 NONAME ; void Dialpad::startCloseAnimation(void)
-	?closeDialpad@Dialpad@@QAEXXZ @ 20 NONAME ; void Dialpad::closeDialpad(void)
-	?aboutToClose@Dialpad@@IAEXXZ @ 21 NONAME ; void Dialpad::aboutToClose(void)
-	?qt_metacast@DialpadKeyHandler@@UAEPAXPBD@Z @ 22 NONAME ; void * DialpadKeyHandler::qt_metacast(char const *)
-	??0Dialpad@@QAE@ABVHbMainWindow@@@Z @ 23 NONAME ; Dialpad::Dialpad(class HbMainWindow const &)
-	?trUtf8@Dialpad@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString Dialpad::trUtf8(char const *, char const *, int)
-	?closeAnimValueChanged@Dialpad@@IAEXM@Z @ 25 NONAME ; void Dialpad::closeAnimValueChanged(float)
-	?qt_metacast@Dialpad@@UAEPAXPBD@Z @ 26 NONAME ; void * Dialpad::qt_metacast(char const *)
-	?tr@DialpadKeyHandler@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString DialpadKeyHandler::tr(char const *, char const *)
-	??0Dialpad@@QAE@XZ @ 28 NONAME ; Dialpad::Dialpad(void)
-	?openDialpad@Dialpad@@QAEXXZ @ 29 NONAME ; void Dialpad::openDialpad(void)
-	?sceneEvent@Dialpad@@MAE_NPAVQEvent@@@Z @ 30 NONAME ; bool Dialpad::sceneEvent(class QEvent *)
-	?staticMetaObject@DialpadKeyHandler@@2UQMetaObject@@B @ 31 NONAME ; struct QMetaObject const DialpadKeyHandler::staticMetaObject
-	??1DialpadKeyHandler@@UAE@XZ @ 32 NONAME ; DialpadKeyHandler::~DialpadKeyHandler(void)
-	?orientationChangeFinished@Dialpad@@IAEXW4Orientation@Qt@@@Z @ 33 NONAME ; void Dialpad::orientationChangeFinished(enum Qt::Orientation)
-	?qt_metacall@DialpadKeyHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 34 NONAME ; int DialpadKeyHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?hideEvent@Dialpad@@MAEXPAVQHideEvent@@@Z @ 35 NONAME ; void Dialpad::hideEvent(class QHideEvent *)
-	?tr@Dialpad@@SA?AVQString@@PBD0@Z @ 36 NONAME ; class QString Dialpad::tr(char const *, char const *)
-	?orientationChangeStarted@Dialpad@@IAEXXZ @ 37 NONAME ; void Dialpad::orientationChangeStarted(void)
-	?trUtf8@Dialpad@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString Dialpad::trUtf8(char const *, char const *)
-	?tr@DialpadKeyHandler@@SA?AVQString@@PBD0H@Z @ 39 NONAME ; class QString DialpadKeyHandler::tr(char const *, char const *, int)
-	?qt_metacall@Dialpad@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 40 NONAME ; int Dialpad::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?tr@Dialpad@@SA?AVQString@@PBD0H@Z @ 41 NONAME ; class QString Dialpad::tr(char const *, char const *, int)
-	?sceneEventFilter@Dialpad@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 42 NONAME ; bool Dialpad::sceneEventFilter(class QGraphicsItem *, class QEvent *)
-	??_EDialpadKeyHandler@@UAE@I@Z @ 43 NONAME ; DialpadKeyHandler::~DialpadKeyHandler(unsigned int)
-	?editor@Dialpad@@QBEAAVHbLineEdit@@XZ @ 44 NONAME ; class HbLineEdit & Dialpad::editor(void) const
-	??_EDialpad@@UAE@I@Z @ 45 NONAME ; Dialpad::~Dialpad(unsigned int)
-	?closeAnimFinished@Dialpad@@IAEXXZ @ 46 NONAME ; void Dialpad::closeAnimFinished(void)
-	?metaObject@DialpadKeyHandler@@UBEPBUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const * DialpadKeyHandler::metaObject(void) const
-	??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 @ 1 NONAME ; DialpadVtKeyHandler::~DialpadVtKeyHandler(void)
+	?initialize@Dialpad@@AAEXXZ @ 2 NONAME ; void Dialpad::initialize(void)
+	?metaObject@DialpadVtKeyHandler@@UBEPBUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const * DialpadVtKeyHandler::metaObject(void) const
+	?closeEvent@Dialpad@@MAEXPAVQCloseEvent@@@Z @ 4 NONAME ; void Dialpad::closeEvent(class QCloseEvent *)
+	?trUtf8@DialpadKeyHandler@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString DialpadKeyHandler::trUtf8(char const *, char const *, int)
+	?openAnimValueChanged@Dialpad@@IAEXM@Z @ 6 NONAME ; void Dialpad::openAnimValueChanged(float)
+	?getStaticMetaObject@DialpadKeyHandler@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & DialpadKeyHandler::getStaticMetaObject(void)
+	?showEvent@Dialpad@@MAEXPAVQShowEvent@@@Z @ 8 NONAME ; void Dialpad::showEvent(class QShowEvent *)
+	?tr@DialpadVtKeyHandler@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString DialpadVtKeyHandler::tr(char const *, char const *, int)
+	?metaObject@Dialpad@@UBEPBUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const * Dialpad::metaObject(void) const
+	??0DialpadVtKeyHandler@@QAE@PAVDialpad@@AAVHbMainWindow@@PAVQObject@@@Z @ 11 NONAME ; DialpadVtKeyHandler::DialpadVtKeyHandler(class Dialpad *, class HbMainWindow &, class QObject *)
+	?trUtf8@DialpadVtKeyHandler@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString DialpadVtKeyHandler::trUtf8(char const *, char const *, int)
+	?staticMetaObject@Dialpad@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const Dialpad::staticMetaObject
+	?trUtf8@DialpadVtKeyHandler@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString DialpadVtKeyHandler::trUtf8(char const *, char const *)
+	?staticMetaObject@DialpadVtKeyHandler@@2UQMetaObject@@B @ 15 NONAME ; struct QMetaObject const DialpadVtKeyHandler::staticMetaObject
+	??1Dialpad@@UAE@XZ @ 16 NONAME ; Dialpad::~Dialpad(void)
+	?setTapOutsideDismiss@Dialpad@@QAEX_N@Z @ 17 NONAME ; void Dialpad::setTapOutsideDismiss(bool)
+	?getStaticMetaObject@Dialpad@@SAABUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const & Dialpad::getStaticMetaObject(void)
+	?trUtf8@DialpadKeyHandler@@SA?AVQString@@PBD0@Z @ 19 NONAME ; class QString DialpadKeyHandler::trUtf8(char const *, char const *)
+	?qt_metacall@DialpadVtKeyHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 20 NONAME ; int DialpadVtKeyHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?gestureEvent@Dialpad@@MAEXPAVQGestureEvent@@@Z @ 21 NONAME ; void Dialpad::gestureEvent(class QGestureEvent *)
+	?paint@Dialpad@@MAEXPAVQPainter@@PBVQStyleOptionGraphicsItem@@PAVQWidget@@@Z @ 22 NONAME ; void Dialpad::paint(class QPainter *, class QStyleOptionGraphicsItem const *, class QWidget *)
+	?layoutBackgroundItem@Dialpad@@AAEXXZ @ 23 NONAME ; void Dialpad::layoutBackgroundItem(void)
+	?updateLayout@Dialpad@@AAEXW4Orientation@Qt@@@Z @ 24 NONAME ; void Dialpad::updateLayout(enum Qt::Orientation)
+	?openAnimFinished@Dialpad@@IAEXXZ @ 25 NONAME ; void Dialpad::openAnimFinished(void)
+	?getStaticMetaObject@DialpadVtKeyHandler@@SAABUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const & DialpadVtKeyHandler::getStaticMetaObject(void)
+	?setCallButtonEnabled@Dialpad@@QAEX_N@Z @ 27 NONAME ; void Dialpad::setCallButtonEnabled(bool)
+	?startCloseAnimation@Dialpad@@AAEXXZ @ 28 NONAME ; void Dialpad::startCloseAnimation(void)
+	?closeDialpad@Dialpad@@QAEXXZ @ 29 NONAME ; void Dialpad::closeDialpad(void)
+	?aboutToClose@Dialpad@@IAEXXZ @ 30 NONAME ; void Dialpad::aboutToClose(void)
+	?qt_metacast@DialpadKeyHandler@@UAEPAXPBD@Z @ 31 NONAME ; void * DialpadKeyHandler::qt_metacast(char const *)
+	??_EDialpadVtKeyHandler@@UAE@I@Z @ 32 NONAME ; DialpadVtKeyHandler::~DialpadVtKeyHandler(unsigned int)
+	??0Dialpad@@QAE@ABVHbMainWindow@@@Z @ 33 NONAME ; Dialpad::Dialpad(class HbMainWindow const &)
+	?isOpen@Dialpad@@QBE_NXZ @ 34 NONAME ; bool Dialpad::isOpen(void) const
+	?trUtf8@Dialpad@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString Dialpad::trUtf8(char const *, char const *, int)
+	?closeAnimValueChanged@Dialpad@@IAEXM@Z @ 36 NONAME ; void Dialpad::closeAnimValueChanged(float)
+	?qt_metacast@Dialpad@@UAEPAXPBD@Z @ 37 NONAME ; void * Dialpad::qt_metacast(char const *)
+	?tr@DialpadKeyHandler@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString DialpadKeyHandler::tr(char const *, char const *)
+	??0Dialpad@@QAE@XZ @ 39 NONAME ; Dialpad::Dialpad(void)
+	?openDialpad@Dialpad@@QAEXXZ @ 40 NONAME ; void Dialpad::openDialpad(void)
+	?staticMetaObject@DialpadKeyHandler@@2UQMetaObject@@B @ 41 NONAME ; struct QMetaObject const DialpadKeyHandler::staticMetaObject
+	?aboutToOpen@Dialpad@@IAEXXZ @ 42 NONAME ; void Dialpad::aboutToOpen(void)
+	??1DialpadKeyHandler@@UAE@XZ @ 43 NONAME ; DialpadKeyHandler::~DialpadKeyHandler(void)
+	?orientationChangeFinished@Dialpad@@IAEXW4Orientation@Qt@@@Z @ 44 NONAME ; void Dialpad::orientationChangeFinished(enum Qt::Orientation)
+	?qt_metacall@DialpadKeyHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 45 NONAME ; int DialpadKeyHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?hideEvent@Dialpad@@MAEXPAVQHideEvent@@@Z @ 46 NONAME ; void Dialpad::hideEvent(class QHideEvent *)
+	?tr@Dialpad@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString Dialpad::tr(char const *, char const *)
+	?qt_metacast@DialpadVtKeyHandler@@UAEPAXPBD@Z @ 48 NONAME ; void * DialpadVtKeyHandler::qt_metacast(char const *)
+	?orientationChangeStarted@Dialpad@@IAEXXZ @ 49 NONAME ; void Dialpad::orientationChangeStarted(void)
+	?trUtf8@Dialpad@@SA?AVQString@@PBD0@Z @ 50 NONAME ; class QString Dialpad::trUtf8(char const *, char const *)
+	?tr@DialpadKeyHandler@@SA?AVQString@@PBD0H@Z @ 51 NONAME ; class QString DialpadKeyHandler::tr(char const *, char const *, int)
+	?qt_metacall@Dialpad@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 52 NONAME ; int Dialpad::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@DialpadVtKeyHandler@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString DialpadVtKeyHandler::tr(char const *, char const *)
+	?tr@Dialpad@@SA?AVQString@@PBD0H@Z @ 54 NONAME ; class QString Dialpad::tr(char const *, char const *, int)
+	??_EDialpadKeyHandler@@UAE@I@Z @ 55 NONAME ; DialpadKeyHandler::~DialpadKeyHandler(unsigned int)
+	??0DialpadKeyHandler@@QAE@PAVDialpad@@V?$QFlags@W4DialpadKeyEventFilter@DialpadKeyHandler@@@@PAVQObject@@@Z @ 56 NONAME ; DialpadKeyHandler::DialpadKeyHandler(class Dialpad *, class QFlags<enum DialpadKeyHandler::DialpadKeyEventFilter>, class QObject *)
+	??_EDialpad@@UAE@I@Z @ 57 NONAME ; Dialpad::~Dialpad(unsigned int)
+	?editor@Dialpad@@QBEAAVHbLineEdit@@XZ @ 58 NONAME ; class HbLineEdit & Dialpad::editor(void) const
+	?closeAnimFinished@Dialpad@@IAEXXZ @ 59 NONAME ; void Dialpad::closeAnimFinished(void)
+	?metaObject@DialpadKeyHandler@@UBEPBUQMetaObject@@XZ @ 60 NONAME ; struct QMetaObject const * DialpadKeyHandler::metaObject(void) const
+	??0DialpadKeyHandler@@QAE@PAVDialpad@@AAVHbMainWindow@@PAVQObject@@@Z @ 61 NONAME ; DialpadKeyHandler::DialpadKeyHandler(class Dialpad *, class HbMainWindow &, class QObject *)
+	?isCallButtonEnabled@Dialpad@@QBE_NXZ @ 62 NONAME ; bool Dialpad::isCallButtonEnabled(void) const
 
--- a/telutils/dialpad/dialpad.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/dialpad.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -18,11 +18,13 @@
 TEMPLATE = lib
 TARGET = dialpad
 CONFIG += hb
+HB += hbinput
 
 INCLUDEPATH += . inc ../../inc
 
 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 +33,11 @@
            inc/dialpadbackground.h \
            inc/dialpadvoicemailboxeventfilter.h \
            inc/dialpadbluetootheventfilter.h \
-           inc/dialpadkeysequenceeventfilter.h
+           inc/dialpadkeysequenceeventfilter.h \
+           inc/dialpadvideomailboxeventfilter.h \
+           inc/dialpadmailboxeventfilterbase.h \
+           inc/dialpademergencycalleventfilter.h \
+           inc/dialpadhasheventfilter.h
 
 SOURCES += src/dialpad.cpp \
            src/dialpadbutton.cpp \
@@ -43,7 +49,12 @@
            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 \
+           src/dialpadhasheventfilter.cpp
 
 RESOURCES += dialpad.qrc
 
@@ -70,7 +81,10 @@
     
     LIBS += -lxqservice \
             -lxqserviceutil \
-            -lvmbxengine
+            -lvmbxengine \
+            -lfeatmgr \
+            -lphoneclient \
+            -lcentralrepository
 }
 else:win32 { 
     HEADERS += inc/dialpadsymbianwrapper_p_stub.h
@@ -82,7 +96,8 @@
     INCLUDEPATH += ../../phonesrv_plat/dialpad_api/inc \
         c:/hb/include/hbcore \
         c:/hb/include/hbwidgets \
-        c:/hb/include/hbtools
+        c:/hb/include/hbtools \
+        c:/hb/include/hbinput
     INCLUDEPATH += ../xqtelephonyservice/inc
 }
 
--- a/telutils/dialpad/dialpad.qrc	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/dialpad.qrc	Thu Jul 22 16:38:43 2010 +0100
@@ -1,36 +1,8 @@
 <RCC>
     <qresource prefix="/">
-        <file alias="dialpad.dialpadbutton.widgetml">resources/dialpad.dialpadbutton.widgetml</file>
         <file alias="dialpad.css">resources/dialpad.css</file>
-        <file>themes/icons/hbdefault/scalable/qtg_mono_voice_mailbox.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_b.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_bl.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_br.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_c.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_l.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_r.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_t.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_tl.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_tr.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_b.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_bl.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_br.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_c.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_l.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_r.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_t.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_tl.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_tr.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_c.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_l.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_r.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_graf_input_h_swipe.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_mono_answer_call.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_graf_input_swipe.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_input_bg_b.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_input_bg_c.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_fr_input_bg_t.svg</file>
-        <file>themes/icons/hbdefault/scalable/qtg_mono_backspace2.svg</file>
         <file alias="dialpad_color.css">resources/dialpad_color.css</file>
+        <file alias="dialpad_to_prt.fxml">resources/dialpad_to_prt.fxml</file>
+        <file alias="dialpad_to_lsc.fxml">resources/dialpad_to_lsc.fxml</file>
     </qresource>
 </RCC>
--- a/telutils/dialpad/eabi/dialpadu.def	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/eabi/dialpadu.def	Thu Jul 22 16:38:43 2010 +0100
@@ -3,58 +3,69 @@
 	_ZN17DialpadKeyHandler11qt_metacastEPKc @ 2 NONAME
 	_ZN17DialpadKeyHandler16staticMetaObjectE @ 3 NONAME DATA 16
 	_ZN17DialpadKeyHandler19getStaticMetaObjectEv @ 4 NONAME
-	_ZN17DialpadKeyHandlerC1EP7DialpadR12HbMainWindowP7QObject @ 5 NONAME
-	_ZN17DialpadKeyHandlerC2EP7DialpadR12HbMainWindowP7QObject @ 6 NONAME
-	_ZN17DialpadKeyHandlerD0Ev @ 7 NONAME
-	_ZN17DialpadKeyHandlerD1Ev @ 8 NONAME
-	_ZN17DialpadKeyHandlerD2Ev @ 9 NONAME
-	_ZN7Dialpad10closeEventEP11QCloseEvent @ 10 NONAME
-	_ZN7Dialpad10initializeEv @ 11 NONAME
-	_ZN7Dialpad10sceneEventEP6QEvent @ 12 NONAME
-	_ZN7Dialpad11openDialpadEv @ 13 NONAME
-	_ZN7Dialpad11qt_metacallEN11QMetaObject4CallEiPPv @ 14 NONAME
-	_ZN7Dialpad11qt_metacastEPKc @ 15 NONAME
-	_ZN7Dialpad12aboutToCloseEv @ 16 NONAME
-	_ZN7Dialpad12closeDialpadEv @ 17 NONAME
-	_ZN7Dialpad12updateLayoutEN2Qt11OrientationE @ 18 NONAME
-	_ZN7Dialpad16handleSceneEventEP6QEvent @ 19 NONAME
-	_ZN7Dialpad16openAnimFinishedEv @ 20 NONAME
-	_ZN7Dialpad16sceneEventFilterEP13QGraphicsItemP6QEvent @ 21 NONAME
-	_ZN7Dialpad16staticMetaObjectE @ 22 NONAME DATA 16
-	_ZN7Dialpad17closeAnimFinishedEv @ 23 NONAME
-	_ZN7Dialpad19getStaticMetaObjectEv @ 24 NONAME
-	_ZN7Dialpad19startCloseAnimationEv @ 25 NONAME
-	_ZN7Dialpad20layoutBackgroundItemEv @ 26 NONAME
-	_ZN7Dialpad20openAnimValueChangedEf @ 27 NONAME
-	_ZN7Dialpad20setCallButtonEnabledEb @ 28 NONAME
-	_ZN7Dialpad20setTapOutsideDismissEb @ 29 NONAME
-	_ZN7Dialpad21closeAnimValueChangedEf @ 30 NONAME
-	_ZN7Dialpad24orientationChangeStartedEv @ 31 NONAME
-	_ZN7Dialpad25orientationChangeFinishedEN2Qt11OrientationE @ 32 NONAME
-	_ZN7Dialpad5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 33 NONAME
-	_ZN7Dialpad9hideEventEP10QHideEvent @ 34 NONAME
-	_ZN7Dialpad9showEventEP10QShowEvent @ 35 NONAME
-	_ZN7DialpadC1ERK12HbMainWindow @ 36 NONAME
-	_ZN7DialpadC1Ev @ 37 NONAME
-	_ZN7DialpadC2ERK12HbMainWindow @ 38 NONAME
-	_ZN7DialpadC2Ev @ 39 NONAME
-	_ZN7DialpadD0Ev @ 40 NONAME
-	_ZN7DialpadD1Ev @ 41 NONAME
-	_ZN7DialpadD2Ev @ 42 NONAME
-	_ZNK17DialpadKeyHandler10metaObjectEv @ 43 NONAME
-	_ZNK7Dialpad10metaObjectEv @ 44 NONAME
-	_ZNK7Dialpad6editorEv @ 45 NONAME
-	_ZNK7Dialpad6isOpenEv @ 46 NONAME
-	_ZTI17DialpadKeyHandler @ 47 NONAME
-	_ZTI7Dialpad @ 48 NONAME
-	_ZTV17DialpadKeyHandler @ 49 NONAME
-	_ZTV7Dialpad @ 50 NONAME
-	_ZThn16_N7DialpadD0Ev @ 51 NONAME
-	_ZThn16_N7DialpadD1Ev @ 52 NONAME
-	_ZThn8_N7Dialpad10sceneEventEP6QEvent @ 53 NONAME
-	_ZThn8_N7Dialpad16sceneEventFilterEP13QGraphicsItemP6QEvent @ 54 NONAME
-	_ZThn8_N7Dialpad5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 55 NONAME
-	_ZThn8_N7DialpadD0Ev @ 56 NONAME
-	_ZThn8_N7DialpadD1Ev @ 57 NONAME
-	_ZN7Dialpad11aboutToOpenEv @ 58 NONAME
+	_ZN17DialpadKeyHandlerC1EP7Dialpad6QFlagsINS_21DialpadKeyEventFilterEEP7QObject @ 5 NONAME
+	_ZN17DialpadKeyHandlerC1EP7DialpadR12HbMainWindowP7QObject @ 6 NONAME
+	_ZN17DialpadKeyHandlerC2EP7Dialpad6QFlagsINS_21DialpadKeyEventFilterEEP7QObject @ 7 NONAME
+	_ZN17DialpadKeyHandlerC2EP7DialpadR12HbMainWindowP7QObject @ 8 NONAME
+	_ZN17DialpadKeyHandlerD0Ev @ 9 NONAME
+	_ZN17DialpadKeyHandlerD1Ev @ 10 NONAME
+	_ZN17DialpadKeyHandlerD2Ev @ 11 NONAME
+	_ZN19DialpadVtKeyHandler11qt_metacallEN11QMetaObject4CallEiPPv @ 12 NONAME
+	_ZN19DialpadVtKeyHandler11qt_metacastEPKc @ 13 NONAME
+	_ZN19DialpadVtKeyHandler16staticMetaObjectE @ 14 NONAME DATA 16
+	_ZN19DialpadVtKeyHandler19getStaticMetaObjectEv @ 15 NONAME
+	_ZN19DialpadVtKeyHandlerC1EP7DialpadR12HbMainWindowP7QObject @ 16 NONAME
+	_ZN19DialpadVtKeyHandlerC2EP7DialpadR12HbMainWindowP7QObject @ 17 NONAME
+	_ZN19DialpadVtKeyHandlerD0Ev @ 18 NONAME
+	_ZN19DialpadVtKeyHandlerD1Ev @ 19 NONAME
+	_ZN19DialpadVtKeyHandlerD2Ev @ 20 NONAME
+	_ZN7Dialpad10closeEventEP11QCloseEvent @ 21 NONAME
+	_ZN7Dialpad10initializeEv @ 22 NONAME
+	_ZN7Dialpad11aboutToOpenEv @ 23 NONAME
+	_ZN7Dialpad11openDialpadEv @ 24 NONAME
+	_ZN7Dialpad11qt_metacallEN11QMetaObject4CallEiPPv @ 25 NONAME
+	_ZN7Dialpad11qt_metacastEPKc @ 26 NONAME
+	_ZN7Dialpad12aboutToCloseEv @ 27 NONAME
+	_ZN7Dialpad12closeDialpadEv @ 28 NONAME
+	_ZN7Dialpad12gestureEventEP13QGestureEvent @ 29 NONAME
+	_ZN7Dialpad12updateLayoutEN2Qt11OrientationE @ 30 NONAME
+	_ZN7Dialpad16openAnimFinishedEv @ 31 NONAME
+	_ZN7Dialpad16staticMetaObjectE @ 32 NONAME DATA 16
+	_ZN7Dialpad17closeAnimFinishedEv @ 33 NONAME
+	_ZN7Dialpad19getStaticMetaObjectEv @ 34 NONAME
+	_ZN7Dialpad19startCloseAnimationEv @ 35 NONAME
+	_ZN7Dialpad20layoutBackgroundItemEv @ 36 NONAME
+	_ZN7Dialpad20openAnimValueChangedEf @ 37 NONAME
+	_ZN7Dialpad20setCallButtonEnabledEb @ 38 NONAME
+	_ZN7Dialpad20setTapOutsideDismissEb @ 39 NONAME
+	_ZN7Dialpad21closeAnimValueChangedEf @ 40 NONAME
+	_ZN7Dialpad24orientationChangeStartedEv @ 41 NONAME
+	_ZN7Dialpad25orientationChangeFinishedEN2Qt11OrientationE @ 42 NONAME
+	_ZN7Dialpad5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 43 NONAME
+	_ZN7Dialpad9hideEventEP10QHideEvent @ 44 NONAME
+	_ZN7Dialpad9showEventEP10QShowEvent @ 45 NONAME
+	_ZN7DialpadC1ERK12HbMainWindow @ 46 NONAME
+	_ZN7DialpadC1Ev @ 47 NONAME
+	_ZN7DialpadC2ERK12HbMainWindow @ 48 NONAME
+	_ZN7DialpadC2Ev @ 49 NONAME
+	_ZN7DialpadD0Ev @ 50 NONAME
+	_ZN7DialpadD1Ev @ 51 NONAME
+	_ZN7DialpadD2Ev @ 52 NONAME
+	_ZNK17DialpadKeyHandler10metaObjectEv @ 53 NONAME
+	_ZNK19DialpadVtKeyHandler10metaObjectEv @ 54 NONAME
+	_ZNK7Dialpad10metaObjectEv @ 55 NONAME
+	_ZNK7Dialpad6editorEv @ 56 NONAME
+	_ZNK7Dialpad6isOpenEv @ 57 NONAME
+	_ZTI17DialpadKeyHandler @ 58 NONAME
+	_ZTI19DialpadVtKeyHandler @ 59 NONAME
+	_ZTI7Dialpad @ 60 NONAME
+	_ZTV17DialpadKeyHandler @ 61 NONAME
+	_ZTV19DialpadVtKeyHandler @ 62 NONAME
+	_ZTV7Dialpad @ 63 NONAME
+	_ZThn16_N7DialpadD0Ev @ 64 NONAME
+	_ZThn16_N7DialpadD1Ev @ 65 NONAME
+	_ZThn8_N7Dialpad5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 66 NONAME
+	_ZThn8_N7DialpadD0Ev @ 67 NONAME
+	_ZThn8_N7DialpadD1Ev @ 68 NONAME
+	_ZNK7Dialpad19isCallButtonEnabledEv @ 69 NONAME
 
--- a/telutils/dialpad/inc/dialpadbutton.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadbutton.h	Thu Jul 22 16:38:43 2010 +0100
@@ -29,9 +29,8 @@
 
 public:
     enum DialpadButtonType {
-        NumericButton = 0x1,
-        FunctionButton = 0x2,
-        CallButton = 0x3
+        FunctionButton = 0x1, // Backspace
+        CallButton = 0x2      // Dial button
     };
 
 public:
@@ -42,7 +41,6 @@
     void setButtonType(DialpadButtonType type);
 
 protected:
-    void changeEvent(QEvent *event);
     bool sceneEvent(QEvent *event);
     void polish(HbStyleParameters& params);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/inc/dialpademergencycalleventfilter.h	Thu Jul 22 16:38:43 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/dialpadhasheventfilter.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,70 @@
+/*!
+* 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 DIALPADHASHEVENTFILTER_H
+#define DIALPADHASHEVENTFILTER_H
+
+#include "dialpadmailboxeventfilterbase.h"
+
+class QTimer;
+class Dialpad;
+class DialpadSymbianWrapper;
+
+/*!
+    DialpadHashEventFilter
+    Class provides hash key handling.
+*/
+class DialpadHashEventFilter : public DialpadMailboxEventFilterBase
+{
+    Q_OBJECT
+    
+    friend class UT_DialpadHashEventFilter;
+
+public:
+    explicit DialpadHashEventFilter(Dialpad* dialpad, QObject* parent = 0);
+    virtual ~DialpadHashEventFilter();
+
+protected:
+    bool eventFilter(QObject *watched, QEvent *event);
+
+    /*!
+       \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.
+   */
+    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 // DIALPADHASHEVENTFILTER_H
--- a/telutils/dialpad/inc/dialpadkeypad.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadkeypad.h	Thu Jul 22 16:38:43 2010 +0100
@@ -18,17 +18,14 @@
 #ifndef DIALPADKEYPAD_H
 #define DIALPADKEYPAD_H
 
-#include <hbwidget.h>
+#include <hbinputbuttongroup.h>
 
-class DialpadButton;
 class DialpadInputField;
 class DialpadButton;
 class QSignalMapper;
 class QGraphicsGridLayout;
 
-const int DialpadButtonCount = 13;
-
-class DialpadKeypad : public HbWidget
+class DialpadKeypad : public HbInputButtonGroup
 {
     Q_OBJECT
 
@@ -41,41 +38,33 @@
     ~DialpadKeypad();
 
 public:
-    void setLongPressDuration(int duration);
-
     void setCallButtonEnabled(bool enabled);
 
-    void createButtonGrid();
-    
     void resetButtons();
 
+    DialpadButton& callButton() const;
+
 protected slots:
     void setButtonTexts();
-    void handleKeyPressed(int key);
+
     void handleKeyClicked(int key);
-    void handleKeyReleased(int key);
-    void handleLongPress();
-
-protected:
-    void showEvent(QShowEvent *event);
+    void sendKeyPressEvent(const QKeyEvent& event);
+    void sendKeyReleaseEvent(const QKeyEvent& event);
+    void sendLongPressEvent(const QKeyEvent& event);
+    void handleKeyChangeEvent(const QKeyEvent& releaseEvent,
+                              const QKeyEvent& pressEvent);
 
 private:
     void postKeyEvent(QEvent::Type type, int key);
     void sendKeyEventToEditor(QEvent::Type type, int key);
-    inline bool isNumericKey(int key);
 
 private:
     const HbMainWindow& mMainWindow;
     DialpadInputField& mInputField;
-    QGraphicsGridLayout* mGridLayout;
-    DialpadButton* mButtons[DialpadButtonCount];
-    QSignalMapper* mKeyPressedSignalMapper;
-    QSignalMapper* mKeyReleasedSignalMapper;
     QSignalMapper* mKeyClickedSignalMapper;
     QMap<int,QChar> mGeneratedChar;
     int mPressedNumericKey;
-    QTimer* mLongPressTimer;
-    int mLongPressDuration;
+    DialpadButton* mCallButton;
 };
 
 #endif // DIALPADKEYPAD_H
--- a/telutils/dialpad/inc/dialpadkeysequenceeventfilter.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadkeysequenceeventfilter.h	Thu Jul 22 16:38:43 2010 +0100
@@ -18,7 +18,9 @@
 #ifndef DIALPADKEYSEQUENCEEVENTFILTER_H
 #define DIALPADKEYSEQUENCEEVENTFILTER_H
 
-#include <qobject>
+#include <QObject>
+#include <xqappmgr.h>
+#include <xqaiwinterfacedescriptor.h>
 
 class Dialpad;
 
@@ -40,19 +42,19 @@
     bool eventFilter(QObject *watched, QEvent *event);
 
 private:
-    /*!
-       \fn bool preValidateKeySequence()
-
-       Checks if the given sequence conforms key sequence command syntax.
-       
-       \return true if sequence conforms key sequence command syntax, 
-       false otherwise.  
-    */
-    bool preValidateKeySequence(const QString &sequence);
+    void constructKeySequenceToHandlerMappings();
+    XQAiwInterfaceDescriptor findKeySequenceHandler(
+        const QString &keySequenceCandidate);
     
 private:
     /*! Dialpad. Not own. */
     Dialpad* mDialpad;
+    
+    /*! Application manager. */
+    XQApplicationManager mAiwMgr;
+    
+    /*! Key sequence validators and associated sequence handlers. */
+    QMap<QString, XQAiwInterfaceDescriptor> mValidators;
 };
 
 #endif // DIALPADKEYSEQUENCEEVENTFILTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/inc/dialpadmailboxeventfilterbase.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper.h	Thu Jul 22 16:38:43 2010 +0100
@@ -37,8 +37,12 @@
     ~DialpadSymbianWrapper();
     
     int getMailboxNumber(QString &vmbxNumber);
+    int getVideoMailboxNumber(QString &vmbxNumber);
         
     int defineMailboxNumber(QString &vmbxNumber);
+    int defineVideoMailboxNumber(QString &vmbxNumber);
+    
+    bool changeSilentModeState();
 
 protected:
     DialpadSymbianWrapperPrivate *const d_ptr;
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Thu Jul 22 16:38:43 2010 +0100
@@ -38,8 +38,12 @@
     ~DialpadSymbianWrapperPrivate();
     
     int getMailboxNumber(QString &vmbxNumber);
+    int getVideoMailboxNumber(QString &vmbxNumber);
     
     int defineMailboxNumber(QString &vmbxNumber);
+    int defineVideoMailboxNumber(QString &vmbxNumber);
+    
+    bool changeSilentModeState();
     
 private:
     
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p_stub.h	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/inc/dialpadvoicemailboxeventfilter.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/resources/dialpad.css	Thu Jul 22 16:38:43 2010 +0100
@@ -1,63 +1,11 @@
 
 /* icon only */
-DialpadButton::icon{
-    top: -var(hb-param-margin-gene-middle-vertical);
-    bottom: var(hb-param-margin-gene-middle-vertical);
-    fixed-width: var(hb-param-graphic-size-function);
-    fixed-height: var(hb-param-graphic-size-function);
-}
-
 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;
-}
-
-DialpadButton[stretched][!icon][text][additionalText]::text
-{
-    left: -2.0un;
-    font-variant:primary;
-    text-height:var(hb-param-text-height-title);
-    text-line-count-max:1;
-    text-align:left center;
-}
-
-DialpadButton[stretched][!icon][text][additionalText]::additional-text
-{
-    font-variant:secondary;
-    text-height:var(hb-param-text-height-secondary);
-    text-line-count-max:1;    
-    text-align: left center;
-}
-
-/* text and icon */
-DialpadButton[stretched][icon][text][!additionalText]{
-    layout:icon_text_horizontal;
-}
-
-DialpadButton[stretched][icon][text][!additionalText]::text{
-    left: -2.0un;
-    font-variant:primary;
-    text-height:var(hb-param-text-height-title);
-    text-line-count-max:1;
-    text-align:left center;
-}
-
-DialpadButton[stretched][icon][text][!additionalText]::icon{
-    top: -var(hb-param-margin-gene-middle-vertical);
-    bottom: var(hb-param-margin-gene-middle-vertical);
-    fixed-width: var(hb-param-graphic-size-primary-small);
-    fixed-height: var(hb-param-graphic-size-primary-small);
-		left: 0;
-    right: 0;
-    size-policy: fixed fixed;    
-}
-
 DialpadInputField > HbLineEdit{
     text-align: right;
     size-policy: expanding expanding;
--- a/telutils/dialpad/resources/dialpad.dialpadbutton.widgetml	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<hbwidget version="0.1" type="pushbutton">
-
-  <layout name="text_additionalText_horizontal" type="mesh">
-    <meshitem src="text" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="text" srcEdge="CENTERV" dst="" dstEdge="CENTERV" />
-
-    <meshitem src="additional-text" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="2.5un"/>
-    <meshitem src="additional-text" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-
-    <meshitem src="background" srcEdge="TOP" dst="" dstEdge="TOP" />
-    <meshitem src="background" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" />
-    <meshitem src="background" srcEdge="LEFT" dst="" dstEdge="LEFT" />
-    <meshitem src="background" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
-
-    <meshitem src="toucharea" srcEdge="LEFT" dst="" dstEdge="LEFT" />
-    <meshitem src="toucharea" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
-    <meshitem src="toucharea" srcEdge="TOP" dst="" dstEdge="TOP" />
-    <meshitem src="toucharea" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" />
-  </layout>
-
-  <layout name="icon_text_horizontal" type="mesh">
-    <meshitem src="text" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="text" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="text" srcEdge="CENTERV" dst="" dstEdge="CENTERV" />
-
-    <meshitem src="icon" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>    
-    <meshitem src="icon" srcEdge="TOP" dst="" dstEdge="TOP"  spacer="spacerTop"/>
-    <meshitem src="icon" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"  spacer="spacerBottom"/>
-    
-    <meshitem src="background" srcEdge="TOP" dst="" dstEdge="TOP" />
-    <meshitem src="background" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" />
-    <meshitem src="background" srcEdge="LEFT" dst="" dstEdge="LEFT" />
-    <meshitem src="background" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
-
-    <meshitem src="toucharea" srcEdge="LEFT" dst="" dstEdge="LEFT" />
-    <meshitem src="toucharea" srcEdge="RIGHT" dst="" dstEdge="RIGHT" />
-    <meshitem src="toucharea" srcEdge="TOP" dst="" dstEdge="TOP" />
-    <meshitem src="toucharea" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" />
-  </layout>
-    
-</hbwidget>
--- a/telutils/dialpad/resources/dialpad_color.css	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/resources/dialpad_color.css	Thu Jul 22 16:38:43 2010 +0100
@@ -1,55 +1,27 @@
 
 
-/* numeric button normal state */
+/* backspace */
 DialpadButton[state = "normal"][buttonType = "1"]::icon{
-    color: var(qtc_input_button_normal);
-}
-
-DialpadButton[state = "normal"][buttonType = "1"]::text{
-	  color: var(qtc_input_button_normal);
-}
-
-DialpadButton[state = "normal"][buttonType = "1"]::additional-text
-{
-    color: var(qtc_input_button_normal);
-}
-
-/* numeric button pressed state */
-DialpadButton[state = "pressed"][buttonType = "1"]::icon{
-    color: var(qtc_input_button_pressed);
-}
-
-DialpadButton[state = "pressed"][buttonType = "1"]::text{
-	  color: var(qtc_input_button_pressed);
-}
-
-DialpadButton[state = "pressed"][buttonType = "1"]::additional-text
-{
-    color: var(qtc_input_button_pressed);
-}
-
-/* backspace */
-DialpadButton[state = "normal"][buttonType = "2"]::icon{
     color: var(qtc_input_function_normal);
 }
 
+DialpadButton[state = "pressed"][buttonType = "1"]::icon{
+    color: var(qtc_input_function_pressed);
+}
+
+DialpadButton[buttonType = "1"]::icon[!enabled]{
+    color: var(qtc_input_function_disabled);
+}
+
+/* call button */
+DialpadButton[state = "normal"][buttonType = "2"]::icon{
+    color: var(qtc_callhandling_answer_normal);
+}
+
 DialpadButton[state = "pressed"][buttonType = "2"]::icon{
-    color: var(qtc_input_function_pressed);
+    color: var(qtc_callhandling_answer_pressed);
 }
 
 DialpadButton[buttonType = "2"]::icon[!enabled]{
     color: var(qtc_input_function_disabled);
 }
-
-/* call button */
-DialpadButton[state = "normal"][buttonType = "3"]::icon{
-    color: var(qtc_callhandling_answer_normal);
-}
-
-DialpadButton[state = "pressed"][buttonType = "3"]::icon{
-    color: var(qtc_callhandling_answer_pressed);
-}
-
-DialpadButton[buttonType = "3"]::icon[!enabled]{
-    color: var(qtc_input_function_disabled);
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/resources/dialpad_to_lsc.fxml	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,28 @@
+<layers>
+<visual>
+
+  <param name="opacity" type="anim">
+      <duration>1.0</duration>
+      <style>linear</style>
+      <keyframe at="0">0</keyframe>
+      <keyframe at="0.2">0</keyframe>
+      <keyframe at="0.5">1</keyframe>
+  </param>
+  
+	<param name="rotation_angle" type="anim">
+            <duration>0.5</duration>
+            <style>outquad</style>
+            <keyframe at="0">-90</keyframe>
+            <keyframe at="1">0</keyframe>
+	</param>
+
+	<param name="rotation_origin_x" ref="visual.width">0.5</param>
+	<param name="rotation_origin_y" ref="visual.height">0.5</param>
+	
+	<param name="rotation_axis_x" type="anim">0</param>
+	<param name="rotation_axis_y" type="anim">0</param>
+	<param name="rotation_axis_z" type="anim">1</param>        
+
+</visual>
+</layers>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/resources/dialpad_to_prt.fxml	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,28 @@
+<layers>
+<visual>
+
+  <param name="opacity" type="anim">
+      <duration>1.0</duration>
+      <style>linear</style>
+      <keyframe at="0">0</keyframe>
+      <keyframe at="0.2">0</keyframe>
+      <keyframe at="0.5">1</keyframe>
+  </param>
+  
+	<param name="rotation_angle" type="anim">
+            <duration>0.5</duration>
+            <style>outquad</style>
+            <keyframe at="0">90</keyframe>
+            <keyframe at="1">0</keyframe>
+	</param>
+
+	<param name="rotation_origin_x" ref="visual.width">0.5</param>
+	<param name="rotation_origin_y" ref="visual.height">0.5</param>
+	
+	<param name="rotation_axis_x" type="anim">0</param>
+	<param name="rotation_axis_y" type="anim">0</param>
+	<param name="rotation_axis_z" type="anim">1</param>        
+
+</visual>
+</layers>
+
--- a/telutils/dialpad/src/dialpad.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpad.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -15,7 +15,7 @@
 *
 */
 
-#include <QtGui>
+#include <QGraphicsLinearLayout>
 
 #include <hbframedrawer.h>
 #include <hbinstance.h>
@@ -25,6 +25,8 @@
 #include <hbstyleloader.h>
 #include <hblineedit.h>
 #include <hbapplication.h>
+#include <hbswipegesture.h>
+#include <hbeffect.h>
 
 #include "dialpad.h"
 #include "dialpadinputfield.h"
@@ -32,24 +34,31 @@
 #include "dialpadbutton.h"
 #include "dialpadmultitaphandler.h"
 #include "dialpadbackground.h"
+#include "dialpadbutton.h"
 
-static const QString backgroundGraphics("qtg_fr_input_v_bg");
-static const QString backgroundGraphicsH("qtg_fr_input_h_bg");
-static const QString minimizeIcon("qtg_graf_input_v_swipe");
-static const QString minimizeIconH("qtg_graf_input_h_swipe");
-static const qreal DialpadCloseSwipeDistanceV = 0.25; //compared to total height
-static const qreal DialpadCloseSwipeDistanceH = 0.33; // > button width
-static const int DialpadMaxSwipeTime = 300; // ms
+static const QLatin1String backgroundGraphics("qtg_fr_input_v_bg");
+static const QLatin1String backgroundGraphicsH("qtg_fr_input_h_bg");
+static const QLatin1String minimizeIcon("qtg_graf_input_v_swipe");
+static const QLatin1String minimizeIconH("qtg_graf_input_h_swipe");
 static const int DialpadCloseAnimDuration = 200; // ms
 static const int DialpadOpenAnimDuration = 200; // ms
 static const qreal DialpadComponentMargin = 0.75; // units
 static const qreal DialpadCloseHandleHeight = 2.23; // units
 static const qreal DialpadCloseHandleWidth = 18.8; // units
+static const qreal DialpadCallButtonHeight = 8.0; // units
+static const qreal DialpadCallButtonHeightH = 6.0; // units
+
+static const QLatin1String handsetIcon("qtg_mono_call");
+static const QLatin1String vmbxIcon("qtg_mono_voice_mailbox");
+
+const QLatin1String DIALPAD_TO_PRT_FXML(":/dialpad_to_prt.fxml");
+const QLatin1String DIALPAD_TO_LSC_FXML(":/dialpad_to_lsc.fxml");
+const QLatin1String DIALPAD_TO_PRT_EVENT("prt_activated");
+const QLatin1String DIALPAD_TO_LSC_EVENT("lsc_activated");
 
 Dialpad::Dialpad() :
     mMainWindow(*hbInstance->allMainWindows().at(0)),
     mBackgroundItem(0),
-    mMouseButtonPressedDown(false),
     mOpenTimeLine(DialpadOpenAnimDuration),
     mCloseTimeLine(DialpadCloseAnimDuration),
     mAnimationOngoing(false),
@@ -63,7 +72,6 @@
 Dialpad::Dialpad(const HbMainWindow& mainWindow) :
     mMainWindow(mainWindow),
     mBackgroundItem(0),
-    mMouseButtonPressedDown(false),
     mOpenTimeLine(DialpadOpenAnimDuration),
     mCloseTimeLine(DialpadCloseAnimDuration),
     mAnimationOngoing(false),
@@ -77,13 +85,13 @@
 {
     setFocusPolicy(Qt::StrongFocus);
     setFlag(QGraphicsItem::ItemIsFocusable,true);
+    setFlag(QGraphicsItem::ItemHasNoContents, false);
 
     // create input field
     mInputField = new DialpadInputField(this);
 
     // create keypad
     mKeypad = new DialpadKeypad(mMainWindow,*mInputField,this);
-    mKeypad->setLongPressDuration(DialpadMaxSwipeTime);
 
     // layouting params
     qreal unit = HbDeviceProfile::current().unitValue();
@@ -91,15 +99,19 @@
     mCloseHandleHeight = DialpadCloseHandleHeight * unit;
     mCloseHandleWidth = DialpadCloseHandleWidth * unit;
 
+    mKeypad->callButton().setPreferredHeight(DialpadCallButtonHeight*unit);
+    mKeypad->callButton().setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+
     // create popup background
     mBackgroundDrawer = new HbFrameDrawer();
     mIconDrawer = new HbFrameDrawer();
 
     // popup layout
-    QGraphicsLinearLayout* popupLayout
-        = new QGraphicsLinearLayout(mMainWindow.orientation());
+    QGraphicsLinearLayout* popupLayout =
+        new QGraphicsLinearLayout(Qt::Vertical);
     popupLayout->addItem(mInputField);
     popupLayout->addItem(mKeypad);
+    popupLayout->addItem(&mKeypad->callButton());
     popupLayout->setContentsMargins(margin, mCloseHandleHeight, margin, margin);
     popupLayout->setSpacing(margin);
     setLayout(popupLayout);
@@ -109,6 +121,7 @@
     mInputField->editor().installEventFilter(mMultitap);
 
     // close animation
+    mCloseTimeLine.setUpdateInterval(16);
     mCloseTimeLine.setEasingCurve(QEasingCurve::InQuad);
     connect(&mCloseTimeLine, SIGNAL(finished()),
             SLOT(closeAnimFinished()));
@@ -116,6 +129,7 @@
             SLOT(closeAnimValueChanged(qreal)));
 
     // open animation
+    mOpenTimeLine.setUpdateInterval(16);
     mOpenTimeLine.setEasingCurve(QEasingCurve::OutQuad);
     connect(&mOpenTimeLine, SIGNAL(finished()),
             SLOT(openAnimFinished()));
@@ -130,9 +144,8 @@
     mMainWindow.scene()->addItem(this);
 
     // custom button style
-    HbStyleLoader::registerFilePath(":/dialpad.css");
-    HbStyleLoader::registerFilePath(":/dialpad_color.css");
-    HbStyleLoader::registerFilePath(":/dialpad.dialpadbutton.widgetml");
+    HbStyleLoader::registerFilePath(QLatin1String(":/dialpad.css"));
+    HbStyleLoader::registerFilePath(QLatin1String(":/dialpad_color.css"));
 
     // grab gestures so that those are not passed to widgets behind dialpad
     grabGesture(Qt::TapGesture);
@@ -140,6 +153,10 @@
     grabGesture(Qt::PanGesture);
     grabGesture(Qt::SwipeGesture);
     grabGesture(Qt::PinchGesture);
+
+    // effects
+    HbEffect::add(this, DIALPAD_TO_PRT_FXML, DIALPAD_TO_PRT_EVENT);
+    HbEffect::add(this, DIALPAD_TO_LSC_FXML, DIALPAD_TO_LSC_EVENT);
 }
 
 Dialpad::~Dialpad()
@@ -202,6 +219,11 @@
     return mIsOpen;
 }
 
+bool Dialpad::isCallButtonEnabled() const
+{
+    return mKeypad->callButton().isEnabled();
+}
+
 void Dialpad::openDialpad()
 {
     mKeypad->resetButtons();
@@ -233,7 +255,6 @@
     }
 
     if (mOrientation!=previousOrientation) {
-        mKeypad->createButtonGrid();
         updateLayout((Qt::Orientation)mOrientation);
     }
 
@@ -286,7 +307,7 @@
         mBackgroundItem->setZValue(zValue()-1);
         mMainWindow.scene()->addItem(mBackgroundItem);
         qreal chromeHeight = 0;
-        hbInstance->style()->parameter("hb-param-widget-chrome-height",
+        hbInstance->style()->parameter(QLatin1String("hb-param-widget-chrome-height"),
                                        chromeHeight);
         mTitleBarHeight = chromeHeight;
     } else {
@@ -295,58 +316,6 @@
     }
 }
 
-bool Dialpad::sceneEvent(QEvent *event)
-{
-    return handleSceneEvent(event);
-}
-
-bool Dialpad::sceneEventFilter(QGraphicsItem *watched, QEvent *event)        
-{
-    Q_UNUSED(watched);
-
-    return handleSceneEvent(event);
-}
-
-bool Dialpad::handleSceneEvent(QEvent *event)
-{
-    // handle close swipe gesture
-    if (event->type() == QEvent::GraphicsSceneMousePress) {
-        mMouseButtonPressedDown = true;
-        mSwipeTimer.start();
-    } else if (event->type() == QEvent::GraphicsSceneMouseRelease &&
-               mMouseButtonPressedDown) {
-        mMouseButtonPressedDown = false;
-        QGraphicsSceneMouseEvent *mouseEvent =
-            static_cast<QGraphicsSceneMouseEvent*> (event);
-
-        // check if mouse has moved DialpadCloseSwipeDistance vertically
-        QPointF delta = mouseEvent->scenePos() -
-                        mouseEvent->buttonDownScenePos(Qt::LeftButton);
-
-        if (mOrientation==Qt::Vertical) {
-            qreal height = geometry().height() * DialpadCloseSwipeDistanceV;
-
-            if ( (delta.y() >= height) &&
-                 (mSwipeTimer.elapsed() <= DialpadMaxSwipeTime)) {
-                startCloseAnimation();
-            }
-        } else {
-            qreal width = geometry().width() * DialpadCloseSwipeDistanceH;
-            bool swipe = (layoutDirection()==Qt::LeftToRight &&
-                          delta.x() >= width) ||
-                         (layoutDirection()==Qt::RightToLeft &&
-                          -delta.x() >= width);
-
-            if ( swipe &&
-                 (mSwipeTimer.elapsed() <= DialpadMaxSwipeTime)) {
-                startCloseAnimation();
-            }
-        }
-    }
-
-    return false;
-}
-
 void Dialpad::startCloseAnimation()
 {
     if (!mAnimationOngoing) {
@@ -359,10 +328,6 @@
 {
     HbWidget::showEvent(event);
 
-    // for closing swipe gesture
-    installSceneEventFilter(this);
-    setFiltersChildEvents(true);
-
     if (mBackgroundItem) {
         layoutBackgroundItem();
         mBackgroundItem->show();
@@ -372,8 +337,6 @@
 void Dialpad::hideEvent(QHideEvent *event)
 {
     HbWidget::hideEvent(event);
-    setFiltersChildEvents(false);
-    removeSceneEventFilter(this);
 }
 
 void Dialpad::closeEvent(QCloseEvent * event)
@@ -450,9 +413,6 @@
 void Dialpad::orientationChangeStarted()
 {
     hide();
-    // needs to re-create grid layout to get
-    // scale with uniform item sizes
-    mKeypad->createButtonGrid();
 }
 
 void Dialpad::orientationChangeFinished(Qt::Orientation current)
@@ -461,6 +421,13 @@
 
     show();
 
+    // run orientation change effect
+    if (current==Qt::Horizontal) {
+        HbEffect::start(this, DIALPAD_TO_LSC_EVENT);
+    } else {
+        HbEffect::start(this, DIALPAD_TO_PRT_EVENT);
+    }
+
     mOrientation = current;
 
     mPosition = pos();
@@ -494,10 +461,40 @@
                                        mCloseHandleHeight,
                                        margin,
                                        margin);
+        mKeypad->callButton().setPreferredHeight(DialpadCallButtonHeight*unit);
     } else {
         mainLayout->setContentsMargins(mCloseHandleHeight,
                                        margin,
                                        margin,
                                        margin);
+        mKeypad->callButton().setPreferredHeight(DialpadCallButtonHeightH*unit);
     }
 }
+
+void Dialpad::gestureEvent(QGestureEvent *event)
+{
+    bool closeGesture(false);
+
+    if(HbSwipeGesture *gesture = qobject_cast<HbSwipeGesture*>(
+           event->gesture(Qt::SwipeGesture))) {
+        if (gesture->state() == Qt::GestureFinished) {
+            if ( mOrientation==Qt::Vertical &&
+                 gesture->sceneVerticalDirection() == QSwipeGesture::Down ) {
+                closeGesture = true;
+            } else if (layoutDirection()==Qt::LeftToRight &&
+                gesture->sceneHorizontalDirection() == QSwipeGesture::Right) {
+                closeGesture = true;
+            } else if (layoutDirection()==Qt::RightToLeft &&
+                gesture->sceneHorizontalDirection() == QSwipeGesture::Left) {
+                closeGesture = true;
+            }
+        }
+    }
+
+    if (closeGesture) {
+        startCloseAnimation();
+        event->accept();
+    } else {
+        event->ignore();
+    }
+}
--- a/telutils/dialpad/src/dialpadbackground.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadbackground.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -15,7 +15,7 @@
 *
 */
 
-#include <QtGui>
+#include <QGraphicsSceneMouseEvent>
 #include "dialpadbackground.h"
 #include "dialpad.h"
 
--- a/telutils/dialpad/src/dialpadbutton.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadbutton.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -22,7 +22,7 @@
 #include "dialpadbutton.h"
 
 DialpadButton::DialpadButton(QGraphicsItem *parent)
-    : HbPushButton(parent), mButtonType(NumericButton)
+    : HbPushButton(parent), mButtonType(FunctionButton)
 {
 }
 
@@ -40,21 +40,12 @@
     mButtonType = type;
 }
 
-void DialpadButton::changeEvent(QEvent *event)
-{
-    if (event->type() == HbEvent::ThemeChanged) {
-        updatePrimitives();
-    }
-
-    HbPushButton::changeEvent(event);
-}
-
 bool DialpadButton::sceneEvent(QEvent *event)
 {
     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
@@ -80,7 +71,7 @@
     HbPushButton::updatePrimitives();
 
     HbFrameItem* frame =
-        qgraphicsitem_cast<HbFrameItem*>(HbWidget::primitive("background"));
+        qgraphicsitem_cast<HbFrameItem*>(HbWidget::primitive(QLatin1String("background")));
 
     if (!frame) {
         return;
@@ -89,22 +80,18 @@
     QString graphicsName;
 
     if (!isEnabled()) {
-        graphicsName = "qtg_fr_input_btn_function_disabled";
+        graphicsName = QLatin1String("qtg_fr_input_btn_function_disabled");
     } else if (isDown()) {
         if (buttonType()==CallButton) {
-            graphicsName = "qtg_fr_btn_green_pressed";
-        } else if (buttonType()==FunctionButton) {
-            graphicsName = "qtg_fr_input_btn_function_pressed";
+            graphicsName = QLatin1String("qtg_fr_btn_green_pressed");
         } else {
-            graphicsName = "qtg_fr_input_btn_keypad_pressed";
+            graphicsName = QLatin1String("qtg_fr_input_btn_function_pressed");
         }
     } else {
         if (buttonType()==CallButton) {
-            graphicsName = "qtg_fr_btn_green_normal";
-        } else if (buttonType()==FunctionButton) {
-            graphicsName = "qtg_fr_input_btn_function_normal";
+            graphicsName = QLatin1String("qtg_fr_btn_green_normal");
         } else {
-            graphicsName = "qtg_fr_input_btn_keypad_normal";
+            graphicsName = QLatin1String("qtg_fr_input_btn_function_normal");
         }
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpademergencycalleventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,116 @@
+/*
+* 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
+    TPtrC number (static_cast<const TUint16*>(phoneNumber.utf16()),
+            phoneNumber.length());
+    TRAP_IGNORE(mEmergency->DialEmergencyCallL(number));
+#endif // Q_OS_SYMBIAN
+}
+
+void DialpadEmergencyCallEventFilter::editorTextChanged()
+{
+    mDialpad->setCallButtonEnabled(isEmergencyNumber(editorText())); 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpadhasheventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,98 @@
+/*
+* 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 <hblineedit.h>
+#include <hbnotificationdialog.h>
+#include "dialpadhasheventfilter.h"
+#include "dialpadsymbianwrapper.h"
+#include "dialpad.h"
+#include "qtphonesrvlog.h"
+
+const QString HashCharacter("#");
+
+DialpadHashEventFilter::DialpadHashEventFilter(Dialpad* dialpad, QObject* parent) :
+    DialpadMailboxEventFilterBase(dialpad, parent)
+{
+}
+
+DialpadHashEventFilter::~DialpadHashEventFilter()
+{
+}
+
+bool DialpadHashEventFilter::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 ((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 (isLongKeyPressSupported(keyCode)){
+            mLongPressTimer->stop();
+        }
+    }
+
+    return keyEventEaten;
+}
+
+void DialpadHashEventFilter::handleLongKeyPress()
+{
+    PHONE_TRACE;
+    switch(mKeyEvent) {
+    case Qt::Key_NumberSign:{
+       handleMailboxOperation();
+       break;
+       }
+   default:
+       // Do nothing.
+       break;
+    }
+
+    // Reset key code.
+    mKeyEvent = NULL;
+}
+
+bool DialpadHashEventFilter::handleCallButtonPress()
+{
+    // not supported
+    return EFalse;
+}
+
+void DialpadHashEventFilter::handleMailboxOperation()
+{
+    PHONE_TRACE;
+    // change KCRUidProfileEngine KProEngSilenceMode value and show note  
+    if (mSymbianWrapper->changeSilentModeState()) {
+        HbNotificationDialog::launchDialog( 
+                hbTrId( "txt_dialer_dpopinfo_silent_mode_activated" ) );
+    }
+    else {
+        HbNotificationDialog::launchDialog( 
+                hbTrId( "txt_dialer_dpopinfo_silent_mode_deactivated" ) );
+    }
+    clearEditor();
+}
--- a/telutils/dialpad/src/dialpadinputfield.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadinputfield.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -15,7 +15,7 @@
 *
 */
 
-#include <QtGui>
+#include <QGraphicsLinearLayout>
 
 #include <hblineedit.h>
 #include <hbinputeditorinterface.h>
@@ -25,7 +25,7 @@
 #include "dialpadinputfield.h"
 #include "dialpadbutton.h"
 
-static const QString HbBackspaceIcon("qtg_mono_backspace2");
+static const QLatin1String HbBackspaceIcon("qtg_mono_backspace2");
 static const int DialpadAutoRepeatInterval = 150; // ms
 static const int DialpadAutoRepeatDelay = 1000; // ms
 static const qreal DialpadComponentMargin = 0.75; // units
@@ -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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadkeyhandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -16,10 +16,17 @@
 */
 
 #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 "dialpadhasheventfilter.h"
 #include "qtphonesrvlog.h"
 
 DialpadKeyHandler::DialpadKeyHandler(
@@ -28,21 +35,96 @@
     QObject(parent),
 	mMainWindow(mainWindow),
 	mVmbxFilter(0),
+	mVideoVmbxFilter(0),
 	mBtFilter(0),
-	mKeySequenceFilter(0)
+	mKeySequenceFilter(0),
+	mEmergencyCallFilter(0),
+	mHashFilter(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));
+    mHashFilter.reset(new DialpadHashEventFilter(dialPad));
+
+    // Stack different event filters
+    mMainWindow.installEventFilter(mVmbxFilter.data());
+    if (isVideoMailboxSupported) {
+        mMainWindow.installEventFilter(mVideoVmbxFilter.data());    
+    }
+    mMainWindow.installEventFilter(mBtFilter.data());
+    mMainWindow.installEventFilter(mKeySequenceFilter.data());
+    mMainWindow.installEventFilter(mHashFilter.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),
+    mHashFilter(0)
 {
     PHONE_TRACE;
     
-    mVmbxFilter.reset(new DialpadVoiceMailboxEventFilter(dialPad));
-    mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
-    mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
+    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());
+    }
     
-    // Stack different event filters
-    mMainWindow.installEventFilter(mVmbxFilter.data());
-    mMainWindow.installEventFilter(mBtFilter.data());
-    mMainWindow.installEventFilter(mKeySequenceFilter.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());
+    }
+    
+    if (filters.testFlag(Hash)) {
+        mHashFilter.reset(new DialpadHashEventFilter(dialPad));
+        mMainWindow.installEventFilter(mHashFilter.data());
+    }
 }
 
+
 DialpadKeyHandler::~DialpadKeyHandler()
 {
+    mMainWindow.removeEventFilter(mVmbxFilter.data());
+    mMainWindow.removeEventFilter(mVideoVmbxFilter.data());
+    mMainWindow.removeEventFilter(mBtFilter.data());
+    mMainWindow.removeEventFilter(mKeySequenceFilter.data());
+    mMainWindow.removeEventFilter(mEmergencyCallFilter.data());
+    mMainWindow.removeEventFilter(mHashFilter.data());
 }
--- a/telutils/dialpad/src/dialpadkeypad.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadkeypad.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -15,7 +15,9 @@
 *
 */
 
-#include <QtGui>
+#include <QLocale>
+#include <QSignalMapper>
+
 #include <hbinstance.h>
 #include <hbinputkeymapfactory.h>
 #include <hbinputkeymap.h>
@@ -24,135 +26,107 @@
 #include <hbinputlanguage.h>
 #include <hbapplication.h>
 #include <hblineedit.h>
+#include <hbinputbutton.h>
 
 #include "dialpadkeypad.h"
 #include "dialpadbutton.h"
 #include "dialpadinputfield.h"
 
-static const int DialpadRowCount = 5;
+static const int DialpadRowCount = 4;
 static const int DialpadColumnCount = 3;
-static const QString handsetIcon("qtg_mono_call");
-static const QString vmbxIcon("qtg_mono_voice_mailbox");
+static const QLatin1String handsetIcon("qtg_mono_call");
+static const QLatin1String vmbxIcon("qtg_mono_voice_mailbox");
+static const qreal DialpadKeypadBorderWidth = 0.25;
 
-static const int DialpadButtonToKeyCodeTable[DialpadButtonCount] =
+static const int DialpadKeyCodeTable[DialpadRowCount*DialpadColumnCount] =
 {
     Qt::Key_1,        Qt::Key_2,      Qt::Key_3,
     Qt::Key_4,        Qt::Key_5,      Qt::Key_6,
     Qt::Key_7,        Qt::Key_8,      Qt::Key_9,
-    Qt::Key_Asterisk, Qt::Key_0,      Qt::Key_NumberSign,
-                      Qt::Key_Yes
-    // Qt::Key_BackSpace is in input field
+    Qt::Key_Asterisk, Qt::Key_0,      Qt::Key_NumberSign
+    // Qt::Key_Yes and Qt::Key_BackSpace are handled separately
 };
 
 DialpadKeypad::DialpadKeypad(
     const HbMainWindow& mainWindow,
     DialpadInputField& inputField,
     QGraphicsItem* parent) :
-    HbWidget(parent),
+    HbInputButtonGroup(parent),
     mMainWindow(mainWindow),
-    mInputField(inputField),
-    mLongPressDuration(0)
+    mInputField(inputField)
 {
-    // create signal mappers
-    mKeyPressedSignalMapper = new QSignalMapper(this);
-    connect(mKeyPressedSignalMapper,SIGNAL(mapped(int)),
-            SLOT(handleKeyPressed(int)));
+    setObjectName("keypad");
+
+    // create clicked signal mapper
     mKeyClickedSignalMapper = new QSignalMapper(this);
     connect(mKeyClickedSignalMapper,SIGNAL(mapped(int)),
             SLOT(handleKeyClicked(int)));
-    mKeyReleasedSignalMapper = new QSignalMapper(this);
-    connect(mKeyReleasedSignalMapper,SIGNAL(mapped(int)),
-            SLOT(handleKeyReleased(int)));
 
+    // connect backspace signals
     connect(&mInputField.backspaceButton(),SIGNAL(clicked()),
             mKeyClickedSignalMapper,SLOT(map()));
     mKeyClickedSignalMapper->setMapping(&mInputField.backspaceButton(),
                                         Qt::Key_Backspace);
 
     // create keypad
-    for (int i = 0; i < DialpadButtonCount; i++) {
-        int keyCode = DialpadButtonToKeyCodeTable[i];
+    setGridSize(QSize(DialpadColumnCount, DialpadRowCount));
+    setButtonBorderSize(DialpadKeypadBorderWidth);
 
-        DialpadButton* button = new DialpadButton(this);
-        mButtons[i] = button;
+    QList<HbInputButton*> buttons;
 
-        button->setStretched(true);
-        button->setFocusPolicy(Qt::NoFocus);
-        button->setFlag(QGraphicsItem::ItemIsFocusable,false);
+    for (int i = 0; i < DialpadRowCount * DialpadColumnCount; ++i) {
+        HbInputButton *item = new HbInputButton(
+            DialpadKeyCodeTable[i],
+            QPoint(i % DialpadColumnCount, i / DialpadColumnCount));
+        buttons.append(item);
 
-        QString buttonName;
-        buttonName.setNum(keyCode);
-        button->setObjectName(buttonName);
+        item->setType(HbInputButton::ButtonTypeNormal);
+    }
+
+    setButtons(buttons);
 
-        if (keyCode==Qt::Key_Yes) {
-            HbIcon callIcon(handsetIcon); // todo correct icon
-            button->setIcon(callIcon);
-            button->setButtonType(DialpadButton::CallButton); // for css
-        } else {
-            button->setButtonType(DialpadButton::NumericButton); // for css
-        }
-
-        if (keyCode==Qt::Key_1) {
-            HbIcon mboxIcon(vmbxIcon);
-            button->setIcon(mboxIcon);
-        }
+    // connect keypad signals
+    QObject::connect(this, SIGNAL(buttonPressed(const QKeyEvent&)),
+                     this, SLOT(sendKeyPressEvent(const QKeyEvent&)));
+    QObject::connect(this, SIGNAL(buttonReleased(const QKeyEvent&)),
+                     this, SLOT(sendKeyReleaseEvent(const QKeyEvent&)));
+    QObject::connect(this, SIGNAL(buttonLongPressed(const QKeyEvent&)),
+                     this, SLOT(sendLongPressEvent(const QKeyEvent&)));
+    QObject::connect(this, SIGNAL(pressedButtonChanged(const QKeyEvent&,
+                                                       const QKeyEvent&)),
+                     this, SLOT(handleKeyChangeEvent(const QKeyEvent&,
+                                                     const QKeyEvent&)));
 
-        // for Yes-key clicked() signal is enough
-        if (keyCode!=Qt::Key_Yes) {
-            connect(button,SIGNAL(pressed()),
-                    mKeyPressedSignalMapper,SLOT(map()));
-            mKeyPressedSignalMapper->setMapping(button,keyCode);
-
-            connect(button,SIGNAL(released()),
-                    mKeyReleasedSignalMapper,SLOT(map()));
-            mKeyReleasedSignalMapper->setMapping(button,keyCode);
-        }
-
-        connect(button,SIGNAL(clicked()),mKeyClickedSignalMapper,SLOT(map()));
-        mKeyClickedSignalMapper->setMapping(button,keyCode);
-    }
+    // create call button (parent layouts this)
+    mCallButton = new DialpadButton(parent);
+    mCallButton->setButtonType(DialpadButton::CallButton);
+    mCallButton->setIcon(HbIcon(handsetIcon));
+    QString buttonName;
+    buttonName.setNum(Qt::Key_Yes);
+    mCallButton->setObjectName(buttonName);
+    connect(mCallButton,SIGNAL(clicked()),
+            mKeyClickedSignalMapper,SLOT(map()));
+    connect(mCallButton,SIGNAL(longPress(QPointF)),
+            mKeyClickedSignalMapper,SLOT(map()));
+    mKeyClickedSignalMapper->setMapping(mCallButton,
+                                        Qt::Key_Yes);
 
     // set button texts
     setButtonTexts();
+    // set button icons
+    button(0)->setIcon(HbIcon(vmbxIcon),
+        HbInputButton::ButtonIconIndexSecondaryFirstRow);
+
     // update button texts when input language is changed
     connect(HbInputSettingProxy::instance(),
             SIGNAL(globalInputLanguageChanged(HbInputLanguage)),
             this,SLOT(setButtonTexts()));
-
-    createButtonGrid();
-
-    // timer to handle long press
-    mLongPressTimer = new QTimer(this);
-    mLongPressTimer->setSingleShot(true);
-    connect(mLongPressTimer,SIGNAL(timeout()),SLOT(handleLongPress()));
 }
 
 DialpadKeypad::~DialpadKeypad()
 {
 }
 
-void DialpadKeypad::createButtonGrid()
-{
-    // button grid
-    mGridLayout = new QGraphicsGridLayout;
-
-    // 12 numeric buttons
-    int i=0;
-    for (int row = 0; row < DialpadRowCount-1; row++) {
-        for (int col = 0; col < DialpadColumnCount; col++) {
-           mGridLayout->addItem(mButtons[i],row,col);
-           i++;
-        }
-    }
-
-    // call button take the last row
-    mGridLayout->addItem(mButtons[12],4,0,1,3);
-    mGridLayout->setSpacing(0);
-    mGridLayout->setContentsMargins(0,0,0,0);
-
-    setLayout(mGridLayout);
-}
-
 void DialpadKeypad::setButtonTexts()
 {
     HbInputLanguage inputLanguage =
@@ -163,14 +137,17 @@
     mGeneratedChar.clear();
 
     if (keymap) {
-        for (int i = 0; i < DialpadButtonCount-1; i++) {
-            int keyCode = DialpadButtonToKeyCodeTable[i];
+        int buttonCount = (DialpadRowCount*DialpadColumnCount);
+        for (int i = 0; i < buttonCount; i++) {
+            int keyCode = DialpadKeyCodeTable[i];
 
             if (keyCode == Qt::Key_Asterisk) {
                 // asterisk is not localized
                 QChar asterisk('*');
-                mButtons[i]->setText(asterisk);
-                mButtons[i]->setAdditionalText("+");
+                button(i)->setText(asterisk,
+                    HbInputButton::ButtonTextIndexPrimary);
+                button(i)->setText("+",
+                    HbInputButton::ButtonTextIndexSecondaryFirstRow);
                 mGeneratedChar.insert(Qt::Key_Asterisk, asterisk);
                 continue;
             }
@@ -178,8 +155,10 @@
             if (keyCode == Qt::Key_NumberSign) {
                 // number sign is not localized
                 QChar numberSign('#');
-                mButtons[i]->setText(numberSign);
-                mButtons[i]->setAdditionalText(" ");
+                button(i)->setText(numberSign,
+                    HbInputButton::ButtonTextIndexPrimary);
+                button(i)->setText(" ",
+                    HbInputButton::ButtonTextIndexSecondaryFirstRow);
                 mGeneratedChar.insert(Qt::Key_NumberSign, numberSign);
                 continue;
             }
@@ -199,7 +178,8 @@
                         inputLanguage.language());
 
                 // button text
-                mButtons[i]->setText(numberChar);
+                button(i)->setText(numberChar,
+                    HbInputButton::ButtonTextIndexPrimary);
                 mGeneratedChar.insert(keyCode,numberChar);
 
                 // additional text (letters)
@@ -215,108 +195,83 @@
                 QString characters = key->characters(HbModifierNone);
 
                 if (numberOfCharacters==0 && keyCode!=Qt::Key_1) {
-                    mButtons[i]->setAdditionalText(" ");
+                    button(i)->setText(" ",
+                        HbInputButton::ButtonTextIndexSecondaryFirstRow);
                 } else {
-                    mButtons[i]->setAdditionalText(
-                        characters.left(numberOfCharacters));
+                    button(i)->setText(characters.left(numberOfCharacters),
+                        HbInputButton::ButtonTextIndexSecondaryFirstRow);
                 }
             }
         }
     }
 }
 
-void DialpadKeypad::handleKeyPressed(int key)
-{
-    // Editor is updated on key release (clicked()) or on long press,
-    // to prevent editor being updated during swipe.
-    mPressedNumericKey = key;
-    mLongPressTimer->start(mLongPressDuration);
-
-    postKeyEvent(QEvent::KeyPress, key);
-}
-
 void DialpadKeypad::handleKeyClicked(int key)
 {
-    if (!isNumericKey(key)) {
-        postKeyEvent(QEvent::KeyPress, key);
-        postKeyEvent(QEvent::KeyRelease, key);
-    } else if (mPressedNumericKey) {
-        // update editor: generate key press event.
-        sendKeyEventToEditor(QEvent::KeyPress, key);
-    }
-}
-
-void DialpadKeypad::handleKeyReleased(int key)
-{
-    mLongPressTimer->stop();
-
+    // concerns only yes and backspace keys
+    postKeyEvent(QEvent::KeyPress, key);
     postKeyEvent(QEvent::KeyRelease, key);
 }
 
 void DialpadKeypad::postKeyEvent(QEvent::Type type, int key)
 {
+    // send simulated key to application
     QKeyEvent *keyEvent = new QKeyEvent(type, key, Qt::NoModifier);
     HbApplication::postEvent(const_cast<HbMainWindow*>(&mMainWindow),keyEvent);
 }
 
 void DialpadKeypad::sendKeyEventToEditor(QEvent::Type type, int key)
 {
+    // send key event to editor
     QKeyEvent keyEvent(type, key, Qt::NoModifier, mGeneratedChar.value(key));
     HbApplication::sendEvent(&mInputField.editor(), &keyEvent);
 }
 
-void DialpadKeypad::handleLongPress()
+void DialpadKeypad::sendKeyPressEvent(const QKeyEvent& event)
+{
+    mPressedNumericKey = event.key();
+    postKeyEvent(QEvent::KeyPress, event.key());
+}
+
+void DialpadKeypad::sendKeyReleaseEvent(const QKeyEvent& event)
 {
-    // key press
-    sendKeyEventToEditor(QEvent::KeyPress, mPressedNumericKey);
+    if (mPressedNumericKey) {
+        // short press, update editor here
+        sendKeyEventToEditor(QEvent::KeyPress, event.key());
+    }
+
+    postKeyEvent(QEvent::KeyRelease, event.key());    
+}
+
+void DialpadKeypad::sendLongPressEvent(const QKeyEvent& event)
+{
+    sendKeyEventToEditor(QEvent::KeyPress, event.key());
+    resetButtons();
     mPressedNumericKey = 0;
 }
 
-bool DialpadKeypad::isNumericKey(int key)
+void DialpadKeypad::handleKeyChangeEvent(
+    const QKeyEvent& releaseEvent,
+    const QKeyEvent& pressEvent)
 {
-    if (key==Qt::Key_Yes || key==Qt::Key_Backspace) {
-        return false;
-    } else {
-        return true;
-    }
-}
+    Q_UNUSED(pressEvent)
 
-void DialpadKeypad::setLongPressDuration(int duration)
-{
-    mLongPressDuration = duration;
+    postKeyEvent(QEvent::KeyRelease, releaseEvent.key());
+    cancelButtonPress();
 }
 
 void DialpadKeypad::setCallButtonEnabled(bool enabled)
 {
-    mButtons[DialpadButtonCount-1]->setEnabled(enabled);
-}
-
-void DialpadKeypad::showEvent(QShowEvent *event)
-{
-    HbWidget::showEvent(event);
-
-    if (parentWidget()->isVisible()) {
-        // first show event comes before dialpad is open
-        // set fixed row and column dimensions
-        QSizeF effectiveSize(rect().width(),
-                             rect().height());
-
-        qreal width = effectiveSize.width() / DialpadColumnCount;
-        qreal height = effectiveSize.height() / DialpadRowCount;
-
-        for (int i=0; i < DialpadColumnCount ;i++) {
-            mGridLayout->setColumnFixedWidth(i, width);
-        }
-
-        for (int i=0; i < DialpadRowCount ;i++) {
-            mGridLayout->setRowFixedHeight(i, height);
-        }
-    }
+    mCallButton->setEnabled(enabled);
 }
 
 void DialpadKeypad::resetButtons()
 {
-    for(int i = 0; i < DialpadButtonCount; i++) {
-        mButtons[i]->setDown(false);
-    }
+    cancelButtonPress();
+    mCallButton->setDown(false);
 }
+
+DialpadButton& DialpadKeypad::callButton() const
+{
+    return *mCallButton;
+}
--- a/telutils/dialpad/src/dialpadkeysequenceeventfilter.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadkeysequenceeventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -14,8 +14,8 @@
 * Description: Implements key sequence recognition filter for Dialpad.
 *
 */
-#include <qdebug>
-#include <qkeyevent>
+#include <QDebug>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include <hbstringutil.h>
 #ifdef Q_OS_SYMBIAN
@@ -35,6 +35,8 @@
     QObject(parent), mDialpad(dialpad)
 {
     PHONE_TRACE;
+    
+    constructKeySequenceToHandlerMappings();
 }
 
 
@@ -52,7 +54,6 @@
  */
 bool DialpadKeySequenceEventFilter::eventFilter(QObject *watched, QEvent *event)
 {
-    PHONE_TRACE;
     Q_UNUSED(watched)
     
     const bool eventFiltered = false;
@@ -65,24 +66,25 @@
     // specification.
     QString keySequenceCandidate = HbStringUtil::convertDigitsTo(
         mDialpad->editor().text(), WesternDigit);
-    if (QEvent::KeyRelease == eventType && 
-        Qt::Key_NumberSign == keyCode &&
-        preValidateKeySequence(keySequenceCandidate)) {
-        XQServiceRequest request(
-            "com.nokia.services.telephony",
-            "executeKeySequence(QString)",
-            true);
-        
-        // Workaround for getting focus back to dialer after service request.
-        XQRequestInfo requestInfo;
-        requestInfo.setBackground(true);
-        request.setInfo(requestInfo);
-        
-        QVariant keySequenceProcessed;
-        request << keySequenceCandidate;
-        bool requestOk = request.send(keySequenceProcessed);
-        if (requestOk && keySequenceProcessed.toBool()) {
-            mDialpad->editor().setText(QString(""));
+    if (QEvent::KeyRelease == eventType && Qt::Key_NumberSign == keyCode) {
+        XQAiwInterfaceDescriptor keySequenceHandler = 
+            findKeySequenceHandler(keySequenceCandidate);
+        if (keySequenceHandler.isValid()) {
+            QScopedPointer<XQAiwRequest> request(mAiwMgr.create(
+                keySequenceHandler, 
+                "executeKeySequence(QString)",
+                false));
+            request->setSynchronous(true);
+            request->setBackground(true);
+            QList<QVariant> arguments;
+            arguments << keySequenceCandidate;
+            request->setArguments(arguments);
+            
+            QVariant keySequenceProcessed;
+            bool requestOk = request->send(keySequenceProcessed);
+            if (requestOk && keySequenceProcessed.toBool()) {
+                mDialpad->editor().setText(QString(""));
+            }
         }
     }
 #else
@@ -94,22 +96,56 @@
 
 
 /*!
-  DialpadKeySequenceEventFilter::preValidateKeySequence.
-  Checks that key sequence starts with '*#'and ends with '#'.
+  DialpadKeySequenceEventFilter::constructKeySequenceToHandlerMappings.
  */
-bool DialpadKeySequenceEventFilter::preValidateKeySequence(
-    const QString &sequence)
+void DialpadKeySequenceEventFilter::constructKeySequenceToHandlerMappings()
 {
-    const int KMinimumLength = 4;
-    bool isValid = false;
+    PHONE_TRACE;
+    
+    QList<XQAiwInterfaceDescriptor> implementations = mAiwMgr.list(
+        "com.nokia.symbian.IKeySequenceRecognition", 
+        "");
     
-    int lengthOfSequence = sequence.length();
-    if (KMinimumLength <= lengthOfSequence) {
-        isValid = 
-            (sequence.at(0) == '*') && 
-            (sequence.at(1) == '#') && 
-            (sequence.at(lengthOfSequence - 1) == '#');
+    foreach (XQAiwInterfaceDescriptor d, implementations)
+    {
+        QScopedPointer<XQAiwRequest> request(mAiwMgr.create(
+            d,
+            "keySequenceValidator()",
+            false));
+        request->setSynchronous(true);
+        request->setBackground(true);
+        
+        QVariant keySequenceValidator;
+        bool requestOk = request->send(keySequenceValidator);
+        if (requestOk && keySequenceValidator.toString().size()) {
+            QString validator = keySequenceValidator.toString();
+            mValidators[validator] = d;
+        }
+    }
+}
+
+
+/*!
+  DialpadKeySequenceEventFilter::findKeySequenceHandler.
+ */
+XQAiwInterfaceDescriptor DialpadKeySequenceEventFilter::findKeySequenceHandler(
+    const QString &keySequenceCandidate) 
+{
+    PHONE_TRACE;
+
+    XQAiwInterfaceDescriptor keySequenceHandler;
+    
+    QList<QString> validatorExpressions = mValidators.keys();
+    QList<QString>::const_iterator it;
+    for (it = validatorExpressions.constBegin(); 
+         (it != validatorExpressions.constEnd()) && (!keySequenceHandler.isValid());
+         ++it) {
+        QString validatorExpression = *it;
+        QRegExp expression(validatorExpression);
+        if (expression.exactMatch(keySequenceCandidate)) {
+            keySequenceHandler = mValidators.value(*it);
+        }
     }
     
-    return isValid;
+    return keySequenceHandler;
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpadmailboxeventfilterbase.cpp	Thu Jul 22 16:38:43 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(3);
+static const int DialpadLongKeyPressSupportingButtons[DialpadLongKeyPressButtonCount] =
+{ Qt::Key_1, Qt::Key_2, Qt::Key_NumberSign };
+
+
+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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -36,9 +36,23 @@
     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);
+}
+
+bool DialpadSymbianWrapper::changeSilentModeState()
+{
+    return d_ptr->changeSilentModeState();
+}
--- a/telutils/dialpad/src/dialpadsymbianwrapper_p.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadsymbianwrapper_p.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,6 +19,9 @@
 #include "dialpadsymbianwrapper_p.h"
 #include <cvoicemailbox.h>
 #include <cvoicemailboxentry.h>
+#include <centralrepository.h>
+#include <profileenginesdkcrkeys.h>
+#include <profileengineinternalcrkeys.h>
 
 DialpadSymbianWrapperPrivate::DialpadSymbianWrapperPrivate(DialpadSymbianWrapper *parent) : 
     q_ptr(parent)
@@ -38,10 +41,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 +55,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;
 }
 
@@ -79,3 +116,25 @@
     return dialpadText;
 }
 
+bool DialpadSymbianWrapperPrivate::changeSilentModeState()
+{   
+    // first get present value from cenrep
+    int silenceMode( 0 );
+    CRepository* cenRep = CRepository::NewL( KCRUidProfileEngine );
+    int err = cenRep->Get( KProEngSilenceMode, silenceMode );
+    
+    // then set it to another one
+    if (KErrNone == err) {
+        if (silenceMode) {
+            silenceMode = 0;
+        }
+        else {
+            silenceMode = 1;
+        }
+    }
+
+    err = cenRep->Set( KProEngSilenceMode, silenceMode );
+    delete cenRep;
+    return silenceMode;
+}
+
--- a/telutils/dialpad/src/dialpadsymbianwrapper_p_stub.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadsymbianwrapper_p_stub.cpp	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -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 Jul 22 16:38:43 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/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_b.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="50px" height="10px" viewBox="0 0 50 10" enable-background="new 0 0 50 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="50" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="-39.8838" x2="24.9995" y2="10.0715">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="50" height="10"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="-39.8838" x2="24.9995" y2="9.8873">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect y="9" opacity="0.35" fill="url(#SVGID_2_)" width="50" height="1"/>
-<rect fill="none" width="50" height="10"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_bl.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="-39.8838" x2="5" y2="10.0715">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M0,5c0,2.762,2.238,5,5,5h5V0H0V5z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="-39.8838" x2="5" y2="9.8873">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M0,0v5c0,2.762,2.238,5,5,5h5V9H5C2.794,9,1,7.206,1,5V0H0z"/>
-<rect fill="none" width="10" height="10"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_br.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="-39.8838" x2="5" y2="10.0715">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M0,10h5c2.762,0,5-2.238,5-5V0H0V10z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="-39.8838" x2="5" y2="9.8873">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M9,5c0,2.206-1.794,4-4,4H0v1h5c2.762,0,5-2.238,5-5V0H9V5z"/>
-<rect fill="none" width="10" height="10"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_c.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="50px" height="30px" viewBox="0 0 50 30" enable-background="new 0 0 50 30" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="50" height="30"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="-9.8843" x2="24.9995" y2="40.0719">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="50" height="30"/>
-<rect fill="none" width="50" height="30"/>
-<rect opacity="0.1" fill="#FFFFFF" width="50" height="9"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_l.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="30px" viewBox="0 0 10 30" enable-background="new 0 0 10 30" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="30"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="-9.8843" x2="5" y2="40.0719">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="10" height="30"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="0.5" y1="-9.8843" x2="0.5" y2="39.8876">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect opacity="0.35" fill="url(#SVGID_2_)" width="1" height="30"/>
-<rect fill="none" width="10" height="30"/>
-<rect x="3" opacity="0.1" fill="#FFFFFF" width="7" height="9"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_r.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="30px" viewBox="0 0 10 30" enable-background="new 0 0 10 30" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="30"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="-9.8843" x2="5" y2="40.0719">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="10" height="30"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="9.5" y1="-9.8843" x2="9.5" y2="39.8876">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect x="9" opacity="0.35" fill="url(#SVGID_2_)" width="1" height="30"/>
-<rect fill="none" width="10" height="30"/>
-<rect opacity="0.1" fill="#FFFFFF" width="7" height="9"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_t.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="50px" height="10px" viewBox="0 0 50 10" enable-background="new 0 0 50 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="50" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="0.1157" x2="24.9995" y2="50.071">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="50" height="10"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="0.1157" x2="24.9995" y2="49.8868">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect opacity="0.35" fill="url(#SVGID_2_)" width="50" height="1"/>
-<rect fill="none" width="50" height="10"/>
-<rect y="3" opacity="0.1" fill="#FFFFFF" width="50" height="7"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_tl.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="0.1157" x2="5" y2="50.071">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M10,0H5C2.238,0,0,2.238,0,5v5h10V0z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="0.1157" x2="5" y2="49.8868">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M1,5c0-2.206,1.794-4,4-4h5V0H5C2.238,0,0,2.238,0,5v5h1V5z"/>
-<rect fill="none" width="10" height="10"/>
-<path opacity="0.1" fill="#FFFFFF" d="M10,3H5C3.897,3,3,3.896,3,5v5h7V3z"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_normal_tr.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="0.1157" x2="5" y2="50.071">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M10,5c0-2.762-2.238-5-5-5H0v10h10V5z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="0.1157" x2="5" y2="49.8868">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M10,5c0-2.762-2.238-5-5-5H0v1h5c2.206,0,4,1.794,4,4v5h1V5z"/>
-<rect fill="none" width="10" height="10"/>
-<path opacity="0.1" fill="#FFFFFF" d="M7,5c0-1.104-0.896-2-2-2H0v7h7V5z"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_b.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="50px" height="10px" viewBox="0 0 50 10" enable-background="new 0 0 50 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="50" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.0005" y1="10.1279" x2="25.0005" y2="-39.7534">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="50" height="10"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="-39.8838" x2="24.9995" y2="9.8873">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect y="9" opacity="0.35" fill="url(#SVGID_2_)" width="50" height="1"/>
-<rect fill="none" width="50" height="10"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_bl.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="10.1279" x2="5" y2="-39.7534">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M0,5c0,2.762,2.238,5,5,5h5V0H0V5z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="-39.8838" x2="5" y2="9.8873">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M0,0v5c0,2.762,2.238,5,5,5h5V9H5C2.794,9,1,7.206,1,5V0H0z"/>
-<rect fill="none" width="10" height="10"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_br.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="10.1279" x2="5" y2="-39.7534">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M0,10h5c2.762,0,5-2.238,5-5V0H0V10z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="-39.8838" x2="5" y2="9.8873">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M9,5c0,2.206-1.794,4-4,4H0v1h5c2.762,0,5-2.238,5-5V0H9V5z"/>
-<rect fill="none" width="10" height="10"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_c.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="50px" height="30px" viewBox="0 0 50 30" enable-background="new 0 0 50 30" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="50" height="30"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.0005" y1="40.127" x2="25.0005" y2="-9.7536">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="50" height="30"/>
-<rect fill="none" width="50" height="30"/>
-<rect opacity="0.1" fill="#FFFFFF" width="50" height="9"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_l.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="30px" viewBox="0 0 10 30" enable-background="new 0 0 10 30" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="30"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="40.127" x2="5" y2="-9.7536">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="10" height="30"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="0.5" y1="-9.8843" x2="0.5" y2="39.8876">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect opacity="0.35" fill="url(#SVGID_2_)" width="1" height="30"/>
-<rect fill="none" width="10" height="30"/>
-<rect x="3" opacity="0.1" fill="#FFFFFF" width="7" height="9"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_r.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="30px" viewBox="0 0 10 30" enable-background="new 0 0 10 30" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="30"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="40.127" x2="5" y2="-9.7536">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="10" height="30"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="9.5" y1="-9.8843" x2="9.5" y2="39.8876">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect x="9" opacity="0.35" fill="url(#SVGID_2_)" width="1" height="30"/>
-<rect fill="none" width="10" height="30"/>
-<rect opacity="0.1" fill="#FFFFFF" width="7" height="9"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_t.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="50px" height="10px" viewBox="0 0 50 10" enable-background="new 0 0 50 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="50" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.0005" y1="50.1279" x2="25.0005" y2="0.2466">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<rect fill="url(#SVGID_1_)" width="50" height="10"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="0.1157" x2="24.9995" y2="49.8868">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<rect opacity="0.35" fill="url(#SVGID_2_)" width="50" height="1"/>
-<rect fill="none" width="50" height="10"/>
-<rect y="3" opacity="0.1" fill="#FFFFFF" width="50" height="7"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_tl.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="50.1279" x2="5" y2="0.2466">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M10,0H5C2.238,0,0,2.238,0,5v5h10V0z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="0.1157" x2="5" y2="49.8868">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M1,5c0-2.206,1.794-4,4-4h5V0H5C2.238,0,0,2.238,0,5v5h1V5z"/>
-<rect fill="none" width="10" height="10"/>
-<path opacity="0.1" fill="#FFFFFF" d="M10,3H5C3.897,3,3,3.897,3,5v5h7V3z"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_btn_green_pressed_tr.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
-<defs>
-</defs>
-<rect fill="none" width="10" height="10"/>
-<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5" y1="50.1279" x2="5" y2="0.2466">
-	<stop  offset="0" style="stop-color:#85BF24"/>
-	<stop  offset="1" style="stop-color:#387300"/>
-</linearGradient>
-<path fill="url(#SVGID_1_)" d="M10,5c0-2.762-2.238-5-5-5H0v10h10V5z"/>
-<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="5" y1="0.1157" x2="5" y2="49.8868">
-	<stop  offset="0" style="stop-color:#FFFFFF"/>
-	<stop  offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path opacity="0.35" fill="url(#SVGID_2_)" d="M10,5c0-2.762-2.238-5-5-5H0v1h5c2.206,0,4,1.794,4,4v5h1V5z"/>
-<rect fill="none" width="10" height="10"/>
-<path opacity="0.1" fill="#FFFFFF" d="M7,5c0-1.103-0.896-2-2-2H0v7h7V5z"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_bg_b.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 15 15" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<rect fill="none" height="15" width="15" x="0"/>
-<rect fill="#A8A8A8" height="15" width="15"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_bg_c.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 15 15" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<rect fill="none" height="15" width="15" x="0"/>
-<rect fill="#A8A8A8" height="15" width="15"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_bg_t.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 15 15" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<rect fill="none" height="15" width="15" x="0"/>
-<rect fill="url(#SVGID_1_)" height="15" width="15"/>
-<defs>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="7.5" x2="7.5" y1="-0.1416" y2="14.9218">
-<stop offset="0" style="stop-color:#CCCCCC"/>
-<stop offset="1" style="stop-color:#999999"/>
-</linearGradient>
-</defs>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_c.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 15 15" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<rect fill="none" height="15" width="15"/>
-<rect fill="#A8A8A8" height="15" width="15"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_l.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 15 15" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<rect fill="none" height="15" width="15"/>
-<rect fill="url(#SVGID_1_)" height="15" width="15"/>
-<defs>
-<linearGradient gradientTransform="matrix(4.489659e-011 -1 -1 -4.489659e-011 -86.0195 72.4805)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="64.9805" x2="64.9805" y1="-85.8794" y2="-100.9428">
-<stop offset="0" style="stop-color:#CCCCCC"/>
-<stop offset="1" style="stop-color:#999999"/>
-</linearGradient>
-</defs>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_fr_input_h_bg_r.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 15 15" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<rect fill="none" height="15" width="15"/>
-<rect fill="#A8A8A8" height="15" width="15"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_graf_input_h_swipe.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="126px" version="1.1" viewBox="55.5 -55.5 15 126" width="15px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<g>
-<linearGradient gradientTransform="matrix(4.489659e-011 -1 -1 -4.489659e-011 -30.5195 127.9805)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="120.4805" x2="120.4805" y1="-86.02" y2="-101.02">
-<stop offset="0" style="stop-color:#F2F2F2"/>
-<stop offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path d="M55.5-55.484V70.5l11.002-0.026c2.174-0.249,3.998-2.803,3.998-5.806V-50.059   c0-2.996-1.793-5.441-3.998-5.441L55.5-55.484z" fill="url(#SVGID_1_)"/>
-</g>
-<linearGradient gradientTransform="matrix(4.489659e-011 -1 -1 -4.489659e-011 -30.5195 127.9805)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="130.4805" x2="130.4805" y1="-91.397" y2="-95.272">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#666666"/>
-</linearGradient>
-<circle cx="63" cy="-2.5" fill="url(#SVGID_2_)" r="2"/>
-<linearGradient gradientTransform="matrix(4.489659e-011 -1 -1 -4.489659e-011 -30.5195 127.9805)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="110.4805" x2="110.4805" y1="-91.397" y2="-95.272">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#666666"/>
-</linearGradient>
-<circle cx="63" cy="17.5" fill="url(#SVGID_3_)" r="2"/>
-<linearGradient gradientTransform="matrix(4.489659e-011 -1 -1 -4.489659e-011 -30.5195 127.9805)" gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="120.4805" x2="120.4805" y1="-91.397" y2="-95.272">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#666666"/>
-</linearGradient>
-<circle cx="63" cy="7.5" fill="url(#SVGID_4_)" r="2"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_graf_input_swipe.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="15px" version="1.1" viewBox="0 0 126 15" width="126px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<g>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="62.9995" x2="62.9995" y1="0" y2="15.0005">
-<stop offset="0" style="stop-color:#F2F2F2"/>
-<stop offset="1" style="stop-color:#999999"/>
-</linearGradient>
-<path d="M125.984,0H0l0.027,11.002C0.276,13.176,2.829,15,5.832,15h114.727c2.996,0,5.441-1.793,5.441-3.998   L125.984,0z" fill="url(#SVGID_1_)"/>
-</g>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="73" x2="73" y1="5.3755" y2="9.2505">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#666666"/>
-</linearGradient>
-<circle cx="73" cy="7.5" fill="url(#SVGID_2_)" r="2"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="53" x2="53" y1="5.3755" y2="9.2505">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#666666"/>
-</linearGradient>
-<circle cx="53" cy="7.5" fill="url(#SVGID_3_)" r="2"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="63" x2="63" y1="5.3755" y2="9.2505">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#666666"/>
-</linearGradient>
-<circle cx="63" cy="7.5" fill="url(#SVGID_4_)" r="2"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_mono_answer_call.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
-<defs>
-</defs>
-<g opacity="0.5">
-	<rect fill="none" width="30" height="30"/>
-</g>
-<path d="M28.578,7.523l-7.359,4.248c-0.364,0.152-0.771,0.057-0.953-0.256l-1.277-2.142c-0.002,0.002-0.006,0.007-0.007,0.008
-	c-0.001-0.001,0-0.003-0.001-0.004c-1.119,0.582-3.617,2.223-5.187,3.79c-1.632,1.635-3.149,3.394-4.417,5.576
-	c0,0-0.006,0.008-0.008,0.01c0.009,0.002,0.018,0.002,0.027,0.003l2.725,1.743c0.344,0.222,0.412,0.706,0.158,1.078L7.486,28.62
-	c-0.254,0.37-0.736,0.491-1.081,0.268c0,0-0.298-0.194-1.021-0.83c-0.001,0-0.002,0-0.003,0c-0.394-0.347-0.411-0.476-0.785-0.925
-	c-0.319-0.385-0.573-0.765-0.783-1.114c-0.001-0.001-0.004,0-0.005-0.002c-0.043-0.071-0.081-0.139-0.119-0.207
-	c-0.005-0.009-0.01-0.018-0.015-0.024c-0.391-0.698-0.56-1.211-0.56-1.211c-0.178-0.688-0.252-3.057,0.563-5.205
-	c0.52-1.364,3.24-5.672,6.42-8.854c3.181-3.182,8.125-6.349,10.3-7.005c2.176-0.656,3.903-0.556,4.417-0.374
-	c0,0,1.326,0.434,2.53,1.536c0.401,0.367,0.439,0.382,0.751,0.765c0.002,0.003,0,0.006,0.002,0.008
-	c-0.002-0.002-0.002-0.004-0.004-0.005c0.615,0.757,0.818,1.062,0.818,1.062C29.111,6.844,28.961,7.304,28.578,7.523z"/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_mono_backspace2.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="30px" version="1.1" viewBox="0 0 30 30" width="30px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<g fill-opacity="0.5" stroke-opacity="0.5">
-<rect fill="none" height="30" width="30"/>
-</g>
-<path d="M12,5L0,15l12,10h18V5H12z M27,22H13.086l-8.4-7l8.4-7H27V22z"/>
-<polygon points="15.808,20.314 19.344,16.779 22.879,20.314 25,18.192 21.465,14.657 25,11.122 22.879,9 19.344,12.535 15.808,9   13.687,11.122 17.222,14.657 13.687,18.192 "/>
-</svg>
--- a/telutils/dialpad/themes/icons/hbdefault/scalable/qtg_mono_voice_mailbox.svg	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
-	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
-]>
-<svg version="1.1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-	 x="0px" y="0px" width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
-<defs>
-</defs>
-<path d="M23.5,8.5c-3.59,0-6.5,2.91-6.5,6.5c0,1.748,0.693,3.332,1.816,4.5h-7.633C12.307,18.332,13,16.748,13,15
-	c0-3.59-2.91-6.5-6.5-6.5S0,11.41,0,15s2.91,6.5,6.5,6.5h17c3.59,0,6.5-2.91,6.5-6.5S27.09,8.5,23.5,8.5z M3,15
-	c0-1.93,1.57-3.5,3.5-3.5S10,13.07,10,15s-1.57,3.5-3.5,3.5S3,16.93,3,15z M23.5,18.5c-1.93,0-3.5-1.57-3.5-3.5s1.57-3.5,3.5-3.5
-	S27,13.07,27,15S25.43,18.5,23.5,18.5z"/>
-<rect fill="none" width="30" height="30"/>
-</svg>
--- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/mt_dialpad/mt_dialpad.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -27,6 +27,7 @@
 #include <hbmessagebox.h>
 
 #include "dialpadtest.h"
+#include "dialpadtestutil.h"
 #include "dialpad.h"
 
 const int WAIT_TIME = 300;
@@ -62,14 +63,6 @@
 {
     Q_OBJECT
 
-public:
-    enum MouseEventType
-    {
-        Press,
-        Release,
-        Click
-    };
-
 private slots:
     void initTestCase();
     void cleanupTestCase();
@@ -91,15 +84,10 @@
 #endif
 
 private:
-    QGraphicsWidget* getWidgetByName(const QString& name);
-    void mouseClickDialpad(int key, MouseEventType type=Click,
-                           bool pause=true);
-
-private:
     HbMainWindow*  mMainWindow;
     Dialpad*       mDialpad;
     KeyEventCatcher* mKeyCatcher;
-    QMap<int,QString> mKeyNames;
+    DialpadTestUtil* mUtil;
 };
 
 void mt_Dialpad::initTestCase()
@@ -109,6 +97,8 @@
     mKeyCatcher = new KeyEventCatcher;
     mMainWindow->installEventFilter(mKeyCatcher);
 
+    mUtil = new DialpadTestUtil(*mMainWindow);
+
     mDialpad = new Dialpad(*mMainWindow);
 
     QRectF rect(mMainWindow->contentsRect());
@@ -119,21 +109,6 @@
                                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();
@@ -144,6 +119,7 @@
     delete mDialpad;
     delete mMainWindow;
     delete mKeyCatcher;
+    delete mUtil;
 }
 
 void mt_Dialpad::cleanup()
@@ -154,56 +130,6 @@
     QTest::qWait( WAIT_TIME ); // delay between tests
 }
 
-QGraphicsWidget* mt_Dialpad::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 mt_Dialpad::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 mt_Dialpad::testNumericButtons()
 {
     QSignalSpy aboutToOpenSpy( mDialpad, SIGNAL(aboutToOpen()));
@@ -215,18 +141,18 @@
     QVERIFY(aboutToOpenSpy.count()==1);
     QTest::qWait( 2*WAIT_TIME );
 
-    mouseClickDialpad(Qt::Key_1);
-    mouseClickDialpad(Qt::Key_2);
-    mouseClickDialpad(Qt::Key_3);
-    mouseClickDialpad(Qt::Key_4);
-    mouseClickDialpad(Qt::Key_5);
-    mouseClickDialpad(Qt::Key_6);
-    mouseClickDialpad(Qt::Key_7);
-    mouseClickDialpad(Qt::Key_8);
-    mouseClickDialpad(Qt::Key_9);
-    mouseClickDialpad(Qt::Key_Asterisk);
-    mouseClickDialpad(Qt::Key_0);
-    mouseClickDialpad(Qt::Key_NumberSign);
+    mUtil->mouseClickDialpad(Qt::Key_1);
+    mUtil->mouseClickDialpad(Qt::Key_2);
+    mUtil->mouseClickDialpad(Qt::Key_3);
+    mUtil->mouseClickDialpad(Qt::Key_4);
+    mUtil->mouseClickDialpad(Qt::Key_5);
+    mUtil->mouseClickDialpad(Qt::Key_6);
+    mUtil->mouseClickDialpad(Qt::Key_7);
+    mUtil->mouseClickDialpad(Qt::Key_8);
+    mUtil->mouseClickDialpad(Qt::Key_9);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_0);
+    mUtil->mouseClickDialpad(Qt::Key_NumberSign);
 
     QVERIFY(mDialpad->editor().text()=="123456789*0#");
 
@@ -245,9 +171,9 @@
 {
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_1, Press);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Press);
     QTest::qWait( LONGPRESS_DURATION );
-    mouseClickDialpad(Qt::Key_1, Release);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Release);
     QVERIFY(mDialpad->editor().text()=="1");
     mDialpad->closeDialpad();
 }
@@ -256,9 +182,9 @@
 {
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_1);
+    mUtil->mouseClickDialpad(Qt::Key_1);
     QVERIFY(mDialpad->editor().text()=="1");
-    mouseClickDialpad(Qt::Key_Backspace);
+    mUtil->mouseClickDialpad(Qt::Key_Backspace);
     QVERIFY(mDialpad->editor().text()=="");
     QVERIFY(mKeyCatcher->mKeyPresses.count()==2);
     QVERIFY(mKeyCatcher->mKeyReleases.count()==2);
@@ -266,13 +192,13 @@
     QVERIFY(mKeyCatcher->mKeyReleases.at(1)==Qt::Key_Backspace);
     // test repeats
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_1);
-    mouseClickDialpad(Qt::Key_2);
-    mouseClickDialpad(Qt::Key_3);
+    mUtil->mouseClickDialpad(Qt::Key_1);
+    mUtil->mouseClickDialpad(Qt::Key_2);
+    mUtil->mouseClickDialpad(Qt::Key_3);
     QVERIFY(mDialpad->editor().text()=="123");
-    mouseClickDialpad(Qt::Key_Backspace,Press);
+    mUtil->mouseClickDialpad(Qt::Key_Backspace, DialpadTestUtil::Press);
     QTest::qWait( 1500 );
-    mouseClickDialpad(Qt::Key_Backspace,Release);
+    mUtil->mouseClickDialpad(Qt::Key_Backspace, DialpadTestUtil::Release);
     QVERIFY(mDialpad->editor().text()=="");
     mDialpad->closeDialpad();
 }
@@ -281,13 +207,13 @@
 {
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QVERIFY(mDialpad->editor().text()=="*");
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QVERIFY(mDialpad->editor().text()=="+");
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QVERIFY(mDialpad->editor().text()=="p");
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QVERIFY(mDialpad->editor().text()=="w");
 
     QVERIFY(mKeyCatcher->mKeyPresses.count()==4);
@@ -299,21 +225,21 @@
 
     // Verify that the second char can't be +
     QTest::qWait(1000);
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QCOMPARE(mDialpad->editor().text(), QString("w*"));
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QCOMPARE(mDialpad->editor().text(), QString("wp"));
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QCOMPARE(mDialpad->editor().text(), QString("ww"));
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QCOMPARE(mDialpad->editor().text(), QString("w*"));
 
     // test entering two asterisk
     QTest::qWait(1000);
     mDialpad->editor().setText(QString());
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QTest::qWait( 1000 ); // longer than short tap
-    mouseClickDialpad(Qt::Key_Asterisk);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk);
     QCOMPARE(mDialpad->editor().text(), QString("**"));
 
     mDialpad->closeDialpad();
@@ -324,11 +250,11 @@
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
     mDialpad->setCallButtonEnabled(false);
-    mouseClickDialpad(Qt::Key_Yes);
+    mUtil->mouseClickDialpad(Qt::Key_Yes);
     QVERIFY(mKeyCatcher->mKeyPresses.count()==0);
     QVERIFY(mKeyCatcher->mKeyReleases.count()==0);
     mDialpad->setCallButtonEnabled(true);
-    mouseClickDialpad(Qt::Key_Yes);
+    mUtil->mouseClickDialpad(Qt::Key_Yes);
     QTest::qWait( WAIT_TIME );
     QVERIFY(mKeyCatcher->mKeyPresses.count()==1);
     QVERIFY(mKeyCatcher->mKeyReleases.count()==1);
@@ -339,48 +265,24 @@
 
 void mt_Dialpad::testCloseGesture()
 {
-    QSignalSpy aboutToCloseSpy( mDialpad, SIGNAL(aboutToClose()));
-
-    mDialpad->openDialpad();
-
-    // slow swipe
-    QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_2, Press, false);
-    QTest::qWait( 500 ); // longer than swipe
-    mouseClickDialpad(Qt::Key_8, Release, false);
-    QTest::qWait( 500 );
-    QVERIFY(mDialpad->isVisible()==true);
-
-    // short swipe
-    QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_2, Press, false);
-    QTest::qWait( 200 );
-    mouseClickDialpad(Qt::Key_5, Release, false);
-    QTest::qWait( 500 );
-    QVERIFY(mDialpad->isVisible()==true);
-
-    // ok swipe
-    mDialpad->editor().setText(QString());
-    QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_2, Press, false);
-    QTest::qWait( 200 );
-    mouseClickDialpad(Qt::Key_8, Release, false);
-    QVERIFY(mDialpad->editor().text()=="");
-    QTest::qWait( 1000 );
-    QVERIFY(mDialpad->isVisible()==false);
-    QVERIFY(aboutToCloseSpy.count()==1);
+    // QTest::mouseMove() doesn't work
 }
 
 void mt_Dialpad::testOpenDialogWhileButtonPressed()
 {
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_5, Press);
+    mUtil->mouseClickDialpad(Qt::Key_5, DialpadTestUtil::Press);
     QTest::qWait( LONGPRESS_DURATION );
-    HbMessageBox dlg("Dialpad test dialog");
-    dlg.setTimeout(500);
-    dlg.exec();
-    mouseClickDialpad(Qt::Key_5, Release);
+
+    HbMessageBox* box = new HbMessageBox("Test dialog!");
+    box->setAttribute(Qt::WA_DeleteOnClose);
+    box->setTimeout(1000);
+    box->show();
+    QTest::qWait( 500 );
+    mUtil->mouseClickDialpad(Qt::Key_5, DialpadTestUtil::Release);
+    QTest::qWait( 100 );
+
     QVERIFY(mDialpad->editor().text()=="5");
     QVERIFY(mKeyCatcher->mKeyPresses.at(0)==Qt::Key_5);
     QVERIFY(mKeyCatcher->mKeyReleases.at(0)==Qt::Key_5);
@@ -417,6 +319,7 @@
 #ifndef Q_OS_SYMBIAN
 void mt_Dialpad::testCloseGestureLandscape()
 {
+    /*
     // switch to landscape
     mMainWindow->setOrientation(Qt::Horizontal);
     mMainWindow->resize(640,360);
@@ -430,33 +333,34 @@
 
     // slow swipe
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_4, Press, false);
+    mUtil->mouseClickDialpad(Qt::Key_4, Press, false);
     QTest::qWait( 500 ); // longer than swipe
-    mouseClickDialpad(Qt::Key_6, Release, false);
+    mUtil->mouseClickDialpad(Qt::Key_6, Release, false);
     QTest::qWait( 500 );
     QVERIFY(mDialpad->isVisible()==true);
 
     // short swipe
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_4, Press, false);
+    mUtil->mouseClickDialpad(Qt::Key_4, Press, false);
     QTest::qWait( 200 );
-    mouseClickDialpad(Qt::Key_5, Release, false);
+    mUtil->mouseClickDialpad(Qt::Key_5, Release, false);
     QTest::qWait( 500 );
     QVERIFY(mDialpad->isVisible()==true);
 
     // ok swipe
     mDialpad->editor().setText(QString());
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_4, Press, false);
+    mUtil->mouseClickDialpad(Qt::Key_4, Press, false);
     QTest::qWait( 200 );
-    mouseClickDialpad(Qt::Key_6, Release, false);
+    mUtil->mouseClickDialpad(Qt::Key_6, Release, false);
     QVERIFY(mDialpad->editor().text()=="");
     QTest::qWait( 1000 );
-    QVERIFY(mDialpad->isVisible()==false);
+    QVERIFY(mDialpad->isVisible()==false);*/
 }
 
 void mt_Dialpad::testCloseGestureLandscapeMirrored()
 {
+    /*
     // switch to mirrored landscape
     mMainWindow->setOrientation(Qt::Horizontal);
     mMainWindow->resize(640,360);
@@ -469,44 +373,64 @@
 
     // slow swipe
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_4, Press, false);
+    mUtil->mouseClickDialpad(Qt::Key_4, Press, false);
     QTest::qWait( 500 ); // longer than swipe
-    mouseClickDialpad(Qt::Key_6, Release, false);
+    mUtil->mouseClickDialpad(Qt::Key_6, Release, false);
     QTest::qWait( WAIT_TIME );
     QVERIFY(mDialpad->isVisible()==true);
 
     // short swipe
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_4, Press, false);
+    mUtil->mouseClickDialpad(Qt::Key_4, Press, false);
     QTest::qWait( 200 );
-    mouseClickDialpad(Qt::Key_5, Release, false);
+    mUtil->mouseClickDialpad(Qt::Key_5, Release, false);
     QTest::qWait( 1000 );
     QVERIFY(mDialpad->isVisible()==true);
 
     // ok swipe
     mDialpad->editor().setText(QString());
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_4, Press, false);
+    mUtil->mouseClickDialpad(Qt::Key_4, Press, false);
     QTest::qWait( 200 );
-    mouseClickDialpad(Qt::Key_6, Release, false);
+    mUtil->mouseClickDialpad(Qt::Key_6, Release, false);
     QVERIFY(mDialpad->editor().text()=="");
     QTest::qWait( 1000 );
-    QVERIFY(mDialpad->isVisible()==false);
+    QVERIFY(mDialpad->isVisible()==false);*/
 }
 
 void mt_Dialpad::testOrientationChange()
 {
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
+
+    // test landscape
     mMainWindow->setLayoutDirection(Qt::LeftToRight);
+    mMainWindow->setOrientation(Qt::Horizontal);
+    mMainWindow->resize(640,360);
+    QTest::qWait( 1000 );
+    mDialpad->setPreferredSize(mMainWindow->layoutRect().width()/2,
+                               mMainWindow->layoutRect().height());
+    mDialpad->setPos(mMainWindow->layoutRect().width()/2,0);
+    QTest::qWait( 1000 );
+
+    QVERIFY(mDialpad->isVisible()==true);
+    mUtil->mouseClickDialpad(Qt::Key_5);
+    QVERIFY(mDialpad->editor().text()=="5");
+    QTest::qWait( 500 );
+
+    // test portrait
     mMainWindow->setOrientation(Qt::Vertical);
     mMainWindow->resize(360,640);
-    QTest::qWait( 1000 );
     mDialpad->setPreferredSize(mMainWindow->layoutRect().width(),
                                mMainWindow->layoutRect().height()/2);
     mDialpad->setPos(0,mMainWindow->layoutRect().height()/4);
     QTest::qWait( 1000 );
+
     QVERIFY(mDialpad->isVisible()==true);
+    mDialpad->editor().setText("");
+    mUtil->mouseClickDialpad(Qt::Key_5);
+    QVERIFY(mDialpad->editor().text()=="5");
+
     mDialpad->closeDialpad();
     QTest::qWait( 500 );
     QVERIFY(mDialpad->isVisible()==false);
--- a/telutils/dialpad/tsrc/unit/mt_dialpad/mt_dialpad.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/mt_dialpad/mt_dialpad.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -29,7 +29,8 @@
 }
 
 #
-SOURCES += mt_dialpad.cpp
+HEADERS += ../shared/dialpadtestutil.h
+SOURCES += mt_dialpad.cpp ../shared/dialpadtestutil.cpp
 
 # 
 LIBS += -ldialpad
--- a/telutils/dialpad/tsrc/unit/mt_keyhandler/mt_keyhandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/mt_keyhandler/mt_keyhandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -36,12 +36,12 @@
 QObject* mParameter2;
 
 #ifdef Q_OS_SYMBIAN
-DialpadVoiceMailboxEventFilter::DialpadVoiceMailboxEventFilter(Dialpad* dialPad, QObject* parent)
+/*DialpadVoiceMailboxEventFilter::DialpadVoiceMailboxEventFilter(Dialpad* dialPad, QObject* parent)
 {
     mVmbxFilterConstructed = true;
     mParameter1 = dialPad;
     mParameter2 = parent;
-}
+}*/
 #endif
 
 // test cases
@@ -65,9 +65,9 @@
     mDialpad = new Dialpad(*mMainWindow);
     mKeyhandler = new DialpadKeyHandler(mDialpad, *hbInstance->allMainWindows().at(0), this);
     QVERIFY(mKeyhandler != NULL);
-    QVERIFY(mVmbxFilterConstructed == true);
-    QVERIFY(mParameter1 == mDialpad);
-    QVERIFY(mParameter2 == this);
+    //QVERIFY(mVmbxFilterConstructed == true);
+    //QVERIFY(mParameter1 == mDialpad);
+    //QVERIFY(mParameter2 == this);
 }
 
 void mt_KeyHandler::cleanup()
--- a/telutils/dialpad/tsrc/unit/runall.cmd	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/runall.cmd	Thu Jul 22 16:38:43 2010 +0100
@@ -17,18 +17,20 @@
 @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
+call runtest.cmd ut_dialpadhasheventfilter
 )
 
 @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/dialpadtestutil.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,132 @@
+/*!
+* 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 test utility
+*
+*/
+
+#include <QGraphicsWidget>
+#include <QtTest/QtTest>
+#include <hbmainwindow.h>
+
+#include "dialpadtestutil.h"
+
+const int WAIT_TIME = 300;
+
+DialpadTestUtil::DialpadTestUtil(HbMainWindow& mainWindow, QObject* parent) :
+    QObject(parent), mMainWindow(mainWindow)
+{
+    mKeyNames.insert(Qt::Key_1,"keypad");
+    mKeyNames.insert(Qt::Key_2,"keypad");
+    mKeyNames.insert(Qt::Key_3,"keypad");
+    mKeyNames.insert(Qt::Key_4,"keypad");
+    mKeyNames.insert(Qt::Key_5,"keypad");
+    mKeyNames.insert(Qt::Key_6,"keypad");
+    mKeyNames.insert(Qt::Key_7,"keypad");
+    mKeyNames.insert(Qt::Key_8,"keypad");
+    mKeyNames.insert(Qt::Key_9,"keypad");
+    mKeyNames.insert(Qt::Key_Asterisk,"keypad");
+    mKeyNames.insert(Qt::Key_0,"keypad");
+    mKeyNames.insert(Qt::Key_NumberSign,"keypad");
+    mKeyNames.insert(Qt::Key_Backspace,"16777219");
+    mKeyNames.insert(Qt::Key_Yes,"16842753");
+}
+
+DialpadTestUtil::~DialpadTestUtil()
+{      
+}
+
+QGraphicsWidget* DialpadTestUtil::getWidgetByName(const QString& name)
+{
+    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;
+}
+
+QPointF DialpadTestUtil::keyPosition(QGraphicsWidget* widget, int key)
+{
+    QPointF keyPos;
+    QRectF rect = widget->rect();
+
+    // 3 x 4 grid
+    int cellWidth = rect.width() / 3;
+    int cellHeight = rect.height() / 4;
+
+    if (key==Qt::Key_Asterisk) {
+        keyPos = QPointF( 0.5 * cellWidth, 3.5 * cellHeight );
+    } else if (key==Qt::Key_NumberSign) {
+        keyPos = QPointF( 2.5 * cellWidth, 3.5 * cellHeight );
+    } else if (key==Qt::Key_0) {
+        keyPos = QPointF( 1.5 * cellWidth, 3.5 * cellHeight );
+    } else {
+        int normalized = key - 49;
+        // qDebug() << normalized;
+        int column = normalized % 3;
+        int row = (normalized / 3);
+        // qDebug() << column << row;
+
+        keyPos = QPointF((column+0.5)*cellWidth,(row+0.5)*cellHeight);
+    }
+
+    return keyPos;
+}
+
+void DialpadTestUtil::mouseClickDialpad(int key, MouseEventType type, bool pause)
+{
+    QString name = mKeyNames.value(key);
+
+    QGraphicsWidget* widget = getWidgetByName(name);
+
+    if ( widget ) {
+        QPointF widgetPos;
+
+        if (name=="keypad") {
+            widgetPos = widget->scenePos() +
+                        keyPosition(widget, key);
+        } else {
+            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!" );
+    }
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/dialpadtestutil.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,54 @@
+/*!
+* 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: Dialpad test utility
+*
+*/
+
+#ifndef DIALPADTESTUTIL_H
+#define DIALPADTESTUTIL_H
+
+#include <QObject>
+#include <QMap>
+#include <QGraphicsWidget>
+#include <QSwipeGesture>
+
+class HbMainWindow;
+
+class DialpadTestUtil : public QObject
+{
+
+public:
+    enum MouseEventType
+    {
+        Press,
+        Release,
+        Click
+    };
+
+public:
+    explicit DialpadTestUtil(HbMainWindow& mainWindow, QObject* parent=0);
+    ~DialpadTestUtil();
+
+    void mouseClickDialpad(int key, MouseEventType type=Click, bool pause=true);
+
+private:
+    QGraphicsWidget* getWidgetByName(const QString& name);
+    QPointF keyPosition(QGraphicsWidget* widget, int key);
+
+private:
+    QMap<int,QString> mKeyNames;
+    HbMainWindow& mMainWindow;
+};
+
+#endif // DIALPADTESTUTIL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_cenrep.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,37 @@
+#include <QtTest/QtTest>
+#include <mock_centralrepository.h>
+
+_LIT(KStringValue, "123");
+
+// TODO: Add a new class named Ut_Utility to config all CR key
+// to simulate 3 different images
+CRepository* CRepository::NewL(TUid /*aRepositoryUid*/)
+{
+    CRepository *self = new (ELeave) CRepository();
+    return self;
+}
+
+CRepository::~CRepository()
+{    
+}
+
+TInt CRepository::Get(TUint32 aKey, TInt& aValue)
+{
+    aValue = mValue;
+    return KErrNone;
+}
+TInt CRepository::Set(TUint32 /*aKey*/, TInt aValue)
+{
+    mValue = aValue;
+    return KErrNone;
+}
+
+TInt CRepository::Get(TUint32 /*aKey*/, TDes16& aValue)
+{
+    return KErrNone;
+}
+
+TInt CRepository::Set(TUint32 /*aKey*/, const TDesC16& /*aValue*/)
+{
+    return KErrNone;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_centralrepository.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,214 @@
+// Copyright (c) 2004-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 __CENTRALREPOSITORY_H__
+#define __CENTRALREPOSITORY_H__
+
+#include <e32base.h>
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS 
+	#include <centralrepositoryinternal.h>
+#endif
+
+namespace NCentralRepositoryConstants
+/** Namespace encapsulating the CentralRepository constants.
+@publishedAll
+@released
+*/
+{
+	
+/** The maximum number of unicode characters that can be stored in a setting
+@publishedAll
+@released
+*/
+const TInt KMaxUnicodeStringLength = 1024;
+
+/** The maximum number of bytes that can be stored in a setting
+@publishedAll
+@released
+*/
+const TInt KMaxBinaryLength = KMaxUnicodeStringLength*2;
+
+/** Error key returned by CommitTransaction in case of an error that cannot be
+attributed to any single or partial key. Also notify value for spurious 
+notifications (eg when a notification is cancelled or several values change at once )
+@publishedAll
+@released
+*/
+const TUint32 KUnspecifiedKey = 0xffffffffUL;
+
+/** Use KUnspecifiedKey instead of this value.
+@publishedAll
+@deprecated
+*/
+const TUint32 KInvalidNotificationId = KUnspecifiedKey;
+
+/** The 8 most significant bits of a setting's meta-data are reserved for internal use.
+Clients should not make use of the reserved bits (unless it is specifically stated
+otherwise in Symbian developer documentation).  Clients should not rely on the value
+of the reserved bits.  Reserved bits are not guaranteed to be 0 or 1 and are not
+guaranteed to stay constant from one GetMeta call to the next.
+@released
+@see CRepository::GetMeta
+@see KMetaUnreserved
+*/
+const TUint32 KMetaSymbianReserved = 0xFF000000; 
+
+/** The 24 least significant bits of a setting's meta-data are available for use. Clients
+should make use of KMetaUnreserved to mask out the reserved bits following a call
+to GetMeta.  Clients should not rely on the value of the reserved bits.  Reserved bits
+are not guaranteed to be 0 or 1 and are not guaranteed to stay constant from one
+GetMeta call to the next.
+@released
+@see CRepository::GetMeta
+@see KMetaSymbianReserved 
+*/
+const TUint32 KMetaUnreserved = 0x00FFFFFF; 
+
+} // namespace NCentralRepositoryConstants
+
+/** Provides access to a repository.
+
+There are potentially 2^32 repositories, each identified by a UID. Within each
+repository up to 2^32 settings can be stored. Settings within a repository are
+identified by a 32-bit key and may be of the types integer, real or descriptor.
+@publishedAll
+@released
+*/
+class CRepository : public CBase
+	{
+public:
+
+	/**	Transaction mode chosen with StartTransaction.
+	*/
+	enum TTransactionMode
+		{
+		/** Standard optimistic non-serialised transaction. Can be started at any time
+		Commit fails with KErrLocked if another client interrupts it by first committing
+		changes: transaction should be repeated until KErrLocked is not returned.
+		*/
+		EConcurrentReadWriteTransaction = 2,
+		/** Pessimistic locking transaction intended for reading consistent values.
+		Can only be started if EReadWriteTransaction is not in progress.
+		Automatically promoted to EReadWriteTransaction on first write operation
+		if no other read transaction is in progress (or fails if not attainable).
+		Use ONLY if all clients can agree not to use EConcurrentReadWriteTransaction,
+		and only make changes in an EReadWriteTransaction.
+		*/
+		EReadTransaction = 1,
+		/** Pessimistic locking transaction intended for writing values. Can only be
+		started if no EReadTransaction or EReadWriteTransactions are in progress.
+		Use ONLY if all clients can agree not to use EConcurrentReadWriteTransaction,
+		and only make changes in an EReadWriteTransaction.
+		*/
+		EReadWriteTransaction = 3
+		};
+
+	/** Buffer type for aKeyInfo parameter to asynchronous CommitTransaction.
+	@see CRepository::CommitTransaction(TDes8& aKeyInfo, TRequestStatus& aStatus)
+	*/
+	typedef TPckgBuf<TUint32> TTransactionKeyInfoBuf;
+
+	IMPORT_C static CRepository* NewL(TUid aRepositoryUid);
+	IMPORT_C static CRepository* NewLC(TUid aRepositoryUid);
+
+	IMPORT_C virtual ~CRepository();
+	IMPORT_C TInt Create(TUint32 aKey, TInt aValue);
+	IMPORT_C TInt Create(TUint32 aKey, const TReal& aValue);
+	IMPORT_C TInt Create(TUint32 aKey, const TDesC8& aValue);
+	IMPORT_C TInt Create(TUint32 aKey, const TDesC16& aValue);
+
+	IMPORT_C TInt Delete(TUint32 aKey);
+	IMPORT_C TInt Delete(TUint32 aPartialKey, TUint32 aMask, TUint32 &aErrorKey) ;
+
+	IMPORT_C TInt Get(TUint32 aKey, TInt& aValue);
+	IMPORT_C TInt Set(TUint32 aKey, TInt aValue);
+	
+	IMPORT_C TInt Get(TUint32 aKey, TReal& aValue);
+	IMPORT_C TInt Set(TUint32 aKey, const TReal& aValue);
+
+	IMPORT_C TInt Get(TUint32 aKey, TDes8& aValue);
+	IMPORT_C TInt Get(TUint32 aId, TDes8& aValue, TInt& aActualLength);
+	IMPORT_C TInt Set(TUint32 aKey, const TDesC8& aValue);
+
+	IMPORT_C TInt Get(TUint32 aKey, TDes16& aValue);
+	IMPORT_C TInt Get(TUint32 aId, TDes16& aValue, TInt& aActualLength);
+	IMPORT_C TInt Set(TUint32 aKey, const TDesC16& aValue);
+
+	IMPORT_C TInt GetMeta(TUint32 aKey, TUint32& aMeta);
+
+	IMPORT_C TInt Move (TUint32 aSourcePartialKey, TUint32 aTargetPartialKey, 
+	                    TUint32 aMask, TUint32 &aErrorKey) ;
+
+	IMPORT_C TInt FindL(TUint32 aPartialKey, TUint32 aMask,
+		RArray<TUint32>& aFoundKeys);
+
+	IMPORT_C TInt FindEqL(TUint32 aPartialKey, TUint32 aMask,
+		TInt aValue, RArray<TUint32>& aFoundKeys);
+	IMPORT_C TInt FindEqL(TUint32 aPartialKey, TUint32 aMask,
+		const TReal& aValue, RArray<TUint32>& aFoundKeys);
+	IMPORT_C TInt FindEqL(TUint32 aPartialKey, TUint32 aMask,
+		const TDesC8& aValue, RArray<TUint32>& aFoundKeys);
+	IMPORT_C TInt FindEqL(TUint32 aPartialKey, TUint32 aMask,
+		const TDesC16& aValue, RArray<TUint32>& aFoundKeys);
+
+	IMPORT_C TInt FindNeqL(TUint32 aPartialKey, TUint32 aMask,
+		TInt aValue, RArray<TUint32>& aFoundKeys);
+	IMPORT_C TInt FindNeqL(TUint32 aPartialKey, TUint32 aMask,
+		const TReal& aValue, RArray<TUint32>& aFoundKeys);
+	IMPORT_C TInt FindNeqL(TUint32 aPartialKey, TUint32 aMask,
+		const TDesC8& aValue, RArray<TUint32>& aFoundKeys);
+	IMPORT_C TInt FindNeqL(TUint32 aPartialKey, TUint32 aMask,
+		const TDesC16& aValue, RArray<TUint32>& aFoundKeys);
+
+	IMPORT_C TInt NotifyRequest(TUint32 aKey, TRequestStatus& aStatus);
+	IMPORT_C TInt NotifyRequest(TUint32 aPartialKey, TUint32 aMask,
+		TRequestStatus& aStatus);
+
+	IMPORT_C TInt NotifyCancel(TUint32 aKey);
+	IMPORT_C TInt NotifyCancel(TUint32 aPartialKey, TUint32 aMask);
+	IMPORT_C TInt NotifyCancelAll();
+
+	IMPORT_C TInt Reset();
+	IMPORT_C TInt Reset(TUint32 aKey);
+
+	IMPORT_C TInt StartTransaction(TTransactionMode aMode);
+	IMPORT_C void StartTransaction(TTransactionMode aMode, TRequestStatus& aStatus);
+	IMPORT_C TInt CommitTransaction(TUint32& aKeyInfo);
+	IMPORT_C void CommitTransaction(TDes8& aKeyInfo, TRequestStatus& aStatus);
+	IMPORT_C void CancelTransaction();
+	IMPORT_C void CleanupCancelTransactionPushL();
+	IMPORT_C void FailTransaction();
+	IMPORT_C void CleanupFailTransactionPushL();
+
+	/** Same as CancelTransaction.
+	@see CancelTransaction
+	*/
+	inline void RollbackTransaction() 
+		{
+		CancelTransaction();
+		}
+
+	/** Same as CleanupCancelTransactionPushL.
+	@see CleanupCancelTransactionPushL
+	*/
+	inline void CleanupRollbackTransactionPushL()
+		{
+		CleanupCancelTransactionPushL();
+		}
+	int mValue;
+	};
+
+#endif // __CENTRALREPOSITORY_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_cvoicemailbox.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,237 @@
+/*
+* 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 <cvoicemailbox.h>
+#include <cvoicemailboxentry.h>
+#include <mvoicemailboxobserver.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TVoiceMailboxParams::TVoiceMailboxParams
+// -----------------------------------------------------------------------------
+//
+TVoiceMailboxParams::TVoiceMailboxParams(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// TVoiceMailboxParams::Version
+// -----------------------------------------------------------------------------
+//
+TInt TVoiceMailboxParams::Version(  )
+    {
+    SMC_MOCK_METHOD0( TInt )
+    }
+
+
+// -----------------------------------------------------------------------------
+// TVoiceMailboxParams::TVoiceMailboxParams
+// -----------------------------------------------------------------------------
+//
+TVoiceMailboxParams::TVoiceMailboxParams( 
+        const CVoiceMailboxEntry & aEntry )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::CVoiceMailbox
+// -----------------------------------------------------------------------------
+//
+CVoiceMailbox::CVoiceMailbox(  )
+    //:
+    //CBase( /**/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CVoiceMailbox::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::NewL
+// -----------------------------------------------------------------------------
+//
+CVoiceMailbox * CVoiceMailbox::NewL(  )
+    {
+    SMC_MOCK_NEWL0( CVoiceMailbox * )
+
+    CVoiceMailbox* self = new( ELeave ) CVoiceMailbox;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::NewLC
+// -----------------------------------------------------------------------------
+//
+CVoiceMailbox * CVoiceMailbox::NewLC(  )
+    {
+    SMC_MOCK_NEWLC0( CVoiceMailbox * )
+
+    CVoiceMailbox* self = new( ELeave ) CVoiceMailbox;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::~CVoiceMailbox
+// -----------------------------------------------------------------------------
+//
+CVoiceMailbox::~CVoiceMailbox(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::GetStoredEntry
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::GetStoredEntry( 
+        const TVoiceMailboxParams & aParams,
+        CVoiceMailboxEntry * & aEntry ) const
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::SaveEntry
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::SaveEntry( 
+        const CVoiceMailboxEntry & aEntry )
+    {
+    SMC_MOCK_METHOD1( TInt, const CVoiceMailboxEntry &, aEntry )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::QueryNewEntry
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::QueryNewEntry( 
+        const TVoiceMailboxParams & aParams,
+        CVoiceMailboxEntry * & aEntry )
+    {
+    SMC_MOCK_METHOD2( TInt, const TVoiceMailboxParams &, aParams, 
+        CVoiceMailboxEntry *, aEntry )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::QueryChangeEntry
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::QueryChangeEntry( 
+        const TVoiceMailboxParams & aParams,
+        CVoiceMailboxEntry * & aEntry )
+    {
+    SMC_MOCK_METHOD2( TInt, const TVoiceMailboxParams &, aParams, 
+        CVoiceMailboxEntry *, aEntry )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::QueryVmbxType
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::QueryVmbxType( 
+        TVoiceMailboxParams & aParams )
+    {
+    SMC_MOCK_METHOD1( TInt, TVoiceMailboxParams &, aParams )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::NotifyVmbxNumberChangeL
+// -----------------------------------------------------------------------------
+//
+void CVoiceMailbox::NotifyVmbxNumberChangeL( 
+        MVoiceMailboxObserver & aObserver,
+        const TBool aNotifyOnActiveLineOnly )
+    {
+    SMC_MOCK_METHOD2( void, MVoiceMailboxObserver &, aObserver, 
+        const TBool, aNotifyOnActiveLineOnly )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::NotifyVmbxNumberChangeCancel
+// -----------------------------------------------------------------------------
+//
+void CVoiceMailbox::NotifyVmbxNumberChangeCancel(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::CheckConfiguration
+// -----------------------------------------------------------------------------
+//
+TBool CVoiceMailbox::CheckConfiguration( 
+        const TVoiceMailboxParams & aParams,
+        const TInt aFlags )
+    {
+    SMC_MOCK_METHOD2( TBool, const TVoiceMailboxParams &, aParams, 
+        const TInt, aFlags )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::GetServiceIds
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::GetServiceIds( 
+        RIdArray & aProfileIds ) const
+    {
+    SMC_MOCK_METHOD1( TInt, RIdArray &, aProfileIds )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CVoiceMailbox::SaveProvisionedEntry
+// -----------------------------------------------------------------------------
+//
+TInt CVoiceMailbox::SaveProvisionedEntry( 
+        const CVoiceMailboxEntry & aEntry )
+    {
+    SMC_MOCK_METHOD1( TInt, const CVoiceMailboxEntry &, aEntry )
+    }
+
+
--- a/telutils/dialpad/tsrc/unit/shared/mock_dialpad.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpad.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -45,7 +45,6 @@
     mInputField(0),
     mKeypad(0),
     mMultitap(0),
-    mMouseButtonPressedDown(false),
     mOpenTimeLine(DialpadOpenAnimDuration),
     mCloseTimeLine(DialpadCloseAnimDuration),
     mAnimationOngoing(false),
@@ -69,7 +68,6 @@
     mInputField(0),
     mKeypad(0),
     mMultitap(0),
-    mMouseButtonPressedDown(false),
     mOpenTimeLine(DialpadOpenAnimDuration),
     mCloseTimeLine(DialpadCloseAnimDuration),
     mAnimationOngoing(false),
@@ -168,42 +166,6 @@
         QWidget *, widget )
     }
 
-
-// -----------------------------------------------------------------------------
-// Dialpad::sceneEvent
-// -----------------------------------------------------------------------------
-//
-bool Dialpad::sceneEvent( 
-        QEvent * event )
-    {
-    SMC_MOCK_METHOD1( bool, QEvent *, event )
-    }
-
-
-// -----------------------------------------------------------------------------
-// Dialpad::sceneEventFilter
-// -----------------------------------------------------------------------------
-//
-bool Dialpad::sceneEventFilter( 
-        QGraphicsItem * watched,
-        QEvent * event )
-    {
-    SMC_MOCK_METHOD2( bool, QGraphicsItem *, watched, 
-        QEvent *, event )
-    }
-
-
-// -----------------------------------------------------------------------------
-// Dialpad::handleSceneEvent
-// -----------------------------------------------------------------------------
-//
-bool Dialpad::handleSceneEvent( 
-        QEvent * event )
-    {
-    SMC_MOCK_METHOD1( bool, QEvent *, event )
-    }
-
-
 // -----------------------------------------------------------------------------
 // Dialpad::showEvent
 // -----------------------------------------------------------------------------
@@ -299,4 +261,13 @@
     SMC_MOCK_METHOD1( void, Qt::Orientation, current )
     }
 
+// -----------------------------------------------------------------------------
+// Dialpad::gestureEvent
+// -----------------------------------------------------------------------------
+//
+void Dialpad::gestureEvent(QGestureEvent *event)
+    {
+	 	SMC_MOCK_METHOD1( void, QGestureEvent *, event )
+    }
 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadbluetootheventfilter.cpp	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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_dialpadhasheventfilter.cpp	Thu Jul 22 16:38:43 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 "dialpadhasheventfilter.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// DialpadHashEventFilter::DialpadHashEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadHashEventFilter::DialpadHashEventFilter( 
+        Dialpad * dialpad,
+        QObject * parent )
+    :
+    QObject( parent )
+    {
+    Q_UNUSED(dialpad)
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadHashEventFilter::~DialpadHashEventFilter
+// -----------------------------------------------------------------------------
+//
+DialpadHashEventFilter::~DialpadHashEventFilter(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// DialpadHashEventFilter::eventFilter
+// -----------------------------------------------------------------------------
+//
+bool DialpadHashEventFilter::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_dialpadkeysequenceeventfilter.cpp	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 )
+    }
+
+
--- a/telutils/dialpad/tsrc/unit/shared/mock_hblineedit.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/shared/mock_hblineedit.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -286,7 +286,7 @@
         HbLineEditPrivate & dd,
         QGraphicsItem * parent )
     {
-    Q_UNUSED(text)
+    Q_UNUSED(dd)
     Q_UNUSED(parent)
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_hbmainwindow.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,413 @@
+/*
+* 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 <QDebug>
+#include <smcmockclassincludes.h>
+#include <hbmainwindow.h>
+#include <hbview.h>
+#include <hbnamespace.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::~HbMainWindow
+// -----------------------------------------------------------------------------
+//
+HbMainWindow::~HbMainWindow(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::addView
+// -----------------------------------------------------------------------------
+//
+HbView * HbMainWindow::addView( 
+        QGraphicsWidget * widget )
+    {
+    SMC_MOCK_METHOD1( HbView *, QGraphicsWidget *, widget )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::insertView
+// -----------------------------------------------------------------------------
+//
+HbView * HbMainWindow::insertView( 
+        int index,
+        QGraphicsWidget * widget )
+    {
+    SMC_MOCK_METHOD2( HbView *, int, index, 
+        QGraphicsWidget *, widget )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::removeView
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::removeView( 
+        QGraphicsWidget * widget )
+    {
+    SMC_MOCK_METHOD1( void, QGraphicsWidget *, 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 )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// 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 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::unsetOrientation
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::unsetOrientation( 
+        bool animate )
+    {
+    SMC_MOCK_METHOD1( void, bool, animate )
+    }
+
+
+// -----------------------------------------------------------------------------
+// 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 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::backgroundImageName
+// -----------------------------------------------------------------------------
+//
+QString HbMainWindow::backgroundImageName( 
+        Qt::Orientation orientation ) const
+    {
+    SMC_MOCK_METHOD1( QString, Qt::Orientation, orientation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setBackgroundImageMode
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setBackgroundImageMode( 
+        Hb::BackgroundImageMode mode )
+    {
+    SMC_MOCK_METHOD1( void, Hb::BackgroundImageMode, mode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::backgroundImageMode
+// -----------------------------------------------------------------------------
+//
+Hb::BackgroundImageMode HbMainWindow::backgroundImageMode(  ) const
+    {
+    SMC_MOCK_METHOD0( Hb::BackgroundImageMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::setAutomaticOrientationEffectEnabled
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::setAutomaticOrientationEffectEnabled( 
+        bool enabled )
+    {
+    SMC_MOCK_METHOD1( void, bool, enabled )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::automaticOrientationEffectEnabled
+// -----------------------------------------------------------------------------
+//
+bool HbMainWindow::automaticOrientationEffectEnabled(  ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::broadcastEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::broadcastEvent( 
+        int eventType )
+    {
+    SMC_MOCK_METHOD1( void, int, eventType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// 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 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::currentViewChanged
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::currentViewChanged( 
+        HbView * view )
+    {
+    SMC_MOCK_METHOD1( void, HbView *, 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 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::orientationChanged
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::orientationChanged( 
+        Qt::Orientation orientation )
+    {
+    SMC_MOCK_METHOD1( void, Qt::Orientation, orientation )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::changeEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::changeEvent( 
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::closeEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::closeEvent( 
+        QCloseEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QCloseEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::keyPressEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::keyPressEvent( 
+        QKeyEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QKeyEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::keyReleaseEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::keyReleaseEvent( 
+        QKeyEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QKeyEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::resizeEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::resizeEvent( 
+        QResizeEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QResizeEvent *, event )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::customEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::customEvent( 
+        QEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QEvent *, 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 )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbMainWindow::showEvent
+// -----------------------------------------------------------------------------
+//
+void HbMainWindow::showEvent( 
+        QShowEvent * event )
+    {
+    SMC_MOCK_METHOD1( void, QShowEvent *, event )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_xqaiwinterfacedescriptor.cpp	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/unit.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -16,11 +16,14 @@
 #
 
 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
+SUBDIRS += ut_dialpadhasheventfilter
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -31,6 +31,7 @@
 #endif
 
 #include "dialpadtest.h"
+#include "dialpadtestutil.h"
 #include "dialpadbluetootheventfilter.h"
 #include "dialpad.h"
 
@@ -77,14 +78,6 @@
 {
     Q_OBJECT
 
-public:
-    enum MouseEventType
-    {
-        Press,
-        Release,
-        Click
-    };
-
 private slots:
     void initTestCase();
     void init();
@@ -94,15 +87,11 @@
     void testShortAndLongPressAsteriskKey();
 
 private:
-    QGraphicsWidget* getWidgetByName(const QString& name);
-    void mouseClickDialpad(int key, MouseEventType type=Click, bool pause=true);
-
-private:
     HbMainWindow*  mMainWindow;
     Dialpad*       mDialpad;
     DialpadBluetoothEventFilter *mEventFilter;
     KeyEventCatcher* mKeyCatcher;
-    QMap<int,QString> mKeyNames;
+    DialpadTestUtil* mUtil;
 };
 
 void ut_DialpadBluetoothEventFilter::initTestCase()
@@ -112,6 +101,8 @@
     mKeyCatcher = new KeyEventCatcher;
     mMainWindow->installEventFilter(mKeyCatcher);
 
+    mUtil = new DialpadTestUtil(*mMainWindow);
+
     mDialpad = new Dialpad();
     mEventFilter = new DialpadBluetoothEventFilter(mDialpad, this);
     hbInstance->allMainWindows().at(0)->installEventFilter(mEventFilter);
@@ -123,21 +114,6 @@
     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();
@@ -156,6 +132,7 @@
     delete mDialpad;
     delete mMainWindow;
     delete mKeyCatcher;
+    delete mUtil;
 }
 
 void ut_DialpadBluetoothEventFilter::cleanup()
@@ -166,61 +143,15 @@
     QTest::qWait(WAIT_TIME); // delay between tests
 }
 
-QGraphicsWidget* ut_DialpadBluetoothEventFilter::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_DialpadBluetoothEventFilter::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_DialpadBluetoothEventFilter::testLongPressAsteriskKey()
 {
     mDialpad->openDialpad();
     QTest::qWait(2*WAIT_TIME);
 
     // Basic long press
-    mouseClickDialpad(Qt::Key_Asterisk, Press);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk, DialpadTestUtil::Press);
     QTest::qWait(2000);
-    mouseClickDialpad(Qt::Key_Asterisk, Release);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk, DialpadTestUtil::Release);
     QTest::qWait(1000);
     QCOMPARE(mDialpad->editor().text(), QString(""));
     mDialpad->closeDialpad();
@@ -236,11 +167,11 @@
     mDialpad->openDialpad();
 
     // Short press and long press shouldn't do anything
-    mouseClickDialpad(Qt::Key_Asterisk, Press);
-    mouseClickDialpad(Qt::Key_Asterisk, Release);
-    mouseClickDialpad(Qt::Key_Asterisk, Press);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk, DialpadTestUtil::Press);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk, DialpadTestUtil::Release);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk, DialpadTestUtil::Press);
     QTest::qWait(2000);
-    mouseClickDialpad(Qt::Key_Asterisk, Release);
+    mUtil->mouseClickDialpad(Qt::Key_Asterisk, DialpadTestUtil::Release);
     QCOMPARE(mDialpad->editor().text(), QString("**"));
     mDialpad->closeDialpad();	
 }
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbluetootheventfilter/ut_dialpadbluetootheventfilter.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -29,10 +29,12 @@
 }
 
 #
-HEADERS += ../../../inc/dialpadbluetootheventfilter.h
-HEADERS += xqservicerequest.h
-SOURCES += ut_dialpadbluetootheventfilter.cpp
-SOURCES += ../../../src/dialpadbluetootheventfilter.cpp
+HEADERS += ../../../inc/dialpadbluetootheventfilter.h \
+           xqservicerequest.h \
+           dialpadtestutil.h
+SOURCES += ut_dialpadbluetootheventfilter.cpp \
+           ../../../src/dialpadbluetootheventfilter.cpp \
+           ../shared/dialpadtestutil.cpp
 
 # 
 LIBS += -ldialpad
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -19,10 +19,22 @@
 #include <QtTest/QtTest>
 
 #include <hbapplication.h>
+#include <hbwidget.h>
+#include <hbframeitem.h>
+#include <hbframedrawer.h>
 
 #include "dialpadtest.h"
 #include "dialpadbutton.h"
 
+class TestDialpadButton : public DialpadButton
+{
+public:
+    TestDialpadButton() {};
+    ~TestDialpadButton() {};
+
+    bool testSceneEvent(QEvent *event) { return DialpadButton::sceneEvent(event); };
+};
+
 class ut_DialpadButton : public QObject
 {
     Q_OBJECT
@@ -32,14 +44,16 @@
     void cleanupTestCase();
 
     void testButtonType();
+    void testUpdatePrimitives();
+    void testSceneEvent();
 
 private:
-    DialpadButton *mButton;
+    TestDialpadButton *mButton;
 };
 
 void ut_DialpadButton::initTestCase()
 {
-    mButton = new DialpadButton();
+    mButton = new TestDialpadButton();
 }
 
 void ut_DialpadButton::cleanupTestCase()
@@ -49,9 +63,63 @@
 
 void ut_DialpadButton::testButtonType()
 {
-    QVERIFY(mButton->buttonType()==DialpadButton::NumericButton);
+    QVERIFY(mButton->buttonType()==DialpadButton::FunctionButton);
+    mButton->setButtonType(DialpadButton::CallButton);
+    QVERIFY(mButton->buttonType()==DialpadButton::CallButton);
+}
+
+void ut_DialpadButton::testUpdatePrimitives()
+{
+    // function button
+
+    mButton->setEnabled(false);
     mButton->setButtonType(DialpadButton::FunctionButton);
-    QVERIFY(mButton->buttonType()==DialpadButton::FunctionButton);
+    HbFrameItem* frame =
+        qgraphicsitem_cast<HbFrameItem*>(static_cast<HbWidget*>(mButton)->primitive("background"));
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_disabled");
+
+    mButton->setEnabled(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_normal");
+
+    mButton->setDown(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_pressed");
+    mButton->setDown(false);
+
+    // call button
+    mButton->setEnabled(false);
+    mButton->setButtonType(DialpadButton::CallButton);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_input_btn_function_disabled");
+
+    mButton->setEnabled(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_normal");
+
+    mButton->setDown(true);
+    QVERIFY(frame->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_pressed");
+    mButton->setDown(false);
+}
+
+void ut_DialpadButton::testSceneEvent()
+{
+    QEvent event(QEvent::UngrabMouse);
+    QSignalSpy spy( mButton, SIGNAL( clicked()) );
+    QSignalSpy spy2( mButton, SIGNAL( released()) );
+    mButton->setVisible(false);
+    mButton->setDown(false);
+    mButton->testSceneEvent(&event);
+    QVERIFY(spy.count()==0);
+    QVERIFY(spy2.count()==0);
+
+    QEvent eventNone(QEvent::None);
+    mButton->testSceneEvent(&eventNone);
+    QVERIFY(spy.count()==0);
+    QVERIFY(spy2.count()==0);
+
+    mButton->setVisible(true);
+    mButton->setDown(true);
+    mButton->testSceneEvent(&event);
+    QVERIFY(spy.count()==1);
+    QVERIFY(spy2.count()==1);
+    QVERIFY(mButton->isDown()==false);
 }
 
 DIALPAD_TEST_MAIN(ut_DialpadButton)
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbuttonstyle/ut_dialpadbuttonstyle.cpp	Tue Jun 15 11:45:07 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 Jun 15 11:45:07 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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,143 @@
+/*!
+* 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 "dialpadtestutil.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:
+    HbMainWindow*  mMainWindow; 
+    Dialpad*       mDialpad;
+    DialpadEmergencyCallEventFilter *mEventFilter;
+    DialpadTestUtil* mUtil;
+};
+
+void ut_DialpadEmergencyCallEventFilter::initTestCase()
+{
+    mMainWindow = new HbMainWindow;
+
+    mDialpad = new Dialpad();
+    mEventFilter = new DialpadEmergencyCallEventFilter(mDialpad, this);
+    //hbInstance->allMainWindows().at(0)->installEventFilter(mEventFilter);
+    mMainWindow->installEventFilter(mEventFilter);
+
+    mUtil = new DialpadTestUtil(*mMainWindow);
+    
+    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);
+
+    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;
+    delete mUtil;
+}
+
+void ut_DialpadEmergencyCallEventFilter::cleanup()
+{
+    mDialpad->editor().setText(QString());
+    QTest::qWait( WAIT_TIME ); // delay between tests
+}
+
+
+void ut_DialpadEmergencyCallEventFilter::testEmergencyCallEventFilter()
+{
+    mDialpad->openDialpad();
+    QTest::qWait(WAIT_TIME);
+    mUtil->mouseClickDialpad(Qt::Key_1);
+    QTest::qWait(1000);
+    mUtil->mouseClickDialpad(Qt::Key_1);
+    QTest::qWait(1000);
+    mUtil->mouseClickDialpad(Qt::Key_2);
+    QTest::qWait(1000);
+    mUtil->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 Jul 22 16:38:43 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
+    LIBS += -lphoneclient
+} else:win32 {
+    DESTDIR = ./
+    INCLUDEPATH += ../../../../../phonesrv_plat/dialpad_api/inc
+    INCLUDEPATH += ../../../../xqtelephonyservice/inc
+}
+
+#ß
+HEADERS += ../../../inc/dialpademergencycalleventfilter.h \
+           xqservicerequest.h \
+           ../shared/dialpadtestutil.h
+SOURCES += ut_dialpademergencycalleventfilter.cpp \
+           ../../../src/dialpademergencycalleventfilter.cpp \
+           ../shared/dialpadtestutil.cpp
+
+# 
+LIBS += -ldialpad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpademergencycalleventfilter/xqservicerequest.h	Thu Jul 22 16:38:43 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_dialpadhasheventfilter/hblineedit.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,122 @@
+/****************************************************************************
+**
+** 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
+
+#include <hbglobal.h>
+#include <hbnamespace.h>
+#include <hbabstractedit.h>
+#include <QFont>
+
+class HbLineEditPrivate;
+
+class HB_WIDGETS_EXPORT HbLineEdit: public QObject
+{
+    Q_OBJECT
+
+    Q_ENUMS(EchoMode)
+
+    Q_PROPERTY(QString text READ text WRITE setText USER true)
+    Q_PROPERTY(QString displayText READ displayText)
+    Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength)
+    Q_PROPERTY(bool hasSelectedText READ hasSelectedText)
+    Q_PROPERTY(QString selectedText READ selectedText)
+    Q_PROPERTY(int selectionStart READ selectionStart)
+    Q_PROPERTY(int maxRows READ maxRows WRITE setMaxRows)
+    Q_PROPERTY(int minRows READ minRows WRITE setMinRows)
+    Q_PROPERTY(bool expandable READ isExpandable)
+    Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode)
+
+public:
+
+    explicit HbLineEdit(QGraphicsItem *parent = 0);
+    explicit HbLineEdit(const QString &text, QGraphicsItem *parent = 0);
+    virtual ~HbLineEdit();
+
+    enum {
+        Type = Hb::ItemType_LineEdit
+    };
+
+    int type() const;
+
+    int maxLength() const;
+    void setMaxLength(int length);
+
+    void setMinRows(int rows);
+    int minRows() const;
+
+    void setMaxRows(int rows);
+    int maxRows() const;
+
+    bool isExpandable() const;
+
+    QString text() const;
+    QString displayText() const;
+
+    bool hasSelectedText() const;
+    QString selectedText() const;
+    int selectionStart() const;
+    void setSelection(int start, int length);
+
+    int cursorPosition() const;
+    void setCursorPosition(int pos);
+
+    enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit };
+    EchoMode echoMode() const;
+    void setEchoMode(EchoMode);
+
+    void setCapitalization ( QFont::Capitalization caps );
+    QFont::Capitalization capitalization () const;
+
+public slots:
+    void setText(const QString &text);
+
+signals:
+    void editingFinished();
+    void textChanged(const QString &text);
+    void selectionChanged();
+
+protected:
+    HbLineEdit(HbLineEditPrivate &dd, QGraphicsItem *parent);
+
+    void inputMethodEvent(QInputMethodEvent *event);
+    void keyPressEvent(QKeyEvent *event);
+    void keyReleaseEvent(QKeyEvent *event);
+
+    void resizeEvent(QGraphicsSceneResizeEvent *event);
+
+    bool canInsertFromMimeData(const QMimeData *source) const;
+    void insertFromMimeData(const QMimeData *source);
+
+    void focusOutEvent ( QFocusEvent * event );
+    void focusInEvent ( QFocusEvent * event );
+private:
+    Q_DISABLE_COPY(HbLineEdit)
+    //Q_DECLARE_PRIVATE_D(d_ptr, HbLineEdit)
+    Q_PRIVATE_SLOT(d_func(), void _q_textChanged())
+};
+
+#endif // HBLINEEDIT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,178 @@
+/*!
+* 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>
+#include <HbLineEdit>
+#ifdef Q_OS_SYMBIAN
+#include <xqaiwinterfacedescriptor.h>
+#include <xqaiwrequest.h>
+#endif
+#include "ut_dialpadhasheventfilter.h"
+#include "dialpadtest.h"
+#include "dialpadhasheventfilter.h"
+#include "dialpad.h"
+
+const int WAIT_TIME = 300;
+
+/*void setValidatorReturnValue(QVariant &returnValue)
+{
+    returnValue.setValue<QString>(QRegExp::escape(KValidKeySequence));
+}*/
+
+UT_DialpadHashEventFilter::UT_DialpadHashEventFilter()
+    :
+    m_dialPad(0), 
+    m_eventFilter(0),
+    m_lineEditMock(0)
+{
+    
+}
+
+UT_DialpadHashEventFilter::~UT_DialpadHashEventFilter()
+{
+    delete m_dialPad;
+    delete m_eventFilter;
+    delete m_lineEditMock;
+}
+
+void UT_DialpadHashEventFilter::init()
+{
+    initialize();
+    
+    m_lineEditMock = new HbLineEdit();
+    QT_TRAP_THROWING(SmcDefaultValue<HbLineEdit&>::SetL(*m_lineEditMock))
+    
+    XQAiwInterfaceDescriptor descriptor;
+    QString dummyOperation;
+    bool isEmbedded = false;
+    QList<XQAiwInterfaceDescriptor> interfaceList;
+    interfaceList.append(descriptor);
+    /*EXPECT(XQApplicationManager::list).returns(interfaceList);
+    QPointer<XQAiwRequest> aiwRequest(new XQAiwRequest(
+        descriptor, dummyOperation, isEmbedded));
+    EXPECT(XQApplicationManager::create).returns(aiwRequest.data());
+    EXPECT(XQAiwRequest::send)
+        .willOnce(invoke(setValidatorReturnValue))
+        .returns(true);*/
+    
+    SmcDefaultValue<QString>::SetL(QString());
+    HbMainWindow *dummyWindow = NULL;
+    m_dialPad = new Dialpad(*dummyWindow);
+    m_eventFilter = new DialpadHashEventFilter(m_dialPad);
+    
+    //QVERIFY(aiwRequest.isNull());
+    QVERIFY(verify());
+}
+
+void UT_DialpadHashEventFilter::cleanup()
+{
+    reset();
+    
+    SmcDefaultValue<QString>::Reset();
+    SmcDefaultValue<HbLineEdit&>::Reset();
+    delete m_dialPad;
+    m_dialPad = NULL;
+    delete m_eventFilter;
+    m_eventFilter = NULL;
+    delete m_lineEditMock;
+    m_lineEditMock = NULL;
+}
+
+#ifdef Q_OS_SYMBIAN
+
+/*void setServiceRequestReturnValue(QVariant & returnValue)
+{
+    returnValue.setValue<bool>(true);
+}*/
+
+void UT_DialpadHashEventFilter::testeventFilter()
+{
+    // start long press timer
+    EXPECT(XQAiwRequest::send).times(0);
+    QKeyEvent keyEvent(
+        QEvent::KeyPress,
+        Qt::Key_NumberSign,
+        Qt::NoModifier);    
+    bool filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
+    QVERIFY(!filtered);
+    QVERIFY(verify());
+    
+    // stop long press timer
+    QKeyEvent keyEvent2(
+        QEvent::KeyRelease,
+        Qt::Key_NumberSign,
+        Qt::NoModifier);
+    
+    filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent2);
+    QVERIFY(!filtered);
+    QVERIFY(verify());
+    
+    // some other buttons pressed and released
+    EXPECT(XQAiwRequest::send).times(0);
+    QKeyEvent keyEvent3(
+        QEvent::KeyPress,
+        Qt::Key_3,
+        Qt::NoModifier);
+    // start long press timer
+    filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent3);
+    QVERIFY(!filtered);
+    QVERIFY(verify());
+    
+    QKeyEvent keyEvent4(
+        QEvent::FocusIn,
+        Qt::Key_1,
+        Qt::NoModifier);
+    // stop long press timer
+    filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent4);
+    QVERIFY(!filtered);
+    QVERIFY(verify());
+    
+}
+
+void UT_DialpadHashEventFilter::testhandleLongKeyPress()
+{
+    m_eventFilter->handleLongKeyPress();
+    m_eventFilter->mKeyEvent = Qt::Key_NumberSign;
+    m_eventFilter->handleLongKeyPress();
+}
+
+void UT_DialpadHashEventFilter::testhandleCallButtonPress()
+{   
+    // inherited method not supported
+    EXPECT(XQAiwRequest::send).times(0);
+    bool callButtonPress = m_eventFilter->handleCallButtonPress();
+    QVERIFY(!callButtonPress);
+}
+
+void UT_DialpadHashEventFilter::testhandleMailboxOperation()
+{
+    m_eventFilter->handleMailboxOperation();
+    
+    // another call to test other note
+    m_eventFilter->handleMailboxOperation();
+}
+
+#endif
+
+int main(int argc, char *argv[])
+{
+    QCoreApplication app(argc, argv);
+    UT_DialpadHashEventFilter tc;
+    return QTest::qExec(&tc, argc, argv);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* 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_DIALPADHASHEVENTFILTER_H
+#define UT_DIALPADHASHEVENTFILTER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class Dialpad;
+class DialpadHashEventFilter;
+class HbLineEdit;
+class QTimer;
+
+// 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;
+};
+
+class UT_DialpadHashEventFilter : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_DialpadHashEventFilter();
+    ~UT_DialpadHashEventFilter();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    // void callEventFilter();
+    
+#ifdef Q_OS_SYMBIAN
+    // These are actual hash event filter unit tests
+    void testeventFilter();
+    void testhandleLongKeyPress();
+    void testhandleCallButtonPress();
+    void testhandleMailboxOperation();
+#endif
+    
+private:
+    Dialpad *m_dialPad;
+    DialpadHashEventFilter *m_eventFilter;
+    HbLineEdit *m_lineEditMock;
+    QTimer *mLongPressTimer;
+};
+
+#endif  // UT_DIALPADHASHEVENTFILTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,66 @@
+#
+# 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 \
+           BUILD_HB_WIDGETS
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+} else:win32 {
+    DESTDIR = ./
+    INCLUDEPATH += ../../../../../phonesrv_plat/dialpad_api/inc
+}
+
+#
+HEADERS += ../../../inc/dialpadhasheventfilter.h \
+           ut_dialpadhasheventfilter.h \
+           ../../../inc/dialpadmailboxeventfilterbase.h \
+           ../../../inc/dialpadsymbianwrapper.h \
+           ../../../inc/dialpadsymbianwrapper_p.h \
+           /epoc32/include/mw/xqservicerequest.h \
+           /epoc32/include/mw/xqappmgr.h \
+           /epoc32/include/mw/xqaiwrequest.h \
+           ../../../../../phonesrv_plat/dialpad_api/inc/dialpad.h \
+
+SOURCES += ut_dialpadhasheventfilter.cpp \
+           ../../../src/dialpadhasheventfilter.cpp \
+           ../../../src/dialpadmailboxeventfilterbase.cpp \
+           ../../../src/dialpadsymbianwrapper.cpp \
+           ../../../src/dialpadsymbianwrapper_p.cpp \
+           ../shared/mock_dialpad.cpp \
+           ../shared/mock_xqservicerequest.cpp \
+           ../shared/mock_hblineedit.cpp       \
+           ../shared/mock_xqappmgr.cpp         \
+           ../shared/mock_xqaiwrequest.cpp     \
+           ../shared/mock_xqaiwinterfacedescriptor.cpp \
+           ../shared/mock_cenrep.cpp \
+           ../shared/mock_cvoicemailbox.cpp \
+           ../shared/mock_hbnotificationdialog.cpp
+	   
+
+# 
+LIBS += -lmocklib -lsymbianmock -lxqserviceutil
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,139 @@
+/*!
+* 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 |
+        DialpadKeyHandler::Hash );
+    
+    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 Jul 22 16:38:43 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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,71 @@
+#
+# 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          \
+           ../../../inc/dialpadhasheventfilter.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_dialpadhasheventfilter.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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/hblineedit.h	Thu Jul 22 16:38:43 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
--- a/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/ut_dialpadkeysequenceeventfilter.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/ut_dialpadkeysequenceeventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -20,31 +20,64 @@
 #include <HbMainWindow>
 #include <HbLineEdit>
 #ifdef Q_OS_SYMBIAN
-#include "xqservicerequest.h"
+#include <xqaiwinterfacedescriptor.h>
+#include <xqaiwrequest.h>
 #endif
 #include "ut_dialpadkeysequenceeventfilter.h"
 #include "dialpadtest.h"
 #include "dialpadkeysequenceeventfilter.h"
 #include "dialpad.h"
 
+const QString KValidKeySequence("*#1#");
+
+void setValidatorReturnValue(QVariant &returnValue)
+{
+    returnValue.setValue<QString>(QRegExp::escape(KValidKeySequence));
+}
+
 UT_DialpadKeySequenceEventFilter::UT_DialpadKeySequenceEventFilter()
+    :
+    m_dialPad(0), 
+    m_eventFilter(0),
+    m_lineEditMock(0)
 {
     
 }
 
 UT_DialpadKeySequenceEventFilter::~UT_DialpadKeySequenceEventFilter()
 {
-    
+    delete m_dialPad;
+    delete m_eventFilter;
+    delete m_lineEditMock;
 }
 
 void UT_DialpadKeySequenceEventFilter::init()
 {
     initialize();
     
+    m_lineEditMock = new HbLineEdit();
+    QT_TRAP_THROWING(SmcDefaultValue<HbLineEdit&>::SetL(*m_lineEditMock))
+    
+    XQAiwInterfaceDescriptor descriptor;
+    QString dummyOperation;
+    bool isEmbedded = false;
+    QList<XQAiwInterfaceDescriptor> interfaceList;
+    interfaceList.append(descriptor);
+    EXPECT(XQApplicationManager::list).returns(interfaceList);
+    QPointer<XQAiwRequest> aiwRequest(new XQAiwRequest(
+        descriptor, dummyOperation, isEmbedded));
+    EXPECT(XQApplicationManager::create).returns(aiwRequest.data());
+    EXPECT(XQAiwRequest::send)
+        .willOnce(invoke(setValidatorReturnValue))
+        .returns(true);
+    
     SmcDefaultValue<QString>::SetL(QString());
     HbMainWindow *dummyWindow = NULL;
     m_dialPad = new Dialpad(*dummyWindow);
     m_eventFilter = new DialpadKeySequenceEventFilter(m_dialPad);
+    
+    QVERIFY(aiwRequest.isNull());
+    QVERIFY(verify());
 }
 
 void UT_DialpadKeySequenceEventFilter::cleanup()
@@ -52,34 +85,48 @@
     reset();
     
     SmcDefaultValue<QString>::Reset();
+    SmcDefaultValue<HbLineEdit&>::Reset();
     delete m_dialPad;
     m_dialPad = NULL;
     delete m_eventFilter;
     m_eventFilter = NULL;
+    delete m_lineEditMock;
+    m_lineEditMock = NULL;
 }
 
 #ifdef Q_OS_SYMBIAN
+
+void setServiceRequestReturnValue(QVariant & returnValue)
+{
+    returnValue.setValue<bool>(true);
+}
+
 void UT_DialpadKeySequenceEventFilter::eventFilterValidKeySequence()
 {
-    const QString KValidKeySequence("*#1#");
-    HbLineEdit lineEdit;
-    EXPECT(Dialpad::editor).returns(&lineEdit);
     EXPECT(HbLineEdit::text).returns(KValidKeySequence);
-    EXPECT(XQServiceRequest::send).returns(true);
+    EXPECT(XQAiwInterfaceDescriptor::isValid).returns(false);
+    EXPECT(XQAiwInterfaceDescriptor::isValid).returns(true);
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QString dummyOperation;
+    QPointer<XQAiwRequest> aiwRequest(new XQAiwRequest(
+        dummyDescriptor, dummyOperation, false));
+    EXPECT(XQApplicationManager::create).returns(aiwRequest.data());
+    EXPECT(XQAiwRequest::send)
+        .willOnce(invoke(setServiceRequestReturnValue))
+        .returns(true);
     QKeyEvent keyEvent(
         QEvent::KeyRelease,
         Qt::Key_NumberSign,
         Qt::NoModifier);
     bool filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
     QVERIFY(!filtered);
+    QVERIFY(aiwRequest.isNull());
     QVERIFY(verify());
 }
 
 void UT_DialpadKeySequenceEventFilter::eventFilterNotAKeyEvent()
 {
-    HbLineEdit lineEdit;
-    EXPECT(Dialpad::editor).returns(&lineEdit);
-    EXPECT(XQServiceRequest::send).times(0);
+    EXPECT(XQAiwRequest::send).times(0);
     QMouseEvent mouseEvent(
         QEvent::MouseMove,
         QPoint(),
@@ -93,9 +140,7 @@
 
 void UT_DialpadKeySequenceEventFilter::eventFilterNotAHashKey()
 {
-    HbLineEdit lineEdit;
-    EXPECT(Dialpad::editor).returns(&lineEdit);
-    EXPECT(XQServiceRequest::send).times(0);
+    EXPECT(XQAiwRequest::send).times(0);
     QKeyEvent keyEvent(
         QEvent::KeyRelease,
         Qt::Key_Escape,
@@ -112,10 +157,8 @@
     const QString KInvalidKeySequence3("**1234#");
     const QString KInvalidKeySequence4("*#1234*");
     
-    EXPECT(XQServiceRequest::send).times(0);
+    EXPECT(XQAiwRequest::send).times(0);
     
-    HbLineEdit lineEdit;
-    EXPECT(Dialpad::editor).returns(&lineEdit);
     EXPECT(HbLineEdit::text).returns(KInvalidKeySequence1);
     QKeyEvent keyEvent(
         QEvent::KeyRelease,
@@ -124,23 +167,56 @@
     bool filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
     QVERIFY(!filtered);
     
-    EXPECT(Dialpad::editor).returns(&lineEdit);
     EXPECT(HbLineEdit::text).returns(KInvalidKeySequence2);
     filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
     QVERIFY(!filtered);
     
-    EXPECT(Dialpad::editor).returns(&lineEdit);
     EXPECT(HbLineEdit::text).returns(KInvalidKeySequence3);
     filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
     QVERIFY(!filtered);
     
-    EXPECT(Dialpad::editor).returns(&lineEdit);
     EXPECT(HbLineEdit::text).returns(KInvalidKeySequence4);
     filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
     QVERIFY(!filtered);
     
     QVERIFY(verify());
 }
+
+void UT_DialpadKeySequenceEventFilter::eventFilterServiceRequestFails()
+{
+    // Qt Highway error while issuing service request
+    EXPECT(HbLineEdit::text).returns(KValidKeySequence);
+    EXPECT(XQAiwInterfaceDescriptor::isValid).returns(false);
+    EXPECT(XQAiwInterfaceDescriptor::isValid).returns(true);
+    XQAiwInterfaceDescriptor dummyDescriptor;
+    QString dummyOperation;
+    QPointer<XQAiwRequest> aiwRequest1(new XQAiwRequest(
+        dummyDescriptor, dummyOperation, false));
+    EXPECT(XQApplicationManager::create).returns(aiwRequest1.data());
+    EXPECT(XQAiwRequest::send).returns(false);
+    QKeyEvent keyEvent(
+        QEvent::KeyRelease,
+        Qt::Key_NumberSign,
+        Qt::NoModifier);
+    bool filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
+    QVERIFY(!filtered);
+    QVERIFY(aiwRequest1.isNull());
+    QVERIFY(verify());
+    
+    // service provider fails to fulfill request
+    EXPECT(HbLineEdit::text).returns(KValidKeySequence);
+    EXPECT(XQAiwInterfaceDescriptor::isValid).returns(false);
+    EXPECT(XQAiwInterfaceDescriptor::isValid).returns(true);
+    QPointer<XQAiwRequest> aiwRequest2(new XQAiwRequest(
+        dummyDescriptor, dummyOperation, false));
+    EXPECT(XQApplicationManager::create).returns(aiwRequest2.data());
+    EXPECT(XQAiwRequest::send).returns(true);
+    filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent);
+    QVERIFY(!filtered);
+    QVERIFY(aiwRequest2.isNull());
+    QVERIFY(verify());
+}
+
 #endif
 
 int main(int argc, char *argv[])
--- a/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/ut_dialpadkeysequenceeventfilter.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/ut_dialpadkeysequenceeventfilter.h	Thu Jul 22 16:38:43 2010 +0100
@@ -23,6 +23,7 @@
 
 class Dialpad;
 class DialpadKeySequenceEventFilter;
+class HbLineEdit;
 
 class UT_DialpadKeySequenceEventFilter : public QObject, public MockService
 {
@@ -42,11 +43,13 @@
     void eventFilterNotAKeyEvent();
     void eventFilterNotAHashKey();
     void eventFilterNotValidKeySequence();
+    void eventFilterServiceRequestFails();
 #endif
     
 private:
     Dialpad *m_dialPad;
     DialpadKeySequenceEventFilter *m_eventFilter;
+    HbLineEdit *m_lineEditMock;
 };
 
 #endif  // UT_DIALPADKEYSEQUENCEEVENTFILTER_H
--- a/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/ut_dialpadkeysequenceeventfilter.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeysequenceeventfilter/ut_dialpadkeysequenceeventfilter.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -42,9 +42,15 @@
 SOURCES += ut_dialpadkeysequenceeventfilter.cpp
 
 HEADERS += ../../../../../phonesrv_plat/dialpad_api/inc/dialpad.h
-HEADERS += /epoc32/include/mw/xqservicerequest.h
+HEADERS += /epoc32/include/mw/xqservicerequest.h \
+           /epoc32/include/mw/xqappmgr.h         \
+           /epoc32/include/mw/xqaiwrequest.h
+
 SOURCES += ../shared/mock_dialpad.cpp          \
            ../shared/mock_xqservicerequest.cpp \
-           ../shared/mock_hblineedit.cpp
+           ../shared/mock_hblineedit.cpp       \
+           ../shared/mock_xqappmgr.cpp         \
+           ../shared/mock_xqaiwrequest.cpp     \
+           ../shared/mock_xqaiwinterfacedescriptor.cpp
 
 LIBS += -lmocklib -lsymbianmock -lxqserviceutil
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvideomailboxeventfilter/ut_dialpadvideomailboxeventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,202 @@
+/*!
+* 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 "dialpadtestutil.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
+
+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:
+    HbMainWindow*  mMainWindow;
+    Dialpad*       mDialpad;
+    DialpadVideoMailboxEventFilter *mEventFilter;
+    KeyEventCatcher* mKeyCatcher;
+    DialpadTestUtil* mUtil;
+};
+
+void ut_DialpadVideoMailboxEventFilter::initTestCase()
+{
+    mMainWindow = new HbMainWindow;
+
+    mKeyCatcher = new KeyEventCatcher;
+    mMainWindow->installEventFilter(mKeyCatcher);
+
+    mUtil = new DialpadTestUtil(*mMainWindow);
+
+    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);
+
+    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;
+    delete mUtil;
+}
+
+void ut_DialpadVideoMailboxEventFilter::cleanup()
+{
+    mKeyCatcher->mKeyPresses.clear();
+    mKeyCatcher->mKeyReleases.clear();
+    mDialpad->editor().setText(QString());
+    QTest::qWait( WAIT_TIME ); // delay between tests
+}
+
+void ut_DialpadVideoMailboxEventFilter::testNumericKeyTwoLongPress()
+{
+    mDialpad->openDialpad();
+    QTest::qWait(WAIT_TIME);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::Press);
+    QTest::qWait(2000);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::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);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::Press);
+    QTest::qWait(200);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::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 );
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::Press);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::Release);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::Press);
+    QTest::qWait(2000);
+    mUtil->mouseClickDialpad(Qt::Key_2, DialpadTestUtil::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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,44 @@
+#
+# 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 \
+           ../../../inc/dialpadmailboxeventfilterbase.h \
+           ../../../inc/dialpadsymbianwrapper.h \
+           xqservicerequest.h \
+           dialpadtestutil.h
+SOURCES += ut_dialpadvideomailboxeventfilter.cpp \
+           ../../../src/dialpadvideomailboxeventfilter.cpp \
+           ../../../src/dialpadmailboxeventfilterbase.cpp \
+           ../shared/dialpadtestutil.cpp
+
+# 
+LIBS += -ldialpad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvideomailboxeventfilter/xqservicerequest.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -31,6 +31,7 @@
 #endif
 
 #include "dialpadtest.h"
+#include "dialpadtestutil.h"
 #include "dialpadvoicemailboxeventfilter.h"
 #include "dialpad.h"
 #include "dialpadsymbianwrapper.h"
@@ -83,14 +84,6 @@
 {
     Q_OBJECT
 
-public:
-    enum MouseEventType
-    {
-        Press,
-        Release,
-        Click
-    };
-
 private slots:
     void initTestCase();
     void init();
@@ -103,16 +96,11 @@
     void testNumericKeyOneShortThenLongPress();
 
 private:
-    QGraphicsWidget* getWidgetByName(const QString& name);
-    void mouseClickDialpad(int key, MouseEventType type=Click,
-                           bool pause=true);
-
-private:
     HbMainWindow*  mMainWindow;
     Dialpad*       mDialpad;
     DialpadVoiceMailboxEventFilter *mEventFilter;
     KeyEventCatcher* mKeyCatcher;
-    QMap<int,QString> mKeyNames;
+    DialpadTestUtil* mUtil;
 };
 
 void ut_DialpadVoiceMailboxEventFilter::initTestCase()
@@ -122,6 +110,8 @@
     mKeyCatcher = new KeyEventCatcher;
     mMainWindow->installEventFilter(mKeyCatcher);
 
+    mUtil = new DialpadTestUtil(*mMainWindow);
+
     mDialpad = new Dialpad();
     mEventFilter = new DialpadVoiceMailboxEventFilter(mDialpad, this);
     hbInstance->allMainWindows().at(0)->installEventFilter(mEventFilter);
@@ -133,21 +123,6 @@
     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();
@@ -166,6 +141,7 @@
     delete mDialpad;
     delete mMainWindow;
     delete mKeyCatcher;
+    delete mUtil;
 }
 
 void ut_DialpadVoiceMailboxEventFilter::cleanup()
@@ -176,64 +152,13 @@
     QTest::qWait( WAIT_TIME ); // delay between tests
 }
 
-QGraphicsWidget* ut_DialpadVoiceMailboxEventFilter::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_DialpadVoiceMailboxEventFilter::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_DialpadVoiceMailboxEventFilter::testNumericKeyOneLongPress()
 {
     mDialpad->openDialpad();
     QTest::qWait(WAIT_TIME);
-    mouseClickDialpad(Qt::Key_1, Press);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Press);
     QTest::qWait(2000);
-    mouseClickDialpad(Qt::Key_1, Release);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Release);
     QTest::qWait(1000);
     QCOMPARE(mDialpad->editor().text(), QString(""));
     mDialpad->closeDialpad();
@@ -250,8 +175,10 @@
 {
     mDialpad->openDialpad();
     QTest::qWait(WAIT_TIME);
-    mouseClickDialpad(Qt::Key_1, Press);
-    mouseClickDialpad(Qt::Key_1, Release);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Press);
+    QTest::qWait(200);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Release);
+    QTest::qWait(1000);
     // Check that character '1' is in editor.
     QCOMPARE(mDialpad->editor().text(), QString("1"));
 }
@@ -261,11 +188,11 @@
     // Then one short and one long press
     mDialpad->openDialpad();
     QTest::qWait( WAIT_TIME );
-    mouseClickDialpad(Qt::Key_1, Press);
-    mouseClickDialpad(Qt::Key_1, Release);
-    mouseClickDialpad(Qt::Key_1, Press);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Press);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Release);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Press);
     QTest::qWait(2000);
-    mouseClickDialpad(Qt::Key_1, Release);
+    mUtil->mouseClickDialpad(Qt::Key_1, DialpadTestUtil::Release);
     QTest::qWait(1000);
     QVERIFY(mDialpad->editor().text()=="11");
     mDialpad->closeDialpad();
--- a/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadvoicemailboxeventfilter/ut_dialpadvoicemailboxeventfilter.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -30,11 +30,15 @@
 }
 
 #
-HEADERS += ../../../inc/dialpadvoicemailboxeventfilter.h
-HEADERS += ../../../inc/dialpadsymbianwrapper.h
-HEADERS += xqservicerequest.h
-SOURCES += ut_dialpadvoicemailboxeventfilter.cpp
-SOURCES += ../../../src/dialpadvoicemailboxeventfilter.cpp
+HEADERS += ../../../inc/dialpadvoicemailboxeventfilter.h \
+           ../../../inc/dialpadmailboxeventfilterbase.h \
+           ../../../inc/dialpadsymbianwrapper.h \
+           xqservicerequest.h \
+           dialpadtestutil.h
+SOURCES += ut_dialpadvoicemailboxeventfilter.cpp \
+           ../../../src/dialpadvoicemailboxeventfilter.cpp \
+           ../../../src/dialpadmailboxeventfilterbase.cpp \
+           ../shared/dialpadtestutil.cpp
 
 # 
 LIBS += -ldialpad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/imeikeysequencehandler.h	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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:  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#");
+/*! code for showing serial number */
+const QString KCodeImei("*#06#");
+/*! code for showing life timer data */
+const QString KCodeLifeTimer("*#92702689#");
+/*! code for changing pin code 1 */
+const QString KCodeChangePin1("\\*\\*04\\*\\d{4,15}\\*\\d{4,15}\\*\\d{4,15}\\#");
+/*! code for changing pin code 2 */
+const QString KCodeChangePin2("\\*\\*042\\*\\d{4,15}\\*\\d{4,15}\\*\\d{4,15}#");
+/*! code for unblocking pin code 1 */
+const QString KCodeUnblockPin1("\\*\\*05\\**\\d{8,20}\\*\\d{4,15}\\*\\d{4,15}#");
+/*! code for unblocking pin code 2 */
+const QString KCodeUnblockPin2("\\*\\*052\\**\\d{8,20}\\*\\d{4,15}\\*\\d{4,15}#");
+
+
+#endif // KEYSEQUENCERECOGNITIONSERVICEDEFS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/inc/keysequencerecognitionservicelog.h	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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/inc/simcontrolkeysequencehandler.h	Thu Jul 22 16:38:43 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: Implements simcontrol key sequence handling.
+*
+*/
+
+#ifndef SIMCONTROLKEYSEQUENCEHANDLER_H
+#define SIMCONTROLKEYSEQUENCEHANDLER_H
+
+#include "keysequencehandler.h"
+
+class CManualSecuritySettings;
+
+class SimControlKeySequenceHandler : public KeySequenceHandler
+{
+    Q_OBJECT
+
+public:
+
+    SimControlKeySequenceHandler(QObject *parent = 0);
+    ~SimControlKeySequenceHandler();
+    
+    bool executeKeySequence(const QString &keySequence);
+    
+    enum SimOperation
+        {
+        None,
+        Pin1,
+        Pin2,
+        Unblock1,
+        Unblock2
+        };
+
+private:
+
+    bool parseString(const QString &keySequence);
+    void processChangePin(
+            SimOperation op,
+            const QString &oldPin,
+            const QString &newPin,
+            const QString &verifyNew);
+    
+    void processUnblockPin(
+            SimOperation op,
+            const QString &puk,
+            const QString &newPin,
+            const QString &verifyNew);
+    
+private:    
+    CManualSecuritySettings* m_securityModel;
+};
+
+#endif // SIMCONTROLKEYSEQUENCEHANDLER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/keysequencerecognitionservice.pri	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,25 @@
+# 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/simcontrolkeysequencehandler.h         \
+          ./inc/lifetimerkeysequencehandler.h
+
+SOURCES = ./src/main.cpp                                \
+          ./src/keysequencerecognitionprovider.cpp      \
+          ./src/keysequencehandler.cpp                  \
+          ./src/manufacturerkeysequencehandler.cpp      \
+          ./src/imeikeysequencehandler.cpp              \
+          ./src/simcontrolkeysequencehandler.cpp        \
+          ./src/lifetimerkeysequencehandler.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/keysequencerecognitionservice.pro	Thu Jul 22 16:38:43 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 -lsecui
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/resources/keysequencerecognitionservice_conf.xml	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,162 @@
+/*!
+* 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 "simcontrolkeysequencehandler.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();
+    
+    QScopedPointer<KeySequenceHandler> simControlHandler( 
+        new SimControlKeySequenceHandler(this));
+    m_handlers.append(simControlHandler.data());
+    simControlHandler.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 Jul 22 16:38:43 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 Jul 22 16:38:43 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, Hb::NoSplash);
+    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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,162 @@
+/*!
+* 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));
+    
+    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()");
+}
+
+
+/*!
+  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/src/simcontrolkeysequencehandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,202 @@
+/*!
+* 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 simcontrol key sequence handling.
+*
+*/
+
+#include <qsysteminfo.h>
+#include <qmobilityglobal.h>
+#include <secui.h>
+#include <secuimanualsecuritysettings.h>
+#include "keysequencerecognitionservicedefs.h"
+#include "keysequencerecognitionservicelog.h"
+#include "simcontrolkeysequencehandler.h"
+
+
+//QTM_USE_NAMESPACE
+
+/*!
+  SimControlKeySequenceHandler::SimControlKeySequenceHandler.
+ */
+SimControlKeySequenceHandler::SimControlKeySequenceHandler(
+    QObject* parent)
+    :
+    KeySequenceHandler(parent),
+    m_securityModel(0)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    setKeySequenceValidator(KCodeChangePin1 + "|" +
+              KCodeChangePin2 + "|" +
+              KCodeUnblockPin1 + "|" +
+              KCodeUnblockPin2);
+                                    
+    QT_TRAP_THROWING(TSecUi::InitializeLibL());
+    QT_TRAP_THROWING( m_securityModel = CManualSecuritySettings::NewL() );
+}
+
+
+/*!
+  SimControlKeySequenceHandler::~SimControlKeySequenceHandler.
+ */
+SimControlKeySequenceHandler::~SimControlKeySequenceHandler()
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    delete m_securityModel;    
+    TSecUi::UnInitializeLib();
+}
+
+
+/*!
+  SimControlKeySequenceHandler::executeKeySequence.
+ */
+bool SimControlKeySequenceHandler::executeKeySequence(
+    const QString &keySequence)
+{
+    DPRINT_METHODENTRYEXIT;
+   
+    bool handled = parseString( keySequence );
+
+    return handled;
+}
+
+
+/*!
+  SimControlKeySequenceHandler::parseString.
+ */
+bool SimControlKeySequenceHandler::parseString(const QString &keySequence)
+{
+    DPRINT_METHODENTRYEXIT;
+    
+    const QString KChangePin1("**04*");
+    const QString KChangePin2("**042");
+    const QString KUnblockPin1("**05*");
+    const QString KUnblockPin2("**052");
+    
+    QString oldPin;
+    QString newPin;
+    QString verifyNewPin;
+    QString puk;
+    
+    SimOperation operation = None;
+    bool handled = false;
+   
+    QString keySequencePrefix (keySequence);
+    
+    //Get first 5 chars from keysequence string
+    keySequencePrefix.chop(keySequencePrefix.length()-5);
+    QRegExp expression(QRegExp::escape(keySequencePrefix));
+    
+    QString parsedKeySequence(keySequence);
+ 
+    //remove '#' from end 
+    parsedKeySequence.chop(1);
+
+    QStringList pins;
+    
+    if (expression.exactMatch(KChangePin1) || expression.exactMatch(KChangePin2))
+            {
+            if (expression.exactMatch(KChangePin1))
+                  {
+                  parsedKeySequence.remove(0, 5);
+                  operation = Pin1;
+                  }
+            
+            if (expression.exactMatch(KChangePin2))
+                  { 
+                  parsedKeySequence.remove(0, 6);
+                  operation = Pin2;
+                 }
+            pins = parsedKeySequence.split("*");
+            oldPin= pins.value(0);
+            newPin = pins.value(1);
+            verifyNewPin = pins.value(2);
+            handled = true;
+            processChangePin(operation, oldPin, newPin, verifyNewPin);
+            }
+    
+    if (expression.exactMatch(KUnblockPin1) || expression.exactMatch(KUnblockPin2))
+            {
+            if ( expression.exactMatch(KUnblockPin1))
+                  {
+                  parsedKeySequence.remove(0, 5);
+                  operation = Pin1;
+                  }
+            
+            if (expression.exactMatch(KUnblockPin2))
+                  { 
+                  parsedKeySequence.remove(0, 6);
+                  operation = Pin2;
+                 }
+            
+            pins = parsedKeySequence.split("*");
+            puk = pins.value(0);
+            newPin = pins.value(1);
+            verifyNewPin = pins.value(2);
+            handled = true;
+            processUnblockPin(operation, puk, newPin, verifyNewPin);
+            }  
+    
+    return handled;
+}
+
+/*!
+  SimControlKeySequenceHandler::processChangePin.
+ */
+void SimControlKeySequenceHandler::processChangePin(SimOperation operation, const QString &oldPin,
+                                                   const QString &newPin, const QString &verifyNew)
+    {
+    CManualSecuritySettings::TPin pin;
+    
+        if(operation == Pin1)
+            {
+            pin = CManualSecuritySettings::EPin1;
+            }
+        else
+            {
+            pin = CManualSecuritySettings::EPin2;
+            }
+       
+       TBuf<200> oldPinBuf(oldPin.utf16());
+       TBuf<200> newPinBuf(newPin.utf16());                
+       TBuf<200> verifyNewBuf(verifyNew.utf16()); 
+          
+       QT_TRAP_THROWING(m_securityModel->ChangePinL(pin, oldPinBuf, newPinBuf, verifyNewBuf));
+    }
+
+/*!
+  SimControlKeySequenceHandler::processUnblockPin.
+ */
+void SimControlKeySequenceHandler::processUnblockPin(SimOperation operation, const QString &puk, 
+                                                   const QString &newPin, const QString &verifyNew)
+    {
+    CManualSecuritySettings::TPin pin;
+    
+    if(operation == Pin1)
+         {
+          pin = CManualSecuritySettings::EPin1;
+         }
+     else
+         {
+         pin= CManualSecuritySettings::EPin2;
+         }
+    
+    TBuf<200> pukBuf(puk.utf16());
+    TBuf<200> newPinBuf(newPin.utf16());                
+    TBuf<200> verifyNewBuf(verifyNew.utf16()); 
+          
+    
+    QT_TRAP_THROWING(m_securityModel->UnblockPinL(pin, pukBuf, newPinBuf, verifyNewBuf));
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/run_auto_tests_qt.bat	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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_etelmm.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,76 @@
+/*
+* 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 "etelmm.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+
+// -----------------------------------------------------------------------------
+// RMobilePhone::GetMultimodeCaps
+// -----------------------------------------------------------------------------
+//
+TInt RMobilePhone::GetMultimodeCaps( 
+        TUint32 & aCaps ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TUint32 &, aCaps )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMobilePhone::GetCurrentMode
+// -----------------------------------------------------------------------------
+//
+TInt RMobilePhone::GetCurrentMode( 
+        TMobilePhoneNetworkMode & aNetworkMode ) const
+    {
+    SMC_MOCK_METHOD1( TInt, TMobilePhoneNetworkMode &, aNetworkMode )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMobilePhone::GetSignalStrength
+// -----------------------------------------------------------------------------
+//
+void RMobilePhone::GetSignalStrength( 
+        TRequestStatus & aReqStatus,
+        TInt32 & aSignalStrength,
+        TInt8 & aBar ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aReqStatus, 
+        TInt32 &, aSignalStrength, 
+        TInt8 &, aBar )
+    }
+
+
+// -----------------------------------------------------------------------------
+// RMobilePhone::NotifySignalStrengthChange
+// -----------------------------------------------------------------------------
+//
+void RMobilePhone::NotifySignalStrengthChange( 
+        TRequestStatus & aReqStatus,
+        TInt32 & aSignalStrength,
+        TInt8 & aBar ) const
+    {
+    SMC_MOCK_METHOD3( void, TRequestStatus &, aReqStatus, 
+        TInt32 &, aSignalStrength, 
+        TInt8 &, aBar )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_hbdevicemessagebox.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,252 @@
+/* 
+* 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
+// -----------------------------------------------------------------------------
+//
+const QAction * HbDeviceMessageBox::exec(  )
+    {
+    SMC_MOCK_METHOD0( QAction * )
+    }
+
+
+// -----------------------------------------------------------------------------
+// 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::setIconVisible
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setIconVisible( bool visible )
+    {
+    SMC_MOCK_METHOD1( void, bool, visible )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::iconVisible
+// -----------------------------------------------------------------------------
+//
+bool HbDeviceMessageBox::iconVisible( ) const
+    {
+    SMC_MOCK_METHOD0( bool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::setAnimationDefinition
+// -----------------------------------------------------------------------------
+//
+void HbDeviceMessageBox::setAnimationDefinition( 
+        QString & animationDefinition )
+    {
+    SMC_MOCK_METHOD1( void, QString &, animationDefinition )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::animationDefinition
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::animationDefinition(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
+    }
+
+
+// -----------------------------------------------------------------------------
+// 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::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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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_secui.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,96 @@
+/*
+* 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 <e32std.h>
+#include <eikenv.h>
+#include <bautils.h>
+#include 	<data_caging_path_literals.hrh>
+#include <secui.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TSecUi::TSecUi
+// -----------------------------------------------------------------------------
+//
+TSecUi::TSecUi(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// TSecUi::ConstructL
+// -----------------------------------------------------------------------------
+//
+void TSecUi::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// TSecUi::InitializeLibL
+// -----------------------------------------------------------------------------
+//
+void TSecUi::InitializeLibL(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// TSecUi::UnInitializeLib
+// -----------------------------------------------------------------------------
+//
+void TSecUi::UnInitializeLib(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// TSecUi::CanBeFreed
+// -----------------------------------------------------------------------------
+//
+TBool TSecUi::CanBeFreed(  )
+    {
+    SMC_MOCK_METHOD0( TBool )
+    }
+
+
+// -----------------------------------------------------------------------------
+// TSecUi::IncreaseClientCount
+// -----------------------------------------------------------------------------
+//
+void TSecUi::IncreaseClientCount(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// TSecUi::DecreaseClientCount
+// -----------------------------------------------------------------------------
+//
+void TSecUi::DecreaseClientCount(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_secuimanualsecuritysettings.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,183 @@
+/*
+* 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 "secuimanualsecuritysettings.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::CManualSecuritySettings
+// -----------------------------------------------------------------------------
+//
+CManualSecuritySettings::CManualSecuritySettings(  )
+    //:
+    //CBase( /**/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CManualSecuritySettings::ConstructL(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::NewL
+// -----------------------------------------------------------------------------
+//
+CManualSecuritySettings * CManualSecuritySettings::NewL(  )
+    {
+    SMC_MOCK_NEWL0( CManualSecuritySettings * )
+
+    CManualSecuritySettings* self = new( ELeave ) CManualSecuritySettings;
+    CleanupStack::PushL( self );
+    //self->ConstructL()
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::~CManualSecuritySettings
+// -----------------------------------------------------------------------------
+//
+CManualSecuritySettings::~CManualSecuritySettings(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::ChangePinL
+// -----------------------------------------------------------------------------
+//
+TBool CManualSecuritySettings::ChangePinL( 
+        TPin aPin,
+        const TDesC & aOld,
+        const TDesC & aNew,
+        const TDesC & aVerifyNew )
+    {
+    SMC_MOCK_METHOD4( TBool, TPin, aPin, 
+        const TDesC &, aOld, 
+        const TDesC &, aNew, 
+        const TDesC &, aVerifyNew )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::CancelChangePin
+// -----------------------------------------------------------------------------
+//
+void CManualSecuritySettings::CancelChangePin(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::UnblockPinL
+// -----------------------------------------------------------------------------
+//
+TBool CManualSecuritySettings::UnblockPinL( 
+        TPin aPin,
+        const TDesC & aPuk,
+        const TDesC & aNew,
+        const TDesC & aVerifyNew )
+    {
+    SMC_MOCK_METHOD4( TBool, TPin, aPin, 
+        const TDesC &, aPuk, 
+        const TDesC &, aNew, 
+        const TDesC &, aVerifyNew )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::CancelUnblockPin
+// -----------------------------------------------------------------------------
+//
+void CManualSecuritySettings::CancelUnblockPin(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::LockSimL
+// -----------------------------------------------------------------------------
+//
+TBool CManualSecuritySettings::LockSimL( 
+        const TDesC & aLockCode,
+        const TDesC & aType )
+    {
+    SMC_MOCK_METHOD2( TBool, const TDesC &, aLockCode, 
+        const TDesC &, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::CancelLockSim
+// -----------------------------------------------------------------------------
+//
+void CManualSecuritySettings::CancelLockSim(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::UnlockSimL
+// -----------------------------------------------------------------------------
+//
+TBool CManualSecuritySettings::UnlockSimL( 
+        const TDesC & aUnlockCode,
+        const TDesC & aType )
+    {
+    SMC_MOCK_METHOD2( TBool, const TDesC &, aUnlockCode, 
+        const TDesC &, aType )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::CancelUnlockSim
+// -----------------------------------------------------------------------------
+//
+void CManualSecuritySettings::CancelUnlockSim(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CManualSecuritySettings::ShowResultNoteL
+// -----------------------------------------------------------------------------
+//
+void CManualSecuritySettings::ShowResultNoteL( 
+        CAknNoteDialog::TTone aTone,
+        TInt aResourceID )
+    {
+    SMC_MOCK_METHOD2( void, CAknNoteDialog::TTone, aTone, 
+        TInt, aResourceID )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_simcontrolkeysequencehandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,56 @@
+/*
+* 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 "simcontrolkeysequencehandler.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// SimControlKeySequenceHandler::SimControlKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+SimControlKeySequenceHandler::SimControlKeySequenceHandler( 
+        QObject * parent )
+    :
+    KeySequenceHandler( parent )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// SimControlKeySequenceHandler::~SimControlKeySequenceHandler
+// -----------------------------------------------------------------------------
+//
+SimControlKeySequenceHandler::~SimControlKeySequenceHandler(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// SimControlKeySequenceHandler::executeKeySequence
+// -----------------------------------------------------------------------------
+//
+bool SimControlKeySequenceHandler::executeKeySequence( 
+        const QString & keySequence )
+    {
+    SMC_MOCK_METHOD1( bool, const QString &, keySequence )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_xqaiwrequest.cpp	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,54 @@
+#
+# 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        \
+        ../../inc/simcontrolkeysequencehandler.h
+    
+    SOURCES +=                                            \
+        ../shared/mock_qtranslator.cpp                    \
+        ../shared/mock_keysequencehandler.cpp             \
+        ../shared/mock_imeikeysequencehandler.cpp         \
+        ../shared/mock_lifetimerkeysequencehandler.cpp    \
+        ../shared/mock_manufacturerkeysequencehandler.cpp \
+        ../shared/mock_simcontrolkeysequencehandler.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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,270 @@
+/*!
+* 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);
+    
+    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);
+}
+
+
+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 Jul 22 16:38:43 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/telutils/keysequencerecognitionservice/tsrc/ut_simcontrolkeysecuencehandler/ut_simcontrolkeysecuencehandler.pro	Thu Jul 22 16:38:43 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:
+#
+#
+
+MOC_DIR = moc
+CONFIG += hb qtestlib
+
+
+TEMPLATE = app
+TARGET = ut_simcontrolkeysecuencehandler 
+
+QT        += core
+QT        -= gui 
+
+
+SOURCES   +=  ut_simcontrolkeysecuencehandler_reg.rss
+
+
+
+
+symbian {
+    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+    INCLUDEPATH += . ../shared ../../inc
+    HEADERS += ../../inc/simcontrolkeysequencehandler.h
+    SOURCES += ../../src/simcontrolkeysequencehandler.cpp
+
+    HEADERS += ut_simcontrolkeysequencehandler.h
+    SOURCES += ut_simcontrolkeysequencehandler.cpp 
+    
+    #MOCKED DEPENDENCIES
+    HEADERS +=                                  \ 
+        ../../inc/keysequencehandler.h          
+    
+  SOURCES +=                                    \ 
+      ../shared/mock_keysequencehandler.cpp     \
+      ../shared/mock_secuimanualsecuritysettings.cpp  \
+      ../shared/mock_secui.cpp					\
+      ../shared/mock_etel.cpp                   \
+      ../shared/mock_rmmcustomapi.cpp           \
+      ../shared/mock_etelmm.cpp
+
+    
+    LIBS += -lmocklib -lsymbianmock 
+    LIBS += -letel -letelmm -lcustomapi 
+    TARGET.UID3 = 0xED019EF7
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_simcontrolkeysecuencehandler/ut_simcontrolkeysequencehandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,191 @@
+/*!
+* 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 <secuimanualsecuritysettings.h>
+#include "ut_simcontrolkeysequencehandler.h"
+#include "simcontrolkeysequencehandler.h"
+#include "keysequencerecognitionservicedefs.h"
+#include "qtestmains60.h"
+
+_LIT(KOldPinCode, "1234");
+_LIT(KPukCode, "11111111");
+_LIT(KNewPinCode, "4321");
+_LIT(KVerifyNewPinCode, "4321");
+
+
+void generateLeaveL()
+{
+    User::Leave(KErrUnknown);
+}
+
+
+UT_SimControlKeySequenceHandler::UT_SimControlKeySequenceHandler()
+    :
+    m_handler(0)
+{
+    
+}
+
+
+UT_SimControlKeySequenceHandler::~UT_SimControlKeySequenceHandler()
+{
+    delete m_handler;
+}
+
+
+void UT_SimControlKeySequenceHandler::init()
+{
+    initialize();
+    
+    m_handler = new SimControlKeySequenceHandler();
+}
+
+
+void UT_SimControlKeySequenceHandler::cleanup()
+{
+    reset();
+    
+    delete m_handler;
+    m_handler = 0;
+}
+
+void UT_SimControlKeySequenceHandler::t_constructionFails()
+{
+    EXPECT( CManualSecuritySettings::NewL() ).willOnce(invokeWithoutArguments(generateLeaveL));
+    
+    int result = 0;
+    QT_TRYCATCH_ERROR(result, 
+        QScopedPointer<SimControlKeySequenceHandler> handler(
+            new SimControlKeySequenceHandler())
+    )
+    QVERIFY(0 != result);
+}
+
+
+void UT_SimControlKeySequenceHandler::t_changePin1()
+    {
+    const QString KChangePin1KeySequence( "**04*1234*4321*4321*" );
+    
+    EXPECT(CManualSecuritySettings::ChangePinL)
+        .with(CManualSecuritySettings::EPin1, KOldPinCode(), KNewPinCode(), KVerifyNewPinCode());
+    
+    m_handler->executeKeySequence( KChangePin1KeySequence );
+    
+    QVERIFY(verify());
+    
+    
+    // leave handling
+    EXPECT( CManualSecuritySettings::ChangePinL ).willOnce(invokeWithoutArguments(generateLeaveL))
+        .with(CManualSecuritySettings::EPin1, KOldPinCode(), KNewPinCode(), KVerifyNewPinCode());
+    int result = 0;
+    QT_TRYCATCH_ERROR(result, 
+            m_handler->executeKeySequence(KChangePin1KeySequence) )
+    
+    QVERIFY(0 != result);
+    }
+
+void UT_SimControlKeySequenceHandler::t_changePin2()
+    {
+    const QString KChangePin2KeySequence( "**042*1234*4321*4321*" );
+    
+    EXPECT(CManualSecuritySettings::ChangePinL)
+        .with(CManualSecuritySettings::EPin2, KOldPinCode(), KNewPinCode(), KVerifyNewPinCode());
+    
+    m_handler->executeKeySequence(KChangePin2KeySequence);
+    
+    QVERIFY(verify());
+    
+    
+    //leave handling
+    EXPECT( CManualSecuritySettings::ChangePinL ).willOnce(invokeWithoutArguments(generateLeaveL))
+            .with(CManualSecuritySettings::EPin2, KOldPinCode(), KNewPinCode(), KVerifyNewPinCode());
+    
+    int result = 0;
+    QT_TRYCATCH_ERROR(result, 
+            m_handler->executeKeySequence(KChangePin2KeySequence) )
+    
+    QVERIFY(0 != result);
+    }
+
+void UT_SimControlKeySequenceHandler::t_unblockPin1()
+    {
+    const QString KUnblockPin1KeySequence( "**05*11111111*4321*4321*" );
+    
+    EXPECT(CManualSecuritySettings::UnblockPinL)
+        .with(CManualSecuritySettings::EPin1, KPukCode(), KNewPinCode(), KVerifyNewPinCode());
+    
+    m_handler->executeKeySequence(KUnblockPin1KeySequence);
+    
+    QVERIFY(verify());
+    
+    
+    //leave handling
+    EXPECT( CManualSecuritySettings::UnblockPinL ).willOnce(invokeWithoutArguments(generateLeaveL))
+        .with(CManualSecuritySettings::EPin1, KPukCode(), KNewPinCode(), KVerifyNewPinCode());
+    
+    int result = 0;
+    QT_TRYCATCH_ERROR(result, 
+            m_handler->executeKeySequence(KUnblockPin1KeySequence) )
+    
+    QVERIFY(0 != result);
+    }
+
+
+void UT_SimControlKeySequenceHandler::t_unblockPin2()
+    {
+     const QString KUnblockPin2KeySequence( "**052*11111111*4321*4321*" );
+    
+     EXPECT(CManualSecuritySettings::UnblockPinL)
+         .with(CManualSecuritySettings::EPin2, KPukCode(), KNewPinCode(), KVerifyNewPinCode());
+     
+     m_handler->executeKeySequence(KUnblockPin2KeySequence);
+     
+     QVERIFY(verify());
+     
+     
+     //leave handling
+     EXPECT( CManualSecuritySettings::UnblockPinL ).willOnce(invokeWithoutArguments(generateLeaveL))
+         .with(CManualSecuritySettings::EPin2, KPukCode(), KNewPinCode(), KVerifyNewPinCode());
+     
+     int result = 0;
+     QT_TRYCATCH_ERROR(result, 
+             m_handler->executeKeySequence(KUnblockPin2KeySequence) )
+     
+     QVERIFY(0 != result);
+    }
+
+
+void UT_SimControlKeySequenceHandler::t_keySequenceValidator()
+    {
+    QString expectedValidator =
+        KCodeChangePin1 + "|" +
+        KCodeChangePin2 + "|" +
+        KCodeUnblockPin1 + "|" +
+        KCodeUnblockPin2;
+    
+    expect("KeySequenceHandler::setKeySequenceValidator")
+        .with(expectedValidator);
+    
+    QScopedPointer<SimControlKeySequenceHandler> handler(
+        new SimControlKeySequenceHandler());
+    
+    QVERIFY(verify());
+    }
+
+QTEST_MAIN_S60(UT_SimControlKeySequenceHandler)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_simcontrolkeysecuencehandler/ut_simcontrolkeysequencehandler.h	Thu Jul 22 16:38:43 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_SIMCONTROLKEYSEQUENCEHANDLER_H
+#define UT_SIMCONTROLKEYSEQUENCEHANDLER_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class SimControlKeySequenceHandler;
+
+class UT_SimControlKeySequenceHandler : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_SimControlKeySequenceHandler();
+    ~UT_SimControlKeySequenceHandler();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    void t_constructionFails();
+    void t_changePin1();
+    void t_changePin2();
+    void t_unblockPin1();
+    void t_unblockPin2();
+    void t_keySequenceValidator();
+    
+    
+private:
+    SimControlKeySequenceHandler *m_handler;
+};
+
+#endif  // UT_SIMCONTROLKEYSEQUENCEHANDLER_H
--- a/telutils/phoneparser/group/phoneparser.mmp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/group/phoneparser.mmp	Thu Jul 22 16:38:43 2010 +0100
@@ -51,7 +51,6 @@
 SOURCE          cphoneparserfeatures.cpp 
 SOURCE          cphonevoipnumberparser.cpp 
 SOURCE          cphonevoipnumberhandler.cpp 
-SOURCE          cphonegsmimeiparser.cpp 
 
 USERINCLUDE     ../inc 
 
--- a/telutils/phoneparser/inc/CPhoneGsmImeiParser.h	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 2008-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:  It is parser for Imei string.
-*
-*/
-
-
-#ifndef CPHONEGSMIMEIPARSER_H_
-#define CPHONEGSMIMEIPARSER_H_
-
-// INCLUDES
-#include    "cphonegsmparserbase.h" 
-
-// CONSTANTS
-
-
-// CLASS DECLARATION
-
-/**
-* It is parser for IMEI string.
-*
-* @since 1.0
-* @lib phoneparser.lib
-*/
-NONSHARABLE_CLASS( CPhoneGsmImeiParser )
-    : public CPhoneGsmParserBase
-    {
-    public:  // Constructors and destructor      
-        
-        /**
-        * Two-phased constructor.
-        */
-        static CPhoneGsmImeiParser* NewLC();
-        
-    public: // Functions from base classes
-
-        /**
-        * From CPhoneGsmParserBase, parses string.
-        *
-        * @param aString string to be parsed.
-        * @param aResult It will contain result.
-        * @param aOptions It contains all options related to parsing.
-        * @return It returns boolean value indicating success of parsing.
-        */
-        TBool ParseL( 
-            const TDesC& aString,
-            CPhoneGsmParserResult& aResult,
-            CPhoneGsmOptionContainerBase& aOptions );
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CPhoneGsmImeiParser();
-
-    };
-
-#endif /*CPHONEGSMIMEIPARSER_H_*/
-
-// End of File
--- a/telutils/phoneparser/inc/CPhoneGsmParser.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/inc/CPhoneGsmParser.h	Thu Jul 22 16:38:43 2010 +0100
@@ -52,8 +52,7 @@
             CPhoneGsmParserBase* aPhoneNumber,
             CPhoneGsmParserBase* aManufacturerSpecific,
             CPhoneGsmParserBase* aEmergencyNumberParser,
-            CPhoneGsmParserBase* iVoipNumber,
-            CPhoneGsmParserBase* iImeiParser );
+            CPhoneGsmParserBase* iVoipNumber);
         
         /**
         * Destructor.
@@ -86,8 +85,7 @@
             CPhoneGsmParserBase* aPhoneNumber,
             CPhoneGsmParserBase* aManufacturerSpecific,
             CPhoneGsmParserBase* aEmergencyNumberParser,
-            CPhoneGsmParserBase* iVoipNumber,
-            CPhoneGsmParserBase* iImeiParser );
+            CPhoneGsmParserBase* iVoipNumber);
 
         /**
         * By default Symbian OS constructor is private.
@@ -129,10 +127,6 @@
         
         // Owned voip number parser.
         CPhoneGsmParserBase* iVoipNumber;
-
-        // Owned IMEI parser.
-        CPhoneGsmParserBase* iImeiParser;
-
     };
 
 #endif      // CPHONEGSMPARSER_H
--- a/telutils/phoneparser/inc/CPhoneParserFeatures.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/inc/CPhoneParserFeatures.h	Thu Jul 22 16:38:43 2010 +0100
@@ -64,13 +64,6 @@
     public: // New functions
         
         /**
-        * Checks if life timer is enabled.
-        *
-        * @return ETrue if supported.
-        */
-        static TBool LifeTimerEnabled();
-            
-        /**
         * Checks if two digit calling is enabled.
         *
         * @return ETrue if supported.
--- a/telutils/phoneparser/src/CPhoneGsmImeiParser.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +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:  Parser for IMEI.
-*
-*/
-
-
-// INCLUDE FILES
-#include    "cphonegsmimeiparser.h" 
-#include    "cphonegsmparserresult.h" 
-#include    "cphonegsmoptioncontainer.h" 
-
-// CONSTANTS
-
-// IMEI code
-_LIT( KPhoneImeiCode, "*#06#" );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmImeiParser::CPhoneGsmImeiParser
-// -----------------------------------------------------------------------------
-//
-CPhoneGsmImeiParser::CPhoneGsmImeiParser()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmImeiParser::NewLC
-// -----------------------------------------------------------------------------
-//
-CPhoneGsmImeiParser* CPhoneGsmImeiParser::NewLC()
-    {
-    CPhoneGsmImeiParser* self = 
-        new ( ELeave ) CPhoneGsmImeiParser;
-    
-    CleanupStack::PushL( self );
-        
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmImeiParser::ParseL
-//
-// Parse IMEI string.
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmImeiParser::ParseL( 
-        const TDesC& aString,
-        CPhoneGsmParserResult& aResult,
-        CPhoneGsmOptionContainerBase& aOptions )
-    {
-    aResult.ClearL();
-
-    if ( !aOptions.FindOptionStatus( KPhoneOptionSend ))
-        {
-        if ( aString == KPhoneImeiCode )
-            {
-            aResult.SetUid( KPhoneUidIMEI );
-            }
-        }
-   
-    return ( aResult.Uid() == KPhoneUidIMEI );
-    }
-
-//  End of File  
--- a/telutils/phoneparser/src/CPhoneGsmMiscHandler.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/src/CPhoneGsmMiscHandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Implementation of handlers for USSD and IMEI.
+* Description:  Implementation of handler for USSD.
 *
 */
 
@@ -42,10 +42,6 @@
                 }
             break;
 
-        case KPhoneUidIMEI:
-            ProcessShowIMEIL();
-            break;
-
         default:
             break;
         }
--- a/telutils/phoneparser/src/CPhoneGsmParser.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/src/CPhoneGsmParser.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -43,8 +43,7 @@
         CPhoneGsmParserBase* aPhoneNumber,
         CPhoneGsmParserBase* aManufacturerSpecific,
         CPhoneGsmParserBase* aEmergencyNumberParser,
-        CPhoneGsmParserBase* aVoipNumber,
-        CPhoneGsmParserBase* aImeiParser )
+        CPhoneGsmParserBase* aVoipNumber)
     {
     // Ownership of these instances is transferred, thus
     // creation of the instance must not leave. 
@@ -56,8 +55,7 @@
             aPhoneNumber,
             aManufacturerSpecific,
             aEmergencyNumberParser,
-            aVoipNumber,
-            aImeiParser );
+            aVoipNumber);
     
     if ( !self )
         {
@@ -67,7 +65,6 @@
         delete aManufacturerSpecific;
         delete aEmergencyNumberParser;
         delete aVoipNumber;
-        delete aImeiParser;
         
         User::Leave( KErrNoMemory );
         }
@@ -91,7 +88,6 @@
     delete iGsmManufacturerProcedure;
     delete iGsmEmergencyNumber;
     delete iVoipNumber;
-    delete iImeiParser;
     CPhoneParserFeatures::Free();
     }
 
@@ -105,15 +101,13 @@
         CPhoneGsmParserBase* aPhoneNumber,
         CPhoneGsmParserBase* aManufacturerSpecific,
         CPhoneGsmParserBase* aEmergencyNumberParser,
-        CPhoneGsmParserBase* aVoipNumber,
-        CPhoneGsmParserBase* aImeiParser )
+        CPhoneGsmParserBase* aVoipNumber)
     : iGsmSsProcedure( aSsProcedure ), 
       iGsmSimControlProcedure( aSimControlProcedure ),
       iGsmPhoneNumber( aPhoneNumber ),
       iGsmManufacturerProcedure( aManufacturerSpecific ),
       iGsmEmergencyNumber( aEmergencyNumberParser ),
-      iVoipNumber( aVoipNumber ),
-      iImeiParser( aImeiParser )
+      iVoipNumber( aVoipNumber )
     {
     }
 
@@ -149,10 +143,6 @@
         {
         iVoipNumber = CPhoneGsmDummyParser::NewL();
         }
-    if ( !iImeiParser )
-        {
-        iImeiParser = CPhoneGsmDummyParser::NewL();
-        }
     }
 
 // -----------------------------------------------------------------------------
@@ -198,15 +188,9 @@
         }
 
     TBool sendOperation = aOptions.FindOptionStatus( KPhoneOptionSend );
-
-    // Check if it is the only phone control string, show imei.
-    result = iImeiParser->ParseL( aString, aResult, aOptions );
     
     // Check if emergency number.
-    if ( !result )
-        {
-        result = iGsmEmergencyNumber->ParseL( aString, aResult, aOptions );
-        }
+    result = iGsmEmergencyNumber->ParseL( aString, aResult, aOptions );
     
     // First check if string is GSM ss procedure supported by MS.
     if ( !result )
--- a/telutils/phoneparser/src/CPhoneParserFeatures.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/src/CPhoneParserFeatures.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -130,16 +130,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CPhoneParserFeatures::LifeTimerEnabled
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneParserFeatures::LifeTimerEnabled()
-    {
-    return Instance() ? 
-        Instance()->GetTelephoneVariant() & KTelSrvLVFlagLifeTimer : EFalse;
-    }
-
-// -----------------------------------------------------------------------------
 // CPhoneParserFeatures::TwoDigitCallingEnabled
 // -----------------------------------------------------------------------------
 //
--- a/telutils/phoneparser/src/PhoneGsmParser.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/telutils/phoneparser/src/PhoneGsmParser.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -34,15 +34,12 @@
 #include    "cphonegsmemergencynumberparser.h" 
 #include    "cphoneparserfeatures.h" 
 #include    "cphonevoipnumberparser.h" 
-#include    "cphonegsmimeiparser.h" 
-
 
 // CONSTANTS
 const TInt KPhoneParserResultParameterReserver = 10;
 _LIT( KPhoneParserPanic, "PhoneParser" );
 
 // Software version display code
-_LIT( KPhoneCodeSwVersion, "*#0000#" );
 _LIT( KPhoneCodeBadPinChange, "**04*" );
 _LIT( KPhoneCodeBadPin2Change, "**042*" );
 _LIT( KPhoneCodeBadPinUnblock, "**05*" );
@@ -50,7 +47,6 @@
 _LIT( KPhoneCodeActivateRfsNormal, "*#7780#" );
 _LIT( KPhoneCodeActivateRfsDeep, "*#7370#" );
 _LIT( KPhoneCodeBtAddress, "*#2820#" );
-_LIT( KPhoneCodeLifeTimer, "*#92702689#" );
 _LIT( KPhoneCodeRFLoopback, "*#9990#" );
 _LIT( KPhoneCodeWLANMAC, "*#62209526#" );
 _LIT( KPhoneCodeBtDebugMode, "*#2873#" );
@@ -99,10 +95,6 @@
     CPhoneGsmParserBase* voipNumberParser =
         CPhoneVoipNumberParser::NewLC();
     
-    // 7. IMEI PARSER TO STACK
-    CPhoneGsmParserBase* imeiParser =
-        CPhoneGsmImeiParser::NewLC();
-    
     CPhoneGsmParser* parser = 
         CPhoneGsmParser::NewL(
             ssContainer, 
@@ -110,10 +102,9 @@
             phoneNumber,
             manufacturerSpecific,
             emergencyNumberParser,
-            voipNumberParser,
-            imeiParser );
+            voipNumberParser);
 
-    CleanupStack::Pop( 7, ssContainer );
+    CleanupStack::Pop( 6, ssContainer );
 
     return parser;
     }
@@ -233,13 +224,11 @@
     
     // Allowed:
     //      0 SEND
-    //      IMEI
-    //      All manufacturer codes (incl. SW version)
+    //      All manufacturer codes
     //      All sim control procedures
     //      All pcn procedures
     
     return ( uid == KPhoneUidCommand0 ||
-             uid == KPhoneUidIMEI ||
              uid == KPhoneUidManufacturerDebugCode ||
              uid == KPhoneUidManufacturerCode || 
              PHONE_EXTRACT_MAIN( uid ) == KPhoneGsmUidSimControlProcedure ||
@@ -258,18 +247,14 @@
 
     // Allowed:
     //      DialEmergency
-    //      IMEI
-    //      Some manufacturer codes (incl. SW version)
+    //      Some manufacturer codes
     //      All sim control procedures
     //      All pcn procedures
     
     return ( uid == KPhoneUidEmergencyNumber ||
-             uid == KPhoneUidIMEI ||
              uid == KPhoneUidManufacturerDebugCode ||
              ( uid == KPhoneUidManufacturerCode && 
-               ( aux == CPhoneGsmManufacturerHandler::EShowVersion ||
-                 aux == CPhoneGsmManufacturerHandler::ELifeTimer ||
-                 aux == CPhoneGsmManufacturerHandler::EBadPinChange ||
+               ( aux == CPhoneGsmManufacturerHandler::EBadPinChange ||
                  aux == CPhoneGsmManufacturerHandler::EBadPin2Change ||
                  aux == CPhoneGsmManufacturerHandler::EBadPinUnblock ||
                  aux == CPhoneGsmManufacturerHandler::EBadPin2Unblock ) ) ||
@@ -326,11 +311,6 @@
     manufacturer->AddL( *manuCodes );
     CleanupStack::Pop( manuCodes );
 
-    manuCodes->AddStringL(
-        KPhoneCodeSwVersion, 
-        CPhoneGsmManufacturerParser::EFlagCode,
-        CPhoneGsmManufacturerHandler::EShowVersion );
-
     manuCodes->AddStringL( 
         KPhoneCodeBadPinChange,
         CPhoneGsmManufacturerParser::EFlagCode + 
@@ -377,14 +357,6 @@
         CPhoneGsmManufacturerHandler::EShowWlanMac,
         KFeatureIdProtocolWlan );       
 
-    if ( CPhoneParserFeatures::LifeTimerEnabled())
-        {
-        manuCodes->AddStringL( 
-            KPhoneCodeLifeTimer,
-            CPhoneGsmManufacturerParser::EFlagCode,
-            CPhoneGsmManufacturerHandler::ELifeTimer );
-        }
-
     manuCodes->AddStringL( 
         KPhoneCodeRFLoopback,
         CPhoneGsmManufacturerParser::EFlagCode,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/inc/actioncustomitem.h	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/inc/loggerutil.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/inc/vmbxcpgroup.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/inc/vmbxuiengine.h	Thu Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp	Thu Jul 22 16:38:43 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 (mCsVoice1Editor && 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/src/vmbxcpplugin.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -16,7 +16,7 @@
  */
 
 // System includes
-#include <qdebug>
+#include <QDebug>
 #include <cpitemdatahelper.h>
 
 // User includes
--- a/vmbx/vmbxcpplugin/src/vmbxuiengine.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/src/vmbxuiengine.cpp	Thu Jul 22 16:38:43 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;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/tsrc/inc/ut_actioncustomitem.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* 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:  Implementation of the Ut_vmbxCpPlugin class
+*
+*/
+
+
+#ifndef UT_ACTIONCUSTOMIEM_H
+#define UT_CUSTOMCONTROLS_H
+
+#include <QObject>
+#include <QtTest/QtTest>
+
+class Ut_ActionCustomItem : public QObject
+{
+    Q_OBJECT
+    
+private slots:
+    void testNewAndDelete();
+    void testCreateItem();
+    void testCanSetModelIndex();    
+};
+
+#endif // UT_CUSTOMCONTROLS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/tsrc/inc/ut_customedit.h	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* 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:  Implementation of the Ut_vmbxCpPlugin class
+*
+*/
+
+
+#ifndef UT_CUSTOMEDIT_H
+#define UT_CUSTOMEDIT_H
+
+#include <QObject>
+#include <QtTest/QtTest>
+
+class Ut_CustomEdit : public QObject
+{
+    Q_OBJECT
+    
+private slots:
+    void testFocusInEvent();
+    
+};
+
+#endif // UT_CUSTOMEDIT_H
--- a/vmbx/vmbxcpplugin/tsrc/src/main.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/tsrc/src/main.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -1,22 +1,8 @@
-/*
-* 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"
+#include "ut_actioncustomitem.h"
+#include "ut_customedit.h"
 
 // -----------------------------------------------------------------------------
 // main()
@@ -34,7 +20,8 @@
     pass[0] = argv[0];
     pass[1] = "-o"; 
     pass[2] = "c:\\logs\\vmbx\\ut_vmbxuiengine.txt";
-    int result = QTest::qExec(&tcUiEngine, 3, pass);
+    int result = -1;
+    result = QTest::qExec(&tcUiEngine, 3, pass);
     qDebug("ut_vmbxuiengine result %d", result);
 
     qDebug("ut_vmbxcpplugin");
@@ -43,6 +30,19 @@
     result = QTest::qExec(&tcCpPlugin, 3, pass);
     qDebug("ut_vmbxcpplugin result=%d", result);
     
+    qDebug("ut_actioncustomitem");
+    Ut_ActionCustomItem tcCustom;
+    pass[2] = "c:\\logs\\vmbx\\ut_acttioncustomitem.txt";
+    result = QTest::qExec(&tcCustom, 3, pass);
+    qDebug("ut_actioncustomitem result=%d", result);    
+
+    qDebug("ut_customedit");
+    Ut_CustomEdit tcEdit;
+    pass[2] = "c:\\logs\\vmbx\\ut_customedit.txt";
+    result = QTest::qExec(&tcEdit, 3, pass);
+    qDebug("Ut_CustomEdit result=%d", result);    
+    
+    
     qDebug("main() <");
     return result;
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/tsrc/src/ut_actioncustomitem.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,93 @@
+/*
+* 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:  Implementation of the Ut_vmbxCpPlugin class
+*
+*/
+
+#include <HbDataFormModelItem>
+#include <QFocusEvent>
+#include <HbMainWindow>
+#include <QEvent>
+#include "ut_actioncustomitem.h"
+#include "actioncustomitem.h"
+#include "customedit.h"
+
+void Ut_ActionCustomItem::testNewAndDelete()
+{
+    QGraphicsWidget *qGraphicsWidget = new QGraphicsWidget();
+    QVERIFY(qGraphicsWidget != 0);
+
+    ActionCustomItem *item = new ActionCustomItem(qGraphicsWidget);
+
+    qDebug("item=0x%x", item);
+    QVERIFY(item);    
+    delete item;
+    item = NULL;   
+    qDebug("delete item=0x%x", item);
+   
+    QVERIFY(!item);
+    
+    delete qGraphicsWidget;
+    qGraphicsWidget = NULL;
+}
+
+void Ut_ActionCustomItem::testCreateItem()
+{
+    QGraphicsWidget *qGraphicsWidget = new QGraphicsWidget();
+    QVERIFY(qGraphicsWidget != 0);
+
+    ActionCustomItem *item = new ActionCustomItem(qGraphicsWidget);
+    qDebug("item=0x%x", item);
+    QVERIFY(item);    
+    
+    HbAbstractViewItem *viewItem = item->createItem();
+
+    qDebug("viewItem=0x%x", viewItem);
+    QVERIFY(viewItem);
+    
+    delete viewItem;
+    viewItem = NULL;
+
+    delete item;
+    item = NULL;   
+    qDebug("delete item=0x%x", item);
+   
+    QVERIFY(!item);
+    
+    delete qGraphicsWidget;
+    qGraphicsWidget = NULL;
+}
+
+void Ut_ActionCustomItem::testCanSetModelIndex()
+{
+    QGraphicsWidget *qGraphicsWidget = new QGraphicsWidget();
+    QVERIFY(qGraphicsWidget != 0);
+
+    ActionCustomItem *item = new ActionCustomItem(qGraphicsWidget);
+    qDebug("item=0x%x", item);
+    QVERIFY(item);    
+    
+    QModelIndex index;
+    item->canSetModelIndex(index);
+    
+    delete item;
+    item = NULL;   
+    qDebug("delete item=0x%x", item);
+   
+    QVERIFY(!item);
+    
+    delete qGraphicsWidget;
+    qGraphicsWidget = NULL;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/tsrc/src/ut_customedit.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -0,0 +1,56 @@
+/*
+* 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 <QFocusEvent>
+#include <HbMainWindow>
+#include <QEvent>
+#include "ut_customedit.h"
+#include "customedit.h"
+
+
+
+void Ut_CustomEdit::testFocusInEvent()
+{
+    HbMainWindow *window = new HbMainWindow;
+    QVERIFY(window);
+    
+    QGraphicsWidget *qGraphicsWidget = new QGraphicsWidget();
+    QVERIFY(qGraphicsWidget != 0);
+    CustomEdit *edit = new CustomEdit(qGraphicsWidget);
+    QVERIFY(edit);
+    
+    QFocusEvent *event = new QFocusEvent(QEvent::FocusIn, 
+        Qt::MouseFocusReason);  
+    QVERIFY(event);
+    edit->focusInEvent(event);
+    delete event;
+    event  = NULL;
+    
+    event = new QFocusEvent(QEvent::FocusOut, 
+        Qt::MouseFocusReason);
+    QVERIFY(event);
+    edit->focusInEvent(event);
+    delete event;
+    event = NULL;
+    
+    delete edit;
+    edit = NULL;
+    QVERIFY(!edit);
+    
+    delete qGraphicsWidget;
+    qGraphicsWidget = NULL;
+}
--- a/vmbx/vmbxcpplugin/tsrc/src/ut_vmbxcpplugin.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/tsrc/src/ut_vmbxcpplugin.cpp	Thu Jul 22 16:38:43 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/tsrc/src/ut_vmbxuiengine.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/tsrc/src/ut_vmbxuiengine.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -63,13 +63,13 @@
     QString in("123456");
     QString out("");
     setTestEnv(KErrNone);
-    mUiEngine->setCsVoice1Number(in);
-    mUiEngine->getCsVoice1Number(out);
+    mUiEngine->setCsVoiceNumber(in);
+    mUiEngine->getCsVoiceNumber(out);
     QCOMPARE(in, out);
     
     setTestEnv(KErrNotFound);
-    mUiEngine->setCsVoice1Number(in);
-    mUiEngine->getCsVoice1Number(out);
+    mUiEngine->setCsVoiceNumber(in);
+    mUiEngine->getCsVoiceNumber(out);
     QCOMPARE(in, out);
 }
 
@@ -86,13 +86,13 @@
     QString out("");
 
     setTestEnv(KErrNone);
-    mUiEngine->setCsVideo1Number(in);
-    mUiEngine->getCsVideo1Number(out);
+    mUiEngine->setCsVideoNumber(in);
+    mUiEngine->getCsVideoNumber(out);
     QCOMPARE(in, out);
     
     setTestEnv(KErrNotFound);
-    mUiEngine->setCsVideo1Number(in);
-    mUiEngine->getCsVideo1Number(out);
+    mUiEngine->setCsVideoNumber(in);
+    mUiEngine->getCsVideoNumber(out);
     QCOMPARE(in, out);
 }
 
--- a/vmbx/vmbxcpplugin/tsrc/ut_vmbxcpplugin.pro	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/tsrc/ut_vmbxcpplugin.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -20,6 +20,7 @@
 INCLUDEPATH += .
 CONFIG += hb
 CONFIG += qtestlib
+MOC_DIR = moc
 
 symbian: { 
     TARGET.CAPABILITY = CAP_GENERAL_DLL 
@@ -27,16 +28,19 @@
 
 symbian {
     INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+                   $$MOC_DIR \
                    /epoc32/include/mw/QtTest \
-                  ../../inc\
-                  ./inc
-                  TARGET.EPOCALLOWDLLDATA = 1
+                   ../../inc\
+                   ./inc
+                   TARGET.EPOCALLOWDLLDATA = 1
 LIBS += -lcpframework
 }
 
 # Input
 HEADERS += inc\ut_vmbxuiengine.h\
            inc\ut_vmbxcpplugin.h \
+           inc\ut_actioncustomitem.h\
+           inc\ut_customedit.h \
            ..\inc\vmbxuiengine.h \
            ..\inc\vmbxcpplugin.h \
            ..\inc\vmbxcpgroup.h \
@@ -47,6 +51,8 @@
 SOURCES += src\main.cpp\
            src\ut_vmbxuiengine.cpp\
            src\ut_vmbxcpplugin.cpp \
+           src\ut_actioncustomitem.cpp \
+           src\ut_customedit.cpp \
            src\ut_dummyvoicemailbox.cpp\
            src\ut_dummyvoicemailboxentry.cpp\
            ..\src\vmbxuiengine.cpp \
--- a/vmbx/vmbxcpplugin/vmbxcpplugin.pri	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxcpplugin/vmbxcpplugin.pri	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/mvmbxuihandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/mvmbxuiutilities.h	Thu Jul 22 16:38:43 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/vmbxcsvideoengine.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxcsvideoengine.h	Thu Jul 22 16:38:43 2010 +0100
@@ -63,8 +63,12 @@
      * @see CVmbxEntryBase::SaveL
      *
      * @param aEntry Reference to CVoiceMailboxEntry
+     * @param aShowNotesAllowed Provision mode is used to decide whether show
+     *          saved notification UI dialog. If aShowNotesAllowed is EFalse, 
+     *          saved notification UI dialog will not show. 
      */
-    void SaveL( const CVoiceMailboxEntry& aEntry );
+    void SaveL( const CVoiceMailboxEntry& aEntry,
+                TBool aShowNotesAllowed );
 
     /**
      * To save mailbox Provisioned entry value
--- a/vmbx/vmbxengine/inc/vmbxcsvoiceengine.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxcsvoiceengine.h	Thu Jul 22 16:38:43 2010 +0100
@@ -63,8 +63,12 @@
      * @see CVmbxEntryBase::SaveL
      *
      * @param aEntry 
+     * @param aShowNotesAllowed Provision mode is used to decide whether show
+     *          saved notification UI dialog. If aShowNotesAllowed is EFalse,
+     *          saved notification UI dialog will not show. 
      */
-    void SaveL( const CVoiceMailboxEntry& aEntry );
+    void SaveL( const CVoiceMailboxEntry& aEntry, 
+                TBool aShowNotesAllowed );
 
     /**
      * To save mailbox Provisioned entry value
@@ -113,15 +117,23 @@
      * Queries where to save and then saves
      *
      * @param in aEntry Entry data
+     * @param aShowNotesAllowed Provision mode is used to decide whether show
+     *          saved notification UI dialog. If aShowNotesAllowed is EFalse,
+     *          saved notification UI dialog will not show. 
      */
-    void SaveEntryToPhoneL( const CVoiceMailboxEntry& aEntry );
+    void SaveEntryToPhoneL( const CVoiceMailboxEntry& aEntry,
+                            TBool aShowNotesAllowed );
 
     /**
      * For saving to place that user selects
      *
      * @param in aEntry Entry data
+     * @param aShowNotesAllowed Provision mode is used to decide whether show
+     *          saved notification UI dialog. If aShowNotesAllowed is EFalse,
+     *          saved notification UI dialog will not show. 
      */
-    void SaveEntryToSimL( const CVoiceMailboxEntry& aEntry );
+    void SaveEntryToSimL( const CVoiceMailboxEntry& aEntry, 
+                          TBool aShowNotesAllowed );
 
     /**
      * Returns Sim writable or not
--- a/vmbx/vmbxengine/inc/vmbxemergencycall.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxemergencycall.h	Thu Jul 22 16:38:43 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/vmbxenginebase.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxenginebase.h	Thu Jul 22 16:38:43 2010 +0100
@@ -64,8 +64,12 @@
      * Leave with Symbian OS error code
      *
      * @param aEntry Entry data
+     * @param aShowNotesAllowed Provision mode is used to decide whether show
+     *          saved notification UI dialog. If aShowNotesAllowed is EFalse,
+     *          saved notification UI dialog will not show. 
      */
-    virtual void SaveL( const CVoiceMailboxEntry& aEntry ) = 0;
+    virtual void SaveL( const CVoiceMailboxEntry& aEntry,
+                        TBool aShowNotesAllowed ) = 0;
 
     /**
      * To save mailbox Provisioned entry value
--- a/vmbx/vmbxengine/inc/vmbxpbkstore.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxpbkstore.h	Thu Jul 22 16:38:43 2010 +0100
@@ -138,12 +138,10 @@
 
     /**
      * Retrieves the Mailbox numbers identifier information
-     * @param in aAlsLine curent als line
      * @param out aInfo information from RPhonebookStore
      * @retuns KErrNone if succesful
      **/
-    TInt GetMbdnInfo( const TVmbxAlsLineType aAlsLine,
-            RMobilePhone::TMobilePhoneVoicemailIdsV3& aInfo );
+    TInt GetMbdnInfo( RMobilePhone::TMobilePhoneVoicemailIdsV3& aInfo );
 
 
     /**
@@ -217,12 +215,6 @@
     TVmbxSimPhonebookType iPhoneBookType;
 
     /**
-     * Alpha string which is read from the SIM card
-     * Own.
-     */
-     HBufC* iAlphaStringFromSIM;
-
-    /**
      * CActiveSchedulerWait
      * Own.
      */
--- a/vmbx/vmbxengine/inc/vmbxqtuihandler.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxqtuihandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxuihandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxuiutilities.h	Thu Jul 22 16:38:43 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/vmbxvoipengine.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/vmbxvoipengine.h	Thu Jul 22 16:38:43 2010 +0100
@@ -69,8 +69,12 @@
      *
      * @see CVmbxEntryBase::SaveL
      * @param aEntry Reference to CVoiceMailboxEntry
+     * @param aShowNotesAllowed Provision mode is used to decide whether show
+     *          saved notification UI dialog. If aShowNotesAllowed is EFalse,
+     *          saved notification UI dialog will not show. 
      */
-    void SaveL( const CVoiceMailboxEntry& aEntry );
+    void SaveL( const CVoiceMailboxEntry& aEntry,
+                TBool aShowNotesAllowed );
 
     /**
      * To save mailbox Provisioned entry value
--- a/vmbx/vmbxengine/inc/voicemailboxprivatecrkeys.h	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/inc/voicemailboxprivatecrkeys.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/cvoicemailboxentry.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/dialogwaiter.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxcenrephandler.cpp	Thu Jul 22 16:38:43 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/vmbxcsvideoengine.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxcsvideoengine.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -111,7 +111,8 @@
 // Saves voice mailbox number
 // ---------------------------------------------------------------------------
 //
-void CVmbxCsVideoEngine::SaveL( const CVoiceMailboxEntry& aEntry )
+void CVmbxCsVideoEngine::SaveL( const CVoiceMailboxEntry& aEntry,
+                                TBool aShowNotesAllowed )
     {
     VMBLOGSTRING( "VMBX: CVmbxCsVideoEngine::SaveL =>" );
 
@@ -132,7 +133,7 @@
     User::LeaveIfError( result );
 
     // show note
-    if ( KErrNone == result )
+    if ( KErrNone == result && aShowNotesAllowed )
         {
         iProvider.VmbxUiUtilities().ShowInformationdNoteL( EVideoNumberSaved );
         }
@@ -149,7 +150,7 @@
                 const CVoiceMailboxEntry& aEntry )
     {
     VMBLOGSTRING( "VMBX: CVmbxCsVideoEngine::SaveProvisionedEntryL =>" );
-    SaveL( aEntry );
+    SaveL( aEntry, EFalse );
     VMBLOGSTRING( "VMBX: CVmbxCsVideoEngine::SaveProvisionedEntryL <=" );
     }
 
--- a/vmbx/vmbxengine/src/vmbxcsvoiceengine.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxcsvoiceengine.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -165,7 +165,8 @@
 // Saves voice mailbox number
 // ----------------------------------------------------------------------------
 //
-void CVmbxCsVoiceEngine::SaveL( const CVoiceMailboxEntry& aEntry )
+void CVmbxCsVoiceEngine::SaveL( const CVoiceMailboxEntry& aEntry,
+                                TBool aShowNotesAllowed )
     {
     VMBLOGSTRING( "VMBX: CVmbxCsVoiceEngine::SaveL =>" );
 
@@ -190,12 +191,12 @@
         if ( EVmbxSimMemory == storeType && iSimHandler )
             {
             // Save to sim
-            SaveEntryToSimL( aEntry );
+            SaveEntryToSimL( aEntry, aShowNotesAllowed );
             }
         else
             {
             // Save to cenrep
-            SaveEntryToPhoneL( aEntry );
+            SaveEntryToPhoneL( aEntry, aShowNotesAllowed );
             }     
         }
     else
@@ -203,7 +204,7 @@
         // sim files not exist, its may need by forcing save, eg, OMA.
         if ( !iSimHandler )
             {
-            SaveEntryToPhoneL( aEntry );
+            SaveEntryToPhoneL( aEntry, aShowNotesAllowed );
             VMBLOGSTRING( "VMBX: CVmbxCsVoiceEngine::SaveL: \
                             sim files not exist then save to phone" );
             }
@@ -227,7 +228,7 @@
                         const CVoiceMailboxEntry& aEntry )
     {
     VMBLOGSTRING( "VMBX: CVmbxCsVoiceEngine::SaveProvisionedEntryL =>" );
-    SaveL( aEntry );
+    SaveL( aEntry, EFalse );
     VMBLOGSTRING( "VMBX: CVmbxCsVoiceEngine::SaveProvisionedEntryL <=" );
     }
 
@@ -264,14 +265,15 @@
 // Saves number to storage that user selects from the offered list
 // ----------------------------------------------------------------------------
 //
-void CVmbxCsVoiceEngine::SaveEntryToPhoneL( const CVoiceMailboxEntry& aEntry )
+void CVmbxCsVoiceEngine::SaveEntryToPhoneL( const CVoiceMailboxEntry& aEntry,
+                                            TBool aShowNotesAllowed )
     {
     VMBLOGSTRING( "VMBX: CVmbxCsVoiceEngine::SaveEntryToPhoneL: =>" );
     TInt result( KErrArgument );
 
     result = iProvider.VmbxCenRepHandler().Save( aEntry );
 
-    if ( KErrNone == result )
+    if ( KErrNone == result && aShowNotesAllowed )
         {
         iProvider.VmbxUiUtilities().ShowInformationdNoteL( ESavedToPhoneMemory );
         }
@@ -285,7 +287,8 @@
 // For saving to place that user selects
 // ----------------------------------------------------------------------------
 //
-void CVmbxCsVoiceEngine::SaveEntryToSimL( const CVoiceMailboxEntry& aEntry )
+void CVmbxCsVoiceEngine::SaveEntryToSimL( const CVoiceMailboxEntry& aEntry,
+                                          TBool aShowNotesAllowed )
     {
     VMBLOGSTRING( "VMBX: CVmbxCsVoiceEngine::SaveEntryToSimL: =>" );
     TInt result( KErrGeneral );
@@ -301,7 +304,7 @@
     if ( iSimHandler )
         {
         result = iSimHandler->Save( aEntry );
-       if ( KErrNone == result )
+       if ( KErrNone == result && aShowNotesAllowed )
             {
             iProvider.VmbxUiUtilities().ShowInformationdNoteL( ESavedToSimMemory );
             }
--- a/vmbx/vmbxengine/src/vmbxemergencycall.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxemergencycall.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxpbkstore.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -59,7 +59,6 @@
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::~CVmbxPbkStore =>" );
     Cancel();
     iPhoneBook.Close();
-    delete iAlphaStringFromSIM;
     delete iWait;
     delete iETelConnection;
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::~CVmbxPbkStore <=" );
@@ -177,7 +176,21 @@
         if ( KErrNone == newErr )
             {
             // get als line info
-            simEntry->SetVmbxAlsLineType( VmbxUtilities::AlsLine() );
+            TVmbxAlsLineType alsLine = VmbxUtilities::AlsLine();
+            simEntry->SetVmbxAlsLineType( alsLine );
+            // ALS line off
+            if ( IsSimFileExisting(EMBDNPhoneBook) && (EVmbxAlsLineDefault == alsLine) )
+                {
+                // ALS line on and 6f17 exist 
+                // just check 6f17 file write access
+                iPhoneBookType = EMBDNPhoneBook;
+                }
+            else
+                {
+                // ALS line on, only should write to 6fc7; ALS off, 6f17 file inexist
+                //  check 6fc7 file write access
+                iPhoneBookType = EVMBXPhoneBook;
+                }
             simEntry->SetVoiceMailboxType( EVmbxVoice );
             simEntry->SetServiceId( KVmbxServiceVoice );
             TRAPD( err, SimReadL( *simEntry ) );
@@ -196,8 +209,8 @@
                     {
                     result = ETrue;
                     }
-                 }
-           }
+                }
+            }
         delete simEntry;
         simEntry = NULL;
         }
@@ -251,24 +264,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 )
@@ -276,7 +285,7 @@
             if ( iPhoneBookType == EMBDNPhoneBook )
                 {
                 RMobilePhone::TMobilePhoneVoicemailIdsV3 mbdnInfo;
-                result = GetMbdnInfo( VmbxUtilities::AlsLine(), mbdnInfo );
+                result = GetMbdnInfo( mbdnInfo );
 
                 if ( KErrNone == result )
                     {
@@ -329,8 +338,7 @@
 // CVmbxPbkStore::GetMbdnInfo
 // ---------------------------------------------------------------------------
 //
-TInt CVmbxPbkStore::GetMbdnInfo( const TVmbxAlsLineType aAlsLine,
-            RMobilePhone::TMobilePhoneVoicemailIdsV3& aInfo )
+TInt CVmbxPbkStore::GetMbdnInfo( RMobilePhone::TMobilePhoneVoicemailIdsV3& aInfo )
     {
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::GetMbdnInfo =>" );
     TInt result( KErrInUse );
@@ -349,7 +357,7 @@
         SetActive();
         iWait->Start();
 
-        VMBLOGSTRING2( "VMBX: CVmbxPbkStore::GetMbdnInfo: iVoice value %I",
+        VMBLOGSTRING2( "VMBX: CVmbxPbkStore::GetMbdnInfo: iVoice original value %I",
                                                              aInfo.iVoice );
         if ( iStatus.Int() == KErrNotFound )
             {
@@ -361,12 +369,12 @@
             {
             result = iStatus.Int();
             }
-
-        if ( EVmbxAlsLineDefault == aAlsLine )
+        TVmbxAlsLineType alsLine = VmbxUtilities::AlsLine();
+        if ( EVmbxAlsLineDefault == alsLine )
             {
             aInfo.iVoice =  EVmbxAlsLine1;
             }
-        VMBLOGSTRING2( "VMBX: CVmbxPbkStore::GetMbdnInfo: aInfo.iVoice %I",
+        VMBLOGSTRING2( "VMBX: CVmbxPbkStore::GetMbdnInfo: iVoice last value %I",
             aInfo.iVoice );
         }
     VMBLOGSTRING2( "VMBX: CVmbxPbkStore::GetMbdnInfo: result %I<=",
@@ -477,13 +485,11 @@
     TInt numEntries( 1 );
     TBuf8<KVmbxPhonebookBufferSize> pbData;
 
-    delete iAlphaStringFromSIM;
-    iAlphaStringFromSIM = NULL;
     TInt result( KErrInUse );
     if ( iPhoneBookType == EMBDNPhoneBook )
         {
         RMobilePhone::TMobilePhoneVoicemailIdsV3 mbdnInfo;
-        result = GetMbdnInfo( EVmbxAlsLine1, mbdnInfo );
+        result = GetMbdnInfo( mbdnInfo );
         if ( KErrNone == result )
             {
             VMBLOGSTRING( "start MBDN PhoneBook read" );
@@ -509,7 +515,7 @@
             {
             activeAlsLine = EVmbxAlsLine1;
             }
-         if( !IsActive() && !iWait->IsStarted() )
+        if( !IsActive() && !iWait->IsStarted() )
             {
             result = KErrNone;
             // read vmbx number from 6f17 file
@@ -548,8 +554,6 @@
     {
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::ParseDataL =>" );
     TInt result( KErrNotFound );
-    delete iAlphaStringFromSIM;
-    iAlphaStringFromSIM = NULL;
 
     VMBLOGSTRING2( "CVmbxPbkStore::ParseDataL Lengh = %d", aPbData.Length() );
 
@@ -618,6 +622,8 @@
     VMBLOGSTRING( "VMBX: CVmbxPbkStore::ReadPbkDataL =>" );
 
     TInt result( KErrNone );
+    TInt next( KErrNone );
+    TBool found( EFalse );
     TUint8 tagValue( 0 );
     CPhoneBookBuffer::TPhBkTagType dataType(
                                           CPhoneBookBuffer::EPhBkTypeNoData );
@@ -625,7 +631,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 +641,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 +682,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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxqtuihandler.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -18,9 +18,8 @@
 
 // qt
 #include <QString>
+#include <QRegExp>
 #include <QCoreApplication>
-#include <QRegExp>
-
 #include <hbinputdialog.h>
 #include <hblabel.h>
 #include <hbaction.h>
@@ -30,6 +29,7 @@
 #include <hbinputstandardfilters.h>
 #include <hbinputfilter.h> 
 #include <hblistwidget.h>
+#include <hbnotificationdialog.h>
 #include <dialogwaiter.h>
 
 #include <cvoicemailboxentry.h>
@@ -86,7 +86,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 +94,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 +121,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 +137,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 +162,20 @@
     } else {
         aResult = KErrCancel;
     }
+    
+    disconnect(iQueryDialog->lineEdit(), SIGNAL(textChanged(QString)),
+            this, SLOT(updatePrimaryAction(QString))); 
+    
+
+    // TODO Delete Operation will case panic on EM
+    
+#ifdef __WINS__
+    iQueryDialog->close();
+#else
     delete iQueryDialog;
     iQueryDialog = 0;
+#endif // __WINS__
+
     VMBLOGSTRING2("VmbxQtUiHandler::showVmbxQueryDialog aResult = %d", aResult)
     VMBLOGSTRING("VmbxQtUiHandler::showVmbxQueryDialog Exit")
 }
@@ -182,10 +207,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 +234,14 @@
     VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog: aType%d", aType)
     VMBLOGSTRING2("VmbxQtUiHandler::showDefineSelectionDialog: aResult%d", \
         aResult)
+        
+#ifdef __WINS__
+    defineListDialog->close();
+#else
     delete defineListDialog;
     defineListDialog = 0;
+#endif // __WINS__  
+
     VMBLOGSTRING("VmbxQtUiHandler::showDefineSelectionDialog Exit")
 }
 
@@ -280,10 +311,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;
@@ -306,8 +337,13 @@
         params.iType)
     VMBLOGSTRING2("VmbxQtUiHandler::showCallSelectionDialog: result%d",
         result)
+    
+#ifdef __WINS__
+    callListDialog->close();
+#else
     delete callListDialog;
     callListDialog = 0;
+#endif // __WINS__  
     VMBLOGSTRING("VmbxQtUiHandler::showCallSelectionDialog Exit")
 }
 
@@ -351,19 +387,7 @@
         VMBLOGSTRING("VmbxQtUiHandler::ShowInformationNote default")
         break;
     }
-    HbMessageBox *msgBox = 0;
-    if (EInvalidNumber == aType) {
-        msgBox = new HbMessageBox(HbMessageBox::MessageTypeWarning);   
-    } else {
-        msgBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
-    }
-    msgBox->setText(noteText);
-    msgBox->removeAction(msgBox->primaryAction());
-    DialogWaiter waiter;
-    msgBox->open(&waiter, SLOT(done(HbAction *)));
-    waiter.wait();
-    delete msgBox;
-    msgBox = 0;
+    HbNotificationDialog::launchDialog(noteText);
     VMBLOGSTRING("VmbxQtUiHandler::showInformationNote Exit")
 }
 
@@ -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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxuihandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxuiutilities.cpp	Thu Jul 22 16:38:43 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,7 +88,28 @@
         const TVmbxQueryMode & aMode, TDes& aNumber )
     {
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL =>" );
-    VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryL: aNumber =%S ", &aNumber );
+    VMBLOGSTRING3( "VMBX: CVmbxUiUtilities::ShowQueryL: aMode=%d aNumber=%S ",
+                    aMode, &aNumber );
+    if ( !iUiHandler ) 
+        {
+        VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL no qt env Exit" )
+        User::Leave(KErrNotSupported);
+        }
+    
+    // Show "define mailbox number" notification at define mode
+    if (EVmbxDefineMode == aMode) {
+        switch( aType ) {
+        case EVmbxVoice:
+            ShowInformationdNoteL(EDefineVoiceNumber);
+            break;
+        case EVmbxVideo:
+            ShowInformationdNoteL(EDefineVideoNumber);
+            break;
+        default:
+            break;
+        }
+    }
+    
     TInt result( KErrNone );
     FOREVER
         {
@@ -122,13 +143,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 +279,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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxutilities.cpp	Thu Jul 22 16:38:43 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/vmbxvoipengine.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/vmbxvoipengine.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -143,7 +143,8 @@
 // Saves voice mailbox number
 // ---------------------------------------------------------------------------
 //
-void CVmbxVoIpEngine::SaveL( const CVoiceMailboxEntry& /*aEntry*/ )
+void CVmbxVoIpEngine::SaveL( const CVoiceMailboxEntry& /*aEntry*/,
+                             TBool /*aShowNotesAllowed*/ )
     {
     VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::SaveL <=>" );
     User::Leave( KErrNotSupported );
--- a/vmbx/vmbxengine/src/voicemailboximpl.cpp	Tue Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/src/voicemailboximpl.cpp	Thu Jul 22 16:38:43 2010 +0100
@@ -31,9 +31,7 @@
 #include "voicemailboximpl.h"
 
 // phone application uid
-//const TInt KPhoneApplicationUid          = 0x100058B3;
-// Temp! using contropannel vmbxcp plugin uid for testing
-const TInt KPhoneApplicationUid          = 0x20025FD9;
+const TInt KPhoneApplicationUid          = 0x100058B3;
 
 // ============================ MEMBER FUNCTIONS =============================
 
@@ -402,7 +400,7 @@
     CleanupStack::PushL( vmbxBox );
     if ( vmbxBox->CheckConfiguration( params, EVmbxChangeNbrAllowedOnUi ) )
         {
-        vmbxBox->SaveL( aEntry );
+        vmbxBox->SaveL( aEntry, ETrue );
         }
     else
         {
@@ -544,7 +542,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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/inc/ut_pbkstore.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/inc/ut_simhandler.h	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/cenrep_mock.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/etel_mock.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/main.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/mpbutil_mock.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/qtuihandler_mock.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/ut_pbkstore.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/tsrc/ut_vmbxengine/src/ut_simhandler.cpp	Thu Jul 22 16:38:43 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 Jun 15 11:45:07 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 Jun 15 11:45:07 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 Jun 15 11:45:07 2010 +0100
+++ b/vmbx/vmbxengine/vmbxengine.pro	Thu Jul 22 16:38:43 2010 +0100
@@ -33,16 +33,17 @@
                    ../../inc \
                    ./inc
         
-    LIBS += -lcentralrepository.dll \
-            -lcenrepnotifhandler.dll \
-            -lfeatmgr.dll \
-            -lphoneclient.dll \
-            -lsssettings.dll \
-            -letelmm.dll \
-            -letel.dll \
-            -lsatclient.dll \
-            -lserviceprovidersettings.dll \
-            -lFlogger.dll
+    LIBS += -lcentralrepository \
+            -lcenrepnotifhandler \
+            -lfeatmgr \
+            -lphoneclient \
+            -lsssettings \
+            -letelmm \
+            -letel \
+            -lsatclient \
+            -lserviceprovidersettings \
+            -lefsrv \
+            -lFlogger
 
     HEADERS += inc/mvmbxcenrephandler.h \
                inc/mvmbxcenrepobserver.h \
@@ -76,7 +77,6 @@
                inc/vmsettingsuiiconfileprovider.h \
                inc/vmspshandler.h \
                inc/voicemailboxdefsinternal.h \
-               inc/voicemailboxdomaincrkeys.h \
                inc/voicemailboximpl.h \
                inc/voicemailboxprivatecrkeys.h \
                inc/dialogwaiter.h
@@ -115,10 +115,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 +127,3 @@
 TRANSLATIONS = vmbx.ts
 
 }
-