Revision: 201025
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:53:02 +0300
changeset 32 1f002146abb4
parent 31 a2467631ae02
child 33 8d5d7fcf9b59
child 34 8ed2e80af9dd
child 39 cee7e9e0906c
Revision: 201025 Kit: 2010127
cbs/CbsServer/ClientInc/CbsCommon.h
cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h
cbs/CbsServer/ClientSrc/ccbsmessageclient.cpp
cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp
cbs/CbsServer/McnClientSrc/CMcn.cpp
cbs/CbsServer/McnClientSrc/CMcnTopicArray.cpp
cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp
cbs/CbsServer/McnClientSrc/Rcbsmcnsession.cpp
cbs/CbsServer/McnClientSrc/Rmcnsubsession.cpp
cbs/CbsServer/ServerInc/CCbsMcnSession.h
cbs/CbsServer/ServerInc/CCbsMessage.h
cbs/CbsServer/ServerInc/CCbsRecEtel.h
cellular/psuinotes/bwins/psuinotesu.def
cellular/psuinotes/eabi/psuinotesu.def
cellular/psuinotes/inc/psuilogging.h
cellular/psuinotes/inc/psuiutils.h
cellular/psuinotes/psuinotes.pro
cellular/psuinotes/rom/psuinotes.iby
cellular/psuinotes/src/psuidivertnotehandler.cpp
cellular/psuinotes/src/psuilocalisation.cpp
cellular/psuinotes/src/psuinotes.cpp
cellular/psuinotes/src/psuiutils.cpp
cellular/psuinotes/src/psuiwaitingnotehandler.cpp
cellular/psuinotes/tsrc/mocks/mock_psuilocalisation.cpp
cellular/psuinotes/tsrc/mocks/mock_psuiutils.cpp
cellular/psuinotes/tsrc/mocks/mock_qobject.cpp
cellular/psuinotes/tsrc/mocks/mock_qtranslator.cpp
cellular/psuinotes/tsrc/mocks/mock_xqsettingskey.cpp
cellular/psuinotes/tsrc/mocks/mock_xqsettingsmanager.cpp
cellular/psuinotes/tsrc/mocks/mock_xqsysinfo.cpp
cellular/psuinotes/tsrc/run_auto_tests_qt.bat
cellular/psuinotes/tsrc/ut_psuilocalisation/qtestmains60.h
cellular/psuinotes/tsrc/ut_psuilocalisation/ut_psuilocalisation.cpp
cellular/psuinotes/tsrc/ut_psuilocalisation/ut_psuilocalisation.h
cellular/psuinotes/tsrc/ut_psuilocalisation/ut_psuilocalisation.pro
cellular/psuinotes/tsrc/ut_psuinotes/qtestmains60ui.h
cellular/psuinotes/tsrc/ut_psuinotes/ut_psuinotes.cpp
cellular/psuinotes/tsrc/ut_psuinotes/ut_psuinotes.h
cellular/psuinotes/tsrc/ut_psuinotes/ut_psuinotes.pro
cellular/psuinotes/tsrc/ut_psuiutils/qtestmains60.h
cellular/psuinotes/tsrc/ut_psuiutils/ut_psuiutils.cpp
cellular/psuinotes/tsrc/ut_psuiutils/ut_psuiutils.h
cellular/psuinotes/tsrc/ut_psuiutils/ut_psuiutils.pro
cellular/telephonysettings/src/PsetNetwork.cpp
cellular/telephonysettings/xqbindings/psetwrapper/bwins/psetwrapperu.def
cellular/telephonysettings/xqbindings/psetwrapper/eabi/psetwrapperu.def
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallwaitingwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.cpp
cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.h
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcsp.cpp
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.cpp
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.h
cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.pro
convergedcallengine/spsettings/backuphelper/group/spsbackuphelper.mmp
convergedcallengine/spsettings/backuphelper/inc/spsbackuphelpermonitor.h
convergedcallengine/spsettings/backuphelper/src/spsbackuphelpermonitor.cpp
networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagCbEngine.h
networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagLcEngine.h
phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp
phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp
phoneclientserver/phoneclient/conf/telephonyservices.confml
phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp
phonesrv.pro
phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h
phonesrv_plat/cbs_message_api/inc/ccbsmessageclient.h
phonesrv_plat/dialpad_api/inc/dialpad.h
phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h
phonesrv_plat/group/bld.inf
phonesrv_plat/phone_settings_api/inc/MPsetNetworkSelect.h
phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h
phonesrv_plat/phone_settings_api/inc/psetcallwaitingwrapper.h
phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h
phonesrv_plat/phone_settings_ui_notes_api/group/bld.inf
phonesrv_plat/phone_settings_ui_notes_api/inc/psuidivertnotehandler.h
phonesrv_plat/phone_settings_ui_notes_api/inc/psuilocalisation.h
phonesrv_plat/phone_settings_ui_notes_api/inc/psuinotes.h
phonesrv_plat/phone_settings_ui_notes_api/inc/psuiwaitingnotehandler.h
phonesrv_plat/phone_settings_ui_notes_api/phone_settings_ui_notes_api.metaxml
satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp
satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h
satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp
satengine/satserver/Commands/SetUpCallCmd/inc/csetupcalldtmfsender.h
satengine/satserver/Commands/SetUpCallCmd/src/csetupcalldtmfsender.cpp
telutils/dialpad/bwins/dialpadu.def
telutils/dialpad/dialpad.pro
telutils/dialpad/dialpad.qrc
telutils/dialpad/eabi/dialpadu.def
telutils/dialpad/inc/dialpadbluetootheventfilter.h
telutils/dialpad/inc/dialpadbutton.h
telutils/dialpad/inc/dialpademergencycalleventfilter.h
telutils/dialpad/inc/dialpadhasheventfilter.h
telutils/dialpad/inc/dialpadmailboxeventfilterbase.h
telutils/dialpad/inc/dialpadsymbianwrapper.h
telutils/dialpad/inc/dialpadsymbianwrapper_p.h
telutils/dialpad/resources/dialpad.css
telutils/dialpad/resources/dialpad.dialpadbutton.widgetml
telutils/dialpad/resources/dialpad_color.css
telutils/dialpad/src/dialpad.cpp
telutils/dialpad/src/dialpadbluetootheventfilter.cpp
telutils/dialpad/src/dialpadbutton.cpp
telutils/dialpad/src/dialpademergencycalleventfilter.cpp
telutils/dialpad/src/dialpadhasheventfilter.cpp
telutils/dialpad/src/dialpadinputfield.cpp
telutils/dialpad/src/dialpadkeyhandler.cpp
telutils/dialpad/src/dialpadkeypad.cpp
telutils/dialpad/src/dialpadmailboxeventfilterbase.cpp
telutils/dialpad/src/dialpadsymbianwrapper.cpp
telutils/dialpad/src/dialpadsymbianwrapper_p.cpp
telutils/dialpad/src/dialpadvideomailboxeventfilter.cpp
telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp
telutils/dialpad/tsrc/unit/runall.cmd
telutils/dialpad/tsrc/unit/shared/mock_cenrep.cpp
telutils/dialpad/tsrc/unit/shared/mock_centralrepository.h
telutils/dialpad/tsrc/unit/shared/mock_cvoicemailbox.cpp
telutils/dialpad/tsrc/unit/shared/mock_dialpadhasheventfilter.cpp
telutils/dialpad/tsrc/unit/shared/mock_hblineedit.cpp
telutils/dialpad/tsrc/unit/unit.pro
telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp
telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/hblineedit.h
telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.cpp
telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.h
telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.pro
telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.cpp
telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.pro
telutils/keysequencerecognitionservice/inc/keysequencerecognitionservicedefs.h
telutils/keysequencerecognitionservice/inc/simcontrolkeysequencehandler.h
telutils/keysequencerecognitionservice/src/main.cpp
telutils/keysequencerecognitionservice/src/manufacturerkeysequencehandler.cpp
telutils/keysequencerecognitionservice/src/simcontrolkeysequencehandler.cpp
telutils/keysequencerecognitionservice/tsrc/shared/mock_hbdevicemessagebox.cpp
telutils/keysequencerecognitionservice/tsrc/shared/mock_secui.cpp
telutils/keysequencerecognitionservice/tsrc/shared/mock_simcontrolkeysequencehandler.cpp
telutils/keysequencerecognitionservice/tsrc/shared/mock_xqservicerequest.cpp
telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprov.pro
telutils/keysequencerecognitionservice/tsrc/ut_manufacturerkeysequencehandler/ut_manufacturerkeysequencehandler.cpp
telutils/keysequencerecognitionservice/tsrc/ut_simcontrolkeysecuencehandler/ut_simcontrolkeysequencehandler.cpp
vmbx/vmbxcpplugin/src/actioncustomitem.cpp
vmbx/vmbxcpplugin/tsrc/inc/ut_actioncustomitem.h
vmbx/vmbxcpplugin/tsrc/inc/ut_customedit.h
vmbx/vmbxcpplugin/tsrc/src/main.cpp
vmbx/vmbxcpplugin/tsrc/src/ut_actioncustomitem.cpp
vmbx/vmbxcpplugin/tsrc/src/ut_customedit.cpp
vmbx/vmbxcpplugin/tsrc/src/ut_vmbxuiengine.cpp
vmbx/vmbxcpplugin/tsrc/ut_vmbxcpplugin.pro
vmbx/vmbxengine/conf/CI_voicemailbox.confml
vmbx/vmbxengine/inc/vmbxcsvideoengine.h
vmbx/vmbxengine/inc/vmbxcsvoiceengine.h
vmbx/vmbxengine/inc/vmbxenginebase.h
vmbx/vmbxengine/inc/vmbxvoipengine.h
vmbx/vmbxengine/src/vmbxcsvideoengine.cpp
vmbx/vmbxengine/src/vmbxcsvoiceengine.cpp
vmbx/vmbxengine/src/vmbxpbkstore.cpp
vmbx/vmbxengine/src/vmbxuiutilities.cpp
vmbx/vmbxengine/src/vmbxvoipengine.cpp
vmbx/vmbxengine/src/voicemailboximpl.cpp
--- a/cbs/CbsServer/ClientInc/CbsCommon.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/ClientInc/CbsCommon.h	Tue Jul 06 14:53:02 2010 +0300
@@ -24,7 +24,7 @@
 //  INCLUDES
 #include <e32base.h>
 #include <s32std.h>
-#include <CbsCommonTypes.h>
+#include <cbscommontypes.h>
 
 // CONSTANTS
 
--- a/cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/ClientSrc/ccbsmessageclient.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -17,7 +17,7 @@
 
 
 // INCLUDE FILES
-#include "CCbsMessageClient.h"
+#include <ccbsmessageclient.h>
 #include "ccbsmessageclientimpl.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
--- a/cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/McnClientSrc/CMcn.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/McnClientSrc/CMcnTopicArray.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 
-#include "CMcnTopicArray.h"
+#include <cmcntopicarray.h>
 
 // CONSTANTS
 
--- a/cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/McnClientSrc/Rcbsmcnsession.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/McnClientSrc/Rmcnsubsession.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/ServerInc/CCbsMcnSession.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/ServerInc/CCbsMessage.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cbs/CbsServer/ServerInc/CCbsRecEtel.h	Tue Jul 06 14:53:02 2010 +0300
@@ -21,7 +21,7 @@
 
 
 //  INCLUDES
-#include "CMcn.h"
+#include <cmcn.h>
 #include "MCbsEtelMessaging.h"
 
 		/*****************************************************
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/psuinotes/bwins/psuinotesu.def	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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
+
--- a/cellular/telephonysettings/src/PsetNetwork.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/src/PsetNetwork.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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/psetwrapper/bwins/psetwrapperu.def	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/bwins/psetwrapperu.def	Tue Jul 06 14:53:02 2010 +0300
@@ -7,125 +7,128 @@
 	?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 *)
-	?callDivertingWrapper@PSetWrapper@@QAEAAVPSetCallDivertingWrapper@@XZ @ 9 NONAME ; class PSetCallDivertingWrapper & PSetWrapper::callDivertingWrapper(void)
-	?cliInformation@PSetCliWrapper@@IAEXABW4PsCallLineIdentity@@@Z @ 10 NONAME ; void PSetCliWrapper::cliInformation(enum PsCallLineIdentity const &)
-	?handleDivertingError@PSetCallDivertingWrapper@@IAEXH@Z @ 11 NONAME ; void PSetCallDivertingWrapper::handleDivertingError(int)
-	?cancelRequest@PSetNetworkWrapper@@QAEXXZ @ 12 NONAME ; void PSetNetworkWrapper::cancelRequest(void)
-	?qt_metacast@PSetCallBarringWrapper@@UAEPAXPBD@Z @ 13 NONAME ; void * PSetCallBarringWrapper::qt_metacast(char const *)
-	?staticMetaObject@PSetCallBarringWrapper@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const PSetCallBarringWrapper::staticMetaObject
-	??0PSetCallDivertingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 15 NONAME ; PSetCallDivertingWrapper::PSetCallDivertingWrapper(class CPsetContainer &, class QObject *)
-	?metaObject@PSetCliWrapper@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * PSetCliWrapper::metaObject(void) const
-	?tr@PSetCallWaitingWrapper@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString PSetCallWaitingWrapper::tr(char const *, char const *)
-	?getNetworkAccessMode@PSetNetworkWrapper@@QBEXXZ @ 18 NONAME ; void PSetNetworkWrapper::getNetworkAccessMode(void) const
-	?callWaitingWrapper@PSetWrapper@@QAEAAVPSetCallWaitingWrapper@@XZ @ 19 NONAME ; class PSetCallWaitingWrapper & PSetWrapper::callWaitingWrapper(void)
-	?handleCnapStatus@PSetCliWrapper@@IAEXH@Z @ 20 NONAME ; void PSetCliWrapper::handleCnapStatus(int)
-	?availableNetworksGot@PSetNetworkWrapper@@IAEXAAV?$QList@PAUNetworkInfo@PSetNetworkWrapper@@@@@Z @ 21 NONAME ; void PSetNetworkWrapper::availableNetworksGot(class QList<struct PSetNetworkWrapper::NetworkInfo *> &)
-	?handleCallWaitingChanged@PSetCallWaitingWrapper@@IAEXW4PsCallWaitingCommand@1@H@Z @ 22 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingChanged(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
-	?metaObject@PSetCallDivertingWrapper@@UBEPBUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const * PSetCallDivertingWrapper::metaObject(void) const
-	?cancelProcess@PSetCallDivertingWrapper@@QAEXXZ @ 24 NONAME ; void PSetCallDivertingWrapper::cancelProcess(void)
-	?trUtf8@PSetCallWaitingWrapper@@SA?AVQString@@PBD0H@Z @ 25 NONAME ; class QString PSetCallWaitingWrapper::trUtf8(char const *, char const *, int)
-	?networkChanged@PSetNetworkWrapper@@IAEXAAUNetworkInfo@1@AAW4RegistrationStatus@1@@Z @ 26 NONAME ; void PSetNetworkWrapper::networkChanged(struct PSetNetworkWrapper::NetworkInfo &, enum PSetNetworkWrapper::RegistrationStatus &)
-	?trUtf8@PSetCallDivertingWrapper@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString PSetCallDivertingWrapper::trUtf8(char const *, char const *, int)
-	?qt_metacast@PSetCliWrapper@@UAEPAXPBD@Z @ 28 NONAME ; void * PSetCliWrapper::qt_metacast(char const *)
-	?callBarringWrapper@PSetWrapper@@QAEAAVPSetCallBarringWrapper@@XZ @ 29 NONAME ; class PSetCallBarringWrapper & PSetWrapper::callBarringWrapper(void)
-	?tr@PSetCallBarringWrapper@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString PSetCallBarringWrapper::tr(char const *, char const *, int)
-	?networkAccessModeGot@PSetNetworkWrapper@@IAEXH@Z @ 31 NONAME ; void PSetNetworkWrapper::networkAccessModeGot(int)
-	??_EPSetCallBarringWrapper@@UAE@I@Z @ 32 NONAME ; PSetCallBarringWrapper::~PSetCallBarringWrapper(unsigned int)
-	?trUtf8@PSetNetworkWrapper@@SA?AVQString@@PBD0@Z @ 33 NONAME ; class QString PSetNetworkWrapper::trUtf8(char const *, char const *)
-	?getClirMode@PSetCliWrapper@@QAEXXZ @ 34 NONAME ; void PSetCliWrapper::getClirMode(void)
-	?qt_metacall@PSetWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 35 NONAME ; int PSetWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@PSetNetworkWrapper@@SA?AVQString@@PBD0H@Z @ 36 NONAME ; class QString PSetNetworkWrapper::trUtf8(char const *, char const *, int)
-	?trUtf8@PSetCallDivertingWrapper@@SA?AVQString@@PBD0@Z @ 37 NONAME ; class QString PSetCallDivertingWrapper::trUtf8(char const *, char const *)
-	?tr@PSetCallDivertingWrapper@@SA?AVQString@@PBD0H@Z @ 38 NONAME ; class QString PSetCallDivertingWrapper::tr(char const *, char const *, int)
-	?handleCallWaitingError@PSetCallWaitingWrapper@@IAEXH@Z @ 39 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingError(int)
-	?getStaticMetaObject@PSetCallWaitingWrapper@@SAABUQMetaObject@@XZ @ 40 NONAME ; struct QMetaObject const & PSetCallWaitingWrapper::getStaticMetaObject(void)
-	?disableBarring@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@VQString@@@Z @ 41 NONAME ; void PSetCallBarringWrapper::disableBarring(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType, class QString)
-	?tr@PSetWrapper@@SA?AVQString@@PBD0@Z @ 42 NONAME ; class QString PSetWrapper::tr(char const *, char const *)
-	??1PSetCliWrapper@@UAE@XZ @ 43 NONAME ; PSetCliWrapper::~PSetCliWrapper(void)
-	?getColrMode@PSetCliWrapper@@QAEXXZ @ 44 NONAME ; void PSetCliWrapper::getColrMode(void)
-	?qt_metacall@PSetCliWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 45 NONAME ; int PSetCliWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?handleCallWaitingRequesting@PSetCallWaitingWrapper@@IAEX_N0@Z @ 46 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingRequesting(bool, bool)
-	?trUtf8@PSetCallBarringWrapper@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString PSetCallBarringWrapper::trUtf8(char const *, char const *)
-	?barringStatus@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@@Z @ 48 NONAME ; void PSetCallBarringWrapper::barringStatus(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType)
-	??1PSetWrapper@@UAE@XZ @ 49 NONAME ; PSetWrapper::~PSetWrapper(void)
-	?cancelProcess@PSetCallWaitingWrapper@@QAEXXZ @ 50 NONAME ; void PSetCallWaitingWrapper::cancelProcess(void)
-	?findPlus@PSetCallDivertingWrapper@@ABE_NABVTDesC16@@@Z @ 51 NONAME ; bool PSetCallDivertingWrapper::findPlus(class TDesC16 const &) const
-	??_EPSetCallDivertingWrapper@@UAE@I@Z @ 52 NONAME ; PSetCallDivertingWrapper::~PSetCallDivertingWrapper(unsigned int)
-	?setCallWaiting@PSetCallWaitingWrapper@@QAEXW4PsCallWaitingCommand@1@H@Z @ 53 NONAME ; void PSetCallWaitingWrapper::setCallWaiting(enum PSetCallWaitingWrapper::PsCallWaitingCommand, int)
-	??_EPSetCliWrapper@@UAE@I@Z @ 54 NONAME ; PSetCliWrapper::~PSetCliWrapper(unsigned int)
-	?tr@PSetCallBarringWrapper@@SA?AVQString@@PBD0@Z @ 55 NONAME ; class QString PSetCallBarringWrapper::tr(char const *, char const *)
-	?trUtf8@PSetCliWrapper@@SA?AVQString@@PBD0H@Z @ 56 NONAME ; class QString PSetCliWrapper::trUtf8(char const *, char const *, int)
-	?handleCallWaitingGetStatus@PSetCallWaitingWrapper@@IAEXW4PsCallWaitingStatus@1@ABV?$QList@E@@@Z @ 57 NONAME ; void PSetCallWaitingWrapper::handleCallWaitingGetStatus(enum PSetCallWaitingWrapper::PsCallWaitingStatus, class QList<unsigned char> const &)
-	?requestDone@PSetCallDivertingWrapper@@IAEXXZ @ 58 NONAME ; void PSetCallDivertingWrapper::requestDone(void)
-	?qt_metacast@PSetWrapper@@UAEPAXPBD@Z @ 59 NONAME ; void * PSetWrapper::qt_metacast(char const *)
-	?tr@PSetCliWrapper@@SA?AVQString@@PBD0H@Z @ 60 NONAME ; class QString PSetCliWrapper::tr(char const *, char const *, int)
-	?tr@PSetNetworkWrapper@@SA?AVQString@@PBD0H@Z @ 61 NONAME ; class QString PSetNetworkWrapper::tr(char const *, char const *, int)
-	?qt_metacast@PSetCallWaitingWrapper@@UAEPAXPBD@Z @ 62 NONAME ; void * PSetCallWaitingWrapper::qt_metacast(char const *)
-	?tr@PSetCallWaitingWrapper@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString PSetCallWaitingWrapper::tr(char const *, char const *, int)
-	?getStaticMetaObject@PSetNetworkWrapper@@SAABUQMetaObject@@XZ @ 64 NONAME ; struct QMetaObject const & PSetNetworkWrapper::getStaticMetaObject(void)
-	?getStaticMetaObject@PSetWrapper@@SAABUQMetaObject@@XZ @ 65 NONAME ; struct QMetaObject const & PSetWrapper::getStaticMetaObject(void)
-	?trUtf8@PSetWrapper@@SA?AVQString@@PBD0@Z @ 66 NONAME ; class QString PSetWrapper::trUtf8(char const *, char const *)
-	?staticMetaObject@PSetWrapper@@2UQMetaObject@@B @ 67 NONAME ; struct QMetaObject const PSetWrapper::staticMetaObject
-	?metaObject@PSetWrapper@@UBEPBUQMetaObject@@XZ @ 68 NONAME ; struct QMetaObject const * PSetWrapper::metaObject(void) const
-	?getDefaultNumbers@PSetCallDivertingWrapper@@QAEXAAVQStringList@@@Z @ 69 NONAME ; void PSetCallDivertingWrapper::getDefaultNumbers(class QStringList &)
-	?getCallWaitingStatus@PSetCallWaitingWrapper@@QAEXXZ @ 70 NONAME ; void PSetCallWaitingWrapper::getCallWaitingStatus(void)
-	?tr@PSetCliWrapper@@SA?AVQString@@PBD0@Z @ 71 NONAME ; class QString PSetCliWrapper::tr(char const *, char const *)
-	?staticMetaObject@PSetCliWrapper@@2UQMetaObject@@B @ 72 NONAME ; struct QMetaObject const PSetCliWrapper::staticMetaObject
-	?tr@PSetWrapper@@SA?AVQString@@PBD0H@Z @ 73 NONAME ; class QString PSetWrapper::tr(char const *, char const *, int)
-	?getClipMode@PSetCliWrapper@@QAEXXZ @ 74 NONAME ; void PSetCliWrapper::getClipMode(void)
-	??1PSetCallWaitingWrapper@@UAE@XZ @ 75 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(void)
-	?qt_metacast@PSetCallDivertingWrapper@@UAEPAXPBD@Z @ 76 NONAME ; void * PSetCallDivertingWrapper::qt_metacast(char const *)
-	?barringPasswordChangeRequestCompleted@PSetCallBarringWrapper@@IAEXH@Z @ 77 NONAME ; void PSetCallBarringWrapper::barringPasswordChangeRequestCompleted(int)
-	?networkWrapper@PSetWrapper@@QAEAAVPSetNetworkWrapper@@XZ @ 78 NONAME ; class PSetNetworkWrapper & PSetWrapper::networkWrapper(void)
-	?getColpMode@PSetCliWrapper@@QAEXXZ @ 79 NONAME ; void PSetCliWrapper::getColpMode(void)
-	?metaObject@PSetCallBarringWrapper@@UBEPBUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const * PSetCallBarringWrapper::metaObject(void) const
-	?requestingSelectedNetwork@PSetNetworkWrapper@@IAEX_N@Z @ 81 NONAME ; void PSetNetworkWrapper::requestingSelectedNetwork(bool)
-	?queryVoiceMailBoxNumber@PSetCallDivertingWrapper@@QAEHAAVQString@@W4PsService@@@Z @ 82 NONAME ; int PSetCallDivertingWrapper::queryVoiceMailBoxNumber(class QString &, enum PsService)
-	?qt_metacall@PSetNetworkWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 83 NONAME ; int PSetNetworkWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?handleDivertingChanged@PSetCallDivertingWrapper@@IAEXABVPSCallDivertingCommand@@_N@Z @ 84 NONAME ; void PSetCallDivertingWrapper::handleDivertingChanged(class PSCallDivertingCommand const &, bool)
-	?cliWrapper@PSetWrapper@@QAEAAVPSetCliWrapper@@XZ @ 85 NONAME ; class PSetCliWrapper & PSetWrapper::cliWrapper(void)
-	?handleCliStatus@PSetCliWrapper@@IAEXPAEHABW4PsCallLineIdentity@@@Z @ 86 NONAME ; void PSetCliWrapper::handleCliStatus(unsigned char *, int, enum PsCallLineIdentity const &)
-	?getStaticMetaObject@PSetCallBarringWrapper@@SAABUQMetaObject@@XZ @ 87 NONAME ; struct QMetaObject const & PSetCallBarringWrapper::getStaticMetaObject(void)
-	?qt_metacall@PSetCallDivertingWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 88 NONAME ; int PSetCallDivertingWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?changeBarringPassword@PSetCallBarringWrapper@@QAEXABVQString@@00@Z @ 89 NONAME ; void PSetCallBarringWrapper::changeBarringPassword(class QString const &, class QString const &, class QString const &)
-	?getNetworkSelectionMode@PSetNetworkWrapper@@QBE?AW4ErrorCode@1@AAW4NetworkSelectionMode@1@@Z @ 90 NONAME ; enum PSetNetworkWrapper::ErrorCode PSetNetworkWrapper::getNetworkSelectionMode(enum PSetNetworkWrapper::NetworkSelectionMode &) const
-	?getVoiceMailBoxNumber@PSetCallDivertingWrapper@@QAEHAAVQString@@W4PsService@@@Z @ 91 NONAME ; int PSetCallDivertingWrapper::getVoiceMailBoxNumber(class QString &, enum PsService)
-	?tr@PSetNetworkWrapper@@SA?AVQString@@PBD0@Z @ 92 NONAME ; class QString PSetNetworkWrapper::tr(char const *, char const *)
-	?staticMetaObject@PSetCallDivertingWrapper@@2UQMetaObject@@B @ 93 NONAME ; struct QMetaObject const PSetCallDivertingWrapper::staticMetaObject
-	??0PSetCliWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 94 NONAME ; PSetCliWrapper::PSetCliWrapper(class CPsetContainer &, class QObject *)
-	?trUtf8@PSetCliWrapper@@SA?AVQString@@PBD0@Z @ 95 NONAME ; class QString PSetCliWrapper::trUtf8(char const *, char const *)
-	??0PSetNetworkWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 96 NONAME ; PSetNetworkWrapper::PSetNetworkWrapper(class CPsetContainer &, class QObject *)
-	?qt_metacall@PSetCallWaitingWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 97 NONAME ; int PSetCallWaitingWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?searchingNetworks@PSetNetworkWrapper@@IAEXAAW4RequestType@1@@Z @ 98 NONAME ; void PSetNetworkWrapper::searchingNetworks(enum PSetNetworkWrapper::RequestType &)
-	?getStaticMetaObject@PSetCliWrapper@@SAABUQMetaObject@@XZ @ 99 NONAME ; struct QMetaObject const & PSetCliWrapper::getStaticMetaObject(void)
-	?handleDivertingStatus@PSetCallDivertingWrapper@@IAEXAAV?$QList@PAVPSCallDivertingStatus@@@@_N@Z @ 100 NONAME ; void PSetCallDivertingWrapper::handleDivertingStatus(class QList<class PSCallDivertingStatus *> &, bool)
-	??1PSetCallDivertingWrapper@@UAE@XZ @ 101 NONAME ; PSetCallDivertingWrapper::~PSetCallDivertingWrapper(void)
-	?selectNetwork@PSetNetworkWrapper@@QAEXABUNetworkInfo@1@@Z @ 102 NONAME ; void PSetNetworkWrapper::selectNetwork(struct PSetNetworkWrapper::NetworkInfo const &)
-	?handleCliRequesting@PSetCliWrapper@@IAEX_N0@Z @ 103 NONAME ; void PSetCliWrapper::handleCliRequesting(bool, bool)
-	?enableBarringRequestCompleted@PSetCallBarringWrapper@@IAEXHW4BarringType@1@W4BarringStatus@1@_N@Z @ 104 NONAME ; void PSetCallBarringWrapper::enableBarringRequestCompleted(int, enum PSetCallBarringWrapper::BarringType, enum PSetCallBarringWrapper::BarringStatus, bool)
-	?metaObject@PSetCallWaitingWrapper@@UBEPBUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const * PSetCallWaitingWrapper::metaObject(void) const
-	?trUtf8@PSetWrapper@@SA?AVQString@@PBD0H@Z @ 106 NONAME ; class QString PSetWrapper::trUtf8(char const *, char const *, int)
-	?getCallDivertingStatus@PSetCallDivertingWrapper@@QAEXV?$QFlags@W4PsService@@@@W4PsCallDivertingCondition@@H@Z @ 107 NONAME ; void PSetCallDivertingWrapper::getCallDivertingStatus(class QFlags<enum PsService>, enum PsCallDivertingCondition, int)
-	?setCallDiverting@PSetCallDivertingWrapper@@QAEHAAVPSCallDivertingCommand@@H@Z @ 108 NONAME ; int PSetCallDivertingWrapper::setCallDiverting(class PSCallDivertingCommand &, int)
-	?setNetworkAccessMode@PSetNetworkWrapper@@QAEXW4NetworkAccessMode@1@@Z @ 109 NONAME ; void PSetNetworkWrapper::setNetworkAccessMode(enum PSetNetworkWrapper::NetworkAccessMode)
-	??0PSetWrapper@@QAE@PAVQObject@@@Z @ 110 NONAME ; PSetWrapper::PSetWrapper(class QObject *)
-	?handleCliError@PSetCliWrapper@@IAEXH@Z @ 111 NONAME ; void PSetCliWrapper::handleCliError(int)
-	?handleCFRequesting@PSetCallDivertingWrapper@@IAEX_N0@Z @ 112 NONAME ; void PSetCallDivertingWrapper::handleCFRequesting(bool, bool)
-	?cancelAll@PSetCliWrapper@@QAEXXZ @ 113 NONAME ; void PSetCliWrapper::cancelAll(void)
-	?networkReqestFailed@PSetNetworkWrapper@@IAEXW4ErrorCode@1@W4RequestType@1@@Z @ 114 NONAME ; void PSetNetworkWrapper::networkReqestFailed(enum PSetNetworkWrapper::ErrorCode, enum PSetNetworkWrapper::RequestType)
-	?enableBarring@PSetCallBarringWrapper@@QAEXV?$QFlags@W4PsService@@@@W4BarringType@1@VQString@@@Z @ 115 NONAME ; void PSetCallBarringWrapper::enableBarring(class QFlags<enum PsService>, enum PSetCallBarringWrapper::BarringType, class QString)
-	?setNewDefaultNumber@PSetCallDivertingWrapper@@QAEXVQString@@@Z @ 116 NONAME ; void PSetCallDivertingWrapper::setNewDefaultNumber(class QString)
-	??0PSetCallBarringWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 117 NONAME ; PSetCallBarringWrapper::PSetCallBarringWrapper(class CPsetContainer &, class QObject *)
-	?barringStatusRequestCompleted@PSetCallBarringWrapper@@IAEXHABV?$QList@E@@W4BarringStatus@1@@Z @ 118 NONAME ; void PSetCallBarringWrapper::barringStatusRequestCompleted(int, class QList<unsigned char> const &, enum PSetCallBarringWrapper::BarringStatus)
-	??_EPSetNetworkWrapper@@UAE@I@Z @ 119 NONAME ; PSetNetworkWrapper::~PSetNetworkWrapper(unsigned int)
-	?getCnap@PSetCliWrapper@@QAEXXZ @ 120 NONAME ; void PSetCliWrapper::getCnap(void)
-	??1PSetCallBarringWrapper@@UAE@XZ @ 121 NONAME ; PSetCallBarringWrapper::~PSetCallBarringWrapper(void)
-	?tr@PSetCallDivertingWrapper@@SA?AVQString@@PBD0@Z @ 122 NONAME ; class QString PSetCallDivertingWrapper::tr(char const *, char const *)
-	?getStaticMetaObject@PSetCallDivertingWrapper@@SAABUQMetaObject@@XZ @ 123 NONAME ; struct QMetaObject const & PSetCallDivertingWrapper::getStaticMetaObject(void)
-	?metaObject@PSetNetworkWrapper@@UBEPBUQMetaObject@@XZ @ 124 NONAME ; struct QMetaObject const * PSetNetworkWrapper::metaObject(void) const
-	??1PSetNetworkWrapper@@UAE@XZ @ 125 NONAME ; PSetNetworkWrapper::~PSetNetworkWrapper(void)
-	?staticMetaObject@PSetNetworkWrapper@@2UQMetaObject@@B @ 126 NONAME ; struct QMetaObject const PSetNetworkWrapper::staticMetaObject
-	??_EPSetCallWaitingWrapper@@UAE@I@Z @ 127 NONAME ; PSetCallWaitingWrapper::~PSetCallWaitingWrapper(unsigned int)
-	??0PSetCallWaitingWrapper@@QAE@AAVCPsetContainer@@PAVQObject@@@Z @ 128 NONAME ; PSetCallWaitingWrapper::PSetCallWaitingWrapper(class CPsetContainer &, class QObject *)
-	?qt_metacall@PSetCallBarringWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 129 NONAME ; int PSetCallBarringWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?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 * *)
 
--- a/cellular/telephonysettings/xqbindings/psetwrapper/eabi/psetwrapperu.def	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/eabi/psetwrapperu.def	Tue Jul 06 14:53:02 2010 +0300
@@ -111,21 +111,24 @@
 	_ZNK18PSetNetworkWrapper10metaObjectEv @ 110 NONAME
 	_ZNK18PSetNetworkWrapper20getNetworkAccessModeEv @ 111 NONAME
 	_ZNK18PSetNetworkWrapper23getNetworkSelectionModeERNS_20NetworkSelectionModeE @ 112 NONAME
-	_ZNK22PSetCallBarringWrapper10metaObjectEv @ 113 NONAME
-	_ZNK22PSetCallWaitingWrapper10metaObjectEv @ 114 NONAME
-	_ZNK24PSetCallDivertingWrapper10metaObjectEv @ 115 NONAME
-	_ZNK24PSetCallDivertingWrapper20validateDivertNumberERK7TDesC16 @ 116 NONAME
-	_ZNK24PSetCallDivertingWrapper8findPlusERK7TDesC16 @ 117 NONAME
-	_ZTI11PSetWrapper @ 118 NONAME
-	_ZTI14PSetCliWrapper @ 119 NONAME
-	_ZTI18PSetNetworkWrapper @ 120 NONAME
-	_ZTI22PSetCallBarringWrapper @ 121 NONAME
-	_ZTI22PSetCallWaitingWrapper @ 122 NONAME
-	_ZTI24PSetCallDivertingWrapper @ 123 NONAME
-	_ZTV11PSetWrapper @ 124 NONAME
-	_ZTV14PSetCliWrapper @ 125 NONAME
-	_ZTV18PSetNetworkWrapper @ 126 NONAME
-	_ZTV22PSetCallBarringWrapper @ 127 NONAME
-	_ZTV22PSetCallWaitingWrapper @ 128 NONAME
-	_ZTV24PSetCallDivertingWrapper @ 129 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/src/psetcalldivertingwrapper.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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)
 {
@@ -362,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/psetcallwaitingwrapper.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallwaitingwrapper.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/src/psetnetworkwrapper_p.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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;
+
 
     
 };
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/mocks/mock_psetcsp.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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_psetnetworkwrapper/ut_psetnetworkwrapper.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetnetworkwrapper/ut_psetnetworkwrapper.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -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/spsettings/backuphelper/group/spsbackuphelper.mmp	Wed Jun 23 18:49:32 2010 +0300
+++ b/convergedcallengine/spsettings/backuphelper/group/spsbackuphelper.mmp	Tue Jul 06 14:53:02 2010 +0300
@@ -35,4 +35,5 @@
 LIBRARY      euser.lib
 LIBRARY      serviceprovidersettings.lib
 LIBRARY      centralrepository.lib
+LIBRARY      abclient.lib
 
--- a/convergedcallengine/spsettings/backuphelper/inc/spsbackuphelpermonitor.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/convergedcallengine/spsettings/backuphelper/inc/spsbackuphelpermonitor.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/convergedcallengine/spsettings/backuphelper/src/spsbackuphelpermonitor.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagCbEngine.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagCbEngine.h	Tue Jul 06 14:53:02 2010 +0300
@@ -26,7 +26,7 @@
 #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	Wed Jun 23 18:49:32 2010 +0300
+++ b/networkhandling/networkhandlingengine/NetworkHandlingGsmInc/CNWNetworkViagLcEngine.h	Tue Jul 06 14:53:02 2010 +0300
@@ -29,7 +29,7 @@
 #include "MNWNetworkTimer.h"
 #include <nwhandlingengine.h>
 #include "CNWGsmMessageHandler.h"
-#include <MCbsMcnObserver.h> //For McbsMcnObserver
+#include <mcbsmcnobserver.h> //For McbsMcnObserver
 #include <rmmcustomapi.h>
 #include <e32property.h>
 
--- a/phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -82,7 +82,10 @@
 void CPhCltEmergencyCallImpl::RunL()
     {
     // inform observer
-    iObserver->HandleEmergencyDialL( iStatus.Int() );
+    if(iObserver)
+        {
+        iObserver->HandleEmergencyDialL( iStatus.Int() );
+        }
     }
 
 // -----------------------------------------------------------------------------
--- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -88,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
@@ -460,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() ) );
@@ -1424,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 );               
@@ -1436,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];
--- a/phonesrv.pro	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -28,4 +28,5 @@
 SUBDIRS += cellular/sssettings/xqbindings/sssettingswrapper
 SUBDIRS += cellular/telephonysettings/xqbindings/psetwrapper
 SUBDIRS += satui/satapp
+SUBDIRS += cellular/psuinotes
 }
--- a/phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h	Tue Jul 06 14:53:02 2010 +0300
@@ -23,7 +23,7 @@
 #define RMCNSUBSESSION_H
 
 // INCLUDES
-#include "CbsMcnCommon.h"
+#include "cbsmcncommon.h"
 
 //  FORWARD DECLARATIONS
 class CMcnTopicArray;
--- a/phonesrv_plat/cbs_message_api/inc/ccbsmessageclient.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/cbs_message_api/inc/ccbsmessageclient.h	Tue Jul 06 14:53:02 2010 +0300
@@ -26,7 +26,7 @@
 #define     CCBSMESSAGECLIENT_H
 
 // INCLUDES
-#include "CbsCommonTypes.h"
+#include "cbscommontypes.h"
 
 //  CLASS DECLARATION
 
--- a/phonesrv_plat/dialpad_api/inc/dialpad.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/dialpad_api/inc/dialpad.h	Tue Jul 06 14:53:02 2010 +0300
@@ -48,6 +48,8 @@
     HbLineEdit& editor() const;
 
     bool isOpen() const;
+    
+    bool isCallButtonEnabled() const;
 
 public slots:
     void openDialpad();
--- a/phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/dialpad_api/inc/dialpadkeyhandler.h	Tue Jul 06 14:53:02 2010 +0300
@@ -26,6 +26,7 @@
 class DialpadBluetoothEventFilter;
 class DialpadKeySequenceEventFilter;
 class DialpadEmergencyCallEventFilter;
+class DialpadHashEventFilter;
 class HbMainWindow;
 
 #ifdef BUILD_DIALPADKEYHANDLER
@@ -61,7 +62,9 @@
         /*! Enables handling of key sequences like *#06# for showing IMEI. */
         KeySequence     = 0x0008,
         /*! Forced handling for emergency call. */
-        EmergencyCall   = 0x0010
+        EmergencyCall   = 0x0010,
+        /*! Enables and disables silent mode with a long '#' key press. */
+        Hash    = 0x23
     };
     Q_DECLARE_FLAGS(DialpadKeyEventFilters, DialpadKeyEventFilter)
     
@@ -92,6 +95,7 @@
     QScopedPointer<DialpadBluetoothEventFilter> mBtFilter;
     QScopedPointer<DialpadKeySequenceEventFilter> mKeySequenceFilter;
     QScopedPointer<DialpadEmergencyCallEventFilter> mEmergencyCallFilter;
+    QScopedPointer<DialpadHashEventFilter> mHashFilter;
 };
 
 #endif // DIALPADKEYHANDLER_H
--- a/phonesrv_plat/group/bld.inf	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/group/bld.inf	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/phone_settings_api/inc/MPsetNetworkSelect.h	Tue Jul 06 14:53:02 2010 +0300
@@ -80,7 +80,8 @@
         enum TNetworkAccess
             {
             ENetNetworkGSM,
-            ENetNetworkWCDMA
+            ENetNetworkWCDMA,
+            ENetNetworkGSMandWCDMA
             };
 
         //Information about network
--- a/phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h	Tue Jul 06 14:53:02 2010 +0300
@@ -136,6 +136,10 @@
      */
     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	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/phone_settings_api/inc/psetcallwaitingwrapper.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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"
@@ -691,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" )
--- a/satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h	Tue Jul 06 14:53:02 2010 +0300
@@ -92,6 +92,11 @@
      */
     CSetupCallRequestHandler( MSatMultiModeApi& aPhone,
         CSetUpCallHandler* aDispatcher );
+    
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */ 
+    void ConstructL();
         
 private: // Data
 
@@ -101,7 +106,7 @@
     MSatMultiModeApi& iPhone;
         
     /**
-     * Pointer to SendSs command handler
+     * Pointer to SetupCall command handler
      */
     CSetUpCallHandler* iDispatcher;
     
--- a/satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -61,7 +61,7 @@
     CSetupCallRequestHandler* self =
         new ( ELeave ) CSetupCallRequestHandler( aPhone, aDispatcher );
     
-    self->iDtmfSender = CSetupCallDtmfSender::NewL( aPhone );
+    self->ConstructL();
  
     LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL exiting" )
     return self;
@@ -87,6 +87,17 @@
     }
 
 // -----------------------------------------------------------------------------
+// CSetupCallRequestHandler::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CSetupCallRequestHandler::ConstructL()
+{
+    LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::ConstructL calling" )
+    iDtmfSender = CSetupCallDtmfSender::NewL( iPhone );
+    LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::ConstructL exiting" )
+}
+
+// -----------------------------------------------------------------------------
 // CSetupCallRequestHandler::DialNumber
 // -----------------------------------------------------------------------------
 //
@@ -120,7 +131,7 @@
             // Separate dtmf string from whole number and store in iDtmfString
             // the dtmf string will be removed from aTelNumber 
             iDtmfSender->SeparateDtmfFromTelNumber(aTelNumber);
-            // Dial the purl tel number
+            // Dial the pure tel number
             iPhone.DialNoFdnCheck( iStatus, aCallParams, aTelNumber );
             SetActive();
             }
--- a/satengine/satserver/Commands/SetUpCallCmd/inc/csetupcalldtmfsender.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/satengine/satserver/Commands/SetUpCallCmd/inc/csetupcalldtmfsender.h	Tue Jul 06 14:53:02 2010 +0300
@@ -20,7 +20,8 @@
 #define CSETUPCALLDTMFSENDER_H
 
 #include <e32base.h>
-#include "msatmultimodeapi.h"
+
+class MSatMultiModeApi;
 
 NONSHARABLE_CLASS ( CSetupCallDtmfSender ) : public CActive
 {
--- a/satengine/satserver/Commands/SetUpCallCmd/src/csetupcalldtmfsender.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/satengine/satserver/Commands/SetUpCallCmd/src/csetupcalldtmfsender.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -17,6 +17,7 @@
 
 #include <etelmm.h>
 #include <mmtsy_names.h>
+#include "msatmultimodeapi.h"
 #include "csetupcalldtmfsender.h"
 #include "msatasynctosync.h"
 #include "SatLog.h"
--- a/telutils/dialpad/bwins/dialpadu.def	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/bwins/dialpadu.def	Tue Jul 06 14:53:02 2010 +0300
@@ -60,4 +60,5 @@
 	?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	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/dialpad.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -36,7 +36,8 @@
            inc/dialpadkeysequenceeventfilter.h \
            inc/dialpadvideomailboxeventfilter.h \
            inc/dialpadmailboxeventfilterbase.h \
-           inc/dialpademergencycalleventfilter.h
+           inc/dialpademergencycalleventfilter.h \
+           inc/dialpadhasheventfilter.h
 
 SOURCES += src/dialpad.cpp \
            src/dialpadbutton.cpp \
@@ -52,7 +53,8 @@
            src/dialpadvideomailboxeventfilter.cpp \
            src/dialpadmailboxeventfilterbase.cpp \
            src/dialpademergencycalleventfilter.cpp \
-           src/dialpadvtkeyhandler.cpp
+           src/dialpadvtkeyhandler.cpp \
+           src/dialpadhasheventfilter.cpp
 
 RESOURCES += dialpad.qrc
 
@@ -81,7 +83,8 @@
             -lxqserviceutil \
             -lvmbxengine \
             -lfeatmgr \
-            -lphoneclient
+            -lphoneclient \
+            -lcentralrepository
 }
 else:win32 { 
     HEADERS += inc/dialpadsymbianwrapper_p_stub.h
--- a/telutils/dialpad/dialpad.qrc	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/dialpad.qrc	Tue Jul 06 14:53:02 2010 +0300
@@ -1,6 +1,5 @@
 <RCC>
     <qresource prefix="/">
-        <file alias="dialpad.dialpadbutton.widgetml">resources/dialpad.dialpadbutton.widgetml</file>
         <file alias="dialpad.css">resources/dialpad.css</file>
         <file alias="dialpad_color.css">resources/dialpad_color.css</file>
         <file alias="dialpad_to_prt.fxml">resources/dialpad_to_prt.fxml</file>
--- a/telutils/dialpad/eabi/dialpadu.def	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/eabi/dialpadu.def	Tue Jul 06 14:53:02 2010 +0300
@@ -67,4 +67,5 @@
 	_ZThn8_N7Dialpad5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 66 NONAME
 	_ZThn8_N7DialpadD0Ev @ 67 NONAME
 	_ZThn8_N7DialpadD1Ev @ 68 NONAME
+	_ZNK7Dialpad19isCallButtonEnabledEv @ 69 NONAME
 
--- a/telutils/dialpad/inc/dialpadbluetootheventfilter.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/inc/dialpadbluetootheventfilter.h	Tue Jul 06 14:53:02 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADBLUETOOTHEVENTFILTER_H
 #define DIALPADBLUETOOTHEVENTFILTER_H
 
-#include <qobject>
+#include <QObject>
 
 class QTimer;
 class Dialpad;
--- a/telutils/dialpad/inc/dialpadbutton.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/inc/dialpadbutton.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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);
 
--- a/telutils/dialpad/inc/dialpademergencycalleventfilter.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/inc/dialpademergencycalleventfilter.h	Tue Jul 06 14:53:02 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADEMERGENCYCALLEVENTFILTER_H
 #define DIALPADEMERGENCYCALLEVENTFILTER_H
 
-#include <qobject>
+#include <QObject>
 
 class Dialpad;
 class CPhCltEmergencyCall;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/inc/dialpadhasheventfilter.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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/dialpadmailboxeventfilterbase.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/inc/dialpadmailboxeventfilterbase.h	Tue Jul 06 14:53:02 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADMAILBOXEVENTFILTERBASE_H
 #define DIALPADMAILBOXEVENTFILTERBASE_H
 
-#include <qobject>
+#include <QObject>
 
 class QTimer;
 class Dialpad;
--- a/telutils/dialpad/inc/dialpadsymbianwrapper.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper.h	Tue Jul 06 14:53:02 2010 +0300
@@ -18,8 +18,8 @@
 #ifndef DIALPADSYMBIANWRAPPER_H
 #define DIALPADSYMBIANWRAPPER_H
 
-#include <qobject>
-#include <qstring>
+#include <QObject>
+#include <QString>
 #include <qglobal.h>
 
 class DialpadSymbianWrapperPrivate;
@@ -41,6 +41,8 @@
         
     int defineMailboxNumber(QString &vmbxNumber);
     int defineVideoMailboxNumber(QString &vmbxNumber);
+    
+    bool changeSilentModeState();
 
 protected:
     DialpadSymbianWrapperPrivate *const d_ptr;
--- a/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/inc/dialpadsymbianwrapper_p.h	Tue Jul 06 14:53:02 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef DIALPADSYMBIANWRAPPERPRIVATE_H
 #define DIALPADSYMBIANWRAPPERPRIVATE_H
 
-#include <qstring>
+#include <QString>
 #include <qglobal.h>
 
 class CVoiceMailbox;
@@ -43,6 +43,8 @@
     int defineMailboxNumber(QString &vmbxNumber);
     int defineVideoMailboxNumber(QString &vmbxNumber);
     
+    bool changeSilentModeState();
+    
 private:
     
     QString getVmbxNumber(CVoiceMailboxEntry &vmbxEntry);
--- a/telutils/dialpad/resources/dialpad.css	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/resources/dialpad.css	Tue Jul 06 14:53:02 2010 +0300
@@ -1,65 +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; /* default min-height is too small */
     min-width:6.25un;
 }
 
-/* text and additional text */
-DialpadButton[stretched][!icon][text][additionalText]{
-    layout:text_additionalText_horizontal;
-    min-height:6.25un;
-}
-
-DialpadButton[stretched][!icon][text][additionalText]::text
-{
-    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;
-    min-height:6.25un;
-}
-
-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	Wed Jun 23 18:49:32 2010 +0300
+++ /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	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/resources/dialpad_color.css	Tue Jul 06 14:53:02 2010 +0300
@@ -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);
-}
--- a/telutils/dialpad/src/dialpad.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpad.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -36,10 +36,10 @@
 #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 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
@@ -48,13 +48,13 @@
 static const qreal DialpadCallButtonHeight = 8.0; // units
 static const qreal DialpadCallButtonHeightH = 6.0; // units
 
-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");
 
-const char *DIALPAD_TO_PRT_FXML = ":/dialpad_to_prt.fxml";
-const char *DIALPAD_TO_LSC_FXML = ":/dialpad_to_lsc.fxml";
-const char *DIALPAD_TO_PRT_EVENT = "prt_activated";
-const char *DIALPAD_TO_LSC_EVENT = "lsc_activated";
+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)),
@@ -85,6 +85,7 @@
 {
     setFocusPolicy(Qt::StrongFocus);
     setFlag(QGraphicsItem::ItemIsFocusable,true);
+    setFlag(QGraphicsItem::ItemHasNoContents, false);
 
     // create input field
     mInputField = new DialpadInputField(this);
@@ -143,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);
@@ -219,6 +219,11 @@
     return mIsOpen;
 }
 
+bool Dialpad::isCallButtonEnabled() const
+{
+    return mKeypad->callButton().isEnabled();
+}
+
 void Dialpad::openDialpad()
 {
     mKeypad->resetButtons();
@@ -302,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 {
--- a/telutils/dialpad/src/dialpadbluetootheventfilter.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadbluetootheventfilter.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <qtimer>
-#include <qkeyevent>
+#include <QTimer>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include "dialpadbluetootheventfilter.h"
 #include "dialpad.h"
--- a/telutils/dialpad/src/dialpadbutton.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadbutton.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -22,7 +22,7 @@
 #include "dialpadbutton.h"
 
 DialpadButton::DialpadButton(QGraphicsItem *parent)
-    : HbPushButton(parent), mButtonType(NumericButton)
+    : HbPushButton(parent), mButtonType(FunctionButton)
 {
 }
 
@@ -40,15 +40,6 @@
     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);
@@ -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");
         }
     }
 
--- a/telutils/dialpad/src/dialpademergencycalleventfilter.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpademergencycalleventfilter.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -14,7 +14,7 @@
 * Description: 
 *
 */
-#include <qkeyevent>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include <hbstringutil.h>
 #include "dialpademergencycalleventfilter.h"
@@ -103,10 +103,9 @@
 {
     PHONE_TRACE2("phoneNumber:", phoneNumber);
 #ifdef Q_OS_SYMBIAN
-    XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)", false);
-    snd << phoneNumber;
-    QVariant retValue;
-    snd.send(retValue);
+    TPtrC number (static_cast<const TUint16*>(phoneNumber.utf16()),
+            phoneNumber.length());
+    TRAP_IGNORE(mEmergency->DialEmergencyCallL(number));
 #endif // Q_OS_SYMBIAN
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/src/dialpadhasheventfilter.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadinputfield.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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
--- a/telutils/dialpad/src/dialpadkeyhandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadkeyhandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -26,6 +26,7 @@
 #include "dialpadbluetootheventfilter.h"
 #include "dialpadkeysequenceeventfilter.h"
 #include "dialpademergencycalleventfilter.h"
+#include "dialpadhasheventfilter.h"
 #include "qtphonesrvlog.h"
 
 DialpadKeyHandler::DialpadKeyHandler(
@@ -37,7 +38,8 @@
 	mVideoVmbxFilter(0),
 	mBtFilter(0),
 	mKeySequenceFilter(0),
-	mEmergencyCallFilter(0)
+	mEmergencyCallFilter(0),
+	mHashFilter(0)
 {
     PHONE_TRACE;
 
@@ -53,6 +55,7 @@
     }
     mBtFilter.reset(new DialpadBluetoothEventFilter(dialPad));
     mKeySequenceFilter.reset(new DialpadKeySequenceEventFilter(dialPad));
+    mHashFilter.reset(new DialpadHashEventFilter(dialPad));
 
     // Stack different event filters
     mMainWindow.installEventFilter(mVmbxFilter.data());
@@ -61,6 +64,7 @@
     }
     mMainWindow.installEventFilter(mBtFilter.data());
     mMainWindow.installEventFilter(mKeySequenceFilter.data());
+    mMainWindow.installEventFilter(mHashFilter.data());
 }
 
 
@@ -75,7 +79,8 @@
     mVideoVmbxFilter(0),
     mBtFilter(0),
     mKeySequenceFilter(0),
-    mEmergencyCallFilter(0)
+    mEmergencyCallFilter(0),
+    mHashFilter(0)
 {
     PHONE_TRACE;
     
@@ -106,9 +111,20 @@
             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	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadkeypad.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -34,8 +34,8 @@
 
 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 DialpadKeyCodeTable[DialpadRowCount*DialpadColumnCount] =
@@ -246,6 +246,7 @@
 void DialpadKeypad::sendLongPressEvent(const QKeyEvent& event)
 {
     sendKeyEventToEditor(QEvent::KeyPress, event.key());
+    resetButtons();
     mPressedNumericKey = 0;
 }
 
--- a/telutils/dialpad/src/dialpadmailboxeventfilterbase.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadmailboxeventfilterbase.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -28,9 +28,9 @@
 #include <xqserviceutil.h>
 #endif //Q_OS_SYMBIAN
 
-const int DialpadLongKeyPressButtonCount(2);
+const int DialpadLongKeyPressButtonCount(3);
 static const int DialpadLongKeyPressSupportingButtons[DialpadLongKeyPressButtonCount] =
-{ Qt::Key_1, Qt::Key_2 };
+{ Qt::Key_1, Qt::Key_2, Qt::Key_NumberSign };
 
 
 DialpadMailboxEventFilterBase::DialpadMailboxEventFilterBase(Dialpad* dialpad, QObject* parent) :
--- a/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadsymbianwrapper.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -51,3 +51,8 @@
 {
     return d_ptr->defineVideoMailboxNumber(vmbxNumber);
 }
+
+bool DialpadSymbianWrapper::changeSilentModeState()
+{
+    return d_ptr->changeSilentModeState();
+}
--- a/telutils/dialpad/src/dialpadsymbianwrapper_p.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadsymbianwrapper_p.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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)
@@ -113,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/dialpadvideomailboxeventfilter.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadvideomailboxeventfilter.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <qtimer>
-#include <qkeyevent>
+#include <QTimer>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include <hbstringutil.h>
 #include "dialpadvideomailboxeventfilter.h"
--- a/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/src/dialpadvoicemailboxeventfilter.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -14,8 +14,8 @@
 * Description: 
 *
 */
-#include <qtimer>
-#include <qkeyevent>
+#include <QTimer>
+#include <QKeyEvent>
 #include <hblineedit.h>
 #include <hbstringutil.h>
 #include "dialpadvoicemailboxeventfilter.h"
--- a/telutils/dialpad/tsrc/unit/runall.cmd	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/runall.cmd	Tue Jul 06 14:53:02 2010 +0300
@@ -26,6 +26,7 @@
 call runtest.cmd ut_dialpadbluetootheventfilter
 call runtest.cmd ut_dialpadkeysequenceeventfilter
 call runtest.cmd ut_dialpadkeyhandler
+call runtest.cmd ut_dialpadhasheventfilter
 )
 
 @echo off
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_cenrep.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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 )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/shared/mock_dialpadhasheventfilter.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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 )
+    }
+
+
--- a/telutils/dialpad/tsrc/unit/shared/mock_hblineedit.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/shared/mock_hblineedit.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -286,7 +286,7 @@
         HbLineEditPrivate & dd,
         QGraphicsItem * parent )
     {
-    Q_UNUSED(text)
+    Q_UNUSED(dd)
     Q_UNUSED(parent)
     }
 
--- a/telutils/dialpad/tsrc/unit/unit.pro	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/unit.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -26,3 +26,4 @@
 SUBDIRS += ut_dialpadkeyhandler
 SUBDIRS += mt_dialpad
 SUBDIRS += mt_keyhandler
+SUBDIRS += ut_dialpadhasheventfilter
--- a/telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadbutton/ut_dialpadbutton.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/hblineedit.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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
--- a/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -85,7 +85,8 @@
         DialpadKeyHandler::VideoMailBox |
         DialpadKeyHandler::Bluetooth |
         DialpadKeyHandler::KeySequence |
-        DialpadKeyHandler::EmergencyCall);
+        DialpadKeyHandler::EmergencyCall |
+        DialpadKeyHandler::Hash );
     
     m_keyHandler = new DialpadKeyHandler(m_dialPad, filters, this);
     
--- a/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.pro	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/dialpad/tsrc/unit/ut_dialpadkeyhandler/ut_dialpadkeyhandler.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -49,6 +49,7 @@
            ../../../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
@@ -60,6 +61,7 @@
            ../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                        \
--- a/telutils/keysequencerecognitionservice/inc/keysequencerecognitionservicedefs.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/inc/keysequencerecognitionservicedefs.h	Tue Jul 06 14:53:02 2010 +0300
@@ -30,19 +30,18 @@
 const QString KCodeBtAddress("*#2820#");
 /*! code for enabling bluetooth test mode */
 const QString KCodeRFLoopback("*#9990#");
-const QString KCodeBtDebugMode("*#2873#");
 /*! code for showing serial number */
 const QString KCodeImei("*#06#");
 /*! code for showing life timer data */
 const QString KCodeLifeTimer("*#92702689#");
 /*! code for changing pin code 1 */
-const QString KCodeChangePin1("\\*\\*04\\*.*");
+const QString KCodeChangePin1("\\*\\*04\\*\\d{4,15}\\*\\d{4,15}\\*\\d{4,15}\\#");
 /*! code for changing pin code 2 */
-const QString KCodeChangePin2("\\*\\*042.*");
+const QString KCodeChangePin2("\\*\\*042\\*\\d{4,15}\\*\\d{4,15}\\*\\d{4,15}#");
 /*! code for unblocking pin code 1 */
-const QString KCodeUnblockPin1("\\*\\*05\\*.*");
+const QString KCodeUnblockPin1("\\*\\*05\\**\\d{8,20}\\*\\d{4,15}\\*\\d{4,15}#");
 /*! code for unblocking pin code 2 */
-const QString KCodeUnblockPin2("\\*\\*052.*");
+const QString KCodeUnblockPin2("\\*\\*052\\**\\d{8,20}\\*\\d{4,15}\\*\\d{4,15}#");
 
 
 #endif // KEYSEQUENCERECOGNITIONSERVICEDEFS_H
--- a/telutils/keysequencerecognitionservice/inc/simcontrolkeysequencehandler.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/inc/simcontrolkeysequencehandler.h	Tue Jul 06 14:53:02 2010 +0300
@@ -35,6 +35,7 @@
     
     enum SimOperation
         {
+        None,
         Pin1,
         Pin2,
         Unblock1,
@@ -43,9 +44,18 @@
 
 private:
 
-    bool parseString(  const QString &keySequence );
-    void processChangePin(SimOperation op, QString oldPin, QString newPin, QString verifyNew);
-    void processUnblockPin(SimOperation op, QString puk, QString newPin, QString verifyNew);
+    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;
--- a/telutils/keysequencerecognitionservice/src/main.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/src/main.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -20,7 +20,7 @@
 
 int main(int argc, char **argv)
 {
-    HbApplication app(argc, argv);
+    HbApplication app(argc, argv, Hb::NoSplash);
     KeySequenceRecognitionProvider provider;
     
     int result = app.exec();
--- a/telutils/keysequencerecognitionservice/src/manufacturerkeysequencehandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/src/manufacturerkeysequencehandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -39,8 +39,7 @@
         QRegExp::escape(KCodeActivateRfsNormal)  + "|" +
         QRegExp::escape(KCodeActivateRfsDeep) + "|" +
         QRegExp::escape(KCodeBtAddress) + "|" +
-        QRegExp::escape(KCodeRFLoopback) + "|" +
-        QRegExp::escape(KCodeBtDebugMode));
+        QRegExp::escape(KCodeRFLoopback));
     
     m_codeToInterfaceMappings[KCodeSwVersion] = InterfaceDescription(
         "com.nokia.services", "devicemanager", "showVersionNumber()");
@@ -54,8 +53,6 @@
         "com.nokia.services", "bluetooth", "showBluetoothDeviceAddress()");
     m_codeToInterfaceMappings[KCodeRFLoopback] = InterfaceDescription(
         "com.nokia.services", "bluetooth", "showBluetoothLoopback()");
-    m_codeToInterfaceMappings[KCodeBtDebugMode] = InterfaceDescription(
-        "com.nokia.services", "bluetooth", "activateBluetoothDebugMode()");
 }
 
 
--- a/telutils/keysequencerecognitionservice/src/simcontrolkeysequencehandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/src/simcontrolkeysequencehandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -73,7 +73,9 @@
 }
 
 
-
+/*!
+  SimControlKeySequenceHandler::parseString.
+ */
 bool SimControlKeySequenceHandler::parseString(const QString &keySequence)
 {
     DPRINT_METHODENTRYEXIT;
@@ -88,7 +90,7 @@
     QString verifyNewPin;
     QString puk;
     
-    SimOperation operation;
+    SimOperation operation = None;
     bool handled = false;
    
     QString keySequencePrefix (keySequence);
@@ -150,8 +152,11 @@
     return handled;
 }
 
-void SimControlKeySequenceHandler::processChangePin(SimOperation operation, QString oldPin,
-                                                            QString newPin, QString verifyNew)
+/*!
+  SimControlKeySequenceHandler::processChangePin.
+ */
+void SimControlKeySequenceHandler::processChangePin(SimOperation operation, const QString &oldPin,
+                                                   const QString &newPin, const QString &verifyNew)
     {
     CManualSecuritySettings::TPin pin;
     
@@ -171,9 +176,11 @@
        QT_TRAP_THROWING(m_securityModel->ChangePinL(pin, oldPinBuf, newPinBuf, verifyNewBuf));
     }
 
-
-void SimControlKeySequenceHandler::processUnblockPin(SimOperation operation, QString puk, QString newPin, 
-                                                                                 QString verifyNew)
+/*!
+  SimControlKeySequenceHandler::processUnblockPin.
+ */
+void SimControlKeySequenceHandler::processUnblockPin(SimOperation operation, const QString &puk, 
+                                                   const QString &newPin, const QString &verifyNew)
     {
     CManualSecuritySettings::TPin pin;
     
--- a/telutils/keysequencerecognitionservice/tsrc/shared/mock_hbdevicemessagebox.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_hbdevicemessagebox.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -108,9 +108,9 @@
 // HbDeviceMessageBox::exec
 // -----------------------------------------------------------------------------
 //
-HbAction * HbDeviceMessageBox::exec(  )
+const QAction * HbDeviceMessageBox::exec(  )
     {
-    SMC_MOCK_METHOD0( HbAction * )
+    SMC_MOCK_METHOD0( QAction * )
     }
 
 
@@ -147,33 +147,43 @@
 
 
 // -----------------------------------------------------------------------------
-// HbDeviceMessageBox::iconName
+// HbDeviceMessageBox::setIconVisible
 // -----------------------------------------------------------------------------
 //
-QString HbDeviceMessageBox::iconName(  ) const
+void HbDeviceMessageBox::setIconVisible( bool visible )
     {
-    SMC_MOCK_METHOD0( QString )
+    SMC_MOCK_METHOD1( void, bool, visible )
     }
 
 
 // -----------------------------------------------------------------------------
-// HbDeviceMessageBox::setIconAlignment
+// HbDeviceMessageBox::iconVisible
 // -----------------------------------------------------------------------------
 //
-void HbDeviceMessageBox::setIconAlignment( 
-        Qt::Alignment align )
+bool HbDeviceMessageBox::iconVisible( ) const
     {
-    //SMC_MOCK_METHOD1( void, Qt::Alignment, align )
+    SMC_MOCK_METHOD0( bool )
     }
 
 
 // -----------------------------------------------------------------------------
-// HbDeviceMessageBox::iconAlignment
+// HbDeviceMessageBox::setAnimationDefinition
 // -----------------------------------------------------------------------------
 //
-Qt::Alignment HbDeviceMessageBox::iconAlignment(  ) const
+void HbDeviceMessageBox::setAnimationDefinition( 
+        QString & animationDefinition )
     {
-    //SMC_MOCK_METHOD0( Qt::Alignment )
+    SMC_MOCK_METHOD1( void, QString &, animationDefinition )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbDeviceMessageBox::animationDefinition
+// -----------------------------------------------------------------------------
+//
+QString HbDeviceMessageBox::animationDefinition(  ) const
+    {
+    SMC_MOCK_METHOD0( QString )
     }
 
 
@@ -231,69 +241,6 @@
 
 
 // -----------------------------------------------------------------------------
-// HbDeviceMessageBox::primaryAction
-// -----------------------------------------------------------------------------
-//
-HbAction * HbDeviceMessageBox::primaryAction(  ) const
-    {
-    SMC_MOCK_METHOD0( HbAction * )
-    }
-
-
-// -----------------------------------------------------------------------------
-// HbDeviceMessageBox::setPrimaryAction
-// -----------------------------------------------------------------------------
-//
-void HbDeviceMessageBox::setPrimaryAction( 
-        HbAction * hbAction )
-    {
-    SMC_MOCK_METHOD1( void, HbAction *, hbAction )
-    }
-
-
-// -----------------------------------------------------------------------------
-// HbDeviceMessageBox::secondaryAction
-// -----------------------------------------------------------------------------
-//
-HbAction * HbDeviceMessageBox::secondaryAction(  ) const
-    {
-    SMC_MOCK_METHOD0( HbAction * )
-    }
-
-
-// -----------------------------------------------------------------------------
-// HbDeviceMessageBox::setSecondaryAction
-// -----------------------------------------------------------------------------
-//
-void HbDeviceMessageBox::setSecondaryAction( 
-        HbAction * hbAction )
-    {
-    SMC_MOCK_METHOD1( void, HbAction *, hbAction )
-    }
-
-
-// -----------------------------------------------------------------------------
-// HbDeviceMessageBox::setAnimationDefinition
-// -----------------------------------------------------------------------------
-//
-void HbDeviceMessageBox::setAnimationDefinition( 
-        QString & animationDefinition )
-    {
-    SMC_MOCK_METHOD1( void, QString &, animationDefinition )
-    }
-
-
-// -----------------------------------------------------------------------------
-// HbDeviceMessageBox::animationDefinition
-// -----------------------------------------------------------------------------
-//
-QString HbDeviceMessageBox::animationDefinition(  ) const
-    {
-    SMC_MOCK_METHOD0( QString )
-    }
-
-
-// -----------------------------------------------------------------------------
 // HbDeviceMessageBox::aboutToClose
 // -----------------------------------------------------------------------------
 //
--- a/telutils/keysequencerecognitionservice/tsrc/shared/mock_secui.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_secui.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -65,16 +65,6 @@
 
 
 // -----------------------------------------------------------------------------
-// TSecUi::ResourceFileName
-// -----------------------------------------------------------------------------
-//
-TFileName TSecUi::ResourceFileName(  )
-    {
-    SMC_MOCK_METHOD0( TFileName )
-    }
-
-
-// -----------------------------------------------------------------------------
 // TSecUi::CanBeFreed
 // -----------------------------------------------------------------------------
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_simcontrolkeysequencehandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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 )
+    }
+
+
--- a/telutils/keysequencerecognitionservice/tsrc/shared/mock_xqservicerequest.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/tsrc/shared/mock_xqservicerequest.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -225,7 +225,7 @@
 //
 XQRequestInfo XQServiceRequest::info(  ) const
     {
-    //SMC_MOCK_METHOD0( XQRequestInfo )
+    SMC_MOCK_METHOD0( XQRequestInfo )
     }
 
 
--- a/telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprov.pro	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprov.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -38,7 +38,8 @@
         ../../inc/keysequencehandler.h                    \
         ../../inc/imeikeysequencehandler.h                \
         ../../inc/lifetimerkeysequencehandler.h           \
-        ../../inc/manufacturerkeysequencehandler.h
+        ../../inc/manufacturerkeysequencehandler.h        \
+        ../../inc/simcontrolkeysequencehandler.h
     
     SOURCES +=                                            \
         ../shared/mock_qtranslator.cpp                    \
@@ -46,6 +47,7 @@
         ../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
--- a/telutils/keysequencerecognitionservice/tsrc/ut_manufacturerkeysequencehandler/ut_manufacturerkeysequencehandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_manufacturerkeysequencehandler/ut_manufacturerkeysequencehandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -68,8 +68,7 @@
         QRegExp::escape(KCodeActivateRfsNormal)  + "|" +
         QRegExp::escape(KCodeActivateRfsDeep) + "|" +
         QRegExp::escape(KCodeBtAddress) + "|" +
-        QRegExp::escape(KCodeRFLoopback) + "|" +
-        QRegExp::escape(KCodeBtDebugMode);
+        QRegExp::escape(KCodeRFLoopback);
     
     expect("KeySequenceHandler::setKeySequenceValidator")
         .with(expectedValidator);
@@ -171,21 +170,6 @@
     emit request->requestOk(QVariant(true));
     QVERIFY(request.isNull());
     QCOMPARE(handled, true);
-    
-    request = new XQAiwRequest(dummyDescriptor, QString(""), KIsEmbedded);
-    EXPECT(XQApplicationManager::create)
-        .with(
-            QString("com.nokia.services"), QString("bluetooth"), 
-            QString("activateBluetoothDebugMode()"), KIsEmbedded)
-        .returns(request.data());
-    EXPECT(XQAiwRequest::send).returns(true);
-    
-    handled = m_handler->executeKeySequence(KCodeBtDebugMode);
-    
-    QVERIFY(verify());
-    emit request->requestOk(QVariant(true));
-    QVERIFY(request.isNull());
-    QCOMPARE(handled, true);
 }
 
 
--- a/telutils/keysequencerecognitionservice/tsrc/ut_simcontrolkeysecuencehandler/ut_simcontrolkeysequencehandler.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/telutils/keysequencerecognitionservice/tsrc/ut_simcontrolkeysecuencehandler/ut_simcontrolkeysequencehandler.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -17,7 +17,8 @@
 
 #include <QtGui>
 #include <QtTest/QtTest>
-#include "UT_SimControlKeySequenceHandler.h"
+#include <secuimanualsecuritysettings.h>
+#include "ut_simcontrolkeysequencehandler.h"
 #include "simcontrolkeysequencehandler.h"
 #include "keysequencerecognitionservicedefs.h"
 #include "qtestmains60.h"
@@ -173,10 +174,10 @@
 void UT_SimControlKeySequenceHandler::t_keySequenceValidator()
     {
     QString expectedValidator =
-        QRegExp::escape(KCodeChangePin1) + "|" +
-        QRegExp::escape(KCodeChangePin2) + "|" +
-        QRegExp::escape(KCodeUnblockPin1) + "|" +
-        QRegExp::escape(KCodeUnblockPin2);
+        KCodeChangePin1 + "|" +
+        KCodeChangePin2 + "|" +
+        KCodeUnblockPin1 + "|" +
+        KCodeUnblockPin2;
     
     expect("KeySequenceHandler::setKeySequenceValidator")
         .with(expectedValidator);
--- a/vmbx/vmbxcpplugin/src/actioncustomitem.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxcpplugin/src/actioncustomitem.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -16,7 +16,7 @@
  */
 
 // System includes
-#include <qdebug>
+#include <QDebug>
 #include <QVariant>
 
 #include <hbdataformmodelitem.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxcpplugin/tsrc/inc/ut_actioncustomitem.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxcpplugin/tsrc/src/main.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -1,6 +1,8 @@
 #include <QtTest/QtTest>
 #include "ut_vmbxcpplugin.h"
 #include "ut_vmbxuiengine.h"
+#include "ut_actioncustomitem.h"
+#include "ut_customedit.h"
 
 // -----------------------------------------------------------------------------
 // main()
@@ -10,8 +12,7 @@
     {
     qDebug("main() >");
     
-    //TODO: wk18 QApplication can not be created will casue crash.
-    //QApplication app(argc, argv);
+    QApplication app(argc, argv);
 
     qDebug("ut_vmbxuiengine");
     Ut_VmbxUiEngine tcUiEngine; 
@@ -19,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");
@@ -28,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	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Tue Jul 06 14:53:02 2010 +0300
@@ -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_vmbxuiengine.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxcpplugin/tsrc/src/ut_vmbxuiengine.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxcpplugin/tsrc/ut_vmbxcpplugin.pro	Tue Jul 06 14:53:02 2010 +0300
@@ -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 \
Binary file vmbx/vmbxengine/conf/CI_voicemailbox.confml has changed
--- a/vmbx/vmbxengine/inc/vmbxcsvideoengine.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/inc/vmbxcsvideoengine.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/inc/vmbxcsvoiceengine.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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/vmbxenginebase.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/inc/vmbxenginebase.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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/vmbxvoipengine.h	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/inc/vmbxvoipengine.h	Tue Jul 06 14:53:02 2010 +0300
@@ -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/src/vmbxcsvideoengine.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/src/vmbxcsvideoengine.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/src/vmbxcsvoiceengine.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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/vmbxpbkstore.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/src/vmbxpbkstore.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -178,19 +178,18 @@
             // get als line info
             TVmbxAlsLineType alsLine = VmbxUtilities::AlsLine();
             simEntry->SetVmbxAlsLineType( alsLine );
-            // ALS line on
-            if ( EVmbxAlsLineDefault != alsLine )
+            // ALS line off
+            if ( IsSimFileExisting(EMBDNPhoneBook) && (EVmbxAlsLineDefault == alsLine) )
                 {
-                // ALS line on, only should write to 6f17,
-                // so just check 6f17 file write access
-                iPhoneBookType = EVMBXPhoneBook;
+                // ALS line on and 6f17 exist 
+                // just check 6f17 file write access
+                iPhoneBookType = EMBDNPhoneBook;
                 }
-            // ALS line off
             else
                 {
-                // ALS line on, only should write to 6fc7,
-                //so just check 6fc7 file write access
-                iPhoneBookType = EMBDNPhoneBook;
+                // 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 );
@@ -210,8 +209,8 @@
                     {
                     result = ETrue;
                     }
-                 }
-           }
+                }
+            }
         delete simEntry;
         simEntry = NULL;
         }
@@ -516,7 +515,7 @@
             {
             activeAlsLine = EVmbxAlsLine1;
             }
-         if( !IsActive() && !iWait->IsStarted() )
+        if( !IsActive() && !iWait->IsStarted() )
             {
             result = KErrNone;
             // read vmbx number from 6f17 file
--- a/vmbx/vmbxengine/src/vmbxuiutilities.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/src/vmbxuiutilities.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -88,12 +88,28 @@
         const TVmbxQueryMode & aMode, TDes& aNumber )
     {
     VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL =>" );
+    VMBLOGSTRING3( "VMBX: CVmbxUiUtilities::ShowQueryL: aMode=%d aNumber=%S ",
+                    aMode, &aNumber );
     if ( !iUiHandler ) 
         {
         VMBLOGSTRING( "VMBX: CVmbxUiUtilities::ShowQueryL no qt env Exit" )
         User::Leave(KErrNotSupported);
         }
-    VMBLOGSTRING2( "VMBX: CVmbxUiUtilities::ShowQueryL: aNumber =%S ", &aNumber );
+    
+    // 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
         {
--- a/vmbx/vmbxengine/src/vmbxvoipengine.cpp	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/src/vmbxvoipengine.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -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	Wed Jun 23 18:49:32 2010 +0300
+++ b/vmbx/vmbxengine/src/voicemailboximpl.cpp	Tue Jul 06 14:53:02 2010 +0300
@@ -400,7 +400,7 @@
     CleanupStack::PushL( vmbxBox );
     if ( vmbxBox->CheckConfiguration( params, EVmbxChangeNbrAllowedOnUi ) )
         {
-        vmbxBox->SaveL( aEntry );
+        vmbxBox->SaveL( aEntry, ETrue );
         }
     else
         {