Revision: 201017
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:51:57 +0300
changeset 30 ebdbd102c78a
parent 27 2f8f8080a020
child 32 14cdbae33453
child 36 2eacb6118286
Revision: 201017 Kit: 201019
phoneapp/phoneui2/src/main.cpp
phoneapp/phoneui2/src/phoneuihousehold_p.cpp
phoneapp/phoneuicontrol/group/phoneuicontrol.mmp
phoneapp/phoneuicontrol/src/cphonestate.cpp
phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp
phoneapp/phoneuiqtviewadapter/bwins/phoneuiqtviewadapteru.def
phoneapp/phoneuiqtviewadapter/eabi/phoneuiqtviewadapteru.def
phoneapp/phoneuiqtviewadapter/inc/phoneindicatorcontroller.h
phoneapp/phoneuiqtviewadapter/inc/phoneuiqtviewadapter.h
phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp
phoneapp/phoneuiqtviewadapter/src/phonenotecontroller.cpp
phoneapp/phoneuiqtviewadapter/src/phoneresourceadapter.cpp
phoneapp/phoneuiqtviewadapter/src/phoneuiqtviewadapter.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phonenotecontroller/unit_tests.cpp
phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneresourceadapter/unit_tests.cpp
phoneapp/phoneuistates/src/cphonecallsetup.cpp
phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp
phoneapp/phoneuiutils/bwins/phoneuiutilsu.def
phoneapp/phoneuiutils/eabi/phoneuiutilsu.def
phoneapp/phoneuiutils/inc/phoneconstants.h
phoneapp/phoneuiutils/inc/tphonecmdparamglobalnote.h
phoneapp/phoneuiutils/src/tphonecmdparamglobalnote.cpp
phoneapp/phoneuiview2/bwins/phoneuiqtviewu.def
phoneapp/phoneuiview2/eabi/phoneuiqtviewu.def
phoneapp/phoneuiview2/inc/phoneuiqtview.h
phoneapp/phoneuiview2/phoneuiview2.pro
phoneapp/phoneuiview2/src/phoneuiqtview.cpp
phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/qsysteminfo.cpp
phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/qsysteminfo.h
phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/unit_tests.cpp
phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/ut_phoneuiqtview.pro
phoneengine/callhandling/src/cpecallhandling.cpp
phoneengine/networkhandlingstarter/src/main.cpp
phoneengine/networkhandlingstarter/src/networkhandlingstarter_p.cpp
phoneengine/parserrecognizer/bwins/parserrecognizeru.def
phoneengine/parserrecognizer/eabi/parserrecognizeru.def
phoneengine/parserrecognizer/inc/parserrecognizer.h
phoneengine/parserrecognizer/src/parserrecognizer.cpp
phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/unit_tests.cpp
phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/ut_parserrecognizer.pro
phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/xqservicerequest.h
phoneengine/phonemodel/api_headers.pri
phoneengine/phonemodel/inc/cpeexternaldatahandler.h
phoneengine/phonemodel/inc/cpemessagehandler.h
phoneengine/phonemodel/inc/mpeexternaldatahandler.h
phoneengine/phonemodel/inc/mpekeysequencerecognitionif.h
phoneengine/phonemodel/inc/penetworkhandler.h
phoneengine/phonemodel/phonemodel.pro
phoneengine/phonemodel/src/cpeexternaldatahandler.cpp
phoneengine/phonemodel/src/cpemessagehandler.cpp
phoneengine/phonemodel/src/cpeparserphonenumberhandler.cpp
phoneengine/phonemodel/src/cpephonemodel.cpp
phoneengine/phonemodel/src/penetworkhandler.cpp
phoneengine/phonemodel/tsrc/ut_penetworkhandler/unit_tests.cpp
phoneengine/phonemodel/tsrc/ut_penetworkhandler/ut_penetworkhandler.pro
phoneengine/phoneservices/bwins/phoneservicesu.def
phoneengine/phoneservices/eabi/phoneservicesu.def
phoneengine/phoneservices/inc/dialservice.h
phoneengine/phoneservices/inc/dialservicedepricated.h
phoneengine/phoneservices/inc/dtmfservice.h
phoneengine/phoneservices/inc/dtmfservicedepricated.h
phoneengine/phoneservices/inc/keysequencerecognitionservice.h
phoneengine/phoneservices/inc/keysequencerecognitionservicedepricated.h
phoneengine/phoneservices/inc/phoneservices.h
phoneengine/phoneservices/phoneservices.pri
phoneengine/phoneservices/src/dialservice.cpp
phoneengine/phoneservices/src/dialservicedepricated.cpp
phoneengine/phoneservices/src/dtmfservice.cpp
phoneengine/phoneservices/src/dtmfservicedepricated.cpp
phoneengine/phoneservices/src/keysequencerecognitionservice.cpp
phoneengine/phoneservices/src/keysequencerecognitionservicedepricated.cpp
phoneengine/phoneservices/src/phoneservices.cpp
phoneengine/phoneservices/tsrc/runtests.bat
phoneengine/phoneservices/tsrc/unit.pro
phoneengine/phoneservices/tsrc/ut_dtmfservice/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_keysequencerecognitionservice/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_keysequencerecognitionservice/ut_keysequencerecognitionservice.pro
phoneengine/phoneservices/tsrc/ut_phoneservices/unit_tests.cpp
phoneengine/phoneservices/tsrc/ut_phoneservices/ut_phoneservices.pro
phoneplugins/csplugin/Makefile
phoneplugins/csplugin/Makefile_0xE35130c6.mk
phoneplugins/csplugin/bld.inf
phoneplugins/csplugin/csplugin.loc
phoneplugins/csplugin/csplugin.rss
phoneplugins/csplugin/csplugin_0xE35130c6.mmp
phoneplugins/csplugin/csplugin_armv5_udeb.pkg
phoneplugins/csplugin/csplugin_armv5_urel.pkg
phoneplugins/csplugin/csplugin_armv6_udeb.pkg
phoneplugins/csplugin/csplugin_armv6_urel.pkg
phoneplugins/csplugin/csplugin_gcce_udeb.pkg
phoneplugins/csplugin/csplugin_gcce_urel.pkg
phoneplugins/csplugin/csplugin_reg.rss
phoneplugins/csplugin/src/cspcall.cpp
phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pro
phoneplugins/hsdialerwidgetplugin/hsdialerwidgetpluging.qrc
phoneplugins/hsdialerwidgetplugin/rom/hsdialerwidgetplugin.iby
phoneplugins/hsdialerwidgetplugin/src/hsdialerwidget.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/inc/infowidgetlogging.h
phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/inc/infowidgetlayoutmanager.h
phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidget.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidgetlayoutmanager.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/resource/infowidget.docml
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_hbstyle.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_infowidget.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_infowidgetlayoutmanager.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/inc/ut_infowidgetlayoutmanager.h
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/src/ut_infowidgetlayoutmanager.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/ut_infowidgetlayoutmanager.pro
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetnetworkhandler/inc/ut_infowidgetnetworkhandler.h
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetnetworkhandler/src/ut_infowidgetnetworkhandler.cpp
phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetsathandlerprivate/inc/ut_infowidgetsathandlerprivate.h
phoneplugins/phoneindicatorplugin/inc/phoneindicators.h
phoneplugins/phoneindicatorplugin/src/phoneindicatorinterface.cpp
phonesettings/cpphonesettingsplugins/barringplugin/inc/cpbarringplugingroup.h
phonesettings/cpphonesettingsplugins/barringplugin/src/cpbarringplugingroup.cpp
phonesettings/cpphonesettingsplugins/barringplugin/tsrc/ut_barringplugingroup/ut_barringplugingroup.cpp
phonesettings/cpphonesettingsplugins/barringplugin/tsrc/ut_barringplugingroup/ut_barringplugingroup.h
phonesettings/cpphonesettingsplugins/bwins/cptelephonyutilsu.def
phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp
phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.h
phonesettings/cpphonesettingsplugins/callsplugin/tsrc/ut_callsplugingroup/ut_callsplugingroup.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.h
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.h
phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.cpp
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkplugin/ut_cpnetworkplugin.pro
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_cpnetworkpluginform.pro
phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.h
phonesettings/cpphonesettingsplugins/cpphonesettingsplugins.pro
phonesettings/cpphonesettingsplugins/cptelephonyutils/cptelephonyutils.pro
phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpphonelocalisation.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpphonenotes.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cppluginlogging.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpphonelocalisation.cpp
phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpphonenotes.cpp
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/qtestmains60.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/ut_cpphonelocalisation.cpp
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/ut_cpphonelocalisation.h
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/ut_cpphonelocalisation.pro
phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonenotes/ut_cpphonenotes.cpp
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugin.cpp
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugin.h
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.cpp
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.h
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertselectioncustomitem.cpp
phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertselectioncustomitem.h
phonesettings/cpphonesettingsplugins/eabi/cptelephonyutilsu.def
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.cpp
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.h
phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpbarringplugingroup.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpcallsplugingroup.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginform.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginview.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpphonelocalisation.cpp
phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpphonenotes.cpp
phoneuis/bubblemanager2/bubblecore/bubblecore.qrc
phoneuis/bubblemanager2/bubblecore/resources/bubble_icon_anim.axml
phoneuis/bubblemanager2/bubblecore/resources/qgn_indi_call_muted.svg
phoneuis/bubblemanager2/bubblecore/src/bubblebutton.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblebutton.h
phoneuis/bubblemanager2/bubblecore/src/bubblebuttonstyle.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblebuttonstyle.h
phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.h
phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.h
phoneuis/bubblemanager2/bubblecore/src/bubblecore.pri
phoneuis/bubblemanager2/bubblecore/src/bubbleexpandedhandler.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleexpandedhandler.h
phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.h
phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.h
phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.h
phoneuis/bubblemanager2/bubblecore/src/bubblestyleoption.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleutils.cpp
phoneuis/bubblemanager2/bubblecore/src/bubbleutils.h
phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp
phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.h
phoneuis/bubblemanager2/bubblecore/themes/icons/hbdefault/scalable/qtg_mono_call_diverted.svg
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_1.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_2.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_3.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_4.docml
phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_5.docml
phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.css
phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.widgetml
phoneuis/bubblemanager2/bubblecore/xml/bubbleimagewidget.css
phoneuis/bubblemanager2/bubblecore/xml/bubbleimagewidget.widgetml
phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.css
phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.widgetml
phoneuis/bubblemanager2/bubblemanager2.pro
phoneuis/bubblemanager2/bubblestyle/bubblestyle.pro
phoneuis/bubblemanager2/bubblestyle/bubblestyle.qrc
phoneuis/bubblemanager2/bubblestyle/layout/bubbleheadingwidget.css
phoneuis/bubblemanager2/bubblestyle/layout/bubbleheadingwidget.widgetml
phoneuis/bubblemanager2/bubblestyle/layout/bubbleimagewidget.css
phoneuis/bubblemanager2/bubblestyle/layout/bubbleimagewidget.widgetml
phoneuis/bubblemanager2/bubblestyle/layout/bubbleparticipantlistitem.css
phoneuis/bubblemanager2/bubblestyle/layout/bubbleparticipantlistitem.widgetml
phoneuis/bubblemanager2/bubblestyle/resources/qgn_indi_call_diverted.svg
phoneuis/bubblemanager2/bubblestyle/src/bubbleanimiconitem.cpp
phoneuis/bubblemanager2/bubblestyle/src/bubbleanimiconitem.h
phoneuis/bubblemanager2/bubblestyle/src/bubblestyle.pri
phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.cpp
phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.h
phoneuis/bubblemanager2/inc/bubblemanager2.h
phoneuis/bubblemanager2/inc/bubbleprimitives.h
phoneuis/bubblemanager2/inc/bubblestyleoption.h
phoneuis/bubblemanager2/rom/bubblemanager.iby
phoneuis/bubblemanager2/tsrc/unit/runall.cmd
phoneuis/bubblemanager2/tsrc/unit/shared/bubbletest.h
phoneuis/bubblemanager2/tsrc/unit/unit.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/data/qtg_indi_call_connect.svg
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/data/qtg_indi_call_wait.svg
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/ut_bubbleanimiconitem.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/ut_bubbleanimiconitem.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/ut_bubbleanimiconitem.qrc
phoneuis/bubblemanager2/tsrc/unit/ut_bubblebuttonstyle/ut_bubblebuttonstyle.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubblebuttonstyle/ut_bubblebuttonstyle.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.css
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.widgetml
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.qrc
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleoption/ut_bubblestyleoption.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleoption/ut_bubblestyleoption.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleplugin/ut_bubblestyleplugin.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleplugin/ut_bubblestyleplugin.pro
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp
phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.pro
--- a/phoneapp/phoneui2/src/main.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneui2/src/main.cpp	Fri May 14 15:51:57 2010 +0300
@@ -25,7 +25,7 @@
 
 int main (int argc, char *argv[])
 {
-    HbApplication app (argc, argv);
+    HbApplication app (argc, argv, Hb::NoSplash);
     HbPhoneMainWindow window;
     return app.exec ();
 }
--- a/phoneapp/phoneui2/src/phoneuihousehold_p.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneui2/src/phoneuihousehold_p.cpp	Fri May 14 15:51:57 2010 +0300
@@ -38,6 +38,8 @@
 #include "phoneuicommandadapter.h"
 #include "phonenotecontroller.h"
 #include "qtphonelog.h"
+#include "cphoneclearblacklist.h"
+#include "hbinstance.h"
 
 PhoneUiHouseHoldPrivate::PhoneUiHouseHoldPrivate(HbMainWindow &window) :
     iAppsReady (0), iStartupSignalRecoveryId (0), iLightIdleReached (EFalse),
@@ -209,13 +211,7 @@
         delete translator3;
         translator3 = 0;
     }
-	
-    CEikonEnv* env = CEikonEnv::Static();
-    if ( env ) {
-        env->SetSystem(ETrue);
-    }
-    
-	
+
     PhoneUIQtView *view = new PhoneUIQtView(m_window);
     iViewAdapter = new PhoneUIQtViewAdapter(*view);
     iPhoneUIController = CPhoneUIController::NewL(iViewAdapter);
@@ -232,6 +228,8 @@
     QObject::connect(view, SIGNAL(keyReleased (QKeyEvent *)), iKeyEventAdapter, SLOT(keyReleased (QKeyEvent *)));
     QObject::connect(view, SIGNAL(command (int)), iCommandAdapter, SLOT(handleCommand (int)),
                      Qt::QueuedConnection); // async to enable deletion of widget during signal handling
+    QObject::connect(view, SIGNAL(windowActivated()), iViewAdapter, SLOT(handleWindowActivated()));
+    QObject::connect(view, SIGNAL(windowDeactivated()), iViewAdapter, SLOT(handleWindowDeactivated()));
     
     QObject::connect(iViewAdapter->noteController(), SIGNAL(command (int)), 
                      iCommandAdapter, SLOT(handleCommand (int))); 
@@ -364,5 +362,15 @@
         {
         iOnScreenDialer = ETrue;
         }
+
+     HbMainWindow *main = hbInstance->allMainWindows().at(0);
+    RWindow *win = static_cast<RWindow *>(main->effectiveWinId()->DrawableWindow());
+
+    CEikonEnv* env = CEikonEnv::Static();
+    if ( env ) {
+        env->SetSystem(ETrue);
+        // Blacklist singleton is initialized here
+        CPhoneClearBlacklist::CreateL( env->WsSession(), *win);
+    }
 }
 
--- a/phoneapp/phoneuicontrol/group/phoneuicontrol.mmp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuicontrol/group/phoneuicontrol.mmp	Fri May 14 15:51:57 2010 +0300
@@ -70,6 +70,7 @@
 USERINCLUDE     ../../phoneui2/srcdata
 USERINCLUDE     ../../phoneuistates/inc
 USERINCLUDE     ../../phonemediatorcenter/inc
+USERINCLUDE     ../../phoneuiutils/inc
 
 APP_LAYER_SYSTEMINCLUDE         // Application layer domain APIs
 SYSTEMINCLUDE   ../../../inc    // Telephony internal headers
--- a/phoneapp/phoneuicontrol/src/cphonestate.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestate.cpp	Fri May 14 15:51:57 2010 +0300
@@ -102,6 +102,8 @@
 #include "cphonenumberentrymanager.h"
 #include "tphonecmdparamsfidata.h" 
 #include "mphonestorage.h"
+#include "phoneconstants.h"
+#include "cphoneclearblacklist.h"
 
 // ================= MEMBER FUNCTIONS =======================
 
@@ -810,6 +812,9 @@
         default:
             break;
         }
+
+    // clear call blacklist if call failure occurs
+    CPhoneClearBlacklist::Instance()->ClearBlackListOnNextKey();
     }
 
 // -----------------------------------------------------------
@@ -880,6 +885,8 @@
 
     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId,
         &callHeaderParam );    
+
+    CPhoneClearBlacklist::Instance()->ClearBlackListOnNextKey();
     }
 
 // -----------------------------------------------------------
@@ -1138,7 +1145,7 @@
             {
             HBufC* phoneNumber = PhoneNumberFromEntryLC();
             // Save the phone number
-            __PHONELOG1( EBasic, EPhoneControl, "SetPhoneNumber: %S ", phoneNumber->Des() );
+            __PHONELOG1( EBasic, EPhoneControl, "SetPhoneNumber: %S ", phoneNumber );
             iStateMachine->PhoneEngineInfo()->SetPhoneNumber( *phoneNumber );
 
             // Convert key code to western.
@@ -2848,39 +2855,29 @@
 void CPhoneState::HandleShowImeiL()
     {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleShowImeiL( ) ");
-
-    if ( IsOnScreenDialerSupported() )
-        {
-        NumberEntryClearL();
-        }
-    else
-        {
-        // Remove number entry from screen
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-        }
-
+    
     // Fetch IMEI
     TBuf<RMobilePhone::KPhoneSerialNumberSize> serialNumber;
-    TPEPhoneIdentityParameters phoneIdentityParameters = iStateMachine->
-        PhoneEngineInfo()->PhoneIdentityParameters();
+    TPEPhoneIdentityParameters phoneIdentityParameters = 
+        iStateMachine->PhoneEngineInfo()->PhoneIdentityParameters();
     serialNumber = phoneIdentityParameters.iSerialNumber;
-
-    // Add it to the resource string
-    HBufC* buf = StringLoader::LoadLC(
+    
+    HBufC* imeiNoteText = StringLoader::LoadLC(
         CPhoneMainResourceResolver::Instance()->
         ResolveResourceID(
         EPhonePhoneImeiString ), serialNumber );
-
-    TPhoneCmdParamNote noteParam;
-    noteParam.SetType( EPhoneNoteCustom );
-    noteParam.SetResourceId( CPhoneMainResourceResolver::Instance()->
-        ResolveResourceID( EPhoneInformationWaitNote ) );
-    noteParam.SetText( *buf );
-
-    // Display note
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, &noteParam );
-
-    CleanupStack::PopAndDestroy( buf );
+    
+    TPhoneCmdParamGlobalNote noteParam;
+    noteParam.SetType( EAknGlobalInformationNote );
+    noteParam.SetTone( EAvkonSIDInformationTone );
+    noteParam.SetText( *imeiNoteText );
+    noteParam.SetTimeout( KPhoneNoteNoTimeout );
+    
+    iViewCommandHandle->ExecuteCommandL( 
+        EPhoneViewShowGlobalNote, 
+        &noteParam );
+    
+    CleanupStack::PopAndDestroy( imeiNoteText );
     }
 
 // -----------------------------------------------------------
@@ -2918,51 +2915,43 @@
 void CPhoneState::HandleShowLifeTimerL()
    {
     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleShowLifeTimerL( ) ");
-    if ( IsOnScreenDialerSupported() )
-        {
-        NumberEntryClearL();
-        }
-    else
-        {
-        // Remove number entry from screen
-        iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-        }
-
+    
     // Fetch LifeTime
-    TPELifeTimeData lifeTimeData = iStateMachine->
-        PhoneEngineInfo()->LifeTimerData();
-
+    TPELifeTimeData lifeTimeData = 
+        iStateMachine->PhoneEngineInfo()->LifeTimerData();
+    
     TLocale locale;
     TBuf<KTimerTextLength> lifetimerText;
     lifetimerText.NumFixedWidth(
         lifeTimeData.iHours,
         EDecimal,
         KPhoneLifeTimerHoursLength );
-
-    lifetimerText.Append(locale.TimeSeparator( KTimerMinuteSeparator ) );   // minute seperator
-
+    
+    lifetimerText.Append(locale.TimeSeparator( KTimerMinuteSeparator ) );
+    
     TBuf<KPhoneLifeTimerMinutesLength> mins;
     mins.NumFixedWidth(
         lifeTimeData.iMinutes,
         EDecimal,
         KPhoneLifeTimerMinutesLength );
-
+    
     lifetimerText.Append(mins);
-
-    // Add it to the resource string
+    
     HBufC* buf = StringLoader::LoadLC(
         CPhoneMainResourceResolver::Instance()->
         ResolveResourceID(
         EPhoneLifeTimeFormat ), lifetimerText );
-    TPhoneCmdParamNote noteParam;
-    noteParam.SetType( EPhoneNoteCustom );
-    noteParam.SetResourceId( CPhoneMainResourceResolver::Instance()->
-        ResolveResourceID( EPhoneInformationWaitNote ) );
+    
+    TPhoneCmdParamGlobalNote noteParam;
+    noteParam.SetType( EAknGlobalInformationNote );
+    noteParam.SetTone( EAvkonSIDInformationTone );
     noteParam.SetText( *buf );
-
-    // Display note
-    iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, &noteParam );
-
+    noteParam.SetTimeout( KPhoneNoteNoTimeout );
+    
+    iViewCommandHandle->ExecuteCommandL( 
+        EPhoneViewShowGlobalNote, 
+        &noteParam );
+    
     CleanupStack::PopAndDestroy( buf );
     }
 
--- a/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -121,6 +121,10 @@
     
     switch( aCommand )
         {
+        case EPhoneInCallCmdDialer:
+            iViewCommandHandle->ExecuteCommandL( EPhoneViewOpenDialer );
+            break;
+            
         case EPhoneNumberAcqCmdAddToContacts:
             {
             // If call setup is ongoing then add to contacts query should
@@ -581,10 +585,10 @@
     BeginUiUpdateLC();
         
     // Remove the number entry if it isn't DTMF dialer
-    if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() )
+    /*if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() )
         {
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-        }
+        }*/
     
     // Update the single call
     CPhoneState::UpdateSingleActiveCallL( aCallId );
--- a/phoneapp/phoneuiqtviewadapter/bwins/phoneuiqtviewadapteru.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/bwins/phoneuiqtviewadapteru.def	Fri May 14 15:51:57 2010 +0300
@@ -93,4 +93,6 @@
 	?setHidden@PhoneUIQtViewAdapter@@AAEX_N@Z @ 92 NONAME ; void PhoneUIQtViewAdapter::setHidden(bool)
 	?SetHiddenL@PhoneUIQtViewAdapter@@AAEX_N@Z @ 93 NONAME ; void PhoneUIQtViewAdapter::SetHiddenL(bool)
 	?openContacts@PhoneUIQtViewAdapter@@AAEXXZ @ 94 NONAME ; void PhoneUIQtViewAdapter::openContacts(void)
+	?handleWindowDeactivated@PhoneUIQtViewAdapter@@AAEXXZ @ 95 NONAME ; void PhoneUIQtViewAdapter::handleWindowDeactivated(void)
+	?handleWindowActivated@PhoneUIQtViewAdapter@@AAEXXZ @ 96 NONAME ; void PhoneUIQtViewAdapter::handleWindowActivated(void)
 
--- a/phoneapp/phoneuiqtviewadapter/eabi/phoneuiqtviewadapteru.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/eabi/phoneuiqtviewadapteru.def	Fri May 14 15:51:57 2010 +0300
@@ -106,4 +106,6 @@
 	_ZN20PhoneUIQtViewAdapter10SetHiddenLEb @ 105 NONAME
 	_ZN20PhoneUIQtViewAdapter9setHiddenEb @ 106 NONAME
 	_ZN20PhoneUIQtViewAdapter12openContactsEv @ 107 NONAME
+	_ZN20PhoneUIQtViewAdapter21handleWindowActivatedEv @ 108 NONAME
+	_ZN20PhoneUIQtViewAdapter23handleWindowDeactivatedEv @ 109 NONAME
 
--- a/phoneapp/phoneuiqtviewadapter/inc/phoneindicatorcontroller.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneindicatorcontroller.h	Fri May 14 15:51:57 2010 +0300
@@ -32,6 +32,11 @@
     PhoneIndicatorController(QObject *parent = 0);
     virtual ~PhoneIndicatorController();
     
+    void setActiveCallData( const TDesC &text, const TDesC &icon );
+    void clearActiveCallData();
+    void enableActiveCallIndicator();
+    void disableActiveCallIndicator();
+    
 private slots:
     void updateMissedCallIndicator(const XQSettingsKey &key, const QVariant &value);
     void setMissedallIndicatorData();
@@ -41,6 +46,9 @@
     LogsModel  *m_logsModel;
     LogsFilter *m_missedCallsFilter;
     XQSettingsManager * m_setManager;
+    
+    QString m_cli;
+    QString m_callImage;
     };
 
 #endif /* PHONEINDICATORCONTROLLER_H_ */
--- a/phoneapp/phoneuiqtviewadapter/inc/phoneuiqtviewadapter.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/inc/phoneuiqtviewadapter.h	Fri May 14 15:51:57 2010 +0300
@@ -180,6 +180,20 @@
     */
     void keyReleased(QKeyEvent *event);
     
+    /*!
+        \fn void PhoneUIQtViewAdapter::handleWindowActivated ()
+        
+        PhoneView calls this method when window is activated;
+    */
+    void handleWindowActivated();
+    
+    /*!
+        \fn void PhoneUIQtViewAdapter::handleWindowDeactivated ()
+        
+        PhoneView calls this method when window is deactivated.
+    */
+    void handleWindowDeactivated();
+    
 private:
 
     /*!
--- a/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneindicatorcontroller.cpp	Fri May 14 15:51:57 2010 +0300
@@ -29,7 +29,7 @@
 #endif
 
 PhoneIndicatorController::PhoneIndicatorController(QObject *parent):
-    QObject(parent), m_missedCallsFilter(0), m_logsModel(0)
+    QObject(parent), m_logsModel(0), m_missedCallsFilter(0)
 {
 #ifdef Q_OS_SYMBIAN
     m_setManager = new XQSettingsManager(this);
@@ -63,6 +63,42 @@
 #endif
 }
 
+void PhoneIndicatorController::setActiveCallData( 
+        const TDesC &text, const TDesC &icon )
+{
+    m_cli = QString::fromUtf16 (text.Ptr (), text.Length ());
+    m_callImage = QString::fromUtf16 (icon.Ptr (), icon.Length ());
+}
+
+void PhoneIndicatorController::clearActiveCallData()
+{
+    m_cli.clear();
+    m_callImage.clear();
+    disableActiveCallIndicator();
+}
+
+void PhoneIndicatorController::enableActiveCallIndicator()
+{
+    if (!m_cli.isEmpty()){
+        QString indicatorType(indicatorName(PhoneActiveCallIndicator));
+        QVariantMap parameters;
+        
+        parameters.insert(
+                QVariant(HbIndicatorInterface::PrimaryTextRole ).toString(),
+                m_cli);
+        
+        parameters.insert(QVariant( HbIndicatorInterface::DecorationNameRole).toString(),
+                m_callImage);
+        
+        m_indicator.activate(indicatorType, parameters);
+    }
+}
+void PhoneIndicatorController::disableActiveCallIndicator()
+{
+    QString indicatorType(indicatorName(PhoneActiveCallIndicator));
+    m_indicator.deactivate(indicatorType);
+}
+
 void PhoneIndicatorController::updateMissedCallIndicator(
         const XQSettingsKey &key, const QVariant &value)
 { 
--- a/phoneapp/phoneuiqtviewadapter/src/phonenotecontroller.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phonenotecontroller.cpp	Fri May 14 15:51:57 2010 +0300
@@ -69,33 +69,36 @@
     QString noteString = globalNoteText(globalNoteParam);
     
     if (false == noteString.isNull()) {
-        if (globalNoteParam->WaitForReady()) {
-            HbDeviceMessageBox messageBox(noteString, type);
-            messageBox.setTimeout(HbDialog::StandardTimeout);
-            messageBox.exec();
-        } else {
-            bool showNote(true);
-            for (int i = 0;i<m_messageBoxList.count(); ++i) {
-                // Do not show same note/text several times, e.g when user hits
-                // the end button several times we should show only one "not allowed"
-                // note.
-                if (noteString == m_messageBoxList.at(i)->text()) {
-                    showNote = false;
-                    break;
-                }
+        bool showNote(true);
+        for (int i = 0; i < m_messageBoxList.count(); ++i) {
+            // Do not show same note/text several times, e.g when user hits
+            // the end button several times we should show only one "not allowed"
+            // note.
+            if (noteString == m_messageBoxList.at(i)->text()) {
+                showNote = false;
+                break;
+            }
+        }
+        
+        if (showNote) {
+            QScopedPointer<HbDeviceMessageBox> messageBox( 
+                new HbDeviceMessageBox(noteString, type));
+            
+            int timeout = globalNoteParam->Timeout();
+            if (timeout == 0) {
+                messageBox->setTimeout(HbDialog::StandardTimeout);
+            } else {
+                messageBox->setTimeout(timeout);
             }
             
-            if (showNote) {
-                HbDeviceMessageBox *messageBox = new HbDeviceMessageBox(
-                        noteString, type);
-                messageBox->setTimeout(HbDialog::StandardTimeout);
-                m_messageBoxList.append(messageBox);
-                
-                if (1 == m_messageBoxList.size()) {
-                    QObject::connect(messageBox, SIGNAL(aboutToClose()), 
-                                     this, SLOT(destroyDialog()));            
-                    messageBox->show();
-                }
+            HbDeviceMessageBox *messageBoxPtr = messageBox.data();
+            m_messageBoxList.append(messageBoxPtr);
+            messageBox.take();
+            
+            if (1 == m_messageBoxList.size()) {
+                QObject::connect(messageBoxPtr, SIGNAL(aboutToClose()), 
+                                 this, SLOT(destroyDialog()));
+                messageBoxPtr->show();
             }
         }
     }
@@ -163,7 +166,7 @@
     
     if (m_progressDialog) {
         m_queryCanceledCommand = -1;
-        m_progressDialog->cancel();
+        m_progressDialog->close();
     }
 }
 
@@ -222,7 +225,7 @@
     int sendCommand = m_timeoutCommand;
     if (m_progressDialog) {
         m_queryCanceledCommand = -1;
-        m_progressDialog->cancel();
+        m_progressDialog->close();
     }
     if (sendCommand != -1) {        
         emit command(sendCommand);
@@ -274,7 +277,15 @@
                     noteParam->Text().Length()) ); 
                   
             connect(hbactions.at(0), SIGNAL(triggered()), m_signalMapper, SLOT(map()));
-            m_dtmfNote->setPrimaryAction(hbactions.at(0));
+
+            int count = m_dtmfNote->actions().count();
+            for (int i=count;0<i;i--) {
+                QAction *action = m_dtmfNote->actions().at(i-1);
+                m_dtmfNote->removeAction(action);
+                //TODO
+                //delete action;
+            }
+            m_dtmfNote->addAction(hbactions.at(0));
             m_signalMapper->setMapping(hbactions.at(0), hbactions.at(0)->data().toInt());
             
             QObject::connect(m_dtmfNote, SIGNAL(aboutToClose()), 
@@ -309,11 +320,16 @@
                 m_actions.append(hbactions.at(i));
             }
             
-            if (hbactions.count() == 1) {
-                m_queryNote->setPrimaryAction(hbactions.at(0));
-            } else if (hbactions.count() > 1) {
-                m_queryNote->setPrimaryAction(hbactions.at(0));
-                m_queryNote->setSecondaryAction(hbactions.at(1));
+            int count = m_queryNote->actions().count();
+            for (int i=count;0<i;i--) {
+                QAction *action = m_queryNote->actions().at(i-1);
+                m_queryNote->removeAction(action);
+                //TODO
+                //delete action;
+            }
+            
+            for (int i=0;i<hbactions.count();i++) {
+                m_queryNote->addAction(hbactions.at(i));
             }
             
             m_queryNote->show();
--- a/phoneapp/phoneuiqtviewadapter/src/phoneresourceadapter.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneresourceadapter.cpp	Fri May 14 15:51:57 2010 +0300
@@ -286,7 +286,7 @@
         VA_LIST list;
         VA_START (list, symbianResourceId);
         int intValue = VA_ARG (list, int);
-        text->setText(hbTrId("txt_phone_other_call_ln", intValue));
+        text->setText(hbTrId("txt_phone_other_call_ln").arg(intValue));
         translatedActions [PhoneAction::Text] = text;
         VA_END (list);
         }
@@ -383,7 +383,32 @@
         VA_END (list);
         }
         break;
-        
+    case R_PHONE_IMEI_STRING:
+        {
+        QScopedPointer<PhoneAction> text(new PhoneAction);
+        VA_LIST list;
+        VA_START(list, symbianResourceId);
+        const TDesC *string = static_cast<TDesC*>(VA_ARG(list, TDesC*));
+        QString serialNumber = 
+            QString::fromUtf16(string->Ptr(), string->Length());
+        text->setText(hbTrId("txt_phone_info_serial_no").arg(serialNumber));
+        translatedActions[PhoneAction::Text] = text.take();
+        VA_END(list);
+        }
+        break;
+    case R_PHONEUI_LIFE_TIMER_STRING:
+        {
+        QScopedPointer<PhoneAction> text(new PhoneAction);
+        VA_LIST list;
+        VA_START(list, symbianResourceId);
+        const TDesC *string = static_cast<TDesC*>(VA_ARG(list, TDesC*));
+        QString lifeTimerText =
+            QString::fromUtf16(string->Ptr(), string->Length());
+        text->setText(hbTrId("txt_phone_info_life_timer").arg(lifeTimerText));
+        translatedActions[PhoneAction::Text] = text.take();
+        VA_END(list);
+        }
+        break;
     default:
         break;
     }
@@ -523,7 +548,7 @@
 
 int PhoneResourceAdapter::defaultToolbarResourceId() const
 {
-    return R_PHONEUI_CALLHANDLING_INCOMINGCALL_CBA;
+    return R_PHONEUI_INCALL_DIALER_CBA; //R_PHONEUI_CALLHANDLING_INCOMINGCALL_CBA;
 }
 
 QString PhoneResourceAdapter::convertCommandToString(
--- a/phoneapp/phoneuiqtviewadapter/src/phoneuiqtviewadapter.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneuiqtviewadapter.cpp	Fri May 14 15:51:57 2010 +0300
@@ -209,6 +209,7 @@
         m_view.removeExpandAction(bubble);
         m_bubbleWrapper->removeCallHeader (aCallId);
         m_bubbleWrapper->bubbleManager().endChanges();
+        m_indicatorController->clearActiveCallData();
         }
         break;
     case EPhoneViewRemoveFromConference:
@@ -484,6 +485,16 @@
     }
 }
 
+void PhoneUIQtViewAdapter::handleWindowActivated()
+{
+    m_indicatorController->disableActiveCallIndicator();
+}
+
+void PhoneUIQtViewAdapter::handleWindowDeactivated()
+{
+    m_indicatorController->enableActiveCallIndicator();
+}
+
 void PhoneUIQtViewAdapter::setTopApplication (TPhoneCommandParam *commandParam)
 {
     TPhoneCmdParamInteger *integerParam = static_cast<TPhoneCmdParamInteger *> (commandParam);
@@ -548,6 +559,7 @@
     if (1 == m_bubbleWrapper->bubbles().keys().count()) {
         setHidden(false);
     }
+    m_indicatorController->setActiveCallData( data.CLIText(), KNullDesC );
 }
 
 void PhoneUIQtViewAdapter::createEmergencyCallHeader(
@@ -1028,6 +1040,7 @@
             m_bubbleWrapper->bubbleManager().endChanges();
         }
     }
+    m_indicatorController->clearActiveCallData();
 }
 
 void PhoneUIQtViewAdapter::getNumberFromDialpad(
@@ -1074,13 +1087,15 @@
 
 void PhoneUIQtViewAdapter::setCallMenu()
 {
-    int bubbleId = m_bubbleWrapper->bubbleManager().expandedBubble();
-    int callId = m_bubbleWrapper->callIdByBubbleId(bubbleId);
-    m_uiCommandController->setCallMenuActions(
-            m_bubbleWrapper->callStates(),
-            m_bubbleWrapper->serviceIds(),
-            m_bubbleWrapper->serviceIdByCallId(callId),
-            callId );
+    if ( 0<m_bubbleWrapper->callStates().keys().size() ) {
+        int bubbleId = m_bubbleWrapper->bubbleManager().expandedBubble();
+        int callId = m_bubbleWrapper->callIdByBubbleId(bubbleId);
+        m_uiCommandController->setCallMenuActions(
+                m_bubbleWrapper->callStates(),
+                m_bubbleWrapper->serviceIds(),
+                m_bubbleWrapper->serviceIdByCallId(callId),
+                callId );
+    }
 
 }
 
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonenotecontroller/unit_tests.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonenotecontroller/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -26,6 +26,7 @@
 #include "tphonecmdparamglobalnote.h"
 #include "tphonecmdparamquery.h"
 #include "phoneresourceadapter.h"
+#include "phoneconstants.h"
 
 #define PHONE_QT_NOTE_CONTROLLER_TEST_MAIN(TestObject) \
 int main(int argc, char *argv[]) \
@@ -100,11 +101,14 @@
 void TestPhoneNoteController::testShowGlobalNoteDefault ()
 {
     TPhoneCmdParamGlobalNote globalNoteParam;
+    globalNoteParam.SetTimeout(0);
     globalNoteParam.SetWaitForReady(ETrue);
-    
     m_noteController->showGlobalNote(&globalNoteParam);
+    QTest::qWait(2500);
     
-    QTest::qWait(5000);
+    globalNoteParam.SetTimeout(KPhoneNoteNoTimeout);
+    m_noteController->showGlobalNote(&globalNoteParam);
+    QTest::qWait(2500);
 }
 
 void TestPhoneNoteController::testShowGlobalInfoNoteWithResourceId ()
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneresourceadapter/unit_tests.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneresourceadapter/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -233,6 +233,16 @@
     action = map[PhoneAction::Text];
     QVERIFY( false == action->text().isEmpty() );
     
+    map = m_resourceAdapter->convert(R_PHONE_IMEI_STRING, &buffer);
+    QCOMPARE(map.size(), 1);
+    action = map[PhoneAction::Text];
+    QVERIFY( false == action->text().isEmpty() );
+
+    map = m_resourceAdapter->convert(R_PHONEUI_LIFE_TIMER_STRING, &buffer);
+    QCOMPARE(map.size(), 1);
+    action = map[PhoneAction::Text];
+    QVERIFY( false == action->text().isEmpty() );
+    
     // TODO
     map = m_resourceAdapter->convert (R_PHONEUI_CALLHANDLING_INCALL_HANDSET_CBA);
     
--- a/phoneapp/phoneuistates/src/cphonecallsetup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonecallsetup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -175,12 +175,12 @@
         &callHeaderParam );
 
     // Remove the number entry if it isn't DTMF dialer
-    if ( !iOnScreenDialer ||
+    /*if ( !iOnScreenDialer ||
          !IsNumberEntryVisibleL() ||
          !IsDTMFEditorVisibleL() )
         {
         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
-        }
+        }*/
 
     SetToolbarButtonLoudspeakerEnabled();
 
--- a/phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphonetwosinglesandwaiting.cpp	Fri May 14 15:51:57 2010 +0300
@@ -166,7 +166,10 @@
         case MEngineMonitor::EPEMessageIdle:
             HandleIdleL( aCallId );
             break;
-            
+        case MEngineMonitor::EPEMessageConnected:
+            UpdateInCallCbaL();
+            CPhoneTwoSingles::HandlePhoneEngineMessageL( aMessage, aCallId );
+            break;           
         default:
             CPhoneTwoSingles::HandlePhoneEngineMessageL( aMessage, aCallId );
             break;
--- a/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiutils/bwins/phoneuiutilsu.def	Fri May 14 15:51:57 2010 +0300
@@ -313,4 +313,6 @@
 	?Bitmap@TPhoneCmdParamBitmap@@QBEPAVCFbsBitmap@@XZ @ 312 NONAME ; class CFbsBitmap * TPhoneCmdParamBitmap::Bitmap(void) const
 	?SetTone@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 313 NONAME ; void TPhoneCmdParamGlobalNote::SetTone(int)
 	?After@CPhoneTimer@@QAEXVTTimeIntervalMicroSeconds32@@VTCallBack@@@Z @ 314 NONAME ; void CPhoneTimer::After(class TTimeIntervalMicroSeconds32, class TCallBack)
+	?SetTimeout@TPhoneCmdParamGlobalNote@@QAEXH@Z @ 315 NONAME ; void TPhoneCmdParamGlobalNote::SetTimeout(int)
+	?Timeout@TPhoneCmdParamGlobalNote@@QBEHXZ @ 316 NONAME ; int TPhoneCmdParamGlobalNote::Timeout(void) const
 
--- a/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiutils/eabi/phoneuiutilsu.def	Fri May 14 15:51:57 2010 +0300
@@ -416,4 +416,6 @@
 	_ZThn4_N26CPhoneResourceResolverBaseD1Ev @ 415 NONAME
 	_ZThn4_NK13CPhoneStorage17GetBlockedKeyListEv @ 416 NONAME
 	_ZThn4_NK26CPhoneResourceResolverBase17ResolveResourceIDERKi @ 417 NONAME
+	_ZN24TPhoneCmdParamGlobalNote10SetTimeoutEi @ 418 NONAME
+	_ZNK24TPhoneCmdParamGlobalNote7TimeoutEv @ 419 NONAME
 
--- a/phoneapp/phoneuiutils/inc/phoneconstants.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/phoneconstants.h	Fri May 14 15:51:57 2010 +0300
@@ -223,6 +223,7 @@
 // From CPhoneNoteUtilities
 const TInt KPhoneNoteSoftkeysUseDefault = 0;
 const TInt KPhoneNoteGraphicNone = -1;
+const TInt KPhoneNoteNoTimeout = -1;
 
 // State machine ordinal number
 static const TInt KPhoneUiStateMachineOrdinal = 1;
--- a/phoneapp/phoneuiutils/inc/tphonecmdparamglobalnote.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiutils/inc/tphonecmdparamglobalnote.h	Fri May 14 15:51:57 2010 +0300
@@ -80,6 +80,13 @@
         */
         IMPORT_C void SetSoftkeys( TInt aSoftkeys );
 
+        /**
+        * Sets timeout for a note.
+        * @param    aTimeout    Timeout in milliseconds. If timeout == 0 then 
+        * default timeout is used. If timeout < 0 the note is not closed 
+        * automatically.
+        */
+        IMPORT_C void SetTimeout( TInt aTimeout );
         
         /**
         * Returns the global note type
@@ -115,8 +122,14 @@
         * Returns the global note softkeys.
         * @return Returns the global note softkeys
         */
-        IMPORT_C TInt Softkeys() const;      
- 
+        IMPORT_C TInt Softkeys() const;
+        
+        /**
+         * Returns the timeout value.
+         * @return   Timeout value.
+         */
+        IMPORT_C TInt Timeout() const;
+    
     private:    
         
         /**
@@ -148,7 +161,11 @@
         * Global note softkeys
         */
         TInt iSoftkeys;
-
+        
+        /**
+        * Timeout for a note.
+        */
+        TInt iTimeout;
     };
 
 #endif // __TPHONECMDPARAMGLOBALNOTE_H
--- a/phoneapp/phoneuiutils/src/tphonecmdparamglobalnote.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiutils/src/tphonecmdparamglobalnote.cpp	Fri May 14 15:51:57 2010 +0300
@@ -35,8 +35,9 @@
     iTextResourceId( 0 ),
     iText( KNullDesC ),
     iTone( EAvkonSIDErrorTone ),
-    iWaitforReady ( EFalse )
-    ,iSoftkeys( 0 )
+    iWaitforReady ( EFalse ),
+    iSoftkeys( 0 ),
+    iTimeout( 0 )
     {
     iParamId = EPhoneParamIdGlobalNote;
     }
@@ -112,6 +113,17 @@
    }
 
 // ---------------------------------------------------------
+// TPhoneCmdParamGlobalNote::SetTimeout
+// Sets the timeout value for a note.
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+EXPORT_C void TPhoneCmdParamGlobalNote::SetTimeout( TInt aTimeout )
+{
+    iTimeout = aTimeout;
+}
+
+// ---------------------------------------------------------
 // TPhoneCmdParamGlobalNote::Type
 // Returns the global note type
 // (other items were commented in a header).
@@ -177,4 +189,14 @@
    return iSoftkeys;
    }
 
+// ---------------------------------------------------------
+// TPhoneCmdParamGlobalNote::Timeout
+// Returns the timeout value.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt TPhoneCmdParamGlobalNote::Timeout() const
+    {
+    return iTimeout;
+    }
+
 //  End of File  
--- a/phoneapp/phoneuiview2/bwins/phoneuiqtviewu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/bwins/phoneuiqtviewu.def	Fri May 14 15:51:57 2010 +0300
@@ -1,4 +1,5 @@
-EXPORTS	?setExpandAction@PhoneUIQtView@@UAEXHH@Z @ 1 NONAME ; void PhoneUIQtView::setExpandAction(int, int)
+EXPORTS
+	?setExpandAction@PhoneUIQtView@@UAEXHH@Z @ 1 NONAME ; void PhoneUIQtView::setExpandAction(int, int)
 	?keyPressed@PhoneUIQtView@@IAEXPAVQKeyEvent@@@Z @ 2 NONAME ; void PhoneUIQtView::keyPressed(class QKeyEvent *)
 	?volumeSliderChanged@PhoneUIQtView@@QAEXH@Z @ 3 NONAME ; void PhoneUIQtView::volumeSliderChanged(int)
 	?menuReference@PhoneUIQtView@@UAEAAVHbMenu@@XZ @ 4 NONAME ; class HbMenu & PhoneUIQtView::menuReference(void)
@@ -59,4 +60,5 @@
 	?setVolumeSliderValue@PhoneUIQtView@@UAEXHHHH@Z @ 59 NONAME ; void PhoneUIQtView::setVolumeSliderValue(int, int, int, int)
 	?clearAndHideDialpad@PhoneUIQtView@@UAEXXZ @ 60 NONAME ; void PhoneUIQtView::clearAndHideDialpad(void)
 	?isDisabled@PhoneAction@@QBE_NXZ @ 61 NONAME ; bool PhoneAction::isDisabled(void) const
+	?networkNameChanged@PhoneUIQtView@@QAEXW4NetworkMode@QSystemNetworkInfo@QtMobility@@ABVQString@@@Z @ 62 NONAME ; void PhoneUIQtView::networkNameChanged(enum QtMobility::QSystemNetworkInfo::NetworkMode, class QString const &)
 
--- a/phoneapp/phoneuiview2/eabi/phoneuiqtviewu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/eabi/phoneuiqtviewu.def	Fri May 14 15:51:57 2010 +0300
@@ -89,4 +89,7 @@
 	_ZThn28_N13PhoneUIQtView27clearParticipantListActionsEv @ 88 NONAME
 	_ZThn8_N13PhoneUIQtViewD0Ev @ 89 NONAME
 	_ZThn8_N13PhoneUIQtViewD1Ev @ 90 NONAME
+	_ZN13PhoneUIQtView18networkNameChangedEN10QtMobility18QSystemNetworkInfo11NetworkModeERK7QString @ 91 NONAME
+	_ZN13PhoneUIQtView15windowActivatedEv @ 92 NONAME
+	_ZN13PhoneUIQtView17windowDeactivatedEv @ 93 NONAME
 
--- a/phoneapp/phoneuiview2/inc/phoneuiqtview.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/inc/phoneuiqtview.h	Fri May 14 15:51:57 2010 +0300
@@ -22,6 +22,7 @@
 #include <hbview.h>
 #include "phoneuiqtviewif.h"
 #include <bubblemanagerif.h>
+#include <qsysteminfo.h>
 
 class BubbleManager;
 class HbAction;
@@ -37,6 +38,9 @@
 #define PHONEUIQTVIEW_EXPORT Q_DECL_IMPORT
 #endif
 
+using namespace QtMobility;
+
+
 class PHONEUIQTVIEW_EXPORT PhoneUIQtView : public HbView, public PhoneUIQtViewIF
 {
     Q_OBJECT
@@ -265,6 +269,13 @@
     */
     void shutdownPhoneApp();
     
+    /*!
+        \fn void PhoneUIQtView::networkNameChanged(QSystemNetworkInfo::NetworkMode mode, const QString &netName)
+        
+        Network name change is informed via this method.
+    */
+    void networkNameChanged(QSystemNetworkInfo::NetworkMode mode, const QString &netName);
+    
    
 signals:
 
@@ -296,6 +307,19 @@
     */
     void dialpadIsAboutToClose();
     
+    /*!
+         \fn void windowActivated();
+         
+         This signal is emitted when window is activated
+     */
+    void windowActivated();
+    
+    /*!
+         \fn void windowDeactivated();
+         
+         This signal is emitted when window is deactivated
+     */
+    void windowDeactivated();
     
 protected:
 
@@ -346,6 +370,7 @@
     Dialpad             *m_dialpad;
     QSignalMapper       *m_menuSignalMapper;
     XqKeyCapture        *m_keyCapture;
+    QSystemNetworkInfo  *m_networkInfo;
 };
 
 #endif // PHONEUIQTVIEW_H
--- a/phoneapp/phoneuiview2/phoneuiview2.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/phoneuiview2.pro	Fri May 14 15:51:57 2010 +0300
@@ -17,7 +17,8 @@
 
 TEMPLATE = lib
 TARGET = phoneuiqtview
-CONFIG += hb
+CONFIG += hb mobility
+MOBILITY += systeminfo
 
 symbian {
     TARGET.CAPABILITY = ALL -TCB
--- a/phoneapp/phoneuiview2/src/phoneuiqtview.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/src/phoneuiqtview.cpp	Fri May 14 15:51:57 2010 +0300
@@ -39,9 +39,14 @@
     m_expandSignalMapper(0),
     m_participantListSignalMapper(0),
     m_volumeCommandId(0),
-    m_keyCapture(0)
+    m_keyCapture(0),
+    m_networkInfo(0)
 {
-    setTitle(hbTrId("txt_phone_title_telephone"));
+    // Set network name
+    m_networkInfo = new QSystemNetworkInfo(this);
+    QString networkName = m_networkInfo->networkName(QSystemNetworkInfo::GsmMode);
+    connect(m_networkInfo, SIGNAL (networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)), this, SLOT(networkNameChanged(QSystemNetworkInfo::NetworkMode, QString)));
+    setTitle(networkName);
 
     // Capturing long press of end key
     m_keyCapture = new XqKeyCapture();
@@ -439,7 +444,15 @@
         keyEvent->accept();
         
         return false;
-    } else {
+    } else if (event->type() == QEvent::WindowActivate){
+        PHONE_DEBUG("PhoneUIQtView::eventFilter WindowActivate");
+        emit windowActivated();
+        return false;
+    } else if (event->type() == QEvent::WindowDeactivate){
+        PHONE_DEBUG("PhoneUIQtView::eventFilter WindowDeactivate");
+        emit windowDeactivated();
+        return false;
+    }else{
         return false;
     }
 }
@@ -500,3 +513,10 @@
         setNavigationAction(0);
     }
 }
+
+void PhoneUIQtView::networkNameChanged(QSystemNetworkInfo::NetworkMode mode, const QString &netName)
+{
+    if(mode == QSystemNetworkInfo::GsmMode) {
+        setTitle(netName);
+    }	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/qsysteminfo.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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 "qsysteminfo.h"
+
+QSystemNetworkInfo::QSystemNetworkInfo(QObject *parent) : QObject(parent)
+{
+	
+}
+
+QString QSystemNetworkInfo::networkName(QSystemNetworkInfo::NetworkMode mode)
+{
+    QString networkName = "Unit test network";
+    return networkName;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/qsysteminfo.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+#ifndef QSYSTEMINFO_H
+#define QSYSTEMINFO_H
+
+#include <QObject>
+
+namespace QtMobility {
+	
+}
+
+class QSystemNetworkInfo : public QObject
+{
+    Q_OBJECT
+
+public:
+
+    enum NetworkMode {
+        UnknownMode=0,
+        GsmMode,
+        CdmaMode,
+        WcdmaMode,
+        WlanMode,
+        EthernetMode,
+        BluetoothMode,
+        WimaxMode
+    };
+    
+    QSystemNetworkInfo (QObject *parent = 0);
+    virtual ~QSystemNetworkInfo () {};
+    static QString networkName(QSystemNetworkInfo::NetworkMode mode);
+    	
+signals:
+	  void networkNameChanged(QSystemNetworkInfo::NetworkMode,const QString &);
+
+private:
+    
+};
+
+#endif // QSYSTEMINFO_H
--- a/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/unit_tests.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -43,7 +43,7 @@
 static const int KVOLUMECOMMAND = 5;
 
 bool m_qtimer_stop_called;
-
+QString m_networkName;
 
 #define PHONE_QT_VIEW_TEST_MAIN(TestObject) \
 int main(int argc, char *argv[]) \
@@ -93,6 +93,7 @@
     void testDialpadText();
     void testSetMenuActions();
     void testLongEndKeyPressEventOutsideTelephony();
+    void testNetworkNameChanged();
 
 private:
     int createCallHeader();
@@ -118,8 +119,9 @@
 
 void TestPhoneUIQtView::initTestCase ()
 {	
-    m_main_window = new HbMainWindow(); 
+    m_main_window = new HbMainWindow();
     m_view = new PhoneUIQtView(*m_main_window);
+    QCOMPARE(m_networkName, QString("Unit test network"));
 }
 
 void TestPhoneUIQtView::cleanupTestCase ()
@@ -401,6 +403,22 @@
     QCOMPARE(spy.count(), 1);*/
 }
 
+void TestPhoneUIQtView::testNetworkNameChanged()
+{
+    // Title is changed only for GmsMode
+    m_view->networkNameChanged(QSystemNetworkInfo::GsmMode, QString("test"));
+    QCOMPARE(m_networkName, QString("test"));
+
+    // Other modes shouldn't affect the title
+    m_view->networkNameChanged(QSystemNetworkInfo::CdmaMode, QString("another operator"));
+    QCOMPARE(m_networkName, QString("test"));
+}
+
+void HbView::setTitle (const QString &title)
+{
+    m_networkName = title;
+}
+
 PHONE_QT_VIEW_TEST_MAIN(TestPhoneUIQtView)
 Q_DECLARE_METATYPE(QKeyEvent *)
 #include "unit_tests.moc"
--- a/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/ut_phoneuiqtview.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneapp/phoneuiview2/tsrc/ut_phoneuiqtview/ut_phoneuiqtview.pro	Fri May 14 15:51:57 2010 +0300
@@ -20,7 +20,8 @@
 TARGET.UID3 = 0xEA9BEF3F
 DEPENDPATH += . ../../src/
 INCLUDEPATH += .
-CONFIG += hb qtestlib
+CONFIG += hb qtestlib //mobility
+//MOBILITY += systeminfo
 
 symbian {
 
@@ -55,10 +56,12 @@
            ../../inc/phoneuiqtviewif.h \
            ../../inc/phoneaction.h \
            hbtoolbar.h \
-           hbvolumesliderpopup.h
+           hbvolumesliderpopup.h \
+           qsysteminfo.h
 SOURCES += ../../src/phoneuiqtview.cpp \
            ../../src/phoneaction.cpp \
            unit_tests.cpp \
            hbtoolbar.cpp \
-           hbvolumesliderpopup.cpp 
+           hbvolumesliderpopup.cpp \
+           qsysteminfo.cpp 
            
--- a/phoneengine/callhandling/src/cpecallhandling.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/callhandling/src/cpecallhandling.cpp	Fri May 14 15:51:57 2010 +0300
@@ -2407,15 +2407,13 @@
     if ( callType == CCPCall::ECallTypeCSVoice || callType == CCPCall::ECallTypeVideo )
         {
         const CCCECallParameters& params = static_cast<const CCCECallParameters&>( parameters );
-        
-        // do not overwrite if it's client call, which CCE is not aware of 
-        if ( iModel.DataStore()->CallOrigin( aCallId ) == EPECallOriginPhone )
-            {                                                
-            if ( params.Origin() == CCCECallParameters::ECCECallOriginSAT )
-                {
-                iModel.DataStore()->SetCallOrigin( EPECallOriginSAT, aCallId );
-                }
-            }                    
+                                                    
+        if ( params.Origin() == CCCECallParameters::ECCECallOriginSAT )
+            {
+            iModel.DataStore()->SetCallOrigin( EPECallOriginSAT, aCallId );
+            iModel.DataStore()->SetRemoteName( params.AlphaId(), aCallId );
+            iModel.DataStore()->SetRemotePhoneNumber( KNullDesC(), aCallId );
+            }                 
         }                
     }
 
--- a/phoneengine/networkhandlingstarter/src/main.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/networkhandlingstarter/src/main.cpp	Fri May 14 15:51:57 2010 +0300
@@ -15,7 +15,7 @@
  *
  */
 #include <QLocale>
-#include <QTranslator>
+#include <hbtranslator.h>
 #include <hbapplication.h>
 #include <hbmainwindow.h>
 #include <networkhandlingstarter.h>
@@ -27,23 +27,19 @@
 {
     HbApplication app(argc, argv);
     
-    // Load telephone_cp translator
-    QTranslator translator; 
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    bool translatorLoaded = translator.load(path + "telephone_cp_" + lang);
-    if (translatorLoaded) {
-        app.installTranslator(&translator);
-    }
-    // Load common translator
-    QTranslator commontranslator;
-    translatorLoaded = commontranslator.load( path + "common_" + lang);
-    if (translatorLoaded) {
-        app.installTranslator(&commontranslator);
-    }
+    // Load translators
+    HbTranslator *commonTranslator = new HbTranslator("common");
+    HbTranslator *control_panelTranslator = new HbTranslator("control_panel");
+    HbTranslator *telephone_cpTranslator = new HbTranslator("telephone_cp"); 
     
     HbMainWindow mainWindow;
     NetworkHandlingStarter service;
-    return app.exec();
+    int err = app.exec();
+    
+    delete commonTranslator;
+    delete control_panelTranslator;
+    delete telephone_cpTranslator;
+    
+    return err;
 }
 
--- a/phoneengine/networkhandlingstarter/src/networkhandlingstarter_p.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/networkhandlingstarter/src/networkhandlingstarter_p.cpp	Fri May 14 15:51:57 2010 +0300
@@ -70,9 +70,9 @@
         hbTrId("txt_phone_info_network_lost_select_network"), 
         HbMessageBox::MessageTypeQuestion);
     HbAction *primaryAction = new HbAction(hbTrId("txt_common_button_yes"), m_note);
-    m_note->setPrimaryAction(primaryAction);
+    m_note->setAction(primaryAction, HbDeviceMessageBox::AcceptButtonRole); 
     HbAction *secondaryAction = new HbAction(hbTrId("txt_common_button_no"), m_note);
-    m_note->setSecondaryAction(secondaryAction);
+    m_note->setAction(secondaryAction,HbDeviceMessageBox::RejectButtonRole); 
     QObject::connect(
         primaryAction, SIGNAL(triggered()),
         this, SLOT(LaunchCpNetworkPluginView()));
--- a/phoneengine/parserrecognizer/bwins/parserrecognizeru.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/bwins/parserrecognizeru.def	Fri May 14 15:51:57 2010 +0300
@@ -12,4 +12,6 @@
 	??1ParserRecognizer@@UAE@XZ @ 11 NONAME ; ParserRecognizer::~ParserRecognizer(void)
 	?qt_metacall@ParserRecognizer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12 NONAME ; int ParserRecognizer::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?trUtf8@ParserRecognizer@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString ParserRecognizer::trUtf8(char const *, char const *, int)
+	?requestCompleted@ParserRecognizer@@AAEXABVQVariant@@@Z @ 14 NONAME ; void ParserRecognizer::requestCompleted(class QVariant const &)
+	?requestError@ParserRecognizer@@AAEXH@Z @ 15 NONAME ; void ParserRecognizer::requestError(int)
 
--- a/phoneengine/parserrecognizer/eabi/parserrecognizeru.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/eabi/parserrecognizeru.def	Fri May 14 15:51:57 2010 +0300
@@ -12,4 +12,6 @@
 	_ZNK16ParserRecognizer10metaObjectEv @ 11 NONAME
 	_ZTI16ParserRecognizer @ 12 NONAME
 	_ZTV16ParserRecognizer @ 13 NONAME
+	_ZN16ParserRecognizer16requestCompletedERK8QVariant @ 14 NONAME
+	_ZN16ParserRecognizer12requestErrorEi @ 15 NONAME
 
--- a/phoneengine/parserrecognizer/inc/parserrecognizer.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/inc/parserrecognizer.h	Fri May 14 15:51:57 2010 +0300
@@ -1,5 +1,5 @@
 /*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,15 +11,15 @@
 *
 * Contributors:
 *
-* Description:  Recognizes the parser messages that needs to be notified to the world
-*               using QtHighway.
-*
+* Description:  Recognizes the parser messages that needs to be notified to 
+*               the world using QtHighway.
 */
 
 #ifndef PARSERRECOGNIZER_H
 #define PARSERRECOGNIZER_H
 
 #include <QObject>
+#include <xqservicerequest.h>
 
 #ifdef BUILD_PARSERRECOGNIZER
 #define PARSERRECOGNIZER_EXPORT Q_DECL_EXPORT
@@ -30,6 +30,7 @@
 class PARSERRECOGNIZER_EXPORT ParserRecognizer : public QObject
 {
     Q_OBJECT
+
 public:
     ParserRecognizer(QObject *parent = 0);
     ~ParserRecognizer();
@@ -42,7 +43,13 @@
         QtHighway. If message isn't recognized it doesn't do anything.
     */
     void sendMessage(const int message, const int callId);
+
+private slots:
+    void requestCompleted(const QVariant &returnValue);
+    void requestError(int error);
     
+private:
+    XQServiceRequest *m_currentRequest;
 };
 
 #endif // PARSERRECOGNIZER_H
--- a/phoneengine/parserrecognizer/src/parserrecognizer.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/src/parserrecognizer.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1,5 +1,5 @@
 /*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,9 +11,8 @@
 *
 * Contributors:
 *
-* Description:  Recognizes the parser messages that needs to be notified to the world
-*               using QtHighway.
-*
+* Description:  Recognizes the parser messages that needs to be notified to 
+*               the world using QtHighway.
 */
 
 #include <xqservicerequest.h>
@@ -21,12 +20,16 @@
 #include "parserrecognizer.h"
 #include "qtphonelog.h"
 
-ParserRecognizer::ParserRecognizer(QObject* parent) : QObject (parent)
+ParserRecognizer::ParserRecognizer(QObject* parent) 
+    : 
+    QObject(parent),
+    m_currentRequest(0)
 {
 }
 
 ParserRecognizer::~ParserRecognizer()
 {
+    delete m_currentRequest;
 }
 
 void ParserRecognizer::sendMessage(const int message, const int callId)
@@ -42,62 +45,83 @@
         api = "com.nokia.services.telephony";
         method = "activateDeepRestoreFactorySettings()";
         break;
-        
+    
     case MEngineMonitor::EPEMessageActivateRfsNormal:
         api = "com.nokia.services.telephony";
         method = "activateNormalRestoreFactorySettings()";
         break;
-        
-    case MEngineMonitor::EPEMessageActivateWarrantyMode:
-        api = "com.nokia.services.telephony";
-        method = "activateWarrantyMode()";
-        break;
-        
+    
     case MEngineMonitor::EPEMessageShowBTDeviceAddress:
         api = "com.nokia.services.bluetooth";
         method = "showBluetoothDeviceAddress()";
         break;
-        
+    
     case MEngineMonitor::EPEMessageShowBTLoopback:
         api = "com.nokia.services.bluetooth";
         method = "showBluetoothLoopback()";
         break;
-        
+    
     case MEngineMonitor::EPEMessageBTDebugMode:
         api = "com.nokia.services.bluetooth";
         method = "activateBluetoothDebugMode()";
         break;
-
-    case MEngineMonitor::EPEMessageShowIMEI:
-        api = "com.nokia.services.telephony";
-        method = "showIMEICode()";
-        break;
-        
+    
     case MEngineMonitor::EPEMessageShowVersion:
-        api = "com.nokia.services.telephony";
+        api = "com.nokia.services.devicemanager";
         method = "showVersionNumber()";
         break;
-        
-    case MEngineMonitor::EPEMessageShowWlanMacAddress:
-        api = "com.nokia.services.wlan";
-        method = "showWLANMacAddress()";
-        break;
-        
+    
     case MEngineMonitor::EPEMessageSSRequestFailed:
         api = "com.nokia.services.telephony";
         method = "supplementaryServiceRequestFailed()";
         break;
-              
+    
     default:
       recognized = false;
       break;        
     }
     
-    if(recognized) {
+    if (recognized && (!m_currentRequest)) {
         PHONE_DEBUG2("ParserRecognizer::sendMessage api:", api);
         PHONE_DEBUG2("ParserRecognizer::sendMessage method:", method);
-        XQServiceRequest snd(api, method);
-        QVariant err;
-        snd.send(err);
+        m_currentRequest = new XQServiceRequest(api, method, false);
+        // Due to a Qt Highway bug in assignment operator implementation we 
+        // need to set request as asynchronous with a setter function.
+        m_currentRequest->setSynchronous(false);
+        connect(
+            m_currentRequest, SIGNAL(requestCompleted(const QVariant &)), 
+            this, SLOT(requestCompleted(const QVariant &)));
+        connect(
+            m_currentRequest, SIGNAL(requestError(int)), 
+            this, SLOT(requestError(int)));
+        
+        int exceptionAsError = 0;
+        bool requestOk = false;
+        QT_TRYCATCH_ERROR(
+            exceptionAsError, requestOk = m_currentRequest->send());
+        if ((0 != exceptionAsError) || (!requestOk)) {
+            PHONE_DEBUG2("ParserRecognizer::sendMessage exceptionAsError:", 
+                exceptionAsError);
+            PHONE_DEBUG2("ParserRecognizer::sendMessage requestOk:", 
+                requestOk);
+            requestCompleted(QVariant());
+        }
     }
 }
+
+void ParserRecognizer::requestCompleted(const QVariant &returnValue)
+{
+    PHONE_DEBUG("ParserRecognizer::requestCompleted");
+    Q_UNUSED(returnValue);
+    
+    delete m_currentRequest;
+    m_currentRequest = NULL;
+}
+
+void ParserRecognizer::requestError(int error)
+{
+    PHONE_DEBUG2("ParserRecognizer::requestError", error);
+    
+    delete m_currentRequest;
+    m_currentRequest = NULL;
+}
--- a/phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/unit_tests.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -25,6 +25,7 @@
 QString apiString;
 QString methodString;
 bool sendCalled;
+bool gSendRequestResult = true;
 
 class TestParserRecognizer : public QObject
 {
@@ -50,6 +51,8 @@
     void testShowVersion();
     void testShowWLANMacAddress();
     void testSSRequestFailed();
+    void testSendRequestFail();
+    void testSimultaneousRequests();
 
 private:
     ParserRecognizer *parserRecognizer; // class under test
@@ -62,11 +65,22 @@
     methodString = method;
 }
 
+bool XQServiceRequest::send()
+{
+    sendCalled = true;
+    return gSendRequestResult;
+}
+
 bool XQServiceRequest::send(QVariant& retValue)
 {
     Q_UNUSED(retValue);
     sendCalled = true;
-    return true;
+    return gSendRequestResult;
+}
+
+void XQServiceRequest::setSynchronous(const bool &synchronous)
+{
+    Q_UNUSED(synchronous);
 }
 
 XQServiceRequest::~XQServiceRequest()
@@ -94,6 +108,7 @@
     apiString = "";
     methodString = "";
     sendCalled = false;
+    gSendRequestResult = true;
     parserRecognizer = new ParserRecognizer;
 }
 
@@ -120,10 +135,12 @@
 
 void TestParserRecognizer::testActivateWarrantyMode()
 {
+    // Lifetimer is implemented by phone and should not be handled 
+    // by the recognizer.
     parserRecognizer->sendMessage(MEngineMonitor::EPEMessageActivateWarrantyMode, 0);
-    QCOMPARE(apiString, QString("com.nokia.services.telephony"));
-    QCOMPARE(methodString, QString("activateWarrantyMode()"));
-    QCOMPARE(sendCalled, true);
+    QCOMPARE(apiString, QString(""));
+    QCOMPARE(methodString, QString(""));
+    QCOMPARE(sendCalled, false);
 }
 
 void TestParserRecognizer::testShowBTDeviceAddress()
@@ -152,26 +169,29 @@
 
 void TestParserRecognizer::testShowIMEI()
 {
+    // IMEI code showing is implemented by phone and should not be handled 
+    // by the recognizer.
     parserRecognizer->sendMessage(MEngineMonitor::EPEMessageShowIMEI, 0);
-    QCOMPARE(apiString, QString("com.nokia.services.telephony"));
-    QCOMPARE(methodString, QString("showIMEICode()"));
-    QCOMPARE(sendCalled, true);
+    QCOMPARE(apiString, QString(""));
+    QCOMPARE(methodString, QString(""));
+    QCOMPARE(sendCalled, false);
 }
 
 void TestParserRecognizer::testShowVersion()
 {
     parserRecognizer->sendMessage(MEngineMonitor::EPEMessageShowVersion, 0);
-    QCOMPARE(apiString, QString("com.nokia.services.telephony"));
+    QCOMPARE(apiString, QString("com.nokia.services.devicemanager"));
     QCOMPARE(methodString, QString("showVersionNumber()"));
     QCOMPARE(sendCalled, true);
 }
 
 void TestParserRecognizer::testShowWLANMacAddress()
 {
+    // WLAN address showing not supported currently (TB 10.1)
     parserRecognizer->sendMessage(MEngineMonitor::EPEMessageShowWlanMacAddress, 0);
-    QCOMPARE(apiString, QString("com.nokia.services.wlan"));
-    QCOMPARE(methodString, QString("showWLANMacAddress()"));
-    QCOMPARE(sendCalled, true);
+    QCOMPARE(apiString, QString(""));
+    QCOMPARE(methodString, QString(""));
+    QCOMPARE(sendCalled, false);
 }
 
 void TestParserRecognizer::testSSRequestFailed()
@@ -182,5 +202,26 @@
     QCOMPARE(sendCalled, true);
 }
 
+void TestParserRecognizer::testSendRequestFail()
+{
+    gSendRequestResult = false;
+    parserRecognizer->sendMessage(MEngineMonitor::EPEMessageShowVersion, 0);
+    QCOMPARE(apiString, QString("com.nokia.services.devicemanager"));
+    QCOMPARE(methodString, QString("showVersionNumber()"));
+    QCOMPARE(sendCalled, true);
+}
+
+void TestParserRecognizer::testSimultaneousRequests()
+{
+    parserRecognizer->sendMessage(MEngineMonitor::EPEMessageShowVersion, 0);
+    QCOMPARE(apiString, QString("com.nokia.services.devicemanager"));
+    QCOMPARE(methodString, QString("showVersionNumber()"));
+    QCOMPARE(sendCalled, true);
+    
+    sendCalled = false;
+    parserRecognizer->sendMessage(MEngineMonitor::EPEMessageShowVersion, 0);
+    QCOMPARE(sendCalled, false);
+}
+
 QTEST_MAIN(TestParserRecognizer)
 #include "unit_tests.moc"
--- a/phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/ut_parserrecognizer.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/ut_parserrecognizer.pro	Fri May 14 15:51:57 2010 +0300
@@ -20,6 +20,8 @@
 TARGET.UID3 = 0xE31F4ECF
 DEPENDPATH += .
 CONFIG += qtestlib
+QT -= gui
+
 symbian {
 	INCLUDEPATH +=./
 	INCLUDEPATH +=../../../../inc
--- a/phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/xqservicerequest.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/parserrecognizer/tsrc/ut_parserrecognizer/xqservicerequest.h	Fri May 14 15:51:57 2010 +0300
@@ -23,10 +23,17 @@
 
 class XQServiceRequest : public QObject
 {
-Q_OBJECT
+    Q_OBJECT
+
 public:
     XQServiceRequest(QString const& api, QString const& method, bool const& sync = true);
     ~XQServiceRequest();
+    bool send();
     bool send(QVariant& retValue);
+    void setSynchronous(const bool &synchronous);
+
+signals:
+    void requestCompleted(const QVariant& value) ;
+    void requestError(int err);
 };
-#endif
\ No newline at end of file
+#endif
--- a/phoneengine/phonemodel/api_headers.pri	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/api_headers.pri	Fri May 14 15:51:57 2010 +0300
@@ -17,6 +17,7 @@
 PHONEENGINE_API_HEADERS = ./inc/pevirtualengine.h \
                           ./inc/mpecallcontrolif.h \
                           ./inc/mpecallsettersif.h \
+                          ./inc/mpekeysequencerecognitionif.h \
                           ./inc/telinternalcrkeys.h \
                           ./inc/telinternalpskeys.h \
                           ./inc/telinternalpstypes.h \
--- a/phoneengine/phonemodel/inc/cpeexternaldatahandler.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/inc/cpeexternaldatahandler.h	Fri May 14 15:51:57 2010 +0300
@@ -26,6 +26,7 @@
 #include "cpeprofilesettingmonitor.h"
 #include "mpeexternaldatahandler.h"
 #include "cpeaccessorymodemonitor.h"
+#include "penetworkhandler.h"
 #include <e32base.h>
 
 // FORWARD DECLARATIONS
@@ -109,6 +110,7 @@
         CPENetworkRegistrationStatusMonitor* iNetworkRegistrationStatus;
         CPEProfileSettingMonitor* iProfileSettings;
         CPEAccessoryModeMonitor* iAccessoryModeMonitor;
+        PeNetworkHandler* iNetworkHandler;
 
         // Repository objects
         CRepository* iAccessorySettingsRepository;
--- a/phoneengine/phonemodel/inc/cpemessagehandler.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/inc/cpemessagehandler.h	Fri May 14 15:51:57 2010 +0300
@@ -28,6 +28,7 @@
 
 #include "mpecallhandling.h"
 #include "mpecallcontrolif.h" 
+#include "mpekeysequencerecognitionif.h"
 
 // CONSTANTS
 const TInt KModeNormal = 0;  // Normal System mode  
@@ -105,7 +106,11 @@
 *  @lib phoneenginebase.dll
 *  @since S60_5.0
 */
-NONSHARABLE_CLASS( CPEMessageHandler ) : public CBase, public MPECallControlIF
+NONSHARABLE_CLASS( CPEMessageHandler ) 
+    : 
+        public CBase, 
+        public MPECallControlIF,
+        public MPEKeySequenceRecognitionIF
     {
     public:  // Destructor
 
@@ -598,7 +603,13 @@
         */ 
         TInt HandleDialServiceCall(
             const TBool aClientCall );
-        
+    
+    public: // from MPEKeySequenceRecognitionIF
+        /**
+         * Executes provided key sequence if recognized.
+         */ 
+        TBool ExecuteKeySequenceL(const TDesC16 &aSequence);
+    
     private: // New functions
         
         /**
--- a/phoneengine/phonemodel/inc/mpeexternaldatahandler.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/inc/mpeexternaldatahandler.h	Fri May 14 15:51:57 2010 +0300
@@ -39,7 +39,6 @@
     EPECallDurationDisplaySetting,
     EPEDialPrefixChangeSetting,
     EPEDialPrefixTextSetting,  
-    EPENetworkRegistrationStatus,
     EPETelephonyVariationFlags,
     EPEAccessoryMode,
     EPEEmergencyCallInfo,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phonemodel/inc/mpekeysequencerecognitionif.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* 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:  This file contains the interface for key sequence recognition.
+*
+*/
+
+#ifndef MPEKEYSEQUENCERECOGNITIONIF_H
+#define MPEKEYSEQUENCERECOGNITIONIF_H
+
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+*  Defines interface for key sequence recognition and execution. 
+* 
+*  @lib phoneengine.lib
+*  @since S60_10.1
+*/
+NONSHARABLE_CLASS( MPEKeySequenceRecognitionIF ) 
+{
+    public:    //New functions
+
+        /**
+         * Executes provided key sequence if the sequence is recognized.
+         * @param   aSequence   The key sequence.
+         * @return  ETrue if the key sequence was executed, EFalse otherwise.
+         */
+        virtual TBool ExecuteKeySequenceL(const TDesC16& aSequence) = 0;   
+    };
+
+#endif // MPEKEYSEQUENCERECOGNITIONIF_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phonemodel/inc/penetworkhandler.h	Fri May 14 15:51:57 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:  Network handling.
+*
+*/
+
+#ifndef PENETWORKHANDLER_H
+#define PENETWORKHANDLER_H
+
+#include <QObject>
+#include <qsysteminfo.h>
+#include <networkhandlingdomainpskeys.h>
+#include "mpephonemodelinternal.h"
+
+QTM_USE_NAMESPACE
+
+class PeNetworkHandler : public QObject
+{
+    Q_OBJECT
+    
+public:
+
+    /*!
+       Constructor
+     */
+    PeNetworkHandler(MPEPhoneModelInternal& aModel);
+    
+    /*!
+       Destructor
+     */
+    virtual ~PeNetworkHandler ();
+    
+    
+public slots:
+
+    /*!
+        \fn void networkStatusChanged()
+    
+        Slot is called when network status is changed.
+    */
+    void networkStatusChanged(
+            QSystemNetworkInfo::NetworkMode mode, 
+            QSystemNetworkInfo::NetworkStatus status);
+    
+private:
+    
+    /*!
+        \fn void sendStatus()
+    
+        Sends new status.
+    */
+    void sendStatus(QSystemNetworkInfo::NetworkStatus status);
+        
+    /*!
+        \fn void convertStatus ()
+    
+        Converts QSystemNetworkInfo::NetworkStatus to 
+        TNWNetworkRegistrationStatus.
+    */
+    TNWNetworkRegistrationStatus convertStatus(
+            QSystemNetworkInfo::NetworkStatus status);
+    
+
+private:
+
+    // Reference to phone model object
+    MPEPhoneModelInternal& iModel;
+        
+    QSystemNetworkInfo* m_networkInfo;
+    
+};
+
+#endif // PENETWORKHANDLER_H
--- a/phoneengine/phonemodel/phonemodel.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/phonemodel.pro	Fri May 14 15:51:57 2010 +0300
@@ -18,6 +18,10 @@
 TEMPLATE = lib
 TARGET = phoneengine
 
+CONFIG += mobility
+MOBILITY = systeminfo
+QT -= gui
+QT += network
 
 symbian {
     TARGET.UID3 = 0x1000A86C
@@ -126,6 +130,7 @@
 HEADERS += ./inc/telinternalcrkeys.h
 HEADERS += ./inc/telinternalpskeys.h
 HEADERS += ./inc/telinternalpstypes.h
+HEADERS += ./inc/penetworkhandler.h
 
 SOURCES += ./src/cpeaccessorymodemonitor.cpp
 SOURCES += ./src/cpeactivestarter.cpp
@@ -162,6 +167,7 @@
 SOURCES += ./src/cperemotepartyinfomediator.cpp 
 SOURCES += ./src/cperemotepartyinfoproxy.cpp
 SOURCES += ./src/tperemotepartyinfomediatorupdater.cpp
+SOURCES += ./src/penetworkhandler.cpp
 
 include(api_headers.pri)
     
--- a/phoneengine/phonemodel/src/cpeexternaldatahandler.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/src/cpeexternaldatahandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -66,6 +66,7 @@
     delete iAccessorySettingsRepository;
     delete iAccessoryModeMonitor;
     delete iCoreApplicationRepository;
+    delete iNetworkHandler;
     }
 
 // -----------------------------------------------------------------------------
@@ -83,6 +84,7 @@
     iCallDurationDisplay = CPECallDurationDisplaySettingMonitor::NewL(); 
     iProfileSettings = CPEProfileSettingMonitor::NewL( aModel );
     
+    iNetworkHandler = new PeNetworkHandler(aModel);
     //TODO
     /*
     iNetworkRegistrationStatus = CPENetworkRegistrationStatusMonitor::NewL( aModel );
--- a/phoneengine/phonemodel/src/cpemessagehandler.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/src/cpemessagehandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1318,7 +1318,8 @@
         "PE CPEMessageHandler::UpdateClientInfo, allowmatch: %d", 
         clientInformation.AllowMatch() );
     
-    if ( clientInformation.AllowMatch() && ( aCallId != KPEEmergencyCallId ) )
+    if ( EPECallOriginSAT != iDataStore.CallOrigin(aCallId) && 
+       ( aCallId != KPEEmergencyCallId ) )
         {
         TEFLOGSTRING2( 
             KTAINT, 
@@ -1342,10 +1343,6 @@
             "PE CPEMessageHandler::UpdateClientInfo > MPEContactHandling::FindContactInfoSync( EPEFindWithPhoneNumber ), error code: %d", 
             errorCode );
         }
-    else if ( clientInformation.Name().Length() )
-        {
-        iDataStore.SetRemoteName( clientInformation.Name(), aCallId );
-        }
     
     // Calls have to log also without a contact (ECCPErrorNotFound).
     if ( errorCode == ECCPErrorNone || errorCode == ECCPErrorNotFound)
@@ -1863,6 +1860,10 @@
         {
         HandleClientCallData();
         }
+    else 
+        {
+        iDataStore.SetCallOriginCommand(EPECallOriginPhone);
+        }
         
     //Get number of calls
     numberOfCalls = iCallHandling.GetNumberOfCalls();
@@ -3003,4 +3004,30 @@
     return errorCode;
     }
 
-//  End of File  
+
+// -----------------------------------------------------------------------------
+// CPEMessageHandler::ExecuteKeySequenceL
+// Only sequences which are not issued with send-key are handled here. SS 
+// commands etc. are processed in HandleDialCallL().
+// -----------------------------------------------------------------------------
+//
+TBool CPEMessageHandler::ExecuteKeySequenceL( const TDesC16 &aSequence )
+{
+    TBool keySequenceProcessed( EFalse );
+    
+    iOptions->SetOptionStatus( KPhoneOptionInCall, 
+        ( iCallHandling.GetNumberOfCalls() > 0 ) );
+    iOptions->SetOptionStatus( KPhoneOptionSend, EFalse );
+    iOptions->SetOptionStatus( KPhoneOptionVoipCall, EFalse );
+    
+    if ( iParser->ParseL( aSequence, *iResult, *iOptions ) )
+        {
+        keySequenceProcessed = ETrue;
+        iGsmParserErrorCode = ECCPErrorNone;
+        iParserHandlerContainer->ProcessL( *iResult );
+        }
+    
+    return keySequenceProcessed;
+}
+
+//  End of File
--- a/phoneengine/phonemodel/src/cpeparserphonenumberhandler.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/src/cpeparserphonenumberhandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -220,8 +220,7 @@
         {
         isPhoneOffline = ETrue;
         }
-    //TODO
-    isPhoneOffline = EFalse;
+
     return isPhoneOffline;
     }
     
--- a/phoneengine/phonemodel/src/cpephonemodel.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phonemodel/src/cpephonemodel.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1417,7 +1417,8 @@
             TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.1" );
             __ASSERT_DEBUG( iMessageHandler, Panic( EPEPanicNullPointer ) );
             __ASSERT_DEBUG( iEngineInfo, Panic( EPEPanicNullPointer ) );
-            iPhoneServices = new PhoneServices (*iMessageHandler, *iEngineInfo);
+            iPhoneServices = new PhoneServices(
+                *iMessageHandler, *iEngineInfo, *iMessageHandler);
             TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::StepL: 16.2" );
             break;
             }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phonemodel/src/penetworkhandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,108 @@
+/*!
+* 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:  Network handling.
+*
+*/
+
+#include <exception>
+#include <QString>
+#include "penetworkhandler.h"
+#include "mpedatastore.h"
+#include "qtphonelog.h"
+
+PeNetworkHandler::PeNetworkHandler(MPEPhoneModelInternal& aModel) :
+    iModel(aModel)
+{
+    m_networkInfo = new QSystemNetworkInfo();
+            
+    QSystemNetworkInfo::NetworkStatus nwStatus = 
+            m_networkInfo->networkStatus(QSystemNetworkInfo::GsmMode);
+    
+    if (nwStatus == QSystemNetworkInfo::NoNetworkAvailable) {
+        nwStatus = m_networkInfo->networkStatus(QSystemNetworkInfo::WcdmaMode);
+    }
+    
+    if (nwStatus == QSystemNetworkInfo::NoNetworkAvailable) {
+        nwStatus = m_networkInfo->networkStatus(QSystemNetworkInfo::CdmaMode);
+    }
+    
+    QObject::connect(m_networkInfo, SIGNAL(
+            networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus)), 
+            this, SLOT(networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus)));
+
+    iModel.DataStore()->SetNetworkRegistrationStatus( 
+        static_cast< TNWNetworkRegistrationStatus > ( convertStatus(nwStatus) ) );
+}
+
+PeNetworkHandler::~PeNetworkHandler()
+{   
+    delete m_networkInfo;
+}
+
+void PeNetworkHandler::networkStatusChanged(
+        QSystemNetworkInfo::NetworkMode mode, QSystemNetworkInfo::NetworkStatus status)
+{ 
+    if (mode == QSystemNetworkInfo::GsmMode ||
+        mode == QSystemNetworkInfo::WcdmaMode ||
+        mode == QSystemNetworkInfo::CdmaMode) {
+        sendStatus(status);
+    }
+}
+
+void PeNetworkHandler::sendStatus(
+        QSystemNetworkInfo::NetworkStatus status)
+{
+    iModel.DataStore()->SetNetworkRegistrationStatus( 
+        static_cast< TNWNetworkRegistrationStatus > ( convertStatus(status) ) );
+    iModel.SendMessage(MEngineMonitor::EPEMessageNetworkRegistrationStatusChange);
+}
+
+TNWNetworkRegistrationStatus PeNetworkHandler::convertStatus(
+        QSystemNetworkInfo::NetworkStatus status)
+{
+    TNWNetworkRegistrationStatus ret;
+    switch(status) {
+    case QSystemNetworkInfo::UndefinedStatus:
+        ret = ENWStatusRegistrationUnknown;
+    break;
+    case QSystemNetworkInfo::NoNetworkAvailable:
+        ret = ENWStatusNotRegisteredNoService;
+    break;
+    case QSystemNetworkInfo::EmergencyOnly:
+        ret = ENWStatusNotRegisteredEmergencyOnly;
+    break;
+    case QSystemNetworkInfo::Searching:
+        ret = ENWStatusNotRegisteredSearching;
+    break;
+    case QSystemNetworkInfo::Busy:
+        ret = ENWStatusRegisteredBusy;
+    break;
+    case QSystemNetworkInfo::Connected:
+    case QSystemNetworkInfo::HomeNetwork:
+        ret = ENWStatusRegisteredOnHomeNetwork;
+    break;
+    case QSystemNetworkInfo::Denied:
+        ret = ENWStatusRegistrationDenied;
+    break;
+    case QSystemNetworkInfo::Roaming:
+        ret = ENWStatusRegisteredRoaming;
+    break;
+    default:
+        ret = ENWStatusRegistrationUnknown;
+    break;
+    }
+    
+    return ret;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phonemodel/tsrc/ut_penetworkhandler/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,178 @@
+/*!
+* 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:  Unit tests for PhoneUINetworkHandler.
+*
+*/
+
+#include <QtTest/QtTest>
+#include <QtGui>
+#include <QVariant>
+#include <QKeyEvent>
+#include <hbapplication.h>
+#include <qsysteminfo.h>
+#include "cpeengineinfo.h"
+#include "penetworkhandler.h"
+
+
+//CONSTANTS
+
+
+#define PHONE_QT_TEST_MAIN(TestObject) \
+int main(int argc, char *argv[]) \
+{ \
+    HbApplication app(argc, argv); \
+    TestObject tc; \
+    QResource::registerResource("../hbcore.rcc"); \
+    int ret = QTest::qExec(&tc, argc, argv); \
+    /* Core dump if HbIconLoader instance is not destroyed before the application instance. */ \
+    /* HbIconLoader uses QCoreApplication::aboutToQuit() signal to destroy itself. */ \
+    /* app.exec() where the signal is normally emitted is not called here. */ \
+    /* So, invoking the signal explicitly. */ \
+    QMetaObject::invokeMethod(&app, "aboutToQuit", Qt::DirectConnection); \
+    return ret; \
+}
+
+class TestNetworkHandler : public QObject, public MPEPhoneModelInternal
+{
+    Q_OBJECT
+    
+public:
+    TestNetworkHandler ();
+    ~TestNetworkHandler ();
+
+// Functions from MPEPhoneModelInternal base class
+        
+    MPEDataStore* DataStore() {return iEngineInfo;};
+
+    MPEExternalDataHandler* DataStoreExt() {;}; 
+        
+    CPERemotePartyInfoMediator* MediatorCommunicationHandler() {return 0;};
+        
+    void HandleInternalMessage( const TInt aMessage ) {;};
+
+    void SendMessage( const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage ) 
+        {
+        if ( MEngineMonitor::EPEMessageNetworkRegistrationStatusChange == aMessage ) 
+            {
+            m_networkStatusChanged = true;
+            }
+        ;};
+
+    void SendMessage( const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, 
+                          const TInt aCallId ) {;};
+
+public slots:
+    void initTestCase ();
+    void cleanupTestCase (); 
+    void init ();
+    void cleanup ();
+    
+private slots:
+    void testNetworkStatusChanged();
+
+
+
+private:
+    PeNetworkHandler *m_nwHandler; // class under test
+    CPEEngineInfo *iEngineInfo;
+    bool m_networkStatusChanged;
+
+};
+
+
+TestNetworkHandler::TestNetworkHandler()
+{    
+}
+
+TestNetworkHandler::~TestNetworkHandler()
+{
+}
+
+void TestNetworkHandler::initTestCase()
+{	
+}
+
+void TestNetworkHandler::cleanupTestCase()
+{
+}
+
+void TestNetworkHandler::init()
+{	
+    TRAP_IGNORE( iEngineInfo = CPEEngineInfo::NewL() );	
+    m_nwHandler = new PeNetworkHandler(*this);    
+}
+
+void TestNetworkHandler::cleanup()
+{
+    delete m_nwHandler;
+    delete iEngineInfo;
+}
+
+void TestNetworkHandler::testNetworkStatusChanged()
+{
+    m_networkStatusChanged = false;
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::UnknownMode,
+            QSystemNetworkInfo::UndefinedStatus);
+    QVERIFY( false == m_networkStatusChanged );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::CdmaMode,
+            QSystemNetworkInfo::UndefinedStatus);
+    QVERIFY( ENWStatusRegistrationUnknown == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    QVERIFY( true == m_networkStatusChanged );
+       
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::WcdmaMode,
+            QSystemNetworkInfo::NoNetworkAvailable);
+    QVERIFY( ENWStatusNotRegisteredNoService == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            QSystemNetworkInfo::EmergencyOnly);
+    QVERIFY( ENWStatusNotRegisteredEmergencyOnly == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            QSystemNetworkInfo::Searching);
+    QVERIFY( ENWStatusNotRegisteredSearching == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            QSystemNetworkInfo::Busy);
+    QVERIFY( ENWStatusRegisteredBusy == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            QSystemNetworkInfo::HomeNetwork);
+    QVERIFY( ENWStatusRegisteredOnHomeNetwork == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            QSystemNetworkInfo::Denied);
+    QVERIFY( ENWStatusRegistrationDenied == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            QSystemNetworkInfo::Roaming);
+    QVERIFY( ENWStatusRegisteredRoaming == 
+             iEngineInfo->NetworkRegistrationStatus() );
+    
+    m_nwHandler->networkStatusChanged(QSystemNetworkInfo::GsmMode,
+            (QSystemNetworkInfo::NetworkStatus)100);
+    QVERIFY( ENWStatusRegistrationUnknown == 
+             iEngineInfo->NetworkRegistrationStatus() );
+}
+
+
+PHONE_QT_TEST_MAIN(TestNetworkHandler)
+#include "unit_tests.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phonemodel/tsrc/ut_penetworkhandler/ut_penetworkhandler.pro	Fri May 14 15:51:57 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: Project file for building unit test component
+#
+#
+
+TEMPLATE = app
+TARGET = ut_penetworkhandler
+TARGET.CAPABILITY = ALL -TCB
+TARGET.UID3 = 0xEA9BEFAA
+DEPENDPATH += . ../../src/
+INCLUDEPATH += .
+CONFIG += hb qtestlib
+
+symbian {
+
+    INCLUDEPATH += /epoc32/include/platform/mw \
+                   /epoc32/include/platform/app \
+                   /epoc32/include/mw \
+                   ../../../inc/ \
+                   ../../../../inc \
+                   ../../../../engineinfo/inc \
+                   ./
+
+    LIBS += -lQtSystemInfo
+    LIBS += -lengineinfo  
+}
+
+
+# Input
+HEADERS += ../../inc/penetworkhandler.h 
+
+SOURCES += ../../src/penetworkhandler.cpp \
+           ./unit_tests.cpp
--- a/phoneengine/phoneservices/bwins/phoneservicesu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/bwins/phoneservicesu.def	Fri May 14 15:51:57 2010 +0300
@@ -1,8 +1,8 @@
 EXPORTS
 	??_EPhoneServices@@UAE@I@Z @ 1 NONAME ; PhoneServices::~PhoneServices(unsigned int)
 	?tr@PhoneServices@@SA?AVQString@@PBD0H@Z @ 2 NONAME ; class QString PhoneServices::tr(char const *, char const *, int)
-	??0PhoneServices@@QAE@AAVMPECallControlIF@@AAVMPECallSettersIF@@PAVQObject@@@Z @ 3 NONAME ; PhoneServices::PhoneServices(class MPECallControlIF &, class MPECallSettersIF &, class QObject *)
-	??1PhoneServices@@UAE@XZ @ 4 NONAME ; PhoneServices::~PhoneServices(void)
+	??1PhoneServices@@UAE@XZ @ 3 NONAME ; PhoneServices::~PhoneServices(void)
+	??0PhoneServices@@QAE@AAVMPECallControlIF@@AAVMPECallSettersIF@@AAVMPEKeySequenceRecognitionIF@@PAVQObject@@@Z @ 4 NONAME ; PhoneServices::PhoneServices(class MPECallControlIF &, class MPECallSettersIF &, class MPEKeySequenceRecognitionIF &, class QObject *)
 	?trUtf8@PhoneServices@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString PhoneServices::trUtf8(char const *, char const *, int)
 	?metaObject@PhoneServices@@UBEPBUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const * PhoneServices::metaObject(void) const
 	?trUtf8@PhoneServices@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString PhoneServices::trUtf8(char const *, char const *)
--- a/phoneengine/phoneservices/eabi/phoneservicesu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/eabi/phoneservicesu.def	Fri May 14 15:51:57 2010 +0300
@@ -3,8 +3,8 @@
 	_ZN13PhoneServices11qt_metacastEPKc @ 2 NONAME
 	_ZN13PhoneServices16staticMetaObjectE @ 3 NONAME DATA 16
 	_ZN13PhoneServices19getStaticMetaObjectEv @ 4 NONAME
-	_ZN13PhoneServicesC1ER16MPECallControlIFR16MPECallSettersIFP7QObject @ 5 NONAME
-	_ZN13PhoneServicesC2ER16MPECallControlIFR16MPECallSettersIFP7QObject @ 6 NONAME
+	_ZN13PhoneServicesC1ER16MPECallControlIFR16MPECallSettersIFR27MPEKeySequenceRecognitionIFP7QObject @ 5 NONAME
+	_ZN13PhoneServicesC2ER16MPECallControlIFR16MPECallSettersIFR27MPEKeySequenceRecognitionIFP7QObject @ 6 NONAME
 	_ZN13PhoneServicesD0Ev @ 7 NONAME
 	_ZN13PhoneServicesD1Ev @ 8 NONAME
 	_ZN13PhoneServicesD2Ev @ 9 NONAME
--- a/phoneengine/phoneservices/inc/dialservice.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/inc/dialservice.h	Fri May 14 15:51:57 2010 +0300
@@ -39,7 +39,7 @@
         Phone Application. It is intended to be used via Qt Highway.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dial(QString)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)");
         snd << "0501234567";        
     */
     int dial(const QString& number);
@@ -53,7 +53,7 @@
         identifier.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dial(QString,int)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString,int)");
         snd << "0501234567" << 123456;        
     */
     int dial(const QString& number, int contactId);
@@ -65,7 +65,7 @@
         Phone Application. It is intended to be used via Qt Highway.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dial(QString)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString)");
         snd << "0501234567";        
     */
     void dialVideo(const QString& number);
@@ -79,7 +79,7 @@
         identifier.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dial(QString,int)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dial(QString,int)");
         snd << "0501234567" << 123456;        
     */
     void dialVideo(const QString& number, int contactId);
@@ -91,7 +91,7 @@
         Phone Application. It is intended to be used via Qt Highway.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dialVoip(QString)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoip(QString)");
         snd << "address@domain";        
     */
     void dialVoip(const QString& address);
@@ -105,7 +105,7 @@
         identifier.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dialVoip(QString,int)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoip(QString,int)");
         snd << "address@domain" << 123456;        
     */
     void dialVoip(const QString& address, int contactId);
@@ -118,7 +118,7 @@
         Call is made by given service (id).
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dialVoipService(QString,int)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoipService(QString,int)");
         snd << "address@domain" << 123;        
     */
     void dialVoipService(const QString& address, int serviceId);
@@ -133,7 +133,7 @@
         identifier.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","dialVoipService(QString,int,int)");
+        XQServiceRequest snd("com.nokia.symbian.ICallDial","dialVoipService(QString,int,int)");
         snd << "address@domain" << 123 << 12345;        
     */
     void dialVoipService(const QString& address, int serviceId, int contactId);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/dialservicedepricated.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,157 @@
+/*!
+* 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:  Dial API to be used through Qt Highway.
+*               THIS IS DEPRICATED API - DO NOT USE!
+*               (use DialService instead)
+*
+*/
+
+#ifndef DIALSERVICEDEPRICATED_H
+#define DIALSERVICEDEPRICATED_H
+
+#include <QObject>
+#include <QString>
+#include <xqserviceprovider.h>
+#include "mpecallcontrolif.h"
+#include "mpecallsettersif.h"
+
+class DialServiceDepricated : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    DialServiceDepricated(MPECallControlIF &call, MPECallSettersIF &parameters, QObject *parent = 0);
+    ~DialServiceDepricated();
+    
+public slots:
+    /*!
+        \fn dial(const QString& number)
+        
+        This method makes a cellular switched dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dial(QString)");
+        snd << "0501234567";        
+    */
+    int dial(const QString& number);
+    
+    /*!
+        \fn dial(const QString& number)
+        
+        This method makes a cellular switched dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        Caller's name is shown according to the given Phonebook contact
+        identifier.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dial(QString,int)");
+        snd << "0501234567" << 123456;        
+    */
+    int dial(const QString& number, int contactId);
+    
+    /*!
+        \fn dialVideo(const QString& number)
+        
+        This method makes a video call dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dial(QString)");
+        snd << "0501234567";        
+    */
+    void dialVideo(const QString& number);
+
+    /*!
+        \fn dial(const QString& number)
+        
+        This method makes a video call dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        Caller's name is shown according to the given Phonebook contact
+        identifier.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dial(QString,int)");
+        snd << "0501234567" << 123456;        
+    */
+    void dialVideo(const QString& number, int contactId);
+    
+    /*!
+        \fn dialVoip(const QString& address)
+        
+        This method makes a voip call dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dialVoip(QString)");
+        snd << "address@domain";        
+    */
+    void dialVoip(const QString& address);
+    
+    /*!
+        \fn dialVoip(const QString& address, int contactId)
+        
+        This method makes a voip call dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        Caller's name is shown according to the given Phonebook contact
+        identifier.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dialVoip(QString,int)");
+        snd << "address@domain" << 123456;        
+    */
+    void dialVoip(const QString& address, int contactId);
+    
+    /*!
+        \fn dialVoipService(const QString& address, int contactId)
+        
+        This method makes a voip call dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        Call is made by given service (id).
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dialVoipService(QString,int)");
+        snd << "address@domain" << 123;        
+    */
+    void dialVoipService(const QString& address, int serviceId);
+    
+    /*!
+        \fn dialVoipService(const QString& address, int serviceId, int contactId)
+        
+        This method makes a voip call dial command to
+        Phone Application. It is intended to be used via Qt Highway.
+        Call is made by given service (id).
+        Caller's name is shown according to the given Phonebook contact
+        identifier.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","dialVoipService(QString,int,int)");
+        snd << "address@domain" << 123 << 12345;        
+    */
+    void dialVoipService(const QString& address, int serviceId, int contactId);
+    
+private:
+    /*!
+        \fn QString simplified(QString& number)
+        
+        Returns a string that has whitespaces, '(', ')', '-', '[', and ']' chars removed 
+    */
+    static QString simplified(const QString &number) Q_REQUIRED_RESULT;
+
+
+private:
+    MPECallControlIF &m_call;
+    MPECallSettersIF &m_parameters;    
+};
+
+#endif // DIALERSERVICEDEPRICATED_H
--- a/phoneengine/phoneservices/inc/dtmfservice.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/inc/dtmfservice.h	Fri May 14 15:51:57 2010 +0300
@@ -1,5 +1,5 @@
 /*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -28,27 +28,14 @@
 {
     Q_OBJECT
 public:
-    DTMFService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject *parent = 0);
+    DTMFService(
+        MPECallControlIF &call, 
+        MPECallSettersIF &parameters, 
+        QObject *parent = 0);
     ~DTMFService();
     
 public slots:
     /*!
-        \fn recognizeKeySequence(const QString& keySequence)
-        
-        Client can use this method to execute key sequence recognition.
-        Key sequence may contain for example product codes etc. that
-        may cause lower layers to do any specific things.
-
-        If sequence isn't recognized this method doesn't do anything.
-        If sequence is recognized then task related to the code is executed.
-
-        Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","executeKeySequence(QString)");
-        snd << "*#0000#";
-    */
-    void executeKeySequence(const QString& keySequence);
-    
-    /*!
         \fn playDTMFTone(const QChar& keyToPlay)
         
         This method plays DTMF tone matching given character.
@@ -56,7 +43,7 @@
         it is ignored.
         
         Usage example:
-        XQServiceRequest snd("com.nokia.services.telephony","playDTMFTone(QChar)");
+        XQServiceRequest snd("com.nokia.symbian.IDtmfPlay","playDTMFTone(QChar)");
         snd << "5";
     */
     void playDTMFTone(const QChar& keyToPlay);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/dtmfservicedepricated.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,66 @@
+/*!
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  DTMF API to be used through Qt Highway.
+*               THIS IS DEPRICATED API - DO NOT USE!
+*               (use DTMFService instead)
+*
+*/
+
+#ifndef DTMFSERVICEDEPRICATED_H
+#define DTMFSERVICEDEPRICATED_H
+
+#include <QObject>
+#include <QString>
+#include <xqserviceprovider.h>
+#include "mpecallcontrolif.h"
+#include "mpecallsettersif.h"
+
+class DTMFServiceDepricated : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    DTMFServiceDepricated(
+        MPECallControlIF &call, 
+        MPECallSettersIF &parameters, 
+        QObject *parent = 0);
+    ~DTMFServiceDepricated();
+    
+public slots:
+    /*!
+        \fn playDTMFTone(const QChar& keyToPlay)
+        
+        This method plays DTMF tone matching given character.
+        If character doesn't match any supported DTMF tone
+        it is ignored.
+        
+        Usage example:
+        XQServiceRequest snd("com.nokia.services.telephony","playDTMFTone(QChar)");
+        snd << "5";
+    */
+    void playDTMFTone(const QChar& keyToPlay);
+
+    /*!
+        \fn stopDTMFPlay()
+        
+        This method stops playing DTMF tone if it is currently played.
+    */
+    void stopDTMFPlay();
+    
+    
+private:
+    MPECallControlIF &m_call;
+    MPECallSettersIF &m_parameters;    
+};
+
+#endif // DTMFSERVICE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/keysequencerecognitionservice.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,69 @@
+/*!
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Provides key sequence recognition and execution services.
+*
+*/
+
+#ifndef KEYSEQUENCERECOGNITIONSERVICE_H
+#define KEYSEQUENCERECOGNITIONSERVICE_H
+
+#include <QObject>
+#include <QString>
+#include <xqserviceprovider.h>
+
+class MPEKeySequenceRecognitionIF;
+
+class KeySequenceRecognitionService : public XQServiceProvider
+{
+    Q_OBJECT
+
+public:
+
+    KeySequenceRecognitionService(
+        MPEKeySequenceRecognitionIF &keySequenceRecognizer,
+        QObject *parent = 0);
+    
+    ~KeySequenceRecognitionService();
+    
+public slots:
+    
+    /*!
+        \fn executeKeySequence(const QString& keySequence)
+        
+        Client can use this method to execute key sequence recognition.
+        Key sequence may contain for example product codes etc. that
+        may cause lower layers to do any specific things.
+
+        If sequence isn't recognized this method doesn't do anything.
+        If sequence is recognized then task related to the code is executed.
+        \param  keySequence          Key sequence to execute.
+        \return True if key sequence was processed, false otherwise.
+        
+        Usage example:
+        XQServiceRequest request(
+            "com.nokia.symbian.IDtmfPlay",
+            "executeKeySequence(QString)",
+            true);
+        request << "*#0000#";
+        QVariant keySequenceProcessed;
+        bool requestOk = request.send(keySequenceProcessed);
+    */
+    bool executeKeySequence(const QString &keySequence);
+    
+private:
+    
+    MPEKeySequenceRecognitionIF &m_keySequenceRecognizer;
+};
+
+#endif // KEYSEQUENCERECOGNITIONSERVICE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/inc/keysequencerecognitionservicedepricated.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,71 @@
+/*!
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Provides key sequence recognition and execution services.
+*               THIS IS DEPRICATED API - DO NOT USE!
+*               (use KeySequenceRecognitionService instead)
+*
+*/
+
+#ifndef KEYSEQUENCERECOGNITIONSERVICEDEPRICATED_H
+#define KEYSEQUENCERECOGNITIONSERVICEDEPRICATED_H
+
+#include <QObject>
+#include <QString>
+#include <xqserviceprovider.h>
+
+class MPEKeySequenceRecognitionIF;
+
+class KeySequenceRecognitionServiceDepricated : public XQServiceProvider
+{
+    Q_OBJECT
+
+public:
+
+    KeySequenceRecognitionServiceDepricated(
+        MPEKeySequenceRecognitionIF &keySequenceRecognizer,
+        QObject *parent = 0);
+    
+    ~KeySequenceRecognitionServiceDepricated();
+    
+public slots:
+    
+    /*!
+        \fn executeKeySequence(const QString& keySequence)
+        
+        Client can use this method to execute key sequence recognition.
+        Key sequence may contain for example product codes etc. that
+        may cause lower layers to do any specific things.
+
+        If sequence isn't recognized this method doesn't do anything.
+        If sequence is recognized then task related to the code is executed.
+        \param  keySequence          Key sequence to execute.
+        \return True if key sequence was processed, false otherwise.
+        
+        Usage example:
+        XQServiceRequest request(
+            "com.nokia.services.telephony",
+            "executeKeySequence(QString)",
+            true);
+        request << "*#0000#";
+        QVariant keySequenceProcessed;
+        bool requestOk = request.send(keySequenceProcessed);
+    */
+    bool executeKeySequence(const QString &keySequence);
+    
+private:
+    
+    MPEKeySequenceRecognitionIF &m_keySequenceRecognizer;
+};
+
+#endif // KEYSEQUENCERECOGNITIONSERVICEDEPRICATED_H
--- a/phoneengine/phoneservices/inc/phoneservices.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/inc/phoneservices.h	Fri May 14 15:51:57 2010 +0300
@@ -24,6 +24,13 @@
 
 class DialService;
 class DTMFService;
+class MPEKeySequenceRecognitionIF;
+class KeySequenceRecognitionService;
+
+// Depricated APIs
+class DialServiceDepricated;
+class DTMFServiceDepricated;
+class KeySequenceRecognitionServiceDepricated;
 
 #ifdef BUILD_PHONESERVICES
 #define PHONESERVICES_EXPORT Q_DECL_EXPORT
@@ -35,13 +42,22 @@
 {
     Q_OBJECT
 public:
-    PhoneServices(MPECallControlIF &call, MPECallSettersIF &parameters, QObject *parent = 0);
+    PhoneServices(
+        MPECallControlIF &call, 
+        MPECallSettersIF &parameters,
+        MPEKeySequenceRecognitionIF &keySequenceRecognition,
+        QObject *parent = 0);
     ~PhoneServices();    
     
 private:
-    DialService *dialService;
-    DTMFService *dtmfService;
+    QScopedPointer<DialService> dialService;
+    QScopedPointer<DTMFService> dtmfService;
+    QScopedPointer<KeySequenceRecognitionService> m_keySequenceRecognitionService;
 
+    // Depricated
+    QScopedPointer<DialServiceDepricated> dialServiceDepricated;
+    QScopedPointer<DTMFServiceDepricated> dtmfServiceDepricated;
+    QScopedPointer<KeySequenceRecognitionServiceDepricated> m_keySequenceRecognitionServiceDepricated;
 };
 
 #endif // PHONESERVICES_H
--- a/phoneengine/phoneservices/phoneservices.pri	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/phoneservices.pri	Fri May 14 15:51:57 2010 +0300
@@ -17,12 +17,20 @@
 SOURCES=\
     ./src/phoneservices.cpp \
     ./src/dialservice.cpp \
-    ./src/dtmfservice.cpp
+    ./src/dtmfservice.cpp \
+    ./src/keysequencerecognitionservice.cpp \
+    ./src/dialservicedepricated.cpp \
+    ./src/dtmfservicedepricated.cpp \
+    ./src/keysequencerecognitionservicedepricated.cpp
 
 HEADERS=\
     ./inc/phoneservices.h \
     ./inc/dialservice.h \
-    ./inc/dtmfservice.h
+    ./inc/dtmfservice.h \
+    ./inc/keysequencerecognitionservice.h \
+    ./inc/dialservicedepricated.h \
+    ./inc/dtmfservicedepricated.h \
+    ./inc/keysequencerecognitionservicedepricated.h
     
 PHONESERVICES_API_HEADERS=\
 		./inc/phoneservices.h
--- a/phoneengine/phoneservices/src/dialservice.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/src/dialservice.cpp	Fri May 14 15:51:57 2010 +0300
@@ -23,7 +23,7 @@
 
 
 DialService::DialService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
-    XQServiceProvider(QLatin1String("com.nokia.services.telephony"), parent), m_call (call), m_parameters (parameters)
+    XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters)
 {
     publishAll();
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/dialservicedepricated.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,126 @@
+/*!
+* 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:  dial service
+*
+*/
+
+#include <xqserviceutil.h>
+#include <e32base.h>
+#include <qregexp.h>
+#include "dialservicedepricated.h"
+#include "qtphonelog.h"
+
+
+DialServiceDepricated::DialServiceDepricated(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
+    XQServiceProvider(QLatin1String("com.nokia.services.telephony"), parent), m_call (call), m_parameters (parameters)
+{
+    publishAll();
+}
+
+DialServiceDepricated::~DialServiceDepricated()
+{
+}
+
+int DialServiceDepricated::dial(const QString& number)
+{
+    PHONE_DEBUG2("DialServiceDepricated::dial number:", number);
+    QString simplifiedNumber = simplified(number);
+    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    m_parameters.SetPhoneNumber (numberPtr);
+    m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
+    return m_call.HandleDialServiceCall ();
+}
+
+int DialServiceDepricated::dial(const QString& number, int contactId)
+{
+    PHONE_DEBUG4("DialServiceDepricated::dial number:", number, "contactId:", contactId);
+    QString simplifiedNumber = simplified(number);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    m_parameters.SetPhoneNumber (numberPtr);
+    m_parameters.SetCallTypeCommand (EPECallTypeCSVoice);
+    m_parameters.SetContactId2 (contactId);
+    return m_call.HandleDialServiceCall (); 
+}
+
+void DialServiceDepricated::dialVideo(const QString& number)
+{
+    PHONE_DEBUG2("DialServiceDepricated::dialVideo number:", number);
+    QString simplifiedNumber = simplified(number);
+    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    m_parameters.SetPhoneNumber (numberPtr);
+    m_parameters.SetCallTypeCommand (EPECallTypeVideo);
+    m_call.HandleDialServiceCall ();
+}
+
+void DialServiceDepricated::dialVideo(const QString& number, int contactId)
+{
+    PHONE_DEBUG4("DialServiceDepricated::dialVideo number:", number, "contactId:", contactId);
+    QString simplifiedNumber = simplified(number);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16()));
+    m_parameters.SetPhoneNumber (numberPtr);
+    m_parameters.SetCallTypeCommand (EPECallTypeVideo);
+    m_parameters.SetContactId2 (contactId);
+    m_call.HandleDialServiceCall ();    
+}
+
+void DialServiceDepricated::dialVoip(const QString& address)
+{
+    PHONE_DEBUG2("DialServiceDepricated::dialVoip number:", address);
+    TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(address.utf16 ()));
+    m_parameters.SetPhoneNumber(numberPtr);
+    m_parameters.SetCallTypeCommand(EPECallTypeVoIP);
+    m_call.HandleDialServiceCall();    
+}
+
+void DialServiceDepricated::dialVoip(const QString& address, int contactId)
+{
+    PHONE_DEBUG4("DialServiceDepricated::dialVoip number:", address, "contactId:", contactId);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(address.utf16 ()));
+    m_parameters.SetPhoneNumber(numberPtr);
+    m_parameters.SetCallTypeCommand(EPECallTypeVoIP);
+    m_parameters.SetContactId2(contactId);
+    m_call.HandleDialServiceCall();    
+}
+
+void DialServiceDepricated::dialVoipService(const QString& address, int serviceId)
+{
+    PHONE_DEBUG4("DialServiceDepricated::dialVoipService number:", address, "serviceId:", serviceId);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(address.utf16 ()));
+    m_parameters.SetPhoneNumber(numberPtr);
+    m_parameters.SetCallTypeCommand(EPECallTypeVoIP);
+    m_parameters.SetServiceIdCommand(serviceId);
+    m_call.HandleDialServiceCall();    
+}
+
+void DialServiceDepricated::dialVoipService(
+        const QString& address, int serviceId, int contactId)
+{
+    PHONE_DEBUG2("DialServiceDepricated::dialVoipService number:", address);
+    PHONE_DEBUG2("DialServiceDepricated::dialVoipService serviceId:", serviceId);
+    PHONE_DEBUG2("DialServiceDepricated::dialVoipService contactId:", contactId);
+    TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(address.utf16 ()));
+    m_parameters.SetPhoneNumber(numberPtr);
+    m_parameters.SetCallTypeCommand(EPECallTypeVoIP);
+    m_parameters.SetServiceIdCommand(serviceId);
+    m_parameters.SetContactId2(contactId);
+    m_call.HandleDialServiceCall();    
+}
+
+QString DialServiceDepricated::simplified(const QString &number)
+{
+    QString simplifiedNumber = number;
+    QRegExp rx(QString("[\\s,.\\[\\]\\(\\)\\-]"));
+    simplifiedNumber.remove(rx);
+    return simplifiedNumber;
+}
--- a/phoneengine/phoneservices/src/dtmfservice.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/src/dtmfservice.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1,5 +1,5 @@
 /*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -20,8 +20,15 @@
 #include "dtmfservice.h"
 #include "qtphonelog.h"
 
-DTMFService::DTMFService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
-    XQServiceProvider(QLatin1String("com.nokia.services.telephony.dtmf"), parent), m_call (call), m_parameters (parameters)
+DTMFService::DTMFService(
+    MPECallControlIF &call, 
+    MPECallSettersIF &parameters, 
+    QObject* parent) 
+    : 
+    XQServiceProvider(
+        QLatin1String("com.nokia.symbian.IDtmfPlay"), parent), 
+    m_call(call), 
+    m_parameters(parameters)
 {
     publishAll();
 }
@@ -30,13 +37,6 @@
 {
 }
 
-void DTMFService::executeKeySequence(const QString& keySequence)
-{
-    PHONE_DEBUG2("DTMFService::executeKeySequence keySequence:", keySequence);
-    TPtrC16 keySequencePtr (reinterpret_cast<const TUint16*>(keySequence.utf16 ()));
-    m_parameters.SetPhoneNumber (keySequencePtr);   
-}
-
 void DTMFService::playDTMFTone(const QChar& keyToPlay)
 {
     PHONE_DEBUG2("DTMFService::playDTMFTone keyToPlay:", keyToPlay);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/dtmfservicedepricated.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,51 @@
+/*!
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  DTMF API to be used through Qt Highway.
+*
+*/
+
+#include <xqserviceutil.h>
+#include <e32base.h>
+#include "dtmfservicedepricated.h"
+#include "qtphonelog.h"
+
+DTMFServiceDepricated::DTMFServiceDepricated(
+    MPECallControlIF &call, 
+    MPECallSettersIF &parameters, 
+    QObject* parent) 
+    : 
+    XQServiceProvider(
+        QLatin1String("com.nokia.services.telephony.dtmf"), parent), 
+    m_call(call), 
+    m_parameters(parameters)
+{
+    publishAll();
+}
+
+DTMFServiceDepricated::~DTMFServiceDepricated()
+{
+}
+
+void DTMFServiceDepricated::playDTMFTone(const QChar& keyToPlay)
+{
+    PHONE_DEBUG2("DTMFServiceDepricated::playDTMFTone keyToPlay:", keyToPlay);
+    m_parameters.SetKeyCode(keyToPlay.unicode());
+    TRAP_IGNORE( m_call.HandlePlayDTMFL() );
+}
+
+void DTMFServiceDepricated::stopDTMFPlay()
+{
+    PHONE_DEBUG("DTMFServiceDepricated::stopDTMFPlay");
+    m_call.HandleEndDTMF(); 
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/keysequencerecognitionservice.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,60 @@
+/*!
+* 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:  Provides key sequence recognition and execution services.
+*
+*/
+
+#include <QDebug>
+#include <xqserviceutil.h>
+#include <e32base.h>
+#include "keysequencerecognitionservice.h"
+#include "mpekeysequencerecognitionif.h"
+
+/*!
+  KeySequenceRecognitionService::KeySequenceRecognitionService.
+ */
+KeySequenceRecognitionService::KeySequenceRecognitionService(
+    MPEKeySequenceRecognitionIF &keySequenceRecognizer,
+    QObject* parent) 
+    : 
+    XQServiceProvider(
+        QLatin1String("com.nokia.symbian.IDtmfPlay"), parent),
+        m_keySequenceRecognizer(keySequenceRecognizer)
+{
+    publishAll();
+}
+
+
+/*!
+  KeySequenceRecognitionService::~KeySequenceRecognitionService.
+ */
+KeySequenceRecognitionService::~KeySequenceRecognitionService()
+{
+}
+
+
+/*!
+  KeySequenceRecognitionService::executeKeySequence.
+ */
+bool KeySequenceRecognitionService::executeKeySequence(
+    const QString &keySequence)
+{
+    TPtrC16 keySequencePtr(
+        reinterpret_cast<const TUint16*>(keySequence.utf16()));
+    bool sequenceProcessed = false;
+    TRAPD(leaveCode, sequenceProcessed = static_cast<bool>(
+        m_keySequenceRecognizer.ExecuteKeySequenceL(keySequencePtr)));
+    sequenceProcessed = (KErrNone == leaveCode) ? sequenceProcessed : false;
+    return sequenceProcessed;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/src/keysequencerecognitionservicedepricated.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,60 @@
+/*!
+* 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:  Provides key sequence recognition and execution services.
+*
+*/
+
+#include <QDebug>
+#include <xqserviceutil.h>
+#include <e32base.h>
+#include "keysequencerecognitionservicedepricated.h"
+#include "mpekeysequencerecognitionif.h"
+
+/*!
+  KeySequenceRecognitionServiceDepricated::KeySequenceRecognitionServiceDepricated.
+ */
+KeySequenceRecognitionServiceDepricated::KeySequenceRecognitionServiceDepricated(
+    MPEKeySequenceRecognitionIF &keySequenceRecognizer,
+    QObject* parent) 
+    : 
+    XQServiceProvider(
+        QLatin1String("com.nokia.services.telephony"), parent),
+        m_keySequenceRecognizer(keySequenceRecognizer)
+{
+    publishAll();
+}
+
+
+/*!
+  KeySequenceRecognitionServiceDepricated::~KeySequenceRecognitionServiceDepricated.
+ */
+KeySequenceRecognitionServiceDepricated::~KeySequenceRecognitionServiceDepricated()
+{
+}
+
+
+/*!
+  KeySequenceRecognitionServiceDepricated::executeKeySequence.
+ */
+bool KeySequenceRecognitionServiceDepricated::executeKeySequence(
+    const QString &keySequence)
+{
+    TPtrC16 keySequencePtr(
+        reinterpret_cast<const TUint16*>(keySequence.utf16()));
+    bool sequenceProcessed = false;
+    TRAPD(leaveCode, sequenceProcessed = static_cast<bool>(
+        m_keySequenceRecognizer.ExecuteKeySequenceL(keySequencePtr)));
+    sequenceProcessed = (KErrNone == leaveCode) ? sequenceProcessed : false;
+    return sequenceProcessed;
+}
--- a/phoneengine/phoneservices/src/phoneservices.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/src/phoneservices.cpp	Fri May 14 15:51:57 2010 +0300
@@ -18,14 +18,41 @@
 #include "phoneservices.h"
 #include "dialservice.h"
 #include "dtmfservice.h"
+#include "mpekeysequencerecognitionif.h"
+#include "keysequencerecognitionservice.h"
 #include "qtphonelog.h"
 
-PhoneServices::PhoneServices(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
-    QObject(parent)
+// Depricated APIs
+#include "dialservicedepricated.h"
+#include "dtmfservicedepricated.h"
+#include "keysequencerecognitionservicedepricated.h"
+
+PhoneServices::PhoneServices(
+    MPECallControlIF &call, 
+    MPECallSettersIF &parameters, 
+    MPEKeySequenceRecognitionIF &keySequenceRecognition,
+    QObject* parent) 
+    : 
+    QObject(parent),
+    dialService(0),
+    dtmfService(0),
+    m_keySequenceRecognitionService(0)
+    // Depricated
+    , dialServiceDepricated(0)
+    , dtmfServiceDepricated(0)
+    , m_keySequenceRecognitionServiceDepricated(0)
 {
     PHONE_DEBUG("PhoneServices::PhoneServices");
-    dialService = new DialService(call, parameters, this);
-    dtmfService = new DTMFService(call, parameters, this);
+    dialService.reset(new DialService(call, parameters));
+    dtmfService.reset(new DTMFService(call, parameters));
+    m_keySequenceRecognitionService.reset( 
+        new KeySequenceRecognitionService(keySequenceRecognition));
+
+    // Depricated
+    dialServiceDepricated.reset(new DialServiceDepricated(call, parameters));
+    dtmfServiceDepricated.reset(new DTMFServiceDepricated(call, parameters));
+    m_keySequenceRecognitionServiceDepricated.reset( 
+        new KeySequenceRecognitionServiceDepricated(keySequenceRecognition));
 }
 
 PhoneServices::~PhoneServices()
--- a/phoneengine/phoneservices/tsrc/runtests.bat	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/runtests.bat	Fri May 14 15:51:57 2010 +0300
@@ -27,3 +27,7 @@
 del \epoc32\winscw\c\private\EEE39B2F\ut_dtmfservice.log
 \epoc32\release\winscw\udeb\ut_dtmfservice.exe -o ut_dtmfservice.log
 type \epoc32\winscw\c\private\EEE39B2F\ut_dtmfservice.log
+
+del \epoc32\winscw\c\private\E31F4ECF\ut_keysequencerecognitionservice.log
+\epoc32\release\winscw\udeb\ut_keysequencerecognitionservice.exe -o ut_keysequencerecognitionservice.log
+type \epoc32\winscw\c\private\E31F4ECF\ut_keysequencerecognitionservice.log
--- a/phoneengine/phoneservices/tsrc/unit.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/unit.pro	Fri May 14 15:51:57 2010 +0300
@@ -19,3 +19,4 @@
 SUBDIRS += ut_phoneservices
 SUBDIRS += ut_dialservice
 SUBDIRS += ut_dtmfservice
+SUBDIRS += ut_keysequencerecognitionservice
--- a/phoneengine/phoneservices/tsrc/ut_dtmfservice/unit_tests.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/ut_dtmfservice/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -44,7 +44,6 @@
     void SetServiceIdCommand( TUint32 aServiceId );
     
 private slots:
-    void testExecuteKeySequence ();
     void testPlayDTMFTone ();
     void testStopDTMFPlay ();
 
@@ -142,7 +141,7 @@
 
 void TestDTMFService::SetServiceIdCommand( TUint32 aServiceId )
 {
-
+    Q_UNUSED(aServiceId)
 }
 
 TInt TestDTMFService::HandleDialServiceCall( const TBool aClientCall )
@@ -152,14 +151,6 @@
     return KErrNone;
 }
 
-void TestDTMFService::testExecuteKeySequence()
-{
-    m_dtmfService->executeKeySequence(QString("*#0000#"));
-    QString keySequence((QChar*)m_phoneNumber.Ptr(), m_phoneNumber.Length());
-    QVERIFY (m_setPhoneNumberCalled == true);
-    QCOMPARE (keySequence, QString("*#0000#"));
-}
-
 void TestDTMFService::testPlayDTMFTone()
 {
     QChar six('6');
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_keysequencerecognitionservice/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,113 @@
+/*!
+* 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:  Unit tests for DialService.
+*
+*/
+
+#include <QtTest/QtTest>
+
+#include "mpekeysequencerecognitionif.h"
+#include "keysequencerecognitionservice.h"
+
+class UT_KeySequenceRecognitionService 
+    : 
+    public QObject, public MPEKeySequenceRecognitionIF
+{
+    Q_OBJECT
+    
+public:
+    UT_KeySequenceRecognitionService();
+    virtual ~UT_KeySequenceRecognitionService();
+
+public:
+    TBool ExecuteKeySequenceL(const TDesC16& aSequence);
+    
+private slots:
+    void init();
+    void cleanup();
+    void t_executeKeySequence();
+    void t_notRecognizedKeySequence();
+    void t_leaveDuringExecuteKeySequence();
+
+private:
+    KeySequenceRecognitionService *m_RecognitionService;
+    TBool m_keySequenceExecutionResult;
+    TPtrC16 m_keySequencePtr;
+    int m_leaveSimulationCode;
+};
+
+UT_KeySequenceRecognitionService::UT_KeySequenceRecognitionService()
+    :
+    m_RecognitionService(NULL),
+    m_keySequenceExecutionResult(ETrue), 
+    m_leaveSimulationCode(KErrNone)
+{
+}
+
+UT_KeySequenceRecognitionService::~UT_KeySequenceRecognitionService()
+{
+    delete m_RecognitionService;
+}
+
+TBool UT_KeySequenceRecognitionService::ExecuteKeySequenceL(
+    const TDesC16& aSequence)
+{
+    Q_UNUSED(aSequence)
+    User::LeaveIfError(m_leaveSimulationCode);
+    
+    m_keySequencePtr.Set(aSequence.Ptr());
+    return m_keySequenceExecutionResult;
+}
+
+void UT_KeySequenceRecognitionService::init()
+{
+    m_RecognitionService = new KeySequenceRecognitionService(*this);
+    m_keySequenceExecutionResult = ETrue;
+    m_keySequencePtr.Set(NULL, 0);
+    m_leaveSimulationCode = KErrNone;
+}
+
+void UT_KeySequenceRecognitionService::cleanup()
+{
+    delete m_RecognitionService;
+    m_RecognitionService = NULL;
+}
+
+void UT_KeySequenceRecognitionService::t_executeKeySequence()
+{
+    QString sequence("*#06#");
+    bool result = m_RecognitionService->executeKeySequence(sequence);
+    QCOMPARE(result, true);
+    QVERIFY(
+        m_keySequencePtr == TPtrC16(reinterpret_cast<const TUint16*>(sequence.utf16())));
+}
+
+void UT_KeySequenceRecognitionService::t_notRecognizedKeySequence()
+{
+    m_keySequenceExecutionResult = EFalse;
+    QString sequence("*#abc#");
+    bool result = m_RecognitionService->executeKeySequence(sequence);
+    QCOMPARE(result, false);
+}
+
+void UT_KeySequenceRecognitionService::t_leaveDuringExecuteKeySequence()
+{
+    m_leaveSimulationCode = KErrArgument;
+    QString sequence("abc");
+    bool result = m_RecognitionService->executeKeySequence(sequence);
+    QCOMPARE(result, false);
+}
+
+QTEST_MAIN(UT_KeySequenceRecognitionService)
+#include "unit_tests.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/phoneservices/tsrc/ut_keysequencerecognitionservice/ut_keysequencerecognitionservice.pro	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description:
+#
+#
+
+TEMPLATE = app
+TARGET = 
+TARGET.UID3 = 0xE31F4ECF
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG += qtestlib
+
+QT -= gui
+
+symbian {
+
+    INCLUDEPATH += \epoc32\include\platform \
+                   \epoc32\include\platform\mw \
+                   \epoc32\include\mw \
+                   ../../../../inc
+
+    LIBS += -lxqservice \
+            -lxqserviceutil
+
+    TARGET.CAPABILITY = ALL -TCB
+}
+
+# Input
+HEADERS += ../../inc/keysequencerecognitionservice.h
+SOURCES += ../../src/keysequencerecognitionservice.cpp
+SOURCES += unit_tests.cpp
--- a/phoneengine/phoneservices/tsrc/ut_phoneservices/unit_tests.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/ut_phoneservices/unit_tests.cpp	Fri May 14 15:51:57 2010 +0300
@@ -21,21 +21,33 @@
 #include "phoneservices.h"
 #include "dialservice.h"
 #include "dtmfservice.h"
+#include "keysequencerecognitionservice.h"
+#include "mpekeysequencerecognitionif.h"
 
 bool m_dialServiceConstructed;
 bool m_dtmfServiceConstructed;
+bool g_keySequenceServiceConstructed;
 MPECallControlIF* m_dialServiceCallPointer;
 MPECallSettersIF* m_dialServiceParameterPointer;
+MPEKeySequenceRecognitionIF* g_keySequenceRecognizerParameterPointer;
 MPECallControlIF* m_dtmfServiceCallPointer;
 MPECallSettersIF* m_dtmfServiceParameterPointer;
 
-class TestPhoneServices : public QObject, public MPECallControlIF, public MPECallSettersIF
+class TestPhoneServices 
+    : 
+    public QObject,
+    public MPECallControlIF,
+    public MPECallSettersIF,
+    public MPEKeySequenceRecognitionIF
 {
     Q_OBJECT
 public:
     TestPhoneServices();
     virtual ~TestPhoneServices();    
 
+public:
+    TBool ExecuteKeySequenceL(const TDesC16& aSequence);
+    
 public slots:
     void initTestCase ();
     void cleanupTestCase ();
@@ -72,7 +84,7 @@
 };
 
 DialService::DialService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
-    XQServiceProvider(QLatin1String("com.nokia.services.telephony"), parent), m_call (call), m_parameters (parameters)
+    XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters)
 {
     m_dialServiceConstructed = true;
     m_dialServiceCallPointer = &call;
@@ -133,7 +145,7 @@
 }
 
 DTMFService::DTMFService(MPECallControlIF &call, MPECallSettersIF &parameters, QObject* parent) : 
-    XQServiceProvider(QLatin1String("com.nokia.services.telephony.dtmf"), parent), m_call (call), m_parameters (parameters)
+    XQServiceProvider(QLatin1String("com.nokia.symbian.IDtmfPlay"), parent), m_call (call), m_parameters (parameters)
 {
     m_dtmfServiceConstructed = true;
     m_dtmfServiceCallPointer = &call;
@@ -144,11 +156,6 @@
 {
 }
 
-void DTMFService::executeKeySequence(const QString& keySequence)
-{
-    Q_UNUSED(keySequence);
-}
-
 void DTMFService::playDTMFTone(const QChar& keyToPlay)
 {
     Q_UNUSED(keyToPlay);
@@ -158,6 +165,29 @@
 {
 }
 
+KeySequenceRecognitionService::KeySequenceRecognitionService(
+    MPEKeySequenceRecognitionIF &keySequenceRecognizer,
+    QObject* parent) 
+    : 
+    XQServiceProvider(
+        QLatin1String("com.nokia.symbian.IDtmfPlay"), parent),
+        m_keySequenceRecognizer(keySequenceRecognizer)
+{
+    g_keySequenceServiceConstructed = true;
+    g_keySequenceRecognizerParameterPointer = &keySequenceRecognizer;
+}
+
+bool KeySequenceRecognitionService::executeKeySequence(
+    const QString &keySequence)
+{
+    Q_UNUSED(keySequence);
+    return true;
+}
+
+KeySequenceRecognitionService::~KeySequenceRecognitionService()
+{
+}
+
 TestPhoneServices::TestPhoneServices ()
 {
 }
@@ -188,8 +218,9 @@
     keyValue = -1;
     m_dialServiceConstructed = false;
     m_dtmfServiceConstructed = false;
+    g_keySequenceServiceConstructed = false;
     
-    m_phoneServices = new PhoneServices (*this, *this, this);
+    m_phoneServices = new PhoneServices (*this, *this, *this, this);
 
     QVERIFY(m_dialServiceConstructed == true);
     QVERIFY(m_dialServiceCallPointer == this);
@@ -198,6 +229,9 @@
     QVERIFY(m_dtmfServiceConstructed == true);
     QVERIFY(m_dtmfServiceCallPointer == this);
     QVERIFY(m_dtmfServiceParameterPointer == this);
+    
+    QVERIFY(g_keySequenceServiceConstructed == true);
+    QVERIFY(g_keySequenceRecognizerParameterPointer == this);
 }
 
 void TestPhoneServices::cleanup ()
@@ -205,6 +239,12 @@
     delete m_phoneServices;
 }
 
+TBool TestPhoneServices::ExecuteKeySequenceL(const TDesC16& aSequence)
+{
+    Q_UNUSED(aSequence)
+    return ETrue;
+}
+
 void TestPhoneServices::SetKeyCode( const TChar& aKeyCode )
 {
     m_setKeyCodeCalled = true;
@@ -242,7 +282,7 @@
 
 void TestPhoneServices::SetServiceIdCommand( TUint32 aServiceId )
 {
-	
+    Q_UNUSED(aServiceId)
 }
 
 TInt TestPhoneServices::HandleDialServiceCall( const TBool aClientCall )
--- a/phoneengine/phoneservices/tsrc/ut_phoneservices/ut_phoneservices.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneengine/phoneservices/tsrc/ut_phoneservices/ut_phoneservices.pro	Fri May 14 15:51:57 2010 +0300
@@ -20,8 +20,9 @@
 TARGET.UID3 = 0xEEE39B3F
 DEPENDPATH += .
 INCLUDEPATH += .
-CONFIG += hb
+#CONFIG += hb
 CONFIG += qtestlib
+QT -= gui
 
 symbian {
 
@@ -44,5 +45,12 @@
 HEADERS += ../../inc/phoneservices.h
 HEADERS += ../../inc/dialservice.h
 HEADERS += ../../inc/dtmfservice.h
+HEADERS += ../../inc/keysequencerecognitionservice.h
+HEADERS += ../../inc/dialservicedepricated.h
+HEADERS += ../../inc/dtmfservicedepricated.h
+HEADERS += ../../inc/keysequencerecognitionservicedepricated.h
 SOURCES += ../../src/phoneservices.cpp
+SOURCES += ../../src/dialservicedepricated.cpp
+SOURCES += ../../src/dtmfservicedepricated.cpp
+SOURCES += ../../src/keysequencerecognitionservicedepricated.cpp
 SOURCES += unit_tests.cpp
--- a/phoneplugins/csplugin/Makefile	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-# ==============================================================================
-# Generated by qmake (2.01a) (Qt 4.5.2-tower) on: ti 29. syys 12:32:49 2009
-# This file is generated by qmake and should not be modified by the
-# user.
-#  Name        : Makefile
-#  Description : Wrapper Makefile for calling Symbian build tools
-#
-# ==============================================================================
-
-
-QMAKE             = r:\sf\mw\qt\qmake\qmake.exe
-DEL_FILE          = del
-DEL_DIR           = rmdir
-XCOPY             = xcopy /d /f /h /r /y /i
-ABLD              = ABLD.BAT
-DEBUG_PLATFORMS   = winscw gcce armv5 armv6
-RELEASE_PLATFORMS = gcce armv5 armv6
-MAKE              = make
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-ZDIR=$(EPOCROOT)epoc32\data\z
-endif
-
-DEFINES	 = -DSYMBIAN -DUNICODE -DQT_KEYPAD_NAVIGATION
-INCPATH	 =  -I"R:/sf/mw/qt/mkspecs/common/symbian/stl-off" -I"R:/sf/mw/qt/mkspecs/common/symbian/stl-off/tmp" -I"R:/sf/mw/qt/mkspecs/common/symbian" -I"R:/sf/mw/qt/mkspecs/common/symbian/tmp" -I"R:/epoc32/include" -I"R:/epoc32/include/stdapis" -I"R:/epoc32/include/stdapis/sys" -I"R:/sf/mw/qt/include" -I"R:/sf/mw/qt/include/tmp"
-first: default
-default: debug-winscw
-all: debug release
-
-qmake:
-	$(QMAKE) -spec symbian-abld -o "bld.inf" "R:/sf/app/phone/csplugin/csplugin.pro"
-
-bld.inf:
-	$(QMAKE)
-
-$(ABLD): bld.inf
-	bldmake bldfiles
-
-debug: $(ABLD)
-	$(ABLD) build winscw udeb
-	$(ABLD) build gcce udeb
-	$(ABLD) build armv5 udeb
-	$(ABLD) build armv6 udeb
-
-release: $(ABLD)
-	$(ABLD) build gcce urel
-	$(ABLD) build armv5 urel
-	$(ABLD) build armv6 urel
-
-debug-winscw: $(ABLD)
-	$(ABLD) build winscw udeb
-debug-gcce: $(ABLD)
-	$(ABLD) build gcce udeb
-debug-armv5: $(ABLD)
-	$(ABLD) build armv5 udeb
-debug-armv6: $(ABLD)
-	$(ABLD) build armv6 udeb
-release-gcce: $(ABLD)
-	$(ABLD) build gcce urel
-release-armv5: $(ABLD)
-	$(ABLD) build armv5 urel
-release-armv6: $(ABLD)
-	$(ABLD) build armv6 urel
-
-export: $(ABLD)
-	$(ABLD) export
-
-cleanexport: $(ABLD)
-	$(ABLD) cleanexport
-
-compiler_clean: 
-
-create_temps:
-	-@ if NOT EXIST "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp" mkdir "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp"
-	-@ if NOT EXIST "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp\tmp" mkdir "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp\tmp"
-	-@ if NOT EXIST "R:\sf\mw\qt\mkspecs\common\symbian\tmp" mkdir "R:\sf\mw\qt\mkspecs\common\symbian\tmp"
-	-@ if NOT EXIST "R:\sf\mw\qt\mkspecs\common\symbian\tmp\tmp" mkdir "R:\sf\mw\qt\mkspecs\common\symbian\tmp\tmp"
-	-@ if NOT EXIST "R:\epoc32\include\tmp" mkdir "R:\epoc32\include\tmp"
-	-@ if NOT EXIST "R:\epoc32\include\stdapis\tmp" mkdir "R:\epoc32\include\stdapis\tmp"
-	-@ if NOT EXIST "R:\epoc32\include\stdapis\sys\tmp" mkdir "R:\epoc32\include\stdapis\sys\tmp"
-	-@ if NOT EXIST "R:\sf\mw\qt\include\tmp" mkdir "R:\sf\mw\qt\include\tmp"
-	-@ if NOT EXIST "R:\sf\mw\qt\include\tmp\tmp" mkdir "R:\sf\mw\qt\include\tmp\tmp"
-
-extension_clean: compiler_clean
-	-@ if EXIST "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp" rmdir  /S /Q  "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp"
-	-@ if EXIST "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp\tmp" rmdir  /S /Q  "R:\sf\mw\qt\mkspecs\common\symbian\stl-off\tmp\tmp"
-	-@ if EXIST "R:\sf\mw\qt\mkspecs\common\symbian\tmp" rmdir  /S /Q  "R:\sf\mw\qt\mkspecs\common\symbian\tmp"
-	-@ if EXIST "R:\sf\mw\qt\mkspecs\common\symbian\tmp\tmp" rmdir  /S /Q  "R:\sf\mw\qt\mkspecs\common\symbian\tmp\tmp"
-	-@ if EXIST "R:\epoc32\include\tmp" rmdir  /S /Q  "R:\epoc32\include\tmp"
-	-@ if EXIST "R:\epoc32\include\stdapis\tmp" rmdir  /S /Q  "R:\epoc32\include\stdapis\tmp"
-	-@ if EXIST "R:\epoc32\include\stdapis\sys\tmp" rmdir  /S /Q  "R:\epoc32\include\stdapis\sys\tmp"
-	-@ if EXIST "R:\sf\mw\qt\include\tmp" rmdir  /S /Q  "R:\sf\mw\qt\include\tmp"
-	-@ if EXIST "R:\sf\mw\qt\include\tmp\tmp" rmdir  /S /Q  "R:\sf\mw\qt\include\tmp\tmp"
-
-pre_targetdeps: \
-	generated_sources \
-	all_source_deps
-
-generated_sources:
-
-all_source_deps:
-
-finalize:
-
-winscw_deployment:
-
-winscw_deployment_clean:
-
-dodistclean:
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_gcce_udeb.pkg" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_gcce_udeb.pkg"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_gcce_urel.pkg" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_gcce_urel.pkg"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_armv5_udeb.pkg" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_armv5_udeb.pkg"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_armv5_urel.pkg" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_armv5_urel.pkg"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_armv6_udeb.pkg" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_armv6_udeb.pkg"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_armv6_urel.pkg" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_armv6_urel.pkg"
-	-@ if EXIST "r:\sf\app\phone\csplugin\Makefile" $(DEL_FILE)  "r:\sf\app\phone\csplugin\Makefile"
-	-@ if EXIST "r:\sf\app\phone\csplugin\Makefile_0xE35130c6.mk" $(DEL_FILE)  "r:\sf\app\phone\csplugin\Makefile_0xE35130c6.mk"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_0xE35130c6.mmp" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_0xE35130c6.mmp"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin_reg.rss" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin_reg.rss"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin.rss" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin.rss"
-	-@ if EXIST "r:\sf\app\phone\csplugin\csplugin.loc" $(DEL_FILE)  "r:\sf\app\phone\csplugin\csplugin.loc"
-	-@ if EXIST "r:\sf\app\phone\csplugin\bld.inf" $(DEL_FILE)  "r:\sf\app\phone\csplugin\bld.inf"
-
-distclean: clean dodistclean
-
-clean: $(ABLD)
-	-$(ABLD) reallyclean
-	-bldmake clean
-
-run:
-	-call /epoc32\release\winscw\udeb\csplugin.exe
-
--- a/phoneplugins/csplugin/Makefile_0xE35130c6.mk	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-# ==============================================================================
-# Generated by qmake (2.01a) (Qt 4.5.2-tower) on: ti 29. syys 12:32:49 2009
-# This file is generated by qmake and should not be modified by the
-# user.
-#  Name        : Makefile_0xE35130c6.mk
-#  Part of     : csplugin
-#  Description : This file is used to call necessary targets on wrapper makefile
-#                during normal Symbian build process.
-#  Version     : 
-#
-# ==============================================================================
-
-
-
-MAKE = make
-
-do_nothing :
-	@rem do_nothing
-
-MAKMAKE: create_temps pre_targetdeps
-
-LIB: create_temps pre_targetdeps
-
-BLD: create_temps pre_targetdeps
-
-ifeq "$(PLATFORM)" "WINSCW"
-CLEAN: extension_clean winscw_deployment_clean
-else
-CLEAN: extension_clean
-endif
-
-CLEANLIB: do_nothing
-
-RESOURCE: do_nothing
-
-FREEZE: do_nothing
-
-SAVESPACE: do_nothing
-
-RELEASABLES: do_nothing
-
-ifeq "$(PLATFORM)" "WINSCW"
-FINAL: finalize winscw_deployment
-else
-FINAL: finalize
-endif
-
-pre_targetdeps : r:\sf\app\phone\csplugin\Makefile
-	-$(MAKE) -f "r:\sf\app\phone\csplugin\Makefile" pre_targetdeps
-
-create_temps : r:\sf\app\phone\csplugin\Makefile
-	-$(MAKE) -f "r:\sf\app\phone\csplugin\Makefile" create_temps
-
-extension_clean : r:\sf\app\phone\csplugin\Makefile
-	-$(MAKE) -f "r:\sf\app\phone\csplugin\Makefile" extension_clean
-
-finalize : r:\sf\app\phone\csplugin\Makefile
-	-$(MAKE) -f "r:\sf\app\phone\csplugin\Makefile" finalize
-
-winscw_deployment_clean : r:\sf\app\phone\csplugin\Makefile
-	-$(MAKE) -f "r:\sf\app\phone\csplugin\Makefile" winscw_deployment_clean
-
-winscw_deployment : r:\sf\app\phone\csplugin\Makefile
-	-$(MAKE) -f "r:\sf\app\phone\csplugin\Makefile" winscw_deployment
-
-
--- a/phoneplugins/csplugin/bld.inf	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// ============================================================================
-// * Makefile for building: csplugin
-// * Generated by qmake (2.01a) (Qt 4.5.2-tower) on: 2009-09-29T12:32:49
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  csplugin.pro
-// * Template: app
-// ============================================================================
-
-#define BLD_INF_CSPLUGIN_06B171AA
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-gnumakefile makefile_0xe35130c6.mk
-csplugin_0xe35130c6.mmp
-
-prj_extensions
-
--- a/phoneplugins/csplugin/csplugin.loc	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.5.2-tower) on: 2009-09-29T12:32:49
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#ifdef LANGUAGE_SC
-#define STRING_r_short_caption "csplugin"
-#define STRING_r_caption "csplugin"
-#else
-#define STRING_r_short_caption "csplugin"
-#define STRING_r_caption "csplugin"
-#endif
--- a/phoneplugins/csplugin/csplugin.rss	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.5.2-tower) on: 2009-09-29T12:32:49
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#include <appinfo.rh>
-#include "csplugin.loc"
-
-RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
-    {
-    short_caption = STRING_r_short_caption;
-    caption_and_icon =
-    CAPTION_AND_ICON_INFO
-        {
-        caption = STRING_r_caption;
-        number_of_icons = 0;
-        icon_file = "";
-        };
-    }
-
--- a/phoneplugins/csplugin/csplugin_0xE35130c6.mmp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.5.2-tower) on: 2009-09-29T12:32:49
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : csplugin.mmp
-// ==============================================================================
-
-TARGET      csplugin.exe
-TARGETTYPE      EXE
-
-UID     0x100039CE 0xE35130c6
-SECUREID        0xE35130c6
-
-
-SOURCEPATH          . 
-LANG SC 
-START RESOURCE      csplugin.rss
-HEADER
-TARGETPATH          /resource/apps
-END
-
-SOURCEPATH          . 
-START RESOURCE      csplugin_reg.rss
-TARGETPATH      /private/10003a3f/import/apps
-END
-
-
-// Qt Macros
-MACRO       UNICODE
-MACRO       QT_KEYPAD_NAVIGATION
-
-SYSTEMINCLUDE       ../../../mw/qt/mkspecs/common/symbian/stl-off
-SYSTEMINCLUDE       ../../../mw/qt/mkspecs/common/symbian/stl-off/tmp
-SYSTEMINCLUDE       ../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE       ../../../mw/qt/mkspecs/common/symbian/tmp
-SYSTEMINCLUDE       /epoc32/include
-SYSTEMINCLUDE       /epoc32/include/stdapis
-SYSTEMINCLUDE       /epoc32/include/stdapis/sys
-SYSTEMINCLUDE       ../../../mw/qt/include
-SYSTEMINCLUDE       ../../../mw/qt/include/tmp
-
-
-LIBRARY     libc.lib
-LIBRARY     libm.lib
-LIBRARY     euser.lib
-LIBRARY     libdl.lib
-
-CAPABILITY      None
-
-OPTION   ARMCC --no_hide_all --fpu softvfp
-
-VERSION 10.0
-
-EXPORTUNFROZEN
-
-PAGED
--- a/phoneplugins/csplugin/csplugin_armv5_udeb.pkg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-; csplugin_armv5_udeb.pkg generated by qmake at 2009-09-29T12:32:49
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"csplugin"},(0xE35130c6),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv5/udeb/csplugin.exe"    - "!:\sys\bin\csplugin.exe"
-"/epoc32/data/z/resource/apps/csplugin.rsc"    - "!:\resource\apps\csplugin.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/csplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\csplugin_reg.rsc"
--- a/phoneplugins/csplugin/csplugin_armv5_urel.pkg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-; csplugin_armv5_urel.pkg generated by qmake at 2009-09-29T12:32:49
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"csplugin"},(0xE35130c6),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv5/urel/csplugin.exe"    - "!:\sys\bin\csplugin.exe"
-"/epoc32/data/z/resource/apps/csplugin.rsc"    - "!:\resource\apps\csplugin.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/csplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\csplugin_reg.rsc"
--- a/phoneplugins/csplugin/csplugin_armv6_udeb.pkg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-; csplugin_armv6_udeb.pkg generated by qmake at 2009-09-29T12:32:49
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"csplugin"},(0xE35130c6),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv6/udeb/csplugin.exe"    - "!:\sys\bin\csplugin.exe"
-"/epoc32/data/z/resource/apps/csplugin.rsc"    - "!:\resource\apps\csplugin.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/csplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\csplugin_reg.rsc"
--- a/phoneplugins/csplugin/csplugin_armv6_urel.pkg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-; csplugin_armv6_urel.pkg generated by qmake at 2009-09-29T12:32:49
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"csplugin"},(0xE35130c6),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/armv6/urel/csplugin.exe"    - "!:\sys\bin\csplugin.exe"
-"/epoc32/data/z/resource/apps/csplugin.rsc"    - "!:\resource\apps\csplugin.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/csplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\csplugin_reg.rsc"
--- a/phoneplugins/csplugin/csplugin_gcce_udeb.pkg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-; csplugin_gcce_udeb.pkg generated by qmake at 2009-09-29T12:32:49
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"csplugin"},(0xE35130c6),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/gcce/udeb/csplugin.exe"    - "!:\sys\bin\csplugin.exe"
-"/epoc32/data/z/resource/apps/csplugin.rsc"    - "!:\resource\apps\csplugin.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/csplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\csplugin_reg.rsc"
--- a/phoneplugins/csplugin/csplugin_gcce_urel.pkg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-; csplugin_gcce_urel.pkg generated by qmake at 2009-09-29T12:32:49
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"csplugin"},(0xE35130c6),1,0,0
-
-; Localised Vendor name
-%{"Nokia, Qt Software"}
-
-; Unique Vendor name
-:"Nokia, Qt Software"
-
-; Dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
-
-; Executable and default resource files
-"/epoc32/release/gcce/urel/csplugin.exe"    - "!:\sys\bin\csplugin.exe"
-"/epoc32/data/z/resource/apps/csplugin.rsc"    - "!:\resource\apps\csplugin.rsc"
-"/epoc32/data/z/private/10003a3f/import/apps/csplugin_reg.rsc"    - "!:\private\10003a3f\import\apps\csplugin_reg.rsc"
--- a/phoneplugins/csplugin/csplugin_reg.rss	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-// ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.5.2-tower) on: 2009-09-29T12:32:49
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// ============================================================================
-
-#include <csplugin.rsg>
-#include <appinfo.rh>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0xE35130c6
-
-RESOURCE APP_REGISTRATION_INFO
-    {
-    app_file="csplugin";
-    localisable_resource_file="\\resource\\apps\\csplugin";
-
-    }
--- a/phoneplugins/csplugin/src/cspcall.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/csplugin/src/cspcall.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1339,14 +1339,13 @@
 void CSPCall::UpdateCallOrigin( RMobileCall::TMobileCallInfoV7 aCallInfo )
     {
     CSPLOGSTRING(CSPINT, "CSPCall::UpdateCallOrigin <");
-   
-    if ( iMobileOriginated )
+
+    if ( RMobileCall::EOriginatorSIM == aCallInfo.iCallParamOrigin )
         {
-        if ( RMobileCall::EOriginatorSIM == aCallInfo.iCallParamOrigin )
-            {
-            iParams->SetOrigin(CCCECallParameters::ECCECallOriginSAT);
-            }
+        iParams->SetOrigin(CCCECallParameters::ECCECallOriginSAT);
+        iParams->SetAlphaId(aCallInfo.iAlphaId);
         }
+
     CSPLOGSTRING(CSPINT, "CSPCall::UpdateCallOrigin >");
     }
 
--- a/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetplugin.pro	Fri May 14 15:51:57 2010 +0300
@@ -30,6 +30,10 @@
     TARGET.CAPABILITY = ALL \
         -TCB
     INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+    
+    BLD_INF_RULES.prj_exports +=  \
+     "$${LITERAL_HASH}include <platform_paths.hrh>" \
+     "./rom/hsdialerwidgetplugin.iby    CORE_APP_LAYER_IBY_EXPORT_PATH(hsdialerwidgetplugin.iby)"
 }
 OUTPUT_DIR = $$PWD/bin
 SOURCE_DIR = $$PWD/inc
--- a/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetpluging.qrc	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/hsdialerwidgetplugin/hsdialerwidgetpluging.qrc	Fri May 14 15:51:57 2010 +0300
@@ -3,5 +3,6 @@
         <file>resource/qtg_fr_shortcut_badge_bg_r.png</file>
         <file>resource/qtg_fr_shortcut_badge_bg_c.png</file>
         <file>resource/qtg_fr_shortcut_badge_bg_l.png</file>
+        <file>resource/qtg_graf_hs_dialer.svg</file>
     </qresource>
 </RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/hsdialerwidgetplugin/rom/hsdialerwidgetplugin.iby	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* 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 __HSDIALERWIDETPLUGIN_IBY__
+#define __HSDIALERWIDETPLUGIN_IBY__
+
+file=ABI_DIR\BUILD_DIR\hsdialerwidgetplugin.dll                                        SHARED_LIB_DIR\hsdialerwidgetplugin.dll
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.qtplugin    private\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.qtplugin
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.manifest    private\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.manifest
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\qtg_graf_hs_dialer.svg           private\20022f35\import\widgetregistry\20022F44\qtg_graf_hs_dialer.svg
+data=ZPRIVATE\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.xml         private\20022f35\import\widgetregistry\20022F44\hsdialerwidgetplugin.xml
+
+#endif //__HSDIALERWIDETPLUGIN_IBY__
--- a/phoneplugins/hsdialerwidgetplugin/src/hsdialerwidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/hsdialerwidgetplugin/src/hsdialerwidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -20,6 +20,7 @@
 #include <hbframedrawer.h>
 #include <hbframeitem.h>
 #include <hbtextitem.h>
+#include <QLocale>
 #ifdef Q_OS_SYMBIAN
 #include <logsdomaincrkeys.h>
 #include "qtphonelog.h"
@@ -34,7 +35,7 @@
 
 namespace
 {
-    const char KDialerWidgetIcon[] = "qtg_graf_hs_dialer";
+    const char KDialerWidgetIcon[] = ":/icons/resource/qtg_graf_hs_dialer";
     const char KMissedCallShortcutBadge[] = ":/icons/resource/qtg_fr_shortcut_badge_bg";
 }
 
@@ -80,8 +81,8 @@
 
     m_shortcutBadge = new HbFrameItem(drawer, this);
     m_shortcutBadge->setZValue(2);
-    m_shortcutBadge->setVisible(true);
-    m_missedCalls=2;
+    m_shortcutBadge->setVisible(false);
+    m_missedCalls=0;
     setItemPositions();
     resize(preferredSize());
 }
@@ -120,11 +121,10 @@
         badgefont.setPointSize( 8 );
 #endif
         text->setFont(badgefont);
-        text->setText(QString::number(m_missedCalls));
+        text->setText(QLocale::system().toString(m_missedCalls));
         text->setZValue(3);
         text->setTextColor(Qt::white);
-       // text->font().setPointSizeF(2);
-
+       
         text->setX( ( rect.toRect().width() / 2 ) - 2);
         text->setY( ( rect.toRect().height() / 5 ) - 1);
 
@@ -226,7 +226,7 @@
 void HsDialerWidget::setItemPositions()
 {
     HbIcon icon(KDialerWidgetIcon);
-    setPreferredWidth( icon.width());
+    setPreferredWidth(icon.width());
     int badgeSize = 20;
     if ( m_shortcutBadge->isVisible()){
         m_backgroud->setGeometry(QRectF(QPointF(0,badgeSize / 2 ), 
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/inc/infowidgetlogging.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/inc/infowidgetlogging.h	Fri May 14 15:51:57 2010 +0300
@@ -16,7 +16,7 @@
  */
 
 #ifndef INFOWIDGETLOGGING_H
-#define INFOWIDGETLOGGING
+#define INFOWIDGETLOGGING_H
 
 #include <QDebug>
 
@@ -33,29 +33,26 @@
 #ifdef Q_OS_SYMBIAN
 #include <e32debug.h>
 
-static void cpPhoneSettingsPluginsMsgOutput(QtMsgType type, const char *msg)
+static void infoWidgetMsgOutput(QtMsgType type, const char *msg)
 {
     switch (type) {
-    
+        
     case QtDebugMsg:
         RDebug::Printf("InfoWidget Debug: %s\n", msg);
         break;
-        
     case QtWarningMsg:
         RDebug::Printf("InfoWidget Warning: %s\n", msg);
         break;
-
     case QtCriticalMsg:
         RDebug::Printf("InfoWidget Critical: %s\n", msg);
         break;
-        
     case QtFatalMsg:
         RDebug::Printf("InfoWidget Fatal: %s\n", msg);
         abort();
     }
 }
 
-    #define INSTALL_TRACE_MSG_HANDLER qInstallMsgHandler(cpPhoneSettingsPluginsMsgOutput)
+    #define INSTALL_TRACE_MSG_HANDLER qInstallMsgHandler(infoWidgetMsgOutput)
     #define UNINSTALL_TRACE_MSG_HANDLER qInstallMsgHandler(0)
 #endif //Q_OS_SYMBIAN
 #else 
@@ -67,7 +64,8 @@
   Debug macros
   */
 #define DPRINT qDebug() << __PRETTY_FUNCTION__
-
+#define DWARNING qWarning() << __PRETTY_FUNCTION__
+#define DCRITICAL qCritical() << __PRETTY_FUNCTION__
 
 #endif // INFOWIDGETLOGGING
 
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/inc/infowidgetlayoutmanager.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/inc/infowidgetlayoutmanager.h	Fri May 14 15:51:57 2010 +0300
@@ -85,6 +85,8 @@
     InfoWidgetLayoutManager(QObject *parent = 0);
     ~InfoWidgetLayoutManager();
     
+    void destroyObjects(); 
+    
     DisplayRole currentDisplayRole(); 
     QList<LayoutItemRole> currentWidgetRoles(); 
     
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -129,12 +129,8 @@
 {
     DPRINT << ": IN"; 
     
-    // Clean layout container, 
-    // layout manager handles layout item cleanup
-    for (int i=0; i < m_layout->count(); i++) {
-        DPRINT << ": item(" << i << ") removed from layout";
-        m_layout->removeAt(i);
-        } 
+    // Layout manager item cleanup
+    m_layoutManager->destroyObjects(); 
     
     if (m_frameDrawer) {
         delete m_frameDrawer;
@@ -409,10 +405,8 @@
     
     m_layoutManager->showAll(); 
     updateItemsVisibility(); 
+    m_layout->activate(); 
 
-    m_layout->invalidate();
-    m_layout->activate(); 
-    
     endChanges(); 
     
     DPRINT << ": OUT";
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidgetlayoutmanager.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/infowidget/src/infowidgetlayoutmanager.cpp	Fri May 14 15:51:57 2010 +0300
@@ -34,10 +34,8 @@
 const char LAYOUT_PREFIX_SETTINGS_DISPLAY[] = "sd:";
 const char LAYOUT_NAME_CONTENT[] = "content";
 const char LAYOUT_NAME_MCNMARQUEEITEM[] = "mcnMarqueeItem";
-const char LAYOUT_NAME_MCNLABEL[] = "mcnLabel";
 const char LAYOUT_NAME_SPNLABEL[] = "spnLabel";
 const char LAYOUT_NAME_SATMARQUEEITEM[] = "satMarqueeItem";
-const char LAYOUT_NAME_SATTEXTLABEL[] = "satTextLabel";
 const char LAYOUT_NAME_SPNICON[] = "spnIcon";
 const char LAYOUT_NAME_MCNICON[] = "mcnIcon";
 const char LAYOUT_NAME_SATTEXTICON[] = "satTextIcon";
@@ -140,11 +138,41 @@
     if (m_documentLoader) { 
         delete m_documentLoader;
     }
-    
+
     DPRINT << ": OUT";
 }
 
 /*!
+   InfoWidgetLayoutManager::destroyObjects()
+   
+   Call on destruction for freeing  
+   loaded objects. Parent items are deleted 
+   causing deletion of corresponding object tree 
+*/
+void InfoWidgetLayoutManager::destroyObjects()
+{
+    DPRINT << ": IN";
+    
+    // Destroy parent items 
+    QGraphicsWidget *contentInfoDisplay =  
+            m_infoDisplayWidgets.value(RoleContent); 
+    if (contentInfoDisplay) {
+        delete contentInfoDisplay;
+        m_infoDisplayWidgets.clear(); 
+    }
+    
+    QGraphicsWidget *contentSettingsDisplay=  
+            m_settingsDisplayWidgets.value(RoleContent); 
+    if (contentSettingsDisplay) {
+        delete contentSettingsDisplay;
+        m_settingsDisplayWidgets.clear(); 
+    }
+
+    DPRINT << ": OUT";    
+}
+
+
+/*!
    InfoWidgetLayoutManager::currentDisplayRole()
 */
 InfoWidgetLayoutManager::DisplayRole InfoWidgetLayoutManager::currentDisplayRole() 
@@ -347,60 +375,48 @@
         QMap<LayoutItemRole, QGraphicsWidget *> &widgetMap)
 {
     DPRINT << ": IN";
-    bool loadResult(true); 
+    bool loadResult(false); 
 
     // Cleanup previously loaded content in case of any data  
     widgetMap.clear(); 
     
     if (!m_documentLoader) {
         m_documentLoader = new InfoWidgetDocumentLoader;
-    }
-    
+    }    
     Q_ASSERT(m_documentLoader); 
     
     bool loaded = false;
     m_documentLoader->load(INFOWIDGET_DOCML_FILE, &loaded);
+    
     Q_ASSERT_X(loaded, 
             "InfoWidgetLayoutManager", 
             "Invalid docml file");    
     
-    if (!loaded) {
-        qWarning() << "Unable to load .docml:  " << INFOWIDGET_DOCML_FILE;
+    DPRINT << ": document " << INFOWIDGET_DOCML_FILE << " loaded successfully"; 
+    
+    QGraphicsWidget *widget(NULL);
+    LayoutItemRole currentWidgetRole;
+    
+    foreach (currentWidgetRole, displayWidgets) {
+        DPRINT << ": iterating displayWidgets, current role: " << static_cast<int>(currentWidgetRole);
+    
+        widget = loadWidget(*m_documentLoader, displayRole, currentWidgetRole);
+        if (widget) {
+            DPRINT << ": widget found, inserting to widget map";
+            widgetMap.insert(currentWidgetRole, widget);
+            widget = NULL;
+        } else {
+            DCRITICAL << ": ERROR, widget not found!";
+        }
     }
-    else {
-        DPRINT << ": document " << INFOWIDGET_DOCML_FILE << " loaded successfully"; 
-        
-        QGraphicsWidget *widget(NULL);
-        LayoutItemRole currentWidgetRole;
-        bool allWidgetsLoaded(true); 
-        
-        foreach (currentWidgetRole, displayWidgets) {
-            DPRINT << ": iterating displayWidgets, current role: " << static_cast<int>(currentWidgetRole);
-            
-            widget = loadWidget(*m_documentLoader, displayRole, currentWidgetRole);
-               if (widget) {
-                   DPRINT << ": widget found, inserting to widget map";
-                   widgetMap.insert(currentWidgetRole, widget);
-                   widget = NULL;
-               } else {
-                   allWidgetsLoaded = false; 
-                   DPRINT << ": ERROR, widget not found!";
-               }
-        }
-        
-        DPRINT << ": allWidgetsLoaded: " << allWidgetsLoaded;
-                
-        int widgetCount = widgetMap.count(); 
-        DPRINT << ": loaded widgets count: " << widgetCount;
-        if (widgetCount == displayWidgets.count()) {
-            DPRINT << ": all widgets loaded";
-            loadResult = true;
-            } else {
-                DPRINT << ": error, all widgets were not loaded";
-                loadResult = false;
-            }        
-    }
-        
+    
+    if (widgetMap.count() == displayWidgets.count()) {
+        DPRINT << ": all widgets loaded";
+        loadResult = true;
+    } else {
+        DCRITICAL << ": error, all widgets were not loaded";
+    }        
+    
     DPRINT << ": OUT";
     return loadResult; 
 }
@@ -458,15 +474,9 @@
         case RoleSpnLabel: 
             widgetName.append(LAYOUT_NAME_SPNLABEL);
         break;
-        case RoleMcnLabel: 
-            widgetName.append(LAYOUT_NAME_MCNLABEL);
-        break;
         case RoleSatMarqueeItem: 
             widgetName.append(LAYOUT_NAME_SATMARQUEEITEM);
         break; 
-        case RoleSatTextLabel: 
-            widgetName.append(LAYOUT_NAME_SATTEXTLABEL);
-        break; 
         case RoleSpnIcon: 
             widgetName.append(LAYOUT_NAME_SPNICON);
         break; 
@@ -501,11 +511,8 @@
         }
     
     widget = qobject_cast<QGraphicsWidget *>(loader.findWidget(widgetName));
-    
-    if (widget) {
-        DPRINT << ": widget found: " << widgetName;
-    } else {
-        DPRINT << ": ERROR, widget not found!";
+    if (!widget) {
+        DCRITICAL << ": ERROR, widget " << widgetName << " not found!";
     }
            
     DPRINT << ": OUT";
@@ -524,9 +531,9 @@
     
     QList<LayoutItemRole> widgetRoles; 
     
+    // Fill supported layout item roles for specific display
     switch (displayRole) {
         case SettingsDisplay: 
-            // Fill supported layout item roles for settings display
             widgetRoles.append(RoleContent); 
             widgetRoles.append(RoleSpnCheckBox);
             widgetRoles.append(RoleMcnCheckBox);
@@ -535,7 +542,6 @@
             widgetRoles.append(RoleSettingsContainer); 
             break;
         case InfoDisplay: 
-            // Fill supported layout item roles for info display
             widgetRoles.append(RoleContent);
             widgetRoles.append(RoleSpnIcon);
             widgetRoles.append(RoleSpnLabel);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/resource/infowidget.docml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="1.0">
+    <widget name="id:content" type="HbWidget">
+        <widget name="id:container" type="HbWidget">
+            <widget name="id:settingsContainer" type="HbWidget">
+                <widget name="id:spnIcon" type="HbLabel">
+                    <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                    <icon iconName="qtg_large_network.svg" name="icon"/>
+                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                    <sizehint height="var(hb-param-graphic-size-primary-small)" type="FIXED" width="var(hb-param-graphic-size-primary-small)"/>
+                </widget>
+                <widget name="id:mcnIcon" type="HbLabel">
+                    <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                    <icon iconName="qtg_large_cellinfo.svg" name="icon"/>
+                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                    <sizehint height="var(hb-param-graphic-size-primary-small)" type="FIXED" width="var(hb-param-graphic-size-primary-small)"/>
+                </widget>
+                <widget name="id:satTextIcon" type="HbLabel">
+                    <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                    <icon iconName="qtg_large_sat" name="icon"/>
+                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                    <sizehint height="var(hb-param-graphic-size-primary-small)" type="FIXED" width="var(hb-param-graphic-size-primary-small)"/>
+                </widget>
+                <widget name="id:spnLabel" type="HbLabel">
+                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                    <sizehint height="var(hb-param-text-height-tiny)" type="FIXED" width="22.8806un"/>
+                    <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-tiny)"/>
+                </widget>
+                <widget name="id:mcnMarqueeItem" type="HbMarqueeItem">
+                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                    <sizehint type="FIXED" width="22.8806un"/>
+                    <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-tiny)"/>
+                </widget>
+                <widget name="id:satMarqueeItem" type="HbMarqueeItem">
+                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                    <sizehint type="FIXED" width="22.8806un"/>
+                    <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-tiny)"/>
+                </widget>
+                <real name="z" value="0"/>
+                <layout spacing="0px" type="grid">
+                    <contentsmargins bottom="var(hb-param-margin-gene-bottom)" left="var(hb-param-margin-gene-left)" right="var(hb-param-margin-gene-right)" top="var(hb-param-margin-gene-top)"/>
+                    <griditem column="0" itemname="id:spnIcon" row="0"/>
+                    <griditem column="1" itemname="id:spnLabel" row="0"/>
+                    <griditem column="0" itemname="id:mcnIcon" row="1"/>
+                    <griditem column="1" itemname="id:mcnMarqueeItem" row="1"/>
+                    <griditem column="0" itemname="id:satTextIcon" row="2"/>
+                    <griditem column="1" itemname="id:satMarqueeItem" row="2"/>
+                </layout>
+            </widget>
+        </widget>
+        <rect height="10un" name="geometry" width="34un" x="14.77612un" y="41.64179un"/>
+        <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+        <sizehint height="9un" type="PREFERRED" width="34un"/>
+        <sizehint height="9un" type="MINIMUM" width="34un"/>
+        <sizehint height="31un" type="MAXIMUM" width="34un"/>
+        <layout type="anchor">
+            <anchoritem dst="id:container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+            <anchoritem dst="id:container" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+            <anchoritem dst="id:container" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+            <anchoritem dst="id:container" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+        </layout>
+    </widget>
+    <widget name="sd:content" type="HbWidget">
+        <widget name="sd:title" type="HbLabel">
+            <contentsmargins bottom="0un" left="var(hb-param-margin-gene-left)" right="var(hb-param-margin-gene-right)" top="0un"/>
+            <string locid="txt_operator_widget_title_select_info" name="plainText" value="Select info"/>
+            <fontspec name="fontSpec" role="Title" textheight="var(hb-param-text-height-title)"/>
+        </widget>
+        <widget name="sd:settingsContainer" type="HbWidget">
+            <widget name="sd:spnCheckBox" type="HbCheckBox">
+                <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="PREFERRED"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="MINIMUM" width="32un"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-medium)" type="MAXIMUM" width="var(hb-param-widget-dialog-width)"/>
+                <string locid="txt_operatorwidget_list_spn" name="text"/>
+                <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-tiny)"/>
+            </widget>
+            <widget name="sd:mcnCheckBox" type="HbCheckBox">
+                <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="PREFERRED" width="32un"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="MINIMUM" width="32un"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-medium)" type="MAXIMUM" width="var(hb-param-widget-dialog-width)"/>
+                <string locid="txt_operatorwidget_list_cell_information" name="text"/>
+                <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-tiny)"/>
+            </widget>
+            <widget name="sd:satTextCheckBox" type="HbCheckBox">
+                <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="PREFERRED"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-small)" type="MINIMUM" width="32un"/>
+                <sizehint height="var(hb-param-touch-area-gene-primary-medium)" type="MAXIMUM" width="var(hb-param-widget-dialog-width)"/>
+                <string locid="txt_operatorwidget_list_sat_idle_mode_text" name="text"/>
+                <fontspec name="fontSpec" role="Secondary" textheight="var(hb-param-text-height-tiny)"/>
+            </widget>
+            <widget name="sd:separator1" type="HbLabel">
+                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <icon iconName="qtg_graf_divider_h_thin.svg" name="icon"/>
+                <real name="z" value="1"/>
+                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                <sizehint height="0.29851un" type="FIXED"/>
+                <sizehint height="0.29851un" type="MINIMUM"/>
+                <contentsmargins bottom="0un" left="0.29851un" right="0.29851un" top="0un"/>
+            </widget>
+            <widget name="sd:separator2" type="HbLabel">
+                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <icon iconName="qtg_graf_divider_h_thin.svg" name="icon"/>
+                <real name="z" value="1"/>
+                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+                <sizehint height="0.29851un" type="FIXED"/>
+                <sizehint height="0.29851un" type="MINIMUM"/>
+                <contentsmargins bottom="0un" left="0.29851un" right="0.29851un" top="0un"/>
+            </widget>
+            <sizehint type="PREFERRED" width="var(hb-param-widget-dialog-width)"/>
+            <sizehint type="MAXIMUM" width="var(hb-param-widget-dialog-width)"/>
+            <layout orientation="Vertical" spacing="var(hb-param-margin-gene-middle-vertical)" type="linear">
+                <contentsmargins bottom="0un" left="0un" right="0un" top="0un"/>
+                <linearitem itemname="sd:spnCheckBox" spacing="0.75un"/>
+                <linearitem itemname="sd:separator1" spacing="0.75un"/>
+                <linearitem itemname="sd:mcnCheckBox"/>
+                <linearitem itemname="sd:separator2"/>
+                <linearitem itemname="sd:satTextCheckBox" spacing="0un"/>
+            </layout>
+        </widget>
+        <widget name="sd:okButton" type="HbPushButton">
+            <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+            <sizehint height="var(hb-param-touch-area-gene-primary-large)" type="PREFERRED"/>
+            <contentsmargins bottom="0un" left="0un" right="0un" top="var(hb-param-margin-gene-middle-vertical)"/>
+            <sizehint height="var(hb-param-touch-area-gene-primary-large)" type="MAXIMUM"/>
+            <string locid="txt_common_button_ok" name="text" value="OK"/>
+            <string name="state" value="normal"/>
+        </widget>
+        <sizehint type="PREFERRED" width="var(hb-param-widget-dialog-width)"/>
+        <sizehint type="MINIMUM" width="var(hb-param-widget-dialog-width)"/>
+        <contentsmargins bottom="0un" left="0un" right="0un" top="var(hb-param-margin-gene-top)"/>
+        <sizehint height="35un" type="MAXIMUM" width="var(hb-param-widget-dialog-width)"/>
+        <layout orientation="Vertical" spacing="0un" type="linear">
+            <contentsmargins bottom="0un" left="0un" right="0un" top="0un"/>
+            <linearitem itemname="sd:title"/>
+            <linearitem itemname="sd:settingsContainer"/>
+            <linearitem itemname="sd:okButton" spacing="0un"/>
+        </layout>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_hbstyle.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,200 @@
+/* 
+* 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 "hbstyle.h"
+
+//needed for TSmcValue<HbStyleParameters &,100>Size()const
+class HbStyleParameters {};
+//needed for TSmcValue<HbWidget *,100>Size()const
+class HbWidget {};
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// HbStyle::HbStyle
+// -----------------------------------------------------------------------------
+//
+HbStyle::HbStyle( ):d_ptr(NULL)
+       // QObject * parent )
+    {
+   // Q_UNUSED(parent);
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::~HbStyle
+// -----------------------------------------------------------------------------
+//
+HbStyle::~HbStyle(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::createPrimitive
+// -----------------------------------------------------------------------------
+//
+QGraphicsItem * HbStyle::createPrimitive( 
+        HbStyle::Primitive primitive,
+        QGraphicsItem * parent ) const
+    {
+    SMC_MOCK_METHOD2( QGraphicsItem *, HbStyle::Primitive, primitive, 
+        QGraphicsItem *, parent )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::updatePrimitive
+// -----------------------------------------------------------------------------
+//
+void HbStyle::updatePrimitive( 
+        QGraphicsItem * item,
+        HbStyle::Primitive primitive,
+        const QStyleOption * option ) const
+    {
+    SMC_MOCK_METHOD3( void, QGraphicsItem *, item, 
+        HbStyle::Primitive, primitive, 
+        const QStyleOption *, option )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::registerPlugin
+// -----------------------------------------------------------------------------
+//
+int HbStyle::registerPlugin( 
+        const QString & pluginName )
+    {
+    SMC_MOCK_METHOD1( int, const QString &, pluginName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::unregisterPlugin
+// -----------------------------------------------------------------------------
+//
+void HbStyle::unregisterPlugin( 
+        const QString & pluginName )
+    {
+    SMC_MOCK_METHOD1( void, const QString &, pluginName )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::setItemName
+// -----------------------------------------------------------------------------
+//
+void HbStyle::setItemName( 
+        QGraphicsItem * item,
+        const QString & name )
+    {
+    SMC_MOCK_METHOD2( void, QGraphicsItem *, item, 
+        const QString &, name )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::itemName
+// -----------------------------------------------------------------------------
+//
+QString HbStyle::itemName( 
+        const QGraphicsItem * item )
+    {
+    SMC_MOCK_METHOD1( QString, const QGraphicsItem *, item )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::parameter
+// -----------------------------------------------------------------------------
+//
+bool HbStyle::parameter( 
+        const QString & parameter,
+        qreal & value,
+        const HbDeviceProfile & profile ) const
+    {
+    SMC_MOCK_METHOD3( bool, const QString &, parameter, 
+        qreal &, value, 
+        const HbDeviceProfile &, profile )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::parameters
+// -----------------------------------------------------------------------------
+//
+void HbStyle::parameters( 
+        HbStyleParameters & parameters,
+        const HbDeviceProfile & profile ) const
+    {
+    SMC_MOCK_METHOD2( void, HbStyleParameters &, parameters, 
+        const HbDeviceProfile &, profile )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::polish
+// -----------------------------------------------------------------------------
+//
+void HbStyle::polish( 
+        HbWidget * widget,
+        HbStyleParameters & params )
+    {
+    SMC_MOCK_METHOD2( void, HbWidget *, widget, 
+        HbStyleParameters &, params )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::updateThemedParams
+// -----------------------------------------------------------------------------
+//
+void HbStyle::updateThemedParams( 
+        HbWidget * widget )
+    {
+    SMC_MOCK_METHOD1( void, HbWidget *, widget )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::hasOrientationSpecificStyleRules
+// -----------------------------------------------------------------------------
+//
+bool HbStyle::hasOrientationSpecificStyleRules( 
+        HbWidget * widget )
+    {
+    SMC_MOCK_METHOD1( bool, HbWidget *, widget )
+    }
+
+
+// -----------------------------------------------------------------------------
+// HbStyle::HbStyle
+// -----------------------------------------------------------------------------
+//
+HbStyle::HbStyle( 
+        HbStylePrivate & dd,
+        QStyle * parent ):d_ptr(NULL)
+    //:
+    //QObject( /*dd, parent*/ )
+    {
+    Q_UNUSED(dd);
+    Q_UNUSED(parent);
+    }
+
+
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_infowidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_infowidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -280,17 +280,6 @@
 
 
 // -----------------------------------------------------------------------------
-// InfoWidget::homeZoneDisplaySettingChanged
-// -----------------------------------------------------------------------------
-//
-void InfoWidget::homeZoneDisplaySettingChanged( 
-        int state )
-    {
-    SMC_MOCK_METHOD1( void, int, state )
-    }
-
-
-// -----------------------------------------------------------------------------
 // InfoWidget::mcnDisplaySettingChanged
 // -----------------------------------------------------------------------------
 //
@@ -302,17 +291,6 @@
 
 
 // -----------------------------------------------------------------------------
-// InfoWidget::activeLineDisplaySettingChanged
-// -----------------------------------------------------------------------------
-//
-void InfoWidget::activeLineDisplaySettingChanged( 
-        int state )
-    {
-    SMC_MOCK_METHOD1( void, int, state )
-    }
-
-
-// -----------------------------------------------------------------------------
 // InfoWidget::satDisplaySettingChanged
 // -----------------------------------------------------------------------------
 //
@@ -343,8 +321,6 @@
     }
 
 
-
-
 // -----------------------------------------------------------------------------
 // InfoWidget::paint
 // -----------------------------------------------------------------------------
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_infowidgetlayoutmanager.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/mocks/mock_infowidgetlayoutmanager.cpp	Fri May 14 15:51:57 2010 +0300
@@ -44,6 +44,16 @@
 
 
 // -----------------------------------------------------------------------------
+// InfoWidgetLayoutManager::destroyObjects
+// -----------------------------------------------------------------------------
+//
+void InfoWidgetLayoutManager::destroyObjects(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
+// -----------------------------------------------------------------------------
 // InfoWidgetLayoutManager::currentDisplayRole
 // -----------------------------------------------------------------------------
 //
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetengine/src/ut_infowidgetengine.cpp	Fri May 14 15:51:57 2010 +0300
@@ -23,6 +23,8 @@
 #include "infowidgetnetworkhandler.h"
 #include "infowidgetsathandler.h"
 
+const QString KSpnName("Spn name");    // 
+
 const QString KHomeZoneTextTag("HomeZoneText0");    // max length 13
 const TNWViagIndicatorType 
     KHomeZoneIndicatorType = ENWViagIndicatorTypeHomeZone;
@@ -60,13 +62,22 @@
     SmcDefaultValue<const QString & >::SetL("");
     
     EXPECT(InfoWidgetNetworkHandler::logCurrentInfo);
-    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag)
-        .returns(KHomeZoneTextTag);
-    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType)
-        .returns(KHomeZoneIndicatorType);
+    EXPECT(InfoWidgetNetworkHandler::isOnline)
+        .returns(true);    
+    
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderName)
+        .returns(KSpnName);
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderNameDisplayRequired)
+        .returns(true);
+
     EXPECT(InfoWidgetNetworkHandler::mcnName).returns(KMcnName);
     EXPECT(InfoWidgetNetworkHandler::mcnIndicatorType)
         .returns(KMcnIndicatorType);
+
+    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType)
+        .returns(KHomeZoneIndicatorType);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag)
+        .returns(KHomeZoneTextTag);
     
     m_infoWidgetEngine = new InfoWidgetEngine();
     
@@ -90,6 +101,8 @@
 void UT_InfoWidgetEngine::t_modelData()
 {
     const InfoWidgetEngine::ModelData& data = m_infoWidgetEngine->modelData();
+    QVERIFY(data.serviceProviderName() == KSpnName);
+    QVERIFY(data.serviceProviderNameDisplayRequired() == true);
     QVERIFY(data.homeZoneTextTag() == KHomeZoneTextTag);
     QVERIFY(data.homeZoneIndicatorType() == KHomeZoneIndicatorType);
     QVERIFY(data.mcnName() == KMcnName);
@@ -101,24 +114,58 @@
  */
 void UT_InfoWidgetEngine::t_updateNetworkDataToModel()
 {
+    // Test: network status is online
     EXPECT(InfoWidgetNetworkHandler::logCurrentInfo);
-    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag)
-        .returns(KHomeZoneTextTag);
-    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType)
-        .returns(KHomeZoneIndicatorType);
+    EXPECT(InfoWidgetNetworkHandler::isOnline)
+        .returns(true);    
+    
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderName)
+        .returns(KSpnName);
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderNameDisplayRequired)
+        .returns(true);
+
     EXPECT(InfoWidgetNetworkHandler::mcnName).returns(KMcnName);
     EXPECT(InfoWidgetNetworkHandler::mcnIndicatorType)
         .returns(KMcnIndicatorType);
+
+    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType)
+        .returns(KHomeZoneIndicatorType);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag)
+        .returns(KHomeZoneTextTag);
+    
     QSignalSpy spy(m_infoWidgetEngine, SIGNAL(modelChanged()));
-    
     m_infoWidgetEngine->updateNetworkDataToModel();
     
     const int KExpectedNumOfSignalEmissions = 1;
     QCOMPARE(spy.count(), KExpectedNumOfSignalEmissions);
-    const QList<QVariant> &arguments = spy.at(0);
+    const QList<QVariant> &arguments = spy.takeFirst(); 
     QCOMPARE(arguments.count(), 0);
     
     QVERIFY(verify());
+    
+    // Test: network status is offline
+    EXPECT(InfoWidgetNetworkHandler::logCurrentInfo);
+    EXPECT(InfoWidgetNetworkHandler::isOnline)
+          .returns(false);    
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderName).times(0);
+    EXPECT(InfoWidgetNetworkHandler::serviceProviderNameDisplayRequired).times(0);
+    EXPECT(InfoWidgetNetworkHandler::mcnName).times(0);
+    EXPECT(InfoWidgetNetworkHandler::mcnIndicatorType).times(0);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneIndicatorType).times(0);
+    EXPECT(InfoWidgetNetworkHandler::homeZoneTextTag).times(0);
+      
+    m_infoWidgetEngine->updateNetworkDataToModel();
+    QCOMPARE(spy.count(), KExpectedNumOfSignalEmissions);
+    const QList<QVariant> &arguments2 = spy.takeFirst(); 
+    QCOMPARE(arguments2.count(), 0);
+    
+    QVERIFY(verify());
+    
+    const InfoWidgetEngine::ModelData& data = m_infoWidgetEngine->modelData();
+    QVERIFY(data.serviceProviderName() == QString(""));
+    QVERIFY(data.homeZoneTextTag() == QString(""));
+    QVERIFY(data.mcnName() == QString(""));
+    
 }
 
 /*!
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/inc/ut_infowidgetlayoutmanager.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/inc/ut_infowidgetlayoutmanager.h	Fri May 14 15:51:57 2010 +0300
@@ -46,7 +46,7 @@
     
     void t_layoutRows(); 
     void t_setLayoutRows();
-    //void t_rowHeight();
+    void t_rowHeight();
     
     void t_layoutInfoDisplay();
     void t_layoutSettingsDisplay();
@@ -66,6 +66,8 @@
     
     void t_removeWidget();
     
+    void t_destroyObjects();
+    
     // InfoWidgetDocumentLoader tests 
     void t_createObject();
     
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/src/ut_infowidgetlayoutmanager.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/src/ut_infowidgetlayoutmanager.cpp	Fri May 14 15:51:57 2010 +0300
@@ -15,20 +15,21 @@
 *
 */
 #include "ut_infowidgetlayoutmanager.h"
-
 #include <QGraphicsWidget>
-#include <hbmarqueeitem.h>
+#include <hbmarqueeitem>
+#include <hbstyle>
 #define private public
 #include "infowidgetlayoutmanager.h"
 #include "qtestmains60.h"
 
 
-const int KNumOfSettingsDisplayRoles = 12;
-const int KNumOfInfoDisplayRoles = 8;
+
+const int KNumOfSettingsDisplayRoles = 6;
+const int KNumOfInfoDisplayRoles = 7;
 const QString KInfoWidgetDocmlFile = ":/resource/infowidget.docml";
 const QString KMargueeItemClassName = HbMarqueeItem::staticMetaObject.className();
 
-
+//class HbStyle;
 /*!
   UT_InfoWidgetLayoutManager::UT_InfoWidgetLayoutManager
  */
@@ -186,8 +187,6 @@
             InfoWidgetLayoutManager::RoleMcnIcon));
         QVERIFY(0 <= roles.indexOf(
             InfoWidgetLayoutManager::RoleSatTextIcon));
-        QVERIFY(0 <= roles.indexOf(
-            InfoWidgetLayoutManager::RoleSettingsContainer));
     }
     
     activeLayout= m_layoutManager->layoutSettingsDisplay(); 
@@ -222,11 +221,19 @@
 
 /*!
   UT_InfoWidgetLayoutManager::t_setLayoutRows
- *//*
+ */
 void UT_InfoWidgetLayoutManager::t_rowHeight()
 {
-    QVERIFY(m_layoutManager->rowHeight()); 
-}*/
+    bool b = false;
+    EXPECT(HbStyle::parameter).returns(b);
+    m_layoutManager->rowHeight();
+    
+    b = true;
+    EXPECT(HbStyle::parameter).returns(b);
+    m_layoutManager->rowHeight();
+    
+    QVERIFY(verify()); 
+}
 
 /*!
   UT_InfoWidgetLayoutManager::t_layoutInfoDisplay
@@ -258,13 +265,7 @@
         QVERIFY(0 <= settingDisplayRoles.indexOf(
             InfoWidgetLayoutManager::RoleContent));
         QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleMcnLabel));
-        QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleSatTextLabel));
-        QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleMcnIcon));
-        QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleSatTextIcon));
+            InfoWidgetLayoutManager::RoleSpnCheckBox));
         QVERIFY(0 <= settingDisplayRoles.indexOf(
             InfoWidgetLayoutManager::RoleMcnCheckBox));
         QVERIFY(0 <= settingDisplayRoles.indexOf(
@@ -272,13 +273,6 @@
         QVERIFY(0 <= settingDisplayRoles.indexOf(
             InfoWidgetLayoutManager::RoleOkButton));
         QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleSpnLabel));
-        QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleSpnIcon));
-        QVERIFY(0 <= settingDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleSpnCheckBox));
-
-        QVERIFY(0 <= settingDisplayRoles.indexOf(
             InfoWidgetLayoutManager::RoleSettingsContainer));
     }
     
@@ -300,8 +294,6 @@
             InfoWidgetLayoutManager::RoleMcnIcon));
         QVERIFY(0 <= infoDisplayRoles.indexOf(
             InfoWidgetLayoutManager::RoleSatTextIcon));
-        QVERIFY(0 <= infoDisplayRoles.indexOf(
-            InfoWidgetLayoutManager::RoleSettingsContainer));
     }
 }
 
@@ -449,6 +441,22 @@
 }
 
 /*!
+  UT_InfoWidgetLayoutManager::t_destroyObjects
+ */
+void UT_InfoWidgetLayoutManager::t_destroyObjects()
+{
+    m_layoutManager->destroyObjects();
+    
+    QGraphicsWidget *widgetInfo = new QGraphicsWidget();
+    QGraphicsWidget *widgetSettings = new QGraphicsWidget(); 
+    m_layoutManager->m_infoDisplayWidgets.insert(InfoWidgetLayoutManager::RoleContent, widgetInfo);
+    m_layoutManager->m_settingsDisplayWidgets.insert(InfoWidgetLayoutManager::RoleContent, widgetSettings);
+    m_layoutManager->destroyObjects();
+    
+    QVERIFY(verify());
+}
+
+/*!
   UT_InfoWidgetLayoutManager::t_createObject
  */
 void UT_InfoWidgetLayoutManager::t_createObject()
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/ut_infowidgetlayoutmanager.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetlayoutmanager/ut_infowidgetlayoutmanager.pro	Fri May 14 15:51:57 2010 +0300
@@ -42,4 +42,6 @@
 # mocks needed for testing
 SOURCES += ../mocks/mock_hbdocumentloader.cpp
 SOURCES += ../mocks/mock_hbmarqueeitem.cpp
+SOURCES += ../mocks/mock_hbstyle.cpp
+#SOURCES += ../mocks/mock_hbwidget.cpp
 RESOURCES = ../../infowidgetprovider.qrc
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetnetworkhandler/inc/ut_infowidgetnetworkhandler.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetnetworkhandler/inc/ut_infowidgetnetworkhandler.h	Fri May 14 15:51:57 2010 +0300
@@ -47,6 +47,8 @@
     void t_homeZoneIndicatorType();
     void t_mcnName();
     void t_mcnIndicatorType();
+    void t_isOnline();
+    void t_networkRegistrationStatus();
     void t_HandleNetworkMessage();
     void t_HandleNetworkMessageExceptionWhileEmittingSignal();
     void t_HandleNetworkError();
--- a/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetnetworkhandler/src/ut_infowidgetnetworkhandler.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetnetworkhandler/src/ut_infowidgetnetworkhandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -20,6 +20,7 @@
 #include <xqsettingskey.h>
 #include <xqsettingsmanager.h>
 #include "ut_infowidgetnetworkhandler.h"
+#define private public
 #include "infowidgetnetworkhandler.h"
 
 #define EXPECT_EXCEPTION(statements)    \
@@ -151,6 +152,38 @@
 
 
 /*!
+  UT_InfoWidgetNetworkHandler::t_isOnline
+ */
+void UT_InfoWidgetNetworkHandler::t_isOnline()
+{
+    m_networkHandler->m_nwInfo.iRegistrationStatus = 
+            static_cast<TNWRegistrationStatus>(ENWRegisteredBusy);
+    QVERIFY(m_networkHandler->isOnline() == true);
+    m_networkHandler->m_nwInfo.iRegistrationStatus = 
+            static_cast<TNWRegistrationStatus>(ENWRegisteredOnHomeNetwork);
+    QVERIFY(m_networkHandler->isOnline() == true);
+    m_networkHandler->m_nwInfo.iRegistrationStatus = 
+            static_cast<TNWRegistrationStatus>(ENWRegisteredRoaming);
+    QVERIFY(m_networkHandler->isOnline() == true);
+    
+    m_networkHandler->m_nwInfo.iRegistrationStatus = 
+            static_cast<TNWRegistrationStatus>(ENWRegistrationUnknown);
+    QVERIFY(m_networkHandler->isOnline() == false);
+}
+
+
+/*!
+  UT_InfoWidgetNetworkHandler::t_networkRegistrationStatus
+ */
+void UT_InfoWidgetNetworkHandler::t_networkRegistrationStatus()
+{
+    m_networkHandler->m_nwInfo.iRegistrationStatus = 
+                static_cast<TNWRegistrationStatus>(ENWRegistrationUnknown);
+    QVERIFY(m_networkHandler->networkRegistrationStatus() == 0);
+}
+
+
+/*!
   UT_InfoWidgetNetworkHandler::t_HandleNetworkMessage
  */
 void UT_InfoWidgetNetworkHandler::t_HandleNetworkMessage()
@@ -211,7 +244,7 @@
     m_networkHandler->HandleNetworkMessage(
         MNWMessageObserver::ENWMessageStopProtocolStackRequestCompleteFail);
     
-    const int KExpectedNumOfSignalEmissions = 2;
+    const int KExpectedNumOfSignalEmissions = 3;
     QCOMPARE(spy.count(), KExpectedNumOfSignalEmissions);
     
     const QList<QVariant> &arguments = spy.at(0);
@@ -335,7 +368,13 @@
  */
 void UT_InfoWidgetNetworkHandler::t_serviceProviderNameDisplayRequired()
 {
-    QCOMPARE(m_networkHandler->serviceProviderNameDisplayRequired(),true);    
+    m_networkHandler->m_nwInfo.iServiceProviderNameDisplayReq = 
+                RMobilePhone::KDisplaySPNRequired; 
+    QVERIFY(m_networkHandler->serviceProviderNameDisplayRequired() == true);
+
+    m_networkHandler->m_nwInfo.iServiceProviderNameDisplayReq = 
+            RMobilePhone::KDisplaySPNNotRequired; 
+    QVERIFY(m_networkHandler->serviceProviderNameDisplayRequired() == false);
 }
 
 /*!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/infowidgetplugin/infowidgetprovider/tsrc/ut_infowidgetsathandlerprivate/inc/ut_infowidgetsathandlerprivate.h	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,58 @@
+/*
+* 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_INFOWIDGETSATHANDLERPRIVATE_H
+#define UT_INFOWIDGETSATHANDLERPRIVATE_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+#include <rsatservice.h>
+
+
+class InfoWidgetSatHandlerPrivate;
+class InfoWidgetSatHandler;
+
+class UT_InfoWidgetSatHandlerPrivate : public QObject, public MockService
+{
+    Q_OBJECT
+
+public:    
+    
+    UT_InfoWidgetSatHandlerPrivate();
+    ~UT_InfoWidgetSatHandlerPrivate();
+    
+private slots:
+
+    void init();
+    void cleanup();
+    
+    void t_connect();
+    void t_disconnect();
+    void t_startObserving();
+
+    void t_runL();
+    void t_doCancel();
+    
+private:
+    
+    InfoWidgetSatHandlerPrivate *m_satHandler;
+    InfoWidgetSatHandler* m_iwSatHandler;
+    RSatService m_satService;
+
+};
+
+#endif // UT_INFOWIDGETSATHANDLERPRIVATE_H
--- a/phoneplugins/phoneindicatorplugin/inc/phoneindicators.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/phoneindicatorplugin/inc/phoneindicators.h	Fri May 14 15:51:57 2010 +0300
@@ -29,12 +29,14 @@
 {
     InteractionNone,
     OpenMissedCallView,
+    SwitchBackToCall,
     Deactivate
 };
 
 enum PhoneIndicatorTypes
 {
-    PhoneMissedCallIndicator = 0
+    PhoneMissedCallIndicator = 0,
+    PhoneActiveCallIndicator
 };
 
 inline QString indicatorName(int indicatorType) {
@@ -46,15 +48,15 @@
     const char *icon;
     const char *primaryText;
     const char *secondaryText;
-    HbIndicatorInterface::GroupPriority priority;
     Interaction interaction;
 };
 
 Q_DECLARE_METATYPE(PhoneIndicatorInfo)
 
-static const int PhoneIndicatorCount = 1;
+static const int PhoneIndicatorCount = 2;
 static const PhoneIndicatorInfo IndicatorInfos[PhoneIndicatorCount] = {
-    {"qtg_mono_info.svg",   "Missed call", "Name/Number", HbIndicatorInterface::GroupPriorityHigh, OpenMissedCallView } // TODO: change icon
+    {"qtg_mono_info.svg",   "Missed call", "Name/Number", OpenMissedCallView },
+    {"qtg_mono_info.svg",   "Active call", " ", SwitchBackToCall }
 };
 
 #endif // PHONEINDICATORS_H
--- a/phoneplugins/phoneindicatorplugin/src/phoneindicatorinterface.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneplugins/phoneindicatorplugin/src/phoneindicatorinterface.cpp	Fri May 14 15:51:57 2010 +0300
@@ -17,18 +17,22 @@
 
 #include "Phoneindicatorinterface.h"
 #include "phoneindicators.h"
+
 #include <QTime>
 #include <QStringList> 
 #ifdef Q_OS_SYMBIAN
 #include <logsservices.h>
 #include <xqservicerequest.h>
+#include <eikenv.h>
+#include <apgtask.h>
+
 #endif
 
 PhoneIndicatorInterface::PhoneIndicatorInterface(
                 const QString &indicatorType,
                 int typeIndex,
                 Interaction interaction) :
-        HbIndicatorInterface( indicatorType, IndicatorInfos[typeIndex].priority,
+        HbIndicatorInterface( indicatorType, HbIndicatorInterface::NotificationCategory,
         (interaction == InteractionNone) ? NoInteraction : InteractionActivated),
         m_typeIndex(typeIndex),
         m_interaction(interaction),
@@ -62,6 +66,16 @@
 #endif
             }
             break;
+        case SwitchBackToCall: {
+#ifdef Q_OS_SYMBIAN
+            RWsSession& wsSession = CEikonEnv::Static()->WsSession();
+            TApaTaskList taskList( wsSession );
+            const TUid KUidPhoneApp = { 0x100058B3 };   // Phone application
+            TApaTask task = taskList.FindApp(KUidPhoneApp);
+            task.BringToForeground();
+#endif
+            }
+            break;
         case Deactivate:
             emit deactivate();
             break;
@@ -81,7 +95,7 @@
         return map.value( (QVariant(PrimaryTextRole)).toString()).toString();
     } else if (role == SecondaryTextRole ) {
         return map.value( (QVariant(SecondaryTextRole)).toString()).toString();
-    } else if (role == IconNameRole) {
+    } else if (role == MonoDecorationNameRole) {
         return m_icon;
     } else if (role == DecorationNameRole) {
         return map.value( (QVariant(DecorationNameRole)).toString()).toString();
@@ -93,7 +107,7 @@
 {
     bool handled(false);
     switch (type) {
-        // TODO:
+        
     case RequestActivate:
         if (m_parameter != parameter) {
             m_parameter = parameter;
--- a/phonesettings/cpphonesettingsplugins/barringplugin/inc/cpbarringplugingroup.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/barringplugin/inc/cpbarringplugingroup.h	Fri May 14 15:51:57 2010 +0300
@@ -25,8 +25,9 @@
 class QModelIndex;
 class CpPhoneNotes;
 class QValidator;
-class QTranslator;
+class HbDataFormModel;
 
+    
 /*!
     \class CpBarringPluginGroup
     \brief The class CpBarringPluginGroup defines barring items shown on UI. 
@@ -36,6 +37,15 @@
     Q_OBJECT
     
 public:
+    
+    // Change barring password operation phases
+    enum ChangeBarringPasswordPhase
+    {
+        NonePhase,
+        CurrentPasswordPhase,
+        NewPasswordPhase,
+        VerifyNewPasswordPhase
+    };
 
     explicit CpBarringPluginGroup(CpItemDataHelper &helper);
     ~CpBarringPluginGroup();
@@ -46,7 +56,6 @@
     
 private:
     
-    void setupLocalization();
     void setupConnectionsToWrapper();
     
     void createBarringItems();
@@ -92,10 +101,17 @@
     
     void changeBarringPasswordRequested(bool checked = false);
     
+    void completeBarringStateChangeRequestHandling(
+            QString barringPassword,
+            bool okPressed);
+    
+    void changeBarringPasswordPhasesHandling(
+            QString barringPassword,
+            bool okPressed);
+    
 private: 
     
     CpItemDataHelper &m_helper;
-    QScopedPointer<QTranslator> m_translator;
     QScopedPointer<PSetWrapper> m_pSetWrapper;
     PSetCallBarringWrapper *m_barringWrapper;
     CpSettingFormItemData *m_editBarringPasswordItem;
@@ -105,6 +121,13 @@
     CpPhoneNotes* m_phoneNotes;
     QValidator *m_barringPasswordValidator;
     bool m_delayedBarringActivationNote;
+    CpSettingFormItemData* m_clickedBarringItem; // Not own.
+    ChangeBarringPasswordPhase m_changeBarringPasswordPhase;
+    QString m_currentPassword;
+    QString m_newPassword;
+    QString m_newPasswordVerified;
+    QValidator* m_verifyPasswordValidator; // Own.
+    HbDataFormModel* m_model;
 };
 
 #endif // CPBARRINGPLUGINGROUP_H
--- a/phonesettings/cpphonesettingsplugins/barringplugin/src/cpbarringplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/barringplugin/src/cpbarringplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -18,9 +18,6 @@
 #include <hbdataformmodel.h>
 #include <hbdataformmodelitem.h>
 #include <HbCheckBox>
-#include <QTranslator>
-#include <QLocale>
-#include <QApplication>
 #include <QTimer>
 #include <QValidator>
 #include <cpitemdatahelper.h>
@@ -44,7 +41,6 @@
         HbDataFormModelItem::GroupItem, 
         hbTrId("txt_phone_subhead_call_barring"), 0),
     m_helper(helper),
-    m_translator(0),
     m_pSetWrapper(0),
     m_barringWrapper(0),
     m_editBarringPasswordItem(0),
@@ -52,7 +48,11 @@
     m_activeNoteId(0),
     m_phoneNotes(0),
     m_barringPasswordValidator(0),
-    m_delayedBarringActivationNote(false)
+    m_delayedBarringActivationNote(false),
+    m_clickedBarringItem(NULL),
+    m_changeBarringPasswordPhase(NonePhase),
+    m_verifyPasswordValidator(NULL),
+    m_model(0)
 {
     DPRINT << ": IN";
     
@@ -61,8 +61,6 @@
     qRegisterMetaType<PSetCallBarringWrapper::BarringType>(
         "PSetCallBarringWrapper::BarringType");
     
-    setupLocalization();
-    
     m_pSetWrapper.reset(new PSetWrapper(NULL));
     m_barringWrapper = &m_pSetWrapper->callBarringWrapper(); 
     setupConnectionsToWrapper();
@@ -90,6 +88,10 @@
 {
     DPRINT << ": IN";
     
+    if (m_verifyPasswordValidator) {
+        delete m_verifyPasswordValidator;                    
+    }
+    
     DPRINT << ": OUT";
 }
 
@@ -103,13 +105,15 @@
     
     CpSettingFormItemData* formItem = 
         static_cast<CpSettingFormItemData*>(
-            qobject_cast<HbDataFormModel*>(model())->itemFromIndex(item));
+            qobject_cast<const HbDataFormModel*>(item.model())->itemFromIndex(item));
     
     if (!formItem->property("barringType").isValid()) {
         // Shown item does not belong to the barring settings group.
         return;
         }
     
+    m_model = const_cast<HbDataFormModel*>(qobject_cast<const HbDataFormModel*>(item.model()));
+        
     if (formItem == m_editBarringPasswordItem) {
         return;
     }
@@ -129,31 +133,6 @@
 
 
 /*!
-  CpBarringPluginGroup::setupLocalization.
- */
-void CpBarringPluginGroup::setupLocalization()
-{
-    DPRINT << ": IN";
-    
-    m_translator.reset(new QTranslator);
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    QString fullName = path + "telephone_cp_" + lang;
-    
-    DPRINT << ": loading translation:" << fullName;
-    bool translatorLoaded = m_translator->load(fullName);
-    DPRINT << ": translator loaded: " << translatorLoaded; 
-    
-    if (translatorLoaded) {
-        qApp->installTranslator(m_translator.data());
-        DPRINT << ": translator installed"; 
-    }
-    
-    DPRINT << ": OUT";
-}
-
-
-/*!
   CpBarringPluginGroup::setupConnectionsToWrapper.
  */
 void CpBarringPluginGroup::setupConnectionsToWrapper()
@@ -498,56 +477,73 @@
 void CpBarringPluginGroup::changeBarringStateRequested(int checkState)
 {
     DPRINT << ": IN";
-    
+    Q_UNUSED(checkState)
     // find form item for which user has requested barring status change
     QObject *signalSender = sender();
-    HbDataFormModel *formModel = qobject_cast<HbDataFormModel*>(model());
-    CpSettingFormItemData* barringItem = NULL;
+        
     int numOfChilds = childCount();
-    for (int i = 0; (i < numOfChilds) && (barringItem == NULL); i++) {
+    for (int i = 0; (i < numOfChilds) && (m_clickedBarringItem == NULL); i++) {
         HbDataFormModelItem* itemCandidate = childAt(i);
-        QModelIndex modelIndex = formModel->indexFromItem(itemCandidate);
+        QModelIndex modelIndex = m_model->indexFromItem(itemCandidate);
         if (signalSender == m_helper.widgetFromModelIndex(modelIndex)) {
-            barringItem = static_cast<CpSettingFormItemData*>(itemCandidate);
+            m_clickedBarringItem = static_cast<CpSettingFormItemData*>(itemCandidate);
         }
     }
     
-    if (NULL != barringItem) {
+    if (NULL != m_clickedBarringItem) {
         QString barringPasswordQueryDialogTitle(
             hbTrId("txt_phone_info_barring_password"));
-        QString barringPassword;
-        bool okPressed = false;
+        
+        QObject::connect(
+            m_phoneNotes, SIGNAL(passwordQueryCompleted(QString, bool)),
+            this, SLOT(completeBarringStateChangeRequestHandling(QString, bool)));
         m_phoneNotes->showPasswordQueryDialog(
             barringPasswordQueryDialogTitle, *m_barringPasswordValidator,
-            KMaxPasswordLength, barringPassword, okPressed);
-        if (!okPressed) {
-            revertCheckStateOfItem(barringItem);
-            return;
-        }
-        
-        if (Qt::Checked == checkState) {
+            KMaxPasswordLength);
+    }
+    
+    DPRINT << ": OUT";
+}
+
+/*!
+  CpBarringPluginGroup::completeBarringStateChangeRequestHandling.
+ */
+void CpBarringPluginGroup::completeBarringStateChangeRequestHandling(
+        QString barringPassword,
+        bool okPressed)
+{
+    DPRINT << ": IN";
+    
+	QObject::disconnect(
+        m_phoneNotes, SIGNAL(passwordQueryCompleted(QString, bool)),
+        this, SLOT(completeBarringStateChangeRequestHandling(QString, bool)));
+    if (okPressed) {
+        QVariant checkState = m_clickedBarringItem->contentWidgetData("checkState");
+        if (Qt::Checked == checkState.toInt()) {
             m_barringWrapper->enableBarring(
                 ServiceGroupVoice,
                 qvariant_cast<PSetCallBarringWrapper::BarringType>(
-                    barringItem->property("barringType")), 
+                    m_clickedBarringItem->property("barringType")), 
                 barringPassword);
         } else {
             m_barringWrapper->disableBarring(
                 ServiceGroupVoice,
                 qvariant_cast<PSetCallBarringWrapper::BarringType>(
-                    barringItem->property("barringType")), 
+                    m_clickedBarringItem->property("barringType")), 
                 barringPassword);
         }
         
-        m_barringRequestQueue.enqueue(barringItem);
+        m_barringRequestQueue.enqueue(m_clickedBarringItem);
         m_phoneNotes->showGlobalProgressNote(
             m_activeNoteId, hbTrId("txt_phone_info_requesting"));
+    } else {
+        revertCheckStateOfItem(m_clickedBarringItem);
     }
-    
+    m_clickedBarringItem = NULL;
+        
     DPRINT << ": OUT";
 }
 
-
 /*!
   CpBarringPluginGroup::changeBarringPasswordRequested.
  */
@@ -556,48 +552,86 @@
     DPRINT << ": IN";
     Q_UNUSED(checked)
     
-    bool okPressed = false;
-    
-    QString currentPassword;
+    m_changeBarringPasswordPhase = CurrentPasswordPhase;
     QString currentPasswordQueryDialogTitle(
         hbTrId("txt_phone_info_current_password"));
+    QObject::connect(
+        m_phoneNotes, SIGNAL(passwordQueryCompleted(QString, bool)),
+        this, SLOT(changeBarringPasswordPhasesHandling(QString, bool)));
     m_phoneNotes->showPasswordQueryDialog(
-        currentPasswordQueryDialogTitle, *m_barringPasswordValidator, 
-        KMaxPasswordLength, currentPassword, okPressed);
-    if (!okPressed) {
-        return;
-    }
-    
-    QString newPassword;
-    QString newPasswordQueryDialogTitle(
-        hbTrId("txt_phone_info_new_password"));
-    m_phoneNotes->showPasswordQueryDialog(
-        newPasswordQueryDialogTitle, *m_barringPasswordValidator,
-        KMaxPasswordLength, newPassword, okPressed);
-    if (!okPressed) {
-        return;
-    }
+        currentPasswordQueryDialogTitle, 
+        *m_barringPasswordValidator, 
+        KMaxPasswordLength);
     
-    QString newPasswordVerifyDialogTitle(
-        hbTrId("txt_phone_info_verify_new_password"));
-    QString newPasswordVerified;
-    QRegExp regExpression(newPassword);
-    QScopedPointer<QValidator> verifyPasswordValidator(
-        new QRegExpValidator(regExpression, NULL));
-    m_phoneNotes->showPasswordQueryDialog(
-        newPasswordVerifyDialogTitle, *verifyPasswordValidator.data(),
-        KMaxPasswordLength, newPasswordVerified, okPressed);
-    
+    DPRINT << ": OUT";
+}
+
+/*!
+  CpBarringPluginGroup::changeBarringPasswordPhasesHandling.
+ */
+void CpBarringPluginGroup::changeBarringPasswordPhasesHandling(
+        QString barringPassword,
+        bool okPressed)
+{
+    DPRINT << ": IN";
+        
     if (okPressed) {
-        m_barringWrapper->changeBarringPassword(
-            currentPassword,
-            newPassword,
-            newPasswordVerified);
+        switch (m_changeBarringPasswordPhase) {
+            case CurrentPasswordPhase: {
+                m_changeBarringPasswordPhase = NewPasswordPhase;
+                m_currentPassword = barringPassword;
+                QString newPasswordQueryDialogTitle(
+                    hbTrId("txt_phone_info_new_password"));
+                m_phoneNotes->showPasswordQueryDialog(
+                    newPasswordQueryDialogTitle, 
+                    *m_barringPasswordValidator,
+                    KMaxPasswordLength);
+                }
+                break; 
+            case NewPasswordPhase: {
+                m_changeBarringPasswordPhase = VerifyNewPasswordPhase;
+                m_newPassword = barringPassword;
+                QString newPasswordVerifyDialogTitle(
+                    hbTrId("txt_phone_info_verify_new_password"));
+                QRegExp regExpression(m_newPassword);
+                if(m_verifyPasswordValidator) {
+                    delete m_verifyPasswordValidator;
+                    m_verifyPasswordValidator = NULL;
+                }
+                m_verifyPasswordValidator = new QRegExpValidator(regExpression, NULL);
+                m_phoneNotes->showPasswordQueryDialog(
+                    newPasswordVerifyDialogTitle, 
+                    *m_verifyPasswordValidator,
+                    KMaxPasswordLength);
+                }
+                break; 
+            case VerifyNewPasswordPhase: {
+                m_changeBarringPasswordPhase = NonePhase;
+                m_newPasswordVerified = barringPassword;
+                m_barringWrapper->changeBarringPassword(
+                    m_currentPassword,
+                    m_newPassword,
+                    m_newPasswordVerified);
+                m_phoneNotes->showGlobalProgressNote(
+                    m_activeNoteId, 
+                    hbTrId("txt_phone_info_requesting"));
+                QObject::disconnect(
+                    m_phoneNotes, SIGNAL(passwordQueryCompleted(QString, bool)),
+                    this, SLOT(changeBarringPasswordPhasesHandling(QString, bool)));
+                }
+                break;
+            default: 
+                DPRINT << "Error: unknown enum value";
+                break; 
+        }
+    }
+    else {
+        QObject::disconnect(
+            m_phoneNotes, SIGNAL(passwordQueryCompleted(QString, bool)),
+            this, SLOT(changeBarringPasswordPhasesHandling(QString, bool)));
+        m_changeBarringPasswordPhase = NonePhase;
+    }
         
-        m_phoneNotes->showGlobalProgressNote(
-            m_activeNoteId, hbTrId("txt_phone_info_requesting"));
-    }
-    
     DPRINT << ": OUT";
 }
 
@@ -709,7 +743,6 @@
 {
     DPRINT << ": IN";
     
-    HbDataFormModel *formModel = qobject_cast<HbDataFormModel*>(model());
     CpSettingFormItemData *item = NULL;
     int numOfChilds = childCount();
     for (int childInd = 0; (childInd < numOfChilds) && (!item); childInd++) {
--- a/phonesettings/cpphonesettingsplugins/barringplugin/tsrc/ut_barringplugingroup/ut_barringplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/barringplugin/tsrc/ut_barringplugingroup/ut_barringplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -117,7 +117,6 @@
     CPsetContainer &dummyContainer = reinterpret_cast<CPsetContainer &>(*this);
     m_barringWrapperMock = new PSetCallBarringWrapper(dummyContainer);
     EXPECT(PSetWrapper::callBarringWrapper).returns(m_barringWrapperMock);
-    EXPECT(QTranslator::load).returns(true);
     
     CpItemDataHelper itemDataHelper;
     m_barringpluginGroup = new CpBarringPluginGroup(itemDataHelper);
@@ -163,54 +162,6 @@
 
 
 /*!
-  UT_CpBarringPluginGroup::t_translatorInstallationOk
- */
-void UT_CpBarringPluginGroup::t_translatorInstallationOk()
-{
-    CPsetContainer &dummyContainer = reinterpret_cast<CPsetContainer &>(*this);
-    CpItemDataHelper itemDataHelper;
-    
-    EXPECT(PSetWrapper::callBarringWrapper).returns(m_barringWrapperMock);
-    EXPECT(QTranslator::load).returns(true);
-    
-    CpBarringPluginGroup *barringpluginGroup = 
-        new CpBarringPluginGroup(itemDataHelper);
-    
-    QString expectedTranslation("translation");
-    EXPECT(QTranslator::translate).returns(expectedTranslation);
-    QString actualTranslation = hbTrId("txt_sourcetext");
-    QCOMPARE(actualTranslation, expectedTranslation);
-    
-    delete barringpluginGroup;
-    
-    QVERIFY(verify());
-}
-
-
-/*!
-  UT_CpBarringPluginGroup::t_translatorInstallationFails
- */
-void UT_CpBarringPluginGroup::t_translatorInstallationFails()
-{
-    CPsetContainer &dummyContainer = reinterpret_cast<CPsetContainer &>(*this);
-    CpItemDataHelper itemDataHelper;
-    
-    EXPECT(PSetWrapper::callBarringWrapper).returns(m_barringWrapperMock);
-    EXPECT(QTranslator::load).returns(false);
-    
-    CpBarringPluginGroup *barringpluginGroup = 
-        new CpBarringPluginGroup(itemDataHelper);
-    
-    QString translation = hbTrId("txt_sourcetext");
-    QCOMPARE(translation, QString("txt_sourcetext"));
-    
-    delete barringpluginGroup;
-    
-    QVERIFY(verify());
-}
-
-
-/*!
   UT_CpBarringPluginGroup::t_itemShownNotBarringItem
   Tests that itemShown() for other setting group's item is not handled.
  */
--- a/phonesettings/cpphonesettingsplugins/barringplugin/tsrc/ut_barringplugingroup/ut_barringplugingroup.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/barringplugin/tsrc/ut_barringplugingroup/ut_barringplugingroup.h	Fri May 14 15:51:57 2010 +0300
@@ -40,8 +40,6 @@
     void cleanup();
     
     void t_memleak();
-    void t_translatorInstallationOk();
-    void t_translatorInstallationFails();
     void t_itemShownNotBarringItem();
     void t_itemShownBarringStatusRequestOngoing();
     void t_barringStatusRequestCompletedForUpdateInquiry();
--- a/phonesettings/cpphonesettingsplugins/bwins/cptelephonyutilsu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/bwins/cptelephonyutilsu.def	Fri May 14 15:51:57 2010 +0300
@@ -19,7 +19,7 @@
 	?metaObject@Tools@@UBEPBUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const * Tools::metaObject(void) const
 	?readSoftRejectText@CpSettingsWrapper@@QAEXAAVQString@@AA_N@Z @ 19 NONAME ; void CpSettingsWrapper::readSoftRejectText(class QString &, bool &)
 	?getStaticMetaObject@CpSettingsWrapper@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & CpSettingsWrapper::getStaticMetaObject(void)
-	?showPasswordQueryDialog@CpPhoneNotes@@QAEXABVQString@@ABVQValidator@@HAAV2@AA_N@Z @ 21 NONAME ; void CpPhoneNotes::showPasswordQueryDialog(class QString const &, class QValidator const &, int, class QString &, bool &)
+	?finishedPasswordQueryDialog@CpPhoneNotes@@QAEXPAVHbAction@@@Z @ 21 NONAME ; void CpPhoneNotes::finishedPasswordQueryDialog(class HbAction *)
 	?metaObject@CpSettingsWrapper@@UBEPBUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const * CpSettingsWrapper::metaObject(void) const
 	?videoSupported@Tools@@SA_NXZ @ 23 NONAME ; bool Tools::videoSupported(void)
 	?showCallDuration@CpSettingsWrapper@@QAE_NXZ @ 24 NONAME ; bool CpSettingsWrapper::showCallDuration(void)
@@ -51,14 +51,30 @@
 	?qt_metacall@CpSettingsWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 50 NONAME ; int CpSettingsWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?noteShowing@CpPhoneNotes@@QAE_NXZ @ 51 NONAME ; bool CpPhoneNotes::noteShowing(void)
 	?showCallDivertDetails@CpPhoneNotes@@QAEXABVPSCallDivertingStatus@@@Z @ 52 NONAME ; void CpPhoneNotes::showCallDivertDetails(class PSCallDivertingStatus const &)
-	?numberGroupingSupported@CpSettingsWrapper@@QBE_NXZ @ 53 NONAME ; bool CpSettingsWrapper::numberGroupingSupported(void) const
-	?launchNextNoteIfReady@CpPhoneNotes@@AAEXXZ @ 54 NONAME ; void CpPhoneNotes::launchNextNoteIfReady(void)
-	?tr@CpSettingsWrapper@@SA?AVQString@@PBD0@Z @ 55 NONAME ; class QString CpSettingsWrapper::tr(char const *, char const *)
-	?cancelNote@CpPhoneNotes@@QAEXH@Z @ 56 NONAME ; void CpPhoneNotes::cancelNote(int)
-	?isFeatureCallWaitingDistiquishNotProvisionedEnabled@CpSettingsWrapper@@QAE_NXZ @ 57 NONAME ; bool CpSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled(void)
-	?writeCenrepValue@CpSettingsWrapper@@ABEHJKABVQVariant@@@Z @ 58 NONAME ; int CpSettingsWrapper::writeCenrepValue(long, unsigned long, class QVariant const &) const
-	?staticMetaObject@Tools@@2UQMetaObject@@B @ 59 NONAME ; struct QMetaObject const Tools::staticMetaObject
-	?trUtf8@Tools@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString Tools::trUtf8(char const *, char const *)
-	?staticMetaObject@CpSettingsWrapper@@2UQMetaObject@@B @ 61 NONAME ; struct QMetaObject const CpSettingsWrapper::staticMetaObject
-	??0CpSettingsWrapper@@QAE@PAVQObject@@@Z @ 62 NONAME ; CpSettingsWrapper::CpSettingsWrapper(class QObject *)
+	?passwordQueryCompleted@CpPhoneNotes@@IAEXVQString@@_N@Z @ 53 NONAME ; void CpPhoneNotes::passwordQueryCompleted(class QString, bool)
+	?numberGroupingSupported@CpSettingsWrapper@@QBE_NXZ @ 54 NONAME ; bool CpSettingsWrapper::numberGroupingSupported(void) const
+	?launchNextNoteIfReady@CpPhoneNotes@@AAEXXZ @ 55 NONAME ; void CpPhoneNotes::launchNextNoteIfReady(void)
+	?tr@CpSettingsWrapper@@SA?AVQString@@PBD0@Z @ 56 NONAME ; class QString CpSettingsWrapper::tr(char const *, char const *)
+	?cancelNote@CpPhoneNotes@@QAEXH@Z @ 57 NONAME ; void CpPhoneNotes::cancelNote(int)
+	?isFeatureCallWaitingDistiquishNotProvisionedEnabled@CpSettingsWrapper@@QAE_NXZ @ 58 NONAME ; bool CpSettingsWrapper::isFeatureCallWaitingDistiquishNotProvisionedEnabled(void)
+	?showPasswordQueryDialog@CpPhoneNotes@@QAEXABVQString@@ABVQValidator@@H@Z @ 59 NONAME ; void CpPhoneNotes::showPasswordQueryDialog(class QString const &, class QValidator const &, int)
+	?writeCenrepValue@CpSettingsWrapper@@ABEHJKABVQVariant@@@Z @ 60 NONAME ; int CpSettingsWrapper::writeCenrepValue(long, unsigned long, class QVariant const &) const
+	?staticMetaObject@Tools@@2UQMetaObject@@B @ 61 NONAME ; struct QMetaObject const Tools::staticMetaObject
+	?trUtf8@Tools@@SA?AVQString@@PBD0@Z @ 62 NONAME ; class QString Tools::trUtf8(char const *, char const *)
+	?staticMetaObject@CpSettingsWrapper@@2UQMetaObject@@B @ 63 NONAME ; struct QMetaObject const CpSettingsWrapper::staticMetaObject
+	??0CpSettingsWrapper@@QAE@PAVQObject@@@Z @ 64 NONAME ; CpSettingsWrapper::CpSettingsWrapper(class QObject *)
+	?qt_metacast@CpPhoneLocalisation@@UAEPAXPBD@Z @ 65 NONAME ; void * CpPhoneLocalisation::qt_metacast(char const *)
+	?installTranslator@CpPhoneLocalisation@@QAE_NW4TranslationFileId@1@@Z @ 66 NONAME ; bool CpPhoneLocalisation::installTranslator(enum CpPhoneLocalisation::TranslationFileId)
+	?trUtf8@CpPhoneLocalisation@@SA?AVQString@@PBD0H@Z @ 67 NONAME ; class QString CpPhoneLocalisation::trUtf8(char const *, char const *, int)
+	?tr@CpPhoneLocalisation@@SA?AVQString@@PBD0H@Z @ 68 NONAME ; class QString CpPhoneLocalisation::tr(char const *, char const *, int)
+	?qt_metacall@CpPhoneLocalisation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 69 NONAME ; int CpPhoneLocalisation::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@CpPhoneLocalisation@@SA?AVQString@@PBD0@Z @ 70 NONAME ; class QString CpPhoneLocalisation::trUtf8(char const *, char const *)
+	?staticMetaObject@CpPhoneLocalisation@@2UQMetaObject@@B @ 71 NONAME ; struct QMetaObject const CpPhoneLocalisation::staticMetaObject
+	??0CpPhoneLocalisation@@QAE@PAVQObject@@@Z @ 72 NONAME ; CpPhoneLocalisation::CpPhoneLocalisation(class QObject *)
+	??_ECpPhoneLocalisation@@UAE@I@Z @ 73 NONAME ; CpPhoneLocalisation::~CpPhoneLocalisation(unsigned int)
+	?metaObject@CpPhoneLocalisation@@UBEPBUQMetaObject@@XZ @ 74 NONAME ; struct QMetaObject const * CpPhoneLocalisation::metaObject(void) const
+	?tr@CpPhoneLocalisation@@SA?AVQString@@PBD0@Z @ 75 NONAME ; class QString CpPhoneLocalisation::tr(char const *, char const *)
+	??1CpPhoneLocalisation@@UAE@XZ @ 76 NONAME ; CpPhoneLocalisation::~CpPhoneLocalisation(void)
+	?getStaticMetaObject@CpPhoneLocalisation@@SAABUQMetaObject@@XZ @ 77 NONAME ; struct QMetaObject const & CpPhoneLocalisation::getStaticMetaObject(void)
+	?removeTranslators@CpPhoneLocalisation@@QAEXXZ @ 78 NONAME ; void CpPhoneLocalisation::removeTranslators(void)
 
--- a/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -24,9 +24,6 @@
 #include <hbdataformviewitem.h>
 #include <hbcheckbox.h>
 #include <QString>
-#include <QApplication>
-#include <QLocale>
-#include <QTranslator>
 #include <hblineedit.h>
 #include <hbcombobox.h>
 #include <hbdeviceprogressdialog.h>
@@ -46,18 +43,6 @@
 {
     DPRINT << ": IN";
 
-    // Localization file loading
-    QTranslator translator; 
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    DPRINT << ": loading translation: " << QString(path + "telephone_cp_" + lang);
-    bool translatorLoaded = translator.load(path + "telephone_cp_" + lang);
-    DPRINT << ": translator loaded: " << translatorLoaded; 
-    if (translatorLoaded) {
-        qApp->installTranslator(&translator);
-        DPRINT << ": translator installed"; 
-    }
-
     m_cpSettingsWrapper = new CpSettingsWrapper;
     m_pSetWrapper = new PSetWrapper; 
     DPRINT << "PSetWrapper created";
@@ -93,13 +78,6 @@
     CpPhoneNotes *phoneNotes = CpPhoneNotes::instance();
     QObject::connect(
         this, 
-        SIGNAL(showBasicServiceList(
-            const QString&, const QList<unsigned char> &)),
-        phoneNotes, 
-        SLOT(showBasicServiceList(
-            const QString&, const QList<unsigned char> &)));
-    QObject::connect(
-        this, 
         SIGNAL(showGlobalProgressNote(int &, const QString&)),
         phoneNotes, 
         SLOT(showGlobalProgressNote(int &, const QString&)));
@@ -164,19 +142,26 @@
     // Read show call duration value from Cenrep 
     bool showCallDurationStatus = m_cpSettingsWrapper->showCallDuration();
     DPRINT << "showCallDurationStatus:" << showCallDurationStatus;
-    m_DataItemShowCallDuration = new CpSettingFormItemData(
-        HbDataFormModelItem::CheckBoxItem, hbTrId("") ,this);
-    m_DataItemShowCallDuration->setContentWidgetData(
-        "text", QVariant(hbTrId("Show call duration")));
+
+    m_DataItemShowCallDuration =
+        new CpSettingFormItemData(
+            HbDataFormModelItem::ToggleValueItem,
+            hbTrId("txt_phone_formlabel_show_call_duration"),
+            this);
+
     if (showCallDurationStatus) {
         m_DataItemShowCallDuration->setContentWidgetData(
-            "checkState", QVariant(Qt::Checked));
+            "text", QVariant(hbTrId("txt_phone_setlabel_val_yes")));
+        m_DataItemShowCallDuration->setContentWidgetData(
+            "additionalText", QVariant(hbTrId("txt_phone_setlabel_val_no")));
     } else {
         m_DataItemShowCallDuration->setContentWidgetData(
-            "checkState", QVariant(Qt::Unchecked));
+            "text", QVariant(hbTrId("txt_phone_setlabel_val_no")));
+        m_DataItemShowCallDuration->setContentWidgetData(
+            "additionalText", QVariant(hbTrId("txt_phone_setlabel_val_yes")));
     }
+
     appendChild( m_DataItemShowCallDuration ); 
-    
     DPRINT << ": OUT";
 }
     
@@ -247,18 +232,16 @@
 
     m_DataItemCallWaiting = 
         new CpSettingFormItemData(
-            HbDataFormModelItem::ComboBoxItem,
+            HbDataFormModelItem::ToggleValueItem,
             hbTrId("txt_phone_setlabel_call_waiting"),
             this);
-    QStringList list;
-    QMapIterator<int, QString> mapIterator(m_callWaitingSettingMap);
-    while (mapIterator.hasNext()) {
-        mapIterator.next();
-        list << mapIterator.value(); 
-        }; 
-    m_DataItemCallWaiting->setContentWidgetData("items", QVariant(list));
+
+    m_DataItemCallWaiting->setContentWidgetData(
+        "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_check_status")));
+    m_DataItemCallWaiting->setContentWidgetData(
+        "additionalText", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_check_status")));
+
     appendChild(m_DataItemCallWaiting);
-    
     DPRINT << ": OUT";
 }
 
@@ -270,8 +253,8 @@
     DPRINT << ": IN";
     
     m_helper.addConnection(
-        m_DataItemShowCallDuration, SIGNAL(stateChanged(int)),
-        this, SLOT(showCallDurationStateChanged(int)));
+        m_DataItemShowCallDuration, SIGNAL(clicked()),
+        this, SLOT(showCallDurationStateChanged()));
 
     DPRINT << ": OUT";
 }
@@ -322,8 +305,8 @@
     DPRINT << ": IN";
 
     m_helper.addConnection(
-        m_DataItemCallWaiting, SIGNAL(currentIndexChanged(int)),
-        this, SLOT(callWaitingCurrentIndexChanged(int)));
+        m_DataItemCallWaiting, SIGNAL(clicked()),
+        this, SLOT(callWaitingCurrentIndexChanged()));
 
     DPRINT << ": OUT";
 }
@@ -331,15 +314,19 @@
 /*!
   CpCallsPluginGroup::showCallDurationStateChanged.
  */
-void CpCallsPluginGroup::showCallDurationStateChanged(int state)
+void CpCallsPluginGroup::showCallDurationStateChanged()
 {
     DPRINT << ": IN";
 
-    DPRINT << "state:" << state;
-    if (state == Qt::Checked) {
+    QVariant text = m_DataItemShowCallDuration->contentWidgetData("text");
+    QString showCallDurationText = text.toString();
+
+    if (showCallDurationText == hbTrId("txt_phone_setlabel_val_yes")) {
         m_cpSettingsWrapper->setShowCallDuration(true);
+    } else if (showCallDurationText == hbTrId("txt_phone_setlabel_val_no")){
+        m_cpSettingsWrapper->setShowCallDuration(false);
     } else {
-        m_cpSettingsWrapper->setShowCallDuration(false);
+        DPRINT << "nothing done";
     }
 
     DPRINT << ": OUT";
@@ -354,7 +341,7 @@
     
     QVariant text = m_DataItemSoftRejectTextEditor->contentWidgetData("text");
     QString softRejectText = text.toString();  
-    if (!softRejectText.isNull()) {
+    if (!softRejectText.isEmpty()) {
         DPRINT << "softRejectText:" << softRejectText;
         m_cpSettingsWrapper->writeSoftRejectText(softRejectText, true);
     }
@@ -365,42 +352,37 @@
 /*!
   CpCallsPluginGroup::callWaitingCurrentIndexChanged.
  */
-void CpCallsPluginGroup::callWaitingCurrentIndexChanged(int index)
+void CpCallsPluginGroup::callWaitingCurrentIndexChanged()
 {
     DPRINT << ": IN";
-    DPRINT << "index:" << index;
+
+    QVariant text = m_DataItemCallWaiting->contentWidgetData("text");
+    QString callWaitingText = text.toString();
+
+    if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_check_status")) {
+        // Clicked first time, user want to check feature status
+        DPRINT << "checking status";
+        m_callWaitingWrapper->getCallWaitingStatus();
+    }
 
-    if ( index >= 0 ) {
-        QString settingMapString = m_callWaitingSettingMap.value(index);
-        DPRINT << "settingMapString:" << settingMapString;
-        switch (index) {
-            case PSetCallWaitingWrapper::ActivateCallWaiting: {
-                DPRINT << "activate";
-                m_callWaitingWrapper->setCallWaiting(
-                        PSetCallWaitingWrapper::ActivateCallWaiting,
-                        AllTeleAndBearer);
-                }
-                break; 
-            case PSetCallWaitingWrapper::DeactivateCallWaiting: {
-                DPRINT << "deactivate";
-                m_callWaitingWrapper->setCallWaiting(
-                        PSetCallWaitingWrapper::DeactivateCallWaiting,
-                        AllTeleAndBearer);
-                }
-                break; 
-            case PSetCallWaitingWrapper::CheckCallWaitingStatus: {
-                DPRINT << "check status";
-                m_callWaitingWrapper->getCallWaitingStatus();
-                }
-                break;
-            default: 
-                DPRINT << "Error: unknown enum value";
-                break; 
-        }
-    } else {
-        DPRINT << "Error: negative index!";
+    else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_on")) {
+        DPRINT << "activate";
+        // User want to activate call waiting feature
+        m_callWaitingWrapper->setCallWaiting(
+            PSetCallWaitingWrapper::ActivateCallWaiting,
+            AllTeleAndBearer);
     }
-    
+    else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_off")) {
+        DPRINT << "deactivate";
+        // User want to deactivate call waiting feature
+        m_callWaitingWrapper->setCallWaiting(
+            PSetCallWaitingWrapper::DeactivateCallWaiting,
+            AllTeleAndBearer);
+    }
+    else {
+        DPRINT << "nothing done";
+    }
+
     DPRINT << ": OUT";
 }
 
@@ -434,13 +416,6 @@
     m_cliSettingMap.insert(ClirExplicitSuppress, hbTrId("txt_phone_setlabel_val_yes"));
     m_cliSettingMap.insert(ClirExplicitInvoke, hbTrId("txt_phone_setlabel_val_no"));
 
-    m_callWaitingSettingMap.insert(
-        PSetCallWaitingWrapper::ActivateCallWaiting, hbTrId("txt_phone_setlabel_call_waiting_val_on"));
-    m_callWaitingSettingMap.insert(
-        PSetCallWaitingWrapper::DeactivateCallWaiting, hbTrId("txt_phone_setlabel_call_waiting_val_off"));
-    m_callWaitingSettingMap.insert(
-        PSetCallWaitingWrapper::CheckCallWaitingStatus, hbTrId("Check status"));
-    
     DPRINT << ": OUT";
 }
 
@@ -451,21 +426,39 @@
     PSetCallWaitingWrapper::PsCallWaitingStatus status,
     const QList<unsigned char> &basicServiceGroupIds)
 {
-    DPRINT << ": IN";
+    DPRINT << ": IN status: " << status;
+    // This happens only in the very first time when clicked.
+
     emit cancelNote(m_activeNoteId);
     
+    bool alsCaseOnly = false;
+    if (1 == basicServiceGroupIds.count() &&
+        AltTele == static_cast<BasicServiceGroups>(basicServiceGroupIds.at(0))) {
+        DPRINT << "Status is only for als";
+        alsCaseOnly = true;
+    }
+
     if (m_callWaitingDistinguishEnabled &&
-            status == PSetCallWaitingWrapper::StatusNotProvisioned) {
-        emit showGlobalNote(m_activeNoteId, 
-            hbTrId("txt_phone_info_request_not_completed"), HbMessageBox::MessageTypeInformation);
-    } else if (status != PSetCallWaitingWrapper::StatusActive) {
+            PSetCallWaitingWrapper::StatusNotProvisioned == status) {
+        DPRINT << ": not provisioned";
         emit showGlobalNote(m_activeNoteId,
-            hbTrId("txt_phone_info_call_waiting_deactivated"), HbMessageBox::MessageTypeInformation);
+            hbTrId("txt_phone_info_request_not_completed"), 
+            HbMessageBox::MessageTypeInformation);
+    } else if (PSetCallWaitingWrapper::StatusActive == status && !alsCaseOnly) {
+        DPRINT << ": status active";
+        m_DataItemCallWaiting->setContentWidgetData(
+            "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_on")));
+        m_DataItemCallWaiting->setContentWidgetData(
+            "additionalText", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_off")));
+
     } else {
-        emit showGlobalNote(m_activeNoteId,
-            hbTrId("txt_phone_info_call_waiting_activated"), HbMessageBox::MessageTypeInformation);
+        DPRINT << ": status not active";
+        m_DataItemCallWaiting->setContentWidgetData(
+            "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_off")));
+        m_DataItemCallWaiting->setContentWidgetData(
+            "additionalText", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_on")));
     }
-    
+
     DPRINT << ": OUT";
 }
 
--- a/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.h	Fri May 14 15:51:57 2010 +0300
@@ -59,9 +59,9 @@
     
 public slots:
     
-    void showCallDurationStateChanged(int state);
+    void showCallDurationStateChanged();
     void softRejectTextChanged();
-    void callWaitingCurrentIndexChanged(int index);
+    void callWaitingCurrentIndexChanged();
     void cliCurrentIndexChanged(int index);
     
     // Call waiting slots
@@ -76,9 +76,6 @@
     
 signals:
     
-    void showBasicServiceList(
-        const QString& title, 
-        QList<unsigned char> basicServiceGroupIds);
     void showGlobalProgressNote(int &noteId, const QString& text);
     void showGlobalNote(
         int &noteId, const QString& text, HbMessageBox::MessageBoxType);
@@ -104,7 +101,6 @@
     
     // List data mappings 
     QMap<int, QString> m_cliSettingMap;
-    QMap<int, QString> m_callWaitingSettingMap;
     
     bool m_callWaitingDistinguishEnabled;
     int m_activeNoteId;
--- a/phonesettings/cpphonesettingsplugins/callsplugin/tsrc/ut_callsplugingroup/ut_callsplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/callsplugin/tsrc/ut_callsplugingroup/ut_callsplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -102,10 +102,10 @@
     int iRet=0;
     
     EXPECT(CpSettingsWrapper::setShowCallDuration).returns(iRet);
-    m_callspluginGroup->showCallDurationStateChanged(Qt::Checked);
+    m_callspluginGroup->showCallDurationStateChanged();
     
     EXPECT(CpSettingsWrapper::setShowCallDuration).returns(iRet);
-    m_callspluginGroup->showCallDurationStateChanged(Qt::Unchecked);
+    m_callspluginGroup->showCallDurationStateChanged();
     
     QVERIFY(verify());
 }
@@ -115,29 +115,24 @@
  */
 void UT_CpCallsPluginGroup::t_callWaitingCurrentIndexChanged()
 {
-    EXPECT(PSetCallWaitingWrapper::setCallWaiting);
-    m_callspluginGroup->callWaitingCurrentIndexChanged \
-            (PSetCallWaitingWrapper::ActivateCallWaiting);
-    
-    EXPECT(PSetCallWaitingWrapper::setCallWaiting);
-    m_callspluginGroup->callWaitingCurrentIndexChanged \
-            (PSetCallWaitingWrapper::DeactivateCallWaiting);
-    
+    QList<unsigned char> basicServiceGroupIds;
+
+    // check status case
     EXPECT(PSetCallWaitingWrapper::getCallWaitingStatus);
-    m_callspluginGroup->callWaitingCurrentIndexChanged \
-            (PSetCallWaitingWrapper::CheckCallWaitingStatus);
-    
-    QVERIFY(verify());
-    reset();
-    
-    //Error, negative index , do nothing
-    EXPECT(PSetCallWaitingWrapper::setCallWaiting).times(0);
-    m_callspluginGroup->callWaitingCurrentIndexChanged(-1);
-    //Do nothing, index is out of range
-    EXPECT(PSetCallWaitingWrapper::setCallWaiting).times(0);
-    m_callspluginGroup->callWaitingCurrentIndexChanged \
-                (PSetCallWaitingWrapper::CheckCallWaitingStatus + 100);
-    
+    m_callspluginGroup->callWaitingCurrentIndexChanged();
+
+    // active case
+    m_callspluginGroup->handleCallWaitingGetStatus(
+        PSetCallWaitingWrapper::StatusActive, basicServiceGroupIds);
+    EXPECT(PSetCallWaitingWrapper::setCallWaiting);
+    m_callspluginGroup->callWaitingCurrentIndexChanged();
+
+    // deactive case
+    m_callspluginGroup->handleCallWaitingGetStatus(
+        PSetCallWaitingWrapper::StatusDisabled, basicServiceGroupIds);
+    EXPECT(PSetCallWaitingWrapper::setCallWaiting);
+    m_callspluginGroup->callWaitingCurrentIndexChanged();
+
     QVERIFY(verify());
 }
 
@@ -200,9 +195,9 @@
     
     EXPECT(CpPhoneNotes::cancelNote);
     EXPECT(CpPhoneNotes::showGlobalProgressNote);
-    m_callspluginGroup->handleCallWaitingRequesting( true, true );
+//    m_callspluginGroup->handleCallWaitingRequesting( true, true );
 
-    QVERIFY(verify());
+//    QVERIFY(verify());
     reset();
     
     EXPECT(CpPhoneNotes::cancelNote).times(0);
@@ -244,12 +239,10 @@
     QList<unsigned char> basicServiceGroupIds;
     
     EXPECT(CpPhoneNotes::cancelNote);
-    EXPECT(CpPhoneNotes::showGlobalNote);
     m_callspluginGroup->handleCallWaitingGetStatus(
         PSetCallWaitingWrapper::StatusNotProvisioned, basicServiceGroupIds);
     
     EXPECT(CpPhoneNotes::cancelNote);
-    EXPECT(CpPhoneNotes::showGlobalNote);
     m_callspluginGroup->handleCallWaitingGetStatus(
         PSetCallWaitingWrapper::StatusActive, basicServiceGroupIds);
     QVERIFY(verify());
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.cpp	Fri May 14 15:51:57 2010 +0300
@@ -19,24 +19,39 @@
 #include "cpnetworkpluginview.h"
 #include "cppluginlogging.h"
 
+
 /*!
   CpNetworkPlugin::CpNetworkPlugin
  */
-CpNetworkPlugin::CpNetworkPlugin() : QObject(0)
+CpNetworkPlugin::CpNetworkPlugin() : 
+    QObject(0),
+    m_localisation(0)
 {
     INSTALL_TRACE_MSG_HANDLER;
+    DPRINT << ": IN";
     
-    DPRINT;
+    // Set scoped pointer 
+    m_localisation.reset(new CpPhoneLocalisation); 
+    
+    // Install required translations
+    m_localisation->installTranslator(
+            CpPhoneLocalisation::
+            TranslationFileCommon);
+    
+    DPRINT << ": OUT";
 }
 
+
 /*!
   CpNetworkPlugin::~CpNetworkPlugin
  */
 CpNetworkPlugin::~CpNetworkPlugin()
 {
+    DPRINT;
     UNINSTALL_TRACE_MSG_HANDLER;
 }
 
+
 /*!
   CpNetworkPlugin::createSettingFormItemData
  */
@@ -48,9 +63,10 @@
     QList<CpSettingFormItemData*> ret;
     ret.append(new CpSettingFormEntryItemDataImpl<CpNetworkPluginView>(
             itemDataHelper,
-            hbTrId("txt_cp_dblist_mobile_network"), 
+            hbTrId("txt_cp_dblist_mobile_network"),
             hbTrId("")));
     return ret;
 }
 
+
 Q_EXPORT_PLUGIN2(CpNetworkPlugin, CpNetworkPlugin);
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkplugin.h	Fri May 14 15:51:57 2010 +0300
@@ -20,6 +20,8 @@
 
 #include <qobject.h>
 #include <cpplugininterface.h>
+#include "cpphonelocalisation.h"
+
 
 class CpNetworkPlugin : public QObject, public CpPluginInterface
 {
@@ -39,6 +41,9 @@
     QList<CpSettingFormItemData*> createSettingFormItemData(
         CpItemDataHelper &itemDataHelper) const;
 
+private:
+    
+    QScopedPointer<CpPhoneLocalisation> m_localisation; 
 };
 
 #endif  // CPNETWORKPLUGIN_H
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp	Fri May 14 15:51:57 2010 +0300
@@ -41,7 +41,8 @@
     m_activeProgressNoteId(0),
     m_pSetWrapper(NULL),
     m_cpSettingsWrapper(NULL),
-    mCellularSettings()
+    mCellularSettings(),
+    m_dialog(NULL)
 {
     DPRINT << ": IN";
     
@@ -67,7 +68,12 @@
     setModel(model.take());
     m_pSetWrapper = pSetWrapperGuard.take();
     m_cpSettingsWrapper = cpSettingsWrapperGuard.take();
-    
+
+    if(!isPhoneOnLine()) {
+        DPRINT << "offline, set dimmed";
+        m_NetworkOperatorSelectionItemData->setEnabled(false);
+    }
+
     DPRINT << ": OUT";
 }
 
@@ -312,7 +318,7 @@
     // #2C operator selection mode changed
     DPRINT << ": IN ";
     
-    if(isPhoneOnLine()) {
+    if (isPhoneOnLine()) {
         PSetNetworkWrapper::NetworkSelectionMode mode;
         m_psetNetworkWrapper->getNetworkSelectionMode(mode);
         switch (mode) {
@@ -449,7 +455,7 @@
     DPRINT << ": IN";
     
     m_networkInfoList = &networkInfoList;
-    showManualSeletiondialog();
+    showManualSelectiondialog();
     
     DPRINT << ": OUT";
 }
@@ -525,7 +531,7 @@
        }
     else if(type == PSetNetworkWrapper::RequestSetNetwork && 
             error == PSetNetworkWrapper::ErrNoNetworkAccess) {
-        showManualSeletiondialog();
+        showManualSelectiondialog();
     }
     else if(type == PSetNetworkWrapper::RequestSetNetwork ||
             type == PSetNetworkWrapper::RequestSetNetworkAutomatic ||
@@ -552,7 +558,7 @@
 
 
 /*!
-  CpNetworkPluginForm::userCancel
+  CpNetworkPluginForm::handleSearchingNetworks
   */
 void CpNetworkPluginForm::handleSearchingNetworks(
     PSetNetworkWrapper::RequestType &type)
@@ -577,7 +583,7 @@
 
 
 /*!
-  CpNetworkPluginForm::userCancel
+  CpNetworkPluginForm::handleRequestingSelectedNetwork
   */
 void CpNetworkPluginForm::handleRequestingSelectedNetwork(bool ongoing)
 {
@@ -601,7 +607,7 @@
 
 
 /*!
-  CpNetworkPluginForm::userCancel
+  CpNetworkPluginForm::handleNetworkChanged
   */
 void CpNetworkPluginForm::handleNetworkChanged(
     PSetNetworkWrapper::NetworkInfo& currentInfo,
@@ -629,66 +635,90 @@
 
 
 /*!
-  CpNetworkPluginForm::showManualSeletiondialog
+  CpNetworkPluginForm::showManualSelectiondialog
   */
-void CpNetworkPluginForm::showManualSeletiondialog()
+void CpNetworkPluginForm::showManualSelectiondialog()
 {
     DPRINT << ": IN";
     
-    HbDialog *dialog = createDialog(hbTrId("txt_cp_title_select_operator"));
-    HbListWidget *list = new HbListWidget(dialog);
+    QScopedPointer<HbDialog> dialog(
+        createDialog(hbTrId("txt_cp_title_select_operator")));
+    HbListWidget *list = new HbListWidget(dialog.data());
     //then insert found networks
     int itemsCount = m_networkInfoList->count();
-    for(int i = 0; i < itemsCount; i++)
-        {
+    for (int i = 0; i < itemsCount; i++) {
         PSetNetworkWrapper::NetworkInfo *info = m_networkInfoList->at(i);
         QString text = networkName(*info);
         addItemToListWidget(list, text, i);
         DPRINT << ":  " << info;
-        }
+    }
     // Connect list item activation signal to close the popup
     connect(
         list, SIGNAL(activated(HbListWidgetItem*)), 
-        dialog, SLOT(close()));
+        dialog.data(), SLOT(close()));
     // Sets the "Cancel"-action/button
     HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
-    dialog->setPrimaryAction(cancelAction);
+    dialog->addAction(cancelAction);
     dialog->setContentWidget(list);
     // Launch popup and handle the response
-    if (dialog->exec() != cancelAction) {
-        // Update the view with selected text
-        int seletion = 0;
-        if(list->currentItem()) {
-            seletion = list->currentItem()->data().toInt();
-            DPRINT << ": seletion : " << seletion;
-        }
-        PSetNetworkWrapper::NetworkInfo param;
-        param.m_id.m_countryCode = 
-            m_networkInfoList->at(seletion)->m_id.m_countryCode;
-        param.m_id.m_networkCode = 
-            m_networkInfoList->at(seletion)->m_id.m_networkCode;
-        param.m_mode = PSetNetworkWrapper::SelectionModeManual;
-        DPRINT << ": m_countryCode : " << param.m_id.m_countryCode;
-        DPRINT << ": m_networkCode : " << param.m_id.m_networkCode;
-        DPRINT << ": m_mode : " << param.m_mode;
-        m_psetNetworkWrapper->selectNetwork(param);
+    dialog->open(this, SLOT(finishedManualSelectiondialog(HbAction*)));
+    if (m_dialog) {
+        m_dialog->deleteLater();
+        m_dialog = NULL;
     }
-    else {
-        DPRINT << ": Cancel";
-        m_psetNetworkWrapper->cancelRequest();
-        restoreUiSelection();
-    }
-
-    disconnect(
-        list, SIGNAL(activated(HbListWidgetItem*)), 
-        dialog, SLOT(close()));
-    delete dialog;
+    m_dialog = dialog.take();
     
     DPRINT << ": OUT";
 }
 
 
 /*!
+  CpNetworkPluginForm::finishedManualSelectiondialog.
+ */
+void CpNetworkPluginForm::finishedManualSelectiondialog(HbAction* action)
+{
+    DPRINT << ": IN";
+    
+    if (m_dialog) {
+        QList<QAction *> actionList = m_dialog->actions();
+        bool cancelAction = actionList.contains(action);
+        if (!cancelAction) {
+            // Update the view with selected text
+            QGraphicsWidget *contectWidget = m_dialog->contentWidget();
+            HbListWidget *list(NULL);
+            if (contectWidget) {
+                list = qobject_cast<HbListWidget *>(contectWidget);
+            }
+            if (list) {
+                int seletion = 0;
+                if(list->currentItem()) {
+                    seletion = list->currentItem()->data().toInt();
+                    DPRINT << ": seletion : " << seletion;
+                }
+                PSetNetworkWrapper::NetworkInfo param;
+                param.m_id.m_countryCode = 
+                    m_networkInfoList->at(seletion)->m_id.m_countryCode;
+                param.m_id.m_networkCode = 
+                    m_networkInfoList->at(seletion)->m_id.m_networkCode;
+                param.m_mode = PSetNetworkWrapper::SelectionModeManual;
+                DPRINT << ": m_countryCode : " << param.m_id.m_countryCode;
+                DPRINT << ": m_networkCode : " << param.m_id.m_networkCode;
+                DPRINT << ": m_mode : " << param.m_mode;
+                m_psetNetworkWrapper->selectNetwork(param);
+            }
+        } else {
+            DPRINT << ": Cancel";
+            m_psetNetworkWrapper->cancelRequest();
+            restoreUiSelection();
+        }
+        m_dialog->deleteLater();
+        m_dialog = NULL;
+    }
+    
+    DPRINT << ": OUT";
+}
+
+/*!
   CpNetworkPluginForm::restoreUiSelection
   */
 void CpNetworkPluginForm::restoreUiSelection()
@@ -832,9 +862,9 @@
 }
 
 /*!
-  CpNetworkPluginForm::SearchAvailableNetworks
+  CpNetworkPluginForm::searchAvailableNetworks
  */
-void CpNetworkPluginForm::SearchAvailableNetworks()
+void CpNetworkPluginForm::searchAvailableNetworks()
 {
     DPRINT << ": IN";
     
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.h	Fri May 14 15:51:57 2010 +0300
@@ -43,7 +43,7 @@
     
     virtual ~CpNetworkPluginForm();
     
-    void SearchAvailableNetworks();
+    void searchAvailableNetworks();
     
 signals:
     
@@ -70,6 +70,7 @@
     void handleNetworkChanged(
         PSetNetworkWrapper::NetworkInfo& currentInfo,
         PSetNetworkWrapper::RegistrationStatus& status);
+    void finishedManualSelectiondialog(HbAction* action);
 
 private:     
     HbDataFormModelItem *createNetworkModeItem();
@@ -88,7 +89,7 @@
     void addItemToListWidget(
         HbListWidget* w, const QString& item, const int& data) const;
     
-    void showManualSeletiondialog();
+    void showManualSelectiondialog();
     void restoreUiSelection();
     QString networkName(PSetNetworkWrapper::NetworkInfo &info);
 
@@ -110,6 +111,7 @@
     PSetWrapper *m_pSetWrapper;
     CpSettingsWrapper *m_cpSettingsWrapper;
     QSharedPointer<CellularDataSettings> mCellularSettings;
+    HbDialog *m_dialog; 
     
     // Not own
     PSetNetworkWrapper *m_psetNetworkWrapper;
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginview.cpp	Fri May 14 15:51:57 2010 +0300
@@ -16,9 +16,6 @@
  */
 
 #include "cpnetworkpluginview.h"
-#include <QApplication>
-#include <QLocale>
-#include <QTranslator>
 #include "cpnetworkpluginform.h"
 #include "cppluginlogging.h"
 
@@ -31,21 +28,9 @@
 {
     DPRINT << ": IN";
     
-    // Localization file loading
-    QTranslator translator; 
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    DPRINT << ": loading translation: " << QString(path + "telephone_cp_" + lang);
-    bool translatorLoaded = translator.load(path + "telephone_cp_" + lang);
-    DPRINT << ": translator loaded: " << translatorLoaded; 
-    if (translatorLoaded) {
-        qApp->installTranslator(&translator);
-        DPRINT << ": translator installed"; 
-    }
-    
     m_networkSettingsForm = new CpNetworkPluginForm();
     // base class takes ownership of the form
-    this->setSettingForm(m_networkSettingsForm);
+    this->setWidget(m_networkSettingsForm);
     
     DPRINT << ": OUT";
     }
@@ -67,7 +52,7 @@
 {
     DPRINT << ": IN";
     
-    m_networkSettingsForm->SearchAvailableNetworks();
+    m_networkSettingsForm->searchAvailableNetworks();
     
     DPRINT << ": OUT";
 }
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkplugin/ut_cpnetworkplugin.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkplugin/ut_cpnetworkplugin.pro	Fri May 14 15:51:57 2010 +0300
@@ -22,7 +22,7 @@
 INCLUDEPATH += .
 INCLUDEPATH +=../../../inc 
 INCLUDEPATH +=../../../cptelephonyutils/inc
-DEFINES += BUILD_NETWORKPLUGIN
+DEFINES += BUILD_CPTELEPHONYUTILS
 
 QT -= gui
 QT += testlib
@@ -43,10 +43,12 @@
 
 # code to be tested
 HEADERS += ../../src/cpnetworkplugin.h \
-           ../../src/cpnetworkpluginview.h
+           ../../src/cpnetworkpluginview.h \
+           ../../../cptelephonyutils/inc/cpphonelocalisation.h           
        
 SOURCES += ../../src/cpnetworkplugin.cpp 
 
 # mocks needed for testing
 SOURCES += ../../../tsrc/mocks/mock_cpnetworkpluginview.cpp
+SOURCES += ../../../tsrc/mocks/mock_cpphonelocalisation.cpp
 SOURCES += ../../../tsrc/mocks/mock_hbicon.cpp
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_cpnetworkpluginform.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_cpnetworkpluginform.pro	Fri May 14 15:51:57 2010 +0300
@@ -50,6 +50,7 @@
            ../../src/cellulardatasettings.h \
            ../../../cptelephonyutils/inc/cpplugincommon.h \
            ../../../cptelephonyutils/inc/cpphonenotes.h \
+           ../../../cptelephonyutils/inc/cpphonelocalisation.h \
            /epoc32/include/platform/mw/psetwrapper.h \
            /epoc32/include/platform/mw/psetcliwrapper.h \
            /epoc32/include/platform/mw/psetcallwaitingwrapper.h \
@@ -64,6 +65,7 @@
            ../../../tsrc/mocks/mock_psetnetworkwrapper.cpp \
            ../../../tsrc/mocks/mock_cpplugincommon.cpp \
            ../../../tsrc/mocks/mock_cpphonenotes.cpp \
+           ../../../tsrc/mocks/mock_cpphonelocalisation.cpp \
            ../../../tsrc/mocks/mock_hbdataform.cpp \
            ../../../tsrc/mocks/mock_hbabstractitemview.cpp \
            ../../../tsrc/mocks/mock_hbscrollarea.cpp \
--- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/tsrc/ut_cpnetworkpluginform/ut_networkpluginform.h	Fri May 14 15:51:57 2010 +0300
@@ -23,7 +23,6 @@
 #include <psetnetworkwrapper.h>
 
 class CpNetworkPluginForm;
-//class PSetNetworkWrapper;
 
 class UT_CpNetworkPluginForm : public QObject, MockService
 {
--- a/phonesettings/cpphonesettingsplugins/cpphonesettingsplugins.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cpphonesettingsplugins.pro	Fri May 14 15:51:57 2010 +0300
@@ -1,37 +1,28 @@
-#
 # 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: 
-#
-
+# Description:
 TEMPLATE = subdirs
-SUBDIRS =     cptelephonyutils \
-              telephonyplugin \
-              divertplugin \
-              callsplugin \
-              barringplugin \
-              cpnetworkplugin
-
+SUBDIRS = cptelephonyutils \
+    telephonyplugin \
+    divertplugin \
+    callsplugin \
+    barringplugin \
+    cpnetworkplugin
 CONFIG += ordered
-
-symbian: {
+symbian: { 
     load(data_caging_paths)
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE    
+    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
     deploy.path = C:
-        
-    BLD_INF_RULES.prj_exports +=  \
-     "$${LITERAL_HASH}include <platform_paths.hrh>" \
-     "./rom/cpphonesettingsplugins.iby    CORE_APP_LAYER_IBY_EXPORT_PATH(cpphonesettingsplugins.iby)" \
-	 "./rom/cpphonesettingsplugins_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(cpphonesettingsplugins_resources.iby)" 
+    BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
+        "./rom/cpphonesettingsplugins.iby CORE_APP_LAYER_IBY_EXPORT_PATH(cpphonesettingsplugins.iby)" \
+        "./rom/cpphonesettingsplugins_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(cpphonesettingsplugins_resources.iby)"
 }
-
+HEADERS = cptelephonyutils/inc/cpphonelocalisation.h
+SOURCES = cptelephonyutils/src/cpphonelocalisation.cpp
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/cptelephonyutils.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/cptelephonyutils.pro	Fri May 14 15:51:57 2010 +0300
@@ -23,8 +23,13 @@
 SOURCEPATH += src
 
 # Input
-HEADERS += inc/cpplugincommon.h inc/cpphonenotes.h
-SOURCES += src/cpphonenotes.cpp
+HEADERS += inc/cpplugincommon.h \
+           inc/cpphonenotes.h \
+           inc/cpphonelocalisation.h
+           
+SOURCES += src/cpphonenotes.cpp \
+           src/cpphonelocalisation.cpp 
+           
 symbian: {
     SOURCES += src/cpplugincommon.cpp 
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpphonelocalisation.h	Fri May 14 15:51:57 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:  
+ *
+ */
+#ifndef CPPHONELOCALISATION_H_
+#define CPPHONELOCALISATION_H_
+
+#include <QObject>
+#include <QList>
+#include "cptelephonyutilsdefs.h"
+
+// Forward declarations 
+class QTranslator; 
+
+class CPTELEPHONYUTILS_EXPORT CpPhoneLocalisation: public QObject
+    {
+    Q_OBJECT
+    
+public: 
+    
+    enum TranslationFileId {
+        TranslationFileCommon, 
+        TranslationFileTelephoneCp
+    }; 
+        
+public:
+    
+    CpPhoneLocalisation(QObject *parent = NULL);
+    ~CpPhoneLocalisation();
+
+    bool installTranslator(TranslationFileId translationFileId);
+    void removeTranslators();
+
+private:     
+    
+    QList<QTranslator *> m_translators;
+    
+    };
+
+
+#endif /* CPPHONELOCALISATION_H_ */
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpphonenotes.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cpphonenotes.h	Fri May 14 15:51:57 2010 +0300
@@ -55,6 +55,16 @@
      */
     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: 
     
     /**
@@ -106,17 +116,12 @@
      accepted.
      @param title               Title for the query dialog.
      @param validator           Password validator.
-     @param maxPasswordLength   Maximum length for the password.  
-     @param password            On return contains user given password.
-     @param ok                  True if the user pressed OK, false if the user 
-                                pressed Cancel.
+     @param maxPasswordLength   Maximum length for the password.
      */
     void showPasswordQueryDialog(
         const QString &title,
         const QValidator &validator,
-        int maxPasswordLength,
-        QString &password,
-        bool &ok);
+        int maxPasswordLength);
     
     /**
      Cancels specified note.
@@ -129,6 +134,11 @@
      */
     bool noteShowing();
     
+    /**
+     Slot for HbDialog finished singal.
+     */
+    void finishedPasswordQueryDialog(HbAction* action);
+    
 private:
     
     /**
@@ -187,7 +197,7 @@
     bool m_isNoteShowingOngoing;
     
     /**
-      Password query dialog. Not own.
+      Password query dialog. Own.
      */
     HbInputDialog *m_passwordDialog;
 
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cppluginlogging.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/inc/cppluginlogging.h	Fri May 14 15:51:57 2010 +0300
@@ -40,19 +40,19 @@
     
     case QtDebugMsg:
         RDebug::Printf("CpPhoneSettingsPlugins Debug: %s\n", msg);
-        break;
-        
+        break;        
     case QtWarningMsg:
         RDebug::Printf("CpPhoneSettingsPlugins Warning: %s\n", msg);
         break;
-
     case QtCriticalMsg:
         RDebug::Printf("CpPhoneSettingsPlugins Critical: %s\n", msg);
-        break;
-        
+        break;        
     case QtFatalMsg:
         RDebug::Printf("CpPhoneSettingsPlugins Fatal: %s\n", msg);
         abort();
+        break; 
+    default:
+        break; 
     }
 }
 
@@ -71,7 +71,7 @@
   Debug macros
   */
 #define DPRINT qDebug() << __PRETTY_FUNCTION__
-
+#define DWARNING qWarning() << __PRETTY_FUNCTION__
 
 #endif // CPPHONESETTINGSPLUGINSLOGGING_H
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpphonelocalisation.cpp	Fri May 14 15:51:57 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 "cpphonelocalisation.h"
+#include "cppluginlogging.h"
+#include <QTranslator>
+#include <QLocale>
+#include <QApplication>
+
+
+// Constant definitions 
+const char *TS_FILE_TELEPHONE_CP = "telephone_cp";
+const char *TS_FILE_COMMON = "common"; 
+
+/*!
+    \class CpPhoneLocalisation
+    \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 CpPhoneLocalisation 
+    object is destructed. 
+*/
+
+
+/*!
+    CpPhoneLocalisation::CpPhoneLocalisation() 
+*/
+CpPhoneLocalisation::CpPhoneLocalisation(QObject *parent)
+ :QObject(parent)
+{
+    DPRINT; 
+}
+
+
+/*!
+    CpPhoneLocalisation::~CpPhoneLocalisation() 
+*/
+CpPhoneLocalisation::~CpPhoneLocalisation()
+{
+    DPRINT << ":IN"; 
+    removeTranslators();
+    DPRINT << ":OUT";
+}
+
+
+/*!
+    CpPhoneLocalisation::installTranslator() 
+*/
+bool CpPhoneLocalisation::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: 
+            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 << ": WARNING! Translator not loaded!";
+        }
+    }
+
+    DPRINT << ": OUT";
+    return translatorLoaded;
+}
+
+
+/*!
+    CpPhoneLocalisation::removeTranslators()
+*/
+void CpPhoneLocalisation::removeTranslators()
+{
+    DPRINT << ": IN";
+
+    foreach (QTranslator *translator, m_translators) {
+        qApp->removeTranslator(translator);
+    }    
+    qDeleteAll(m_translators);
+    m_translators.clear();
+    
+    DPRINT << ": OUT";
+}
+
+
+// End of File. 
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpphonenotes.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/src/cpphonenotes.cpp	Fri May 14 15:51:57 2010 +0300
@@ -57,7 +57,7 @@
      m_passwordValidator(NULL)
     {
     DPRINT << ": IN";
-    
+
     m_notesQueue = new QQueue<QObject*>();
     m_cpSettingsWrapper = new CpSettingsWrapper;
     
@@ -77,6 +77,10 @@
         delete note;
     }
     delete m_notesQueue;
+    if(m_passwordDialog) {
+        delete m_passwordDialog;
+    }
+        
     
     DPRINT << ": OUT";
 }
@@ -92,6 +96,9 @@
     HbDeviceProgressDialog *note = 
         new HbDeviceProgressDialog(HbProgressDialog::WaitDialog, this);
     note->setText(text);
+    QAction *action = new QAction(hbTrId("txt_common_button_hide"), this);
+    //Ownership of action is not transferred. Deleted when note closes.
+    note->setAction(action, HbDeviceProgressDialog::CancelButtonRole );
     noteId = reinterpret_cast<int>(note);
     DPRINT << ", NOTEID: " << noteId;
     QObject::connect(
@@ -175,7 +182,12 @@
     HbAction *backAction = 
         new HbAction(hbTrId("txt_common_button_back"), serviceListPopup.data());
     serviceListPopup->setPrimaryAction(backAction);
-    serviceListPopup->exec();
+    
+    HbDialog *serviceListPopupDialog = serviceListPopup.take();
+    QObject::connect(
+        serviceListPopupDialog, SIGNAL(finished(HbAction*)), 
+        serviceListPopupDialog, SLOT(deleteLater()));
+    serviceListPopupDialog->show();
     
     DPRINT << ": OUT";
 }
@@ -195,10 +207,7 @@
             QObject *note = m_notesQueue->at(index);
             DPRINT << ": NOTEID: " << noteId;
             if (qobject_cast<HbDeviceProgressDialog *>(note)) {
-              //  QObject::disconnect(
-                //    note, SIGNAL(cancelled()),
-                  //  this, SLOT(ProgresNoteCanceled()));
-                static_cast<HbDeviceProgressDialog *>(note)->cancel();
+                static_cast<HbDeviceProgressDialog *>(note)->close();
             } else if (qobject_cast<HbDeviceMessageBox *>(note)) {
                 static_cast<HbDeviceMessageBox *>(note)->close();
             } else {
@@ -326,9 +335,9 @@
 {
     DPRINT << ": IN";
     
-    HbMessageBox *divertInfo = 
-            new HbMessageBox(HbMessageBox::MessageTypeInformation);
-    divertInfo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    QScopedPointer<HbMessageBox> divertInfoScopedPointer(
+        new HbMessageBox(HbMessageBox::MessageTypeInformation));
+    divertInfoScopedPointer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     
     // TODO: Orbit layout support is insufficient currently and all text
     // is not shown.
@@ -340,11 +349,17 @@
         content.append(QString::number(divertStatus.iTimeout));
         content.append(hbTrId(" seconds"));
     }
-    divertInfo->setText(content);
-    HbAction *backAction = new HbAction(hbTrId("txt_common_button_back"), divertInfo);
-    divertInfo->setPrimaryAction(backAction);
-    divertInfo->exec();
-    delete divertInfo;
+    divertInfoScopedPointer->setText(content);
+    HbAction *backAction = new HbAction(
+        hbTrId("txt_common_button_back"), 
+        divertInfoScopedPointer.data());
+    divertInfoScopedPointer->setPrimaryAction(backAction);
+    
+    HbMessageBox *divertInfo = divertInfoScopedPointer.take();
+    QObject::connect(
+            divertInfo, SIGNAL(finished(HbAction*)), 
+            divertInfo, SLOT(deleteLater()));
+    divertInfo->show();
     
     DPRINT << ": OUT";
 }
@@ -355,9 +370,7 @@
 void CpPhoneNotes::showPasswordQueryDialog(
     const QString &title, 
     const QValidator &validator,
-    int maxPasswordLength,
-    QString &password, 
-    bool &ok)
+    int maxPasswordLength)
 {
     DPRINT << ": IN";
     
@@ -370,32 +383,53 @@
     HbLineEdit *hbLineEdit = passwordDialog->lineEdit();
     hbLineEdit->setMaxLength(maxPasswordLength);
     HbEditorInterface editorInterface(hbLineEdit);
-    editorInterface.setInputMode(HbInputModeNumeric);
-    editorInterface.setConstraints(HbEditorConstraintFixedInputMode);
+    
+    editorInterface.setMode(HbInputModeNumeric);
+    editorInterface.setInputConstraints(HbEditorConstraintFixedInputMode);
+    
     editorInterface.setFilter(HbDigitsOnlyFilter::instance());
     
-    m_passwordDialog = passwordDialog.data();
     m_passwordValidator = &validator;
     passwordDialog->primaryAction()->setEnabled(false);
     connect(
         hbLineEdit, SIGNAL(contentsChanged()), 
         this, SLOT(passwordTextChanged()));
     
-    HbAction* action = passwordDialog->exec();
-    if (action == passwordDialog->secondaryAction()) {
-        ok = false;
-    } else {
-        ok = true;
-        password = passwordDialog->value().toString();
+    passwordDialog->open(this, SLOT(finishedPasswordQueryDialog(HbAction*)));
+	if(m_passwordDialog) {
+		m_passwordDialog->deleteLater();
+		m_passwordDialog = NULL;
+	}
+    m_passwordDialog = passwordDialog.take();
+        
+    DPRINT << ": OUT";
+}
+
+/*!
+  CpPhoneNotes::finishedPasswordQueryDialog.
+ */
+void CpPhoneNotes::finishedPasswordQueryDialog(HbAction* action)
+{
+    bool ok;
+    QString password;
+    if(m_passwordDialog) {
+        if (action == m_passwordDialog->secondaryAction()) {
+            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);
     }
-    
-    m_passwordDialog = NULL;
-    m_passwordValidator = NULL;
-    disconnect(
-        hbLineEdit, SIGNAL(contentsChanged()), 
-        this, SLOT(passwordTextChanged()));
-    
-    DPRINT << ": OUT";
 }
 
 /*!
@@ -442,7 +476,7 @@
             static_cast<HbDeviceProgressDialog *>(note)->show();
         } else if (qobject_cast<HbDeviceMessageBox *>(note)) {
             DPRINT << ", show HbDeviceMessageBox";    
-            static_cast<HbDeviceMessageBox *>(note)->exec();
+            static_cast<HbDeviceMessageBox *>(note)->show();
         } else {
             DPRINT << ", UNKNOWN NOTE";
             Q_ASSERT(false);
@@ -471,6 +505,11 @@
             launchNextNoteIfReady();
             note->disconnect(this);
             DPRINT << ", delete note: " << reinterpret_cast<int>(note);
+            HbDeviceProgressDialog *pNote = 
+                qobject_cast<HbDeviceProgressDialog *>(note);
+            if(pNote){
+                delete pNote->action();
+            }
             note->deleteLater();
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/qtestmains60.h	Fri May 14 15:51:57 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/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/ut_cpphonelocalisation.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,128 @@
+/*
+* 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_cpphonelocalisation.h"
+#include "qtestmains60.h"
+#include <smcmockclassincludes.h>
+#define private public
+#include "cpphonelocalisation.h"
+
+void QCoreApplication::installTranslator(QTranslator * messageFile)
+{
+    SMC_MOCK_METHOD1( void, QTranslator *, messageFile)
+}
+
+/*!
+  UT_cpphonelocalisation::UT_cpphonelocalisation
+ */
+UT_cpphonelocalisation::UT_cpphonelocalisation() 
+{
+    
+}
+
+/*!
+  UT_cpphonelocalisation::~UT_cpphonelocalisation
+ */
+UT_cpphonelocalisation::~UT_cpphonelocalisation()
+{
+    
+}
+
+/*!
+  UT_cpphonelocalisation::init
+ */
+void UT_cpphonelocalisation::init()
+{
+    initialize();
+    
+    m_phoneLocalisation.reset(new CpPhoneLocalisation); 
+}
+
+/*!
+  UT_cpphonelocalisation::cleanup
+ */
+void UT_cpphonelocalisation::cleanup()
+{
+    reset();
+    delete m_phoneLocalisation.take(); 
+}
+
+/*!
+  UT_cpphonelocalisation::t_memleak
+ */
+void UT_cpphonelocalisation::t_memleak()
+{
+    
+}
+
+/*!
+  UT_cpphonelocalisation::t_installTranslator
+ */
+void UT_cpphonelocalisation::t_installTranslator()
+{
+    
+    // Test: successfull load  
+    expect("QTranslator::load").
+        returns(true);    
+    expect("QCoreApplication::installTranslator").times(1);
+    
+    m_phoneLocalisation->installTranslator(
+            CpPhoneLocalisation::TranslationFileCommon);
+    QVERIFY(m_phoneLocalisation->m_translators.count() == 1);
+    QVERIFY(verify());
+    
+    // Test: failing load  
+    expect("QTranslator::load").
+        returns(false);
+    expect("QCoreApplication::installTranslator").times(0);
+    m_phoneLocalisation->installTranslator(
+            CpPhoneLocalisation::TranslationFileCommon);
+    QVERIFY(m_phoneLocalisation->m_translators.count() == 1);
+    QVERIFY(verify());
+    
+    // Test: telephone_cp translator load 
+    expect("QTranslator::load").
+        returns(false);
+    expect("QCoreApplication::installTranslator").times(0);
+    m_phoneLocalisation->installTranslator(
+            CpPhoneLocalisation::TranslationFileTelephoneCp);
+    QVERIFY(verify());
+ 
+}
+
+/*!
+  UT_cpphonelocalisation::t_removeTranslators
+ */
+void UT_cpphonelocalisation::t_removeTranslators()
+{
+    expect("QTranslator::load").
+        returns(true);
+    
+    m_phoneLocalisation->installTranslator(
+            CpPhoneLocalisation::TranslationFileCommon); 
+    m_phoneLocalisation->installTranslator(
+            CpPhoneLocalisation::TranslationFileTelephoneCp);
+    
+    m_phoneLocalisation->removeTranslators(); 
+    QVERIFY(m_phoneLocalisation->m_translators.count() == 0);
+    QVERIFY(verify());
+}
+
+
+
+
+QTEST_MAIN_S60(UT_cpphonelocalisation)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/ut_cpphonelocalisation.h	Fri May 14 15:51:57 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_CPPHONELOCALISATION_H
+#define UT_CPPHONELOCALISATION_H
+
+#include <QtTest/QtTest>
+#include <mockservice.h>
+
+class CpPhoneLocalisation; 
+
+class UT_cpphonelocalisation : public QObject, MockService
+{
+    Q_OBJECT
+
+public:    
+    UT_cpphonelocalisation();
+    ~UT_cpphonelocalisation();
+    
+private slots:
+    void init();
+    void cleanup();
+    void t_memleak();
+    void t_installTranslator();
+    void t_removeTranslators(); 
+ 
+private: 
+    QScopedPointer<CpPhoneLocalisation> m_phoneLocalisation; 
+    
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonelocalisation/ut_cpphonelocalisation.pro	Fri May 14 15:51:57 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_CPTELEPHONYUTILS 
+    
+QT -= gui
+QT += testlib
+
+symbian: {
+  CONFIG += no_icon
+  INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+  INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+  LIBS += -lmocklib -lsymbianmock
+}
+
+# test code
+HEADERS += ut_cpphonelocalisation.h
+SOURCES += ut_cpphonelocalisation.cpp
+
+# code to be tested
+HEADERS += ../../inc/cpphonelocalisation.h 
+           
+SOURCES += ../../src/cpphonelocalisation.cpp
+
+# mocks needed for testing
+SOURCES += ../../../tsrc/mocks/mock_qtranslator.cpp 
--- a/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonenotes/ut_cpphonenotes.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/cptelephonyutils/tsrc/ut_cpphonenotes/ut_cpphonenotes.cpp	Fri May 14 15:51:57 2010 +0300
@@ -219,7 +219,7 @@
     QRegExp regExpression("\\d{4}");
     QRegExpValidator validator(regExpression, this);
     CpPhoneNotes::instance()->showPasswordQueryDialog(
-        queryTitle, validator, 5, password, okPressed);
+        queryTitle, validator, 5);
 
 }
 
@@ -229,7 +229,11 @@
  */
 void UT_CpPhoneNotes::t_cancelNote()
 {
+    CpPhoneNotes::instance()->cancelNote(m_noteid1);
     CpPhoneNotes::instance()->showGlobalProgressNote(m_noteid1, "test");
+    CpPhoneNotes::instance()->noteShowing();
+    CpPhoneNotes::instance()->cancelNote(m_noteid1);
+        
     QTest::qWait(5000);
 }
 
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugin.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugin.cpp	Fri May 14 15:51:57 2010 +0300
@@ -26,7 +26,6 @@
 {
     // Install plugin specific msg handler
     INSTALL_TRACE_MSG_HANDLER;
-    
     DPRINT;
 }
 
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugin.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugin.h	Fri May 14 15:51:57 2010 +0300
@@ -30,8 +30,7 @@
 
 public:
 
-    CpDivertPlugin();
-    
+    CpDivertPlugin();    
     ~CpDivertPlugin();
     
     /**
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -15,6 +15,7 @@
  *
  */
 
+#include <QEventLoop>
 #include <hbdataformmodel.h>
 #include <hbdataformmodelitem.h>
 #include <hblineedit.h>
@@ -27,9 +28,6 @@
 #include <hblistwidget.h>
 #include <hblistwidgetitem.h>
 #include <hblabel.h>
-#include <QApplication>
-#include <QLocale>
-#include <QTranslator>
 #include <cpitemdatahelper.h>
 #include "cpdivertselectionitem.h"
 #include "cpdivertplugingroup.h"
@@ -42,6 +40,11 @@
 Q_DECLARE_METATYPE(PsCallDivertingCondition)
 Q_DECLARE_METATYPE(PsServiceGroup)
 
+// CONSTANTS 
+const QString KVoiceMail("voiceMail");
+const QString KVideoMail("voiceMail");
+const QString KOtherNumber("otherNumber");
+
 /*!
   CpDivertPluginGroup::CpDivertPluginGroup.
  */
@@ -61,7 +64,8 @@
        m_activeNoteId(0),
        m_activeProgressNoteId(0),
        m_divertToVoiceMailBox(false),
-       m_helper(helper)
+       m_helper(helper),
+       m_divertTimeout(0)
 {
     DPRINT << ": IN";
     
@@ -73,18 +77,6 @@
     qRegisterMetaType<PsServiceGroup>(
         "PsServiceGroup");
     
-    // Localization file loading
-    QTranslator translator; 
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    DPRINT << ": loading translation: " << QString(path + "telephone_cp_" + lang);
-    bool translatorLoaded = translator.load(path + "telephone_cp_" + lang);
-    DPRINT << ": translator loaded: " << translatorLoaded; 
-    if (translatorLoaded) {
-        qApp->installTranslator(&translator);
-        DPRINT << ": translator installed"; 
-    }
-    
     m_pSetWrapper = new PSetWrapper; 
     DPRINT << ": PSetWrapper created";
     
@@ -124,6 +116,9 @@
     // Create grouped setting items
     createVoiceCallItems(this);
     createVideoCallItems(this);
+    
+    m_eventLoop = new QEventLoop(this); 
+    
     DPRINT << ": OUT";
 }
 
@@ -289,8 +284,9 @@
 {
     DPRINT << ": IN";
     DPRINT << "item:" << item;
+    
     HbDataFormModelItem* modelItem = 
-            qobject_cast<HbDataFormModel*>(model())->itemFromIndex(item);
+            qobject_cast<const HbDataFormModel*>(item.model())->itemFromIndex(item);
     
     if (!modelItem->contentWidgetData("number").isValid() &&
         (static_cast<HbDataFormModelItem::DataItemType>
@@ -712,107 +708,168 @@
         const QString& heading, QString& result, PsServiceGroup serviceGroup)
 {
     DPRINT << ": IN";
-    const QString KVoiceMail("voiceMail");
-    const QString KVideoMail("voiceMail");
-    const QString KOtherNumber("otherNumber");
     
     bool requestOK(false);
-    m_divertToVoiceMailBox = false;
-    QStringList defNumbers;
-    HbDialog *dialog = createDialog(heading);
-    HbListWidget *list = new HbListWidget(dialog);
-    if (serviceGroup == ServiceGroupVoice) {
-        addItemToListWidget(
-            list, hbTrId("txt_phone_setlabel_voice_mbx"), KVoiceMail );
-    } else if(serviceGroup == ServiceGroupData) {
-        // TODO: Implement video voicemail
-    }
 
-    // Add "old" divert number to list
-    m_callDivertingWrapper->getDefaultNumbers(defNumbers);
-    int count(defNumbers.count());
-    for (int i = 0; i < count; i++) {
-        addItemToListWidget(list, defNumbers[i], defNumbers[i]);
+    if (!m_eventLoop->isRunning()){
+        m_divertNumber = ""; 
+        m_divertToVoiceMailBox = false;
+        QStringList defNumbers;
+        HbDialog *dialog = createDialog(heading);
+        m_voiceNumberList = new HbListWidget(dialog);
+        if (serviceGroup == ServiceGroupVoice) {
+            addItemToListWidget(
+                    m_voiceNumberList, hbTrId("txt_phone_setlabel_voice_mbx"), KVoiceMail );
+        } else if(serviceGroup == ServiceGroupData) {
+            // TODO: Implement video voicemail
+        }
+    
+        // Add "old" divert number to list
+        m_callDivertingWrapper->getDefaultNumbers(defNumbers);
+        int count(defNumbers.count());
+        for (int i = 0; i < count; i++) {
+            addItemToListWidget(m_voiceNumberList, defNumbers[i], defNumbers[i]);
+        }
+        addItemToListWidget(m_voiceNumberList, hbTrId("txt_phone_list_enter_number_manually"), KOtherNumber );
+        dialog->setContentWidget(m_voiceNumberList);
+        
+        // Connect list item activation signal to close the popup
+        QObject::connect(m_voiceNumberList, 
+                SIGNAL(activated(HbListWidgetItem*)), 
+                dialog, 
+                SLOT(close()), 
+                Qt::UniqueConnection);
+        
+        // Sets the "Cancel"-action/button
+        HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
+        dialog->addAction(cancelAction);
+        QObject::connect(cancelAction, 
+                SIGNAL(triggered(bool)), 
+                dialog, 
+                SLOT(close()));
+        
+        dialog->open(this, SLOT(voiceNumberListQueryClosed(HbAction *))); 
+        
+        QPointer<QObject> guard = this;
+        m_eventLoop->exec(); 
+        if (guard.isNull()) {
+            requestOK = false;
+        } else if (!m_divertNumber.isEmpty()) {
+            result = m_divertNumber;
+            requestOK = true;
+        }    
     }
-    addItemToListWidget(list, hbTrId("txt_phone_list_enter_number_manually"), KOtherNumber );
-    // Connect list item activation signal to close the popup
-    connect(
-        list, SIGNAL(activated(HbListWidgetItem*)), 
-        dialog, SLOT(close()));
-    // Sets the "Cancel"-action/button
-    HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
-    dialog->setPrimaryAction(cancelAction);
-    dialog->setContentWidget(list);
-    // Launch popup and handle the response
-    if (dialog->exec() != cancelAction) {
-        // Update the view with selected text
-        QString data = list->currentItem()->data().toString();
-        if (data == KVoiceMail) {
-            m_callDivertingWrapper->getVoiceMailBoxNumber(result);
-            if (result.size()) {
-                // voicemailboxnumber found
-                m_divertToVoiceMailBox = true;
-                requestOK = true;
-            }
-        } else if (data == KOtherNumber) {
-            requestOK = popUpNumberEditor(hbTrId("txt_phone_info_number"), result);
-        } else {
-            //TODO if matched contact name not work
-            result = data;
-            requestOK = true;
-        }
-    }
-    else {
-        DPRINT << ": Cancel";
-    }
-    disconnect(
-        list, SIGNAL(activated(HbListWidgetItem*)), 
-        dialog, SLOT(close()));
-    delete dialog;
     
+    DPRINT << ": OUT : result:" << result;
     DPRINT << ": OUT : requestOK :" << requestOK;
     return requestOK;
 }
 
 /*!
+    CpDivertPluginGroup::voiceNumberListQueryClosed()
+*/
+void CpDivertPluginGroup::voiceNumberListQueryClosed(HbAction* action)
+{
+    DPRINT << ": IN";
+    
+    bool exitLoop(true); 
+    
+    // Enter if cancel wasn't selected 
+    if (!action) {  
+        // Update the view with selected text
+        QString data = m_voiceNumberList->currentItem()->data().toString();
+        DPRINT << ": data: " << data; 
+        
+        if (data == KVoiceMail) {
+            m_callDivertingWrapper->getVoiceMailBoxNumber(m_divertNumber);
+            if (!m_divertNumber.isEmpty()) {
+                DPRINT << ": voicemailboxnumber found";
+            }
+            
+            m_eventLoop->quit();
+            
+        } else if (data == KOtherNumber) {
+                // Event loop is terminated by popUpNumberEditorClosed
+                exitLoop = false;
+                
+                DPRINT << ": open popUpNumberEditor";                
+                popUpNumberEditor(hbTrId("txt_phone_info_number"), m_divertNumber);
+        } else {
+            //TODO if matched contact name not work
+            DPRINT << ": else";
+            m_divertNumber = data;
+        }        
+        
+    }
+    
+    if (exitLoop) {
+        DPRINT << ": quit eventloop";
+        m_eventLoop->quit();
+    }
+    
+    DPRINT << ": OUT";
+}
+
+/*!
   CpDivertPluginGroup::popUpNumberEditor.
  */
-bool CpDivertPluginGroup::popUpNumberEditor(
+void CpDivertPluginGroup::popUpNumberEditor(
         const QString& heading, QString& result)
 {
     DPRINT << ": IN";
 
-    bool requestOK(false);
+    Q_UNUSED(result); 
+    
     HbDialog *dialog = createDialog(heading);
-    HbLineEdit *editor = new HbLineEdit(dialog);
-    HbEditorInterface editorInterface(editor);
-    editorInterface.setUpAsPhoneNumberEditor();
-    dialog->setContentWidget(editor);
+
+    m_voiceNumberEditor = new HbLineEdit(dialog);
+    m_voiceNumberEditor->setInputMethodHints(Qt::ImhDialableCharactersOnly);    
+    dialog->setContentWidget(m_voiceNumberEditor);
+    
     HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok"));
     dialog->addAction(okAction);
+    
     HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
-    dialog->setSecondaryAction(cancelAction);
+    dialog->addAction(cancelAction);
+    
+    dialog->open(this, SLOT(popUpNumberEditorClosed(HbAction*)));
     
-    HbAction *resultAction = dialog->exec();
-    if (resultAction == cancelAction) {
-        DPRINT << ": canceled";
+    DPRINT << ": OUT";
+}
+
+/*!
+  CpDivertPluginGroup::popUpNumberEditorClosed.
+ */
+void CpDivertPluginGroup::popUpNumberEditorClosed(HbAction* action)
+{
+    DPRINT << ": IN";
+    
+    bool cancelled(true); 
+    if (action) {
+        if (action->text() == hbTrId("txt_common_button_ok")) 
+            {
+            cancelled = false;  
+            DPRINT << ": ok selected";
+            }
     }
-    else {
-        result = editor->text();
-        DPRINT << ": number "
-            << result;
-        if (result.count()) {
-            requestOK = true;
-        }
-        else {
-            CpPhoneNotes::instance()->showGlobalNote(m_activeNoteId, 
-                hbTrId("txt_phone_info_invalid_phone_number"), HbMessageBox::MessageTypeWarning);
-        }
+    
+    if (!cancelled) {
+        m_divertNumber = m_voiceNumberEditor->text();
+            DPRINT << ": m_divertNumber "
+                << m_divertNumber;
+            if (m_divertNumber.isEmpty()) {
+                CpPhoneNotes::instance()->showGlobalNote(m_activeNoteId, 
+                    hbTrId("txt_phone_info_invalid_phone_number"), HbMessageBox::MessageTypeWarning);
+            }
     }
-    delete dialog;
     
-    DPRINT << ": OUT : requestOK :" << requestOK;
-    return requestOK;
+    if (m_voiceNumberEditor) {
+        delete m_voiceNumberEditor;
+        m_voiceNumberEditor = NULL; 
+    } 
+    
+    m_eventLoop->quit();
+    DPRINT << ": OUT";
 }
 
 /*!
@@ -845,50 +902,80 @@
 /*!
   CpDivertPluginGroup::popUpTimerQuery.
  */
-bool CpDivertPluginGroup::popUpTimerQuery(int &timeout) const
+bool CpDivertPluginGroup::popUpTimerQuery(int &timeout) 
 {
     DPRINT << ": IN";
+    Q_UNUSED(timeout); 
     
     bool requestOK(false);
-    HbDialog *dialog = createDialog(hbTrId("Time out"));
-    HbListWidget *list = new HbListWidget(dialog);
-    addItemToListWidget(list, hbTrId("5 second"), 5 );
-    addItemToListWidget(list, hbTrId("10 second"), 10);
-    addItemToListWidget(list, hbTrId("15 second"), 15);
-    addItemToListWidget(list, hbTrId("20 second"), 20);
-    addItemToListWidget(list, hbTrId("25 second"), 25);
-    addItemToListWidget(list, hbTrId("30 second"), 30);
-    // Connect list item activation signal to close the popup
-    connect(
-        list, SIGNAL(activated(HbListWidgetItem*)), 
-        dialog, SLOT(close()));
-    // Sets the "Cancel"-action/button
-    HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
-    dialog->setPrimaryAction(cancelAction);
-    dialog->setContentWidget(list);
-    // Launch popup and handle the response
-    if (dialog->exec() != cancelAction) {
-        // Update the view with selected text
-        if (list->currentItem()) {
-            timeout = list->currentItem()->data().toInt();
+    m_divertTimeout = 0; 
+    
+    if (!m_eventLoop->isRunning()) {
+        HbDialog *dialog = createDialog(hbTrId("txt_phone_title_delay"));
+        
+        if (m_popupTimerList) {
+            m_popupTimerList = new HbListWidget(dialog);
+            
+            addItemToListWidget(m_popupTimerList, hbTrId("txt_phone_list_5_seconds"), 5 );
+            addItemToListWidget(m_popupTimerList, hbTrId("txt_phone_list_10_seconds"), 10);
+            addItemToListWidget(m_popupTimerList, hbTrId("txt_phone_list_15_seconds"), 15);
+            addItemToListWidget(m_popupTimerList, hbTrId("txt_phone_list_20_seconds"), 20);
+            addItemToListWidget(m_popupTimerList, hbTrId("txt_phone_list_25_seconds"), 25);
+            addItemToListWidget(m_popupTimerList, hbTrId("txt_phone_list_30_seconds"), 30);
+            
+            // Connect list item activation signal to close the popup
+            QObject::connect(
+                    m_popupTimerList, SIGNAL(activated(HbListWidgetItem*)), 
+                    dialog, SLOT(close()), 
+                    Qt::UniqueConnection);
         }
-        requestOK = true;
-    }
-    else {
-        DPRINT << ": Cancel";
+        
+        // Sets the "Cancel"-action/button
+        HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
+        dialog->addAction(cancelAction);
+        dialog->setContentWidget(m_popupTimerList);
+    
+        dialog->open(this, SLOT(popUpTimerQueryClosed(HbAction *))); 
+        
+        QPointer<QObject> guard = this;
+        m_eventLoop->exec(); 
+        if (guard.isNull()) {
+            requestOK = false;
+        } else if (m_divertTimeout > 0) {
+            requestOK = true;
+        }
     }
-
-    disconnect(
-        list, SIGNAL(activated(HbListWidgetItem*)), 
-        dialog, SLOT(close()));
-    delete dialog;
     
     DPRINT << ": OUT : requestOK :" << requestOK;
     return requestOK;
 }
 
 /*!
-  CpDivertPluginGroup::setbscParam.
+  CpDivertPluginGroup::popUpTimerQueryClosed.
+ */
+void CpDivertPluginGroup::popUpTimerQueryClosed(HbAction* action)
+{
+    // If not cancel action selected 
+    if (!action) {
+        // Update the view with selected text
+        if (m_popupTimerList->currentItem()) {
+            m_divertTimeout = 
+                    m_popupTimerList->currentItem()->data().toInt();
+        }
+    }
+    else {
+        DPRINT << ": Cancel";
+    }
+
+    DPRINT << ": quit eventloop";
+    m_eventLoop->quit();
+
+    DPRINT << ": OUT: timeout: " << m_divertTimeout;
+}
+
+
+/*!
+  CpDivertPluginGroup::bscParam.
  */
 int CpDivertPluginGroup::bscParam(PsServiceGroup serviceGroup)
 {
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertplugingroup.h	Fri May 14 15:51:57 2010 +0300
@@ -34,6 +34,8 @@
 class PSCallDivertingCommand;
 class HbListWidget;
 class CpDivertItemData;
+class QEventLoop; 
+class HbLineEdit; 
 
 using namespace CpTelephonyUtils;
 
@@ -101,6 +103,11 @@
      Slot which handles item updating when it is needed.
      */
     void itemShown(const QModelIndex& item);
+    
+    void voiceNumberListQueryClosed(HbAction* action);
+    void popUpNumberEditorClosed(HbAction* action);
+    void popUpTimerQueryClosed(HbAction* action);
+    
 private:     
     
     /**
@@ -133,7 +140,7 @@
     /**
      Show to user number query.
      */
-    bool popUpNumberEditor(
+    void popUpNumberEditor(
             const QString& heading, QString& result);
     
     
@@ -145,7 +152,7 @@
     /**
      Show to user divert time out query list.
      */
-    bool popUpTimerQuery(int &timeout) const;
+    bool popUpTimerQuery(int &timeout);
     
     /**
      Desides which bsc parameters to use.
@@ -245,7 +252,7 @@
     CpDivertItemData *m_DataItemVideoIfNotAnswered;
     CpDivertItemData *m_DataItemVideoIfOutOfReach;
     CpDivertItemData *m_DataItemVideoIfNotAvailable;
-    
+
     int m_activeNoteId;
     int m_activeProgressNoteId;
 
@@ -258,8 +265,17 @@
     QQueue<CpDivertRequestQueueItem> m_divertRequestQueue;
 
     CpItemDataHelper &m_helper;
+    
+    int m_divertTimeout;
+    
+    HbListWidget *m_voiceNumberList;
+    HbListWidget *m_popupTimerList; 
+    QString m_divertNumber; 
+    HbLineEdit *m_voiceNumberEditor; 
+    QEventLoop *m_eventLoop; 
+    
 };
 
 #endif // CPDIVERTPLUGINGROUP_H
 
-// end of file
+
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertselectioncustomitem.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertselectioncustomitem.cpp	Fri May 14 15:51:57 2010 +0300
@@ -22,13 +22,15 @@
 #include <cppluginlogging.h>
 
 
+/*!
+  CpDivertSelectionCustomitem::CpDivertSelectionCustomitem.
+ */
 CpDivertSelectionCustomitem::CpDivertSelectionCustomitem(
         QGraphicsItem *parent /**=0*/,
         Qt::WindowFlags wFlags /**=0*/):
         HbWidget(parent, wFlags),
         layout(NULL),
         checkbox(NULL),
-        //numberValueLabel(NULL),
         timeoutLabel(NULL),
         timeoutValueLabel(NULL),
         m_state(Disabled)
@@ -42,18 +44,11 @@
     layout->setRowMaximumHeight(1,0);
 
     checkbox = new HbCheckBox(this);
-    checkbox->setBackgroundItem(HbStyle::P_DataItem_background);
-
     HbStyle::setItemName(checkbox, "dataItem_ContentWidget");
 
     layout->addItem(checkbox, 0, 0, 1, 2);
-
     connect(checkbox,SIGNAL(clicked()), this, SIGNAL(clicked()));
 
-    //numberValueLabel = new HbLabel(this);
-    //layout->addItem(numberValueLabel, 0, 1);
-    //connect(numberValueLabel,SIGNAL(clicked()), this, SIGNAL(clicked()));
-
     timeoutLabel = new HbLabel(this);
     HbStyle::setItemName(timeoutLabel, "dataItem_ContentWidget");
     timeoutLabel->setAlignment(Qt::AlignRight);
@@ -61,7 +56,6 @@
 
     timeoutLabel->hide();
     timeoutValueLabel = new HbLabel(this);
-    timeoutValueLabel->setBackgroundItem(HbStyle::P_DataItem_background);
     HbStyle::setItemName(timeoutValueLabel, "dataItem_ContentWidget");
     timeoutValueLabel->hide();
     layout->addItem(timeoutValueLabel, 1, 1);
@@ -69,42 +63,69 @@
     setLayout(layout);
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::~CpDivertSelectionCustomitem. 
+ */
 CpDivertSelectionCustomitem::~CpDivertSelectionCustomitem()
 {
     DPRINT;
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::number.
+ */
 const QString CpDivertSelectionCustomitem::number() const
 {
     DPRINT;
     return checkbox->text();
 }
 
-void CpDivertSelectionCustomitem::setNumber( const QString& number )
+
+/*!
+  CpDivertSelectionCustomitem::setNumber.
+ */
+void CpDivertSelectionCustomitem::setNumber(const QString& number)
 {
-    DPRINT << number;
-    
+    DPRINT << number;    
     checkbox->setText(number);
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::timeout.
+ */
 int CpDivertSelectionCustomitem::timeout() const
 {
     DPRINT;
     return timeoutValueLabel->plainText().toInt();
 }
 
-void CpDivertSelectionCustomitem::setTimeout( int timeout)
+
+/*!
+  CpDivertSelectionCustomitem::setTimeout.
+ */
+void CpDivertSelectionCustomitem::setTimeout(int timeout)
 {
     DPRINT << timeout;
     timeoutValueLabel->setPlainText(QString::number(timeout));
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::timeoutText.
+ */
 const QString CpDivertSelectionCustomitem::timeoutText() const
 {
     DPRINT;
     return timeoutLabel->plainText();
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::setTimeoutText.
+ */
 void CpDivertSelectionCustomitem::setTimeoutText( const QString& text )
 {
     DPRINT << text;
@@ -120,22 +141,31 @@
     }
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::state.
+ */
 int CpDivertSelectionCustomitem::state() const
 {
     DPRINT << m_state;
-    
     return m_state;
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::setState.
+ */
 void CpDivertSelectionCustomitem::setState(int state)
 {
     DPRINT << state;
-    
     m_state = state;
-    
     updateCheckState();
 }
 
+
+/*!
+  CpDivertSelectionCustomitem::updateCheckState.
+ */
 void CpDivertSelectionCustomitem::updateCheckState()
 {
     DPRINT << m_state;
@@ -155,3 +185,5 @@
             break;
     }
 }
+
+// End of File. 
--- a/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertselectioncustomitem.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/src/cpdivertselectioncustomitem.h	Fri May 14 15:51:57 2010 +0300
@@ -75,7 +75,6 @@
 private:
     QGraphicsGridLayout *layout;
     HbCheckBox *checkbox;
-    //HbLabel *numberValueLabel;
     HbLabel *timeoutLabel;
     HbLabel *timeoutValueLabel;
     int m_state;
--- a/phonesettings/cpphonesettingsplugins/eabi/cptelephonyutilsu.def	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/eabi/cptelephonyutilsu.def	Fri May 14 15:51:57 2010 +0300
@@ -13,50 +13,66 @@
 	_ZN12CpPhoneNotes21launchNextNoteIfReadyEv @ 12 NONAME
 	_ZN12CpPhoneNotes21showCallDivertDetailsERK21PSCallDivertingStatus @ 13 NONAME
 	_ZN12CpPhoneNotes22activeNoteAboutToCloseEv @ 14 NONAME
-	_ZN12CpPhoneNotes22showGlobalProgressNoteERiRK7QString @ 15 NONAME
-	_ZN12CpPhoneNotes23showPasswordQueryDialogERK7QStringRK10QValidatoriRS0_Rb @ 16 NONAME
-	_ZN12CpPhoneNotes26handleProgressNoteCanceledEv @ 17 NONAME
-	_ZN12CpPhoneNotes8instanceEv @ 18 NONAME
-	_ZN12CpPhoneNotesC1Ev @ 19 NONAME
-	_ZN12CpPhoneNotesC2Ev @ 20 NONAME
-	_ZN12CpPhoneNotesD0Ev @ 21 NONAME
-	_ZN12CpPhoneNotesD1Ev @ 22 NONAME
-	_ZN12CpPhoneNotesD2Ev @ 23 NONAME
-	_ZN17CpSettingsWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 24 NONAME
-	_ZN17CpSettingsWrapper11qt_metacastEPKc @ 25 NONAME
-	_ZN17CpSettingsWrapper16showCallDurationEv @ 26 NONAME
-	_ZN17CpSettingsWrapper16staticMetaObjectE @ 27 NONAME DATA 16
-	_ZN17CpSettingsWrapper18readSoftRejectTextER7QStringRb @ 28 NONAME
-	_ZN17CpSettingsWrapper19getStaticMetaObjectEv @ 29 NONAME
-	_ZN17CpSettingsWrapper19setShowCallDurationEb @ 30 NONAME
-	_ZN17CpSettingsWrapper19writeSoftRejectTextERK7QStringb @ 31 NONAME
-	_ZN17CpSettingsWrapper51isFeatureCallWaitingDistiquishNotProvisionedEnabledEv @ 32 NONAME
-	_ZN17CpSettingsWrapperC1EP7QObject @ 33 NONAME
-	_ZN17CpSettingsWrapperC2EP7QObject @ 34 NONAME
-	_ZN17CpSettingsWrapperD0Ev @ 35 NONAME
-	_ZN17CpSettingsWrapperD1Ev @ 36 NONAME
-	_ZN17CpSettingsWrapperD2Ev @ 37 NONAME
-	_ZN5Tools11qt_metacallEN11QMetaObject4CallEiPPv @ 38 NONAME
-	_ZN5Tools11qt_metacastEPKc @ 39 NONAME
-	_ZN5Tools13voipSupportedEv @ 40 NONAME
-	_ZN5Tools14videoSupportedEv @ 41 NONAME
-	_ZN5Tools16staticMetaObjectE @ 42 NONAME DATA 16
-	_ZN5Tools19getStaticMetaObjectEv @ 43 NONAME
-	_ZN5Tools20errorCodeTextMappingEiR7QString @ 44 NONAME
-	_ZNK12CpPhoneNotes10metaObjectEv @ 45 NONAME
-	_ZNK12CpPhoneNotes17formatPhoneNumberE7QString @ 46 NONAME
-	_ZNK12CpPhoneNotes21basicServiceGroupNameEN16CpTelephonyUtils18BasicServiceGroupsE @ 47 NONAME
-	_ZNK17CpSettingsWrapper10metaObjectEv @ 48 NONAME
-	_ZNK17CpSettingsWrapper14isPhoneOfflineEv @ 49 NONAME
-	_ZNK17CpSettingsWrapper15readCenrepValueElm @ 50 NONAME
-	_ZNK17CpSettingsWrapper16readCenrepStringElm @ 51 NONAME
-	_ZNK17CpSettingsWrapper16writeCenrepValueElmRK8QVariant @ 52 NONAME
-	_ZNK17CpSettingsWrapper23numberGroupingSupportedEv @ 53 NONAME
-	_ZNK5Tools10metaObjectEv @ 54 NONAME
-	_ZTI12CpPhoneNotes @ 55 NONAME
-	_ZTI17CpSettingsWrapper @ 56 NONAME
-	_ZTI5Tools @ 57 NONAME
-	_ZTV12CpPhoneNotes @ 58 NONAME
-	_ZTV17CpSettingsWrapper @ 59 NONAME
-	_ZTV5Tools @ 60 NONAME
+	_ZN12CpPhoneNotes22passwordQueryCompletedE7QStringb @ 15 NONAME
+	_ZN12CpPhoneNotes22showGlobalProgressNoteERiRK7QString @ 16 NONAME
+	_ZN12CpPhoneNotes23showPasswordQueryDialogERK7QStringRK10QValidatori @ 17 NONAME
+	_ZN12CpPhoneNotes26handleProgressNoteCanceledEv @ 18 NONAME
+	_ZN12CpPhoneNotes27finishedPasswordQueryDialogEP8HbAction @ 19 NONAME
+	_ZN12CpPhoneNotes8instanceEv @ 20 NONAME
+	_ZN12CpPhoneNotesC1Ev @ 21 NONAME
+	_ZN12CpPhoneNotesC2Ev @ 22 NONAME
+	_ZN12CpPhoneNotesD0Ev @ 23 NONAME
+	_ZN12CpPhoneNotesD1Ev @ 24 NONAME
+	_ZN12CpPhoneNotesD2Ev @ 25 NONAME
+	_ZN17CpSettingsWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 26 NONAME
+	_ZN17CpSettingsWrapper11qt_metacastEPKc @ 27 NONAME
+	_ZN17CpSettingsWrapper16showCallDurationEv @ 28 NONAME
+	_ZN17CpSettingsWrapper16staticMetaObjectE @ 29 NONAME DATA 16
+	_ZN17CpSettingsWrapper18readSoftRejectTextER7QStringRb @ 30 NONAME
+	_ZN17CpSettingsWrapper19getStaticMetaObjectEv @ 31 NONAME
+	_ZN17CpSettingsWrapper19setShowCallDurationEb @ 32 NONAME
+	_ZN17CpSettingsWrapper19writeSoftRejectTextERK7QStringb @ 33 NONAME
+	_ZN17CpSettingsWrapper51isFeatureCallWaitingDistiquishNotProvisionedEnabledEv @ 34 NONAME
+	_ZN17CpSettingsWrapperC1EP7QObject @ 35 NONAME
+	_ZN17CpSettingsWrapperC2EP7QObject @ 36 NONAME
+	_ZN17CpSettingsWrapperD0Ev @ 37 NONAME
+	_ZN17CpSettingsWrapperD1Ev @ 38 NONAME
+	_ZN17CpSettingsWrapperD2Ev @ 39 NONAME
+	_ZN5Tools11qt_metacallEN11QMetaObject4CallEiPPv @ 40 NONAME
+	_ZN5Tools11qt_metacastEPKc @ 41 NONAME
+	_ZN5Tools13voipSupportedEv @ 42 NONAME
+	_ZN5Tools14videoSupportedEv @ 43 NONAME
+	_ZN5Tools16staticMetaObjectE @ 44 NONAME DATA 16
+	_ZN5Tools19getStaticMetaObjectEv @ 45 NONAME
+	_ZN5Tools20errorCodeTextMappingEiR7QString @ 46 NONAME
+	_ZNK12CpPhoneNotes10metaObjectEv @ 47 NONAME
+	_ZNK12CpPhoneNotes17formatPhoneNumberE7QString @ 48 NONAME
+	_ZNK12CpPhoneNotes21basicServiceGroupNameEN16CpTelephonyUtils18BasicServiceGroupsE @ 49 NONAME
+	_ZNK17CpSettingsWrapper10metaObjectEv @ 50 NONAME
+	_ZNK17CpSettingsWrapper14isPhoneOfflineEv @ 51 NONAME
+	_ZNK17CpSettingsWrapper15readCenrepValueElm @ 52 NONAME
+	_ZNK17CpSettingsWrapper16readCenrepStringElm @ 53 NONAME
+	_ZNK17CpSettingsWrapper16writeCenrepValueElmRK8QVariant @ 54 NONAME
+	_ZNK17CpSettingsWrapper23numberGroupingSupportedEv @ 55 NONAME
+	_ZNK5Tools10metaObjectEv @ 56 NONAME
+	_ZTI12CpPhoneNotes @ 57 NONAME
+	_ZTI17CpSettingsWrapper @ 58 NONAME
+	_ZTI5Tools @ 59 NONAME
+	_ZTV12CpPhoneNotes @ 60 NONAME
+	_ZTV17CpSettingsWrapper @ 61 NONAME
+	_ZTV5Tools @ 62 NONAME
+	_ZN19CpPhoneLocalisation11qt_metacallEN11QMetaObject4CallEiPPv @ 63 NONAME
+	_ZN19CpPhoneLocalisation11qt_metacastEPKc @ 64 NONAME
+	_ZN19CpPhoneLocalisation16staticMetaObjectE @ 65 NONAME DATA 16
+	_ZN19CpPhoneLocalisation17installTranslatorENS_17TranslationFileIdE @ 66 NONAME
+	_ZN19CpPhoneLocalisation17removeTranslatorsEv @ 67 NONAME
+	_ZN19CpPhoneLocalisation19getStaticMetaObjectEv @ 68 NONAME
+	_ZN19CpPhoneLocalisationC1EP7QObject @ 69 NONAME
+	_ZN19CpPhoneLocalisationC2EP7QObject @ 70 NONAME
+	_ZN19CpPhoneLocalisationD0Ev @ 71 NONAME
+	_ZN19CpPhoneLocalisationD1Ev @ 72 NONAME
+	_ZN19CpPhoneLocalisationD2Ev @ 73 NONAME
+	_ZNK19CpPhoneLocalisation10metaObjectEv @ 74 NONAME
+	_ZTI19CpPhoneLocalisation @ 75 NONAME
+	_ZTV19CpPhoneLocalisation @ 76 NONAME
 
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.cpp	Fri May 14 15:51:57 2010 +0300
@@ -14,29 +14,52 @@
  * Description:  
  *
  */
-
 #include <cpsettingformentryitemdataimpl.h>
 #include <cpitemdatahelper.h>
 #include "cptelephonyplugin.h"
 #include "cptelephonypluginview.h"
 #include "cppluginlogging.h"
 
-CpTelephonyPlugin::CpTelephonyPlugin() : QObject(0)
+
+/*!
+    CpTelephonyPlugin::CpTelephonyPlugin() 
+*/
+CpTelephonyPlugin::CpTelephonyPlugin() : 
+    QObject(0),
+    m_localisation(0)
 {
     // Install plugin specific msg handler
     INSTALL_TRACE_MSG_HANDLER;  
+    DPRINT << ": IN";
+    
+    // Set scoped pointer 
+    m_localisation.reset(new CpPhoneLocalisation(this)); 
+    
+    // Install required translations
+    m_localisation->installTranslator(
+            CpPhoneLocalisation::
+            TranslationFileCommon);
+    m_localisation->installTranslator(
+            CpPhoneLocalisation::
+            TranslationFileTelephoneCp);
 
-    DPRINT; 
+    DPRINT << ": OUT"; 
 }
 
+/*!
+    CpTelephonyPlugin::~CpTelephonyPlugin() 
+*/
 CpTelephonyPlugin::~CpTelephonyPlugin()
 {
     DPRINT; 
-
+    
     // Uninstall plugin specific msg handler
     UNINSTALL_TRACE_MSG_HANDLER; 
 }
 
+/*!
+    CpTelephonyPlugin::createSettingFormItemData() const
+*/
 QList<CpSettingFormItemData*> CpTelephonyPlugin::createSettingFormItemData(
         CpItemDataHelper &itemDataHelper) const
 {
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.h	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonyplugin.h	Fri May 14 15:51:57 2010 +0300
@@ -18,8 +18,10 @@
 #ifndef CPTELEPHONYPLUGIN_H
 #define CPTELEPHONYPLUGIN_H
 
-#include <qobject.h>
+#include <QObject>
+#include <QList>
 #include <cpplugininterface.h>
+#include "cpphonelocalisation.h"
 
 /*!
     \class CpTelephonyPlugin
@@ -43,6 +45,10 @@
      */
     QList<CpSettingFormItemData*> createSettingFormItemData(
             CpItemDataHelper &itemDataHelper) const;
+    
+private: 
+    
+    QScopedPointer<CpPhoneLocalisation> m_localisation; 
 };
 
 #endif /* CPTELEPHONYPLUGIN_H */
--- a/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/telephonyplugin/src/cptelephonypluginview.cpp	Fri May 14 15:51:57 2010 +0300
@@ -18,9 +18,6 @@
 #include "cptelephonypluginview.h"
 #include "cppluginlogging.h"
 #include <QPluginLoader>
-#include <QApplication>
-#include <QLocale>
-#include <QTranslator>
 #include <hbdataformmodel.h>
 #include <cpplugininterface.h>
 #include <cpsettingformitemdata.h>
@@ -28,24 +25,16 @@
 #include <cppluginutility.h>
 #include <cppluginloader.h>
 
+
+/*!
+    CpTelephonyPluginView::CpTelephonyPluginView()
+*/
 CpTelephonyPluginView::CpTelephonyPluginView() : 
     CpBaseSettingView(0,0),
     m_helper(NULL)
 {
     DPRINT << ": IN";
     
-    // Localization file loading
-    QTranslator translator; 
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    DPRINT << ": loading translation: " << QString(path + "telephone_cp_" + lang);
-    bool translatorLoaded = translator.load(path + "telephone_cp_" + lang);
-    DPRINT << ": translator loaded: " << translatorLoaded; 
-    if (translatorLoaded) {
-        qApp->installTranslator(&translator);
-        DPRINT << ": translator installed"; 
-    }
-    
     HbDataForm *form = qobject_cast<HbDataForm*>(widget());
     if (form) {
         HbDataFormModel *model = new HbDataFormModel;
@@ -81,6 +70,9 @@
     DPRINT << ": OUT";
 }
 
+/*!
+    CpTelephonyPluginView::~CpTelephonyPluginView()
+*/
 CpTelephonyPluginView::~CpTelephonyPluginView()
 {
     DPRINT << ": IN";
@@ -90,6 +82,9 @@
     DPRINT << ": OUT";
 }
 
+/*!
+    CpTelephonyPluginView::groupItemFromPlugin()
+*/
 QList<CpSettingFormItemData*> CpTelephonyPluginView::groupItemFromPlugin( const QString& plugin )
 {
     DPRINT << ": IN";
@@ -110,6 +105,9 @@
     return items;
 }
 
+/*!
+    CpTelephonyPluginView::initializeItemDataHelper()
+*/
 CpItemDataHelper* CpTelephonyPluginView::initializeItemDataHelper()
 {
     DPRINT;
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpbarringplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpbarringplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1,4 +1,4 @@
-/* 
+/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -38,6 +38,7 @@
     :CpSettingFormItemData(HbDataFormModelItem::GroupItem, hbTrId("Barring"),0),
     m_helper(helper)
     {
+    
     }
 
 
@@ -55,10 +56,11 @@
 // CpBarringPluginGroup::itemShown
 // -----------------------------------------------------------------------------
 //
-void CpBarringPluginGroup::itemShown(const QModelIndex& item)
-{
-    SMC_MOCK_METHOD1( void, QModelIndex &, item )
-}
+void CpBarringPluginGroup::itemShown( 
+        const QModelIndex & item )
+    {
+    SMC_MOCK_METHOD1( void, const QModelIndex &, item )
+    }
 
 
 // -----------------------------------------------------------------------------
@@ -150,3 +152,29 @@
 {
     SMC_MOCK_METHOD0( void )    
 }
+
+
+// -----------------------------------------------------------------------------
+// CpBarringPluginGroup::completeBarringStateChangeRequestHandling
+// -----------------------------------------------------------------------------
+//
+void CpBarringPluginGroup::completeBarringStateChangeRequestHandling(
+        QString barringPassword,
+        bool okPressed)
+{
+    SMC_MOCK_METHOD2( void, QString, barringPassword, bool, okPressed)
+}
+
+
+// -----------------------------------------------------------------------------
+// CpBarringPluginGroup::changeBarringPasswordPhasesHandling
+// -----------------------------------------------------------------------------
+//
+void CpBarringPluginGroup::changeBarringPasswordPhasesHandling(
+        QString barringPassword,
+        bool okPressed)
+{
+    SMC_MOCK_METHOD2( void, QString, barringPassword, bool, okPressed)
+}
+
+
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpcallsplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpcallsplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -46,9 +46,9 @@
 // CpCallsPluginGroup::showCallDurationStateChanged
 // -----------------------------------------------------------------------------
 //
-void CpCallsPluginGroup::showCallDurationStateChanged( int state )
+void CpCallsPluginGroup::showCallDurationStateChanged( )
     {
-    Q_UNUSED( state )
+
     }
 
 
@@ -66,9 +66,9 @@
 // CpCallsPluginGroup::callWaitingCurrentIndexChanged
 // -----------------------------------------------------------------------------
 //
-void CpCallsPluginGroup::callWaitingCurrentIndexChanged( int index )
+void CpCallsPluginGroup::callWaitingCurrentIndexChanged( )
     {
-    Q_UNUSED( index )
+
     }
 
 
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginform.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginform.cpp	Fri May 14 15:51:57 2010 +0300
@@ -49,6 +49,16 @@
     
     }
 
+
+// -----------------------------------------------------------------------------
+// CpNetworkPluginForm::searchAvailableNetworks
+// -----------------------------------------------------------------------------
+//
+void CpNetworkPluginForm::searchAvailableNetworks(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
 // -----------------------------------------------------------------------------
 // CpNetworkPluginForm::cellularDataUseHomeStateChanged
 // -----------------------------------------------------------------------------
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginview.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpnetworkpluginview.cpp	Fri May 14 15:51:57 2010 +0300
@@ -44,3 +44,13 @@
     }
 
 
+// -----------------------------------------------------------------------------
+// CpNetworkPluginView::SearchAvailableNetworks
+// -----------------------------------------------------------------------------
+//
+void CpNetworkPluginView::SearchAvailableNetworks(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpphonelocalisation.cpp	Fri May 14 15:51:57 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 "cpphonelocalisation.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CpPhoneLocalisation::CpPhoneLocalisation
+// -----------------------------------------------------------------------------
+//
+CpPhoneLocalisation::CpPhoneLocalisation( 
+        QObject * parent )
+    //:
+    //QObject( /*parent*/ )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CpPhoneLocalisation::~CpPhoneLocalisation
+// -----------------------------------------------------------------------------
+//
+CpPhoneLocalisation::~CpPhoneLocalisation(  )
+    {
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// CpPhoneLocalisation::installTranslator
+// -----------------------------------------------------------------------------
+//
+bool CpPhoneLocalisation::installTranslator( 
+        TranslationFileId translationFileId )
+    {
+    SMC_MOCK_METHOD1( bool, TranslationFileId, translationFileId )
+    }
+
+
+// -----------------------------------------------------------------------------
+// CpPhoneLocalisation::removeTranslators
+// -----------------------------------------------------------------------------
+//
+void CpPhoneLocalisation::removeTranslators(  )
+    {
+    SMC_MOCK_METHOD0( void )
+    }
+
+
--- a/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpphonenotes.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/tsrc/mocks/mock_cpphonenotes.cpp	Fri May 14 15:51:57 2010 +0300
@@ -1,4 +1,4 @@
-/* 
+/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -48,15 +48,16 @@
 
     }
 
-
-
 // -----------------------------------------------------------------------------
 // CpPhoneNotes::showGlobalProgressNote
 // -----------------------------------------------------------------------------
 //
-void CpPhoneNotes::showGlobalProgressNote( int & noteId, const QString & text )
+void CpPhoneNotes::showGlobalProgressNote( 
+        int & noteId,
+        const QString & text )
     {
-    SMC_MOCK_METHOD2( void, int &, noteId, const QString &, text )
+    SMC_MOCK_METHOD2( void, int &, noteId, 
+        const QString &, text )
     }
 
 
@@ -79,22 +80,27 @@
 // CpPhoneNotes::showGlobalErrorNote
 // -----------------------------------------------------------------------------
 //
-void CpPhoneNotes::showGlobalErrorNote( int & noteId, int errorCode )
+void CpPhoneNotes::showGlobalErrorNote( 
+        int & noteId,
+        int errorCode )
     {
-    SMC_MOCK_METHOD2( void, int &, noteId, int, errorCode )
+    SMC_MOCK_METHOD2( void, int &, noteId, 
+        int, errorCode )
     }
 
+
 // -----------------------------------------------------------------------------
 // CpPhoneNotes::showBasicServiceList
 // -----------------------------------------------------------------------------
 //
-void CpPhoneNotes::showBasicServiceList(
-    const QString &title, 
-    const QList<unsigned char> &basicServiceGroupIds)
-{
+void CpPhoneNotes::showBasicServiceList( 
+        const QString & title,
+        const QList<unsigned char> & basicServiceGroupIds )
+    {
     SMC_MOCK_METHOD2( void, const QString &, title, 
         const QList<unsigned char> &, basicServiceGroupIds )
-}
+    }
+
 
 // -----------------------------------------------------------------------------
 // CpPhoneNotes::showCallDivertDetails
@@ -111,27 +117,23 @@
 // CpPhoneNotes::showPasswordQueryDialog
 // -----------------------------------------------------------------------------
 //
-void CpPhoneNotes::showPasswordQueryDialog(
-    const QString &title, 
-    const QValidator &validator,
-    int maxPasswordLength,
-    QString &password, 
-    bool &ok)
-{
-    SMC_MOCK_METHOD5( void, 
-        const QString &, title, 
-        const QValidator &, validator,
-        int, maxPasswordLength,
-        QString &, password,
-        bool &, ok)
-}
+void CpPhoneNotes::showPasswordQueryDialog( 
+        const QString & title,
+        const QValidator & validator,
+        int maxPasswordLength )
+    {
+    SMC_MOCK_METHOD3( void, const QString &, title, 
+        const QValidator &, validator, 
+        int, maxPasswordLength )
+    }
 
 
 // -----------------------------------------------------------------------------
 // CpPhoneNotes::cancelNote
 // -----------------------------------------------------------------------------
 //
-void CpPhoneNotes::cancelNote( int noteId )
+void CpPhoneNotes::cancelNote( 
+        int noteId )
     {
     SMC_MOCK_METHOD1( void, int, noteId )
     }
@@ -141,10 +143,21 @@
 // CpPhoneNotes::noteShowing
 // -----------------------------------------------------------------------------
 //
-bool CpPhoneNotes::noteShowing()
-{
+bool CpPhoneNotes::noteShowing(  )
+    {
     SMC_MOCK_METHOD0( bool )
-}
+    }
+
+
+// -----------------------------------------------------------------------------
+// CpPhoneNotes::finishedPasswordQueryDialog
+// -----------------------------------------------------------------------------
+//
+void CpPhoneNotes::finishedPasswordQueryDialog( 
+        HbAction * action )
+    {
+    //SMC_MOCK_METHOD1( void, HbAction *, action )
+    }
 
 
 // -----------------------------------------------------------------------------
@@ -172,7 +185,10 @@
 // -----------------------------------------------------------------------------
 //
 
+
 void CpPhoneNotes::passwordTextChanged()
 {
     SMC_MOCK_METHOD0( void )
 }
+
+
--- a/phoneuis/bubblemanager2/bubblecore/bubblecore.qrc	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/bubblecore.qrc	Fri May 14 15:51:57 2010 +0300
@@ -42,7 +42,6 @@
         <file>themes/icons/hbdefault/scalable/qtg_fr_btn_red_pressed_t.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_fr_btn_red_pressed_tl.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_fr_btn_red_pressed_tr.svg</file>
-        <file>resources/qgn_indi_call_muted.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_large_waiting_call.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_large_active_call.svg</file>
         <file>themes/icons/hbdefault/scalable/qtg_large_end_call.svg</file>
@@ -53,5 +52,13 @@
         <file>themes/icons/hbdefault/scalable/qtg_mono_ciphering_off.svg</file>
         <file alias="bubble_muted_disappear.fxml">effects/bubble_muted_disappear.fxml</file>
         <file alias="bubble_muted_appear.fxml">effects/bubble_muted_appear.fxml</file>
+        <file alias="bubbleheadingwidget.widgetml">xml/bubbleheadingwidget.widgetml</file>
+        <file alias="bubbleimagewidget.css">xml/bubbleimagewidget.css</file>
+        <file alias="bubbleimagewidget.widgetml">xml/bubbleimagewidget.widgetml</file>
+        <file alias="bubbleparticipantlistitem.css">xml/bubbleparticipantlistitem.css</file>
+        <file alias="bubbleparticipantlistitem.widgetml">xml/bubbleparticipantlistitem.widgetml</file>
+        <file alias="bubbleheadingwidget.css">xml/bubbleheadingwidget.css</file>
+        <file alias="qtg_mono_call_diverted.svg">themes/icons/hbdefault/scalable/qtg_mono_call_diverted.svg</file>
+        <file alias="bubble_icon_anim.axml">resources/bubble_icon_anim.axml</file>
     </qresource>
 </RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/resources/bubble_icon_anim.axml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,19 @@
+
+<animations>
+
+<icon name="voice_call_waiting_anim" playmode="loop">
+<frame duration="500">qtg_large_active_call</frame>
+<frame duration="500">qtg_large_waiting_call</frame>
+</icon>
+
+<icon name="video_call_waiting_anim" playmode="loop">
+<frame duration="500">qtg_large_video_call_active</frame>
+<frame duration="500">qtg_large_video_call_waiting</frame>
+</icon>
+
+<icon name="voip_call_waiting_anim" playmode="loop">
+<frame duration="500">qtg_large_voip_call_active</frame>
+<frame duration="500">qtg_large_voip_call_waiting</frame>
+</icon>
+
+</animations>
--- a/phoneuis/bubblemanager2/bubblecore/resources/qgn_indi_call_muted.svg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="150" height="144" viewBox="0 0 150 144">
-<linearGradient id="_11" gradientUnits="userSpaceOnUse" x1="84.45" y1="67.97" x2="106.13" y2="110.68">
-<stop stop-color="#A2C2DD" offset="0.1"/>
-<stop stop-color="#6C83BB" offset="0.71"/>
-<stop stop-color="#003D6D" offset="0.99"/>
-</linearGradient>
-<path fill="url(#_11)" d="M83.164,14.84C64.956,32.663,41.955,63.163,33.039,94.996c0,2.416,0.792,12.457,2.833,17.791 c2.708,4.791,8.667,13.125,19.625,18.916l5.75,1.4c12.125-5.4,22.251-21.482,24.835-27.482c-4.074-9.443-9.529-17.539-14.085-22.5 c2.015-3.047,12.938-20.372,16.126-25.292c5.945,0.601,5.941,0.609,22.084,2.75c14.125-7.5,23.75-27.167,25.207-32.083 c-4.666-12.083-10.75-16.708-19.895-20.521c-1.771-0.625-4.918-1.125-7.662-1.68C96.152,8.075,88.064,11.716,83.164,14.84z"/>
-<linearGradient id="_12" gradientUnits="userSpaceOnUse" x1="73.78" y1="103.6" x2="62.58" y2="85.54">
-<stop stop-color="#45B595" offset="0"/>
-<stop stop-color="#3C977B" offset="1"/>
-</linearGradient>
-<path fill="url(#_12)" d="M80.725,103.01c0.961-1.102-11.463-21.91-11.463-21.91l-10.24,13.914 C59.021,95.014,79.76,104.111,80.725,103.01z"/>
-<linearGradient id="_13" gradientUnits="userSpaceOnUse" x1="116.5" y1="37.6" x2="98.64" y2="6.55">
-<stop stop-color="#C7F9D4" offset="0"/>
-<stop stop-color="#BAF1CD" offset="0.43"/>
-<stop stop-color="#ADEAC7" offset="1"/>
-</linearGradient>
-<path fill="url(#_13)" d="M107.613,6.977c-13.172,1.598-24.102,8.347-24.102,8.347c6.295,9.188,7.264,13.491,7.264,13.491 l38.441-1.801C125.193,8.971,113.592,8.663,107.613,6.977z"/>
-<linearGradient id="_14" gradientUnits="userSpaceOnUse" x1="124.92" y1="24.62" x2="117.23" y2="10.07">
-<stop stop-color="#7ACCA5" offset="0"/>
-<stop stop-color="#ADEAC7" offset="1"/>
-</linearGradient>
-<path fill="url(#_14)" d="M128.672,26.752c-5.613-12.623-13.887-16.85-21.059-19.775c0,0,6.16,0.977,7.59,1.621 c5.219,2.363,13.982,5.855,19.313,19.791C134.518,28.389,128.645,26.783,128.672,26.752z"/>
-<linearGradient id="_15" gradientUnits="userSpaceOnUse" x1="39.2" y1="106.56" x2="87.85" y2="7.47">
-<stop stop-color="#45B595" offset="0"/>
-<stop stop-color="#C7F9D4" offset="1"/>
-</linearGradient>
-<path fill="url(#_15)" d="M83.514,15.322c2.588-0.176,8.107,4.103,8.035,12.16c-20.404,20.521-44.961,55.852-54.9,85.049 c-3.01-8.824-2.807-17.832-2.807-17.832C39.74,71.262,61.168,37.42,83.514,15.322z"/>
-<linearGradient id="_16" gradientUnits="userSpaceOnUse" x1="136.24" y1="27.55" x2="95.99" y2="67.28">
-<stop stop-color="#45B595" offset="0"/>
-<stop stop-color="#3C977B" offset="1"/>
-</linearGradient>
-<path fill="url(#_16)" d="M128.672,26.752c-7.303,16.621-14.561,24.877-25.445,31.988l6.65,1.012 c7.885-3.689,19.951-17.324,24.641-31.363C132.584,27.637,128.672,26.752,128.672,26.752z"/>
-<linearGradient id="_17" gradientUnits="userSpaceOnUse" x1="81.39" y1="101.58" x2="73.12" y2="87.18">
-<stop stop-color="#3C977B" offset="0"/>
-<stop stop-color="#2F6F5C" offset="1"/>
-</linearGradient>
-<path fill="url(#_17)" d="M85.299,105.471c-4.025-9.564-11.68-21.172-16.363-24.17l-0.013,2.645 c3.937,4.721,8.417,11.133,11.651,18.912L85.299,105.471z"/>
-<linearGradient id="_18" gradientUnits="userSpaceOnUse" x1="83.5" y1="-31.54" x2="82.76" y2="51.27">
-<stop stop-color="#ADEAC7" offset="0"/>
-<stop stop-color="#45B595" offset="1"/>
-</linearGradient>
-<path fill="url(#_18)" d="M128.672,26.752c-12.184-3.65-29.689-2.072-37.123,0.73 c-23.646,22.804-49.275,62.535-55.035,84.924c0,0,6.274,11.846,19.104,18.354c12.082-6.301,20.471-17.049,24.998-27.891 c-4.445-2.479-17.41-9.787-17.41-9.787c7.639-8.201,12.141-17.168,24.479-36.093c5.957,0.518,15.543,1.75,15.543,1.75 C115.617,51.148,124.441,38.457,128.672,26.752z"/>
-<linearGradient id="_19" gradientUnits="userSpaceOnUse" x1="61.28" y1="122.87" x2="81.7" y2="111.53">
-<stop stop-color="#45B595" offset="0"/>
-<stop stop-color="#3C977B" offset="1"/>
-</linearGradient>
-<path fill="url(#_19)" d="M80.574,102.857c0,0-12.406,22.221-24.958,27.902l5.521,1.357 c10.063-4.279,20.861-18.699,24.162-26.648L80.574,102.857z"/>
-<linearGradient id="_20" gradientUnits="userSpaceOnUse" x1="58.61" y1="87" x2="35.65" y2="110.87">
-<stop stop-color="#E6EEF4" offset="0"/>
-<stop stop-color="#C03A3A" offset="0.44"/>
-<stop stop-color="#302D02" offset="0.94"/>
-</linearGradient>
-<polygon fill="url(#_20)" points="6.529,66.524 79.668,139.426 87.773,131.303 14.639,58.4 "/>
-</svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblebutton.cpp	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,91 @@
+/*!
+* 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: Custom button
+*
+*/
+
+#include <hbevent.h>
+#include <hbframeitem.h>
+
+#include "bubblebutton.h"
+
+BubbleButton::BubbleButton(QGraphicsItem *parent)
+    : HbPushButton(parent), mButtonType(DefaultButton)
+{
+}
+
+BubbleButton::~BubbleButton()
+{
+}
+
+BubbleButton::BubbleButtonType BubbleButton::buttonType() const
+{
+    return mButtonType;
+}
+
+void BubbleButton::setButtonType(BubbleButtonType type)
+{
+    mButtonType = type;
+}
+
+bool BubbleButton::sceneEvent(QEvent *event)
+{
+    bool result = HbPushButton::sceneEvent(event);
+
+    if (event->type() == QEvent::UngrabMouse) {
+        if (isDown()) {
+            // this is needed in situation, where
+            // longpress launches a dialog (vmbx)
+            // and button release event goes to
+            // dialog (HbPopup grabs mouse).
+            setDown(false);
+            emit clicked();
+            emit released();
+        }
+    }
+
+    return result;
+}
+
+void BubbleButton::updatePrimitives()
+{
+    HbPushButton::updatePrimitives();
+
+    HbFrameItem* frame =
+        qgraphicsitem_cast<HbFrameItem*>(HbWidget::primitive("background"));
+
+    if (!frame) {
+        return;
+    }
+
+    QString graphicsName;
+
+    if (isDown()) {
+        if (buttonType()==GreenButton) {
+            graphicsName = "qtg_fr_btn_green_pressed";
+        } else if (buttonType()==RedButton) {
+            graphicsName = "qtg_fr_btn_red_pressed";
+        }
+    } else {
+        if (buttonType()==GreenButton) {
+            graphicsName = "qtg_fr_btn_green_normal";
+        } else if (buttonType()==RedButton) {
+            graphicsName = "qtg_fr_btn_red_normal";
+        }
+    }
+
+    if (graphicsName.length()) {
+        frame->frameDrawer().setFrameGraphicsName(graphicsName);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblebutton.h	Fri May 14 15:51:57 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: Custom button
+*
+*/
+
+#ifndef BUBBLEBUTTON_H
+#define BUBBLEBUTTON_H
+
+#include "hbpushbutton.h"
+
+class BubbleButton : public HbPushButton
+{
+    Q_OBJECT
+
+    Q_PROPERTY(BubbleButtonType buttonType READ buttonType WRITE setButtonType)
+    Q_ENUMS(BubbleButtonType)
+
+public:
+    enum BubbleButtonType {
+        DefaultButton = 0x1,
+        GreenButton   = 0x2,
+        RedButton     = 0x3  
+    };
+
+public:
+    explicit BubbleButton(QGraphicsItem *parent = 0 );
+    virtual ~BubbleButton( );
+
+    BubbleButtonType buttonType() const;
+    void setButtonType(BubbleButtonType type);
+
+    void updatePrimitives();
+
+protected:
+    bool sceneEvent(QEvent *event);
+
+private:
+    BubbleButtonType mButtonType;
+};
+
+#endif // BUBBLEBUTTON_H
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblebuttonstyle.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Custom style for push buttons.
-*
-*/
-
-#include <hbicon.h>
-#include <hbstyleoptionpushbutton.h>
-#include <hbframeitem.h>
-#include <hbframedrawer.h>
-#include <hbiconitem.h>
-#include <hbcolorscheme.h>
-
-#include "bubblebuttonstyle.h"
-
-BubbleButtonStyle::BubbleButtonStyle() : mButtonColor(Default)
-{
-}
-
-BubbleButtonStyle::~BubbleButtonStyle() 
-{
-}
-
-void BubbleButtonStyle::setButtonColor(ButtonColor color)
-{
-    mButtonColor = color;
-}
-
-void BubbleButtonStyle::updatePrimitive(
-    QGraphicsItem *item,
-    HbStyle::Primitive primitive,
-    const QStyleOption *option ) const
-{
-    switch(primitive){
-    case P_PushButton_background:{
-        const HbStyleOptionPushButton *opt = 
-            qstyleoption_cast<const HbStyleOptionPushButton *>(option);
-        HbFrameItem *frameItem = qgraphicsitem_cast<HbFrameItem*>( item );
-        if(!frameItem)
-            return;
-
-        frameItem->setZValue(-1.0);
-        if(opt->backgroundFrameDrawer &&!(opt->backgroundFrameDrawer->isNull())) {
-            frameItem->setFrameDrawer( (opt->backgroundFrameDrawer));
-        } else {
-            QString frameGraphicsName;
-            QIcon::Mode mode = QIcon::Disabled;
-            QIcon::State state = QIcon::Off;
-            if (opt->state & QStyle::State_Enabled)
-                mode = QIcon::Normal;
-            if (opt->state & QStyle::State_Active)
-                mode = QIcon::Active;
-            if (opt->state & QStyle::State_Selected)
-                mode = QIcon::Selected;
-            if (opt->state & QStyle::State_On)
-                state = QIcon::On;
-
-            if (mode == QIcon::Disabled && state == QIcon::Off) {
-                frameGraphicsName = "qtg_fr_btn_disabled";
-            } else if (mode == QIcon::Normal && state == QIcon::On) {
-                if (mButtonColor==Green) {
-                    frameGraphicsName = "qtg_fr_btn_green_pressed";
-                } else if (mButtonColor==Red) {
-                    frameGraphicsName = "qtg_fr_btn_red_pressed";
-                } else {
-                    frameGraphicsName = "qtg_fr_btn_pressed";
-                }
-            } else if (mode == QIcon::Selected && state == QIcon::Off) {
-                frameGraphicsName = "qtg_fr_btn_highlight";
-            } else {
-                if (mButtonColor==Green) {
-                    frameGraphicsName = "qtg_fr_btn_green_normal";
-                } else if (mButtonColor==Red) {
-                    frameGraphicsName = "qtg_fr_btn_red_normal";
-                } else {
-                    frameGraphicsName = "qtg_fr_btn_normal";
-                }
-            }
-
-            frameItem->frameDrawer().setFrameGraphicsName(frameGraphicsName);
-            if (!opt->background.isNull()) {
-                QString customName = opt->background.iconName(mode, state);
-                frameItem->frameDrawer().setFrameGraphicsName(customName);
-                frameItem->setGeometry(opt->rect);
-                frameItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-                break;
-            }
-            frameItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        }
-
-        frameItem->setGeometry(opt->rect);
-        }
-        break;
-
-    case P_PushButton_icon:
-        {
-            HbStyle::updatePrimitive(item,primitive,option);
-
-            HbIconItem *iconItem = static_cast<HbIconItem*>(item);
-
-            if (iconItem) {
-                if (mButtonColor==Green || mButtonColor==Red) {
-                    iconItem->setColor(Qt::white);
-                } else {
-                    QColor color;
-                    color = HbColorScheme::color("qtc_button_normal");
-                    if (color.isValid()) {
-                        iconItem->setColor(color);
-                    }
-                }
-            }
-        }
-        break;
-
-    default:
-        HbStyle::updatePrimitive(item,primitive,option);
-        break;
-    } // switch
-}
-
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblebuttonstyle.h	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Custom style for push buttons.
-*
-*/
-
-#ifndef BUBBLEBUTTONSTYLE_H_
-#define BUBBLEBUTTONSTYLE_H_
-
-#include <hbstyle.h>
-
-class BubbleButtonStyle : public HbStyle
-{
-public:
-    enum ButtonColor
-    {
-        Default,
-        Green,
-        Red,
-    };
-
-public:
-    explicit BubbleButtonStyle();
-    virtual ~BubbleButtonStyle();
-
-    void setButtonColor(ButtonColor color);
-
-    void updatePrimitive(
-        QGraphicsItem *item,
-        HbStyle::Primitive primitive,
-        const QStyleOption *option ) const;
-
-protected:
-    ButtonColor mButtonColor;
-};
-
-#endif /* BUBBLEBUTTONSTYLE_H_ */
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -17,7 +17,6 @@
 
 #include <QtGui>
 #include <hbaction.h>
-#include <hbpushbutton.h>
 #include <hbtextitem.h>
 #include <hblabel.h>
 #include <hblistview.h>
@@ -27,9 +26,9 @@
 #include "bubbleconferencehandler.h"
 #include "bubbleconferenceheader.h"
 #include "bubbleutils.h"
-#include "bubblebuttonstyle.h"
 #include "bubbleparticipantlistitem.h"
 #include "bubbleparticipantlistmodel.h"
+#include "bubblebutton.h"
 
 static const int BUBBLE_SELECTION_TIMEOUT = 3000;
 
@@ -50,13 +49,13 @@
     mTimerLabel->setAlignment(Qt::AlignLeft);
 
     mButtonCenter =
-        qobject_cast<HbPushButton*>(widget(BubbleWidgetManager::CenterButton));
+        qobject_cast<BubbleButton*>(widget(BubbleWidgetManager::CenterButton));
     Q_ASSERT(mButtonCenter);
     mButtonLeft =
-        qobject_cast<HbPushButton*>(widget(BubbleWidgetManager::LeftButton));
+        qobject_cast<BubbleButton*>(widget(BubbleWidgetManager::LeftButton));
     Q_ASSERT(mButtonLeft);
     mButtonRight =
-        qobject_cast<HbPushButton*>(widget(BubbleWidgetManager::RightButton));
+        qobject_cast<BubbleButton*>(widget(BubbleWidgetManager::RightButton));
     Q_ASSERT(mButtonRight);
 
     mList =
@@ -70,8 +69,10 @@
             widgetManager.createParticipantListItem());
     Q_ASSERT(mPrototype);
     mList->setItemPrototype(mPrototype);
-    connect(mPrototype,SIGNAL(selectionChanged(int)),
-            SLOT(handleItemSelected(int)));
+    connect(mList->selectionModel(),
+            SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+            this,
+            SLOT(handleItemSelected(QModelIndex,QModelIndex)));
 
     mSelectionTimer = new QTimer(this);
     connect(mSelectionTimer,SIGNAL(timeout()),SLOT(clearSelection()));
@@ -107,6 +108,13 @@
     Q_ASSERT(header.isConference());
     mHeader = static_cast<const BubbleConferenceHeader*>(&header);
 
+    // set actions to item prototype
+    QList<HbAbstractViewItem*> prototypes = mList->itemPrototypes();
+    QList<HbAction*> actions = mHeader->participantListActions();
+    foreach (HbAction* action, actions ) {
+        mPrototype->addAction(action);
+    }
+
     // populate participant list model
     QList<BubbleHeader*> participants = mHeader->headers();
     foreach(BubbleHeader* participant, participants) {
@@ -117,13 +125,6 @@
             !(mHeader->callFlags()&BubbleManagerIF::NoCiphering));
     }
 
-    // set actions to item prototype
-    QList<HbAbstractViewItem*> prototypes = mList->itemPrototypes();
-    QList<HbAction*> actions = mHeader->participantListActions();
-    foreach (HbAction* action, actions ) {
-        mPrototype->addAction(action);
-    }
-
     if (header.timerCost().length()) {
         QColor color;
         color = HbColorScheme::color("list_item_title_normal");
@@ -188,15 +189,21 @@
     mTimerLabel->update();
 }
 
-void BubbleConferenceHandler::handleItemSelected(int row)
+void BubbleConferenceHandler::handleItemSelected(
+    const QModelIndex & current,
+    const QModelIndex & previous )
 {
-    Q_ASSERT( mHeader != 0 );
-    // need to cast constness away
-    BubbleConferenceHeader& mutableHeader =
-        const_cast<BubbleConferenceHeader&>(*mHeader);
-    mutableHeader.setSelectedHeader(mModel->bubbleId(row));
-    mSelectionTimer->stop();
-    mSelectionTimer->start(BUBBLE_SELECTION_TIMEOUT);
+    Q_UNUSED(previous);
+
+    if (current.isValid()) {
+        Q_ASSERT( mHeader != 0 );
+        // need to cast constness away
+        BubbleConferenceHeader& mutableHeader =
+            const_cast<BubbleConferenceHeader&>(*mHeader);
+        mutableHeader.setSelectedHeader(mModel->bubbleId(current.row()));
+        mSelectionTimer->stop();
+        mSelectionTimer->start(BUBBLE_SELECTION_TIMEOUT);
+    }
 }
 
 void BubbleConferenceHandler::clearSelection()
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleconferencehandler.h	Fri May 14 15:51:57 2010 +0300
@@ -23,7 +23,7 @@
 
 class BubbleHeader;
 class HbAction;
-class HbPushButton;
+class BubbleButton;
 class HbLabel;
 class BubbleConferenceHeader;
 class HbListWidgetItem;
@@ -31,6 +31,7 @@
 class HbListView;
 class BubbleParticipantListModel;
 class QTimer;
+class QModelIndex;
 
 class BubbleConferenceHandler : public BubbleHandler
     {
@@ -60,15 +61,16 @@
     void conferenceRemoved();
 
 protected slots:
-    void handleItemSelected(int row);
+    void handleItemSelected( const QModelIndex& current,
+                             const QModelIndex& previous);
     void clearSelection();
 
 protected: //data
     const BubbleConferenceHeader* mHeader;
     HbLabel* mTimerLabel;
-    HbPushButton* mButtonCenter;
-    HbPushButton* mButtonLeft;
-    HbPushButton* mButtonRight;
+    BubbleButton* mButtonCenter;
+    BubbleButton* mButtonLeft;
+    BubbleButton* mButtonRight;
     HbListView* mList;
     BubbleParticipantListModel* mModel;
     BubbleParticipantListItem* mPrototype; // not owned
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -20,46 +20,32 @@
 #include <hbframeitem.h>
 #include <hbframedrawer.h>
 #include "bubblecontainerwidget.h"
-#include "bubbleprimitives.h"
-#include "bubblestyleoption.h"
 
-BubbleContainerWidget::BubbleContainerWidget(
-    const QString& stylePluginName, QGraphicsItem* item)
-    : HbWidget(item), mStylePluginName(stylePluginName),
-      mBackground(0)
+BubbleContainerWidget::BubbleContainerWidget(QGraphicsItem* item)
+    : HbWidget(item), mBackground(0)
 {
-    setPluginBaseId(style()->registerPlugin(mStylePluginName));
-    Q_ASSERT(pluginBaseId()!=-1);
-
     createPrimitives();
     updatePrimitives();
+    Q_ASSERT(mBackground);
 }
 
 BubbleContainerWidget::~BubbleContainerWidget()
 {
-    style()->unregisterPlugin(mStylePluginName);
 }
 
 void BubbleContainerWidget::createPrimitives()
 {
-    QGraphicsItem *background = style()->createPrimitive(
-        (HbStyle::Primitive)(pluginBaseId()+BP_Bubble_frame), this);
+    delete mBackground;
+    mBackground = new HbFrameItem(this);
     style()->setItemName(mBackground, "background");
-
-    delete mBackground;
-    mBackground =
-        qgraphicsitem_cast<HbFrameItem*>(background);
+    mBackground->setZValue(-1.0);
+    mBackground->setVisible(false); // background in drawn in paint()
 }
 
 void BubbleContainerWidget::updatePrimitives()
 {
-    if (mBackground) {
-        BubbleStyleOption option;
-        style()->updatePrimitive(
-            mBackground, (HbStyle::Primitive)(pluginBaseId()+BP_Bubble_frame),
-            &option);
-        mBackground->setVisible(false); // background in drawn in paint()
-    }
+    mBackground->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
+    mBackground->frameDrawer().setFrameGraphicsName("qtg_fr_list_normal");
 }
 
 void BubbleContainerWidget::mousePressEvent(
@@ -89,7 +75,7 @@
 }
 
 void BubbleContainerWidget::mouseReleaseEvent(
-    QGraphicsSceneMouseEvent * event)
+    QGraphicsSceneMouseEvent *event)
 {
     if (event->button() != Qt::LeftButton) {
         event->ignore();
@@ -111,8 +97,12 @@
     Q_UNUSED(widget)
     Q_UNUSED(option)
 
-    if (mBackground) {
-        mBackground->frameDrawer().paint(painter,boundingRect());
-    }
+    mBackground->frameDrawer().paint(painter,boundingRect());
 }
 
+void BubbleContainerWidget::showEvent(QShowEvent *event)
+{
+    Q_UNUSED(event)
+    mPressed = false;
+}
+
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblecontainerwidget.h	Fri May 14 15:51:57 2010 +0300
@@ -27,8 +27,7 @@
     Q_OBJECT
 
 public:
-    BubbleContainerWidget(const QString& stylePluginName,
-                          QGraphicsItem* item=0);
+    BubbleContainerWidget(QGraphicsItem* item=0);
     virtual ~BubbleContainerWidget();
 
 signals:
@@ -47,8 +46,9 @@
         const QStyleOptionGraphicsItem *option,
         QWidget *widget = 0);
 
+    void showEvent(QShowEvent *event);
+
 private:
-    QString mStylePluginName;
     HbFrameItem* mBackground;
     bool mPressed;
 };
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblecore.pri	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblecore.pri	Fri May 14 15:51:57 2010 +0300
@@ -18,7 +18,6 @@
     src/bubbleimagewidget.h \
     src/bubbleheader.h \
     src/bubbleutils.h \
-    src/bubblebuttonstyle.h \
     src/bubbleconferenceheader.h \
     src/bubbleparticipantlistitem.h \
     src/bubbleparticipantlistmodel.h \
@@ -31,14 +30,14 @@
     src/bubbleconferencehandler.h \
     src/bubbleimagemanager.h \
     src/bubbleimagemanager_p.h \
-    src/bubbleeffecthandler.h
+    src/bubbleeffecthandler.h \
+    src/bubblebutton.h
+
 
 SOURCES += src/bubblemanager2.cpp \
     src/bubbleheader.cpp \
     src/bubbleimagewidget.cpp \
     src/bubbleutils.cpp \
-    src/bubblestyleoption.cpp \
-    src/bubblebuttonstyle.cpp \
     src/bubbleconferenceheader.cpp \
     src/bubbleparticipantlistitem.cpp \
     src/bubbleparticipantlistmodel.cpp \
@@ -50,7 +49,8 @@
     src/bubblecollapsedhandler.cpp \
     src/bubbleconferencehandler.cpp \
     src/bubbleimagemanager.cpp \
-    src/bubbleeffecthandler.cpp
+    src/bubbleeffecthandler.cpp \
+    src/bubblebutton.cpp
 
 symbian {
     SOURCES += src/bubbleimagemanager_p.cpp
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleexpandedhandler.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleexpandedhandler.cpp	Fri May 14 15:51:57 2010 +0300
@@ -17,7 +17,6 @@
 
 #include <QtGui>
 #include <hbaction.h>
-#include <hbpushbutton.h>
 #include <hbtextitem.h>
 
 #include "bubblemanager2.h"
@@ -26,6 +25,7 @@
 #include "bubbleutils.h"
 #include "bubbleimagewidget.h"
 #include "bubbleheadingwidget.h"
+#include "bubblebutton.h"
 
 BubbleExpandedHandler::BubbleExpandedHandler(
     BubbleWidgetManager& widgetManager,
@@ -42,13 +42,13 @@
         widget(BubbleWidgetManager::Image));
     Q_ASSERT(mImage);
 
-    mButtonCenter = qobject_cast<HbPushButton*>(
+    mButtonCenter = qobject_cast<BubbleButton*>(
         widget(BubbleWidgetManager::CenterButton));
     Q_ASSERT(mButtonCenter);
-    mButtonLeft = qobject_cast<HbPushButton*>(
+    mButtonLeft = qobject_cast<BubbleButton*>(
         widget(BubbleWidgetManager::LeftButton));
     Q_ASSERT(mButtonLeft);
-    mButtonRight = qobject_cast<HbPushButton*>(
+    mButtonRight = qobject_cast<BubbleButton*>(
         widget(BubbleWidgetManager::RightButton));
     Q_ASSERT(mButtonRight);
 
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleexpandedhandler.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleexpandedhandler.h	Fri May 14 15:51:57 2010 +0300
@@ -22,7 +22,7 @@
 
 class BubbleHeader;
 class HbAction;
-class HbPushButton;
+class BubbleButton;
 class BubbleImageWidget;
 class BubbleHeadingWidget;
 
@@ -56,9 +56,9 @@
 
     BubbleImageWidget* mImage;
 
-    HbPushButton* mButtonCenter;
-    HbPushButton* mButtonLeft;
-    HbPushButton* mButtonRight;
+    BubbleButton* mButtonCenter;
+    BubbleButton* mButtonLeft;
+    BubbleButton* mButtonRight;
     };
 
 #endif /* BUBBLEEXPANDEDHANDLER_H_ */
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -18,32 +18,56 @@
 #include <hbstyle.h>
 #include <hbmainwindow.h>
 #include <hbevent.h>
+#include <hbiconitem.h>
+#include <hbtextitem.h>
+#include <hbfontspec.h>
+#include <hbdeviceprofile.h>
+#include <hbstyleloader.h>
+#include <hbiconanimationmanager.h>
+#include <hbiconanimator.h>
+
 #include "bubbleheadingwidget.h"
-#include "bubbleprimitives.h"
-#include "bubblestyleoption.h"
 #include "bubblemanager2.h"
 #include "bubbleutils.h"
 #include "bubbleheader.h"
 
-BubbleHeadingWidget::BubbleHeadingWidget(
-    const QString& stylePluginName, QGraphicsItem* item)
-    : HbWidget(item), mStylePluginName(stylePluginName), mStatusIcon(0),
-      mNumberTypeIcon(0), mCipheringIcon(0), mText1(0), mText2(0), mText3(0)
+BubbleHeadingWidget::BubbleHeadingWidget(QGraphicsItem* item)
+    : HbWidget(item), mStatusIcon(0), mNumberTypeIcon(0),
+      mCipheringIcon(0), mText1(0), mText2(0), mText3(0)
 {
-    setPluginBaseId(style()->registerPlugin(mStylePluginName));
-    Q_ASSERT(pluginBaseId()!=-1);
+    createPrimitives();
+
+    HbStyleLoader::registerFilePath(":/bubbleheadingwidget.css");
+    HbStyleLoader::registerFilePath(":/bubbleheadingwidget.widgetml");
 
-    createPrimitives();
+    // font is update in code, because cli position is changing
+    mCliFont = new HbFontSpec(HbFontSpec::Primary);
+    mTextFont = new HbFontSpec(HbFontSpec::Secondary);
+
+    HbDeviceProfile profile;
+    mCliFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
+    mTextFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
+
+    HbIconAnimationManager *mgr = HbIconAnimationManager::global();
+    mgr->addDefinitionFile(":/bubble_icon_anim.axml");
 }
 
 BubbleHeadingWidget::~BubbleHeadingWidget()
 {
-    style()->unregisterPlugin(mStylePluginName);
+    delete mCliFont;
+    delete mTextFont;
 }
 
 void BubbleHeadingWidget::reset()
 {
     mHeader = 0;
+    mText1->setText(QString());
+    mText2->setText(QString());
+    mText3->setText(QString());
+    mStatusIcon->hide();
+    mStatusIcon->animator().stopAnimation();
+    mNumberTypeIcon->hide();
+    mCipheringIcon->hide();
 }
 
 void BubbleHeadingWidget::readBubbleHeader(const BubbleHeader& header)
@@ -54,127 +78,88 @@
 
 void BubbleHeadingWidget::createPrimitives()
 {
-    delete mText1;
-    mText1 = style()->createPrimitive(
-            (HbStyle::Primitive)(pluginBaseId()+BP_Text1_text), this);
+    mText1 = new HbTextItem(this);
     style()->setItemName( mText1, "text_line_1" );
 
-    delete mText2;
-    mText2 = style()->createPrimitive(
-            (HbStyle::Primitive)(pluginBaseId()+BP_Text2_text), this);
+    mText2 = new HbTextItem(this);
     style()->setItemName( mText2, "text_line_2" );
 
-    delete mText3;
-    mText3 = style()->createPrimitive(
-            (HbStyle::Primitive)(pluginBaseId()+BP_Text3_text), this);
+    mText3 = new HbTextItem(this);
     style()->setItemName( mText3, "text_line_3" );
 
-    delete mNumberTypeIcon;
-    mNumberTypeIcon = style()->createPrimitive(
-            (HbStyle::Primitive)(pluginBaseId()+BP_NumberType_icon), this);
+    //mStatusIcon = new BubbleAnimIconItem(BUBBLE_ICON_ANIM_INTERVAL, this);
+    mStatusIcon = new HbIconItem(this);
+    style()->setItemName( mStatusIcon, "status_icon" );
+
+    mNumberTypeIcon = new HbIconItem(this);
     style()->setItemName( mNumberTypeIcon, "number_type_icon" );
 
-    delete mCipheringIcon;
-    mCipheringIcon = style()->createPrimitive(
-            (HbStyle::Primitive)(pluginBaseId()+BP_Ciphering_icon), this);
+    mCipheringIcon = new HbIconItem(this);
     style()->setItemName( mCipheringIcon, "ciphering_icon" );
-
-    delete mStatusIcon;
-    mStatusIcon = style()->createPrimitive(
-            (HbStyle::Primitive)(pluginBaseId()+BP_CallStatus_icon), this);
-    style()->setItemName( mStatusIcon, "status_icon" );
 }
 
 void BubbleHeadingWidget::updatePrimitives()
 {
-    BubbleStyleOption option;
-    initStyleOption(option);
+    if (mHeader!=0) {
+        BubbleUtils::setCallStatusIcon(
+            mHeader->callState(), mHeader->callFlags(), *mStatusIcon);
 
-    if (mText1) {
-        style()->updatePrimitive(
-                mText1,
-                (HbStyle::Primitive)(pluginBaseId()+BP_Text1_text),
-                 &option);
-    }
+        BubbleUtils::setNumberTypeIcon(
+            mHeader->callState(), mHeader->callFlags(), *mNumberTypeIcon);
 
-    if (mText2) {
-        style()->updatePrimitive(
-                mText2,
-                (HbStyle::Primitive)(pluginBaseId()+BP_Text2_text),
-                &option);
-    }
+        BubbleUtils::setCipheringIcon(
+            mHeader->callState(), mHeader->callFlags(), *mCipheringIcon);
+
+        // update text lines
+        int cliLine = 0;
 
-    if (mText3) {
-        style()->updatePrimitive(
-                mText3,
-                (HbStyle::Primitive)(pluginBaseId()+BP_Text3_text),
-                &option);
-    }
+        if (lines==3) {
+            BubbleUtils::setCallHeaderTexts3Lines(
+                *mHeader, *mText1, *mText2, *mText3, cliLine,
+                mCallTimerTextLine );
+        } else if (lines==2) {
+            BubbleUtils::setCallHeaderTexts2Lines(
+                *mHeader, *mText1, *mText2, cliLine,
+                mCallTimerTextLine );
+        } else {
+            // todo: 1-line
+            BubbleUtils::setCallHeaderTexts2Lines(
+                *mHeader, *mText1, *mText2, cliLine,
+                mCallTimerTextLine );
+        }
 
-    if (mStatusIcon) {
-        style()->updatePrimitive(
-                mStatusIcon,
-                (HbStyle::Primitive)(pluginBaseId()+BP_CallStatus_icon),
-                &option);
-    }
-
-    if (mNumberTypeIcon) {
-        style()->updatePrimitive(
-                mNumberTypeIcon,
-                (HbStyle::Primitive)(pluginBaseId()+BP_NumberType_icon),
-                &option);
-    }
-
-    if (mCipheringIcon) {
-        style()->updatePrimitive(
-                mCipheringIcon,
-                (HbStyle::Primitive)(pluginBaseId()+BP_Ciphering_icon),
-                &option);
+        // update font
+        if (cliLine==2) {
+            mText1->setFontSpec(*mTextFont);
+            mText2->setFontSpec(*mCliFont);
+            mText3->setFontSpec(*mTextFont);
+        } else {
+            mText1->setFontSpec(*mCliFont);
+            mText2->setFontSpec(*mTextFont);
+            mText3->setFontSpec(*mTextFont);
+        }
     }
 
     repolish();
 }
 
-void BubbleHeadingWidget::initStyleOption(BubbleStyleOption& option)
-{
-    HbWidget::initStyleOption(&option);
-
-    if (mHeader!=0) {
-        option.mCallState = mHeader->callState();
-        option.mCallFlags = mHeader->callFlags();
-
-        if (lines==3) {
-            BubbleUtils::setCallHeaderTexts3Lines( *mHeader, option );
-        } else if (lines==2) {
-            BubbleUtils::setCallHeaderTexts2Lines( *mHeader, option );
-        } else {
-            // todo: 1-line
-            BubbleUtils::setCallHeaderTexts2Lines( *mHeader, option );
-        }
-
-        mCallTimerTextLine = option.mTimerLineNumber;
-    }
-}
-
 void BubbleHeadingWidget::polishEvent()
 {
-    if (mText1 && mText2 && mText3) {
-        if (lines == 3) {
-            setLayout("three_lines");
-            mText1->setVisible(true);
-            mText2->setVisible(true);
-            mText3->setVisible(true);
-        } else if (lines == 2) {
-            setLayout("two_lines");
-            mText1->setVisible(true);
-            mText2->setVisible(true);
-            mText3->setVisible(false);
-        } else if (lines == 1) {
-            setLayout("one_line");
-            mText1->setVisible(true);
-            mText2->setVisible(true);
-            mText3->setVisible(false);
-        }
+    if (lines == 3) {
+        setLayout("three_lines");
+        mText1->setVisible(true);
+        mText2->setVisible(true);
+        mText3->setVisible(true);
+    } else if (lines == 2) {
+        setLayout("two_lines");
+        mText1->setVisible(true);
+        mText2->setVisible(true);
+        mText3->setVisible(false);
+    } else if (lines == 1) {
+        setLayout("one_line");
+        mText1->setVisible(true);
+        mText2->setVisible(true);
+        mText3->setVisible(false);
     }
 
     HbWidget::polishEvent();
@@ -206,24 +191,12 @@
 void BubbleHeadingWidget::updateTimerDisplayNow()
 {
     if ( mHeader && ( mHeader->callState() == BubbleManager::Active ) ) {
-        BubbleStyleOption option;
-
         if ( mCallTimerTextLine == 2 ) {
-            option.mText2 = mHeader->timerCost();
-            option.mText2Clip = Qt::ElideRight;
-            option.mTimerLineNumber = mCallTimerTextLine;
-            style()->updatePrimitive(
-                    mText2,
-                    (HbStyle::Primitive)(pluginBaseId()+BP_Text2_text),
-                    &option);
+            mText2->setText(mHeader->timerCost());
+            mText2->setElideMode(Qt::ElideRight);
         } else if ( mCallTimerTextLine == 3 ) {
-            option.mText3 = mHeader->timerCost();
-            option.mText3Clip = Qt::ElideRight;
-            option.mTimerLineNumber = mCallTimerTextLine;
-            style()->updatePrimitive(
-                    mText3,
-                    (HbStyle::Primitive)(pluginBaseId()+BP_Text3_text),
-                    &option);
+            mText3->setText(mHeader->timerCost());
+            mText3->setElideMode(Qt::ElideRight);
         }
     }
 }
@@ -237,3 +210,8 @@
     HbWidget::changeEvent(event);
 }
 
+void BubbleHeadingWidget::showEvent(QShowEvent *event)
+{
+    Q_UNUSED(event)
+    mStatusIcon->animator().startAnimation();
+}
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleheadingwidget.h	Fri May 14 15:51:57 2010 +0300
@@ -20,7 +20,9 @@
 
 #include <hbwidget.h>
 
-class BubbleStyleOption;
+class HbIconItem;
+class HbTextItem;
+class HbFontSpec;
 class BubbleHeader;
 
 class BubbleHeadingWidget : public HbWidget
@@ -30,7 +32,7 @@
     Q_PROPERTY(QString layoutOption READ layout WRITE setLayout)
 
 public:
-    BubbleHeadingWidget(const QString& stylePluginName, QGraphicsItem* item=0);
+    BubbleHeadingWidget(QGraphicsItem* item=0);
     virtual ~BubbleHeadingWidget();
 
     int lineCount() const;
@@ -46,29 +48,29 @@
 private:
     void createPrimitives();
     void updatePrimitives();
-    void initStyleOption(BubbleStyleOption& option);
-
-    void polishEvent();
 
 protected:
+    void polishEvent();
     void changeEvent(QEvent *event);
+    void showEvent(QShowEvent *event);
 
 private:
-    QString mStylePluginName;
-
     int lines;
     QString layoutOption;
 
     const BubbleHeader* mHeader;
 
     // primitives
-    QGraphicsItem* mStatusIcon;
-    QGraphicsItem* mNumberTypeIcon;
-    QGraphicsItem* mCipheringIcon;
-    QGraphicsItem* mText1;
-    QGraphicsItem* mText2;
-    QGraphicsItem* mText3;
+    //BubbleAnimIconItem* mStatusIcon;
+    HbIconItem* mStatusIcon;
+    HbIconItem* mNumberTypeIcon;
+    HbIconItem* mCipheringIcon;
+    HbTextItem* mText1;
+    HbTextItem* mText2;
+    HbTextItem* mText3;
     int mCallTimerTextLine;
+    HbFontSpec* mCliFont;
+    HbFontSpec* mTextFont;
 };
 
 #endif // BUBBLEHEADINGWIDGET_H
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -18,32 +18,33 @@
 
 #include <QPainter>
 #include <hbstyle.h>
+#include <hbiconitem.h>
+#include <hbstyleloader.h>
 #include "bubbleimagemanager.h"
 #include "bubbleimagewidget.h"
-#include "bubbleprimitives.h"
-#include "bubblestyleoption.h"
 
-BubbleImageWidget::BubbleImageWidget(const QString& stylePluginName,
-    BubbleImageManager& imageManager, QGraphicsItem* parent)
-    : HbWidget(parent), mStylePluginName(stylePluginName),
-      mImageManager(imageManager), mDefaultAvatar(0)
+BubbleImageWidget::BubbleImageWidget(
+    BubbleImageManager& imageManager,
+    QGraphicsItem* parent)
+    : HbWidget(parent),
+      mImageManager(imageManager),
+      mDefaultAvatar(0)
 {
-    setPluginBaseId(style()->registerPlugin(mStylePluginName));
-    Q_ASSERT(pluginBaseId()!=-1);
+    // create avatar
+    mDefaultAvatar = new HbIconItem(this);
+    style()->setItemName( mDefaultAvatar, "default_avatar" );
+    mDefaultAvatar->setAspectRatioMode(Qt::KeepAspectRatioByExpanding);
+    mDefaultAvatar->setAlignment(Qt::AlignCenter);
 
-    // create avatar
-    delete mDefaultAvatar;
-    mDefaultAvatar = style()->createPrimitive(
-        (HbStyle::Primitive)(pluginBaseId()+BP_DefaultAvatar_icon), this);
-    style()->setItemName( mDefaultAvatar, "default_avatar" );
+    connect(&mImageManager, SIGNAL(pixmapReady(QString)),
+            this, SLOT(imageLoaded(QString)));
 
-    connect(&mImageManager,SIGNAL(pixmapReady(QString)),
-            this,SLOT(imageLoaded(QString)));
+    HbStyleLoader::registerFilePath(":/bubbleimagewidget.css");
+    HbStyleLoader::registerFilePath(":/bubbleimagewidget.widgetml");
 }
 
 BubbleImageWidget::~BubbleImageWidget()
 {
-    style()->unregisterPlugin(mStylePluginName);
 }
 
 void BubbleImageWidget::setImage(const QString& name)
@@ -52,13 +53,10 @@
 
     if (!mImageName.isEmpty()) {
         mDefaultAvatar->setVisible(false);
+        mDefaultAvatar->setIcon(HbIcon());
         mImageManager.loadImage(mImageName);
     } else {
-        BubbleStyleOption option;
-        style()->updatePrimitive(
-                mDefaultAvatar,
-                (HbStyle::Primitive)(pluginBaseId()+BP_DefaultAvatar_icon),
-                 &option);
+        mDefaultAvatar->setIconName("qtg_large_avatar");
         mDefaultAvatar->setVisible(true);
     }
 }
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleimagewidget.h	Fri May 14 15:51:57 2010 +0300
@@ -21,6 +21,7 @@
 #include <hbwidget.h>
 
 class BubbleImageManager;
+class HbIconItem;
 
 class BubbleImageWidget : public HbWidget
     {
@@ -28,7 +29,6 @@
     
 public:
     explicit BubbleImageWidget(
-        const QString& stylePluginName,
         BubbleImageManager& imageManager,
         QGraphicsItem* parent = 0 );
     virtual ~BubbleImageWidget();
@@ -45,10 +45,9 @@
         QWidget* widget);
 
 private:
-    QString mStylePluginName;
     BubbleImageManager& mImageManager;
     QString  mImageName;
-    QGraphicsItem* mDefaultAvatar;
+    HbIconItem* mDefaultAvatar;
     };
 
 #endif /* BUBBLEIMAGEWIDGET_H_ */
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblemanager2.cpp	Fri May 14 15:51:57 2010 +0300
@@ -60,9 +60,7 @@
     mEffectHandler = new BubbleEffectHandler(this);
 
     mWidgetManager = new BubbleWidgetManager(
-        *mBubbleImageManager, mDefaultStyleBaseId, this);
-    mWidgetManager->setStylePluginName(
-        BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
+        *mBubbleImageManager, this);
 
     mMainLayout = new HbStackedLayout(this);
     mMainLayout->setContentsMargins(0.0,0.0,0.0,0.0);
@@ -715,6 +713,7 @@
     Q_ASSERT( mIsReadyToDraw > 0 );
     if ( mConferenceHeader->isUsed() ) {
         mConferenceHeader->setExpanded(expanded);
+        mSortHeaders = true;
     }
 }
 
@@ -874,20 +873,27 @@
         int expanded = mActiveHeaders[0]->bubbleId();
         if ( bubbleId != expanded ) {
             startChanges();
-            // find header
+
             BubbleHeader* header = 0;
-            for ( int i=0; i < mActiveHeaders.size(); i++ ) {
-                if ( mActiveHeaders[i]->bubbleId() == bubbleId ) {
-                    header = mActiveHeaders[i];
-                    mActiveHeaders.remove(i);
-                    break;
+
+            if (bubbleId == BUBBLE_CONF_CALL_ID) {
+                header = mConferenceHeader;
+            } else {
+                // find header
+                for ( int i=0; i < mActiveHeaders.size(); i++ ) {
+                    if ( mActiveHeaders[i]->bubbleId() == bubbleId ) {
+                        header = mActiveHeaders[i];
+                        mActiveHeaders.remove(i);
+                        break;
+                    }
                 }
+
+                Q_ASSERT(header);
+
+                // set it first
+                mActiveHeaders.insert(0,header);
             }
 
-            Q_ASSERT(header);
-
-            // set it first
-            mActiveHeaders.insert(0,header);
             endChanges();
 
             // trigger the expand action
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.cpp	Fri May 14 15:51:57 2010 +0300
@@ -15,28 +15,22 @@
 *
 */
 
-#include <QtGui>
+#include <QGraphicsLinearLayout>
 #include <hbiconitem.h>
-#include <hbframeitem.h>
 #include <hbtextitem.h>
-#include <hbiconitem.h>
 #include <hbaction.h>
 #include <hbpushbutton.h>
-#include <hblabel.h>
+#include <hbstyleloader.h>
+#include <hbabstractitemview.h>
+#include <hblistviewitem.h>
 
 #include "bubbleparticipantlistitem.h"
-#include "bubbleprimitives.h"
-#include "bubblestyleoption.h"
-#include "bubblebuttonstyle.h"
+#include "bubblemanagerif.h"
+#include "bubbleutils.h"
 
 BubbleParticipantListItem::BubbleParticipantListItem(
-    const QString& stylePluginName,
-    BubbleButtonStyle& buttonStyle,
     QGraphicsItem *parent) :
-    HbListViewItem(parent),
-    mStylePluginName(stylePluginName),
-    mButtonStyle(buttonStyle),
-    mBackground(0),
+    HbAbstractViewItem(parent),
     mText(0),
     mStatusIcon(0),
     mCipheringIcon(0),
@@ -45,15 +39,12 @@
     mButton2(0),
     mExpanded(false)
 {
-    mStylePluginBaseId = style()->registerPlugin(mStylePluginName);
-    Q_ASSERT(pluginBaseId()!=-1);
+    HbStyleLoader::registerFilePath(":/bubbleparticipantlistitem.css");
+    HbStyleLoader::registerFilePath(":/bubbleparticipantlistitem.widgetml");
 }
 
 BubbleParticipantListItem::~BubbleParticipantListItem()
 {
-    if (prototype()==(HbAbstractViewItem*)this) {
-        style()->unregisterPlugin(mStylePluginName);
-    }
 }
 
 HbAbstractViewItem* BubbleParticipantListItem::createItem()
@@ -63,46 +54,36 @@
 
 void BubbleParticipantListItem::updateChildItems()
 {
-    setPluginBaseId(mStylePluginBaseId);
+    HbAbstractViewItem::updateChildItems();
+
     setFocusPolicy(Qt::ClickFocus); // to enable expanding
 
     // create primitives
-    if (!mBackground) {
-        mBackground = style()->createPrimitive(
-                (HbStyle::Primitive)(pluginBaseId()+BP_Bubble_frame), this);
-        if ( mBackground ) {
-            style()->setItemName( mBackground, "background" );
-        }
-    }
-
     if (!mText) {
-        mText = style()->createPrimitive(
-                (HbStyle::Primitive)(pluginBaseId()+BP_Text1_text), this);
-        if ( mText ) {
-            style()->setItemName( mText, "text" );
-        }
+        mText = new HbTextItem(this);
+        style()->setItemName( mText, "text" );
     }
 
     if (!mCipheringIcon) {
-        mCipheringIcon = style()->createPrimitive(
-                (HbStyle::Primitive)(pluginBaseId()+BP_Ciphering_icon), this);
-        if ( mCipheringIcon ) {
-            style()->setItemName( mCipheringIcon, "ciphering" );
-        }
+        mCipheringIcon = new HbIconItem(this);
+        style()->setItemName( mCipheringIcon, "ciphering" );
     }
 
     if (!mStatusIcon) {
-        mStatusIcon = style()->createPrimitive(
-                (HbStyle::Primitive)(pluginBaseId()+BP_CallStatus_icon), this);
-        if ( mStatusIcon ) {
-            style()->setItemName( mStatusIcon, "icon" );
-        }
+        mStatusIcon = new HbIconItem(this);
+        style()->setItemName( mStatusIcon, "icon" );
     }
 
     if (!mExpandIcon) {
         mExpandIcon = new HbIconItem(this);
-        if ( mExpandIcon ) {
-            style()->setItemName( mExpandIcon, "expand-indi" );
+        style()->setItemName( mExpandIcon, "expand-indi" );
+
+        // for expand/collapse controls
+        if (itemView()) {
+            connect( itemView()->selectionModel(),
+                     SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+                     this,
+                     SLOT(currentIndexChanged(QModelIndex,QModelIndex)) );
         }
     }
 
@@ -113,14 +94,8 @@
         Q_ASSERT(p->mActions.count()==2);
         HbAction* action = p->mActions.at(0);
         mButton1 = new HbPushButton(this);
-        mButton1->setStyle(&mButtonStyle);
         mButton1->setIcon(action->icon());
         style()->setItemName( mButton1, "button-1" );
-        HbTextItem* label = static_cast<HbTextItem*>(
-            mButton1->primitive(HbStyle::P_PushButton_text));
-        if (label) {
-            label->setTextColor( Qt::white );
-        }
 
         // connect first action
         connect(mButton1,
@@ -137,14 +112,8 @@
         Q_ASSERT(p->mActions.count()==2);
         HbAction* action = p->mActions.at(1);
         mButton2 = new HbPushButton(this);
-        mButton2->setStyle(&mButtonStyle);
         mButton2->setIcon(action->icon());
         style()->setItemName( mButton2, "button-2" );
-        HbTextItem* label = static_cast<HbTextItem*>(
-            mButton2->primitive(HbStyle::P_PushButton_text));
-        if (label) {
-            label->setTextColor( Qt::white );
-        }
 
         // connect second action
         connect(mButton2,
@@ -158,53 +127,29 @@
         mButton2 = 0;
     }
 
-    // update primitives
-    BubbleStyleOption option;
-    HbWidget::initStyleOption(&option);
-
-    // check canConvert()
-    option.mCallState = (BubbleManagerIF::PhoneCallState)
-                         modelIndex().data(Qt::DecorationRole).toInt();
-    option.mText1 = modelIndex().data(Qt::DisplayRole).toString();
-    option.mCliLineNumber = 1;
-    bool ciphering = modelIndex().data(Qt::StatusTipRole).toBool();
-    if (!ciphering) {
-        option.mCallFlags = BubbleManagerIF::NoCiphering;
+    if (mText) {
+        mText->setText(modelIndex().data(Qt::DisplayRole).toString());
     }
 
-    if (mBackground) {
-        style()->updatePrimitive(
-            mBackground,
-            (HbStyle::Primitive)(pluginBaseId()+BP_Bubble_frame),
-            &option);
-    }
-
-    if (mText) {
-        style()->updatePrimitive(
-            mText,
-            (HbStyle::Primitive)(pluginBaseId()+BP_Text1_text),
-            &option);
-    }
+    int state = (BubbleManagerIF::PhoneCallState)
+        modelIndex().data(Qt::DecorationRole).toInt();
 
     if (mStatusIcon) {
-        style()->updatePrimitive(
-            mStatusIcon,
-            (HbStyle::Primitive)(pluginBaseId()+BP_CallStatus_icon),
-            &option );
+        BubbleUtils::setCallStatusIcon(state,0,*mStatusIcon);
     }
 
     if (mCipheringIcon) {
-        style()->updatePrimitive(
-            mCipheringIcon,
-            (HbStyle::Primitive)(pluginBaseId()+BP_Ciphering_icon),
-            &option );
+        int flags = !modelIndex().data(Qt::StatusTipRole).toBool() ?
+                    BubbleManagerIF::NoCiphering : 0;
+
+        BubbleUtils::setCipheringIcon(state,flags,*mCipheringIcon);
     }
 
     if (mExpandIcon) {
         if (mExpanded) {
-            mExpandIcon->setIcon(HbIcon("qtg_small_expand"));
+            mExpandIcon->setIcon(HbIcon("qtg_small_collapse"));
         } else {
-            mExpandIcon->setIcon(HbIcon("qtg_small_collapse"));
+            mExpandIcon->setIcon(HbIcon("qtg_small_expand"));
         }
     }
 
@@ -219,26 +164,7 @@
         setProperty("layoutOption","collapsed");
     }
 
-    HbListViewItem::polish(params);
-}
-
-void BubbleParticipantListItem::receivedFocus()
-{
-    HbListViewItem::receivedFocus();
-    BubbleParticipantListItem* p =
-        static_cast<BubbleParticipantListItem*>(prototype());
-    if ( p->mActions.count() == 2 ) {
-        // supports two buttons layout only
-
-        setExpanded(true);
-        emit p->selectionChanged(modelIndex().row());
-    }
-}
-
-void BubbleParticipantListItem::lostFocus()
-{
-    HbListViewItem::lostFocus();
-    setExpanded(false);
+    HbAbstractViewItem::polish(params);
 }
 
 void BubbleParticipantListItem::setExpanded(bool expanded)
@@ -258,5 +184,23 @@
     mExpanded = false;
 }
 
+void BubbleParticipantListItem::currentIndexChanged(
+    const QModelIndex &current,
+    const QModelIndex &previous)
+{
+    Q_UNUSED(previous);
 
+    if (modelIndex() == current) {
+        if ( !mExpanded ) {
+            setExpanded(true);
+        }
+    } else if (mExpanded) {
+        setExpanded(false);
+    }
+}
 
+int BubbleParticipantListItem::type() const
+{
+    return HbListViewItem::Type;
+}
+
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleparticipantlistitem.h	Fri May 14 15:51:57 2010 +0300
@@ -18,52 +18,47 @@
 #ifndef BUBBLEPARTICIPANTLISTITEM_H
 #define BUBBLEPARTICIPANTLISTITEM_H
 
-#include <hblistviewitem.h>
+#include <hbabstractviewitem.h>
 
 class QGraphicsItem;
 class HbPushButton;
-class BubbleButtonStyle;
 class HbAction;
 class HbIconItem;
+class HbFrameItem;
+class HbTextItem;
 
-class BubbleParticipantListItem : public HbListViewItem
+class BubbleParticipantListItem : public HbAbstractViewItem
 {
     Q_OBJECT
 
 public:
-    BubbleParticipantListItem(
-        const QString& stylePluginName,
-        BubbleButtonStyle& buttonStyle,
-        QGraphicsItem *parent = 0);
+    BubbleParticipantListItem(QGraphicsItem *parent = 0);
 
     ~BubbleParticipantListItem();
 
     HbAbstractViewItem* createItem();
 
     void updateChildItems();
-    void receivedFocus();
-    void lostFocus();
     void setExpanded(bool expanded);
     void addAction(HbAction* action);
     void clearActions();
 
-signals:
-    void selectionChanged(int row);
-
 private:
     void polish(HbStyleParameters& params);
 
+    int type() const;
+
+private slots:
+    void currentIndexChanged(const QModelIndex &current,
+                             const QModelIndex &previous);
+
 private:
-    QString mStylePluginName;
-    int mStylePluginBaseId;
-    BubbleButtonStyle& mButtonStyle;
-    QGraphicsItem* mBackground;
-    QGraphicsItem* mText;
-    QGraphicsItem* mStatusIcon;
-    QGraphicsItem* mCipheringIcon;
-    HbIconItem*    mExpandIcon;
-    HbPushButton*  mButton1;
-    HbPushButton*  mButton2;
+    HbTextItem* mText;
+    HbIconItem* mStatusIcon;
+    HbIconItem* mCipheringIcon;
+    HbIconItem* mExpandIcon;
+    HbPushButton* mButton1;
+    HbPushButton* mButton2;
     QList<HbAction*> mActions;
 
     bool mExpanded;
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblestyleoption.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Bubble style option.
-*
-*/
-
-#include "bubblestyleoption.h"
-
-BubbleStyleOption::BubbleStyleOption(): HbStyleOption()
-{
-    type = (int)Type;
-    version = (int)Version;
-    mText1 = "";
-    mText2 = "";
-    mText3 = "";
-    mText1Clip = Qt::ElideNone;
-    mText2Clip = Qt::ElideNone;
-    mText3Clip = Qt::ElideNone;
-    mCliLineNumber = 0;
-    mTimerLineNumber = 0;
-    mCallState = BubbleManagerIF::None;
-    mCallFlags = 0;
-    mNumberType = BubbleManagerIF::NotSet;
-}
-
-BubbleStyleOption::BubbleStyleOption(const BubbleStyleOption &other) :
-    HbStyleOption(other)
-{
-    type = (int)Type;
-    version = (int)Version;
-    
-    mText1 = other.mText1;
-    mText2 = other.mText2;
-    mText3 = other.mText3;
-    mText1Clip = other.mText1Clip;
-    mText2Clip = other.mText2Clip;
-    mText3Clip = other.mText3Clip;
-    mCliLineNumber = other.mCliLineNumber;
-    mTimerLineNumber = other.mTimerLineNumber;
-    mCallState = other.mCallState;
-    mCallFlags = other.mCallFlags;
-    mNumberType = other.mNumberType;
-}
-
-BubbleStyleOption::~BubbleStyleOption()
-{
-}
-
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.cpp	Fri May 14 15:51:57 2010 +0300
@@ -16,17 +16,24 @@
 */
 
 #include <hbiconitem.h>
+#include <hbaction.h>
+#include <hbtextitem.h>
+#include <hbstringutil.h>
+#include <hbiconanimator.h>
+#include <hbcolorscheme.h>
+
 #include "bubblemanager2.h"
 #include "bubbleutils.h"
 #include "bubbleheader.h"
-#include "bubblestyleoption.h"
-#include "bubblebuttonstyle.h"
-#include "hbpushbutton.h"
-#include "hbaction.h"
+#include "bubblebutton.h"
 
 void BubbleUtils::setCallHeaderTexts3Lines(
     const BubbleHeader& header,
-    BubbleStyleOption& option )
+    HbTextItem& textLine1,
+    HbTextItem& textLine2,
+    HbTextItem& textLine3,
+    int& cliLineNumber,
+    int& timerLineNumber)
 {
     switch( header.callState() ) {
     case BubbleManager::Incoming:
@@ -34,39 +41,31 @@
     case BubbleManager::AlertToDisconnected:
     {
         if ( header.secondaryCli().length() ) {
-            option.mText1.append( header.cli() );
-            option.mText1Clip = header.cliClipDirection();
-            option.mText2.append( header.secondaryCli() );
-            option.mText2Clip = header.secondaryCliClipDirection();
-            option.mText3.append( header.text() );
-            option.mText3Clip = header.textClipDirection();
-            option.mCliLineNumber = 1;
+            setText(textLine1, header.cli(), header.cliClipDirection());
+            setText(textLine2, header.secondaryCli(),
+                    header.secondaryCliClipDirection());
+            setText(textLine3, header.text(), header.textClipDirection());
+            cliLineNumber = 1;
         } else {
-            option.mText1.append( header.cli() );
-            option.mText1Clip = header.cliClipDirection();
-            option.mText2.append( header.text() );
-            option.mText2Clip = header.textClipDirection();
-            option.mCliLineNumber = 1;
+            setText(textLine1,header.cli(), header.cliClipDirection());
+            setText(textLine2,header.text(), header.textClipDirection());
+            cliLineNumber = 1;
         }
         break;
     }
-    
+
     case BubbleManager::Outgoing:
     {
         if ( header.secondaryCli().length() ) {
-            option.mText1.append( header.text() );
-            option.mText1Clip = header.textClipDirection();
-            option.mText2.append( header.cli() );
-            option.mText2Clip = header.cliClipDirection();
-            option.mText3.append( header.secondaryCli() );
-            option.mText3Clip = header.secondaryCliClipDirection();
-            option.mCliLineNumber = 2;
+            setText(textLine1, header.text(), header.textClipDirection());
+            setText(textLine2, header.cli(), header.cliClipDirection());
+            setText(textLine3, header.secondaryCli(),
+                    header.secondaryCliClipDirection());
+            cliLineNumber = 2;
         } else {
-            option.mText1.append( header.text() );
-            option.mText1Clip = header.textClipDirection();
-            option.mText2.append( header.cli() );
-            option.mText2Clip = header.cliClipDirection();
-            option.mCliLineNumber = 2;
+            setText(textLine1, header.text(), header.textClipDirection());
+            setText(textLine2, header.cli(), header.cliClipDirection());
+            cliLineNumber = 2;
         }
         break;
     }
@@ -75,42 +74,34 @@
     case BubbleManager::Alerting:
     {
         if ( header.secondaryCli().length() ) {
-            option.mText1.append( header.cli() );
-            option.mText1Clip = header.cliClipDirection();
-            option.mText2.append( header.secondaryCli() );
-            option.mText2Clip = header.secondaryCliClipDirection();
-            option.mText3.append( header.timerCost() );
-            option.mText3Clip = Qt::ElideRight;
-            option.mCliLineNumber = 1;
-            option.mTimerLineNumber = 3;
+            setText(textLine1, header.cli(), header.cliClipDirection());
+            setText(textLine2, header.secondaryCli(),
+                    header.secondaryCliClipDirection());
+            setText(textLine3, header.timerCost(), Qt::ElideRight);
+            cliLineNumber = 1;
+            timerLineNumber = 3;
         } else {
-            option.mText1.append( header.cli() );
-            option.mText1Clip = header.cliClipDirection();
-            option.mText2.append( header.timerCost() );
-            option.mText2Clip = Qt::ElideRight;
-            option.mCliLineNumber = 1;
-            option.mTimerLineNumber = 2;
+            setText(textLine1, header.cli(), header.cliClipDirection());
+            setText(textLine2, header.timerCost(), Qt::ElideRight);
+            cliLineNumber = 1;
+            timerLineNumber = 2;
         }
         break;
     }
-    
+
     case BubbleManager::OnHold:
     case BubbleManager::Disconnected:
     {
         if ( header.secondaryCli().length() ) {
-            option.mText1.append( header.cli() );
-            option.mText1Clip = header.cliClipDirection();
-            option.mText2.append( header.secondaryCli() );
-            option.mText2Clip = header.secondaryCliClipDirection();
-            option.mText3.append( header.text() );
-            option.mText3Clip = header.textClipDirection();
-            option.mCliLineNumber = 1;
+            setText(textLine1, header.cli(), header.cliClipDirection());
+            setText(textLine2, header.secondaryCli(),
+                    header.secondaryCliClipDirection());
+            setText(textLine3, header.text(), header.textClipDirection());
+            cliLineNumber = 1;
         } else {
-            option.mText1.append( header.cli() );
-            option.mText1Clip = header.cliClipDirection();
-            option.mText2.append( header.text() );
-            option.mText2Clip = header.textClipDirection();
-            option.mCliLineNumber = 1;
+            setText(textLine1, header.cli(), header.cliClipDirection());
+            setText(textLine2, header.text(), header.textClipDirection());
+            cliLineNumber = 1;
         }
         break;
     }
@@ -123,43 +114,38 @@
 
 void BubbleUtils::setCallHeaderTexts2Lines(
     const BubbleHeader& header,
-    BubbleStyleOption& option )
+    HbTextItem& textLine1,
+    HbTextItem& textLine2,
+    int& cliLineNumber,
+    int& timerLineNumber)
 {
     switch( header.callState() ) {
     case BubbleManager::Active:
-        option.mText1.append( header.cli() );
-        option.mText1Clip = header.cliClipDirection();
-        option.mText2.append( header.timerCost() );
-        option.mText2Clip = Qt::ElideRight;
-        option.mCliLineNumber = 1;
-        option.mTimerLineNumber = 2;
+        setText(textLine1, header.cli(), header.cliClipDirection());
+        setText(textLine2, header.timerCost(), Qt::ElideRight);
+        cliLineNumber = 1;
+        timerLineNumber = 2;
         break;
 
 
     case BubbleManager::OnHold:
     case BubbleManager::Disconnected:
-        option.mText1.append( header.cli() );
-        option.mText1Clip = header.cliClipDirection();
-        option.mText2.append( header.text() );
-        option.mText2Clip = header.textClipDirection();
-        option.mCliLineNumber = 1;
+        setText(textLine1, header.cli(), header.cliClipDirection());
+        setText(textLine2, header.text(), header.textClipDirection());
+        cliLineNumber = 1;
         break;
 
     case BubbleManager::Waiting:
     case BubbleManager::AlertToDisconnected:
-        option.mText1.append( header.cli() );
-        option.mText1Clip = header.cliClipDirection();
-        option.mText2.append( header.text() );
-        option.mText2Clip = header.textClipDirection();
-        option.mCliLineNumber = 1;
+        setText(textLine1, header.cli(), header.cliClipDirection());
+        setText(textLine2, header.text(), header.textClipDirection());
+        cliLineNumber = 1;
         break;
 
     case BubbleManager::Outgoing:
-        option.mText1.append(header.text());
-        option.mText1Clip = header.textClipDirection();
-        option.mText2.append(header.cli());
-        option.mText2Clip = header.cliClipDirection();
-        option.mCliLineNumber = 2;
+        setText(textLine1, header.text(), header.textClipDirection());
+        setText(textLine2, header.cli(), header.cliClipDirection());
+        cliLineNumber = 2;
         break;
 
     default:
@@ -168,49 +154,148 @@
     } // switch
 }
 
+void BubbleUtils::setText(
+    HbTextItem& item,
+    const QString& text,
+    Qt::TextElideMode clip)
+{
+    if (clip == Qt::ElideLeft) {
+        // convert phonenumber to phone ui language
+        QString converted = HbStringUtil::convertDigits(text);
+        item.setText(converted);
+    } else {
+        item.setText( text );
+    }
+    item.setElideMode( clip );
+}
+
 bool BubbleUtils::compareHeaders(
     const BubbleHeader* header1,
     const BubbleHeader* header2 )
 {
-    if ( header1->callState() < header2->callState() ) {
+    // sort according to call states, but keep conference header
+    // last, it shown at foreground only when expanded.
+    if ( (header1->callState() < header2->callState()) ||
+         header1->isConference() ) {
         return false;
     } else {
         return true;
     }
 }
 
-QString BubbleUtils::stylePluginNameWithPath(const QString& pluginName)
+void BubbleUtils::setButtonStyleForAction(
+    BubbleButton& button,
+    const HbAction& action)
 {
-    QString nameWithPath;
+    if (action.softKeyRole()==QAction::PositiveSoftKey) {
+        button.setButtonType(BubbleButton::GreenButton);
+    } else if (action.softKeyRole()==QAction::NegativeSoftKey) {
+        button.setButtonType(BubbleButton::RedButton);
+    } else {
+        button.setButtonType(BubbleButton::DefaultButton);
+    }
 
-#if defined(Q_OS_SYMBIAN)
-    nameWithPath.append("z:/resource/qt/plugins/phone/");
-    nameWithPath.append(pluginName);
-#elif defined(Q_OS_WIN)
-    nameWithPath.append("c:/hb/bin/");
-    nameWithPath.append(pluginName);
-#else // Q_OS_UNIX
-    nameWithPath.append("/home/lib/");
-    nameWithPath.append(pluginName);
-#endif
-
-    return nameWithPath;
+    button.updatePrimitives();
 }
 
-void BubbleUtils::setButtonStyleForAction(
-    HbPushButton& button,
-    const HbAction& action)
+void BubbleUtils::setCallStatusIcon(
+    int callState,
+    int callFlags,
+    HbIconItem& icon)
 {
-    BubbleButtonStyle* style =
-        static_cast<BubbleButtonStyle*>(button.style());
+    bool showIcon = true;
 
-    if (action.softKeyRole()==QAction::PositiveSoftKey) {
-        style->setButtonColor(BubbleButtonStyle::Green);
-    } else if (action.softKeyRole()==QAction::NegativeSoftKey) {
-        style->setButtonColor(BubbleButtonStyle::Red);
-    } else {
-        style->setButtonColor(BubbleButtonStyle::Default);
+    switch(callState) {
+    case BubbleManagerIF::Incoming:
+    case BubbleManagerIF::Alerting:
+    case BubbleManagerIF::Waiting:
+        // from bubble_icon_anim.axml
+        if ( callFlags & BubbleManagerIF::VoIPCall ) {
+            icon.setIconName("voip_call_waiting_anim");
+        } else if ( callFlags & BubbleManagerIF::Video ) {
+            icon.setIconName("video_call_waiting_anim");
+        } else {
+            icon.setIconName("voice_call_waiting_anim");
+        }
+        break;
+    case BubbleManagerIF::Outgoing:
+    case BubbleManagerIF::Active:
+        if ( callFlags & BubbleManagerIF::VoIPCall ) {
+            icon.setIconName("qtg_large_voip_call_active");
+        } else if ( callFlags & BubbleManagerIF::Video ) {
+            icon.setIconName("qtg_large_video_call_active");
+        } else {
+            icon.setIconName("qtg_large_active_call");
+        }
+        break;
+    case BubbleManagerIF::OnHold:
+        if ( callFlags & BubbleManagerIF::VoIPCall ) {
+            icon.setIconName("qtg_large_voip_call_waiting");
+        } else if ( callFlags & BubbleManagerIF::Video ) {
+            icon.setIconName("qtg_large_video_call_waiting");
+        } else {
+            icon.setIconName("qtg_large_waiting_call");
+        }
+        break;
+    case BubbleManagerIF::Disconnected:
+    case BubbleManagerIF::AlertToDisconnected:
+        if ( callFlags & BubbleManagerIF::VoIPCall ) {
+            icon.setIconName("qtg_large_end_call");
+        } else if ( callFlags & BubbleManagerIF::Video ) {
+            icon.setIconName("qtg_large_end_call");
+        } else {
+            icon.setIconName("qtg_large_end_call");
+        }
+        break;
+    default:
+        icon.setIcon(HbIcon());
+        showIcon = false;
+        break;
     }
 
+    if (showIcon) {
+        icon.show();
+    }
 }
 
+void BubbleUtils::setNumberTypeIcon(
+    int callState,
+    int callFlags,
+    HbIconItem& icon)
+{
+    if ( (( callState == BubbleManagerIF::Incoming ) ||
+          ( callState == BubbleManagerIF::Waiting )) &&
+         (callFlags & BubbleManagerIF::Diverted) ) {
+        icon.setIcon( HbIcon(":/qtg_mono_call_diverted.svg") );
+
+        // temporary, diverted icon is not yet in theme and
+        // because of that css coloring doesn't work
+        QColor color;
+        color = HbColorScheme::color("qtc_list_item_title_normal");
+        if (color.isValid()) {
+            icon.setColor(Qt::white);
+        }
+
+        icon.show();
+    } else {
+        icon.setIcon( HbIcon() );
+        icon.hide();
+    }
+}
+
+void BubbleUtils::setCipheringIcon(
+    int callState,
+    int callFlags,
+    HbIconItem& icon)
+{
+    Q_UNUSED(callState)
+
+    if (callFlags & BubbleManagerIF::NoCiphering) {
+        icon.setIcon( HbIcon("qtg_mono_ciphering_off") );
+        icon.show();
+    } else {
+        icon.setIcon( HbIcon() );
+        icon.hide();
+    }
+}
+
--- a/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubbleutils.h	Fri May 14 15:51:57 2010 +0300
@@ -23,29 +23,57 @@
 class BubbleHeader;
 class BubbleCallIndicator;
 class HbIconItem;
-class BubbleStyleOption;
-class HbPushButton;
+class BubbleButton;
 class HbAction;
+class HbTextItem;
 
 class BubbleUtils
     {
 public:
     static void setCallHeaderTexts3Lines(
         const BubbleHeader& header,
-        BubbleStyleOption& option );
+        HbTextItem& textLine1,
+        HbTextItem& textLine2,
+        HbTextItem& textLine3,
+        int& cliLineNumber,
+        int& timerLineNumber);
 
     static void setCallHeaderTexts2Lines(
         const BubbleHeader& header,
-        BubbleStyleOption& option );
+        HbTextItem& textLine1,
+        HbTextItem& textLine2,
+        int& cliLineNumber,
+        int& timerLineNumber);
 
     static bool compareHeaders(
         const BubbleHeader* header1,
-        const BubbleHeader* header2 );
+        const BubbleHeader* header2);
+
+    static void setButtonStyleForAction(
+        BubbleButton& button,
+        const HbAction& action);
+
+    static void setCallStatusIcon(
+        int callState,
+        int callFlags,
+        HbIconItem& icon);
 
-    static QString stylePluginNameWithPath(const QString& pluginName);
+    static void setNumberTypeIcon(
+        int callState,
+        int callFlags,
+        HbIconItem& icon);
 
-    static void setButtonStyleForAction(HbPushButton& button,
-                                        const HbAction& action);
+    static void setCipheringIcon(
+        int callState,
+        int callFlags,
+        HbIconItem& icon);
+
+private:
+    static void setText(
+        HbTextItem& item,
+        const QString& text,
+        Qt::TextElideMode clip);
+
     };
 
 #endif /* BUBBLEUTILS_H_ */
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp	Fri May 14 15:51:57 2010 +0300
@@ -27,8 +27,7 @@
 #include "bubblecollapsedhandler.h"
 #include "bubbleconferencehandler.h"
 #include "bubbleparticipantlistitem.h"
-#include "bubblebuttonstyle.h"
-#include "hbpushbutton.h"
+#include "bubblebutton.h"
 #include "hbtextitem.h"
 
 const char *BUBBLE_DOCUMENT_CONTENT = "content";
@@ -37,19 +36,17 @@
 class BubbleDocumentLoader : public HbDocumentLoader
 {
 public:
-    BubbleDocumentLoader(BubbleImageManager& imageManager,
-                         const QString& stylePluginName);
+    BubbleDocumentLoader(BubbleImageManager& imageManager);
     virtual QObject *createObject(const QString& type,
                                   const QString &name);
 private:
     BubbleImageManager& mImageManager;
-    QString mStylePluginName;    
 };
 
 
 BubbleWidgetManager::BubbleWidgetManager(
-    BubbleImageManager& imageManager, int style, QObject* parent)
-    : QObject(parent), mImageManager(imageManager), mStyleBaseId(style),
+    BubbleImageManager& imageManager, QObject* parent)
+    : QObject(parent), mImageManager(imageManager),
       mOrientation(Qt::Vertical)
 {
     // .docml mappings
@@ -76,11 +73,6 @@
     mWidgetName.insert(ConferenceTimer,"callTimer");
     mWidgetName.insert(ParticipantList,"participantList");
     mWidgetName.insert(MutedIcon,      "mutedIcon");
-
-    mButtonStyle.insert(LeftButton, new BubbleButtonStyle());
-    mButtonStyle.insert(CenterButton, new BubbleButtonStyle());
-    mButtonStyle.insert(RightButton, new BubbleButtonStyle());
-    mButtonStyle.insert(ParticipantListButton, new BubbleButtonStyle()); // not needed??
 }
 
 BubbleWidgetManager::~BubbleWidgetManager()
@@ -94,8 +86,6 @@
     }
     qDeleteAll(mDocumentHandlers);
     mDocumentHandlers.clear();
-
-    qDeleteAll(mButtonStyle);
 }
 
 QGraphicsWidget* BubbleWidgetManager::view(View view)
@@ -119,7 +109,7 @@
     Qt::Orientation orientation)
 {
     BubbleDocumentLoader* loader =
-        new BubbleDocumentLoader(mImageManager,mStylePluginName);
+        new BubbleDocumentLoader(mImageManager);
     bool ok;
 
     loader->load(mFileNames[view],&ok);
@@ -136,34 +126,20 @@
     widget->setVisible(false);
     mDocumentContent.insert(view,widget);
 
-    applyCustomStyles(view);
-
     if (view!=MutedOverlay) {
         createDocumentHandlers(view);
     }
 
+    applyCustomStyles(view);
+
     return widget;
 }
 
 void BubbleWidgetManager::applyCustomStyles(View view)
 {
-    setButtonStyle(LeftButton, widget(view,ExpandedBubble,LeftButton));
-    setButtonStyle(CenterButton, widget(view,ExpandedBubble,CenterButton));
-    setButtonStyle(RightButton, widget(view,ExpandedBubble,RightButton));
-
     setBackground(widget(view,None,MutedIcon));
 }
 
-void BubbleWidgetManager::setButtonStyle(Widget widget, QGraphicsWidget* button)
-{
-    HbPushButton* b;
-    b = qobject_cast<HbPushButton*>(button);
-    if (b) {
-        Q_ASSERT(mButtonStyle.contains(widget));
-        b->setStyle(mButtonStyle.value(widget));
-    }
-}
-
 void BubbleWidgetManager::setBackground(QGraphicsWidget* widget)
 {
     HbWidget* w;
@@ -265,19 +241,12 @@
 
 QGraphicsWidget* BubbleWidgetManager::createParticipantListItem()
 {
-    return new BubbleParticipantListItem(mStylePluginName,
-                                         *mButtonStyle.value(ParticipantListButton));
-}
-
-void BubbleWidgetManager::setStylePluginName(const QString& name)
-{
-    mStylePluginName = name;
+    return new BubbleParticipantListItem();
 }
 
 // custom widget loading
-BubbleDocumentLoader::BubbleDocumentLoader(
-      BubbleImageManager& imageManager, const QString& stylePluginName)
-    : mImageManager(imageManager), mStylePluginName(stylePluginName)
+BubbleDocumentLoader::BubbleDocumentLoader(BubbleImageManager& imageManager)
+    : mImageManager(imageManager)
 {
 }
 
@@ -286,20 +255,25 @@
     const QString &name)
 {
     if ( type == BubbleContainerWidget::staticMetaObject.className() ) {
-        QObject *object = new BubbleContainerWidget(mStylePluginName);
+        QObject *object = new BubbleContainerWidget();
         object->setObjectName(name);
         return object;
     }
 
     if ( type == BubbleImageWidget::staticMetaObject.className() ) {
-        QObject *object = new BubbleImageWidget(
-            mStylePluginName, mImageManager);
+        QObject *object = new BubbleImageWidget(mImageManager);
         object->setObjectName(name);
         return object;
     }
 
     if ( type == BubbleHeadingWidget::staticMetaObject.className() ) {
-        QObject *object = new BubbleHeadingWidget(mStylePluginName);
+        QObject *object = new BubbleHeadingWidget();
+        object->setObjectName(name);
+        return object;
+    }
+
+    if ( type == BubbleButton::staticMetaObject.className() ) {
+        QObject *object = new BubbleButton;
         object->setObjectName(name);
         return object;
     }
--- a/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.h	Fri May 14 15:51:57 2010 +0300
@@ -24,7 +24,6 @@
 class QGraphicsWidget;
 class BubbleDocumentLoader;
 class BubbleHandler;
-class BubbleButtonStyle;
 class BubbleImageManager;
 
 class BubbleWidgetManager : public QObject
@@ -66,7 +65,6 @@
 public:
     BubbleWidgetManager(
         BubbleImageManager& imageManager,
-        int style,
         QObject* parent=0);
     virtual ~BubbleWidgetManager();
 
@@ -85,8 +83,6 @@
 
     QGraphicsWidget* createParticipantListItem();
 
-    void setStylePluginName(const QString& name);
-
 public slots:
     void handleOrientationChange(Qt::Orientation orientation);
 
@@ -99,8 +95,6 @@
 
 private:
     BubbleImageManager& mImageManager;
-    int mStyleBaseId;
-    QString mStylePluginName;
     Qt::Orientation mOrientation;
     QMap<int,BubbleDocumentLoader*>  mDocumentLoaders;
     QMap<int,QList<BubbleHandler*>*> mDocumentHandlers;
@@ -111,7 +105,6 @@
     QMap<int,QString> mWidgetPrefix;
     QMap<int,QString> mWidgetName;
     QMap<int,QString> mOrientationName;
-    QMap<int,BubbleButtonStyle*> mButtonStyle;
 };
 
 #endif // BUBBLEWIDGETMANAGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/themes/icons/hbdefault/scalable/qtg_mono_call_diverted.svg	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg width="32" height="32" viewBox="0 0 32 32">
+<polygon points="20.57,25.147 4.998,25.147 4.998,28.813 22.889,28.819 25.58,24.735 22.346,22.573 "/>
+<polygon points="20.492,21.345 22.346,22.573 25.58,24.735 25.602,24.751 27.445,26.001 28.82,16.104 "/>
+</svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_1.docml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.1">
+    <widget name="content" type="HbWidget">
+        <widget name="expandedBubble" type="BubbleContainerWidget">
+            <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
+                <sizehint height="13.0un" type="PREFERRED"/>
+                <integer name="lines" value="3"/>
+            </widget>
+            <widget name="eb:callImage" type="BubbleImageWidget">
+            </widget>
+            <widget name="eb:centerButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="28.0un" type="PREFERRED"/>
+            </widget>
+            <widget name="eb:leftButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="28.0un" type="PREFERRED"/>                
+            </widget>
+            <widget name="eb:rightButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="28.0un" type="PREFERRED"/>                
+            </widget>
+        </widget>
+    </widget>
+
+<section name="portrait">
+    <layout type="anchor" widget="content">
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="" dstEdge="TOP"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+    
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="3.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+    </layout>
+</section>
+
+<section name="landscape">
+    <layout type="anchor" widget="content">
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="" dstEdge="TOP"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+
+    <layout type="anchor" widget="expandedBubble">        
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:leftButton" dstEdge="LEFT"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="eb:bubbleHeading" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-2.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:leftButton" dstEdge="RIGHT" spacing="-2.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
+        
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+</section>
+
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_2.docml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.1">
+    <widget name="content" type="HbWidget">
+<section name="portrait">
+        <widget name="collapsedBubble" type="BubbleContainerWidget">
+            <sizehint height="11.0un" type="FIXED"/>
+            <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="2"/>
+            </widget>
+        </widget>
+</section>
+<section name="landscape">        
+        <widget name="collapsedBubble" type="BubbleContainerWidget">
+            <sizehint height="9.0un" type="FIXED"/>
+            <real name="z" value="-1.0"/>
+            <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="1"/>
+            </widget>
+        </widget>
+</section>            
+        
+        <widget name="expandedBubble" type="BubbleContainerWidget">
+            <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
+                <sizehint height="14.0un" type="PREFERRED"/>
+                <integer name="lines" value="3"/>
+            </widget>
+            <widget name="eb:callImage" type="BubbleImageWidget">
+            </widget>
+            <widget name="eb:centerButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="28.0un" type="PREFERRED"/>                
+            </widget>
+            <widget name="eb:leftButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="28.0un" type="PREFERRED"/>                
+            </widget>
+            <widget name="eb:rightButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="28.0un" type="PREFERRED"/>                
+            </widget>
+        </widget>
+        
+    </widget>
+
+<section name="portrait">
+
+    <layout type="anchor" widget="content">
+        <anchoritem src="collapsedBubble" srcEdge="TOP" dst="" dstEdge="TOP"/>        
+        <anchoritem src="collapsedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="collapsedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="collapsedBubble" dstEdge="BOTTOM"/>
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+
+    <layout type="anchor" widget="collapsedBubble">
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-10.75un"/>
+        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="10.75un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="3.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+    </layout>
+</section>
+
+<section name="landscape">
+    <layout type="anchor" widget="content">
+        <anchoritem src="collapsedBubble" srcEdge="TOP" dst="" dstEdge="TOP"/>        
+        <anchoritem src="collapsedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="collapsedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="collapsedBubble" dstEdge="BOTTOM"/>
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+
+    <layout type="anchor" widget="collapsedBubble">
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+    
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="eb:bubbleHeading" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-10.5un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:leftButton" dstEdge="RIGHT" spacing="-2.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>    
+    
+</section>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_3.docml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.1">
+    <widget name="content" type="HbWidget">
+<section name="portrait">
+        <widget name="collapsedBubble2" type="BubbleContainerWidget">
+            <sizehint height="11.0un" type="FIXED"/>
+            <widget name="cb2:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="2"/>
+            </widget>
+        </widget>
+
+        <widget name="collapsedBubble" type="BubbleContainerWidget">
+            <sizehint height="11.0un" type="FIXED"/>
+            <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="2"/>
+            </widget>
+        </widget>
+
+        <widget name="expandedBubble" type="BubbleContainerWidget">
+            <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
+                <sizehint height="13.0un" type="PREFERRED"/>
+                <integer name="lines" value="3"/>
+            </widget>
+            <widget name="eb:callImage" type="BubbleImageWidget">
+            </widget>
+            <widget name="eb:centerButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="20.0un" type="PREFERRED"/>
+            </widget>
+            <widget name="eb:leftButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="20.0un" type="PREFERRED"/>                
+            </widget>
+            <widget name="eb:rightButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="20.0un" type="PREFERRED"/>                
+            </widget>
+        </widget>
+
+</section>
+
+<section name="landscape">        
+        <widget name="collapsedBubble2" type="BubbleContainerWidget">
+            <sizehint height="9.0un" type="FIXED"/>
+            <real name="z" value="-1.0"/>           
+            <widget name="cb2:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="1"/>
+            </widget>
+        </widget>
+
+        <widget name="collapsedBubble" type="BubbleContainerWidget">
+            <sizehint height="9.0un" type="FIXED"/>
+            <real name="z" value="-1.0"/>
+            <widget name="cb:bubbleHeading" type="BubbleHeadingWidget">
+                <integer name="lines" value="1"/>
+            </widget>
+        </widget>
+
+        <widget name="expandedBubble" type="BubbleContainerWidget">
+            <widget name="eb:bubbleHeading" type="BubbleHeadingWidget">
+                <sizehint height="13.0un" type="PREFERRED"/>
+                <integer name="lines" value="2"/>
+            </widget>
+            <widget name="eb:callImage" type="BubbleImageWidget">
+            </widget>
+            <widget name="eb:centerButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="20.0un" type="PREFERRED"/>                
+            </widget>
+            <widget name="eb:leftButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="20.0un" type="PREFERRED"/>
+            </widget>
+            <widget name="eb:rightButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+                <sizehint width="20.0un" type="PREFERRED"/>
+            </widget>
+        </widget>
+</section>
+
+    </widget>
+
+<section name="portrait">
+
+    <layout type="anchor" widget="content">
+        <anchoritem src="collapsedBubble2" srcEdge="TOP" dst="" dstEdge="TOP"/>        
+        <anchoritem src="collapsedBubble2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="collapsedBubble2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="collapsedBubble" srcEdge="TOP" dst="collapsedBubble2" dstEdge="BOTTOM"/>        
+        <anchoritem src="collapsedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="collapsedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>        
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="collapsedBubble" dstEdge="BOTTOM"/>
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+
+    <layout type="anchor" widget="collapsedBubble2">
+        <anchoritem src="cb2:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>        
+        <anchoritem src="cb2:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+
+    <layout type="anchor" widget="collapsedBubble">
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="BOTTOM" dst="eb:callImage" dstEdge="TOP" spacing="2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-14.75un"/>
+        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="14.75un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP"  spacing="3.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+    </layout>
+</section>
+
+<section name="landscape">
+    <layout type="anchor" widget="content">
+        <anchoritem src="collapsedBubble2" srcEdge="TOP" dst="" dstEdge="TOP"/>        
+        <anchoritem src="collapsedBubble2" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="collapsedBubble2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+
+        <anchoritem src="collapsedBubble" srcEdge="TOP" dst="collapsedBubble2" dstEdge="BOTTOM"/>        
+        <anchoritem src="collapsedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="collapsedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>        
+        
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="collapsedBubble" dstEdge="BOTTOM"/>
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+
+    <layout type="anchor" widget="collapsedBubble2">
+        <anchoritem src="cb2:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
+        <anchoritem src="cb2:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="cb2:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+
+    <layout type="anchor" widget="collapsedBubble">
+        <anchoritem src="cb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>        
+        <anchoritem src="cb:bubbleHeading" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="cb:bubbleHeading" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>    
+
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:bubbleHeading" srcEdge="LEFT" dst="eb:callImage" dstEdge="RIGHT" spacing="-2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="RIGHT" dst="eb:centerButton" dstEdge="LEFT" spacing="2.0un"/>
+        <anchoritem src="eb:bubbleHeading" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        
+        <anchoritem src="eb:leftButton" srcEdge="CENTERH" dst="eb:centerButton" dstEdge="CENTERH" spacing="2.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        
+        <anchoritem src="eb:rightButton" srcEdge="CENTERH" dst="eb:centerButton" dstEdge="CENTERH" spacing="2.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+        
+        <anchoritem src="eb:callImage" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="RIGHT" dst="" dstEdge="LEFT" spacing="-20.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:callImage" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>    
+    
+</section>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_4.docml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.1">
+    <widget name="content" type="HbWidget">
+        <widget name="expandedBubble" type="BubbleContainerWidget">
+            <widget name="eb:participantList" type="HbListView">
+            </widget>
+            <widget name="eb:callTimer" type="HbLabel">
+                <string name="text" value="00:01"/>
+                <sizehint height="4.0un" width="22.0un" type="FIXED"/>
+            </widget>            
+            <widget name="eb:centerButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+            </widget>
+            <widget name="eb:leftButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+            </widget>
+            <widget name="eb:rightButton" type="BubbleButton">
+                <sizehint height="9.0un" type="FIXED"/>
+            </widget>
+        </widget>
+    </widget>
+
+<section name="portrait">
+    <layout type="anchor" widget="content">
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="" dstEdge="TOP"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+    
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:participantList" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:participantList" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+        <anchoritem src="eb:participantList" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:participantList" srcEdge="BOTTOM" dst="eb:callTimer" dstEdge="TOP" spacing="2.0un"/>
+        <anchoritem src="eb:callTimer" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:callTimer" srcEdge="BOTTOM" dst="eb:centerButton" dstEdge="TOP" spacing="3.0un"/>        
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-4.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="4.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="16.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="4.0un"/>
+    </layout>
+</section>
+
+<section name="landscape">
+    <layout type="anchor" widget="content">
+        <anchoritem src="expandedBubble" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+        <anchoritem src="expandedBubble" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+        <anchoritem src="expandedBubble" srcEdge="TOP" dst="" dstEdge="TOP"/>
+        <anchoritem src="expandedBubble" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+    </layout>
+
+    <layout type="anchor" widget="expandedBubble">
+        <anchoritem src="eb:callTimer" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+        <anchoritem src="eb:callTimer" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-2.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-13.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="13.0un"/>
+        <anchoritem src="eb:centerButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="RIGHT" dst="eb:centerButton" dstEdge="CENTERH" spacing="1.0un"/>
+        <anchoritem src="eb:leftButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="LEFT" dst="eb:centerButton" dstEdge="CENTERH" spacing="-1.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="1.0un"/>
+        <anchoritem src="eb:rightButton" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="3.0un"/>        
+        <anchoritem src="eb:participantList" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+        <anchoritem src="eb:participantList" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="2.0un"/>
+        <anchoritem src="eb:participantList" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="eb:participantList" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>
+    </layout>
+</section>
+
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubble_layout_5.docml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.1">
+    <widget name="content" type="HbWidget">
+
+<section name="portrait">    
+        <widget name="mutedIcon" type="HbLabel">
+            <real name="z" value="10.0"/>
+            <icon name="icon" iconName="qtg_large_call_muted"/>
+            <sizehint height="25.5un" width="25.5un" type="PREFERRED"/>
+        </widget>            
+</section>            
+<section name="landscape">    
+        <widget name="mutedIcon" type="HbLabel">
+            <real name="z" value="10.0"/>
+            <icon name="icon" iconName="qtg_large_call_muted"/>
+            <sizehint height="19.0un" width="19.0un" type="PREFERRED"/>
+        </widget>            
+</section>
+    </widget>
+
+<section name="portrait">
+    <layout type="anchor" widget="content">
+        <anchoritem src="mutedIcon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-26.0un"/>
+        <anchoritem src="mutedIcon" srcEdge="CENTERH" dst="" dstEdge="CENTERH"/>
+    </layout>
+</section>
+
+<section name="landscape">
+    <layout type="anchor" widget="content">
+        <anchoritem src="mutedIcon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-2.0un"/>
+        <anchoritem src="mutedIcon" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="21.0un"/>        
+    </layout>
+</section>
+
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.css	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,70 @@
+
+
+BubbleHeadingWidget[layoutOption="three_lines"]
+{
+    layout: three_lines_layout;
+}
+
+BubbleHeadingWidget[layoutOption="two_lines"]
+{
+    layout: two_lines_layout;
+}
+
+BubbleHeadingWidget[layoutOption="one_line"]
+{
+    layout: one_line_layout;
+}
+
+BubbleHeadingWidget:text_line_1
+{
+    preferred-height: var(hb-param-text-height-primary);
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption!="one_line"]
+{
+    preferred-height: var(hb-param-text-height-primary);
+    preferred-width: -1;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    top: -var(hb-param-margin-gene-middle-vertical);
+    text-align: left;
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption="one_line"]
+{
+    preferred-height: var(hb-param-text-height-primary);
+    preferred-width: 30un;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-align: right;
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:text_line_3
+{
+    preferred-height: var(hb-param-text-height-primary);
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    top: -var(hb-param-margin-gene-middle-vertical);
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:status_icon
+{
+    fixed-width:   var(hb-param-graphic-size-primary-large);
+    fixed-height:  var(hb-param-graphic-size-primary-large);
+}
+
+BubbleHeadingWidget:number_type_icon
+{
+    fixed-height: var(hb-param-graphic-size-secondary);
+    fixed-width:  var(hb-param-graphic-size-secondary);
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:ciphering_icon
+{
+    fixed-height: 2.5un;
+    fixed-width:  2.5un;
+    color: var(qtc_list_item_title_normal);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleheadingwidget.widgetml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,63 @@
+<hbwidget version="0.1" type="be">  
+  <layout name="three_lines_layout" type="mesh">
+    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
+    
+    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
+    
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    
+    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+  </layout>
+
+  <layout name="two_lines_layout" type="mesh">
+    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
+
+    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
+    
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+  </layout>
+
+  <layout name="one_line_layout" type="mesh">
+    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="status_icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    
+    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
+    
+    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
+    
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT"/>
+    
+    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+  </layout>
+  
+</hbwidget>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleimagewidget.css	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,7 @@
+
+
+BubbleImageWidget
+{
+    layout: avatar_layout;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleimagewidget.widgetml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,11 @@
+<hbwidget version="0.1" type="bi">  
+
+  <layout name="avatar_layout" type="mesh">
+    <meshitem src="default_avatar" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="default_avatar" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    <meshitem src="default_avatar" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="default_avatar" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+  </layout>
+  
+</hbwidget>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.css	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,44 @@
+
+BubbleParticipantListItem[layoutOption="collapsed"] {
+    layout:collapsed;
+}
+
+BubbleParticipantListItem[layoutOption="expanded"] {
+    layout:expanded;
+}
+
+BubbleParticipantListItem::icon {
+    fixed-width: var(hb-param-graphic-size-primary-medium);
+    fixed-height: var(hb-param-graphic-size-primary-medium);
+}
+
+BubbleParticipantListItem::ciphering {
+    fixed-width: 2.0un;
+    fixed-height: 2.0un;
+    left: (hb-param-margin-gene-middle-horizontal);
+    top: (hb-param-margin-gene-middle-vertical);
+    color: var(qtc_list_item_title_normal);   
+}
+
+BubbleParticipantListItem::expand-indi {
+    fixed-width: var(hb-param-graphic-size-primary-small);
+    fixed-height: var(hb-param-graphic-size-primary-small);
+    right: var(hb-param-margin-gene-middle-horizontal);
+}
+
+BubbleParticipantListItem::text
+{
+    text-height: var(hb-param-text-height-primary);
+	  font-variant: primary;
+	  color: var(qtc_list_item_title_normal);
+	  left: var(hb-param-margin-gene-middle-horizontal);
+	  right: var(hb-param-margin-gene-middle-horizontal);
+}
+
+BubbleParticipantListItem::button-1 {
+    fixed-height: 9.0un;
+}
+
+BubbleParticipantListItem::button-2 {
+    fixed-height: 9.0un;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/bubblecore/xml/bubbleparticipantlistitem.widgetml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,62 @@
+<hbwidget version="0.1" type="bl">
+
+  <layout name="collapsed" type="mesh">
+    
+    <meshitem src="icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="icon" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="1.0un" spacer="spacer1"/>
+    <meshitem src="icon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="1.0un" spacer="spacer2"/>
+    
+    <meshitem src="ciphering" srcEdge="LEFT" dst="icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering" srcEdge="TOP" dst="icon" dstEdge="TOP"/>
+
+    <meshitem src="text" srcEdge="LEFT" dst="icon" dstEdge="RIGHT"/>
+    <meshitem src="text" srcEdge="RIGHT" dst="expand-indi" dstEdge="LEFT"/>
+    <meshitem src="text" srcEdge="CENTERV" dst="icon" dstEdge="CENTERV"/>
+    
+    <meshitem src="expand-indi" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="expand-indi" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+
+  </layout>
+  
+  <layout name="expanded" type="mesh">
+    
+    <meshitem src="icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="icon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+    <meshitem src="icon" srcEdge="BOTTOM" dst="button-1" dstEdge="TOP" spacing="1.0un"/>
+    
+    <meshitem src="ciphering" srcEdge="LEFT" dst="icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering" srcEdge="TOP" dst="icon" dstEdge="TOP"/>
+
+    <meshitem src="text" srcEdge="LEFT" dst="icon" dstEdge="RIGHT"/>
+    <meshitem src="text" srcEdge="RIGHT" dst="expand-indi" dstEdge="LEFT"/>
+    <meshitem src="text" srcEdge="CENTERV" dst="icon" dstEdge="CENTERV"/>
+    
+    <meshitem src="expand-indi" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="expand-indi" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
+    
+    <meshitem src="button-1" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
+    <meshitem src="button-1" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
+    <meshitem src="button-1" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
+    
+    <meshitem src="button-2" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
+    <meshitem src="button-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
+    <meshitem src="button-2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
+    
+  </layout>  
+
+</hbwidget>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- a/phoneuis/bubblemanager2/bubblemanager2.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/bubblemanager2.pro	Fri May 14 15:51:57 2010 +0300
@@ -30,15 +30,6 @@
     BLD_INF_RULES.prj_exports += \
     "$${LITERAL_HASH}include <platform_paths.hrh>" \
     "./rom/bubblemanager.iby    CORE_APP_LAYER_IBY_EXPORT_PATH(bubblemanager.iby)"
-
-    # qt plugin stub
-    pluginstub.sources += bubblestyleplugin.dll
-    pluginstub.path = $$QT_PLUGINS_BASE_DIR/phone
-    DEPLOYMENT += pluginstub
-    # for target
-    BLD_INF_RULES.prj_exports += \
-    "./qmakepluginstubs/bubblestyleplugin.qtplugin  /$$HW_ZDIR$$RESOURCE_FILES_DIR/qt/plugins/phone/bubblestyleplugin.qtplugin"    
 }
 
 SUBDIRS += ./bubblecore
-SUBDIRS += ./bubblestyle
\ No newline at end of file
--- a/phoneuis/bubblemanager2/bubblestyle/bubblestyle.pro	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#
-TEMPLATE = lib
-TARGET = bubblestyleplugin
-CONFIG += plugin hb
-INCLUDEPATH += . ../inc
-
-win32 {
-    INCLUDEPATH += c:/hb/include/hbcore c:/hb/include/hbwidgets
-    DESTDIR = c:/hb/lib
-    DLLDESTDIR = c:/hb/bin
-}
-
-symbian:TARGET.EPOCALLOWDLLDATA = 1
-symbian:TARGET.CAPABILITY = CAP_GENERAL_DLL
-symbian:TARGET.UID3 = 0x20029F89
-
-# Input
-include(src/bubblestyle.pri)
-RESOURCES += bubblestyle.qrc
--- a/phoneuis/bubblemanager2/bubblestyle/bubblestyle.qrc	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file alias="qgn_indi_call_diverted.svg">resources/qgn_indi_call_diverted.svg</file>
-        <file alias="bubbleparticipantlistitem.widgetml">layout/bubbleparticipantlistitem.widgetml</file>
-        <file alias="bubbleparticipantlistitem.css">layout/bubbleparticipantlistitem.css</file>
-        <file alias="bubbleheadingwidget.widgetml">layout/bubbleheadingwidget.widgetml</file>
-        <file alias="bubbleheadingwidget.css">layout/bubbleheadingwidget.css</file>
-        <file alias="bubbleimagewidget.widgetml">layout/bubbleimagewidget.widgetml</file>
-        <file alias="bubbleimagewidget.css">layout/bubbleimagewidget.css</file>
-    </qresource>
-</RCC>
--- a/phoneuis/bubblemanager2/bubblestyle/layout/bubbleheadingwidget.css	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-
-
-BubbleHeadingWidget[layoutOption="three_lines"]
-{
-    layout: three_lines_layout;
-}
-
-BubbleHeadingWidget[layoutOption="two_lines"]
-{
-    layout: two_lines_layout;
-}
-
-BubbleHeadingWidget[layoutOption="one_line"]
-{
-    layout: one_line_layout;
-}
-
-BubbleHeadingWidget:text_line_1
-{
-    preferred-height: var(hb-param-text-height-primary);
-    left: -var(hb-param-margin-gene-middle-horizontal);
-}
-
-BubbleHeadingWidget:text_line_2[layoutOption!="one_line"]
-{
-    preferred-height: var(hb-param-text-height-primary);
-    preferred-width: -1;
-    left: -var(hb-param-margin-gene-middle-horizontal);
-    top: -var(hb-param-margin-gene-middle-vertical);
-    text-align: left;
-}
-
-BubbleHeadingWidget:text_line_2[layoutOption="one_line"]
-{
-    preferred-height: var(hb-param-text-height-primary);
-    preferred-width: 30un;
-    left: -var(hb-param-margin-gene-middle-horizontal);
-    text-align: right;
-}
-
-BubbleHeadingWidget:text_line_3
-{
-    preferred-height: var(hb-param-text-height-primary);
-    left: -var(hb-param-margin-gene-middle-horizontal);
-    top: -var(hb-param-margin-gene-middle-vertical);
-}
-
-BubbleHeadingWidget:status_icon
-{
-    fixed-width:   var(hb-param-graphic-size-primary-large);
-    fixed-height:  var(hb-param-graphic-size-primary-large);
-}
-
-BubbleHeadingWidget:number_type_icon
-{
-    fixed-height: var(hb-param-graphic-size-secondary);
-    fixed-width:  var(hb-param-graphic-size-secondary);
-}
-
-BubbleHeadingWidget:ciphering_icon
-{
-    fixed-height: 2.5un;
-    fixed-width:  2.5un;
-}
--- a/phoneuis/bubblemanager2/bubblestyle/layout/bubbleheadingwidget.widgetml	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-<hbwidget version="0.1" type="be">  
-  <layout name="three_lines_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-    
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
-    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    
-    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
-    <meshitem src="text_line_3" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-  </layout>
-
-  <layout name="two_lines_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    
-    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
-  </layout>
-
-  <layout name="one_line_layout" type="mesh">
-    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="status_icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    
-    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
-    
-    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
-    
-    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
-    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT"/>
-    
-    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-  </layout>
-  
-</hbwidget>
-
--- a/phoneuis/bubblemanager2/bubblestyle/layout/bubbleimagewidget.css	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-
-
-BubbleImageWidget
-{
-    layout: avatar_layout;
-}
-
--- a/phoneuis/bubblemanager2/bubblestyle/layout/bubbleimagewidget.widgetml	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<hbwidget version="0.1" type="bi">  
-
-  <layout name="avatar_layout" type="mesh">
-    <meshitem src="default_avatar" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="default_avatar" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    <meshitem src="default_avatar" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="default_avatar" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
-  </layout>
-  
-</hbwidget>
-
--- a/phoneuis/bubblemanager2/bubblestyle/layout/bubbleparticipantlistitem.css	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-
-BubbleParticipantListItem[layoutOption="collapsed"] {
-    layout:collapsed;
-}
-
-BubbleParticipantListItem[layoutOption="expanded"] {
-    layout:expanded;
-}
-
-BubbleParticipantListItem::icon {
-    fixed-width: var(hb-param-graphic-size-primary-medium);
-    fixed-height: var(hb-param-graphic-size-primary-medium);
-}
-
-BubbleParticipantListItem::ciphering {
-    fixed-width: 2.0un;
-    fixed-height: 2.0un;
-    left: (hb-param-margin-gene-middle-horizontal);
-    top: (hb-param-margin-gene-middle-vertical)
-}
-
-BubbleParticipantListItem::expand-indi {
-    fixed-width: var(hb-param-graphic-size-primary-small);
-    fixed-height: var(hb-param-graphic-size-primary-small);
-    right: var(hb-param-margin-gene-middle-horizontal);
-}
-
-BubbleHeadingWidget:text
-{
-    preferred-height: var(hb-param-text-height-primary);
-	  left: var(hb-param-margin-gene-middle-horizontal);
-	  right: var(hb-param-margin-gene-middle-horizontal);
-}
-
-BubbleParticipantListItem::button-1 {
-    fixed-height: 9.0un;
-}
-
-BubbleParticipantListItem::button-2 {
-    fixed-height: 9.0un;
-}
-
-BubbleParticipantListItem::background{
-	left:0.0;
-	right:0.0;
-	top:0.0;
-	bottom:0.0;
-}
--- a/phoneuis/bubblemanager2/bubblestyle/layout/bubbleparticipantlistitem.widgetml	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-<hbwidget version="0.1" type="bl">
-
-  <layout name="collapsed" type="mesh">
-    
-    <meshitem src="icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    
-    <meshitem src="ciphering" srcEdge="LEFT" dst="icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering" srcEdge="TOP" dst="icon" dstEdge="TOP"/>
-
-    <meshitem src="text" srcEdge="LEFT" dst="icon" dstEdge="RIGHT"/>
-    <meshitem src="text" srcEdge="RIGHT" dst="expand-indi" dstEdge="LEFT"/>
-    <meshitem src="text" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    
-    <meshitem src="expand-indi" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="expand-indi" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
-    
-    <meshitem src="background" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="background" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    <meshitem src="background" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="background" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
-
-  </layout>
-  
-  <layout name="expanded" type="mesh">
-    
-    <meshitem src="icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="icon" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
-    <meshitem src="icon" srcEdge="BOTTOM" dst="button-1" dstEdge="TOP" spacing="1.0un"/>
-    
-    <meshitem src="ciphering" srcEdge="LEFT" dst="icon" dstEdge="LEFT"/>
-    <meshitem src="ciphering" srcEdge="TOP" dst="icon" dstEdge="TOP"/>
-
-    <meshitem src="text" srcEdge="LEFT" dst="icon" dstEdge="RIGHT"/>
-    <meshitem src="text" srcEdge="RIGHT" dst="expand-indi" dstEdge="LEFT"/>
-    <meshitem src="text" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un" />
-    
-    <meshitem src="expand-indi" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="expand-indi" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-1.5un"/>
-    
-    <meshitem src="button-1" srcEdge="RIGHT" dst="" dstEdge="CENTERH" spacing="1.0un"/>
-    <meshitem src="button-1" srcEdge="LEFT" dst="" dstEdge="LEFT" spacing="-2.0un"/>
-    <meshitem src="button-1" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
-    
-    <meshitem src="button-2" srcEdge="LEFT" dst="" dstEdge="CENTERH" spacing="-1.0un"/>
-    <meshitem src="button-2" srcEdge="RIGHT" dst="" dstEdge="RIGHT" spacing="2.0un"/>
-    <meshitem src="button-2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM" spacing="2.0un"/>        
-   
-    <meshitem src="background" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-    <meshitem src="background" srcEdge="TOP" dst="" dstEdge="TOP"/>
-    <meshitem src="background" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-    <meshitem src="background" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
-    
-  </layout>  
-
-</hbwidget>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/phoneuis/bubblemanager2/bubblestyle/resources/qgn_indi_call_diverted.svg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg width="32" height="32" viewBox="0 0 32 32">
-<polygon points="20.57,25.147 4.998,25.147 4.998,28.813 22.889,28.819 25.58,24.735 22.346,22.573 "/>
-<polygon points="20.492,21.345 22.346,22.573 25.58,24.735 25.602,24.751 27.445,26.001 28.82,16.104 "/>
-</svg>
\ No newline at end of file
--- a/phoneuis/bubblemanager2/bubblestyle/src/bubbleanimiconitem.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Animated icon.
-*
-*/
-
-#include <QTimer>
-#include <QGraphicsSceneResizeEvent>
-#include "bubbleanimiconitem.h"
-
-BubbleAnimIconItem::BubbleAnimIconItem( int interval, QGraphicsItem* parent )
-    : HbIconItem( parent ), mInterval(interval), mAnimationTimerId(0)
-{
-    reset();
-}
-
-BubbleAnimIconItem::~BubbleAnimIconItem()
-{
-    reset();
-}
-
-void BubbleAnimIconItem::appendIcon( const QString& iconName )
-{
-    HbIcon* icon = new HbIcon(iconName);
-    icon->setSize(rect().size());
-    mFrames.append(icon);
-    if (mFrames.count()==1) {
-        setIcon(*icon); // initial frame
-    }
-}
-
-void BubbleAnimIconItem::startAnimation(int interval)
-{
-    mAnimationTimerId = startTimer(interval);
-}
-
-void BubbleAnimIconItem::stopAnimation()
-{
-     if ( mAnimationTimerId ) {
-         killTimer(mAnimationTimerId);
-         mAnimationTimerId = 0;
-     }
-}
-
-void BubbleAnimIconItem::reset()
-{
-    stopAnimation();
-    foreach (HbIcon* icon, mFrames) {
-        delete icon;
-    }
-    mFrames.clear();
-    mCurrentFrame = 0;
-}
-
-void BubbleAnimIconItem::timerEvent(QTimerEvent *event)
-{
-   Q_UNUSED(event)
-   
-   mCurrentFrame = (mCurrentFrame + 1) % mFrames.count();
-   setIcon(*mFrames.at(mCurrentFrame));
-   update();
-}
-
-void BubbleAnimIconItem::paint(
-    QPainter *painter,
-    const QStyleOptionGraphicsItem *option,
-    QWidget *widget )
-{
-    HbIconItem::paint( painter, option, widget );
-
-    if ( mFrames.count() && mAnimationTimerId == 0 ) {
-        startAnimation(mInterval); // begin animation
-    }
-}
-
-QVariant BubbleAnimIconItem::itemChange(
-    GraphicsItemChange change,
-    const QVariant& value )
-{
-    if (change==QGraphicsItem::ItemVisibleHasChanged) {
-        if (mAnimationTimerId && value.toBool()==false) {
-            stopAnimation(); // stop animation when going invisible
-        }
-    }
-
-    return HbIconItem::itemChange( change, value );
-}
-
-void BubbleAnimIconItem::resizeEvent(QGraphicsSceneResizeEvent *event)
-{
-    HbIconItem::resizeEvent(event);
-    foreach (HbIcon* icon, mFrames) {
-        icon->setSize(event->newSize());
-    }
-}
--- a/phoneuis/bubblemanager2/bubblestyle/src/bubbleanimiconitem.h	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Animated icon.
-*
-*/
-
-#ifndef BUBBLEANIMICONITEM_H_
-#define BUBBLEANIMICONITEM_H_
-
-#include <QObject>
-#include <hbiconitem.h>
-
-class BubbleAnimIconItem : public HbIconItem
-    {
-    Q_OBJECT // for timer
-    
-public:
-    explicit BubbleAnimIconItem( int interval, QGraphicsItem* parent = 0 );
-    virtual ~BubbleAnimIconItem();
-    
-    void appendIcon( const QString& iconName );
-    void reset();
-
-protected:
-    void startAnimation(int interval);
-    void stopAnimation();
-    void timerEvent(QTimerEvent *event);
-    void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
-    QVariant itemChange ( GraphicsItemChange change, const QVariant & value ); 
-    void resizeEvent( QGraphicsSceneResizeEvent * event );
-    
-protected:
-    int     mInterval;
-    int     mAnimationTimerId;
-    int     mCurrentFrame;
-    QList<HbIcon*> mFrames;
-    };
-
-#endif /* BUBBLEANIMICONITEM_H_ */
--- a/phoneuis/bubblemanager2/bubblestyle/src/bubblestyle.pri	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#
-HEADERS += src/bubblestyleplugin.h \
-           src/bubbleanimiconitem.h
-           
-SOURCES += src/bubblestyleplugin.cpp \
-           src/bubbleanimiconitem.cpp
-           
--- a/phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Bubble style plugin.
-*
-*/
-
-#include "bubblestyleplugin.h"
-#include "bubblestyleoption.h"
-#include "bubbleprimitives.h"
-#include "bubbleanimiconitem.h"
-
-#include <hbstyle.h>
-#include <hbiconitem.h>
-#include <hbtextitem.h>
-#include <hbframeitem.h>
-#include <hbframedrawer.h>
-#include <hbfontspec.h>
-#include <hbdeviceprofile.h>
-#include <hbcolorscheme.h>
-#include <hbstringutil.h>
-
-static const int BUBBLE_ICON_ANIM_INTERVAL = 500; // ms
-
-BubbleStylePlugin::BubbleStylePlugin()
-{
-    mCliFont = new HbFontSpec(HbFontSpec::Primary);
-    mTextFont = new HbFontSpec(HbFontSpec::Secondary);
-    mTimerFont = new HbFontSpec(HbFontSpec::Secondary);
-
-    HbDeviceProfile profile;
-    mCliFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
-    mTextFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
-    mTimerFont->setTextHeight(4*HbDeviceProfile::current().unitValue());
-}
-
-BubbleStylePlugin::~BubbleStylePlugin()
-{
-    delete mCliFont;
-    delete mTextFont;
-    delete mTimerFont;
-}
-
-int BubbleStylePlugin::primitiveCount() const
-{
-    return BP_Bubble_primitive_count;
-}
-
-QGraphicsItem* BubbleStylePlugin::createPrimitive(
-    HbStyle::Primitive primitive, 
-    QGraphicsItem *parent) const
-{
-    QGraphicsItem* item = 0;
-    
-    switch(primitive) {
-    case BP_Bubble_frame: {
-        HbFrameItem* frame = new HbFrameItem(parent);
-        frame->setZValue(-1.0);
-        HbFrameDrawer *drawer = new HbFrameDrawer();
-        frame->setFrameDrawer( drawer ); // takes ownership
-        item = frame;
-        }
-        break;
-    case BP_Text1_text:
-    case BP_Text2_text:
-    case BP_Text3_text: {
-        HbTextItem* text = new HbTextItem(parent);
-        item = text;
-        }
-        break;    
-    case BP_CallStatus_icon: {
-        BubbleAnimIconItem* anim =
-            new BubbleAnimIconItem(BUBBLE_ICON_ANIM_INTERVAL,parent);
-        item = anim;
-        }
-        break;
-    case BP_NumberType_icon: {
-        HbIconItem* icon = new HbIconItem(parent);
-        item = icon;
-        }
-        break;
-    case BP_Ciphering_icon: {
-        HbIconItem* icon = new HbIconItem(parent);
-        item = icon;
-        }
-        break;
-    case BP_DefaultAvatar_icon: {
-        HbIconItem* icon = new HbIconItem(parent);
-        item = icon;
-        }
-    default:
-        break;
-    } // switch
-
-    return item;    
-}
-
-void BubbleStylePlugin::updatePrimitive(
-    QGraphicsItem *item,
-    HbStyle::Primitive primitive, 
-    const QStyleOption *option ) const
-{
-#ifndef Q_OS_SYMBIAN
-    // qtcast didn't work with mingw
-    const BubbleStyleOption *opt = static_cast<const BubbleStyleOption*>(option);
-#else
-    const BubbleStyleOption *opt = qstyleoption_cast<const BubbleStyleOption*>(option);
-#endif
-    if ( !opt ) {
-        return;
-    }    
-    
-    switch(primitive) {
-    case BP_Bubble_frame: {
-        HbFrameItem *frame = static_cast<HbFrameItem*>(item);
-        frame->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
-        frame->frameDrawer().setFrameGraphicsName("qtg_fr_list_normal");
-        }
-        break;                
-
-    case BP_Text1_text: {
-        HbTextItem* textItem = static_cast<HbTextItem*>(item);
-        setText(textItem, opt->mText1, opt->mText1Clip);
-        setFont(textItem, primitive, opt);
-        }
-        break;    
-    
-    case BP_Text2_text: {
-        HbTextItem* textItem = static_cast<HbTextItem*>(item);
-        setText(textItem, opt->mText2, opt->mText2Clip);
-        setFont(textItem, primitive, opt);
-        }
-        break;    
-
-    case BP_Text3_text: {
-        HbTextItem* textItem = static_cast<HbTextItem*>(item);
-        setText(textItem, opt->mText3, opt->mText3Clip);
-        setFont(textItem, primitive, opt);
-        }
-        break;    
-    
-    case BP_CallStatus_icon: {
-        setCallStatusIcons(static_cast<BubbleAnimIconItem*>(item), opt);
-        }
-        break;
-    
-    case BP_NumberType_icon: {
-        HbIconItem* icon = static_cast<HbIconItem*>(item);
-        if ( (( opt->mCallState == BubbleManagerIF::Incoming ) ||
-              ( opt->mCallState == BubbleManagerIF::Waiting )) &&
-             ( opt->mCallFlags & BubbleManagerIF::Diverted ) ) {
-            icon->setIconName(":/qgn_indi_call_diverted.svg");
-            setIconColor(icon);
-            icon->show();
-            } else {
-            icon->setIconName(QString());
-            icon->hide();
-            }
-        }
-        break;
-
-    case BP_Ciphering_icon: {
-        HbIconItem* icon = static_cast<HbIconItem*>(item);
-        if ( opt->mCallFlags & BubbleManagerIF::NoCiphering ) {
-            icon->setIconName("qtg_mono_ciphering_off");
-            setIconColor(icon);
-            icon->show();
-            } else {
-            icon->setIconName(QString());
-            icon->hide();
-            }
-        }
-        break;
-
-    case BP_DefaultAvatar_icon: {
-        HbIconItem* icon = static_cast<HbIconItem*>(item);
-        icon->setIconName("qtg_large_avatar");
-        icon->setAspectRatioMode(Qt::KeepAspectRatioByExpanding);
-        icon->setAlignment(Qt::AlignCenter);
-        }
-
-    default:
-        break;
-    } // switch
-}
-
-void BubbleStylePlugin::setText(
-    HbTextItem* item,
-    const QString& text,
-    Qt::TextElideMode clip) const
-{
-    if (clip == Qt::ElideLeft) {
-        // convert phonenumber to phone ui language
-        QString converted = HbStringUtil::convertDigits(text);
-        item->setText(converted);
-    } else {
-        item->setText( text );
-    }
-    item->setElideMode( clip );
-}
-
-void BubbleStylePlugin::setFont(
-    HbTextItem* item,
-    int primitive,
-    const BubbleStyleOption *option) const
-{
-    int primitiveLineNumber = 0;
-    if (primitive==BP_Text1_text) {
-        primitiveLineNumber = 1;
-    } else if (primitive==BP_Text2_text) {
-        primitiveLineNumber = 2;
-    } else if (primitive==BP_Text3_text) {
-        primitiveLineNumber = 3;
-    }
-
-    QFont font = mTextFont->font();
-    if (primitiveLineNumber==option->mCliLineNumber) {
-        font = mCliFont->font();
-    } else if (primitiveLineNumber==option->mTimerLineNumber) {
-        font = mTimerFont->font();
-    }
-
-    item->setFont(font);
-
-    // set color (to be done via css when possible)
-    QColor color;
-    color = HbColorScheme::color("list_item_title_normal");
-    if (color.isValid()) {
-        item->setTextColor(color);
-    } else {
-        item->setTextColor(Qt::black);
-    }
-}
-
-void BubbleStylePlugin::setIconColor(HbIconItem* icon) const
-{
-    // to be done via css when possible
-    QColor color;
-    color = HbColorScheme::color("list_item_title_normal");
-    if (color.isValid()) {
-        icon->setColor(color);
-    }
-}
-
-QString BubbleStylePlugin::layoutPath() const
-{
-   QString path(":/");
-   return path;
-}
-
-void BubbleStylePlugin::setCallStatusIcons(BubbleAnimIconItem* anim, const BubbleStyleOption *opt) const
-{
-    anim->reset();
-    switch(opt->mCallState) {
-    case BubbleManagerIF::Incoming:
-    case BubbleManagerIF::Alerting:
-    case BubbleManagerIF::Waiting:
-        if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon("qtg_large_voip_call_active");
-            anim->appendIcon("qtg_large_voip_call_waiting");
-        } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon("qtg_large_video_call_active");
-            anim->appendIcon("qtg_large_video_call_waiting");
-        } else {
-            anim->appendIcon("qtg_large_active_call");
-            anim->appendIcon("qtg_large_waiting_call");
-        }
-        break;
-    case BubbleManagerIF::Outgoing:
-    case BubbleManagerIF::Active:
-        if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon("qtg_large_voip_call_active");
-        } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon("qtg_large_video_call_active");
-        } else {
-            anim->appendIcon("qtg_large_active_call");
-        }            
-        break;
-    case BubbleManagerIF::OnHold:
-        if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon("qtg_large_voip_call_waiting");
-        } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon("qtg_large_video_call_waiting");
-        } else {
-            anim->appendIcon("qtg_large_waiting_call");
-        }                      
-        break;
-    case BubbleManagerIF::Disconnected:
-    case BubbleManagerIF::AlertToDisconnected:
-        if ( opt->mCallFlags & BubbleManagerIF::VoIPCall ) {
-            anim->appendIcon("qtg_large_end_call");
-        } else if ( opt->mCallFlags & BubbleManagerIF::Video ) {
-            anim->appendIcon("qtg_large_end_call");
-        } else {
-            anim->appendIcon("qtg_large_end_call");
-        }           
-        break;
-    default:
-        break;
-    }
-    
-}
-
-Q_EXPORT_PLUGIN2(bubblestyleplugin, BubbleStylePlugin)
--- a/phoneuis/bubblemanager2/bubblestyle/src/bubblestyleplugin.h	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Bubble style plugin.
-*
-*/
-
-#ifndef BUBBLESTYLEPLUGIN_H
-#define BUBBLESTYLEPLUGIN_H
-
-#include <QtPlugin>
-
-#include <hbstyleinterface.h>
-#include <hbglobal.h>
-
-class HbFontSpec;
-class HbTextItem;
-class HbIconItem;
-class BubbleStyleOption;
-class BubbleAnimIconItem;
-
-class BubbleStylePlugin: public QObject, public HbStyleInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(HbStyleInterface)
-
-public:
-    BubbleStylePlugin();
-    virtual ~BubbleStylePlugin();
-
-protected:
-    int primitiveCount() const;
-    QGraphicsItem *createPrimitive( HbStyle::Primitive primitive, QGraphicsItem *parent = 0 ) const;
-    void updatePrimitive( QGraphicsItem *item, HbStyle::Primitive primitive, const QStyleOption *option ) const;
-    QString layoutPath() const;
-
-private:
-    void setCallStatusIcons(BubbleAnimIconItem* anim, const BubbleStyleOption *opt) const;
-    void setText(HbTextItem* item, const QString& text, Qt::TextElideMode clip) const;
-    void setFont(HbTextItem* item, int primitive, const BubbleStyleOption *option) const;
-    void setIconColor(HbIconItem* icon) const;
-    
-private:
-    HbFontSpec* mCliFont;
-    HbFontSpec* mTextFont;
-    HbFontSpec* mTimerFont;
-};
-
-#endif // BUBBLESTYLEPLUGIN_H
--- a/phoneuis/bubblemanager2/inc/bubblemanager2.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/inc/bubblemanager2.h	Fri May 14 15:51:57 2010 +0300
@@ -355,7 +355,6 @@
     QVector<BubbleHandler*> mActiveHandlers;
 
     int mIsReadyToDraw;
-    int mDefaultStyleBaseId;
     bool mMuted;
     QGraphicsWidget* mMutedIcon;
     bool mSortHeaders;
--- a/phoneuis/bubblemanager2/inc/bubbleprimitives.h	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Primitive items in call bubble.
-*
-*/
-
-#ifndef BUBBLEPRIMITIVES_H
-#define BUBBLEPRIMITIVES_H
-
-enum BubblePrimitive
-{
-    BP_Bubble_frame = 0,
-    BP_Text1_text,
-    BP_Text2_text,
-    BP_Text3_text,
-    BP_CallStatus_icon,
-    BP_NumberType_icon,
-    BP_Ciphering_icon,
-    BP_DefaultAvatar_icon,
-    BP_Bubble_primitive_count
-};
-
-#endif // BUBBLEPRIMITIVES_H
--- a/phoneuis/bubblemanager2/inc/bubblestyleoption.h	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Bubble style option.
-*
-*/
-
-#ifndef BUBBLESTYLEOPTION_H
-#define BUBBLESTYLEOPTION_H
-
-#include <hbstyleoption.h>
-#include "bubblemanagerif.h"
-
-class BubbleStyleOption : public HbStyleOption
-{
-public:
-    BubbleStyleOption();
-    BubbleStyleOption(const BubbleStyleOption &other);
-    ~BubbleStyleOption();
-
-    enum StyleOptionType { Type = HbSO_CustomBase + 1 };
-    enum StyleOptionVersion { Version = 1 };
-
-    QString mText1;
-    Qt::TextElideMode mText1Clip;
-    QString mText2;
-    Qt::TextElideMode mText2Clip;
-    QString mText3;
-    Qt::TextElideMode mText3Clip;
-    int mCliLineNumber;
-    int mTimerLineNumber;
-    BubbleManagerIF::PhoneCallState mCallState;
-    BubbleManagerIF::PhoneNumberType mNumberType;
-    int mCallFlags;
-};
-
-#endif // BUBBLESTYLEOPTION_H
--- a/phoneuis/bubblemanager2/rom/bubblemanager.iby	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/rom/bubblemanager.iby	Fri May 14 15:51:57 2010 +0300
@@ -23,8 +23,4 @@
 
 file=ABI_DIR/BUILD_DIR/bubblemanager2.dll       SHARED_LIB_DIR/bubblemanager2.dll
 
-//indicator popup plugin
-file=ABI_DIR/BUILD_DIR/bubblestyleplugin.dll    SHARED_LIB_DIR/bubblestyleplugin.dll
-data=DATAZ_/resource/qt/plugins/phone/bubblestyleplugin.qtplugin    resource/qt/plugins/phone/bubblestyleplugin.qtplugin
-
 #endif // __BUBBLEMANAGER_IBY__
--- a/phoneuis/bubblemanager2/tsrc/unit/runall.cmd	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/runall.cmd	Fri May 14 15:51:57 2010 +0300
@@ -21,15 +21,11 @@
 call runtest.cmd ut_bubbleheader
 call runtest.cmd ut_bubbleconferenceheader
 call runtest.cmd ut_bubblepartlistmodel
-call runtest.cmd ut_bubblestyleoption
 call runtest.cmd ut_bubblecontainerwidget
 call runtest.cmd ut_bubbleheadingwidget
 call runtest.cmd ut_bubbleimagewidget
 call runtest.cmd ut_bubbleparticipantlistitem
-call runtest.cmd ut_bubblebuttonstyle
-call runtest.cmd ut_bubbleanimiconitem
-call runtest.cmd ut_bubblestyleplugin
-call runtest.cmd mt_bubblemanager2
+rem call runtest.cmd mt_bubblemanager2
 )
 
 @echo off
@@ -38,15 +34,11 @@
 call runtest_w32.cmd ut_bubbleheader
 call runtest_w32.cmd ut_bubbleconferenceheader
 call runtest_w32.cmd ut_bubblepartlistmodel
-call runtest_w32.cmd ut_bubblestyleoption
 call runtest_w32.cmd ut_bubblecontainerwidget
 call runtest_w32.cmd ut_bubbleheadingwidget
 call runtest_w32.cmd ut_bubbleimagewidget
 call runtest_w32.cmd ut_bubbleparticipantlistitem
-call runtest_w32.cmd ut_bubblebuttonstyle
-call runtest_w32.cmd ut_bubbleanimiconitem
-call runtest_w32.cmd ut_bubblestyleplugin
-call runtest_w32.cmd mt_bubblemanager2
+rem call runtest_w32.cmd mt_bubblemanager2
 )
 
 @echo off
@@ -56,14 +48,11 @@
  ut_bubbleheader\mon.sym ut_bubbleheader\mon.dat^
  ut_bubbleconferenceheader\mon.sym ut_bubbleconferenceheader\mon.dat^
  ut_bubblepartlistmodel\mon.sym ut_bubblepartlistmodel\mon.dat^
- ut_bubblestyleoption\mon.sym ut_bubblestyleoption\mon.dat^
  ut_bubblecontainerwidget\mon.sym ut_bubblecontainerwidget\mon.dat^
  ut_bubbleheadingwidget\mon.sym ut_bubbleheadingwidget\mon.dat^
  ut_bubbleimagewidget\mon.sym ut_bubbleimagewidget\mon.dat^
  ut_bubbleparticipantlistitem\mon.sym ut_bubbleparticipantlistitem\mon.dat^
- ut_bubblebuttonstyle\mon.sym ut_bubblebuttonstyle\mon.dat^
  ut_bubbleanimiconitem\mon.sym ut_bubbleanimiconitem\mon.dat^
- ut_bubblestyleplugin\mon.sym ut_bubblestyleplugin\mon.dat^
   -p profile.txt
 call ctc2html -i profile.txt
 )
--- a/phoneuis/bubblemanager2/tsrc/unit/shared/bubbletest.h	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/shared/bubbletest.h	Fri May 14 15:51:57 2010 +0300
@@ -35,16 +35,4 @@
     return ret; \
 }
 
-// style plugin name
-#if defined(Q_OS_SYMBIAN)
-    const char* BUBBLE_STYLE_PLUGIN = \
-        "z:/resource/qt/plugins/phone/bubblestyleplugin.dll";
-#elif defined(Q_OS_WIN)
-    const char* BUBBLE_STYLE_PLUGIN = \
-        "c:/hb/bin/bubblestyleplugin.dll";
-#else // Q_OS_UNIX
-    const char* BUBBLE_STYLE_PLUGIN = \
-        "/home/lib/libbubblestyleplugin.so";
-#endif
-
 #endif // BUBBLETEST_H
--- a/phoneuis/bubblemanager2/tsrc/unit/unit.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/unit.pro	Fri May 14 15:51:57 2010 +0300
@@ -20,14 +20,10 @@
 SUBDIRS += ut_bubbleconferenceheader
 SUBDIRS += ut_bubblepartlistmodel
 SUBDIRS += ut_bubbleutils
-SUBDIRS += ut_bubblestyleoption
 SUBDIRS += ut_bubblecontainerwidget
 SUBDIRS += ut_bubbleheadingwidget
 SUBDIRS += ut_bubbleimagemanager
 SUBDIRS += ut_bubbleimagewidget
 SUBDIRS += ut_bubbleparticipantlistitem
-SUBDIRS += ut_bubblebuttonstyle
-SUBDIRS += ut_bubbleanimiconitem
-SUBDIRS += ut_bubblestyleplugin
 SUBDIRS += ut_bubbleeffecthandler
 SUBDIRS += mt_bubblemanager2
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/data/qtg_indi_call_connect.svg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="60px" version="1.1" viewBox="0 0 60 60" width="60px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<g>
-<g>
-<rect fill="none" fill-opacity="0.5" height="60" stroke-opacity="0.5" width="60"/>
-</g>
-<path d="M17.838,51.925l-0.074-0.004c-0.275-0.017-1.043-0.131-2.229-0.8c-1.766-0.98-2.789-2.374-3.611-3.604   c-0.762-1.151-1.576-3.451-1.576-6.459c0-3.725,1.201-11.172,9.236-19.213c7.984-7.985,15.42-9.177,19.145-9.177   c3.543,0,5.801,0.998,6.576,1.59c1.24,0.95,2.102,1.742,3.629,3.679c0.525,0.66,0.68,1.279,0.713,1.681l0.006,0.076l-0.006,0.077   l-0.021,0.348c-0.104,1.643-1.523,3.623-4.465,6.224c-3.705,3.256-5.818,3.675-6.379,3.724l-0.279,0.025l-0.252-0.123   c-0.352-0.173-0.914-0.555-1.586-1.398c-0.428-0.543-0.996-1.594-1.303-3.558l-0.141-0.844l-0.143-0.839l-0.852,0.005l-0.842,0.007   c-4.797,0.021-12.287,7.51-12.332,12.326l-0.004,0.851l-0.004,0.857l0.85,0.136l0.832,0.133c1.426,0.229,2.666,0.694,3.588,1.347   c0.926,0.647,1.275,1.212,1.406,1.573l0.063,0.175l-0.004,0.187c-0.043,1.769-2.037,4.62-3.732,6.526   c-2.584,2.918-4.533,4.339-6.137,4.47L17.838,51.925L17.838,51.925z" fill="#47C30E"/>
-</g>
-</svg>
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/data/qtg_indi_call_wait.svg	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" height="60px" version="1.1" viewBox="0 0 60 60" width="60px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
-<g>
-<g>
-<rect fill="none" fill-opacity="0.5" height="60" stroke-opacity="0.5" width="60"/>
-</g>
-<path d="M17.838,51.925l-0.074-0.004c-0.275-0.017-1.043-0.131-2.229-0.8c-1.766-0.98-2.789-2.374-3.611-3.604   c-0.762-1.151-1.576-3.451-1.576-6.459c0-3.725,1.201-11.172,9.236-19.213c7.984-7.985,15.42-9.177,19.145-9.177   c3.543,0,5.801,0.998,6.576,1.59c1.24,0.95,2.102,1.742,3.629,3.679c0.525,0.66,0.68,1.279,0.713,1.681l0.006,0.076l-0.006,0.077   l-0.021,0.348c-0.104,1.643-1.523,3.623-4.465,6.224c-3.705,3.256-5.818,3.675-6.379,3.724l-0.279,0.025l-0.252-0.123   c-0.352-0.173-0.914-0.555-1.586-1.398c-0.428-0.543-0.996-1.594-1.303-3.558l-0.141-0.844l-0.143-0.839l-0.852,0.005l-0.842,0.007   c-4.797,0.021-12.287,7.51-12.332,12.326l-0.004,0.851l-0.004,0.857l0.85,0.136l0.832,0.133c1.426,0.229,2.666,0.694,3.588,1.347   c0.926,0.647,1.275,1.212,1.406,1.573l0.063,0.175l-0.004,0.187c-0.043,1.769-2.037,4.62-3.732,6.526   c-2.584,2.918-4.533,4.339-6.137,4.47L17.838,51.925L17.838,51.925z" fill="#F0B11D"/>
-</g>
-</svg>
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/ut_bubbleanimiconitem.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#include <QtGui>
-#include <QtTest/QtTest>
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbwidget.h>
-
-#include "bubbletest.h"
-#include "bubbleanimiconitem.h"
-
-class Container : public HbWidget
-{
-public:
-    Container()
-    {
-        mItem = new BubbleAnimIconItem(50,this);
-        mItem->appendIcon(":/data/qtg_indi_call_connect.svg");
-        mItem->appendIcon(":/data/qtg_indi_call_wait.svg");
-        QGraphicsLinearLayout* layout = new
-            QGraphicsLinearLayout;
-        layout->addItem(mItem);
-        setLayout(layout);
-    }
-
-    void reset()
-    {
-        mItem->reset();
-    }
-
-private:
-    BubbleAnimIconItem* mItem;
-};
-
-class ut_BubbleAnimIconItem : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void cleanupTestCase();
-
-    void testItem();
-
-private:
-    HbMainWindow* mMainWindow;
-    Container* mContainer;
-    int mStyleBaseId;
-};
-
-void ut_BubbleAnimIconItem::initTestCase()
-{
-    mMainWindow = new HbMainWindow();
-    mContainer = new Container;
-    mMainWindow->addView(mContainer);
-    mContainer->hide();
-    mMainWindow->show();
-}
-
-void ut_BubbleAnimIconItem::cleanupTestCase()
-{
-    delete mMainWindow;
-}
-
-void ut_BubbleAnimIconItem::testItem()
-{
-    mContainer->show();
-    QTest::qWait(200);
-    mContainer->hide();
-}
-
-BUBBLE_TEST_MAIN(ut_BubbleAnimIconItem)
-#include "ut_bubbleanimiconitem.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/ut_bubbleanimiconitem.pro	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#
-
-TEMPLATE = app
-TARGET = 
-DEPENDPATH += . ../../../bubblecore/src
-INCLUDEPATH += . ../../../bubblestyle/src ../../../inc ../shared
-CONFIG += hb qtestlib
-
-symbian {
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-} else:win32 {
-    DESTDIR = ./
-}
-
-#
-HEADERS += ../../../bubblestyle/src/bubbleanimiconitem.h
-SOURCES += ut_bubbleanimiconitem.cpp \
-           ../../../bubblestyle/src/bubbleanimiconitem.cpp
-RESOURCES += ut_bubbleanimiconitem.qrc
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleanimiconitem/ut_bubbleanimiconitem.qrc	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>data/qtg_indi_call_wait.svg</file>
-        <file>data/qtg_indi_call_connect.svg</file>
-    </qresource>
-</RCC>
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblebuttonstyle/ut_bubblebuttonstyle.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#include <QtGui>
-#include <QtTest/QtTest>
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbframeitem.h>
-#include <hbiconitem.h>
-#include <hbstyle.h>
-#include <hbstyleoptionpushbutton.h>
-#include <hbcolorscheme.h>
-
-#include "bubbletest.h"
-#include "bubblebuttonstyle.h"
-
-class ut_BubbleButtonStyle : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void cleanupTestCase();
-
-    void testPushButtonFrame();
-    void testPushButtonIcon();
-
-private:
-    BubbleButtonStyle *mStyle;
-};
-
-void ut_BubbleButtonStyle::initTestCase()
-{
-    mStyle = new BubbleButtonStyle();
-}
-
-void ut_BubbleButtonStyle::cleanupTestCase()
-{
-    delete mStyle;
-}
-
-void ut_BubbleButtonStyle::testPushButtonFrame()
-{
-    HbFrameItem* item = new HbFrameItem();
-    HbStyleOptionPushButton option;
-    option.backgroundFrameDrawer = 0;
-
-    // Enabled ON
-    option.state |= QStyle::State_On;
-    option.state |= QStyle::State_Enabled;
-
-    mStyle->setButtonColor(BubbleButtonStyle::Default);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_pressed");
-
-    mStyle->setButtonColor(BubbleButtonStyle::Green);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_pressed");
-
-    mStyle->setButtonColor(BubbleButtonStyle::Red);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_red_pressed");
-
-    // Enabled OFF
-    option.state &= ~QStyle::State_On;
-    option.state |= QStyle::State_Off;
-
-    mStyle->setButtonColor(BubbleButtonStyle::Default);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_normal");
-
-    mStyle->setButtonColor(BubbleButtonStyle::Green);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_green_normal");
-
-    mStyle->setButtonColor(BubbleButtonStyle::Red);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_red_normal");
-
-    // Disabled
-    option.state &= ~QStyle::State_Enabled;
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_disabled");
-
-    // Selected
-    option.state |= QStyle::State_Selected;
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_highlight");
-
-    // Active
-    option.state &= ~QStyle::State_Selected;
-    option.state |= QStyle::State_Active;
-    mStyle->setButtonColor(BubbleButtonStyle::Default);;
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_background,&option);
-    QVERIFY(item->frameDrawer().frameGraphicsName()=="qtg_fr_btn_normal");   
-
-    delete item;
-
-    // exception type
-    HbIconItem* item2 = new HbIconItem();
-    mStyle->updatePrimitive(item2,HbStyle::P_PushButton_background,&option);
-    delete item2;
-}
-
-void ut_BubbleButtonStyle::testPushButtonIcon()
-{
-    HbIconItem* item = new HbIconItem();
-    HbStyleOptionPushButton option;
-
-    mStyle->setButtonColor(BubbleButtonStyle::Red);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==Qt::white);
-
-    mStyle->setButtonColor(BubbleButtonStyle::Green);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==Qt::white);
-
-    QColor color;
-    color = HbColorScheme::color("qtc_button_normal");
-    mStyle->setButtonColor(BubbleButtonStyle::Default);
-    mStyle->updatePrimitive(item,HbStyle::P_PushButton_icon,&option);
-    QVERIFY(item->color()==color);
-}
-
-BUBBLE_TEST_MAIN(ut_BubbleButtonStyle)
-#include "ut_bubblebuttonstyle.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblebuttonstyle/ut_bubblebuttonstyle.pro	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#
-
-TEMPLATE = app
-TARGET = 
-DEPENDPATH += . ../../../bubblecore/src
-INCLUDEPATH += . ../../../bubblecore/src ../../../inc ../shared
-CONFIG += hb qtestlib
-
-symbian {
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-} else:win32 {
-    DESTDIR = ./
-}
-
-#
-HEADERS += ../../../bubblecore/src/bubblebuttonstyle.h
-SOURCES += ut_bubblebuttonstyle.cpp \
-           ../../../bubblecore/src/bubblebuttonstyle.cpp
-
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -40,8 +40,6 @@
     void testRightMouseClick();
     void testMouseMove();
 
-    //void testInvalidStylePlugin();
-
 private:
     BubbleContainerWidget* mContainer;
     HbMainWindow* mMainWindow;
@@ -51,7 +49,7 @@
 void ut_BubbleContainerWidget::initTestCase()
 {
     mMainWindow = new HbMainWindow();
-    mContainer = new BubbleContainerWidget(BUBBLE_STYLE_PLUGIN);
+    mContainer = new BubbleContainerWidget();
     mMainWindow->addView(mContainer);
     mMainWindow->show();
 }
@@ -99,14 +97,5 @@
     QCOMPARE( spy.count(), 0 );
 }
 
-/*void ut_BubbleContainerWidget::testInvalidStylePlugin()
-{
-    // this just shouldn't crash
-    BubbleContainerWidget *cnt =
-        new BubbleContainerWidget("c:\foobar.dll");
-    HbView* view = mMainWindow->addView(cnt);
-    mMainWindow->setCurrentView(view);
-}*/
-
 BUBBLE_TEST_MAIN(ut_BubbleContainerWidget)
 #include "ut_bubblecontainerwidget.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubblecontainerwidget/ut_bubblecontainerwidget.pro	Fri May 14 15:51:57 2010 +0300
@@ -30,6 +30,6 @@
 #
 HEADERS += ../../../bubblecore/src/bubblecontainerwidget.h
 SOURCES += ut_bubblecontainerwidget.cpp \
-           ../../../bubblecore/src/bubblecontainerwidget.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp
+           ../../../bubblecore/src/bubblecontainerwidget.cpp
 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.css	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,70 @@
+
+
+BubbleHeadingWidget[layoutOption="three_lines"]
+{
+    layout: three_lines_layout;
+}
+
+BubbleHeadingWidget[layoutOption="two_lines"]
+{
+    layout: two_lines_layout;
+}
+
+BubbleHeadingWidget[layoutOption="one_line"]
+{
+    layout: one_line_layout;
+}
+
+BubbleHeadingWidget:text_line_1
+{
+    preferred-height: var(hb-param-text-height-primary);
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption!="one_line"]
+{
+    preferred-height: var(hb-param-text-height-primary);
+    preferred-width: -1;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    top: -var(hb-param-margin-gene-middle-vertical);
+    text-align: left;
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:text_line_2[layoutOption="one_line"]
+{
+    preferred-height: var(hb-param-text-height-primary);
+    preferred-width: 30un;
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    text-align: right;
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:text_line_3
+{
+    preferred-height: var(hb-param-text-height-primary);
+    left: -var(hb-param-margin-gene-middle-horizontal);
+    top: -var(hb-param-margin-gene-middle-vertical);
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:status_icon
+{
+    fixed-width:   var(hb-param-graphic-size-primary-large);
+    fixed-height:  var(hb-param-graphic-size-primary-large);
+}
+
+BubbleHeadingWidget:number_type_icon
+{
+    fixed-height: var(hb-param-graphic-size-secondary);
+    fixed-width:  var(hb-param-graphic-size-secondary);
+    color: var(qtc_list_item_title_normal);
+}
+
+BubbleHeadingWidget:ciphering_icon
+{
+    fixed-height: 2.5un;
+    fixed-width:  2.5un;
+    color: var(qtc_list_item_title_normal);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/resources/bubbleheadingwidget.widgetml	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,63 @@
+<hbwidget version="0.1" type="be">  
+  <layout name="three_lines_layout" type="mesh">
+    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
+    
+    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
+    
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    
+    <meshitem src="text_line_3" srcEdge="TOP" dst="text_line_2" dstEdge="BOTTOM"/>
+    <meshitem src="text_line_3" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+  </layout>
+
+  <layout name="two_lines_layout" type="mesh">
+    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="status_icon" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
+
+    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
+    
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+    
+    <meshitem src="text_line_2" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+    <meshitem src="text_line_2" srcEdge="TOP" dst="text_line_1" dstEdge="BOTTOM"/>
+  </layout>
+
+  <layout name="one_line_layout" type="mesh">
+    <meshitem src="status_icon" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+    <meshitem src="status_icon" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    
+    <meshitem src="number_type_icon" srcEdge="RIGHT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="number_type_icon" srcEdge="BOTTOM" dst="status_icon" dstEdge="BOTTOM"/>
+    
+    <meshitem src="ciphering_icon" srcEdge="LEFT" dst="status_icon" dstEdge="LEFT"/>
+    <meshitem src="ciphering_icon" srcEdge="TOP" dst="status_icon" dstEdge="TOP"/>    
+    
+    <meshitem src="text_line_1" srcEdge="LEFT" dst="status_icon" dstEdge="RIGHT"/>
+    <meshitem src="text_line_1" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_1" srcEdge="RIGHT" dst="text_line_2" dstEdge="LEFT"/>
+    
+    <meshitem src="text_line_2" srcEdge="CENTERV" dst="" dstEdge="CENTERV"/>
+    <meshitem src="text_line_2" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
+  </layout>
+  
+</hbwidget>
+
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -52,7 +52,7 @@
 void ut_BubbleHeadingWidget::initTestCase()
 {
     mMainWindow = new HbMainWindow();
-    mHeading = new BubbleHeadingWidget(BUBBLE_STYLE_PLUGIN);
+    mHeading = new BubbleHeadingWidget();
     mMainWindow->addView(mHeading);
     mMainWindow->show();
 }
@@ -92,7 +92,7 @@
     header.setSecondaryCli("12345",Qt::ElideLeft);
     header.setText("",Qt::ElideRight);
     header.setTimerCost("0:00");
-    header.setCallState(BubbleManagerIF::Active);
+    header.setCallState(BubbleManagerIF::Outgoing);
     header.setCallFlag(BubbleManagerIF::NoCiphering);
 
     mHeading->setLineCount(2);
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.pro	Fri May 14 15:51:57 2010 +0300
@@ -28,11 +28,13 @@
 }
 
 #
-HEADERS += ../../../bubblecore/src/bubbleheadingwidget.h
+HEADERS += ../../../bubblecore/src/bubbleheadingwidget.h \
+           ../../../bubblecore/src/bubblebutton.h
+
 SOURCES += ut_bubbleheadingwidget.cpp \
            ../../../bubblecore/src/bubbleheadingwidget.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp \
            ../../../bubblecore/src/bubbleheader.cpp \
            ../../../bubblecore/src/bubbleutils.cpp \
-           ../../../bubblecore/src/bubblebuttonstyle.cpp
+           ../../../bubblecore/src/bubblebutton.cpp
 
+RESOURCES += ut_bubbleheadingwidget.qrc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleheadingwidget/ut_bubbleheadingwidget.qrc	Fri May 14 15:51:57 2010 +0300
@@ -0,0 +1,6 @@
+<RCC>
+    <qresource prefix="/">
+        <file alias="bubbleheadingwidget.widgetml">resources/bubbleheadingwidget.widgetml</file>
+        <file alias="bubbleheadingwidget.css">resources/bubbleheadingwidget.css</file>
+    </qresource>
+</RCC>
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.cpp	Fri May 14 15:51:57 2010 +0300
@@ -47,7 +47,6 @@
 private:
     BubbleImageWidget* mImage;
     HbMainWindow* mMainWindow;
-    int mStyleBaseId;
     BubbleImageManager* mImageManager;
 };
 
@@ -64,8 +63,7 @@
 {
     mMainWindow = new HbMainWindow();
     mImageManager = new BubbleImageManager();
-    mImage = new BubbleImageWidget(
-        BUBBLE_STYLE_PLUGIN,*mImageManager);
+    mImage = new BubbleImageWidget(*mImageManager);
     mMainWindow->addView(mImage);
     mMainWindow->show();
 }
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleimagewidget/ut_bubbleimagewidget.pro	Fri May 14 15:51:57 2010 +0300
@@ -42,7 +42,6 @@
            ../../../bubblecore/src/bubbleimagemanager_p.h
 SOURCES += ut_bubbleimagewidget.cpp \
            ../../../bubblecore/src/bubbleimagewidget.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp \
            ../../../bubblecore/src/bubbleimagemanager.cpp
 
 symbian {
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.cpp	Fri May 14 15:51:57 2010 +0300
@@ -27,7 +27,6 @@
 
 #include "bubbletest.h"
 #include "bubbleparticipantlistitem.h"
-#include "bubblebuttonstyle.h"
 
 class ut_BubbleParticipantListItem : public QObject
 {
@@ -43,17 +42,16 @@
 private:
     BubbleParticipantListItem* mItem;
     HbMainWindow* mMainWindow;
-    BubbleButtonStyle* mButtonStyle;
     int mStyleBaseId;
 };
 
 void ut_BubbleParticipantListItem::initTestCase()
 {
     mMainWindow = new HbMainWindow();
-    mButtonStyle = new BubbleButtonStyle();
-    mItem = new BubbleParticipantListItem(BUBBLE_STYLE_PLUGIN,*mButtonStyle);
+    mItem = new BubbleParticipantListItem();
     mMainWindow->addView(mItem);
-    HbListViewItem* item = static_cast<HbListViewItem*>(mItem);
+    BubbleParticipantListItem* item =
+        static_cast<BubbleParticipantListItem*>(mItem);
     item->updateChildItems();
     mMainWindow->show();
 }
@@ -62,7 +60,6 @@
 {
     mItem->clearActions();
     delete mMainWindow;
-    delete mButtonStyle;
 }
 
 void ut_BubbleParticipantListItem::testCreateItem()
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleparticipantlistitem/ut_bubbleparticipantlistitem.pro	Fri May 14 15:51:57 2010 +0300
@@ -28,9 +28,13 @@
 }
 
 #
-HEADERS += ../../../bubblecore/src/bubbleparticipantlistitem.h
+HEADERS += ../../../bubblecore/src/bubbleparticipantlistitem.h \
+           ../../../bubblecore/src/bubblebutton.h
+
 SOURCES += ut_bubbleparticipantlistitem.cpp \
            ../../../bubblecore/src/bubbleparticipantlistitem.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp \
-           ../../../bubblecore/src/bubblebuttonstyle.cpp
+           ../../../bubblecore/src/bubbleutils.cpp \
+           ../../../bubblecore/src/bubbleheader.cpp \
+           ../../../bubblecore/src/bubbleconferenceheader.cpp \
+           ../../../bubblecore/src/bubblebutton.cpp
 
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleoption/ut_bubblestyleoption.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#include <QtGui>
-#include <QtTest/QtTest>
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-#include <hbaction.h>
-
-#include "bubbletest.h"
-#include "bubblestyleoption.h"
-
-class ut_BubbleStyleOption : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void cleanupTestCase();
-
-    void testStyleOption();
-
-private:
-};
-
-void ut_BubbleStyleOption::initTestCase()
-{
-}
-
-void ut_BubbleStyleOption::cleanupTestCase()
-{
-}
-
-void ut_BubbleStyleOption::testStyleOption()
-{
-    BubbleStyleOption option;
-    Q_ASSERT(option.mText1=="");
-    option.mText1="John";
-    BubbleStyleOption option2(option);
-    Q_ASSERT(option2.mText1 == "John");
-}
-
-BUBBLE_TEST_MAIN(ut_BubbleStyleOption)
-#include "ut_bubblestyleoption.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleoption/ut_bubblestyleoption.pro	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#
-
-TEMPLATE = app
-TARGET = 
-DEPENDPATH += . ../../../bubblecore/src
-INCLUDEPATH += . ../../../bubblecore/src ../../../inc ../shared
-CONFIG += hb qtestlib
-
-symbian {
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-} else:win32 {
-    DESTDIR = ./
-#   CONFIG(debug,debug|release)
-#       {
-#       QMAKE_CXX = ctc -i d g++
-#       LIBS += $$(CTCHOME)\lib\ctcmsnt.lib
-#       }
-}
-
-#
-SOURCES += ut_bubblestyleoption.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp
-
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleplugin/ut_bubblestyleplugin.cpp	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,386 +0,0 @@
-/*!
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#include <QtGui>
-#include <QtTest/QtTest>
-
-#include <hbapplication.h>
-#include <hbstyle.h>
-#include <hbinstance.h>
-#include <hbwidget.h>
-#include <hbframeitem.h>
-#include <hbframedrawer.h>
-#include <hbtextitem.h>
-#include <hbiconitem.h>
-
-#include "bubbletest.h"
-#include "bubblestyleplugin.h"
-#include "bubbleprimitives.h"
-#include "bubblestyleoption.h"
-#include "bubbleanimiconitem.h"
-
-class ut_BubbleStylePlugin : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void cleanupTestCase();
-
-    void testPrimitiveCount();
-    void testLayoutPath();
-
-    void testBubbleFrame();
-    void testText1();
-    void testText2();
-    void testText3();
-    void testCallStatusIcon();
-    void testVideoCallStatusIcon();
-    void testVoipCallStatusIcon();
-    void testNumberTypeIcon();
-    void testCipheringIcon();
-    void testAvatar();
-
-private:
-    BubbleStylePlugin* mPluginInstance;
-    HbStyleInterface*  mPlugin;
-    HbWidget* mParent;
-};
-
-void ut_BubbleStylePlugin::initTestCase()
-{
-    mPluginInstance = new BubbleStylePlugin();
-    mPlugin = static_cast<HbStyleInterface*>(mPluginInstance);
-    mParent = new HbWidget();
-}
-
-void ut_BubbleStylePlugin::cleanupTestCase()
-{
-    delete mPluginInstance;
-    delete mParent;
-}
-
-void ut_BubbleStylePlugin::testPrimitiveCount()
-{
-    QVERIFY(mPlugin->primitiveCount()==BP_Bubble_primitive_count);
-}
-
-void ut_BubbleStylePlugin::testLayoutPath()
-{
-    QVERIFY(mPlugin->layoutPath()==":/");
-}
-
-void ut_BubbleStylePlugin::testBubbleFrame()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_Bubble_frame),mParent);
-    QVERIFY(item);
-    QVERIFY(item->zValue()==-1.0);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbFrameItem* frame = qgraphicsitem_cast<HbFrameItem*>(item);
-    QVERIFY(frame);
-
-    BubbleStyleOption option;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_Bubble_frame),
-            &option);
-    QVERIFY(frame->frameDrawer().frameGraphicsName()==
-             "qtg_fr_list_normal");
-}
-
-void ut_BubbleStylePlugin::testText1()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_Text1_text),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbTextItem* text = qgraphicsitem_cast<HbTextItem*>(item);
-    QVERIFY(text);
-
-    BubbleStyleOption option;
-    option.mText1 = "foo";
-    option.mText1Clip = Qt::ElideRight;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_Text1_text),
-            &option);
-    QVERIFY(text->text()=="foo");
-    QVERIFY(text->elideMode()==Qt::ElideRight);
-
-}
-
-void ut_BubbleStylePlugin::testText2()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_Text2_text),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbTextItem* text = qgraphicsitem_cast<HbTextItem*>(item);
-    QVERIFY(text);
-
-    BubbleStyleOption option;
-    option.mText2 = "foo";
-    option.mText2Clip = Qt::ElideRight;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_Text2_text),
-            &option);
-    QVERIFY(text->text()=="foo");
-    QVERIFY(text->elideMode()==Qt::ElideRight);
-
-}
-
-void ut_BubbleStylePlugin::testText3()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_Text3_text),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbTextItem* text = qgraphicsitem_cast<HbTextItem*>(item);
-    QVERIFY(text);
-
-    BubbleStyleOption option;
-    option.mText3 = "foo";
-    option.mText3Clip = Qt::ElideLeft;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_Text3_text),
-            &option);
-    QVERIFY(text->text()=="foo");
-    QVERIFY(text->elideMode()==Qt::ElideLeft);
-
-}
-
-void ut_BubbleStylePlugin::testCallStatusIcon()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_CallStatus_icon),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    BubbleAnimIconItem* icon = static_cast<BubbleAnimIconItem*>(item);
-    QVERIFY(icon);
-
-    BubbleStyleOption option;
-    option.mCallState = BubbleManagerIF::Active;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::OnHold;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Disconnected;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::AlertToDisconnected;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Incoming;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Alerting;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Waiting;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Outgoing;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-}
-
-void ut_BubbleStylePlugin::testVideoCallStatusIcon()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_CallStatus_icon),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    BubbleAnimIconItem* icon = static_cast<BubbleAnimIconItem*>(item);
-    QVERIFY(icon);
-
-    BubbleStyleOption option;
-    option.mCallFlags |= BubbleManagerIF::Video;
-    option.mCallState = BubbleManagerIF::Active;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::OnHold;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Disconnected;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::AlertToDisconnected;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Incoming;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Alerting;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Waiting;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Outgoing;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-}
-
-void ut_BubbleStylePlugin::testVoipCallStatusIcon()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_CallStatus_icon),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    BubbleAnimIconItem* icon = static_cast<BubbleAnimIconItem*>(item);
-    QVERIFY(icon);
-
-    BubbleStyleOption option;
-    option.mCallFlags |= BubbleManagerIF::VoIPCall;
-    option.mCallState = BubbleManagerIF::Active;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::OnHold;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Disconnected;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::AlertToDisconnected;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Incoming;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Alerting;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Waiting;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-    option.mCallState = BubbleManagerIF::Outgoing;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_CallStatus_icon),
-            &option);
-}
-
-void ut_BubbleStylePlugin::testNumberTypeIcon()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_NumberType_icon),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbIconItem* icon = qgraphicsitem_cast<HbIconItem*>(item);
-    QVERIFY(icon);
-    BubbleStyleOption option;
-    // incoming call
-    option.mCallState = BubbleManagerIF::Incoming;
-    option.mCallFlags |= BubbleManagerIF::Diverted;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_NumberType_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()==":/qgn_indi_call_diverted.svg");
-    option.mCallState = BubbleManagerIF::Incoming;
-    option.mCallFlags &= ~BubbleManagerIF::Diverted;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_NumberType_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()=="");
-
-    // waiting call
-    option.mCallState = BubbleManagerIF::Waiting;
-    option.mCallFlags |= BubbleManagerIF::Diverted;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_NumberType_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()==":/qgn_indi_call_diverted.svg");
-    option.mCallState = BubbleManagerIF::Waiting;
-    option.mCallFlags &= ~BubbleManagerIF::Diverted;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_NumberType_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()=="");
-}
-
-void ut_BubbleStylePlugin::testCipheringIcon()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_Ciphering_icon),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbIconItem* icon = qgraphicsitem_cast<HbIconItem*>(item);
-    QVERIFY(icon);
-    BubbleStyleOption option;
-    option.mCallState = BubbleManagerIF::Active;
-    option.mCallFlags |= BubbleManagerIF::NoCiphering;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_Ciphering_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()=="qtg_mono_ciphering_off");
-    option.mCallState = BubbleManagerIF::Incoming;
-    option.mCallFlags &= ~BubbleManagerIF::NoCiphering;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_Ciphering_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()=="");
-}
-
-void ut_BubbleStylePlugin::testAvatar()
-{
-    QGraphicsItem *item = mPlugin->createPrimitive(
-        (HbStyle::Primitive)(BP_DefaultAvatar_icon),mParent);
-    QVERIFY(item);
-    QVERIFY(item->parentItem()==mParent);
-
-    HbIconItem* icon = qgraphicsitem_cast<HbIconItem*>(item);
-    QVERIFY(icon);
-    BubbleStyleOption option;
-    mPlugin->updatePrimitive(
-            item, (HbStyle::Primitive)(BP_DefaultAvatar_icon),
-            &option);
-    QVERIFY(icon->icon().iconName()=="qtg_large_avatar");
-}
-
-BUBBLE_TEST_MAIN(ut_BubbleStylePlugin)
-#include "ut_bubblestyleplugin.moc"
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubblestyleplugin/ut_bubblestyleplugin.pro	Mon May 03 12:31:11 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-#
-#
-
-TEMPLATE = app
-TARGET = 
-DEPENDPATH += . ../../../bubblestyle/src
-INCLUDEPATH += . ../../../bubblestyle/src ../../../inc ../shared
-CONFIG += hb qtestlib
-
-symbian {
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-} else:win32 {
-    DESTDIR = ./
-}
-
-#
-HEADERS += ../../../bubblestyle/src/bubblestyleplugin.h \
-           ../../../bubblestyle/src/bubbleanimiconitem.h
-SOURCES += ut_bubblestyleplugin.cpp \
-           ../../../bubblestyle/src/bubblestyleplugin.cpp \
-           ../../../bubblestyle/src/bubbleanimiconitem.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp
-
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp	Fri May 14 15:51:57 2010 +0300
@@ -20,21 +20,13 @@
 #include <hbapplication.h>
 #include <hbtextitem.h>
 #include <hbiconitem.h>
-#include <hbpushbutton.h>
+#include <bubblebutton.h>
 #include <hbaction.h>
 
 #include "bubbletest.h"
 #include "bubbleutils.h"
 #include "bubbleheader.h"
-#include "bubblestyleoption.h"
-#include "bubblebuttonstyle.h"
-
-class BubbleButtonStyleMock : public BubbleButtonStyle
-{
-public:
-    BubbleButtonStyleMock() {};
-    BubbleButtonStyle::ButtonColor color() {return mButtonColor; };
-};
+#include "bubbleconferenceheader.h"
 
 class ut_BubbleUtils : public QObject
 {
@@ -62,9 +54,15 @@
 
     void test_compareHeaders();
 
-    void test_stylePluginNameWithPath();
+    void test_setButtonStyleForAction();
 
-    void test_setButtonStyleForAction();
+    void test_voiceCallStatusIcon();
+    void test_videoCallStatusIcon();
+    void test_voipCallStatusIcon();
+
+    void test_numberTypeIcon();
+
+    void test_cipheringIcon();
 
 private:
 };
@@ -81,414 +79,445 @@
 {
     // incoming call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
     
     header.setCallState( BubbleManager::Incoming );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "calling", Qt::ElideRight );
     
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
     
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "calling" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "calling" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
     
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
         
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "calling" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "calling" );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_waiting()
 {
     // incoming call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Waiting );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "waiting", Qt::ElideRight );
 
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "waiting" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "waiting" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
 
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "waiting" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "waiting" );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_active()
 {
     // active call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Active );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "", Qt::ElideRight );
     
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
     
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "" );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "" );
+    QVERIFY( text3.text() == "" );
     
     // add timer
-    opt = BubbleStyleOption();
     header.setTimerCost( "00:00" );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "00:00" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
+    QVERIFY( text1.text()== "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "00:00" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
     header.setTimerCost( "" );
     
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
         
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "" );
     
     // add timer
-    opt = BubbleStyleOption();
     header.setTimerCost( "00:00" );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "00:00" );
-    QVERIFY( opt.mText3Clip == Qt::ElideRight );
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
+    QVERIFY( text1.text()== "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "00:00" );
+    QVERIFY( text3.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_disconnected()
 {
     // disconnected call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Disconnected );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "discon", Qt::ElideRight );
     header.setTimerCost( "00:00" );
     
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "discon" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "discon" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
     
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
         
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "discon" );
-    QVERIFY( opt.mText3Clip == Qt::ElideRight );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "discon" );
+    QVERIFY( text3.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_outgoing()
 {
     // outgoing call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Outgoing );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "calling", Qt::ElideRight );
     
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
     
-    QVERIFY( opt.mText1 == "calling" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "john" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "calling" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "john" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
     
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
         
-    QVERIFY( opt.mText1 == "calling" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "john" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "12345" );
-    QVERIFY( opt.mText3Clip == Qt::ElideLeft );
+    QVERIFY( text1.text() == "calling" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "john" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "12345" );
+    QVERIFY( text3.elideMode() == Qt::ElideLeft );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_alerting()
 {
     // alerting call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Alerting );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "calling", Qt::ElideRight );
     
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
     
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "" );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "" );
+    QVERIFY( text3.text() == "" );
     
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
         
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "" );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_held()
 {
     // held
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::OnHold );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "on hold", Qt::ElideRight );
     header.setTimerCost( "00:00" );
     
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
     
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "on hold" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "on hold" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
     
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
         
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "on hold" );
-    QVERIFY( opt.mText3Clip == Qt::ElideRight );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "on hold" );
+    QVERIFY( text3.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts3Lines_alerttodisconnected()
 {
     // incoming call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    HbTextItem text3;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Incoming );
     header.setCallState( BubbleManager::AlertToDisconnected );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "disconnected", Qt::ElideRight );
 
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "disconnected" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "disconnected" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
+    QVERIFY( text3.text() == "" );
 
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli( "12345", Qt::ElideLeft );
-    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts3Lines(header, text1, text2, text3, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "12345" );
-    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
-    QVERIFY( opt.mText3 == "disconnected" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "12345" );
+    QVERIFY( text2.elideMode() == Qt::ElideLeft );
+    QVERIFY( text3.text() == "disconnected" );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts2Lines_waiting()
 {
     // waiting call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Waiting );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "waiting", Qt::ElideRight );
 
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "waiting" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "waiting" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli("12345",Qt::ElideLeft);
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "waiting" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "waiting" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts2Lines_alerttodisconnected()
 {
     // waiting call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    int cliLine;
+    int timerLine;
 
-    header.setCallState( BubbleManager::Waiting );
+    header.setCallState( BubbleManager::AlertToDisconnected );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "disconnected", Qt::ElideRight );
 
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "disconnected" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "disconnected" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 
     // add secondary cli
-    opt = BubbleStyleOption();
     header.setSecondaryCli("12345",Qt::ElideLeft);
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "disconnected" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "disconnected" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts2Lines_active()
 {
     // active call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Active );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "", Qt::ElideRight );
 
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "" );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "" );
 
     // add timer
-    opt = BubbleStyleOption();
     header.setTimerCost( "00:00" );
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "00:00" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "00:00" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts2Lines_held()
 {
     // held
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::OnHold );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "on hold", Qt::ElideRight );
     header.setTimerCost( "00:00" );
 
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
 
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "on hold" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "on hold" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts2Lines_disconnected()
 {
     // disconnected call
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    int cliLine;
+    int timerLine;
 
     header.setCallState( BubbleManager::Disconnected );
     header.setCli( "john", Qt::ElideRight );
     header.setText( "discon", Qt::ElideRight );
     header.setTimerCost( "00:00" );
 
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
-    QVERIFY( opt.mText1 == "john" );
-    QVERIFY( opt.mText1Clip == Qt::ElideRight );
-    QVERIFY( opt.mText2 == "discon" );
-    QVERIFY( opt.mText2Clip == Qt::ElideRight );
-    QVERIFY( opt.mText3 == "" );
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
+    QVERIFY( text1.text() == "john" );
+    QVERIFY( text1.elideMode() == Qt::ElideRight );
+    QVERIFY( text2.text() == "discon" );
+    QVERIFY( text2.elideMode() == Qt::ElideRight );
 }
 
 void ut_BubbleUtils::test_setCallHeaderTexts2Lines_outgoing()
 {
     // outgoing
     BubbleHeader header;
-    BubbleStyleOption opt;
+    HbTextItem text1;
+    HbTextItem text2;
+    int cliLine;
+    int timerLine;
 
     header.setCallState(BubbleManager::Outgoing);
     header.setCli("john", Qt::ElideRight);
     header.setText("calling", Qt::ElideRight);
     header.setTimerCost("00:00");
 
-    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
-    QCOMPARE(opt.mText1, QString("calling"));
-    QCOMPARE(opt.mText1Clip, Qt::ElideRight);
-    QCOMPARE(opt.mText2, QString("john"));
-    QCOMPARE(opt.mText2Clip, Qt::ElideRight);
+    BubbleUtils::setCallHeaderTexts2Lines(header, text1, text2, cliLine, timerLine);
+    QCOMPARE(text1.text(), QString("calling"));
+    QCOMPARE(text1.elideMode(), Qt::ElideRight);
+    QCOMPARE(text2.text(), QString("john"));
+    QCOMPARE(text2.elideMode(), Qt::ElideRight);
 }
 
 void ut_BubbleUtils::test_compareHeaders()
 {
     BubbleHeader header1;
     BubbleHeader header2;
+    BubbleConferenceHeader headerC;
 
     header1.setCallState(BubbleManagerIF::Active);
     header2.setCallState(BubbleManagerIF::Waiting);
@@ -497,40 +526,207 @@
     header1.setCallState(BubbleManagerIF::Active);
     header2.setCallState(BubbleManagerIF::OnHold);
     QVERIFY( BubbleUtils::compareHeaders(&header1,&header2) == true );
-}
 
-void ut_BubbleUtils::test_stylePluginNameWithPath()
-{
-#if defined(Q_OS_SYMBIAN)
-    QString name(BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
-    QVERIFY(name=="z:/resource/qt/plugins/phone/bubblestyleplugin.dll");
-#elif defined(Q_OS_WIN)
-    QString name(BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
-    QVERIFY(name=="c:/hb/bin/bubblestyleplugin.dll");
-#else // Q_OS_UNIX
-    QString name(BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
-    QVERIFY(name=="/home/lib/bubblestyleplugin.dll");
-#endif
+    headerC.setCallState(BubbleManagerIF::Active);
+    header1.setCallState(BubbleManagerIF::OnHold);
+
+    QVERIFY( BubbleUtils::compareHeaders(&headerC,&header1) == false );
 }
 
 void ut_BubbleUtils::test_setButtonStyleForAction()
 {
-    HbPushButton button;
-    BubbleButtonStyleMock style;
-    button.setStyle(&style);
+    BubbleButton button;
     HbAction action;
 
     action.setSoftKeyRole(QAction::NoSoftKey);
     BubbleUtils::setButtonStyleForAction(button,action);
-    QVERIFY(style.color()==BubbleButtonStyle::Default);
+    QVERIFY(button.buttonType()==BubbleButton::DefaultButton);
 
     action.setSoftKeyRole(QAction::PositiveSoftKey);
     BubbleUtils::setButtonStyleForAction(button,action);
-    QVERIFY(style.color()==BubbleButtonStyle::Green);
+    QVERIFY(button.buttonType()==BubbleButton::GreenButton);
 
     action.setSoftKeyRole(QAction::NegativeSoftKey);
     BubbleUtils::setButtonStyleForAction(button,action);
-    QVERIFY(style.color()==BubbleButtonStyle::Red);
+    QVERIFY(button.buttonType()==BubbleButton::RedButton);
+}
+
+void ut_BubbleUtils::test_voiceCallStatusIcon()
+{
+    HbIconItem icon;
+    icon.hide();
+
+    // test different voice call states
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="voice_call_waiting_anim");
+    QVERIFY(icon.isVisible()==true);
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Waiting, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="voice_call_waiting_anim");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Alerting, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="voice_call_waiting_anim");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Active, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="qtg_large_active_call");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Outgoing, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="qtg_large_active_call");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::OnHold, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="qtg_large_waiting_call");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Disconnected, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="qtg_large_end_call");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::AlertToDisconnected, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="qtg_large_end_call");
+
+    icon.hide();
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::None, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="");
+    QVERIFY(icon.isVisible()==false);
+}
+
+void ut_BubbleUtils::test_videoCallStatusIcon()
+{
+    HbIconItem icon;
+    icon.hide();
+
+    // test different voice call states
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="video_call_waiting_anim");
+    QVERIFY(icon.isVisible()==true);
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Waiting, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="video_call_waiting_anim");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Alerting, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="video_call_waiting_anim");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Active, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="qtg_large_video_call_active");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Outgoing, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="qtg_large_video_call_active");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::OnHold, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="qtg_large_video_call_waiting");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Disconnected, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="qtg_large_end_call");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::AlertToDisconnected, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="qtg_large_end_call");
+
+    icon.hide();
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::None, BubbleManagerIF::Video, icon);
+    QVERIFY(icon.iconName()=="");
+    QVERIFY(icon.isVisible()==false);
+}
+
+void ut_BubbleUtils::test_voipCallStatusIcon()
+{
+    HbIconItem icon;
+    icon.hide();
+
+    // test different voice call states
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="voip_call_waiting_anim");
+    QVERIFY(icon.isVisible()==true);
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Waiting, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="voip_call_waiting_anim");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Alerting, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="voip_call_waiting_anim");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Active, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="qtg_large_voip_call_active");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Outgoing, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="qtg_large_voip_call_active");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::OnHold, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="qtg_large_voip_call_waiting");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::Disconnected, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="qtg_large_end_call");
+
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::AlertToDisconnected, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="qtg_large_end_call");
+
+    icon.hide();
+    BubbleUtils::setCallStatusIcon(
+        BubbleManagerIF::None, BubbleManagerIF::VoIPCall, icon);
+    QVERIFY(icon.iconName()=="");
+    QVERIFY(icon.isVisible()==false);
+}
+
+void ut_BubbleUtils::test_numberTypeIcon()
+{
+    HbIconItem icon;
+    icon.hide();
+
+    BubbleUtils::setNumberTypeIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Diverted, icon);
+    QVERIFY(icon.iconName()==":/qtg_mono_call_diverted.svg");
+    QVERIFY(icon.isVisible()==true);
+
+    BubbleUtils::setNumberTypeIcon(
+        BubbleManagerIF::Waiting, BubbleManagerIF::Diverted, icon);
+    QVERIFY(icon.iconName()==":/qtg_mono_call_diverted.svg");
+    QVERIFY(icon.isVisible()==true);
+
+    BubbleUtils::setNumberTypeIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="");
+    QVERIFY(icon.isVisible()==false);
+}
+
+void ut_BubbleUtils::test_cipheringIcon()
+{
+    HbIconItem icon;
+    icon.hide();
+
+    BubbleUtils::setCipheringIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::NoCiphering, icon);
+    QVERIFY(icon.iconName()=="qtg_mono_ciphering_off");
+    QVERIFY(icon.isVisible()==true);
+
+    BubbleUtils::setCipheringIcon(
+        BubbleManagerIF::Incoming, BubbleManagerIF::Normal, icon);
+    QVERIFY(icon.iconName()=="");
+    QVERIFY(icon.isVisible()==false);
 }
 
 BUBBLE_TEST_MAIN(ut_BubbleUtils)
--- a/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.pro	Mon May 03 12:31:11 2010 +0300
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.pro	Fri May 14 15:51:57 2010 +0300
@@ -27,11 +27,12 @@
     DESTDIR = ./
 }
 
-#
+HEADERS += ../../../bubblecore/src/bubblebutton.h
+
 SOURCES += ut_bubbleutils.cpp \
            ../../../bubblecore/src/bubbleheader.cpp \
+           ../../../bubblecore/src/bubbleconferenceheader.cpp \
            ../../../bubblecore/src/bubbleutils.cpp \
-           ../../../bubblecore/src/bubblestyleoption.cpp \
-           ../../../bubblecore/src/bubblebuttonstyle.cpp
+           ../../../bubblecore/src/bubblebutton.cpp