Revert incorrect RCL_3 drop: RCL_3 PDK_3.0.2 PDK_3.0.3
authorPat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:33:30 +0100
branchRCL_3
changeset 14 5f281e37a2f5
parent 13 90fe62538f66
Revert incorrect RCL_3 drop: Revision: 201029 Kit: 201035
controlpanelplugins/themeplugin/image/themePreview.nvg
controlpanelplugins/themeplugin/rom/themeplugin.iby
controlpanelplugins/themeplugin/rom/themeplugin_rom.pri
controlpanelplugins/themeplugin/src/cpthemechanger.cpp
controlpanelplugins/themeplugin/src/cpthemechanger.h
controlpanelplugins/themeplugin/src/cpthemecontrol.cpp
controlpanelplugins/themeplugin/src/cpthemecontrol.h
controlpanelplugins/themeplugin/src/cpthemeinfo.cpp
controlpanelplugins/themeplugin/src/cpthemeinfo.h
controlpanelplugins/themeplugin/src/cpthemelistmodel.cpp
controlpanelplugins/themeplugin/src/cpthemelistmodel.h
controlpanelplugins/themeplugin/src/cpthemelistview.cpp
controlpanelplugins/themeplugin/src/cpthemelistview.h
controlpanelplugins/themeplugin/src/cpthemeplugin.cpp
controlpanelplugins/themeplugin/src/cpthemeplugin.h
controlpanelplugins/themeplugin/src/cpthemepluginentryitemdata.cpp
controlpanelplugins/themeplugin/src/cpthemepluginentryitemdata.h
controlpanelplugins/themeplugin/src/cpthemepreview.cpp
controlpanelplugins/themeplugin/src/cpthemepreview.h
controlpanelplugins/themeplugin/src/cpthemeutil.cpp
controlpanelplugins/themeplugin/src/cpthemeutil.h
controlpanelplugins/themeplugin/themeplugin.pri
controlpanelplugins/themeplugin/themeplugin.pro
controlpanelplugins/themeplugin/themeplugin.qrc
controlpanelplugins/themeplugin/tsrc/tsrc.pro
controlpanelplugins/themeplugin/tsrc/unit/common.pri
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemecontrol/unittest_cpthemecontrol.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemecontrol/unittest_cpthemecontrol.pro
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistmodel/unittest_cpthemelistmodel.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistmodel/unittest_cpthemelistmodel.pro
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistview/unittest_cpthemelistview.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistview/unittest_cpthemelistview.pro
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeplugin/unittest_cpthemeplugin.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeplugin/unittest_cpthemeplugin.pro
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepluginentryitemdata/unittest_cpthemepluginentryitemdata.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepluginentryitemdata/unittest_cpthemepluginentryitemdata.pro
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepreview/unittest_cpthemepreview.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepreview/unittest_cpthemepreview.pro
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeutil/unittest_cpthemeutil.cpp
controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeutil/unittest_cpthemeutil.pro
controlpanelui/controlpanelui.pro
controlpanelui/cpcfg_win.pl
controlpanelui/examples/example_common.pri
controlpanelui/examples/examples.pro
controlpanelui/examples/groupplugin/groupplugin.pri
controlpanelui/examples/groupplugin/groupplugin.pro
controlpanelui/examples/groupplugin/src/cpgroupplugin.cpp
controlpanelui/examples/groupplugin/src/cpgroupplugin.h
controlpanelui/examples/groupplugin/src/cpsamplegroup.cpp
controlpanelui/examples/groupplugin/src/cpsamplegroup.h
controlpanelui/examples/pluginlauncherclient/pluginlauncherclient.pri
controlpanelui/examples/pluginlauncherclient/pluginlauncherclient.pro
controlpanelui/examples/pluginlauncherclient/src/main.cpp
controlpanelui/examples/pluginlauncherclient/src/mainview.cpp
controlpanelui/examples/pluginlauncherclient/src/mainview.h
controlpanelui/examples/rom/controlpanel_examples.iby
controlpanelui/examples/rom/rom.pri
controlpanelui/examples/themeplugin/src/cpthemeplugin.cpp
controlpanelui/examples/themeplugin/src/cpthemeplugin.h
controlpanelui/examples/themeplugin/src/cpthemepluginentryitemdata.cpp
controlpanelui/examples/themeplugin/src/cpthemepluginentryitemdata.h
controlpanelui/examples/themeplugin/themeplugin.pri
controlpanelui/examples/themeplugin/themeplugin.pro
controlpanelui/examples/viewplugin/src/cpsampleview.cpp
controlpanelui/examples/viewplugin/src/cpsampleview.h
controlpanelui/examples/viewplugin/src/cpviewplugin.cpp
controlpanelui/examples/viewplugin/src/cpviewplugin.h
controlpanelui/examples/viewplugin/viewplugin.pri
controlpanelui/examples/viewplugin/viewplugin.pro
controlpanelui/rom/controlpanelui.iby
controlpanelui/rom/controlpanelui_resources.iby
controlpanelui/rom/cpui_rom.pri
controlpanelui/src/common.pri
controlpanelui/src/cpapplication/cpapplication.pri
controlpanelui/src/cpapplication/cpapplication.pro
controlpanelui/src/cpapplication/cpapplication.qrc
controlpanelui/src/cpapplication/data/controlpanellog.conf
controlpanelui/src/cpapplication/data/mainview.cpcfg
controlpanelui/src/cpapplication/resources/qtg_large_settings.svg
controlpanelui/src/cpapplication/src/cpmainmodel.cpp
controlpanelui/src/cpapplication/src/cpmainmodel.h
controlpanelui/src/cpapplication/src/cpmainview.cpp
controlpanelui/src/cpapplication/src/cpmainview.h
controlpanelui/src/cpapplication/src/cpmainwindow.cpp
controlpanelui/src/cpapplication/src/cpmainwindow.h
controlpanelui/src/cpapplication/src/main.cpp
controlpanelui/src/cpcategorymodel/bwins/cpcategorymodelu.def
controlpanelui/src/cpcategorymodel/cpcategorymodel.pri
controlpanelui/src/cpcategorymodel/cpcategorymodel.pro
controlpanelui/src/cpcategorymodel/eabi/cpcategorymodelu.def
controlpanelui/src/cpcategorymodel/src/cpcategorymodelutility.cpp
controlpanelui/src/cpcategorymodel/src/cpcategorymodelutility.h
controlpanelui/src/cpcategorymodel/src/cpcategorysettingformitemdata.cpp
controlpanelui/src/cpcategorymodel/src/cpcategorysettingformmodel.cpp
controlpanelui/src/cpcategorymodel/src/cpplaceholderitemdata.cpp
controlpanelui/src/cpcategorymodel/src/cpplaceholderitemdata.h
controlpanelui/src/cpcategorymodel/src/cppluginconfig.cpp
controlpanelui/src/cpcategorymodel/src/cppluginconfig.h
controlpanelui/src/cpcategorymodel/src/cppluginconfigreader.cpp
controlpanelui/src/cpcategorymodel/src/cppluginconfigreader.h
controlpanelui/src/cpcategorymodel/src/cptaskexecutor.cpp
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/firstpluginforcpcategorymodel.pro
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginforcpcategorymodel.cpp
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginforcpcategorymodel.h
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginviewforcpcategorymodel.cpp
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginviewforcpcategorymodel.h
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/secondpluginforcpcategorymodel.pro
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginforcpcategorymodel.cpp
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginforcpcategorymodel.h
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginviewforcpcategorymodel.cpp
controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginviewforcpcategorymodel.h
controlpanelui/src/cpcategorymodel/tsrc/unit_common.pri
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/data/pluginfileformodelitemdata.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/runtest.bat
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/src/ut_categorymodelitemdata.cpp
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/src/ut_categorymodelitemdata.h
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/ut_categorymodelitemdata.pro
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/data/configfiletestformodelutility.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/runtest.bat
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/cptestpluginentryitem.cpp
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/cptestpluginentryitem.h
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/ut_categorymodelutility.cpp
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/ut_categorymodelutility.h
controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/ut_categorymodelutility.pro
controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/data/pluginfileforformmodel.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/runtest.bat
controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/src/ut_cpcategorysettingformmodel.cpp
controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/src/ut_cpcategorysettingformmodel.h
controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/ut_cpcategorysettingformmodel.pro
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/emptypluginfortest.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithemptychildelement.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithoutattrs.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithwrongchildtag.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithwrongdesctag.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithwrongplugintag.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfortest.cpcfg
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/testdataputhere.dat
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/runtest.bat
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/src/ut_cppluginconfigreader.cpp
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/src/ut_cppluginconfigreader.h
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/ut_cppluginconfigreader.pri
controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/ut_cppluginconfigreader.pro
controlpanelui/src/cpplugins/communicationplugin/communicationplugin.pri
controlpanelui/src/cpplugins/communicationplugin/communicationplugin.pro
controlpanelui/src/cpplugins/communicationplugin/data/cpcommunicationplugin.cpcfg
controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationgroupitemdata.cpp
controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationgroupitemdata.h
controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationplugin.cpp
controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationplugin.h
controlpanelui/src/cpplugins/cpplugincommon.pri
controlpanelui/src/cpplugins/cpplugins.pro
controlpanelui/src/cpplugins/deviceplugin/data/cpdeviceplugin.cpcfg
controlpanelui/src/cpplugins/deviceplugin/deviceplugin.pri
controlpanelui/src/cpplugins/deviceplugin/deviceplugin.pro
controlpanelui/src/cpplugins/deviceplugin/src/cpdeviceplugin.cpp
controlpanelui/src/cpplugins/deviceplugin/src/cpdeviceplugin.h
controlpanelui/src/cpplugins/keytouchfdbkplugin/keytouchfdbkplugin.pri
controlpanelui/src/cpplugins/keytouchfdbkplugin/keytouchfdbkplugin.pro
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenconstants.h
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel.cpp
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel.h
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel_p.cpp
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel_p.h
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenplugin.cpp
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenplugin.h
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp
controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.h
controlpanelui/src/cpplugins/lookfeelplugin/data/cplookfeelplugin.cpcfg
controlpanelui/src/cpplugins/lookfeelplugin/lookfeelplugin.pri
controlpanelui/src/cpplugins/lookfeelplugin/lookfeelplugin.pro
controlpanelui/src/cpplugins/lookfeelplugin/src/cplookfeelplugin.cpp
controlpanelui/src/cpplugins/lookfeelplugin/src/cplookfeelplugin.h
controlpanelui/src/cpplugins/personalizationplugin/data/cppersonalizationplugin.cpcfg
controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_decrement.svg
controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_decrement_pressed.svg
controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_increment.svg
controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_increment_pressed.svg
controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_muted.svg
controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_unmuted.svg
controlpanelui/src/cpplugins/personalizationplugin/personalizationplugin.pri
controlpanelui/src/cpplugins/personalizationplugin/personalizationplugin.pro
controlpanelui/src/cpplugins/personalizationplugin/personalizationplugin.qrc
controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationadvanceview.cpp
controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationadvanceview.h
controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationgroupitemdata.cpp
controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationgroupitemdata.h
controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationplugin.cpp
controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationplugin.h
controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilenameeditdialog.cpp
controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilenameeditdialog.h
controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesettingform.cpp
controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesettingform.h
controlpanelui/src/cpplugins/privacyplugin/data/cpprivacyplugin.cpcfg
controlpanelui/src/cpplugins/privacyplugin/privacyplugin.pri
controlpanelui/src/cpplugins/privacyplugin/privacyplugin.pro
controlpanelui/src/cpplugins/privacyplugin/src/cpprivacyplugin.cpp
controlpanelui/src/cpplugins/privacyplugin/src/cpprivacyplugin.h
controlpanelui/src/cpplugins/profileactivatorplugin/profileactivatorplugin.pri
controlpanelui/src/cpplugins/profileactivatorplugin/profileactivatorplugin.pro
controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatordialog.cpp
controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatordialog.h
controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorentryitem.cpp
controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorentryitem.h
controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorplugin.cpp
controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorplugin.h
controlpanelui/src/cpplugins/ringtoneplugin/ringtoneplugin.pri
controlpanelui/src/cpplugins/ringtoneplugin/ringtoneplugin.pro
controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp
controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.h
controlpanelui/src/cpplugins/ringtoneplugin/src/cpringtoneplugin.cpp
controlpanelui/src/cpplugins/ringtoneplugin/src/cpringtoneplugin.h
controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_decrement.svg
controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_decrement_pressed.svg
controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_increment.svg
controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_increment_pressed.svg
controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_muted.svg
controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_unmuted.svg
controlpanelui/src/cpplugins/volumeplugin/src/cppersonalizationcustomviewitem.cpp
controlpanelui/src/cpplugins/volumeplugin/src/cppersonalizationcustomviewitem.h
controlpanelui/src/cpplugins/volumeplugin/src/cpvolumecontroller.cpp
controlpanelui/src/cpplugins/volumeplugin/src/cpvolumecontroller.h
controlpanelui/src/cpplugins/volumeplugin/src/cpvolumegroupitemdata.cpp
controlpanelui/src/cpplugins/volumeplugin/src/cpvolumegroupitemdata.h
controlpanelui/src/cpplugins/volumeplugin/src/cpvolumeplugin.cpp
controlpanelui/src/cpplugins/volumeplugin/src/cpvolumeplugin.h
controlpanelui/src/cpplugins/volumeplugin/volumeplugin.pri
controlpanelui/src/cpplugins/volumeplugin/volumeplugin.pro
controlpanelui/src/cpplugins/volumeplugin/volumeplugin.qrc
controlpanelui/src/cpprofilewrapper/bwins/cpprofilewrapperu.def
controlpanelui/src/cpprofilewrapper/cpprofilewrapper.pro
controlpanelui/src/cpprofilewrapper/eabi/cpprofilewrapperu.def
controlpanelui/src/cpprofilewrapper/src/cpprofilemodel.cpp
controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.cpp
controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.h
controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_win_p.cpp
controlpanelui/src/cpprofilewrapper/src/cpprofilemonitor.cpp
controlpanelui/src/cpprofilewrapper/src/cpprofilemonitor_p.cpp
controlpanelui/src/cpprofilewrapper/src/cpprofilemonitor_p.h
controlpanelui/src/cpprofilewrapper/tsrc/unit_common.pri
controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/data/testsound.aac
controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/data/testsound2.aac
controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/runtest.bat
controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/src/ut_cpprofilemodel.cpp
controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/src/ut_cpprofilemodel.h
controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/ut_cpprofilemodel.pro
controlpanelui/src/cpringtoneview/bwins/cpringtoneviewu.def
controlpanelui/src/cpringtoneview/cpringtoneview.pro
controlpanelui/src/cpringtoneview/eabi/cpringtoneviewu.def
controlpanelui/src/cpringtoneview/ringtoneview.pri
controlpanelui/src/cpringtoneview/src/cpringtoneview.cpp
controlpanelui/src/cpserviceprovider/cpserviceprovider.pri
controlpanelui/src/cpserviceprovider/cpserviceprovider.pro
controlpanelui/src/cpserviceprovider/cpserviceprovider.qrc
controlpanelui/src/cpserviceprovider/data/cpserviceproviderlog.conf
controlpanelui/src/cpserviceprovider/service_conf.xml
controlpanelui/src/cpserviceprovider/src/cplauncherservice.cpp
controlpanelui/src/cpserviceprovider/src/cplauncherservice.h
controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.cpp
controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.h
controlpanelui/src/cpserviceprovider/src/cpsplogger.h
controlpanelui/src/cpserviceprovider/src/main.cpp
controlpanelui/src/inc/cpcategoryglobal.h
controlpanelui/src/inc/cpcategorysettingformitemdata.h
controlpanelui/src/inc/cpcategorysettingformmodel.h
controlpanelui/src/inc/cpevent.h
controlpanelui/src/inc/cpprofilemodel.h
controlpanelui/src/inc/cpprofilemonitor.h
controlpanelui/src/inc/cpprofilewrappermacro.h
controlpanelui/src/inc/cpringtoneview.h
controlpanelui/src/inc/cptaskexecutor.h
controlpanelui/src/inc/cpuids.h
controlpanelui/src/inc/inc.pri
controlpanelui/src/inc/ringtoneviewdef.h
controlpanelui/src/src.pro
controlpanelui/src/tonefetcher/common.pri
controlpanelui/src/tonefetcher/inc/tonefetcherlog.conf
controlpanelui/src/tonefetcher/inc/tonefetcherlogger.h
controlpanelui/src/tonefetcher/inc/tonefetcherutils.cpp
controlpanelui/src/tonefetcher/inc/tonefetcherutils.h
controlpanelui/src/tonefetcher/rom/rom.pri
controlpanelui/src/tonefetcher/rom/tonefetcher.iby
controlpanelui/src/tonefetcher/service_conf.xml
controlpanelui/src/tonefetcher/src/main.cpp
controlpanelui/src/tonefetcher/src/tonefetcher.cpp
controlpanelui/src/tonefetcher/src/tonefetcher.h
controlpanelui/src/tonefetcher/src/tonefetchermainwindow.cpp
controlpanelui/src/tonefetcher/src/tonefetchermainwindow.h
controlpanelui/src/tonefetcher/src/tonefetchermodel.cpp
controlpanelui/src/tonefetcher/src/tonefetchermodel.h
controlpanelui/src/tonefetcher/src/tonefetcherview.cpp
controlpanelui/src/tonefetcher/src/tonefetcherview.h
controlpanelui/src/tonefetcher/src/tonefetcherwidget.cpp
controlpanelui/src/tonefetcher/src/tonefetcherwidget.h
controlpanelui/src/tonefetcher/tonefetcher.pri
controlpanelui/src/tonefetcher/tonefetcher.pro
controlpanelui/src/tonefetcher/tonefetcherengine/private/CTonePlayer.cpp
controlpanelui/src/tonefetcher/tonefetcherengine/private/CTonePlayer.h
controlpanelui/src/tonefetcher/tonefetcherengine/private/CToneSelection.cpp
controlpanelui/src/tonefetcher/tonefetcherengine/private/CToneSelection.h
controlpanelui/src/tonefetcher/tonefetcherengine/private/MTonePlayingWatcher.h
controlpanelui/src/tonefetcher/tonefetcherengine/private/MToneSelectionWatcher.h
controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_stub.cpp
controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_stub.h
controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_symbian.cpp
controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_symbian.h
controlpanelui/src/tonefetcher/tonefetcherengine/tonefetcherengine.cpp
controlpanelui/src/tonefetcher/tonefetcherengine/tonefetcherengine.h
controlpanelui/src/tonefetcher/tsrc/main.cpp
controlpanelui/src/tonefetcher/tsrc/rom/rom.pri
controlpanelui/src/tonefetcher/tsrc/rom/tonetestapp.iby
controlpanelui/src/tonefetcher/tsrc/tonetestapp.cpp
controlpanelui/src/tonefetcher/tsrc/tonetestapp.h
controlpanelui/src/tonefetcher/tsrc/tonetestapp.pro
controlpanelui/tsrc/tsrc.pro
defaultapplicationsettings/group/bld.inf
defaultapplicationsettings/gsplugin/data/10281BA0.rss
defaultapplicationsettings/gsplugin/data/gsdasplugin_rsc.rss
defaultapplicationsettings/gsplugin/group/GSDasPluginIcons.mk
defaultapplicationsettings/gsplugin/group/bld.inf
defaultapplicationsettings/gsplugin/group/gsdasplugin.mmp
defaultapplicationsettings/gsplugin/inc/gs_das.h
defaultapplicationsettings/gsplugin/inc/gs_das_emptycontainer.h
defaultapplicationsettings/gsplugin/loc/gs_das.loc
defaultapplicationsettings/gsplugin/src/gs_das.cpp
defaultapplicationsettings/gsplugin/src/gs_das_emptycontainer.cpp
defaultapplicationsettings/gsplugin/src/gs_das_implementationtable.cpp
defaultapplicationsettings/rom/DefaultApplicationSettings.iby
defaultapplicationsettings/rom/DefaultApplicationSettingsResources.iby
defaultapplicationsettings/server/data/defaultappserver.rss
defaultapplicationsettings/server/data/defaultappserver_reg.rss
defaultapplicationsettings/server/group/bld.inf
defaultapplicationsettings/server/group/das_server.mmp
defaultapplicationsettings/server/inc/das.hlp.hrh
defaultapplicationsettings/server/inc/das.hrh
defaultapplicationsettings/server/inc/das_app.h
defaultapplicationsettings/server/inc/das_appui.h
defaultapplicationsettings/server/inc/das_doc.h
defaultapplicationsettings/server/inc/das_gsentries.rh
defaultapplicationsettings/server/inc/das_server.h
defaultapplicationsettings/server/inc/das_service.h
defaultapplicationsettings/server/inc/das_servmimeapps.h
defaultapplicationsettings/server/inc/das_srvmime_dlg.h
defaultapplicationsettings/server/inc/das_view.h
defaultapplicationsettings/server/loc/defaultappserver.loc
defaultapplicationsettings/server/loc/services_db.loc
defaultapplicationsettings/server/src/das.cpp
defaultapplicationsettings/server/src/das_app.cpp
defaultapplicationsettings/server/src/das_appui.cpp
defaultapplicationsettings/server/src/das_doc.cpp
defaultapplicationsettings/server/src/das_server.cpp
defaultapplicationsettings/server/src/das_service.cpp
defaultapplicationsettings/server/src/das_servmimeapps.cpp
defaultapplicationsettings/server/src/das_srvmime_dlg.cpp
defaultapplicationsettings/server/src/das_view.cpp
defaultapplicationsettings/service/BWINS/defaultappclientU.DEF
defaultapplicationsettings/service/EABI/defaultappclientU.DEF
defaultapplicationsettings/service/group/bld.inf
defaultapplicationsettings/service/group/das_service.mmp
defaultapplicationsettings/service/inc/das_service.h
defaultapplicationsettings/service/src/das_client.cpp
defaultapplicationsettings/service/src/das_service.cpp
defaultapplicationsettings/services_db/BWINS/servicesdbU.DEF
defaultapplicationsettings/services_db/Eabi/servicesdbU.DEF
defaultapplicationsettings/services_db/group/bld.inf
defaultapplicationsettings/services_db/group/services_db.mmp
defaultapplicationsettings/services_db/src/services_db.cpp
devmngt_plat/default_app_client_api/default_app_client_api.metaxml
devmngt_plat/default_app_client_api/group/bld.inf
devmngt_plat/default_app_client_api/inc/das_client.h
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/bwins/DasClientApiTestU.DEF
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/eabi/DasClientApiTestU.def
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.bat
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.iby
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.mmp
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.pkg
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/bld.inf
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/inc/CClientLauncher.h
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/inc/DasClientApiTest.h
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/src/DasClientApiTest.cpp
devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/src/DasClientApiTestblocks.cpp
devmngt_plat/group/bld.inf
devmngt_plat/services_db_api/group/bld.inf
devmngt_plat/services_db_api/inc/services_db.h
devmngt_plat/services_db_api/inc/services_db.rh
devmngt_plat/services_db_api/services_db_api.metaxml
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/Bmarm/ServicesDbApiTestU.DEF
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/Bwins/ServicesDbApiTestU.DEF
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/EABI/ServicesDbApiTestU.def
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/conf/ui_ServicesDbApiTest.cfg
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/data/ServicesDbApiTest.rsc
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest.iby
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest.mmp
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest.pkg
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest_DoxyFile.txt
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest_nrm.mmp
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/bld.inf
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/proeng_c.bat
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/proeng_z.bat
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/inc/ServicesDbApiTest.h
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/init/TestFramework_SDB.ini
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/src/ServicesDbApiTest.cpp
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/src/ServicesDbApiTest.rss
devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/src/ServicesDbApiTestBlocks.cpp
devmngt_pub/group/bld.inf
group/bld.inf
layers.sysdef.xml
sysdef_1_4_0.dtd
sysdef_1_5_1.dtd
systemswuis/group/bld.inf
systemswuis/touchscreencalib/PubSub/touchscprivatepskeys.h
systemswuis/touchscreencalib/aif/TouchScreenCalibaif.rss
systemswuis/touchscreencalib/data/TouchScreenCalib.rss
systemswuis/touchscreencalib/data/TouchScreenCalib_anim.rss
systemswuis/touchscreencalib/data/TouchScreenCalib_reg.rss
systemswuis/touchscreencalib/group/TouchScreenCalib.mmp
systemswuis/touchscreencalib/group/bld.inf
systemswuis/touchscreencalib/group/touchscreencalib_icons.mk
systemswuis/touchscreencalib/inc/MTouchScreenCalibPropertyResponder.h
systemswuis/touchscreencalib/inc/TouchScreenCalibAppUi.h
systemswuis/touchscreencalib/inc/TouchScreenCalibApplication.h
systemswuis/touchscreencalib/inc/TouchScreenCalibDefines.h
systemswuis/touchscreencalib/inc/TouchScreenCalibDocument.h
systemswuis/touchscreencalib/inc/TouchScreenCalibPubSubObserver.h
systemswuis/touchscreencalib/inc/TouchScreenCalibSubscriber.h
systemswuis/touchscreencalib/inc/TouchScreenCalibView.h
systemswuis/touchscreencalib/loc/touchscreencalib.loc
systemswuis/touchscreencalib/rom/TouchScreenCalib.iby
systemswuis/touchscreencalib/rom/TouchScreenCalibResources.iby
systemswuis/touchscreencalib/rom/TouchScreenCalib_variant.iby
systemswuis/touchscreencalib/src/TouchScreenCalibAppUi.cpp
systemswuis/touchscreencalib/src/TouchScreenCalibApplication.cpp
systemswuis/touchscreencalib/src/TouchScreenCalibDocument.cpp
systemswuis/touchscreencalib/src/TouchScreenCalibPubSubObserver.cpp
systemswuis/touchscreencalib/src/TouchScreenCalibSubscriber.cpp
systemswuis/touchscreencalib/src/TouchScreenCalibView.cpp
systemswuis/touchscreencalib/tsccustcmds/bwins/tsccustcmdsu.def
systemswuis/touchscreencalib/tsccustcmds/eabi/tsccustcmdsu.def
systemswuis/touchscreencalib/tsccustcmds/group/tsccustcmds.mmp
systemswuis/touchscreencalib/tsccustcmds/inc/MTSCPropertyResponder.h
systemswuis/touchscreencalib/tsccustcmds/inc/TSCPubSubObserver.h
systemswuis/touchscreencalib/tsccustcmds/inc/tsccustcmdfactory.h
systemswuis/touchscreencalib/tsccustcmds/inc/tscstartupextension.h
systemswuis/touchscreencalib/tsccustcmds/inc/tscstartupextensiondef.h
systemswuis/touchscreencalib/tsccustcmds/inc/tscsubscriber.h
systemswuis/touchscreencalib/tsccustcmds/src/tsccustcmdfactory.cpp
systemswuis/touchscreencalib/tsccustcmds/src/tscpubsubobserver.cpp
systemswuis/touchscreencalib/tsccustcmds/src/tscstartupextension.cpp
systemswuis/touchscreencalib/tsccustcmds/src/tscsubscriber.cpp
systemswuis/touchscreencalib/tscstartupextensionplugin/data/10283123.rss
systemswuis/touchscreencalib/tscstartupextensionplugin/group/tscstartupextensionplugin.mmp
systemswuis/touchscreencalib/tscstartupextensionplugin/inc/MTSCPlugInPropertyResponder.h
systemswuis/touchscreencalib/tscstartupextensionplugin/inc/TSCPlugInPubSubObserver.h
systemswuis/touchscreencalib/tscstartupextensionplugin/inc/tscpluginsubscriber.h
systemswuis/touchscreencalib/tscstartupextensionplugin/inc/tscstartupextensionplugin.h
systemswuis/touchscreencalib/tscstartupextensionplugin/inc/tscstartupextensionplugindef.h
systemswuis/touchscreencalib/tscstartupextensionplugin/src/implementationfactory.cpp
systemswuis/touchscreencalib/tscstartupextensionplugin/src/tscpluginpubsubobserver.cpp
systemswuis/touchscreencalib/tscstartupextensionplugin/src/tscpluginsubscriber.cpp
systemswuis/touchscreencalib/tscstartupextensionplugin/src/tscstartupextensionplugin.cpp
tsrc/group/bld.inf
tsrc/group/copy_binaries_to_sys_dir.mk
Binary file controlpanelplugins/themeplugin/image/themePreview.nvg has changed
--- a/controlpanelplugins/themeplugin/rom/themeplugin.iby	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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: 
-*
-*/
-
-#ifndef __THEMEPLUGIN_IBY__
-#define __THEMEPLUGIN_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-file=ABI_DIR\BUILD_DIR\cpthemeplugin.dll                     SHARED_LIB_DIR\cpthemeplugin.dll
-
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpthemeplugin.qtplugin                       resource\qt\plugins\controlpanel\cpthemeplugin.qtplugin
-
-#endif
--- a/controlpanelplugins/themeplugin/rom/themeplugin_rom.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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: 
-#
-
-symbian {
-		BLD_INF_RULES.prj_exports += \
-				"$${LITERAL_HASH}include<platform_paths.hrh>" \
-				"rom/themeplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(themeplugin.iby)"
-}
\ No newline at end of file
--- a/controlpanelplugins/themeplugin/src/cpthemechanger.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +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 <QString>
-
-#include "cpthemechanger.h"
-#include "cpthemeutil.h"
-#include "cpthemeinfo.h"
-
-#include <hbinstance.h>
-#include <restricted/hbthemeservices_r.h>
-
-/*!
-  \class CpThemeChanger
-
-  \brief CpThemeChanger provides an interface for changing the current
-  theme.
-  This API is only for use with the control panel and its theme
-  changing plugin.
-*/
-
-/*!
-  Constructor.
-*/
-CpThemeChanger::CpThemeChanger(QObject* p) :
-    QObject(p),
-    mCurrentTheme(0)
-{
-    if(hbInstance->theme()) {
-        connect(hbInstance->theme(),SIGNAL(changeFinished()), this, SLOT(changeFinished()));
-    }
-       
-    setCurrentTheme();
-}
-
-/*!
-    Returns a ThemeInfo object containing the current theme name and
-    corresponding icons.
-
-    If no repersentative icons exist, the HbIcon returned will be
-    uninitialized.
-*/
-const CpThemeInfo* CpThemeChanger::currentTheme() const
-{
-    return mCurrentTheme;
-}
-
-/*!
- * Private helper function that gets the current theme from hbinstance and s
- * ets class' current theme.  
- */
-void CpThemeChanger::setCurrentTheme()
-{
-    QString themeName = "";
-    if (HbInstance::instance()) {
-        HbTheme *hbTheme = HbInstance::instance()->theme();
-        if(hbTheme) {
-            themeName = hbTheme->name();
-        }
-         
-    }
-       
-    if(mCurrentTheme && mCurrentTheme->name() == themeName) {
-        return;
-    } else {
-        //buildThemeInfo creates new theme info.
-        CpThemeInfo* tmpTheme = CpThemeUtil::buildThemeInfo(HbThemeServices::themePath(), themeName);
-         
-        //delete old value. set the new value.
-        if(tmpTheme) {
-            if(mCurrentTheme){
-                delete mCurrentTheme;
-            }
-            mCurrentTheme = tmpTheme;
-        }
-    }
-}
-
-
-/*!
- Change a theme. Returns true on success, false otherwise.
- */
-bool CpThemeChanger::changeTheme(const CpThemeInfo& newTheme)
-{
-    bool result = false;
-    // Skip doing this if the request is for the current theme
-    if (newTheme.name().isEmpty() || (mCurrentTheme && newTheme.name() == mCurrentTheme->name())) {
-        return result;
-    }
-
-    QString themePath = newTheme.itemData();
-    
-    if(!themePath.isEmpty()) {
-        HbThemeServices::setTheme(themePath);
-        result = true;
-    }
-    return result;
-}
-
-/*!
- Destructor
- */
-CpThemeChanger::~CpThemeChanger()
-{
-    delete mCurrentTheme;
-    mCurrentTheme = 0;
-}
-
-/*!
- *  Slot to handle notification from theme server that theme change
- *  is done.  Notify the owner.
- */
-void CpThemeChanger::changeFinished()
-{
-    setCurrentTheme();
-    emit themeChangeFinished();
-}
-
-// End of file
-
--- a/controlpanelplugins/themeplugin/src/cpthemechanger.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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:  
- *   
- */
-
-#ifndef CPTHEMECHANGER_H
-#define CPTHEMECHANGER_H
-
-#include <QStringList>
-
-#include <hbicon.h>
-#include <hbglobal.h>
-
-class CpThemeChangerPrivate;
-class CpThemeInfo;
-
-QT_BEGIN_NAMESPACE
-class QAbstractItemModel;
-QT_END_NAMESPACE
-
-class CpThemeChanger : public QObject
-{
-    Q_OBJECT
-    
-public:
-     explicit CpThemeChanger(QObject* parent=0);
-    ~CpThemeChanger();
-    
-    const CpThemeInfo* currentTheme() const;
-    bool changeTheme(const CpThemeInfo& newtheme);
-    
-signals:
-    void themeChangeFinished();
-    
-private slots:
-    void changeFinished();
-	
-private:
-    void setCurrentTheme();
-    
-    CpThemeInfo* mCurrentTheme;
-};
-
-
-#endif /* CPTHEMECHANGER_H */
--- a/controlpanelplugins/themeplugin/src/cpthemecontrol.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,317 +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:  
- *   
- */
-
-/*!
-    \class CpThemeControl
-    \brief CpThemeControl creates and controls views for Theme Changer plugin and handles
-	user interaction to preview and change the themes.
-
-	This class also connects to the theme server using the HbThemeChanger and sets the theme
-	based on user interaction with the views.  
-
- */
-
-#include <QString>
-#include <QModelIndex>
-#include <QTranslator>
-#include <QSortFilterProxyModel>
-#include <QThread>
-#include <QTimer>
-#include <QDesktopServices>
-#include <QUrl>
-
-#include <hbmainwindow.h>
-#include <hbinstance.h>
-#include "cpthemechanger.h"
-
-#include "cpthemecontrol.h"
-#include "cpthemelistview.h"
-#include "cpthemeinfo.h"
-#include "cpthemelistmodel.h"
-
-#include <hbdialog.h>
-#include <hblabel.h>
-
-//time out time before showing a processing dialog.
-static const int KThemeChangeTimeOutMilliSeconds = 2000;  
-
-/*!
-	Helper function to fetch the main window.
-*/
-static HbMainWindow *mainWindow() 
-{
-    QList< HbMainWindow* > mainWindows = hbInstance->allMainWindows();
-    if (!mainWindows.isEmpty()) {
-        return mainWindows.front();
-    }
-    return 0;
-}
-
-/*!
-	constructor.
-*/
-CpThemeControl::CpThemeControl(): mThemeListView(0), 
-    mThemeChanger(0),
-    mListModel(0),
-    mThemeChangeFinished(false),
-    mWaitDialog(0)
-{
-    mThemeChanger = new CpThemeChanger();
-       
-    QTranslator *translator = new QTranslator(this);
-    QString lang = QLocale::system().name();
-    QString path = "Z:/resource/qt/translations/";
-    translator->load("control_panel_" + lang, path);
-    qApp->installTranslator(translator);
-    
-    connect(mThemeChanger,SIGNAL(themeChangeFinished()), this, SLOT(themeChangeFinished()));
-   
-}
-
-
-/*!
-	destorys the list view and theme changer objects.
-*/
-CpThemeControl::~CpThemeControl()
-{
-    delete mThemeListView;
-    mThemeListView = 0;
-
-    delete mThemeChanger;
-    mThemeChanger = 0;
-
-    delete mWaitDialog;
-    mWaitDialog = 0;
-}
-
-/*!
-	Creates the theme list view.  Gets the themes, creates a model  and sets the list model.
-*/
-void CpThemeControl::createThemeList()
-{
-   
-    mThemeListView = new CpThemeListView();
-    
-    if(!mListModel) {
-        mListModel = new CpThemeListModel(this);
-    }
-    
-    // Set the model for theme list.
-    mThemeListView->setModel(mListModel);
-    
-    setActiveThemeIndex();
-    
-    //connect to signal for selecting a list item.
-    connect(mThemeListView,SIGNAL(newThemeSelected(QModelIndex)),
-            this,SLOT(newThemeSelected(QModelIndex)));
-    
-    connect(mThemeListView, SIGNAL(oviClicked()), this, SLOT(getOviTheme()));
-
-	//handle signal for list view closing. (e.g Back softkey pressed)
-    connect(mThemeListView,SIGNAL(aboutToClose()),
-            this,SLOT(themeListClosed()));
-}
-
-/*!
-	returns the instance of themelist view.  Used by control panel to set
-	the view.  
-*/
-CpBaseSettingView* CpThemeControl::themeListView()
-{
-    //If the view was removed before by control panel app, create it again.
-    if(!mThemeListView) {
-        createThemeList();
-    }
-
-    return mThemeListView;
-}
-
-/*!
-        returns the name of the current theme.
-*/
-QString CpThemeControl::currentThemeName() const
-{
-    QString name = "";
-    if(mThemeChanger->currentTheme()) {
-        name = mThemeChanger->currentTheme()->name();
-    }
-    return name;
-}
-
-/*!
-        returns the repersenatative icon of the current theme.
-*/
-HbIcon CpThemeControl::currentThemeIcon() const
-{
-    HbIcon icon;
-    if(mThemeChanger->currentTheme()) {
-        icon = mThemeChanger->currentTheme()->icon();
-    }
-    return icon;
-}
-
-/*!
-	Slot called when a list item of the theme list is selected.
-*/
-void CpThemeControl::newThemeSelected(const QModelIndex& index)
-{
-    if(!index.isValid()) {
-        return;
-    }
-    
-    CpThemeInfo themeInfo;
-    QVariant data;
-
-    //reset the current index to active theme, so that the selection remains on current
-    //theme even though another list item is selected.
-    setActiveThemeIndex();
-    
-    //get the theme name.
-    data = index.data(Qt::DisplayRole);
-    if(data.isValid()) {
-        themeInfo.setName(data.toString());
-    }
-    
-    //get theme path
-    data = index.data(CpThemeListModel::ItemDataRole);
-    if(data.isValid()) {
-        themeInfo.setItemData(data.toString());
-    }
-    
-    applyTheme(themeInfo);
-
-}
-
-void CpThemeControl::getOviTheme()
-{
-    QString url = QString("http://lr.ovi.mobi/store/themes");
-    // Launch the URL in the browser and 
-    // continue to Preview if not successful
-    QDesktopServices::openUrl(QUrl(url, QUrl::TolerantMode));
-                              
-}
-
-/*!
-	Slot called when a Select key is pressed in theme preview view.
-*/
-void CpThemeControl::applyTheme(const CpThemeInfo& theme)
-{
-    QThread::currentThread()->setPriority(QThread::HighPriority);  
-    
-    if(mThemeChanger->changeTheme(theme)) {
-    
-        //Start a timer. If theme change takes more than 1 seconds,
-        //we will show a dialog (mWaitDialog) until theme change
-        //is done (themeChangeFinished is called).
-        QTimer::singleShot(KThemeChangeTimeOutMilliSeconds, this, SLOT(themeWaitTimeout()));
-        
-        mThemeChangeFinished = false;
-    } else {
-        //theme change failed, go back to control panel.
-        setActiveThemeIndex();
-    }
-   
-}
-
-/*!
-    Slot for when the theme list view is closed. Ownership of the theme list was given to
-    control panel, so the class won't delete it.
-    
-*/
-void CpThemeControl::themeListClosed()
-{
-    mThemeListView = 0;
-}
-
-/*!
-    asks the theme list view to close.  
-*/
-void CpThemeControl::triggerThemeListClose()
-{
-    mThemeListView->closeView();
-}
-
-void CpThemeControl::themeChangeTimeout()
-{
-    //Theme change is finished and idle timer has timed out,
-    //so revert back the application priority to normal
-    //and go back to control panel view.
-    if(mWaitDialog && mWaitDialog->isVisible()) {
-        mWaitDialog->hide();
-    }
-    setActiveThemeIndex();
-    QThread::currentThread()->setPriority(QThread::NormalPriority); 
-}
-
-void CpThemeControl::themeWaitTimeout()
-{
-    //If after this timeOut, theme change is still in progress,
-    //show a processing dialog.
-    if(!mThemeChangeFinished){
-        if(!mWaitDialog) {
-            mWaitDialog = new HbDialog();
-            mWaitDialog->setDismissPolicy(HbPopup::NoDismiss);
-            mWaitDialog->setModal(false);
-            mWaitDialog->setTimeout(HbPopup::NoTimeout);
-            // Create and set HbLabel as content widget.
-            QString processingText = hbTrId("txt_common_info_processing") + QString("...");
-            HbLabel *label = new HbLabel(processingText);
-            label->setAlignment(Qt::AlignCenter);
-            mWaitDialog->setContentWidget(label);
-        }
-       // as we do not need any signals, calling show() instead of open()
-       mWaitDialog->show();
-    }
-}
-
-void CpThemeControl::themeChangeFinished()
-{
-    //Theme change is done. Start an idle timer to let the UI
-    //finish remaining tasks.
-    QTimer::singleShot(0, this, SLOT(themeChangeTimeout()));
-    mThemeChangeFinished = true;
-    
-    if(mThemeChanger->currentTheme()) {
-        emit themeUpdated(mThemeChanger->currentTheme()->name(), mThemeChanger->currentTheme()->icon());
-    }
-    
-}
-
-/*!
- * Private function that sets the current index of theme list view to indicate
- * the active theme.
- */
-void CpThemeControl::setActiveThemeIndex()
-{
-    //Get the index of current theme.
-    CpThemeListModel* themeListModel = dynamic_cast<CpThemeListModel*>(mListModel);
-    const CpThemeInfo* currentTheme = mThemeChanger->currentTheme();
-    if(themeListModel && currentTheme) {
-        QModelIndex sourceIndex = mListModel->index(themeListModel->indexOf(*currentTheme),0);
-        //set current index.
-        mThemeListView->themeList()->setCurrentIndex(sourceIndex, QItemSelectionModel::SelectCurrent);
-    }
-    else {
-        mThemeListView->themeList()->setCurrentIndex(QModelIndex(), QItemSelectionModel::Clear);
-    }
-}
-    
-
-
-
-
-
--- a/controlpanelplugins/themeplugin/src/cpthemecontrol.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +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:  
- *   
- */
-
-#ifndef CPTHEMECONTROL_H
-#define CPTHEMECONTROL_H
-
-#include <QObject>
-#include <QList>
-
-#include "cpthemechanger.h"
-#include <hbicon.h>
-
-QT_BEGIN_NAMESPACE
-class QModelIndex;
-class QString;
-class QSortFilterProxyModel;
-QT_END_NAMESPACE
-
-class HbDialog;
-class CpThemeListView;
-class CpBaseSettingView;
-class CpThemeListModel;
-
-
-class CpThemeControl : public QObject
-{
-    Q_OBJECT
-
-public:
-    CpThemeControl();
-    ~CpThemeControl();
-    CpBaseSettingView* themeListView();
-    QString currentThemeName() const;
-    HbIcon currentThemeIcon() const;
-
-signals:
-    void themeUpdated(const QString& themeName, const HbIcon& icon);
-
-private slots:
-    void newThemeSelected(const QModelIndex& index);
-    void applyTheme(const CpThemeInfo& theme);
-    void themeListClosed();
-    void themeChangeTimeout();
-    void themeWaitTimeout();
-    void themeChangeFinished();
-    void getOviTheme();
-
-private:
-    void createThemeList();
-    void triggerThemeListClose();
-    void setActiveThemeIndex();
-
-private:
-    CpThemeListView* mThemeListView;
-    CpThemeChanger* mThemeChanger;
-    QAbstractItemModel* mListModel;
-    bool mThemeChangeFinished;
-    HbDialog* mWaitDialog;
-};
-
-#endif //CPTHEMECONTROL_H
--- a/controlpanelplugins/themeplugin/src/cpthemeinfo.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +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:  
- *   
- */
-
-/*!
- * A simple class to represent theme information. This information includes:
- *  1. Theme Name
- *  2. Theme Preview Thumbnail
- *  3. Theme Preview landscape and portrait icon
- *  4. Theme list type: either an item representing a theme, or a link (e.g OviStore).
- *  5. Item type data. Represents additional information (e.g for link type, the URL).
- */
-#include <hbicon.h>
-
-#include "cpthemeinfo.h"
-
- CpThemeInfo::CpThemeInfo()
-{
-}
-
- 
- CpThemeInfo::~CpThemeInfo()
-{
-}
-      
-QString CpThemeInfo::name() const
-{
-    return mName;
-}
-
-void CpThemeInfo::setName(const QString& newName)
-{
-    mName = newName;
-}
-      
-CpThemeInfo::ThemeListItemType CpThemeInfo::itemType() const
-{
-    return mItemType;
-}
-
-void CpThemeInfo::setItemType(CpThemeInfo::ThemeListItemType type)
-{
-    mItemType = type;
-}
-
-      
-QString CpThemeInfo::itemData() const
-{
-    return mItemData;
-}
-
-void CpThemeInfo::setItemData(const QString& data)
-{
-    mItemData = data;
-}
-
-      
-HbIcon CpThemeInfo::icon() const
-{
-    return mIcon;
-}
-  
-void CpThemeInfo::setIcon(const HbIcon& newIcon)
-{
-    mIcon = newIcon;
-}
-
-      
-HbIcon CpThemeInfo::portraitPreviewIcon() const
-{
-    return mPortraitPreviewIcon;
-}
-
-void CpThemeInfo::setPortraitPreviewIcon(const HbIcon& newIcon)
-{
-    mPortraitPreviewIcon = newIcon;
-}
-
-      
-HbIcon CpThemeInfo::landscapePreviewIcon() const
-{
-    return mLandscapePreviewIcon;
-}
-
-void CpThemeInfo::setLandscapePreviewIcon(const HbIcon& newIcon)
-{
-    mLandscapePreviewIcon = newIcon;
-}
-
--- a/controlpanelplugins/themeplugin/src/cpthemeinfo.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +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:  
- *   
- */
-#ifndef CPTHEMEINFO_H_
-#define CPTHEMEINFO_H_
-
-
-#include <QString>
-
-#include <hbicon.h>
-
-class CpThemeInfo {
-
-public:
-    
-    
-    enum ThemeListItemType {
-                 ThemeListItemType_default = 0,
-                 ThemeListItemType_URL,
-                 ThemeListItemType_APP
-             };
-    
-     CpThemeInfo();
-     ~CpThemeInfo();
-     
-     QString name() const;
-     void setName(const QString& newName);
-     
-     ThemeListItemType itemType() const;
-     void setItemType(ThemeListItemType type);
-     
-     QString itemData() const;
-     void setItemData(const QString& data);
-     
-     HbIcon icon() const;
-     void setIcon(const HbIcon& newIcon);
-     
-     HbIcon portraitPreviewIcon() const;
-     void setPortraitPreviewIcon(const HbIcon& newIcon);
-     
-     HbIcon landscapePreviewIcon() const;
-     void setLandscapePreviewIcon(const HbIcon& newIcon);
-     
-     bool operator < (const CpThemeInfo &other) const   {            
-         return mName.toCaseFolded().localeAwareCompare(other.mName.toCaseFolded()) < 0;
-     }
-     bool operator == (const CpThemeInfo &other) const {
-         return mName.localeAwareCompare(other.mName) == 0;
-     }
-     
-private:
-     CpThemeInfo::ThemeListItemType mItemType;
-     QString mItemData;
-     QString mName;
-     HbIcon mIcon;
-     HbIcon mPortraitPreviewIcon;
-     HbIcon mLandscapePreviewIcon;
-
-};    
-Q_DECLARE_METATYPE(CpThemeInfo::ThemeListItemType)
-
-   
-#endif /* CPTHEMEINFO_H_ */
--- a/controlpanelplugins/themeplugin/src/cpthemelistmodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +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 <QDir>
-#include <QStringList>
-#include <QFileSystemWatcher>
-#include <QPair>
-
-#include <HbIcon>
-
-#include "cpthemelistmodel.h"
-#include "cpthemeinfo.h"
-#include "cpthemeutil.h"
-
-/*
-    CpThemeChangerModel provides an interface to the data contained in the
-    theme list using QAbstractListModel.
-*/
-
-/*
-    Constructor
-*/
-CpThemeListModel::CpThemeListModel(QObject* parent)
-    : QAbstractListModel(parent)
-    , mTopThemeList()
-    , mThemeList()
-    , mBottomThemeList()
-    , mFileWatcher(new QFileSystemWatcher(this))
-{
-    //Build theme list
-    mThemeList = CpThemeUtil::buildThemeList();
-    
-    //Look into theme paths and add a file watcher for it
-    //to get notified when themes are added.
-    QStringList themePaths = CpThemeUtil::themeDirectories(mThemeList);
-    if(!themePaths.empty()) {
-        mFileWatcher->addPaths(themePaths);
-    }
-   
-    connect(mFileWatcher, SIGNAL(directoryChanged(QString)),
-           this, SLOT(themeListChanged()));
-   
-}
-
-/*
-    Destructor
-*/
-CpThemeListModel::~CpThemeListModel()
-{
-    delete mFileWatcher;
-    mFileWatcher = 0;
-
-}
-
-/*
-    Reimplemented from QAbstractListModel.
-*/
-int CpThemeListModel::rowCount(const QModelIndex&) const
-{
-    return mTopThemeList.size() +
-        mThemeList.size() +
-        mBottomThemeList.size();
-}
-
-/*
-    Reimplemented from QAbstractListModel. 
-*/
-QVariant CpThemeListModel::data(const QModelIndex& index, int role) const
-{
-    QVariant retVal = QVariant();
-
-    if (index.isValid()) {
-        // figure out which list we're in and do the appropriate mapping
-        int row = index.row();
-        const QList<CpThemeInfo> *list = 0;
-        if (row < mTopThemeList.size()) {
-            list = &mTopThemeList;
-        } else {
-            row -= mTopThemeList.size();
-            if ( row < mThemeList.size() ) {
-                list = &mThemeList;
-            } else {
-                row -= mThemeList.size();
-                if ( row < mBottomThemeList.size() ) {
-                    list = &mBottomThemeList;
-                }
-            }
-        }
-
-        if (list) {
-            switch (role) {
-                case Qt::DisplayRole:
-                    retVal = list->at(row).name();
-                    break;
-                    
-                case Qt::SizeHintRole:
-                    retVal = list->at(row).icon().size();
-                    break;
-                                
-                case ItemDataRole:
-                    retVal = list->at(row).itemData();
-                    break;
-
-                case ItemTypeRole:
-                    retVal = QVariant::fromValue<CpThemeInfo::ThemeListItemType>(list->at(row).itemType());
-                    break;
-
-                default:
-                    // do nothing
-                    qt_noop();
-            }
-        }
-    }
-
-    return retVal;
-}
-
-/*
-    Responds appropriately when the underlying data in the theme changer is modified.
-
-    Unfortunately the directory watcher from QFileWatcher only says when something changed
-    not what changed.  Therefore the model is considered reset rather than having rows
-    with dataChanged.
-*/
-void CpThemeListModel::themeListChanged()
-{
-    beginResetModel();
-    if(!mThemeList.empty()) {
-        mThemeList.clear();
-    }
-    mThemeList = CpThemeUtil::buildThemeList();
-  
-    endResetModel();
-}
-/*!
- * Returns index of theme infor within the theme list.
- */
-int CpThemeListModel::indexOf(const CpThemeInfo& theme) const
-{
-    return mThemeList.indexOf(theme);
-}
--- a/controlpanelplugins/themeplugin/src/cpthemelistmodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +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:  
- *   
- */
-
-#ifndef CP_THEME_LIST_MODEL_P_H
-#define CP_THEME_LIST_MODEL_P_H
-
-#include <QAbstractListModel>
-#include <QModelIndex>
-#include <QObject>
-#include "cpthemeutil.h"
-
-class QFileSystemWatcher;
-
-class CpThemeListModel : public QAbstractListModel
-{
-    Q_OBJECT
-
-public:
-    
-    enum ThemeListUserRole {
-        ItemTypeRole = Qt::UserRole,
-        ItemDataRole
-    };
-    
-    explicit CpThemeListModel(QObject *parent = 0);
-    virtual ~CpThemeListModel();
-
-    virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
-    virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
-    int indexOf(const CpThemeInfo& theme) const;
-    
-public slots:
-    void themeListChanged();
-
-private:
-    QList<CpThemeInfo> mTopThemeList;
-    QList<CpThemeInfo> mThemeList;
-    QList<CpThemeInfo> mBottomThemeList;
-    QFileSystemWatcher *mFileWatcher;
-};
-
-#endif //CP_THEME_LIST_MODEL_P_H
--- a/controlpanelplugins/themeplugin/src/cpthemelistview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +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 <QGraphicsLinearLayout>
-#include <QModelIndex>
-
-#include <hbview.h>
-#include <hblistview.h>
-#include <hblistviewitem.h>
-#include <hbtoolbar.h>
-#include <hbaction.h>
-#include <hbgroupbox.h>
-
-
-#include "cpthemelistview.h"
-
-/*!
-    \class CpThemeListView
-    \brief CpThemeListView displays a heading (e.g Theme) and a list of themes with
-    corresponding icons.
-
-    Note: This class is a subclass of CpBaseSettingView for compatibility with Control Panel
-          framework.  
- */
-
-/*!
-    constructor.  Creates the heading label and the list and adds it to layout.
-*/
-CpThemeListView::CpThemeListView(QGraphicsItem *parent) : CpBaseSettingView(0, parent),
-    mThemeList(new HbListView(this))
-{
-   
-    //Create a layout with a heading at top and the list below it.
-    HbWidget* contentWidget = new HbWidget(this);
-    QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical);
-    layout->setContentsMargins(0,0,0,0);
-    
-    //setup the heading.
-    HbGroupBox *simpleLabel = new HbGroupBox();
-    simpleLabel->setHeading(hbTrId("txt_cp_title_select_theme"));
-     
-    layout->addItem(simpleLabel);
-      
-    connect(mThemeList, SIGNAL(activated(QModelIndex)),
-            this, SIGNAL(newThemeSelected(QModelIndex)));
-    
-    //set list item icons to be large.
-    HbListViewItem* listViewItem = mThemeList->listItemPrototype();
-    listViewItem->setGraphicsSize(HbListViewItem::LargeIcon);
-    //set singleSelection to enable showing an indicator (e.g check mark) next to active theme.
-    mThemeList->setSelectionMode(HbAbstractItemView::SingleSelection);
-  
-    //add the list to layout.
-    layout->addItem(mThemeList);
-    
-    //Create the toolbar for Ovi Store.
-    HbToolBar* toolBar = new HbToolBar(this);
-
-    HbAction* oviAction = new HbAction(HbIcon("qtg_large_ovistore"), hbTrId("txt_cp_list_get_more_tones"));
-    QObject::connect( oviAction, SIGNAL(triggered()), 
-                          this, SIGNAL(oviClicked()));
-       
-    //Add Action to the toolbar and show toolbar
-    toolBar->addAction(oviAction);
-       
-    setToolBar(toolBar);
-
-    contentWidget->setLayout(layout);
-   
-    setWidget(contentWidget);
-   
-}
-
-/*!
-    destructor.
-*/
-CpThemeListView::~CpThemeListView()
-{
-}
-
-/*!
-    returns the listview instance (list of themes).
-*/
-HbListView* CpThemeListView::themeList() const
-{
-    return mThemeList;
-}
-
-/*!
-    Sets the model of its listView.
-*/
-void CpThemeListView::setModel(QAbstractItemModel* model)
-{
-    mThemeList->setModel(model);
-}
-
-/*!
-    sets the widget. Reimplementation from HbView. 
-*/
-void CpThemeListView::setWidget(QGraphicsWidget *widget)
-{
-    HbView::setWidget(widget);
-}
-
-/*!
-    emits aboutToClose() signal.
-*/
-void CpThemeListView::closeView()
-{
-    emit aboutToClose();
-}
-
-
--- a/controlpanelplugins/themeplugin/src/cpthemelistview.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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:  
- *   
- */
-#ifndef CPTHEMELISTVIEW_H
-#define CPTHEMELISTVIEW_H
-
-#include <QAbstractItemModel>
-
-#include <hbview.h>
-#include <hblistview.h>
-
-#include <cpbasesettingview.h>
-
-
-class CpThemeSelectionList;
-
-class CpThemeListView : public CpBaseSettingView
-{
-    Q_OBJECT
-
-public:
-    explicit CpThemeListView(QGraphicsItem *parent = 0);
-    ~CpThemeListView();
-    void setWidget(QGraphicsWidget *widget);
-    HbListView* themeList() const;
-    void setModel(QAbstractItemModel* model);
-    void closeView();
-	
-signals:
-    void newThemeSelected(const QModelIndex& index);
-    void oviClicked();
-
-private:
-    HbListView* mThemeList;
-   
-};
-
-#endif //CPTHEMELISTVIEW_H
-
--- a/controlpanelplugins/themeplugin/src/cpthemeplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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 "cpthemeplugin.h"
-#include "cpthemepluginentryitemdata.h"
-
-/*!
-    \class CpThemePlugin
-    \brief CpThemePlugin is a control panel plugin that allows a user to view available themes and
-           change the current theme of the phone.
-
-*/
-
-/*!
-    constructor.
-*/
-CpThemePlugin::CpThemePlugin()
-{
-}
-
-/*!
-    destructor.
-*/
-CpThemePlugin::~CpThemePlugin()
-{
-}
-
-/*!
-    create the control panel entry item data for Theme settins.
-*/
-
-QList<CpSettingFormItemData*> CpThemePlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-
-    //create a cpthemepluginentryitemdata with default values and return it.
-    CpSettingFormEntryItemData *entryItem = new CpThemePluginEntryItemData(
-        itemDataHelper,
-        hbTrId("txt_cp_dblist_theme"),
-        QString(),
-        HbIcon());
-        return QList<CpSettingFormItemData*>() << entryItem;
-}
-
-Q_EXPORT_PLUGIN2(cpthemeplugin, CpThemePlugin);
-
--- a/controlpanelplugins/themeplugin/src/cpthemeplugin.h	Tue Aug 31 15:15:28 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:  
- *   
- */
-
-#ifndef	CPTHEMEPLUGIN_H
-#define	CPTHEMEPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpThemePlugin : public QObject, public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpThemePlugin();
-    virtual ~CpThemePlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif	//CPTHEMEPLUGIN_H
--- a/controlpanelplugins/themeplugin/src/cpthemepluginentryitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +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 <hbdataform.h>
-#include <hbiconitem.h>
-
-#include <cpbasesettingview.h>
-#include "cpthemecontrol.h"
-#include "cpthemepluginentryitemdata.h"
-#include <cpitemdatahelper.h>
-
-/*!
-    \class CpThemePluginEntryItemData
-    \brief CpThemePluginEntryItemData is the entry item view for Theme Changer plugin.  It displays a title "Theme",
-    the name of current theme and the preview icon of the current theme.
-
-*/
-
-/*!
-    constructor.
-*/
-CpThemePluginEntryItemData::CpThemePluginEntryItemData(CpItemDataHelper &itemDataHelper,
-                                            const QString &text,
-                                            const QString &description,
-                                            const HbIcon &icon,
-                                            const HbDataFormModelItem *parent) :
-                                        CpSettingFormEntryItemData(itemDataHelper,
-                                                                   text,
-                                                                   description,
-                                                                   icon,
-                                                                   parent)
-{
-    //Create a CpThemeControl. the themeControl takes care of displaying the themes
-    //and letting user select a theme and apply a theme change.
-    mThemeControl = new CpThemeControl();
-    
-    setEntryItemIcon(mThemeControl->currentThemeIcon());
-    setDescription(mThemeControl->currentThemeName());
-
-    //connect to signal to update the current theme name and icon whenever the theme changes.
-    QObject::connect(mThemeControl, SIGNAL(themeUpdated(const QString&, const HbIcon&)), this, 
-                            SLOT(themeUpdated(const QString&, const HbIcon&)));
-}
-
-/*!
-    destructor.
-*/
-CpThemePluginEntryItemData::~CpThemePluginEntryItemData()
-{
-    delete mThemeControl;
-    mThemeControl = 0;
-}
-
-/*!
-    Slot used for updating entry item's description and icon with current theme name and its 
-    preview icon.
- */
-void CpThemePluginEntryItemData::themeUpdated(const QString& themeName, const HbIcon& icon)
-{
-    setEntryItemIcon(icon);
-    setDescription(themeName);
-}
-
-/*!
-    Return the theme changer UI view.  Returns 0 if it can't create
-    the view.
-*/
-CpBaseSettingView *CpThemePluginEntryItemData::createSettingView() const
-{
-    if(mThemeControl) {
-        CpBaseSettingView *view = mThemeControl->themeListView();
-        return view;
-    }
-    
-    return 0;
-}
--- a/controlpanelplugins/themeplugin/src/cpthemepluginentryitemdata.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +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:  
- *   
- */
-
-#ifndef CPTHEMEPLUGINENTRYITEMDATA_H
-#define CPTHEMEPLUGINENTRYITEMDATA_H
-
-#include <QObject>
-#include <cpsettingformentryitemdata.h>
-
-class CpThemeControl;
-
-class CpThemePluginEntryItemData : public CpSettingFormEntryItemData
-{
-    Q_OBJECT
-    
-public:
-    explicit CpThemePluginEntryItemData(CpItemDataHelper &itemDataHelper,
-                    const QString &text = QString(),
-                    const QString &description = QString(),
-                    const HbIcon &icon = HbIcon(),
-                    const HbDataFormModelItem *parent = 0);     
-                    virtual ~CpThemePluginEntryItemData();
-
-private slots:
-    void themeUpdated(const QString& themeName, const HbIcon& icon);
-private:
-    CpThemeControl* mThemeControl;
-    virtual CpBaseSettingView *createSettingView() const;
-    
-};
-
-#endif //CPTHEMEPLUGINENTRYITEMDATA_H
--- a/controlpanelplugins/themeplugin/src/cpthemepreview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +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 <QObject>
-#include <QString>
-#include <QGraphicsPixmapItem>
-#include <QGraphicsLinearLayout>
-
-#include <hbaction.h>
-#include <hbtoolbar.h>
-#include <hbicon.h>
-#include <hbaction.h>
-#include <hblabel.h>
-#include <hbiconitem.h>
-#include <hbmainwindow.h>
-#include <HbParameterLengthLimiter>
-#include <HbDataForm>
-
-#include "cpthemepreview.h"
-#include "cpthemeinfo.h"
-
-/*!
-    \class CpThemePreview
-    \brief CpThemePreview shows a preview of a selected theme with a heading displaying the name of the theme as well as
-           a toolbar with Select and Cancel buttons.  This view is used for the user to either select the theme and apply
-           the theme change or press Cancel and go back to theme list view.
-*/
-
-
-/*!
-    constructor.
-*/
-CpThemePreview::CpThemePreview(const CpThemeInfo& theme, QGraphicsItem *parent) :
-     HbView(parent), 
-     mTheme(theme),
-     mSoftKeyBackAction(0),
-     mPreviewIcon(0)
-{
-    QGraphicsLinearLayout* containerLayout = new QGraphicsLinearLayout(Qt::Vertical);
-    QGraphicsLinearLayout* bottomLayout = new QGraphicsLinearLayout(Qt::Vertical);
-        
-    //Preview icon margins.
-    qreal leftMargin = 0.0;
-    qreal rightMargin = 0.0;
-    qreal topMargin = 0.0;
-    qreal bottomMargin = 0.0;
-        
-    style()->parameter(QString("hb-param-margin-gene-left"), leftMargin);
-    style()->parameter("hb-param-margin-gene-right", rightMargin);
-    style()->parameter("hb-param-margin-gene-top", topMargin);
-    style()->parameter("hb-param-margin-gene-bottom", bottomMargin);
-
-    containerLayout->setContentsMargins(0,0,0,0);
-    bottomLayout->setContentsMargins(leftMargin, topMargin, rightMargin, bottomMargin);
-       
-    //Using an empty dataform as heading because the heading should
-    //look like an HbDataForm headiing.
-    HbDataForm* heading = new HbDataForm(this);
-    QString themeHeading = HbParameterLengthLimiter("txt_cp_title_preview_1").arg(mTheme.name());   
-    heading->setHeading(themeHeading);
-       
-    containerLayout->addItem(heading);
-    //Fixed vertical policy so that the heading doesn't expand.
-    heading->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed,QSizePolicy::DefaultType);
-    
-    if(mainWindow()->orientation() == Qt::Horizontal) {
-        mPreviewIcon = new HbIconItem(mTheme.landscapePreviewIcon(), this);
-    }
-    else {
-        mPreviewIcon = new HbIconItem(mTheme.portraitPreviewIcon(), this);
-        //set to ignore aspect ratio so the layout would rezise the icon correctly.
-          
-    }
-    mPreviewIcon->setAspectRatioMode(Qt::IgnoreAspectRatio);
-  
-    // set an object name for preview icon to make it testable for automation testing
-    mPreviewIcon->setObjectName(QString("themePreviewIcon"));
-
-    
-    bottomLayout->addItem(mPreviewIcon);
-    containerLayout->addItem(bottomLayout);
-
-    setLayout(containerLayout);
-        
-    //Create the toolbar and "Select" and "Cancel" actions.
-    HbToolBar* mToolBar = new HbToolBar(this);
-
-    HbAction* selectAction = new HbAction(hbTrId("txt_common_button_select"));
-    
-    //Add Action to the toolbar and show toolbar
-    mToolBar->addAction( selectAction );
-
-    HbAction* cancelAction = new HbAction(hbTrId("txt_common_button_cancel"));
-    mToolBar->addAction( cancelAction );
-
-    QObject::connect( selectAction, SIGNAL(triggered()), 
-                      this, SLOT(themeSelected()));
-
-    QObject::connect( cancelAction, SIGNAL(triggered()), 
-                      this, SIGNAL(aboutToClose()));
-    QObject::connect( mainWindow(), SIGNAL(orientationChanged(Qt::Orientation)),
-                      this, SLOT(previewOrientationChanged(Qt::Orientation)));
-       
-        
-    setToolBar(mToolBar);
-    //Setup the Back button action and set softkey. Back button 
-    //takes the user to the theme list view.
-    mSoftKeyBackAction = new HbAction(Hb::BackNaviAction, this);
-    QObject::connect(mSoftKeyBackAction, SIGNAL(triggered()), 
-            this, SIGNAL(aboutToClose()) );
-
-    setNavigationAction(mSoftKeyBackAction);
-    
-}
-
-/*!
-    destructor.
-*/
-CpThemePreview::~CpThemePreview()
-{
-}
-
-/*!
-  sets the theme to \a theme.
-*/
-void CpThemePreview::setThemeInfo(const CpThemeInfo& theme)
-{
-    mTheme = theme;
-}
-
-/*!
-    returns the themeName.
-*/
-const QString CpThemePreview::themeName() const
-{
-    return mTheme.name();
-}
-
-/*!
-    returns the repersentative themeIcon of the current theme.
-*/
-const HbIcon CpThemePreview::themeIcon() const
-{
-    return mTheme.icon();
-}
-
-/*!
-    Slot to handle when the user selects a theme.  
-*/
-void CpThemePreview::themeSelected()
-{
-    emit applyTheme(mTheme);
-}
-
-/*! 
- *  Slot to handle landscape/portrait orientation change to use the
- *  right graphics.
- */
-void CpThemePreview::previewOrientationChanged(Qt::Orientation orientation)
-{
-   
-    QGraphicsLinearLayout* containerLayout = dynamic_cast<QGraphicsLinearLayout*>(layout());
-    QGraphicsLinearLayout* previewLayout = 0;
-    if(containerLayout) {
-        //get the layout that preview icon belongs to.
-        previewLayout = dynamic_cast<QGraphicsLinearLayout*>(containerLayout->itemAt(1));
-    }
-   
-    if(previewLayout && mPreviewIcon && mPreviewIcon == dynamic_cast<HbIconItem*>(previewLayout->itemAt(0)) ) {
-        //Remove preview icon.
-        previewLayout->removeAt(0);
-        
-        if(orientation == Qt::Horizontal) {
-            mPreviewIcon->setIcon(mTheme.landscapePreviewIcon());
-                    
-        }
-        else {
-            mPreviewIcon->setIcon(mTheme.portraitPreviewIcon());
-        }
-        
-        previewLayout->addItem(mPreviewIcon);
-    }
-    
-}
-
-
-    
--- a/controlpanelplugins/themeplugin/src/cpthemepreview.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +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:  
- *   
- */
-
-#ifndef CPTHEMEPREVIEW_H
-#define CPTHEMEPREVIEW_H
-
-#include <hbview.h>
-#include <QObject>
-#include <hbicon.h>
-#include "cpthemechanger.h"
-#include "cpthemeinfo.h"
-
-
-QT_BEGIN_NAMESPACE
-class QString;
-QT_END_NAMESPACE
-
-class HbAction;
-class HbMainWindow;
-class HbIconItem;
-
-class CpThemePreview : public HbView
-{
-    Q_OBJECT
-
-public:
-    explicit CpThemePreview(const CpThemeInfo &theme, QGraphicsItem *parent = 0);
-    ~CpThemePreview();
-    void setThemeInfo(const CpThemeInfo& theme);
-    const QString themeName() const;
-    const HbIcon themeIcon() const;
-	
-signals:
-    void applyTheme(const CpThemeInfo&);
-    void aboutToClose();
-
-private slots:
-    void themeSelected();
-    void previewOrientationChanged(Qt::Orientation orientation);
-  
-private:
-    CpThemeInfo mTheme;
-    HbAction* mSoftKeyBackAction;
-    HbIconItem* mPreviewIcon;
-
-};
-
-#endif //CPTHEMEPREVIEW_H
--- a/controlpanelplugins/themeplugin/src/cpthemeutil.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +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 "cpthemeinfo.h"
-#include "cpthemeutil.h"
-
-#include <QStringList>
-#include <QSettings>  
-#include <QFileInfoList>
-#include <QDir>
-#include <QList>
-
-#include <hbicon.h>
-#include <hbinstance.h>
-#include <restricted/hbthemeservices_r.h>
-
-/*!
- * This class provides utility function to get Theme information.  
- */
-
-#if defined(Q_OS_SYMBIAN)
-#include <e32std.h>
-#include <centralrepository.h>
-        static const TUid KServerUid3={0x20022E82};
-        static const TUint32 KDefaultThemeNameKey = 0x2;
-  
-#endif
-
-
-    //Location of theme preview and background icons.
-    static const QString KPreviewThumbnailNVG = "/scalable/qtg_graf_theme_preview_thumbnail.nvg";
-    static const QString KPreviewThumbnailSVG = "/scalable/qtg_graf_theme_preview_thumbnail.svg";
-    
-    static const QString KBackgroundPrtNVG    = "/scalable/qtg_graf_screen_bg_prt.nvg";
-    static const QString KBackgroundLscNVG    = "/scalable/qtg_graf_screen_bg_lsc.nvg";
-    static const QString KBackgroundPrtSVG    = "/scalable/qtg_graf_screen_bg_prt.svg";
-    static const QString KBackgroundLscSVG    = "/scalable/qtg_graf_screen_bg_lsc.svg";
-    
-    
-
-
-
-/*
- * Builds a CpThemeInfo object given theme path and theme name.  It creates the name and 
- * preview icons for the object.  Creates a new CpThemeInfo objects. Caller takes ownership.
- * Returns NULL if can't build the object.
- */
-CpThemeInfo* CpThemeUtil::buildThemeInfo(const QString& themePath, const QString& themeName)
-{
-    CpThemeInfo *themeInfo = new CpThemeInfo();
-    QString iconPath;
-    
-    QString name = themeName;
-    QString hidden = "";
-    
-    //first look into the index.theme file to get theme information.
-   
-    if(QFileInfo(themePath + "/index.theme").exists()) {
-        QSettings iniSetting(themePath + "/index.theme", QSettings::IniFormat);
-        iniSetting.beginGroup("Icon Theme");
-        name = iniSetting.value("Name").toString();
-        hidden = iniSetting.value("Hidden").toString();
-        iconPath = iniSetting.value("PreviewThumbnailPath").toString();
-        iniSetting.endGroup();
-       
-    }
-                       
-    if(name.isEmpty() || (hidden == "true") ||( hidden == "")) {
-        return NULL;
-    }
-   
-    themeInfo->setName(name);
-    themeInfo->setItemType(CpThemeInfo::ThemeListItemType_default);
-    themeInfo->setItemData(themePath);
-          
-    //Get the icons. Logic is as follow:
-    /* 1. If the icon path is in index.theme and the icon exist, use it.
-     * 2. Otherwise look for the icon in the theme folder.
-     * 2. If preview icon doesn't exist, use background icon.
-     * 3. If no icon exist (background or preview),use default theme icon.
-     */
-    if(iconPath.isEmpty() || !QFileInfo(themePath + iconPath).exists()){
-        //Set thumbnail
-        HbIcon themeIcon = getPreviewIcon(themePath);
-        if(themeIcon.isNull()){
-            QString defaultThemePath = defaultTheme();
-            if(!defaultThemePath.isEmpty()) {
-                themeIcon = getPreviewIcon(defaultThemePath);
-            }
-        }
-        themeInfo->setIcon(themeIcon);
-    } else {
-        themeInfo->setIcon(HbIcon(themePath + iconPath));
-    }
-          
-    return themeInfo;
-
-}
-
-/*!
- * given a path to the theme, returns the preview icon or just a Null icon
- * if it doesn't exist.
- */
-HbIcon CpThemeUtil::getPreviewIcon(const QString& themePath)
-{
-    HbIcon themeIcon;
-    if(QFileInfo(themePath + KPreviewThumbnailNVG).exists()){
-        themeIcon = HbIcon(themePath + KPreviewThumbnailNVG);
-    }else if(QFileInfo(themePath + KPreviewThumbnailSVG).exists()){
-        themeIcon = HbIcon(themePath + KPreviewThumbnailSVG);
-    }else if(QFileInfo(themePath + KBackgroundPrtNVG).exists()){
-        themeIcon = HbIcon(themePath + KBackgroundPrtNVG);
-    }else if(QFileInfo(themePath + KBackgroundPrtSVG).exists()){
-        themeIcon = HbIcon(themePath + KBackgroundPrtSVG);
-    }
-    return themeIcon;
-    
-}
-
-/*! Creates a list of CpThemeInfo objects representing theme information.
- *  
- */
-QList<CpThemeInfo> CpThemeUtil::buildThemeList()
-{
-    QList<CpThemeInfo> themeList; 
-    
-    QList<QPair<QString, QString> > mThemesPathList = availableThemes();
-    QPair<QString, QString>pair;
-    foreach (pair, mThemesPathList) {
-        QDir themeDir;
-        QString name = pair.first;
-        QString path = pair.second;
-        themeDir.setPath( path ) ;
-        CpThemeInfo* themeInfo;
-        if(themeDir.exists("index.theme") &&
-          (themeDir.exists("scalable") || themeDir.exists("pixmap") )) {
-            themeInfo = buildThemeInfo(path, name);
-            if(themeInfo && !themeInfo->name().isEmpty()) {
-                themeList.append(*themeInfo);
-            }
-        }
-    }
-    qSort( themeList );
-    return themeList;
-}
-
-/*!
- * Returns the default theme path. 
- */
-QString CpThemeUtil::defaultTheme()
-{
-    //static because default theme doesn't change.
-    static QString defaultThemePath("");
-    
-    if(defaultThemePath.isEmpty()) {
-       
-
-#ifdef Q_OS_SYMBIAN
-        CRepository *repository = 0;
-        TRAP_IGNORE(repository = CRepository::NewL(KServerUid3));
-        if (repository) {
-            TBuf<256> value;
-            if (KErrNone == repository->Get((TUint32)KDefaultThemeNameKey, value)) {
-                QString qvalue((QChar*)value.Ptr(), value.Length());
-                defaultThemePath = qvalue.trimmed();
-            }
-            value.Zero();
-           delete repository;
-        }
-          
-#endif
-        
-    }
-    return defaultThemePath;
-}
-
-
-const QStringList CpThemeUtil::themeDirectories(const QList<CpThemeInfo>& themeInfoList)
-{
-    QStringList themeDirs;
-    
-    foreach(const CpThemeInfo& themeInfo, themeInfoList) {
-        QDir themePath(themeInfo.itemData());
-        QString topDir;
-        if(themePath.cdUp()) {
-            topDir = themePath.path();
-            if(!themeDirs.contains(topDir)) {
-                themeDirs.append(topDir);
-            }
-        }
-    }
-    return themeDirs;
-}
-
-const QList< QPair< QString, QString > > CpThemeUtil::availableThemes( )
-{
-    
-    QList<QPair<QString, QString> > result = HbThemeServices::availableThemes();
-    return result;
-    
-}
-
-
--- a/controlpanelplugins/themeplugin/src/cpthemeutil.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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:  
- *   
- */
-
-#ifndef CPTHEMEUTIL_H_
-#define CPTHEMEUTIL_H_
-
-#include <QList>
-#include <QPair>
-
-class QStringList;
-class CpThemeInfo;
-class HbIcon;
-
-class CpThemeUtil {
-
-public:
-    static QList<CpThemeInfo> buildThemeList();
-    static CpThemeInfo* buildThemeInfo(const QString& themePath, const QString& themeName = QString());
-    static QString defaultTheme();
-    static const QList< QPair< QString, QString > > availableThemes(); 
-    static const QStringList themeDirectories(const QList<CpThemeInfo> &themeInfoList);
-    
-private:
-    static HbIcon getPreviewIcon(const QString& themePath);
-
-        
-};
-
-#endif /* CPTHEMEUTIL_H_ */
-
-
--- a/controlpanelplugins/themeplugin/themeplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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: cpthemeplugin source files
-# Input
-HEADERS += src/cpthemecontrol.h \
-    src/cpthemeplugin.h \
-    src/cpthemelistview.h \
-    src/cpthemelistmodel.h \
-    src/cpthemechanger.h \
-    src/cpthemepluginentryitemdata.h \
-    src/cpthemeutil.h \
-    src/cpthemeinfo.h
-SOURCES += src/cpthemecontrol.cpp \
-    src/cpthemeplugin.cpp \
-    src/cpthemelistview.cpp \
-    src/cpthemelistmodel.cpp \
-    src/cpthemepluginentryitemdata.cpp \
-    src/cpthemechanger.cpp \
-    src/cpthemeutil.cpp \
-    src/cpthemeinfo.cpp
--- a/controlpanelplugins/themeplugin/themeplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +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 = cpthemeplugin
-
-CONFIG += hb plugin
-
-LIBS += -lcpframework
-TRANSLATIONS = control_panel.ts
-
-CONFIG += debug_and_release 
-RESOURCES += themeplugin.qrc
-
-#comment this out if theme plugin should have
-#a preview view.
-#DEFINES += CP_THEME_PREVIEW_DEFINED
-
-include (themeplugin.pri)
-include (rom/themeplugin_rom.pri)
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-# On win32 and mac, debug and release libraries are named differently.
-# We must follow the debug and release settings Qt was compiled with:
-# build debug iff Qt built debug, build release iff Qt built release.
-
-win32|mac {
-    !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
-        CONFIG -= debug_and_release debug release
-        contains(QT_CONFIG,debug):  CONFIG+=debug
-        contains(QT_CONFIG,release):CONFIG+=release
-    }
-}
-
-CONFIG(debug, debug|release) {
-    SUBDIRPART = debug
-} else {
-    SUBDIRPART = release
-}
-
-win32 { 
-    DESTDIR = C:/ControlPanel/$$SUBDIRPART/bin
-    OBJECTS_DIR = $$PWD/$$SUBDIRPART/tmp/$$TARGET
-    # add platfrom API for windows
-    INCLUDEPATH += $$PWD/../../../controlpanel_plat/inc
-}
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-
-
-
-#For some reason the default include path doesn't include MOC_DIR on symbian
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    LIBS += -lcentralrepository
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-    TARGET.UID3 = 0X2002C2F3
-}
-
-
-symbian: plugin { # copy qtstub and manifest
-	
-    PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-		
-    deploy.path = C:
-    pluginstub.sources = $${TARGET}.dll
-    pluginstub.path = $$PLUGIN_STUB_PATH
-    DEPLOYMENT += pluginstub
-
-    qtplugins.path = $$PLUGIN_STUB_PATH
-    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-     
-    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin  $$deploy.path$$qtplugins.path/$$basename(qtplugin)" 
-}
-
-#symbian: INCLUDEPATH += /sf/mw/hb/include/hbservices \
-#			   /sf/mw/hb/include/hbservices/private \
-#			   /sf/mw/hb/include/hbcore \
-#			   /sf/mw/hb/include/hbcore/private
-#
-			   
-# End of file	--Don't remove this.
--- a/controlpanelplugins/themeplugin/themeplugin.qrc	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>image/themePreview.nvg</file>
-    </qresource>
-</RCC>
--- a/controlpanelplugins/themeplugin/tsrc/tsrc.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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 = subdirs
-SUBDIRS += unit/unittest_cpthemecontrol
-SUBDIRS += unit/unittest_cpthemelistview
-SUBDIRS += unit/unittest_cpthemeplugin
-SUBDIRS += unit/unittest_cpthemepluginentryitemdata
-SUBDIRS += unit/unittest_cpthemelistmodel
-SUBDIRS += unit/unittest_cpthemeutil
-
-CONFIG += ordered
-test.depends = first
-test.CONFIG += recursive
-autotest.depends = first
-autotest.CONFIG += recursive
-QMAKE_EXTRA_TARGETS += test autotest
--- a/controlpanelplugins/themeplugin/tsrc/unit/common.pri	Tue Aug 31 15:15:28 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: XENT-MV
-#
-# Description: Stuff for all unit tests
-#
-
-QT += testlib
-CONFIG += qtestlib hb
-
-
-win32 {
-    INCLUDEPATH += .
-    INCLUDEPATH += ../../../src/inc
-    INCLUDEPATH += ../../../src/cpframework/src
-    INCLUDEPATH += ../../../controlpanel_plat/inc
-}
-
-unix {
-     test.commands = ./$(TARGET)
-     autotest.commands = ./$(TARGET) -xml -o ../$(QMAKE_TARGET).xml
-} else:win32 {
-     test.CONFIG += recursive
-     autotest.CONFIG += recursive
-     build_pass {
-     		test.commands =/epoc32/RELEASE/WINSCW/udeb/$(QMAKE_TARGET).exe
-		autotest.commands =/epoc32/RELEASE/WINSCW/udeb/$(QMAKE_TARGET).exe -xml -o c:/$(QMAKE_TARGET).xml
-     }
-}
-
-QMAKE_EXTRA_TARGETS += test autotest
-
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    LIBS += -lcentralrepository
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-	   
\ No newline at end of file
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemecontrol/unittest_cpthemecontrol.cpp	Tue Aug 31 15:15:28 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: XENT-MV
-*
-* Description:  unit tests for the CpThemeControl class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-#include <QSignalSpy>
-
-#include <hbinstance.h>
-#include <hbtheme.h>
-
-#include "cpthemechanger.h"
-#include "cpthemecontrol.h"
-#include "cpthemeinfo.h"
-#include "cpthemeutil.h"
-
-class TestCpThemeControl : public QObject
-{
-    Q_OBJECT
-
-private slots:
-
-    void testConstructor();
-    void testThemeListView();
-    void testCurrentThemeName();
-    void testCurrentThemeIcon();
-   
-private:
-    CpThemeChanger* mThemeChanger;
-};
-
-
-
-// verify that the constructor works and that the
-// defaults are sane.
-void TestCpThemeControl::testConstructor()
-{
-    CpThemeControl * control = new CpThemeControl();
-
-    QVERIFY(control !=0 );
-    QVERIFY(!control->currentThemeName().isEmpty());
-    QVERIFY(!control->currentThemeIcon().iconName().isEmpty());
-
-    delete control;
-}
-
-// verify that the themeListView doesn't return NULL (or crash)
-void TestCpThemeControl::testThemeListView()
-{
-    CpThemeControl control;
-
-    QVERIFY(control.themeListView() != 0);
-}
-
-// test that we get back a non-empty QString
-void TestCpThemeControl::testCurrentThemeName()
-{
-    CpThemeControl control;
-
-    QVERIFY( (control.currentThemeName() == hbInstance->theme()->name())  
-         || (control.currentThemeName() == QString("hbdefault")));
-}
-
-// test that we get a non-empty string for current theme icon
-void TestCpThemeControl::testCurrentThemeIcon()
-{
-    CpThemeControl control;
-
-    QVERIFY(!control.currentThemeIcon().isNull() && !control.currentThemeIcon().iconName().isEmpty());
-}
-
-    
-
-
-
-QTEST_MAIN(TestCpThemeControl)
-#include "unittest_cpthemecontrol.moc"
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemecontrol/unittest_cpthemecontrol.pro	Tue Aug 31 15:15:28 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:  XENT-MV
-#
-# Description:  unit tests for the cpthemecontrol class in the themeplugin.
-#
-#
-
-include(../common.pri)
-
-
-TEMPLATE = app
-TARGET = unittest_cpthemecontrol
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-
-INCLUDEPATH += . 
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-
-LIBS += -lcpframework 
-win32::LIBS += -LC:/ControlPanel/debug/bin
-
-symbian::TARGET.UID3=0x2002DD2A
-
-
-# Input
-
-HEADERS += ../../../src/cpthemecontrol.h
-HEADERS += ../../../src/cpthemechanger.h
-HEADERS += ../../../src/cpthemelistview.h
-HEADERS += ../../../src/cpthemeutil.h
-HEADERS += ../../../src/cpthemeinfo.h
-HEADERS += ../../../src/cpthemelistmodel.h
-SOURCES += unittest_cpthemecontrol.cpp
-SOURCES += ../../../src/cpthemecontrol.cpp
-SOURCES += ../../../src/cpthemechanger.cpp
-SOURCES += ../../../src/cpthemeinfo.cpp
-SOURCES += ../../../src/cpthemeutil.cpp
-SOURCES += ../../../src/cpthemelistmodel.cpp
-SOURCES += ../../../src/cpthemelistview.cpp
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistmodel/unittest_cpthemelistmodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +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: XENT-MV
-*
-* Description:  unit tests for the CpThemeListModel class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-
-#include "cpthemelistmodel.h"
-
-class TestCpThemeListModel : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    
-    void testConstructor();
-    void testRowCount();
-    void testData();
-    void testIndexOf();
-};    
-
-
-void TestCpThemeListModel::testConstructor()
-{
-    
-    CpThemeListModel *obj = new CpThemeListModel();
-    
-    
-    QVERIFY (obj != 0 );
-    QVERIFY (obj->rowCount() > 0);
-    
-    delete obj;
-
-}
-
-void TestCpThemeListModel::testRowCount()
-{
-    CpThemeListModel *themeModel = new CpThemeListModel();
-    QList<QPair<QString, QString> > allThemes = CpThemeUtil::availableThemes();
-    QVERIFY(themeModel->rowCount() >= allThemes.size());
-}
-
-void TestCpThemeListModel::testData()
-{
-    CpThemeListModel *themeModel = new CpThemeListModel();
-    QList<QPair<QString, QString> > allThemes = CpThemeUtil::availableThemes();
-    
-    QModelIndex index = themeModel->index(0,0, QModelIndex());
-    
-    //Check theme name (first) and theme path (second).  Skipping icons for now.
-    QCOMPARE(themeModel->data(index, Qt::DisplayRole).toString(), allThemes.at(0).first);
-    QCOMPARE(themeModel->data(index, CpThemeListModel::ItemDataRole).toString(), allThemes.at(0).second);
-        
-        
-}
-
-void TestCpThemeListModel::testIndexOf()
-{
-    CpThemeListModel *themeModel = new CpThemeListModel();
-    QList<QPair<QString, QString> > allThemes = CpThemeUtil::availableThemes();
-    
-    CpThemeInfo *themeInfo = CpThemeUtil::buildThemeInfo(allThemes.at(1).second, allThemes.at(1).first);
-       
-    int index = themeModel->indexOf(*themeInfo);
-       
-     QVERIFY(index == 1);
-    
-}
-QTEST_MAIN(TestCpThemeListModel)
-#include "unittest_cpthemelistmodel.moc"
-
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistmodel/unittest_cpthemelistmodel.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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: XENT-MV
-# Description: unit tests for the cpthemelistmodel class in the themeplugin.
-include(../common.pri)
-TEMPLATE = app
-TARGET = unittest_cpthemelistmodel
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-INCLUDEPATH += .
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-LIBS += -lcpframework
-win32::LIBS += -LC:/ControlPanel/debug/bin
-symbian::TARGET.UID3 = 0x20031DAD
-
-# Input
-HEADERS += ../../../src/cpthemelistmodel.h
-HEADERS += ../../../src/cpthemeinfo.h
-HEADERS += ../../../src/cpthemeutil.h
-SOURCES += unittest_cpthemelistmodel.cpp
-SOURCES += ../../../src/cpthemelistmodel.cpp
-SOURCES += ../../../src/cpthemeinfo.cpp
-SOURCES += ../../../src/cpthemeutil.cpp
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistview/unittest_cpthemelistview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +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: XENT-MV
-*
-* Description:  unit tests for the CpThemeControl class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-#include <QGraphicsWidget>
-#include <QStandardItemModel>
-
-#include "cpthemelistview.h"
-
-class TestCpThemeListView : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void testConstructor();
-    void testSetWidget();
-    void testThemeList();
-    void testSetModel();
-    void testCloseView();
-};
-
-void TestCpThemeListView::testConstructor()
-{
-    CpThemeListView* obj = new CpThemeListView();
-    QVERIFY( obj != 0 );
-    delete obj;
-}
-
-void TestCpThemeListView::testSetWidget()
-{
-    CpThemeListView *listView = new CpThemeListView();
-    QGraphicsWidget *testWidget = new QGraphicsWidget();
-
-    listView->setWidget(testWidget);
-
-    QVERIFY( listView->widget() == testWidget);
-
-    delete testWidget;
-    delete listView;
-}
-
-void TestCpThemeListView::testThemeList()
-{
-    CpThemeListView *listView = new CpThemeListView();
-
-    QVERIFY( listView->themeList() != 0 );
-
-    delete listView;
-}
-
-void TestCpThemeListView::testSetModel()
-{
-    CpThemeListView *listView = new CpThemeListView();
-    QStandardItemModel *model = new QStandardItemModel(this);
-
-    listView->setModel(model);
-    QVERIFY(listView->themeList()->model() == model);
-
-    // model shouldn't be deleted because it is a QObject with a parent.
-
-    delete listView;
-}
-
-// null test
-void TestCpThemeListView::testCloseView()
-{
-    CpThemeListView *listView = new CpThemeListView();
-
-    listView->closeView();
-
-    delete listView;
-}
-
-
-
-QTEST_MAIN(TestCpThemeListView)
-#include "unittest_cpthemelistview.moc"
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemelistview/unittest_cpthemelistview.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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:  XENT-MV
-#
-# Description:  unit tests for the cpthemelistview class in the themeplugin.
-#
-#
-
-include(../common.pri)
-
-TEMPLATE = app
-TARGET = unittest_cpthemelistview
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-
-INCLUDEPATH += . 
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-
-LIBS += -lcpframework 
-win32::LIBS += -LC:/ControlPanel/debug/bin
-
-symbian::TARGET.UID3=0x2002DD2C
-
-
-# Input
-
-HEADERS += ../../../src/cpthemelistview.h
-SOURCES += unittest_cpthemelistview.cpp
-SOURCES += ../../../src/cpthemelistview.cpp
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeplugin/unittest_cpthemeplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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: XENT-MV
-*
-* Description:  unit tests for the CpThemeControl class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-
-#include "cpthemeplugin.h"
-#include <cppluginplatinterface.h>
-#include <cpitemdatahelper.h>
-
-class TestCpThemePlugin : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void testConstructor();
-    void testCreateSettingFormItemData();
-};
-
-void TestCpThemePlugin::testConstructor()
-{
-    CpThemePlugin *obj = new CpThemePlugin();
-
-    delete obj;
-}
-
-void TestCpThemePlugin::testCreateSettingFormItemData()
-{
-    CpThemePlugin *obj = new CpThemePlugin();
-    CpItemDataHelper helper;
-
-    QVERIFY(obj->createSettingFormItemData(helper).at(0) != 0);
-
-    delete obj;
-}
-
-
-QTEST_MAIN(TestCpThemePlugin)
-#include "unittest_cpthemeplugin.moc"
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeplugin/unittest_cpthemeplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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:  XENT-MV
-#
-# Description:  unit tests for the cpthemeplugin class in the themeplugin.
-#
-#
-
-include(../common.pri)
-
-TEMPLATE = app
-TARGET = unittest_cpthemeplugin
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-
-INCLUDEPATH += . 
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-
-LIBS += -lcpframework 
-win32::LIBS += -LC:/ControlPanel/debug/bin
-
-symbian::TARGET.UID3=0x2002DD2D
-
-
-# Input
-
-HEADERS += ../../../src/cpthemecontrol.h
-HEADERS += ../../../src/cpthemechanger.h
-HEADERS += ../../../src/cpthemelistview.h
-HEADERS += ../../../src/cpthemeplugin.h
-HEADERS += ../../../src/cpthemepluginentryitemdata.h
-HEADERS += ../../../src/cpthemeinfo.h
-HEADERS += ../../../src/cpthemeutil.h
-HEADERS += ../../../src/cpthemelistmodel.h
-SOURCES += unittest_cpthemeplugin.cpp
-SOURCES += ../../../src/cpthemecontrol.cpp
-SOURCES += ../../../src/cpthemechanger.cpp
-SOURCES += ../../../src/cpthemelistview.cpp
-SOURCES += ../../../src/cpthemeplugin.cpp
-SOURCES += ../../../src/cpthemepluginentryitemdata.cpp
-SOURCES += ../../../src/cpthemeinfo.cpp
-SOURCES += ../../../src/cpthemeutil.cpp
-SOURCES += ../../../src/cpthemelistmodel.cpp
-
-
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepluginentryitemdata/unittest_cpthemepluginentryitemdata.cpp	Tue Aug 31 15:15:28 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: XENT-MV
-*
-* Description:  unit tests for the CpThemePluginEntryItemData class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-#include <QObject>
-
-#include <cpitemdatahelper.h>
-
-#include "cpthemepluginentryitemdata.h"
-
-class TestCpThemePluginEntryItemData : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void testConstructor();
-};
-
-void TestCpThemePluginEntryItemData::testConstructor()
-{
-    CpItemDataHelper helper;
-
-    CpThemePluginEntryItemData *obj = new CpThemePluginEntryItemData(helper);
-    
-    QVERIFY(obj != NULL);
-
-    delete obj;
-}
-
-
-QTEST_MAIN(TestCpThemePluginEntryItemData)
-#include "unittest_cpthemepluginentryitemdata.moc"
-
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepluginentryitemdata/unittest_cpthemepluginentryitemdata.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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:  XENT-MV
-#
-# Description:  unit tests for the cpthemepluginentryitemdata class in the themeplugin.
-#
-#
-
-include(../common.pri)
-
-TEMPLATE = app
-TARGET = unittest_cpthemepluginentryitemdata
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-
-INCLUDEPATH += . 
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-
-LIBS += -lcpframework 
-win32::LIBS += -LC:/ControlPanel/debug/bin
-
-symbian::TARGET.UID3=0x2002DD2E
-
-
-# Input
-
-HEADERS += ../../../src/cpthemeinfo.h
-HEADERS += ../../../src/cpthemeutil.h
-HEADERS += ../../../src/cpthemelistmodel.h
-HEADERS += ../../../src/cpthemecontrol.h
-HEADERS += ../../../src/cpthemelistview.h
-HEADERS += ../../../src/cpthemechanger.h
-HEADERS += ../../../src/cpthemepluginentryitemdata.h
-SOURCES += unittest_cpthemepluginentryitemdata.cpp
-SOURCES += ../../../src/cpthemepluginentryitemdata.cpp
-SOURCES += ../../../src/cpthemelistview.cpp
-SOURCES += ../../../src/cpthemecontrol.cpp
-SOURCES += ../../../src/cpthemechanger.cpp
-SOURCES += ../../../src/cpthemeinfo.cpp
-SOURCES += ../../../src/cpthemeutil.cpp
-SOURCES += ../../../src/cpthemelistmodel.cpp
-
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepreview/unittest_cpthemepreview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +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: XENT-MV
-*
-* Description:  unit tests for the CpThemePreview class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-
-#include "cpthemepreview.h"
-#include "cpthemechanger.h"
-#include "cpthemeutil.h"
-
-class TestCpThemePreview : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    
-    void testAll();
-    
-};
-
-void TestCpThemePreview::testAll()
-{
-    QList<QPair<QString, QString> > themes = CpThemeUtil::availableThemes();
-    
-    QPair<QString, QString> pair;
-    
-    pair = themes.at(0);
-    
-    QString name = pair.first;
-    QString themePath = pair.second;
-    CpThemeInfo* themeInfo = CpThemeUtil::buildThemeInfo(themePath, name);
-    
-    CpThemePreview *obj = new CpThemePreview(*themeInfo);
-    
-    
-    QVERIFY (obj != 0 );
-    QCOMPARE(obj->themeName(), name);
-    QCOMPARE(obj->themeIcon(), themeInfo->icon());
-
-    delete themeInfo;
-    
-    pair = themes.at(1);
-    name = pair.first;
-    themePath = pair.second;
-    themeInfo = CpThemeUtil::buildThemeInfo(themePath, name);
-    
-    obj->setThemeInfo(*themeInfo);
-    
-    QCOMPARE(obj->themeName(), name);
-    QCOMPARE(obj->themeIcon(), themeInfo->icon());
-        
-
-    delete obj;
-
-}
-
-QTEST_MAIN(TestCpThemePreview)
-#include "unittest_cpthemepreview.moc"
-
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepreview/unittest_cpthemepreview.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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:  XENT-MV
-#
-# Description:  unit tests for the cpthemepreview class in the themeplugin.
-#
-#
-
-include(../common.pri)
-
-TEMPLATE = app
-TARGET = unittest_cpthemepreview
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-
-INCLUDEPATH += . 
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-
-LIBS += -lcpframework 
-win32::LIBS += -LC:/ControlPanel/debug/bin
-
-symbian::TARGET.UID3=0x2002DDEF
-
-
-# Input
-
-HEADERS += ../../../src/cpthemepreview.h
-HEADERS += ../../../src/cpthemeinfo.h
-HEADERS += ../../../src/cpthemeutil.h
-HEADERS += ../../../src/cpthemechanger.h
-SOURCES += unittest_cpthemepreview.cpp
-SOURCES += ../../../src/cpthemepreview.cpp
-SOURCES += ../../../src/cpthemeinfo.cpp
-SOURCES += ../../../src/cpthemeutil.cpp
-SOURCES += ../../../src/cpthemechanger.cpp
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeutil/unittest_cpthemeutil.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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: XENT-MV
-*
-* Description:  unit tests for the CpThemePreview class from themeplugin
-*
-*/
-
-#include <QtTest/QtTest>
-
-#include <restricted/hbthemeservices_r.h>
-#include <QList>
-#include <QStringList>
-#include <QPair>
-#include "cpthemeutil.h"
-#include "cpthemeinfo.h"
-
-class TestCpThemeUtil : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    
-    void testMultiple();
-    void testAvailableThemes(); 
-    void testThemeDirectories();
-
-};
-
-void TestCpThemeUtil::testMultiple()
-{
-    QList<QPair<QString, QString> > themes = HbThemeServices::availableThemes();
-    
-    QPair<QString, QString> pair;
-    
-    pair = themes.at(0);
-    
-    QString name = pair.first;
-    QString themePath = pair.second;
-    
-    QList<CpThemeInfo> themeList = CpThemeUtil::buildThemeList();
-    
-    QCOMPARE(name, themeList.at(0).name());
-    QCOMPARE(themePath, themeList.at(0).itemData());
-    
-    CpThemeInfo *themeInfo = CpThemeUtil::buildThemeInfo(themePath, name);
-    QCOMPARE(name, themeInfo->name());
-    QCOMPARE(themePath, themeInfo->itemData());
-    
-    
-    //null test, making sure no crash happens.
-    QString defaultThemePath = CpThemeUtil::defaultTheme();
-    
-    delete themeInfo;
-    themeInfo = 0;
-    
-}
-void TestCpThemeUtil::testAvailableThemes()
-{
-    QList<QPair<QString, QString> > themes = HbThemeServices::availableThemes();
-    QList<QPair<QString, QString> > utilThemes = CpThemeUtil::availableThemes();
-    
-    for(int i = 0; i < themes.size(); i++) {
-        QPair<QString, QString>pair1;
-        QPair<QString, QString>pair2;
-        
-        pair1 = themes.at(i);
-        pair2 = utilThemes.at(i);
-        QCOMPARE(pair1.first, pair2.first);
-        QCOMPARE(pair1.second, pair2.second);
-    }
-}
-
-void TestCpThemeUtil::testThemeDirectories()
-{
-    QList<CpThemeInfo> themeList = CpThemeUtil::buildThemeList();
-    QStringList themeDirs = CpThemeUtil::themeDirectories(themeList);
-    QVERIFY(themeList.size() > 0 && themeDirs.size() > 0);
-}
-
-QTEST_MAIN(TestCpThemeUtil)
-#include "unittest_cpthemeutil.moc"
-
--- a/controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemeutil/unittest_cpthemeutil.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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:  XENT-MV
-#
-# Description:  unit tests for the cpthemeutil class in the themeplugin.
-#
-#
-
-include(../common.pri)
-
-TEMPLATE = app
-TARGET = unittest_cpthemeutil
-DEPENDPATH += .
-win32::DEPENDPATH += c:/ControlPanel/debug/bin
-
-INCLUDEPATH += . 
-INCLUDEPATH += src/
-INCLUDEPATH += ../../../src
-
-LIBS += -lcpframework 
-win32::LIBS += -LC:/ControlPanel/debug/bin
-
-symbian::TARGET.UID3=0x20031DAE
-
-
-# Input
-
-HEADERS += ../../../src/cpthemeutil.h
-HEADERS += ../../../src/cpthemeinfo.h
-SOURCES += unittest_cpthemeutil.cpp
-SOURCES += ../../../src/cpthemeutil.cpp
-SOURCES += ../../../src/cpthemeinfo.cpp
--- a/controlpanelui/controlpanelui.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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 = subdirs
-SUBDIRS =  src
-CONFIG += ordered
-
-include(rom/cpui_rom.pri)
\ No newline at end of file
--- a/controlpanelui/cpcfg_win.pl	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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: Copy all cpcfg files to destination directory when building control panel in window envionment
-# usage: go to control panel source directory, 
-# run cpcfg_win.pl if you want to build control panel in debug mode or cpcfg_win -R in release mode.
-
-use File::Path qw (mkpath);
-
-#default debug dir
-$config_dir = "C:\\ControlPanel\\debug\\bin\\config";
-if ($ARGV[0] =~ m/^-R$/i) { #release dir
-	$config_dir = "C:\\ControlPanel\\release\\bin\\config";
-} 
-
-sub go_through_dir {  
- my @arr, $j = 0;  
- for ($i=0;$i<=$#_;$i++) {  
-  if (-d $_[$i]) {  
-   if (opendir($handle, $_[$i])) {  
-    while ($entry = readdir($handle)) {  
-     if (!($entry =~ m/^\.$/) and !($entry =~ m/^(\.\.)$/)) {   
-      if (-d $_[$i]."\\$entry") {  # is a directory, push to @arr
-       $arr[$j++] = $_[$i]."\\$entry";   
-      }  
-      else {   # is a file
-      	if ($entry =~ m/\.cpcfg$/i) { # is a .cpcfg file, copy it
-      		$cmd = "copy ";
-      		$cmd .= $_[$i]."\\$entry ";
-      		$cmd .= $config_dir."\\$entry";
-      		print ("$cmd\n");
-      		system($cmd);
-      	}
-      }
-     }  
-    }  
-    closedir($handle);  
-   }  
-  }  
- }  
- if ($j>0) {  
-  go_through_dir (@arr);  
- }  
-}
-
-# create target directory if it doesn't exist
-print ("Creating direcotry... $config_dir \n");
-mkpath $config_dir;
-
-# go through source directories recrusively
-go_through_dir ".\\src\\cpapplication",".\\src\\cpplugins";
\ No newline at end of file
--- a/controlpanelui/examples/example_common.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +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: controlpanel project - common qmake settings
-#
-
-CONFIG += debug_and_release 
-
-# On win32 and mac, debug and release libraries are named differently.
-# We must follow the debug and release settings Qt was compiled with:
-# build debug iff Qt built debug, build release iff Qt built release.
-
-win32|mac {
-    !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
-        CONFIG -= debug_and_release debug release
-        contains(QT_CONFIG,debug):  CONFIG+=debug
-        contains(QT_CONFIG,release):CONFIG+=release
-    }
-}
-
-CONFIG(debug, debug|release) {
-    SUBDIRPART = debug
-} else {
-    SUBDIRPART = release
-}
-
-win32 { 
-    DESTDIR = C:/ControlPanel/$$SUBDIRPART/bin
-    OBJECTS_DIR = $$PWD/../$$SUBDIRPART/tmp/$$TARGET
-}
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-#For some reason the default include path doesn't include MOC_DIR on symbian
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-win32 {
-    # add platfrom API for windows
-    INCLUDEPATH += $$PWD/../controlpanel_plat/inc
-}
-
-CONFIG += hb plugin
-LIBS += -lcpframework
-
-symbian: plugin { # copy qtstub and manifest
-	
-	PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-	
-	deploy.path = C:
-	pluginstub.sources = $${TARGET}.dll
-	pluginstub.path = $$PLUGIN_STUB_PATH
-	DEPLOYMENT += pluginstub
-
-    qtplugins.path = $$PLUGIN_STUB_PATH
-    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-     
-    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin  $$deploy.path$$qtplugins.path/$$basename(qtplugin)" 
-}
-
-
-
--- a/controlpanelui/examples/examples.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +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 = subdirs
-SUBDIRS = groupplugin/groupplugin.pro \
-          viewplugin/viewplugin.pro \
-          pluginlauncherclient/pluginlauncherclient.pro
-CONFIG += ordered
-
-include (rom/rom.pri)
\ No newline at end of file
--- a/controlpanelui/examples/groupplugin/groupplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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: controlpanel project - common qmake settings
-#
-
-HEADERS += src/cpsamplegroup.h \
-           src/cpgroupplugin.h
-SOURCES += src/cpsamplegroup.cpp \
-           src/cpgroupplugin.cpp
\ No newline at end of file
--- a/controlpanelui/examples/groupplugin/groupplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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 = cpgroupplugin
-
-include (../example_common.pri)
-include (groupplugin.pri)
-
-# Input
-symbian: { 
-    TARGET.UID3 = 0x20025FE3
-}
-
-
--- a/controlpanelui/examples/groupplugin/src/cpgroupplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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 "cpgroupplugin.h"
-#include "cpsamplegroup.h"
-
-CpGroupPlugin::CpGroupPlugin()
-{
-}
-
-CpGroupPlugin::~CpGroupPlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpGroupPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    return QList<CpSettingFormItemData*>() << new CpSampleGroup(itemDataHelper);
-}
-
-Q_EXPORT_PLUGIN2(CpGroupPlugin, CpGroupPlugin);
--- a/controlpanelui/examples/groupplugin/src/cpgroupplugin.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0""
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- *
- */
-#ifndef CPGROUPPLUGIN_H
-#define CPGROUPPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpGroupPlugin : public QObject, public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpGroupPlugin();
-    virtual ~CpGroupPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-#endif // CPGROUPPLUGIN_H
--- a/controlpanelui/examples/groupplugin/src/cpsamplegroup.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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 "cpsamplegroup.h"
-#include <cpsettingformitemdata.h>
-#include <cpitemdatahelper.h>
-#include <hbmessagebox.h>
-
-CpSampleGroup::CpSampleGroup(CpItemDataHelper &itemDataHelper) :
-    CpSettingFormItemData(HbDataFormModelItem::GroupItem,QString("Sample Group")),
-    mSliderItem(0), 
-    mCheckBoxItem(0)
-{
-    mSliderItem = new CpSettingFormItemData(HbDataFormModelItem::SliderItem,
-            QString("Sample Slider"));
-    itemDataHelper.addConnection(mSliderItem,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int)));
-    this->appendChild(mSliderItem);
-    
-    mCheckBoxItem = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem,
-            QString("Sample Check Box"));
-    itemDataHelper.addConnection(mCheckBoxItem,SIGNAL(stateChanged (int)),this,SLOT(checkBoxStateChanged(int)));
-    this->appendChild(mCheckBoxItem);
-    
-}
-CpSampleGroup::~CpSampleGroup()
-{
-    //TODO: release resource when necessary
-}
-void CpSampleGroup::sliderValueChanged(int value)
-{
-    //TODO: store your changes
-   // HbMessageBox::message(QString("slider value changed to:%1").arg(value));
-}
-void CpSampleGroup::checkBoxStateChanged(int state)
-{
-    //TODO: store your changes
-    QString str = (state ? "checked" : "un-checked");
-   // HbMessageBox::message(str);
-}
--- a/controlpanelui/examples/groupplugin/src/cpsamplegroup.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +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:  
- *
- */
-#ifndef CPSAMPLEGROUP_H
-#define CPSAMPLEGROUP_H
-
-#include <cpsettingformitemdata.h>
-
-class CpSettingFormItemData;
-class CpItemDataHelper;
-
-class CpSampleGroup : public CpSettingFormItemData
-{
-    Q_OBJECT
-public:
-    explicit CpSampleGroup(CpItemDataHelper &itemDataHelper);
-    ~CpSampleGroup();
-
-private slots:
-    //need handling your member's value change
-    void sliderValueChanged(int value);
-    void checkBoxStateChanged(int state);
-
-private:
-    CpSettingFormItemData *mSliderItem;
-    CpSettingFormItemData *mCheckBoxItem;
-};
-
-#endif // CPSAMPLEGROUP_H
--- a/controlpanelui/examples/pluginlauncherclient/pluginlauncherclient.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +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: cpframework source files
-#
-
-HEADERS += src/*.h
-SOURCES += src/*.cpp
\ No newline at end of file
--- a/controlpanelui/examples/pluginlauncherclient/pluginlauncherclient.pro	Tue Aug 31 15:15:28 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: cpframework source files
-#
-
-TEMPLATE = app
-TARGET = CpPluginLauncherClient
-DEPENDPATH += .
-INCLUDEPATH += .
-
-include (pluginlauncherclient.pri)
-
-CONFIG += hb
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-LIBS += -lxqservice -lcpframework
-symbian::TARGET::UID3 = 0X2002873A
--- a/controlpanelui/examples/pluginlauncherclient/src/main.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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 <hbapplication.h>
-#include <QDir>
-#include <hbmainwindow.h>
-#include <hbstyleloader.h>
-#include "mainview.h"
-
-int main(int argc, char **argv)
-{
-    HbApplication app(argc, argv);
-    
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem_color.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.widgetml");
-    
-    HbMainWindow mainWindow;
-    MainView *mainView = new MainView();
-    mainWindow.addView(mainView);
-    mainWindow.show();
-    
-    return app.exec();
-}
-
-//End of File
-
--- a/controlpanelui/examples/pluginlauncherclient/src/mainview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +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 "mainview.h"
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <qcoreapplication.h>
-#include <cppluginlauncher.h>
-#include <QStringList>
-#include <cpbasesettingview.h>
-#include <hbmessagebox.h>
-#include <xqaiwrequest.h>
-#include <XQServiceRequest.h>
-#include <QTimer>
-
-MainView::MainView(QGraphicsItem *parent/* = 0*/)
-: HbView(parent),mRequest(0)
-{
-	init();
-}
-
-MainView::~MainView()
-{
-    delete mRequest;
-}
-
-void MainView::init()
-{
-  setTitle(tr("CpPlugin Launcher"));  
-  
-  HbMenu *menu = new HbMenu();
-  setMenu(menu);
-  
-  HbAction *action = menu->addAction(tr("Launch View(in process)"));
-  connect(action, SIGNAL(triggered()), this, SLOT(launchInProcessProfileView()));
-
-  action = menu->addAction(tr("Launch View(QtHighway)"));
-  connect(action, SIGNAL(triggered()), this, SLOT(launchQtHighwayProfileView()));
-}
-
-void MainView::launchInProcessProfileView()
-{
-    CpBaseSettingView *settingView = CpPluginLauncher::launchSettingView("cppersonalizationplugin.dll","profile_view");
-    if (settingView) {
-        connect(settingView,SIGNAL(returnValueDelivered(QVariant)),this,SLOT(handleReturnValue(QVariant)));
-    }
-}
-
-void MainView::launchQtHighwayProfileView()
-{
-    if (mRequest) {
-        delete mRequest;
-        mRequest = 0;
-    }
-    
-    mRequest = mAppMgr.create("com.nokia.symbian.ICpPluginLauncher", "launchSettingView(QString,QVariant)", true);
-
-    if (!mRequest)
-    {
-        return;
-    }
-    else
-    {
-        connect(mRequest, SIGNAL(requestOk(QVariant)), SLOT(handleReturnValue(QVariant)));
-        connect(mRequest, SIGNAL(requestError(int,QString)), SLOT(handleError(int,QString)));
-    }
-
-
-    // Set arguments for request 
-    QList<QVariant> args;
-    args << QVariant( "cppersonalizationplugin.dll" );
-    args << QVariant ( "profile_view" );
-    mRequest->setArguments(args);
-
-    mRequest->setSynchronous(false);
-    
-    QTimer::singleShot(20* 1000, this, SLOT(closeSettingView()));
-    
-    // Make the request
-    if (!mRequest->send())
-    {
-        //report error     
-    }
-    
-}
-
-void MainView::handleReturnValue(const QVariant &returnValue)
-{
-    HbMessageBox::information( QString("Return value:") + returnValue.toString());
-}
-
-void MainView::handleError(int errorCode,const QString &errorMessage)
-{
-    HbMessageBox::information( QString("handle error:") + errorMessage);
-}
-
-void MainView::closeSettingView()
-{   
-    if (mRequest) {
-        delete mRequest;
-        mRequest = 0;
-    }
-}
-
-//End of File
--- a/controlpanelui/examples/pluginlauncherclient/src/mainview.h	Tue Aug 31 15:15:28 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:  
-*
-*/
-#ifndef MAINVIEW_H
-#define MAINVIEW_H
-
-#include <hbview.h>
-#include <xqappmgr.h>
-
-class MainView : public HbView
-{
-	Q_OBJECT
-public:
-    explicit MainView(QGraphicsItem *parent = 0);
-    virtual ~MainView();
-private:
-	void init();
-private slots:
-    void launchInProcessProfileView();
-    
-    void launchQtHighwayProfileView();   
-    
-    void handleReturnValue(const QVariant &returnValue);
-    void handleError(int errorCode,const QString &errorMessage);
-    
-    void closeSettingView();
-    
-private:
-    Q_DISABLE_COPY(MainView)
-private:
-    XQApplicationManager mAppMgr;
-    XQAiwRequest *mRequest;
-};
-
-#endif
--- a/controlpanelui/examples/rom/controlpanel_examples.iby	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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: 
-*
-*/
-
-file=ABI_DIR\BUILD_DIR\CpPluginLauncherClient.exe         			 SHARED_LIB_DIR\CpPluginLauncherClient.exe 
-CP_UPGRADABLE_APP_REG_RSC(CpPluginLauncherClient)    
-S60_APP_RESOURCE(CpPluginLauncherClient)   
-
-file=ABI_DIR\BUILD_DIR\cpgroupplugin.dll   SHARED_LIB_DIR\cpgroupplugin.dll
-file=ABI_DIR\BUILD_DIR\cpviewplugin.dll    SHARED_LIB_DIR\cpviewplugin.dll
-
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpgroupplugin.qtplugin    resource\qt\plugins\controlpanel\cpgroupplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpviewplugin.qtplugin     resource\qt\plugins\controlpanel\cpviewplugin.qtplugin
--- a/controlpanelui/examples/rom/rom.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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: 
-#
-
-symbian: {
-		BLD_INF_RULES.prj_exports += \
-				"$${LITERAL_HASH}include<platform_paths.hrh>" \
-				"rom/controlpanel_examples.iby CORE_MW_LAYER_IBY_EXPORT_PATH(controlpanel_examples.iby)"
-}
\ No newline at end of file
--- a/controlpanelui/examples/themeplugin/src/cpthemeplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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 "cpthemeplugin.h"
-#include "cpthemepluginentryitemdata.h"
-
-CpThemePlugin::CpThemePlugin()
-{
-}
-
-CpThemePlugin::~CpThemePlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpThemePlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-	CpSettingFormEntryItemData *entryItem = new CpThemePluginEntryItemData(
-		itemDataHelper,tr("Theme"),tr("Name of the Theme"),HbIcon(":/image/qgn_menu_note.svg"));
-	return QList<CpSettingFormItemData*>() << entryItem;
-}
-
-Q_EXPORT_PLUGIN2(cpthemeplugin, CpThemePlugin);
--- a/controlpanelui/examples/themeplugin/src/cpthemeplugin.h	Tue Aug 31 15:15:28 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:  
- *   
- */
-
-#ifndef	CPTHEMEPLUGIN_H
-#define	CPTHEMEPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpThemePlugin : public QObject, public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpThemePlugin();
-    virtual ~CpThemePlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif	//CPTHEMEPLUGIN_H
--- a/controlpanelui/examples/themeplugin/src/cpthemepluginentryitemdata.cpp	Tue Aug 31 15:15:28 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 "cpthemepluginentryitemdata.h"
-#include <cpitemdatahelper.h>
-#include <hbfiledialog.h>
-#include <hbaction.h>
-#include <QFileInfo>
-
-CpThemePluginEntryItemData::CpThemePluginEntryItemData(CpItemDataHelper &itemDataHelper,
-													   const QString &text /*= QString()*/,
-													   const QString &description /*= QString()*/,
-													   const HbIcon &icon /*= HbIcon()*/,
-													   const HbDataFormModelItem *parent /*= 0*/)
-													   : CpSettingFormEntryItemData(itemDataHelper,
-													   text,
-													   description,
-													   icon,
-													   parent)
-{
-}
-
-CpThemePluginEntryItemData::~CpThemePluginEntryItemData()
-{
-}
-
-void CpThemePluginEntryItemData::onLaunchView()
-{
-	HbFileDialog *dlg = new HbFileDialog();
-	dlg->setDirectory(QString("C:/ControlPanel/resource"));
-	dlg->setTitle("Select file:");
-	dlg->setPrimaryActionText(QString("Done"));
-	dlg->setSecondaryActionText(QString("Close"));
-	QString filePath = dlg->getFileName();
-	if (!filePath.isEmpty()) {
-	   setDescription(QFileInfo(filePath).baseName());
-	   setEntryItemIcon(HbIcon(filePath));
-	}
-	delete dlg;
-}
-
-CpBaseSettingView *CpThemePluginEntryItemData::createSettingView() const
-{
-	return 0;
-}
--- a/controlpanelui/examples/themeplugin/src/cpthemepluginentryitemdata.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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:  
- *   
- */
-
-#ifndef CPTHEMEPLUGINENTRYITEMDATA_H
-#define CPTHEMEPLUGINENTRYITEMDATA_H
-
-#include <cpsettingformentryitemdata.h>
-
-class CpThemePluginEntryItemData : public CpSettingFormEntryItemData
-{
-	Q_OBJECT
-public:
-	explicit CpThemePluginEntryItemData(CpItemDataHelper &itemDataHelper,
-		const QString &text = QString(),
-		const QString &description = QString(),
-		const HbIcon &icon = HbIcon(),
-		const HbDataFormModelItem *parent = 0);	 
-	virtual ~CpThemePluginEntryItemData();
-private slots:
-	void onLaunchView();
-private:
-	virtual CpBaseSettingView *createSettingView() const;
-};
-
-#endif //CPTHEMEPLUGINENTRYITEMDATA_H
--- a/controlpanelui/examples/themeplugin/themeplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +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: cpthemeplugin source files
-#
-
-# Input
-HEADERS += src/*.h
-SOURCES += src/*.cpp
\ No newline at end of file
--- a/controlpanelui/examples/themeplugin/themeplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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 = cpthemeplugin
-
-CONFIG += hb plugin
-
-LIBS += -lcpframework
-
-include ( ../example_common.pri )
-include ( themeplugin.pri )
-
-symbian { 
-    TARGET.UID3 = 0X20025FDB
-}
--- a/controlpanelui/examples/viewplugin/src/cpsampleview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +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 "cpsampleview.h"
-#include <hbdataform.h>
-#include <qstringlist>
-#include <QDebug>
-#include <hbdataformmodel.h>
-#include <cpsettingformitemdata.h>
-#include <hbmessagebox.h>
-
-CpSampleView::CpSampleView(QGraphicsItem *parent) :
-    CpBaseSettingView(0,parent),
-    mGroupItem(0),
-    mSliderItem(0),
-    mCheckBoxItem(0)
-
-{
-    HbDataForm *form = qobject_cast<HbDataForm*>(widget());
-    if (form) {
-        HbDataFormModel *model = new HbDataFormModel;
-        
-        form->setHeading(tr("View from sample plugin"));
-        mGroupItem = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, QString("Group"));
-        
-        model->appendDataFormItem(mGroupItem);
-        
-        mSliderItem = new CpSettingFormItemData(HbDataFormModelItem::SliderItem,
-                QString("Sample Slider"));
-        form->addConnection(mSliderItem,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int)));
-        mGroupItem->appendChild(mSliderItem);
-        
-        mCheckBoxItem = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem,
-                QString("Sample Check Box"));
-        form->addConnection(mCheckBoxItem,SIGNAL(stateChanged (int)),this,SLOT(checkBoxStateChanged(int)));
-        mGroupItem->appendChild(mCheckBoxItem);
-        
-        form->setModel(model);
-    }
-    
-
-}
-CpSampleView::~CpSampleView()
-{
-}
-
-void CpSampleView::sliderValueChanged(int value)
-{
-    //TODO: store your changes
-   // HbMessageBox::message(QString("slider value changed to:%1").arg(value));
-}
-void CpSampleView::checkBoxStateChanged(int state)
-{
-    //TODO: store your changes
-    QString str = (state ? "checked" : "un-checked");
-   // HbMessageBox::message(str);
-}
-
--- a/controlpanelui/examples/viewplugin/src/cpsampleview.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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:  
- *
- */
-#ifndef	CPSAMPLEVIEW_H
-#define	CPSAMPLEVIEW_H
-
-#include <cpbasesettingview.h>
-
-class HbDataFormModelItem;
-class CpSettingFormItemData;
-
-class CpSampleView : public CpBaseSettingView
-{
-    Q_OBJECT
-public:
-    explicit CpSampleView(QGraphicsItem *parent = 0);
-    virtual ~CpSampleView();
-private slots:
-    //need handling your member's value change
-    void sliderValueChanged(int value);
-    void checkBoxStateChanged(int state);
-private:
-    HbDataFormModelItem   *mGroupItem;
-    CpSettingFormItemData *mSliderItem;
-    CpSettingFormItemData *mCheckBoxItem;
-};
-#endif//	CPSAMPLEVIEW_H
--- a/controlpanelui/examples/viewplugin/src/cpviewplugin.cpp	Tue Aug 31 15:15:28 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:  
- *
- */
-#include "cpviewplugin.h"
-#include "cpsampleview.h"
-#include <cpsettingformentryitemdataimpl.h>
-
-CpViewPlugin::CpViewPlugin()
-{
-}
-
-CpViewPlugin::~CpViewPlugin()
-{
-}
-QList<CpSettingFormItemData*> CpViewPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    return QList<CpSettingFormItemData*>() 
-            << new CpSettingFormEntryItemDataImpl<CpSampleView>(
-			   itemDataHelper,
-               tr("Entry item from sample view plugin"), 
-			   tr("view plugin descriptions"));
-}
-
-Q_EXPORT_PLUGIN2(cpviewplugin, CpViewPlugin);
--- a/controlpanelui/examples/viewplugin/src/cpviewplugin.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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:  
- *   
- */
-#ifndef	CPVIEWPLUGIN_H
-#define	CPVIEWPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpViewPlugin : public QObject, public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpViewPlugin();
-    virtual ~CpViewPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif	//CPVIEWPLUGIN_H
--- a/controlpanelui/examples/viewplugin/viewplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +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: 
-#
-
-# Input
-HEADERS += src/cpviewplugin.h \
-           src/cpsampleview.h 
-    
-SOURCES += src/cpviewplugin.cpp \
-           src/cpsampleview.cpp 
-    
--- a/controlpanelui/examples/viewplugin/viewplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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 = cpviewplugin
-
-include (../example_common.pri)
-include (viewplugin.pri)
-    
-symbian: { 
-    TARGET.UID3 = 0x20025FE2
-}
-
-
--- a/controlpanelui/rom/controlpanelui.iby	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +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: 
-*
-*/
-
-#ifndef __CONTROLPANELUI_IBY__
-#define __CONTROLPANELUI_IBY__
-
-#include <bldvariant.hrh>
-#include <data_caging_paths_for_iby.hrh>
-
-#define CP_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc        Private\10003a3f\import\apps\ ## NAME ## _reg.rsc
-
-file=ABI_DIR\BUILD_DIR\controlpanel.exe         			 SHARED_LIB_DIR\controlpanel.exe 
-data = ZRESOURCE\apps\controlpanel.mif                                   APP_RESOURCE_DIR\controlpanel.mif
-CP_UPGRADABLE_APP_REG_RSC(controlpanel)    
-
-
-file=ABI_DIR\BUILD_DIR\cpserviceprovider.exe         			 SHARED_LIB_DIR\cpserviceprovider.exe 
-CP_UPGRADABLE_APP_REG_RSC(cpserviceprovider)    
-
-file=ABI_DIR\BUILD_DIR\cpcategorymodel.dll			  	 SHARED_LIB_DIR\cpcategorymodel.dll
-file=ABI_DIR\BUILD_DIR\cpprofilewrapper.dll           SHARED_LIB_DIR\cpprofilewrapper.dll
-file=ABI_DIR\BUILD_DIR\cpringtoneview.dll           SHARED_LIB_DIR\cpringtoneview.dll 
-
-
-file=ABI_DIR\BUILD_DIR\cppersonalizationplugin.dll           SHARED_LIB_DIR\cppersonalizationplugin.dll
-file=ABI_DIR\BUILD_DIR\cpcommunicationplugin.dll             SHARED_LIB_DIR\cpcommunicationplugin.dll
-file=ABI_DIR\BUILD_DIR\cpdeviceplugin.dll                    SHARED_LIB_DIR\cpdeviceplugin.dll
-file=ABI_DIR\BUILD_DIR\cpprivacyplugin.dll                   SHARED_LIB_DIR\cpprivacyplugin.dll
-file=ABI_DIR\BUILD_DIR\cplookfeelplugin.dll                  SHARED_LIB_DIR\cplookfeelplugin.dll
-file=ABI_DIR\BUILD_DIR\cpkeytouchfdbkplugin.dll              SHARED_LIB_DIR\cpkeytouchfdbkplugin.dll
-file=ABI_DIR\BUILD_DIR\cpprofileactivator.dll                SHARED_LIB_DIR\cpprofileactivator.dll   
-file=ABI_DIR\BUILD_DIR\cpvolumeplugin.dll					SHARED_LIB_DIR\cpvolumeplugin.dll
-file=ABI_DIR\BUILD_DIR\cpringtoneplugin.dll					SHARED_LIB_DIR\cpringtoneplugin.dll	   
-	   
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\config\mainview.cpcfg 													resource\qt\plugins\controlpanel\config\mainview.cpcfg
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\config\cppersonalizationplugin.cpcfg		        resource\qt\plugins\controlpanel\config\cppersonalizationplugin.cpcfg
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\config\cpcommunicationplugin.cpcfg		          resource\qt\plugins\controlpanel\config\cpcommunicationplugin.cpcfg
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\config\cpdeviceplugin.cpcfg		                resource\qt\plugins\controlpanel\config\cpdeviceplugin.cpcfg
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\config\cpprivacyplugin.cpcfg		                resource\qt\plugins\controlpanel\config\cpprivacyplugin.cpcfg
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\config\cplookfeelplugin.cpcfg	                resource\qt\plugins\controlpanel\config\cplookfeelplugin.cpcfg
-
-
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cppersonalizationplugin.qtplugin             resource\qt\plugins\controlpanel\cppersonalizationplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpcommunicationplugin.qtplugin               resource\qt\plugins\controlpanel\cpcommunicationplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpdeviceplugin.qtplugin                      resource\qt\plugins\controlpanel\cpdeviceplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpprivacyplugin.qtplugin                     resource\qt\plugins\controlpanel\cpprivacyplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cplookfeelplugin.qtplugin                    resource\qt\plugins\controlpanel\cplookfeelplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpkeytouchfdbkplugin.qtplugin                resource\qt\plugins\controlpanel\cpkeytouchfdbkplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpprofileactivator.qtplugin                  resource\qt\plugins\controlpanel\cpprofileactivator.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpvolumeplugin.qtplugin                  resource\qt\plugins\controlpanel\cpvolumeplugin.qtplugin
-data=\epoc32\data\c\resource\qt\plugins\controlpanel\cpringtoneplugin.qtplugin                  resource\qt\plugins\controlpanel\cpringtoneplugin.qtplugin
-
-
-#endif
--- a/controlpanelui/rom/controlpanelui_resources.iby	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:
-*
-*/
-
-#ifndef CONTROLPANELUI_RESOURCES
-#define CONTROLPANELUI_RESOURCES
-
-
-#include <data_caging_paths_for_iby.hrh>
-
-data=DATAZ_\QT_TRANSLATIONS_DIR\control_panel.qm QT_TRANSLATIONS_DIR\control_panel.qm
-data=DATAZ_\APP_RESOURCE_DIR\ControlPanel.RSC APP_RESOURCE_DIR\ControlPanel.rsc
-
-data=DATAZ_\APP_RESOURCE_DIR\cpserviceprovider.RSC APP_RESOURCE_DIR\cpserviceprovider.rsc
-
-#endif // CONTROLPANELUI_RESOURCES
\ No newline at end of file
--- a/controlpanelui/rom/cpui_rom.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +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: 
-#
-
-symbian {
-		BLD_INF_RULES.prj_exports += \
-				"$${LITERAL_HASH}include<platform_paths.hrh>" \
-				"rom/controlpanelui.iby CORE_APP_LAYER_IBY_EXPORT_PATH(controlpanelui.iby)"
-		
-		
-		BLD_INF_RULES.prj_exports += \
-				"$${LITERAL_HASH}include<platform_paths.hrh>" \
-				"rom/controlpanelui_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(controlpanelui_resources.iby)"
-}
\ No newline at end of file
--- a/controlpanelui/src/common.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +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: controlpanel project - common qmake settings
-#
-
-CONFIG += debug_and_release 
-
-# On win32 and mac, debug and release libraries are named differently.
-# We must follow the debug and release settings Qt was compiled with:
-# build debug iff Qt built debug, build release iff Qt built release.
-
-win32|mac {
-    !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
-        CONFIG -= debug_and_release debug release
-        contains(QT_CONFIG,debug):  CONFIG+=debug
-        contains(QT_CONFIG,release):CONFIG+=release
-    }
-}
-
-CONFIG(debug, debug|release) {
-    SUBDIRPART = debug
-} else {
-    SUBDIRPART = release
-}
-
-win32 { 
-    DESTDIR = C:/ControlPanel/$$SUBDIRPART/bin
-    OBJECTS_DIR = $$PWD/../$$SUBDIRPART/tmp/$$TARGET
-}
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-#For some reason the default include path doesn't include MOC_DIR on symbian
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-INCLUDEPATH += $$PWD/inc
-win32 {
-    # add platfrom API for windows
-    INCLUDEPATH += $$PWD/../../controlpanel/controlpanel_plat/inc
-}
-
-
-
--- a/controlpanelui/src/cpapplication/cpapplication.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +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: cpapplication source files
-#
-
-HEADERS += src/cpmainview.h \
-	   src/cpmainwindow.h \
-           src/cpmainmodel.h
-           
-SOURCES += src/main.cpp \
-           src/cpmainview.cpp \
-           src/cpmainwindow.cpp \
-           src/cpmainmodel.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpapplication/cpapplication.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +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 = ControlPanel
-
-ICON = resources/qtg_large_settings.svg
-
-include ( ../common.pri )
-include ( cpapplication.pri )
-
-CONFIG += hb
-
-RESOURCES += cpapplication.qrc
-
-LIBS += -lcplogger -lcpframework -lcpcategorymodel
-
-TRANSLATIONS = control_panel.ts
-
-symbian: { 
-    SKINICON = qtg_large_settings
-    TARGET.UID3 = 0x20025FD9
-    TARGET.EPOCHEAPSIZE = 0x020000 0x1000000
-	
-    deploy.path = C:
-    headers.sources += data/mainview.cpcfg
-    headers.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += exportheaders
-    
-    for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$deploy.path$$headers.path/$$basename(header)"
-}
\ No newline at end of file
--- a/controlpanelui/src/cpapplication/cpapplication.qrc	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/logconf" >
-        <file alias="controlpanellog.conf">data/controlpanellog.conf</file>
-    </qresource>  
-</RCC>
\ No newline at end of file
--- a/controlpanelui/src/cpapplication/data/controlpanellog.conf	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-[CpFramework]
-logdatetime = 1
-logloggername = 1
-datetimeformat = hh:mm:ss:zzz
-output = debugoutput fileoutput
-fileoutput/logfile = C:/data/logs/cpframework.log
-fileoutput/truncate = 1
-
-[CpPerformance]
-logdatetime = 1
-datetimeformat = hh:mm:ss:zzz
-output = fileoutput
-fileoutput/logfile = C:/data/logs/cpperformance.log
-fileoutput/truncate = 1
\ No newline at end of file
--- a/controlpanelui/src/cpapplication/data/mainview.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-
-<childplugins> 
-		<plugin displayname = "Volume " id = "0X20028737"  dll = "cpvolumeplugin.dll">
-    		<desc></desc>
-  	</plugin>
-  	<plugin displayname = "Personalization" id = "0X20025FE5" dll = "cppersonalizationplugin.dll">
-	 			<desc></desc>
-  	</plugin>  
-  	
-    <plugin displayname = "Communication" id = "0X20025FDF" dll = "cpcommunicationplugin.dll">
-        <desc></desc>
-    </plugin>
-    
-
-    <plugin displayname = "Privacy" id = "0x20025FE1" dll = "cpprivacyplugin.dll">
-        <desc></desc>
-    </plugin>
-    
-    <plugin displayname = "Device" id = "0X20025FE7" dll = "cpdeviceplugin.dll">
-        <desc></desc>
-    </plugin>
-    
-
-    
-    
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpapplication/resources/qtg_large_settings.svg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60">
-<g>
-<rect fill="none" height="60" width="60"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="30" x2="30" y1="4.5" y2="55.3778">
-<stop offset="0" style="stop-color:#E8E8E8"/>
-<stop offset="0.3576" style="stop-color:#B2BDC2"/>
-<stop offset="0.7455" style="stop-color:#595C5E"/>
-<stop offset="1" style="stop-color:#A1ABB0"/>
-</linearGradient>
-<path d="M6.412,55.5c-1.055,0-1.912-0.857-1.912-1.911V6.411C4.5,5.357,5.357,4.5,6.412,4.5h47.176  c1.055,0,1.913,0.857,1.913,1.911v47.178c0,1.054-0.858,1.911-1.913,1.911H6.412z" fill="url(#SVGID_1_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="30.001" x2="30.001" y1="5.7139" y2="54.1698">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="0.1455" style="stop-color:#D7DDDE"/>
-<stop offset="0.3212" style="stop-color:#FFFFFF"/>
-<stop offset="0.7333" style="stop-color:#8E9699"/>
-<stop offset="1" style="stop-color:#D5E2E6"/>
-</linearGradient>
-<path d="M6.412,54.286c-0.385,0-0.697-0.313-0.697-0.697V6.411c0-0.384,0.313-0.697,0.697-0.697h47.176  c0.387,0,0.699,0.313,0.699,0.697v47.178c0,0.385-0.313,0.697-0.699,0.697H6.412z" fill="url(#SVGID_2_)"/>
-<path d="M53.588,5.106H6.412c-0.719,0-1.305,0.586-1.305,1.305v47.178  c0,0.719,0.586,1.305,1.305,1.305h47.176c0.72,0,1.307-0.586,1.307-1.305V6.411C54.895,5.692,54.308,5.106,53.588,5.106z   M53.68,53.589c0,0.05-0.041,0.09-0.092,0.09H6.412c-0.049,0-0.09-0.04-0.09-0.09V6.411c0-0.049,0.041-0.09,0.09-0.09h47.176  c0.051,0,0.092,0.041,0.092,0.09V53.589z" fill="#FFFFFF" fill-opacity="0.5"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="13.6074" x2="13.6074" y1="11.021" y2="48.3899">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<path d="M13,48.519c-1.339,0-2.428-1.09-2.428-2.429V13.304c0-1.34,1.089-2.43,2.428-2.43  h1.215c1.339,0,2.429,1.09,2.429,2.43V46.09c0,1.339-1.09,2.429-2.429,2.429H13z" fill="url(#SVGID_3_)" fill-opacity="0.3"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="15.9473" x2="11.1119" y1="29.6973" y2="29.6973">
-<stop offset="0" style="stop-color:#595C5E"/>
-<stop offset="0.3" style="stop-color:#ABB2B5"/>
-<stop offset="0.7" style="stop-color:#ABB2B5"/>
-<stop offset="1" style="stop-color:#595C5E"/>
-</linearGradient>
-<path d="M16.036,46.09c0,1.006-0.815,1.822-1.821,1.822H13c-1.006,0-1.821-0.816-1.821-1.822V13.304  c0-1.008,0.815-1.821,1.821-1.821h1.215c1.006,0,1.821,0.813,1.821,1.821V46.09z" fill="url(#SVGID_4_)"/>
-<path d="M14.215,11.482H13c-1.006,0-1.821,0.813-1.821,1.821V46.09c0,1.006,0.815,1.822,1.821,1.822h1.215  c1.006,0,1.821-0.816,1.821-1.822V13.304C16.036,12.296,15.221,11.482,14.215,11.482z M15.429,46.09  c0,0.669-0.544,1.214-1.214,1.214H13c-0.67,0-1.214-0.545-1.214-1.214V13.304c0-0.67,0.544-1.215,1.214-1.215h1.215  c0.67,0,1.214,0.545,1.214,1.215V46.09z" fill-opacity="0.1"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_5_" x1="11.7861" x2="15.4287" y1="36.0713" y2="36.0713">
-<stop offset="0" style="stop-color:#5AA913"/>
-<stop offset="0.497" style="stop-color:#A2ED21"/>
-<stop offset="1" style="stop-color:#58A813"/>
-</linearGradient>
-<path d="M13,47.304c-0.67,0-1.214-0.545-1.214-1.214V26.054c0-0.668,0.544-1.215,1.214-1.215h1.215  c0.67,0,1.214,0.547,1.214,1.215V46.09c0,0.669-0.544,1.214-1.214,1.214H13z" fill="url(#SVGID_5_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_6_" x1="13.6074" x2="13.6074" y1="19.6782" y2="28.6905">
-<stop offset="0" style="stop-color:#666666"/>
-<stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<path d="M10.572,28.483c-1.34,0-2.43-1.09-2.43-2.43v-4.25c0-1.34,1.09-2.428,2.43-2.428  h6.071c1.339,0,2.429,1.088,2.429,2.428v4.25c0,1.34-1.09,2.43-2.429,2.43H10.572z" fill="url(#SVGID_6_)" fill-opacity="0.2"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_7_" x1="13.6074" x2="13.6074" y1="19.4058" y2="27.2627">
-<stop offset="0" style="stop-color:#A6A8AB"/>
-<stop offset="1" style="stop-color:#231F20"/>
-</linearGradient>
-<path d="M10.572,27.268c-1.006,0-1.822-0.816-1.822-1.82v-4.252  c0-1.004,0.816-1.819,1.822-1.819h6.071c1.004,0,1.821,0.815,1.821,1.819v4.252c0,1.004-0.817,1.82-1.821,1.82H10.572z" fill="url(#SVGID_7_)" fill-opacity="0.6"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_8_" x1="13.6074" x2="13.6074" y1="20.2031" y2="26.8131">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="0.1212" style="stop-color:#FFFFFF"/>
-<stop offset="0.4182" style="stop-color:#B0B6B8"/>
-<stop offset="0.4182" style="stop-color:#9FA6A8"/>
-<stop offset="0.6606" style="stop-color:#7D8588"/>
-<stop offset="0.9697" style="stop-color:#ADB3B5"/>
-<stop offset="0.9697" style="stop-color:#595C5E"/>
-<stop offset="1" style="stop-color:#ADB3B5"/>
-<stop offset="1" style="stop-color:#595C5E"/>
-</linearGradient>
-<path d="M17.857,25.447c0,0.671-0.543,1.214-1.214,1.214h-6.071c-0.672,0-1.215-0.543-1.215-1.214v-4.252  c0-0.669,0.543-1.214,1.215-1.214h6.071c0.671,0,1.214,0.545,1.214,1.214V25.447z" fill="url(#SVGID_8_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_9_" x1="13.6074" x2="13.6074" y1="20.7715" y2="26.1783">
-<stop offset="0" style="stop-color:#E5E9EB"/>
-<stop offset="0.1212" style="stop-color:#E5E9EB"/>
-<stop offset="0.4182" style="stop-color:#B0B6B8"/>
-<stop offset="0.4182" style="stop-color:#9FA6A8"/>
-<stop offset="0.6606" style="stop-color:#7D8588"/>
-<stop offset="1" style="stop-color:#ADB3B5"/>
-</linearGradient>
-<path d="M10.572,26.054c-0.336,0-0.607-0.272-0.607-0.606v-4.252c0-0.335,0.271-0.605,0.607-0.605h6.071  c0.335,0,0.606,0.271,0.606,0.605v4.252c0,0.334-0.271,0.606-0.606,0.606H10.572z" fill="url(#SVGID_9_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_10_" x1="25.75" x2="25.75" y1="11.021" y2="48.3899">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<path d="M25.143,48.519c-1.339,0-2.428-1.09-2.428-2.429V13.304  c0-1.34,1.089-2.43,2.428-2.43h1.215c1.339,0,2.429,1.09,2.429,2.43V46.09c0,1.339-1.09,2.429-2.429,2.429H25.143z" fill="url(#SVGID_10_)" fill-opacity="0.3"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_11_" x1="28.0898" x2="23.2554" y1="29.6973" y2="29.6973">
-<stop offset="0" style="stop-color:#595C5E"/>
-<stop offset="0.3" style="stop-color:#ABB2B5"/>
-<stop offset="0.7" style="stop-color:#ABB2B5"/>
-<stop offset="1" style="stop-color:#595C5E"/>
-</linearGradient>
-<path d="M28.179,46.09c0,1.006-0.815,1.822-1.821,1.822h-1.215c-1.005,0-1.82-0.816-1.82-1.822V13.304  c0-1.008,0.815-1.821,1.82-1.821h1.215c1.006,0,1.821,0.813,1.821,1.821V46.09z" fill="url(#SVGID_11_)"/>
-<path d="M26.357,11.482h-1.215c-1.005,0-1.82,0.813-1.82,1.821V46.09c0,1.006,0.815,1.822,1.82,1.822h1.215  c1.006,0,1.821-0.816,1.821-1.822V13.304C28.179,12.296,27.363,11.482,26.357,11.482z M27.571,46.09  c0,0.669-0.544,1.214-1.214,1.214h-1.215c-0.67,0-1.214-0.545-1.214-1.214V13.304c0-0.67,0.544-1.215,1.214-1.215h1.215  c0.67,0,1.214,0.545,1.214,1.215V46.09z" fill-opacity="0.1"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_12_" x1="23.9287" x2="27.5713" y1="37.5898" y2="37.5898">
-<stop offset="0" style="stop-color:#5AA913"/>
-<stop offset="0.497" style="stop-color:#A2ED21"/>
-<stop offset="1" style="stop-color:#58A813"/>
-</linearGradient>
-<path d="M25.143,47.304c-0.67,0-1.214-0.545-1.214-1.214v-17c0-0.67,0.544-1.214,1.214-1.214h1.215  c0.67,0,1.214,0.544,1.214,1.214v17c0,0.669-0.544,1.214-1.214,1.214H25.143z" fill="url(#SVGID_12_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_13_" x1="25.75" x2="25.75" y1="26.9634" y2="35.9757">
-<stop offset="0" style="stop-color:#666666"/>
-<stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<path d="M22.715,35.769c-1.339,0-2.429-1.09-2.429-2.43V29.09  c0-1.34,1.09-2.429,2.429-2.429h6.071c1.339,0,2.429,1.089,2.429,2.429v4.249c0,1.34-1.09,2.43-2.429,2.43H22.715z" fill="url(#SVGID_13_)" fill-opacity="0.2"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_14_" x1="25.75" x2="25.75" y1="26.6909" y2="34.5488">
-<stop offset="0" style="stop-color:#A6A8AB"/>
-<stop offset="1" style="stop-color:#231F20"/>
-</linearGradient>
-<path d="M22.715,34.554c-1.005,0-1.822-0.816-1.822-1.821v-4.249  c0-1.006,0.817-1.822,1.822-1.822h6.071c1.005,0,1.821,0.816,1.821,1.822v4.249c0,1.005-0.816,1.821-1.821,1.821H22.715z" fill="url(#SVGID_14_)" fill-opacity="0.6"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_15_" x1="25.75" x2="25.75" y1="27.4893" y2="34.0982">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="0.1212" style="stop-color:#FFFFFF"/>
-<stop offset="0.4182" style="stop-color:#B0B6B8"/>
-<stop offset="0.4182" style="stop-color:#9FA6A8"/>
-<stop offset="0.6606" style="stop-color:#7D8588"/>
-<stop offset="0.9697" style="stop-color:#ADB3B5"/>
-<stop offset="0.9697" style="stop-color:#595C5E"/>
-<stop offset="1" style="stop-color:#ADB3B5"/>
-<stop offset="1" style="stop-color:#595C5E"/>
-</linearGradient>
-<path d="M30,32.732c0,0.671-0.543,1.214-1.214,1.214h-6.071c-0.671,0-1.215-0.543-1.215-1.214v-4.249  c0-0.672,0.544-1.216,1.215-1.216h6.071c0.671,0,1.214,0.544,1.214,1.216V32.732z" fill="url(#SVGID_15_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_16_" x1="25.75" x2="25.75" y1="28.0571" y2="33.463">
-<stop offset="0" style="stop-color:#E5E9EB"/>
-<stop offset="0.1212" style="stop-color:#E5E9EB"/>
-<stop offset="0.4182" style="stop-color:#B0B6B8"/>
-<stop offset="0.4182" style="stop-color:#9FA6A8"/>
-<stop offset="0.6606" style="stop-color:#7D8588"/>
-<stop offset="1" style="stop-color:#ADB3B5"/>
-</linearGradient>
-<path d="M22.715,33.339c-0.335,0-0.607-0.271-0.607-0.606v-4.249c0-0.336,0.272-0.607,0.607-0.607h6.071  c0.335,0,0.607,0.271,0.607,0.607v4.249c0,0.335-0.272,0.606-0.607,0.606H22.715z" fill="url(#SVGID_16_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_17_" x1="42.1426" x2="42.1426" y1="14.0352" y2="45.034">
-<stop offset="0" style="stop-color:#999999"/>
-<stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<path d="M36.982,45.179c-1.034,0-1.877-0.842-1.877-1.876V16.091  c0-1.035,0.843-1.876,1.877-1.876h10.322c1.035,0,1.876,0.841,1.876,1.876v27.212c0,1.034-0.841,1.876-1.876,1.876H36.982z" fill="url(#SVGID_17_)" fill-opacity="0.1"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_18_" x1="42.1426" x2="42.1426" y1="14.5083" y2="44.5696">
-<stop offset="0" style="stop-color:#999999"/>
-<stop offset="1" style="stop-color:#000000"/>
-</linearGradient>
-<path d="M36.982,44.71c-0.775,0-1.407-0.632-1.407-1.407V16.091  c0-0.775,0.632-1.408,1.407-1.408h10.322c0.775,0,1.406,0.633,1.406,1.408v27.212c0,0.775-0.631,1.407-1.406,1.407H36.982z" fill="url(#SVGID_18_)" fill-opacity="0.3"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_19_" x1="42.1436" x2="42.1436" y1="44.3218" y2="15.0707">
-<stop offset="0" style="stop-color:#5F6366"/>
-<stop offset="1" style="stop-color:#3E4142"/>
-</linearGradient>
-<path d="M48.242,43.303c0,0.519-0.419,0.938-0.938,0.938H36.982c-0.518,0-0.938-0.42-0.938-0.938V16.091  c0-0.518,0.42-0.938,0.938-0.938h10.322c0.519,0,0.938,0.42,0.938,0.938V43.303z" fill="url(#SVGID_19_)"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_20_" x1="42.1436" x2="42.1436" y1="16.8999" y2="43.2099">
-<stop offset="0" style="stop-color:#9CA4A6"/>
-<stop offset="0.1" style="stop-color:#F0F2F3"/>
-<stop offset="0.5" style="stop-color:#BBBEBF"/>
-<stop offset="0.9" style="stop-color:#F3F5F5"/>
-<stop offset="0.95" style="stop-color:#8E9699"/>
-<stop offset="1" style="stop-color:#686E70"/>
-</linearGradient>
-<path d="M36.982,43.771c-0.258,0-0.469-0.21-0.469-0.468V17.03c0-0.26,0.211-0.471,0.469-0.471h10.322  c0.259,0,0.469,0.211,0.469,0.471v26.272c0,0.258-0.21,0.468-0.469,0.468H36.982z" fill="url(#SVGID_20_)"/>
-<path d="M47.305,18.437H36.982c-0.258,0-0.469,0.211-0.469,0.469v0.471c0-0.26,0.211-0.471,0.469-0.471h10.322  c0.259,0,0.469,0.211,0.469,0.471v-0.471C47.773,18.647,47.563,18.437,47.305,18.437z" fill="#FFFFFF"/>
-<path d="M47.305,43.303H36.982c-0.258,0-0.469-0.21-0.469-0.47v0.47c0,0.258,0.211,0.468,0.469,0.468h10.322  c0.259,0,0.469-0.21,0.469-0.468v-0.47C47.773,43.093,47.563,43.303,47.305,43.303z" fill-opacity="0.3"/>
-<path d="M36.982,41.427c-0.259,0-0.469-0.212-0.469-0.47V19.376c0-0.26,0.21-0.471,0.469-0.471  h10.322c0.259,0,0.469,0.211,0.469,0.471v21.581c0,0.258-0.21,0.47-0.469,0.47H36.982z" fill="#FFFFFF" fill-opacity="0.3"/>
-<path d="M36.514,30.165v10.792c0,0.258,0.21,0.47,0.469,0.47h10.322  c0.259,0,0.469-0.212,0.469-0.47V30.165H36.514z" fill="#FFFFFF" fill-opacity="0.4"/>
-<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_21_" x1="42.1436" x2="42.1436" y1="22.582" y2="19.8827">
-<stop offset="0" style="stop-color:#FFFFFF"/>
-<stop offset="1" style="stop-color:#808080"/>
-</linearGradient>
-<path d="M38.859,22.66c-0.26,0-0.469-0.212-0.469-0.471v-1.876  c0-0.26,0.209-0.47,0.469-0.47h6.568c0.26,0,0.469,0.21,0.469,0.47v1.876c0,0.259-0.209,0.471-0.469,0.471H38.859z" fill="url(#SVGID_21_)" fill-opacity="0.4"/>
-<rect fill="#FF1D25" height="1.876" width="6.568" x="38.859" y="20.313"/>
-<polygon fill-opacity="0.3" points="44.959,20.313 39.328,20.313 38.859,20.313 38.859,20.782 38.859,22.189 39.328,22.189   39.328,20.782 44.959,20.782 44.959,22.189 45.428,22.189 45.428,20.782 45.428,20.313 "/>
-<rect fill="none" height="60" width="60"/>
-</g>
-</svg>
--- a/controlpanelui/src/cpapplication/src/cpmainmodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +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 "cpmainmodel.h"
-#include <cpitemdatahelper.h>
-
-CpMainModel::CpMainModel() :
-	CpCategorySettingFormModel(QString("mainview.cpcfg"))
-
-{
-}
-
-CpMainModel::~CpMainModel()
-{
-}
-
-//End of file
--- a/controlpanelui/src/cpapplication/src/cpmainmodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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:  
-*
-*/
-#ifndef CP_MAIN_MODEL_H
-#define CP_MAIN_MODEL_H
-
-#include <cpcategorysettingformmodel.h>
-
-class CpMainModel : public CpCategorySettingFormModel
-{
-	Q_OBJECT
-public:
-	CpMainModel();
-	virtual ~CpMainModel();
-};
-
-#endif
--- a/controlpanelui/src/cpapplication/src/cpmainview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +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 "cpmainview.h"
-#include "cpmainmodel.h"
-#include <QList>
-#include <hbmainwindow.h>
-#include <hbdataform.h>
-#include <cpitemdatahelper.h>
-#include <cplogger.h>
-#include <hbactivitymanager.h>
-#include <hbapplication.h>
-#include <hbinstance.h>
-#include <QPixMap>
-#include <QMetaType>
-#include "cpcategorysettingformitemdata.h"
-
-//CpMainView implementation
-CpMainView::CpMainView(HbMainWindow *mainWindow/*= 0*/)
-: CpBaseSettingView(0,0), 
-  mMainModel(0), 
-  mItemDataHelper(0), 
-  mMainWindow(mainWindow),
-  mActivityManager(0)
-{ 
-    //delay loading
-    //connect(mMainWindow,SIGNAL(viewReady()),this,SLOT(initializeMainModel()));
-    // AUTO SAVE ACTIVITY OF CONTROLPANEL
-    HbApplication *app= qobject_cast<HbApplication *>(qApp);
-    mActivityManager = app->activityManager();
-    initializeMainModel();    
-    connect(this, SIGNAL(aboutToClose()),this, SLOT(saveActivity()));
-}
-
-CpMainView::~CpMainView()
-{
-    delete mMainModel;
-    delete mItemDataHelper;
-}
-
-bool CpMainView::event(QEvent *e)
-{
-    if (e->type() == QEvent::Show || e->type() == QEvent::ShowToParent) {
-        CPPERF_LOG("CpMainView shown.");
-    }
-    return CpBaseSettingView::event(e);
-}
-
-void CpMainView::initializeMainModel()
-{
-    if (HbDataForm *form = qobject_cast<HbDataForm *>(widget())) {
-        if (!mMainModel) {  
-            mItemDataHelper = new CpItemDataHelper(form);
-            mMainModel = new CpMainModel;
-            mMainModel->initialize(*mItemDataHelper);
-            form->setModel(mMainModel);
-            connect(form, SIGNAL(activated(QModelIndex)), this, SLOT(onDataFormItemActivated(QModelIndex)));
-            
-            connect(mMainWindow, SIGNAL(aboutToChangeView(HbView *, HbView *)), this, SLOT(onAboutToChangeView(HbView *, HbView *)));
-        }
-    }   
-    loadActivity();
-}
-
-void CpMainView::loadActivity()
-{
-    if (mMainModel == 0) {
-        return;            
-    } 
-    QVariant data = mActivityManager->activityData(QString("ControlPanelView"));
-    if (data.canConvert<QList<QVariant> >())
-    {
-        QList<QVariant> isExpanded = qvariant_cast<QList<QVariant> >(data);
-        HbDataFormModelItem *root = mMainModel->invisibleRootItem();
-        int groupCount = 0;
-        
-        if (root) {
-         groupCount = root->childCount();
-        }
-        
-        if (groupCount == isExpanded.count()) {
-            for (int i = 0; i < groupCount; i++) {
-                HbDataFormModelItem *groupItem = root->childAt(i);
-                QModelIndex index = mMainModel->indexFromItem(groupItem);
-                HbDataForm *form = qobject_cast<HbDataForm *>(widget());
-                if (form) {
-                    if (isExpanded.at(i).toBool()) {
-                        onDataFormItemActivated(index);
-                    }
-                    form->setExpanded(index,isExpanded.at(i).toBool());
-                }
-            }
-        }
-        
-        mActivityManager->removeActivity("ControlPanelView");
-    }
-}
-
-void CpMainView::saveActivity()
-{
-    HbDataFormModelItem *root = mMainModel->invisibleRootItem();
-    int groupCount = 0;
-    QList<QVariant> isExpanded;
-    if (root) {
-        groupCount = root->childCount();
-    }
-    for (int i = 0; i < groupCount; i++) {
-        HbDataFormModelItem *groupItem = root->childAt(i);
-        QModelIndex index = mMainModel->indexFromItem(groupItem);
-        HbDataForm *form = qobject_cast<HbDataForm *>(widget());    
-        isExpanded << form->isExpanded(index);
-    }
-    
-    HbMainWindow *mainWindow = hbInstance->allMainWindows().first();
-    HbView *view = mainWindow->currentView();
-    if(this == view)
-        {
-        mScreenshot = QPixmap::grabWidget(mainWindow, mainWindow->rect());
-        }
-    
-    QVariantHash metadata;
-    metadata.insert("screenshot", mScreenshot);
-    QVariant data(isExpanded);
-
-    mActivityManager->addActivity("ControlPanelView", data, metadata);
-}
-
-void CpMainView::onDataFormItemActivated(const QModelIndex &index)
-{
-    CPFW_LOG("CpMainView::onDataFormItemActivated");
-    CpSettingFormItemData *itemData = static_cast<CpSettingFormItemData *>(mMainModel->itemFromIndex(index));
-
-    if (CpCategorySettingFormItemData *categoryItemData = qobject_cast<CpCategorySettingFormItemData*>(itemData)) {
-        categoryItemData->initialize(*mItemDataHelper);
-    }    
-}
-void CpMainView::onAboutToChangeView(HbView * oldView, HbView *newView)
-{
-    Q_UNUSED(newView);
-    if (this == oldView) {
-        mScreenshot = QPixmap::grabWidget(mMainWindow, mMainWindow->rect());
-        }
-    }
-
-// End of File
--- a/controlpanelui/src/cpapplication/src/cpmainview.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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:  
-*
-*/
-#ifndef CPMAINVIEW_H
-#define CPMAINVIEW_H
-
-#include <cpbasesettingview.h>
-
-class CpMainModel;
-class HbAbstractViewItem;
-class HbDataFormModelItem;
-class CpItemDataHelper;
-class HbMainWindow;
-class HbActivityManager;
-
-class CpMainView : public CpBaseSettingView
-{
-	Q_OBJECT
-public:
-    explicit CpMainView(HbMainWindow *mainWindow = 0);
-    virtual ~CpMainView();
-    bool event(QEvent *e);
-public slots:
-    void loadActivity();
-    void saveActivity();
-private slots:
-    void initializeMainModel();
-    void onAboutToChangeView(HbView * oldView, HbView *newView);
-    void onDataFormItemActivated(const QModelIndex &index);
-private:
-    Q_DISABLE_COPY(CpMainView)
-private:
-	CpMainModel *mMainModel;
-    CpItemDataHelper *mItemDataHelper;
-    HbMainWindow *mMainWindow;
-    // not own
-    HbActivityManager *mActivityManager;
-    
-    QPixmap mScreenshot;
-};
-
-#endif
-//End of file
-
--- a/controlpanelui/src/cpapplication/src/cpmainwindow.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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 "cpmainwindow.h"
-#include "cpmainview.h"
-#include <cpplugininterface.h>
-#include <cpcategorysettingformitemdata.h>
-#include <hbapplication.h>
-#include <cpevent.h>
-
-//CpMainWindow implementation
-CpMainWindow::CpMainWindow(QWidget *parent /*= 0*/, Hb::WindowFlags windowFlags /*= Hb::WindowFlagNone*/)
-: HbMainWindow(parent,windowFlags)
-{
-}
-
-CpMainWindow::~CpMainWindow()
-{
-    CpMainView *mainView = qobject_cast<CpMainView *>(views().first());
-    if(mainView)
-        {
-        mainView->saveActivity();
-        }
-}
-
-bool CpMainWindow::event(QEvent *e)
-{
-    if (e->type() == (QEvent::Type)(CpCreatePluginItemDataEvent::CreatePluginItemData)) {
-        CpCreatePluginItemDataEvent *event = static_cast<CpCreatePluginItemDataEvent*>(e);
-        ::createCpPluginItemData(event);
-        e->accept();
-    }
-    return HbMainWindow::event(e);
-}
-
-//End of File
-
-
--- a/controlpanelui/src/cpapplication/src/cpmainwindow.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +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:  
-*
-*/
-
-#ifndef CPMAINWINDOW_H
-#define CPMAINWINDOW_H
-
-#include <hbmainwindow.h>
-
-class CpMainWindow : public HbMainWindow
-{
-    Q_OBJECT    
-public:
-    explicit CpMainWindow(QWidget *parent = 0, Hb::WindowFlags windowFlags = Hb::WindowFlagNone);
-    ~CpMainWindow();
-public:
-    virtual bool event(QEvent *e);
-};
-
-#endif // CPMAINWINDOW_H
-
-//End of File
-
--- a/controlpanelui/src/cpapplication/src/main.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +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 <hbapplication.h>
-#include <cpmainwindow.h>
-#include <cpmainview.h>
-#include <hbstyleloader.h>
-#include <hbtranslator.h>
-#include <QLocale>
-#include <QLatin1String>
-#include <QDir>
-#include <cplogger.h>
-
-int main(int argc, char **argv)
-{
-    HbApplication app(argc, argv);
-    
-    //used by QSettings
-    QCoreApplication::setOrganizationName("nokia");
-    QCoreApplication::setOrganizationDomain("Orbit");
-    QCoreApplication::setApplicationName("ControlPanel");
-
-#ifdef ENABLE_CPFW_LOG
-    INIT_LOGGER(CPFW_LOGGER_NAME,CP_LOGGER_CONFIG_PATH)
-#endif
-    
-#ifdef ENABLE_CPPERF_LOG
-    INIT_LOGGER(CPPERF_LOGGER_NAME,CP_LOGGER_CONFIG_PATH)
-#endif
-
-    CPFW_LOG("Entering ControlPanel.exe...");
-    CPPERF_LOG("Entering ControlPanel.exe...");
-       
-    HbTranslator translator("control_panel");
-    translator.loadCommon();
-        
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem_color.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.widgetml");
-
-    CpMainWindow mainWindow;
-    
-    CpMainView *mainView = new CpMainView(&mainWindow);
-    QObject::connect(mainView,SIGNAL(aboutToClose()),qApp,SLOT(quit()));
-    mainWindow.addView(mainView);
-    mainWindow.setCurrentView(mainView);
-    
-    mainWindow.show();
-    
-    int ret = app.exec();
-    
-    CPFW_LOG("Exiting ControlPanel.exe.");
-
-    return ret;
-}
-
-// End of File
--- a/controlpanelui/src/cpcategorymodel/bwins/cpcategorymodelu.def	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-EXPORTS
-	?stop@CpTaskExecutor@@QAEXXZ @ 1 NONAME ; void CpTaskExecutor::stop(void)
-	?tr@CpTaskExecutor@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString CpTaskExecutor::tr(char const *, char const *)
-	?getStaticMetaObject@CpTaskExecutor@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & CpTaskExecutor::getStaticMetaObject(void)
-	??1CpCategorySettingFormModel@@UAE@XZ @ 4 NONAME ; CpCategorySettingFormModel::~CpCategorySettingFormModel(void)
-	?beforeLoadingConfigPlugins@CpCategorySettingFormItemData@@EAEXAAVCpItemDataHelper@@@Z @ 5 NONAME ; void CpCategorySettingFormItemData::beforeLoadingConfigPlugins(class CpItemDataHelper &)
-	?trUtf8@CpCategorySettingFormModel@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString CpCategorySettingFormModel::trUtf8(char const *, char const *, int)
-	??0CpCategorySettingFormModel@@QAE@ABVQString@@@Z @ 7 NONAME ; CpCategorySettingFormModel::CpCategorySettingFormModel(class QString const &)
-	?staticMetaObject@CpTaskExecutor@@2UQMetaObject@@B @ 8 NONAME ; struct QMetaObject const CpTaskExecutor::staticMetaObject
-	??_ECpTaskExecutor@@UAE@I@Z @ 9 NONAME ; CpTaskExecutor::~CpTaskExecutor(unsigned int)
-	?trUtf8@CpTaskExecutor@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString CpTaskExecutor::trUtf8(char const *, char const *, int)
-	?trUtf8@CpCategorySettingFormItemData@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString CpCategorySettingFormItemData::trUtf8(char const *, char const *)
-	?tr@CpCategorySettingFormModel@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString CpCategorySettingFormModel::tr(char const *, char const *)
-	?tr@CpCategorySettingFormItemData@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString CpCategorySettingFormItemData::tr(char const *, char const *)
-	?getStaticMetaObject@CpCategorySettingFormModel@@SAABUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const & CpCategorySettingFormModel::getStaticMetaObject(void)
-	?destroyGlobalInstance@CpTaskExecutor@@SAXXZ @ 15 NONAME ; void CpTaskExecutor::destroyGlobalInstance(void)
-	?initialize@CpCategorySettingFormModel@@UAEXAAVCpItemDataHelper@@@Z @ 16 NONAME ; void CpCategorySettingFormModel::initialize(class CpItemDataHelper &)
-	?initialize@CpCategorySettingFormItemData@@QAEXAAVCpItemDataHelper@@@Z @ 17 NONAME ; void CpCategorySettingFormItemData::initialize(class CpItemDataHelper &)
-	?tr@CpTaskExecutor@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString CpTaskExecutor::tr(char const *, char const *, int)
-	??0CpTaskExecutor@@QAE@PAVQObject@@@Z @ 19 NONAME ; CpTaskExecutor::CpTaskExecutor(class QObject *)
-	?tr@CpCategorySettingFormItemData@@SA?AVQString@@PBD0H@Z @ 20 NONAME ; class QString CpCategorySettingFormItemData::tr(char const *, char const *, int)
-	?qt_metacast@CpTaskExecutor@@UAEPAXPBD@Z @ 21 NONAME ; void * CpTaskExecutor::qt_metacast(char const *)
-	??1CpCategorySettingFormItemData@@UAE@XZ @ 22 NONAME ; CpCategorySettingFormItemData::~CpCategorySettingFormItemData(void)
-	?beforeLoadingConfigPlugins@CpCategorySettingFormModel@@EAEXAAVCpItemDataHelper@@@Z @ 23 NONAME ; void CpCategorySettingFormModel::beforeLoadingConfigPlugins(class CpItemDataHelper &)
-	??1CpTaskExecutor@@UAE@XZ @ 24 NONAME ; CpTaskExecutor::~CpTaskExecutor(void)
-	?createCpPluginItemData@@YAHPAVCpCreatePluginItemDataEvent@@@Z @ 25 NONAME ; int createCpPluginItemData(class CpCreatePluginItemDataEvent *)
-	?trUtf8@CpCategorySettingFormModel@@SA?AVQString@@PBD0@Z @ 26 NONAME ; class QString CpCategorySettingFormModel::trUtf8(char const *, char const *)
-	?staticMetaObject@CpCategorySettingFormModel@@2UQMetaObject@@B @ 27 NONAME ; struct QMetaObject const CpCategorySettingFormModel::staticMetaObject
-	?qt_metacall@CpTaskExecutor@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int CpTaskExecutor::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0CpCategorySettingFormItemData@@QAE@ABVQString@@PBVHbDataFormModelItem@@@Z @ 29 NONAME ; CpCategorySettingFormItemData::CpCategorySettingFormItemData(class QString const &, class HbDataFormModelItem const *)
-	?qt_metacast@CpCategorySettingFormItemData@@UAEPAXPBD@Z @ 30 NONAME ; void * CpCategorySettingFormItemData::qt_metacast(char const *)
-	?toFront@CpTaskExecutor@@QAE_NPAVCpTask@@@Z @ 31 NONAME ; bool CpTaskExecutor::toFront(class CpTask *)
-	?qt_metacall@CpCategorySettingFormModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 32 NONAME ; int CpCategorySettingFormModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?removeTasks@CpTaskExecutor@@AAEXXZ @ 33 NONAME ; void CpTaskExecutor::removeTasks(void)
-	?qt_metacall@CpCategorySettingFormItemData@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 34 NONAME ; int CpCategorySettingFormItemData::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@CpCategorySettingFormModel@@UAEPAXPBD@Z @ 35 NONAME ; void * CpCategorySettingFormModel::qt_metacast(char const *)
-	?afterLoadingConfigPlugins@CpCategorySettingFormModel@@EAEXAAVCpItemDataHelper@@@Z @ 36 NONAME ; void CpCategorySettingFormModel::afterLoadingConfigPlugins(class CpItemDataHelper &)
-	?getStaticMetaObject@CpCategorySettingFormItemData@@SAABUQMetaObject@@XZ @ 37 NONAME ; struct QMetaObject const & CpCategorySettingFormItemData::getStaticMetaObject(void)
-	?metaObject@CpTaskExecutor@@UBEPBUQMetaObject@@XZ @ 38 NONAME ; struct QMetaObject const * CpTaskExecutor::metaObject(void) const
-	??0CpCategorySettingFormItemData@@QAE@W4DataItemType@HbDataFormModelItem@@ABVQString@@1PBV2@@Z @ 39 NONAME ; CpCategorySettingFormItemData::CpCategorySettingFormItemData(enum HbDataFormModelItem::DataItemType, class QString const &, class QString const &, class HbDataFormModelItem const *)
-	?trUtf8@CpCategorySettingFormItemData@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString CpCategorySettingFormItemData::trUtf8(char const *, char const *, int)
-	?runTask@CpTaskExecutor@@QAE_NPAVCpTask@@_N@Z @ 41 NONAME ; bool CpTaskExecutor::runTask(class CpTask *, bool)
-	?afterLoadingConfigPlugins@CpCategorySettingFormItemData@@EAEXAAVCpItemDataHelper@@@Z @ 42 NONAME ; void CpCategorySettingFormItemData::afterLoadingConfigPlugins(class CpItemDataHelper &)
-	?metaObject@CpCategorySettingFormModel@@UBEPBUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const * CpCategorySettingFormModel::metaObject(void) const
-	?tr@CpCategorySettingFormModel@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString CpCategorySettingFormModel::tr(char const *, char const *, int)
-	?staticMetaObject@CpCategorySettingFormItemData@@2UQMetaObject@@B @ 45 NONAME ; struct QMetaObject const CpCategorySettingFormItemData::staticMetaObject
-	?run@CpTaskExecutor@@MAEXXZ @ 46 NONAME ; void CpTaskExecutor::run(void)
-	?metaObject@CpCategorySettingFormItemData@@UBEPBUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const * CpCategorySettingFormItemData::metaObject(void) const
-	?trUtf8@CpTaskExecutor@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString CpTaskExecutor::trUtf8(char const *, char const *)
-	??_ECpCategorySettingFormItemData@@UAE@I@Z @ 49 NONAME ; CpCategorySettingFormItemData::~CpCategorySettingFormItemData(unsigned int)
-	??_ECpCategorySettingFormModel@@UAE@I@Z @ 50 NONAME ; CpCategorySettingFormModel::~CpCategorySettingFormModel(unsigned int)
-	?globalInstance@CpTaskExecutor@@SAPAV1@XZ @ 51 NONAME ; class CpTaskExecutor * CpTaskExecutor::globalInstance(void)
-
--- a/controlpanelui/src/cpcategorymodel/cpcategorymodel.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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: cpframework source files
-#
-
-HEADERS += $$PWD/src/cpplaceholderitemdata.h \
-		   $$PWD/src/cppluginconfigreader.h \		 
-		   $$PWD/src/cpcategorymodelutility.h 
-
-SOURCES += $$PWD/src/cpcategorysettingformitemdata.cpp \
-		   $$PWD/src/cpcategorysettingformmodel.cpp \
-		   $$PWD/src/cpplaceholderitemdata.cpp \
-		   $$PWD/src/cppluginconfig.cpp \
-		   $$PWD/src/cppluginconfigreader.cpp \
-		   $$PWD/src/cpcategorymodelutility.cpp \
-		   $$PWD/src/cptaskexecutor.cpp
-					 
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/cpcategorymodel.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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 = cpcategorymodel
-
-include ( ../common.pri )
-include ( ../inc/inc.pri )
-include ( ./cpcategorymodel.pri )
-
-CONFIG += Hb xml
-DEFINES += BUILD_CPCATEGORY_GLOBAL
-    
-LIBS += -lcplogger -lcpframework
-
-symbian: { 
-    TARGET.UID3 = 0X20028736
-}
-
-
--- a/controlpanelui/src/cpcategorymodel/eabi/cpcategorymodelu.def	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-EXPORTS
-	_Z22createCpPluginItemDataP27CpCreatePluginItemDataEvent @ 1 NONAME
-	_ZN14CpTaskExecutor11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
-	_ZN14CpTaskExecutor11qt_metacastEPKc @ 3 NONAME
-	_ZN14CpTaskExecutor11removeTasksEv @ 4 NONAME
-	_ZN14CpTaskExecutor14globalInstanceEv @ 5 NONAME
-	_ZN14CpTaskExecutor16staticMetaObjectE @ 6 NONAME DATA 16
-	_ZN14CpTaskExecutor19getStaticMetaObjectEv @ 7 NONAME
-	_ZN14CpTaskExecutor21destroyGlobalInstanceEv @ 8 NONAME
-	_ZN14CpTaskExecutor3runEv @ 9 NONAME
-	_ZN14CpTaskExecutor4stopEv @ 10 NONAME
-	_ZN14CpTaskExecutor7runTaskEP6CpTaskb @ 11 NONAME
-	_ZN14CpTaskExecutor7toFrontEP6CpTask @ 12 NONAME
-	_ZN14CpTaskExecutorC1EP7QObject @ 13 NONAME
-	_ZN14CpTaskExecutorC2EP7QObject @ 14 NONAME
-	_ZN14CpTaskExecutorD0Ev @ 15 NONAME
-	_ZN14CpTaskExecutorD1Ev @ 16 NONAME
-	_ZN14CpTaskExecutorD2Ev @ 17 NONAME
-	_ZN26CpCategorySettingFormModel10initializeER16CpItemDataHelper @ 18 NONAME
-	_ZN26CpCategorySettingFormModel11qt_metacallEN11QMetaObject4CallEiPPv @ 19 NONAME
-	_ZN26CpCategorySettingFormModel11qt_metacastEPKc @ 20 NONAME
-	_ZN26CpCategorySettingFormModel16staticMetaObjectE @ 21 NONAME DATA 16
-	_ZN26CpCategorySettingFormModel19getStaticMetaObjectEv @ 22 NONAME
-	_ZN26CpCategorySettingFormModel25afterLoadingConfigPluginsER16CpItemDataHelper @ 23 NONAME
-	_ZN26CpCategorySettingFormModel26beforeLoadingConfigPluginsER16CpItemDataHelper @ 24 NONAME
-	_ZN26CpCategorySettingFormModelC1ERK7QString @ 25 NONAME
-	_ZN26CpCategorySettingFormModelC2ERK7QString @ 26 NONAME
-	_ZN26CpCategorySettingFormModelD0Ev @ 27 NONAME
-	_ZN26CpCategorySettingFormModelD1Ev @ 28 NONAME
-	_ZN26CpCategorySettingFormModelD2Ev @ 29 NONAME
-	_ZN29CpCategorySettingFormItemData10initializeER16CpItemDataHelper @ 30 NONAME
-	_ZN29CpCategorySettingFormItemData11qt_metacallEN11QMetaObject4CallEiPPv @ 31 NONAME
-	_ZN29CpCategorySettingFormItemData11qt_metacastEPKc @ 32 NONAME
-	_ZN29CpCategorySettingFormItemData16staticMetaObjectE @ 33 NONAME DATA 16
-	_ZN29CpCategorySettingFormItemData19getStaticMetaObjectEv @ 34 NONAME
-	_ZN29CpCategorySettingFormItemData25afterLoadingConfigPluginsER16CpItemDataHelper @ 35 NONAME
-	_ZN29CpCategorySettingFormItemData26beforeLoadingConfigPluginsER16CpItemDataHelper @ 36 NONAME
-	_ZN29CpCategorySettingFormItemDataC1EN19HbDataFormModelItem12DataItemTypeERK7QStringS4_PKS0_ @ 37 NONAME
-	_ZN29CpCategorySettingFormItemDataC1ERK7QStringPK19HbDataFormModelItem @ 38 NONAME
-	_ZN29CpCategorySettingFormItemDataC2EN19HbDataFormModelItem12DataItemTypeERK7QStringS4_PKS0_ @ 39 NONAME
-	_ZN29CpCategorySettingFormItemDataC2ERK7QStringPK19HbDataFormModelItem @ 40 NONAME
-	_ZN29CpCategorySettingFormItemDataD0Ev @ 41 NONAME
-	_ZN29CpCategorySettingFormItemDataD1Ev @ 42 NONAME
-	_ZN29CpCategorySettingFormItemDataD2Ev @ 43 NONAME
-	_ZNK14CpTaskExecutor10metaObjectEv @ 44 NONAME
-	_ZNK26CpCategorySettingFormModel10metaObjectEv @ 45 NONAME
-	_ZNK29CpCategorySettingFormItemData10metaObjectEv @ 46 NONAME
-	_ZTI14CpTaskExecutor @ 47 NONAME
-	_ZTI26CpCategorySettingFormModel @ 48 NONAME
-	_ZTI29CpCategorySettingFormItemData @ 49 NONAME
-	_ZTV14CpTaskExecutor @ 50 NONAME
-	_ZTV26CpCategorySettingFormModel @ 51 NONAME
-	_ZTV29CpCategorySettingFormItemData @ 52 NONAME
-	_ZThn8_N29CpCategorySettingFormItemDataD0Ev @ 53 NONAME
-	_ZThn8_N29CpCategorySettingFormItemDataD1Ev @ 54 NONAME
-
--- a/controlpanelui/src/cpcategorymodel/src/cpcategorymodelutility.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +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:  Utility class for cpcategorymodel.
-*
-*/
-#include "cpcategorymodelutility.h"
-#include <QString>
-#include <QDir>
-#include <QFileInfo>
-#include <hbinstance.h>
-#include <cppluginloader.h>
-#include <cpplugininterface.h>
-#include <cpbasepath.h>
-#include <cplogger.h>
-#include <cpevent.h>
-#include <cptaskexecutor.h>
-#include <cpsettingformentryitemdata.h>
-#include "cpcategorysettingformitemdata.h"
-#include "cppluginconfigreader.h"
-#include "cpplaceholderitemdata.h"
-
-static HbMainWindow *mainWindow() 
-{
-    QList< HbMainWindow* > mainWindows = hbInstance->allMainWindows();
-    if (!mainWindows.isEmpty()) {
-        return mainWindows.front();
-    }
-    return 0;
-}
-
-
-//#define ASYNC_LOAD_CPPLUGIN
-
-class CpLoadConfigPluginsTask : public CpTask
-{
-public:
-    CpLoadConfigPluginsTask(HbDataFormModelItem *parentItem,
-                            const QString &configFile,
-                            CpItemDataHelper *itemDataHelper,
-                            int startPosition) : 
-                            mParentItem(parentItem),
-                            mConfigFile(configFile),
-                            mItemDataHelper(itemDataHelper),
-                            mStartPosition(startPosition)
-    { 
-        
-    }
-    
-    virtual ~CpLoadConfigPluginsTask()
-    {
-        
-    }
-    
-    virtual void execute(volatile bool *stopped)
-    {
-        if (!mParentItem) {
-            return;
-        }
-        
-        QString configPath(mConfigFile);
-        QFileInfo fi(mConfigFile);
-        //if it is a relative path, search the config file from device drives.
-        if (!fi.isAbsolute()) {
-          QStringList dirs = CpCategoryModelUtility::configFileDirectories();
-          foreach(const QString &dir,dirs) {
-              configPath = dir + fi.fileName();
-              if (QFileInfo(configPath).exists()) {
-                  CPFW_LOG(configPath + " has been found.");
-                  break;      
-              }
-          }
-        }       
-        
-        QList<CpPluginConfig> pluginConfigs = CpPluginConfigReader(configPath).readCpPluginConfigs();
-        
-        int position = mStartPosition;
-        foreach(const CpPluginConfig &pluginConfig, pluginConfigs)  {
-            if (stopped && *stopped) {
-                break;
-            }
-            
-            CPFW_LOG(QLatin1String("Load plugin: ") + pluginConfig.mPluginFile + " from " + configPath);
-
-            CpCreatePluginItemDataEvent *event = new CpCreatePluginItemDataEvent;
-            
-            event->mParentItem     = mParentItem;
-            
-            if (mStartPosition < 0) {
-                event->mItemPosition = mStartPosition; //append
-            }
-            else {
-                event->mItemPosition   = position++;   
-            }
-                        
-            event->mItemDataHelper = mItemDataHelper;
-            
-            event->mDisplayName    = pluginConfig.mDisplayName;
-            event->mDescription    = pluginConfig.mDescription;
-            event->mPluginFile     = pluginConfig.mPluginFile;
-                        
-            //firstly, handle CpPluginInterface
-            if (CpPluginInterface *plugin = CpPluginLoader::loadCpPluginInterface(pluginConfig.mPluginFile)) {
-                CPFW_LOG("Load  root component CpPluginInterface succeed.");
-                event->mPluginInterface = plugin;
-            }
-
-            //post event to main window in main thread
-            QCoreApplication::postEvent(mainWindow(),event);
-            
-        } //end foreach
-        
-    }
-private:
-    HbDataFormModelItem *mParentItem;
-    QString mConfigFile;
-    CpItemDataHelper *mItemDataHelper;
-    int mStartPosition;
-};
-
-void CpCategoryModelUtility::buildConfigPluginItems(HbDataFormModelItem *parent,
-									   const QString &configFile,
-									   CpItemDataHelper &itemDataHelper,
-									   int startPosition)
-{
-#ifdef ASYNC_LOAD_CPPLUGIN
-    CpTaskExecutor::globalInstance()->runTask
-        ( new CpLoadConfigPluginsTask(parent,configFile,&itemDataHelper,startPosition) );
-    
-#else    
-    if (!parent) {
-        return;
-    }
-
-	QString configPath(configFile);
-	QFileInfo fi(configFile);
-    //if it is a relative path, search the config file from device drives.
-	if (!fi.isAbsolute()) {
-		QStringList dirs = CpCategoryModelUtility::configFileDirectories();
-		foreach(const QString &dir,dirs) {
-			configPath = dir + fi.fileName();
-			if (QFileInfo(configPath).exists()) {
-                CPFW_LOG(configPath + " has been found.");
-				break;		
-			}
-		}
-	}
-    	
-    QList<CpPluginConfig> pluginConfigs = CpPluginConfigReader(configPath).readCpPluginConfigs();
-		
-	foreach(const CpPluginConfig &pluginConfig, pluginConfigs)  {
-        CPFW_LOG(QLatin1String("Load plugin: ") + pluginConfig.mPluginFile + " from " + configPath);
-
-		QList<CpSettingFormItemData*> itemDataList;
-		
-        //firstly, handle CpPluginInterface
-		if (CpPluginInterface *plugin = CpPluginLoader::loadCpPluginInterface(pluginConfig.mPluginFile)) {
-            CPFW_LOG("Load  root component CpPluginInterface succeed.");
-			itemDataList = plugin->createSettingFormItemData(itemDataHelper);
-		}
-
-		else {
-            CPFW_LOG(QLatin1String("Load plugin:") + pluginConfig.mPluginFile + QLatin1String(" failed."));
-            #ifdef _DEBUG
-              CPFW_LOG(QLatin1String("***Add a placeholder."));
-              itemDataList.append(new CpPlaceHolderItemData(itemDataHelper,pluginConfig));
-            #endif
-		}
-
-        foreach(CpSettingFormItemData *itemData,itemDataList) {
-            if (itemData) {
-                //append the new created setting form item to its parent item.
-                parent->insertChild(startPosition++,itemData);
-				//commented this for only loading group plugin when startup
-                /*if (CpCategorySettingFormItemData *categoryItemData 
-                    = qobject_cast<CpCategorySettingFormItemData*>(itemData)) {
-                    categoryItemData->initialize(itemDataHelper);
-                }*/
-
-                //set the text and description from config if it is empty.
-                setEntryItemContentIfEmpty(itemData,pluginConfig.mDisplayName,pluginConfig.mDescription);
-            }
-        } //end foreach
-
-	} //end foreach
-#endif
-	
-}
-
-bool CpCategoryModelUtility::setEntryItemContentIfEmpty(CpSettingFormItemData *itemData, 
-    const QString &displayName,
-    const QString &description)
-{
-    CpSettingFormEntryItemData *entryItemData = qobject_cast< CpSettingFormEntryItemData* > (itemData);
-    if (!entryItemData) {
-        return false;
-    }
-    
-    if (entryItemData->text().isEmpty()) {
-        entryItemData->setText(displayName);
-    }
-    if (entryItemData->description().isEmpty()) {
-        entryItemData->setDescription(description);
-    }
-    if (entryItemData->iconName().isEmpty()) {
-        entryItemData->setIconName(
-                QLatin1String(":/icon/qgn_prop_set_default_sub.svg") );
-    }
-    
-    return true;
-}
-
-QStringList CpCategoryModelUtility::drives()
-{
-	static QStringList drives;
-
-	if (drives.empty()) {
-        CPFW_LOG("device drives:");
-#ifdef WIN32
-		drives.append("C:");
-        CPFW_LOG("C:");
-#else
-		QFileInfoList fileInfoList = QDir::drives();
-		foreach(const QFileInfo &fileInfo,fileInfoList) {
-			QString str = fileInfo.filePath();
-			if (str.length() > 2) {
-				str = str.left(2);
-			}
-			drives.append(str);
-            CPFW_LOG(str);
-		}
-#endif  
-	}
-
-	return drives;
-}
-
-static QStringList directoriesFromAllDrives(const QString &baseDir)
-{
-	QStringList dirs;
-
-	QStringList drives = CpCategoryModelUtility::drives();
-	foreach(const QString &drive,drives) {
-		QString dir = drive + baseDir + QDir::separator();
-		if (QFileInfo(dir).exists()) {
-			dirs.append(dir);
-            CPFW_LOG(dir);
-		}
-	}
-
-	return dirs;
-}
-
-QStringList CpCategoryModelUtility::pluginDirectories()
-{
-	static QStringList dirs;
-	if (dirs.empty()) {
-        CPFW_LOG("ControlPanel plugin derectories:")
-		dirs = directoriesFromAllDrives(CP_PLUGIN_PATH);
-	}
-	return dirs;
-}
-
-QStringList CpCategoryModelUtility::configFileDirectories()
-{
-	static QStringList dirs;
-	if (dirs.empty()) {
-        CPFW_LOG("ControlPanel configuration file derectories:");
-		dirs = directoriesFromAllDrives(CP_PLUGIN_CONFIG_PATH);
-	}
-	return dirs;
-}
-
-CP_CATEGORY_EXPORT int createCpPluginItemData(CpCreatePluginItemDataEvent *event)
-{
-    QList<CpSettingFormItemData*> itemDataList;
-    
-    if (event->mPluginInterface) {
-        itemDataList = event->mPluginInterface->createSettingFormItemData(*(event->mItemDataHelper));
-    }
-    
-    else {
-        #ifdef _DEBUG
-          itemDataList.append(new CpPlaceHolderItemData(*(event->mItemDataHelper),event->mDisplayName,event->mPluginFile));
-        #endif
-    }
-    
-    foreach(CpSettingFormItemData *itemData,itemDataList) {
-        if (itemData) {
-            //append the new created setting form item to its parent item.
-            if (event->mItemPosition < 0) {
-                event->mParentItem->appendChild(itemData);
-            }
-            else {
-                event->mParentItem->insertChild(event->mItemPosition,itemData);
-            }
-
-            if (CpCategorySettingFormItemData *categoryItemData 
-                = qobject_cast<CpCategorySettingFormItemData*>(itemData)) {
-                categoryItemData->initialize(*(event->mItemDataHelper));
-            }
-
-            //set the text and description from config if it is empty.
-            CpCategoryModelUtility::setEntryItemContentIfEmpty(itemData,event->mDisplayName,event->mDescription);
-        }
-    } //end foreach
-       
-    return itemDataList.count();
-}
-
-//End of File
-
--- a/controlpanelui/src/cpcategorymodel/src/cpcategorymodelutility.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +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:  
-*
-*/
-#ifndef CPCATEGORYMODELUTILITY_H
-#define CPCATEGORYMODELUTILITY_H
-
-#include <QString>
-
-class HbDataFormModelItem;
-class CpItemDataHelper;
-class CpSettingFormItemData;
-
-class CpCategoryModelUtility
-{
-public:
-	/*
-		load all controlpanel plugins from configuration file,
-		and create model items form the loaded plugins 
-		and append model items to given parent
-	*/
-	static void buildConfigPluginItems(
-	    HbDataFormModelItem *parent,
-		const QString &configFile,
-		CpItemDataHelper &itemDataHelper,
-		int startPosition);
-		
-	/*
-	  setEntryItemContentIfEmpty
-	 */
-	static bool setEntryItemContentIfEmpty(
-	    CpSettingFormItemData *itemData, 
-	    const QString &displayName,
-	    const QString &description);
-	
-	/*
-		get all physical drives of the devices
-	*/
-	static QStringList drives();
-
-	/*
-		get all controlpanel plugin directories of the device
-	*/
-	static QStringList pluginDirectories();
-
-	/*
-		get all config directories of the device
-	*/
-	static QStringList configFileDirectories();
-
-};
-
-#endif // CPCATEGORYMODELUTILITY_H
-
-//End of File
-
--- a/controlpanelui/src/cpcategorymodel/src/cpcategorysettingformitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +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:  An extension to CpSettingFormItemData, can be filled with model items comes from controlpanel plugins.
-*
-*/
-#include "cpcategorysettingformitemdata.h"
-#include <QString>
-#include "cpcategorymodelutility.h"
-
-/*
- * Private implementation
- */
-class CpCategorySettingFormItemDataPrivate
-{
-public:
-	CpCategorySettingFormItemDataPrivate(const QString &configFile) : 
-	  mInitialized(false),
-	  mConfigFile(configFile)
-	{
-	}
-
-	~CpCategorySettingFormItemDataPrivate()
-	{
-	}
-
-public:
-	bool mInitialized;
-	QString mConfigFile;
-};
-
-/*
- * Constructor
- */
-CpCategorySettingFormItemData::CpCategorySettingFormItemData(
-               HbDataFormModelItem::DataItemType type,
-	           const QString &label,
-			   const QString &configFile,
-			   const HbDataFormModelItem *parent /*= 0*/) : 
-			   CpSettingFormItemData(type,label,parent),
-			   d(new CpCategorySettingFormItemDataPrivate(configFile))
-{
-}
-
-/*
- * Overloaded constructor
- */
-CpCategorySettingFormItemData::CpCategorySettingFormItemData(
-			   const QString &configFile /*= QString()*/,
-			   const HbDataFormModelItem *parent /*= 0*/) : 
-	           CpSettingFormItemData(parent),
-			   d(new CpCategorySettingFormItemDataPrivate(configFile))
-{
-}
-
-/*
- * Desctructor
- */
-CpCategorySettingFormItemData::~CpCategorySettingFormItemData()
-{
-	delete d;
-}
-
-/*
- * Initialize
- */
-void CpCategorySettingFormItemData::initialize(CpItemDataHelper &itemDataHelper)
-{
-    //avoid to be called twice
-    if (!d->mInitialized) {
-        //give derived class a chance do their special things before loading config plugins
-        beforeLoadingConfigPlugins(itemDataHelper);
-        
-        int pluginItemStartPosition = childCount();
-        //give derived class a chance do their special things after loading config plugins
-        afterLoadingConfigPlugins(itemDataHelper);
-        
-        //load plugins which are configured
-        CpCategoryModelUtility::buildConfigPluginItems(
-		    this,
-		    d->mConfigFile,
-		    itemDataHelper,
-		    pluginItemStartPosition);
-		    
-        d->mInitialized = true;
-    }
-}
-
-/*
- * Derived class can override this function to do some specific work before loading config plugins
- */
-void CpCategorySettingFormItemData::beforeLoadingConfigPlugins(CpItemDataHelper &/*itemDataHelper*/)
-{
-}
-/*
- * Derived class can override this function to do some specific work before loading config plugins
- */
-void CpCategorySettingFormItemData::afterLoadingConfigPlugins(CpItemDataHelper &/*itemDataHelper*/)
-{
-}
-
-//End of File
--- a/controlpanelui/src/cpcategorymodel/src/cpcategorysettingformmodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +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:  An extension to HbDataFormModel, can be filled with model items comes from controlpanel plugins.
-*
-*/
-
-#include "cpcategorysettingformmodel.h"
-#include <QString>
-#include "cpcategorymodelutility.h"
-#include <cpitemdatahelper.h>
-
-/*
- * Private implementation
- */
-class CpCategorySettingFormModelPrivate
-{
-public:
-	CpCategorySettingFormModelPrivate(const QString &configFile) : 
-	  mInitialized(false),
-	  mConfigFile(configFile)
-	{
-	}
-
-	~CpCategorySettingFormModelPrivate()
-	{
-	}
-
-public:
-	bool mInitialized;
-	QString mConfigFile;
-};
-
-/*
- * Constructor
- */
-CpCategorySettingFormModel::CpCategorySettingFormModel(const QString &configFile) : 
-	d (new CpCategorySettingFormModelPrivate(configFile))
-{
-}
-
-/*
- * Destructor
- */
-CpCategorySettingFormModel::~CpCategorySettingFormModel()
-{
-	delete d;
-}
-
-/*
- * Initialize
- */
-void CpCategorySettingFormModel::initialize(CpItemDataHelper &itemDataHelper)
-{
-    //avoid to be called twice
-    if (!d->mInitialized) {
-        //give derived class a change do their special things before loading config plugins
-        beforeLoadingConfigPlugins(itemDataHelper);
-        
-        int pluginItemStartPosition = invisibleRootItem()->childCount();
-        //give derived class a change do their special things after loading config plugins
-        afterLoadingConfigPlugins(itemDataHelper);
-        
-        //load plugins which are configured
-        CpCategoryModelUtility::buildConfigPluginItems(invisibleRootItem(),
-		    d->mConfigFile,
-		    itemDataHelper,
-		    pluginItemStartPosition);
-
-        d->mInitialized = true;
-    }
-}
-
-/*
- * Derived class can override this function to do some specific work before loading config plugins
- */
-void CpCategorySettingFormModel::beforeLoadingConfigPlugins(CpItemDataHelper&/*itemDataHelper*/)
-{
-}
-
-/*
- * Derived class can override this function to do some specific work after loading config plugins
- */
-void CpCategorySettingFormModel::afterLoadingConfigPlugins(CpItemDataHelper &/*itemDataHelper*/)
-{
-}
-
-//End of File
--- a/controlpanelui/src/cpcategorymodel/src/cpplaceholderitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +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:  Placeholder for plugin configured in cpcfg file but the target is missing.
-*
-*/
-
-#include "cpplaceholderitemdata.h"
-#include <QTextStream>
-#include <hbmessagebox.h>
-#include "cppluginconfig.h"
-
-CpPlaceHolderItemData::CpPlaceHolderItemData(CpItemDataHelper &itemDataHelper,
-                                             const CpPluginConfig &pluginConfig)
-                                             : CpSettingFormEntryItemData(
-                                             itemDataHelper,
-                                             pluginConfig.mDisplayName,
-                                             pluginConfig.mPluginFile)
-{
-}
-
-CpPlaceHolderItemData::CpPlaceHolderItemData(CpItemDataHelper &itemDataHelper,
-                                            const QString &displayName,
-                                            const QString &pluginFile) 
-                                            : CpSettingFormEntryItemData (
-                                            itemDataHelper,
-                                            displayName,
-                                            pluginFile)
-{
-    
-}
-
-CpPlaceHolderItemData::~CpPlaceHolderItemData()
-{
-}
-
-void CpPlaceHolderItemData::onLaunchView()
-{
-    QString message;
-    QTextStream stream(&message);
-    stream << "Load plugin:"
-           << description() 
-           << " faild."
-           << "Please check:\n"
-           << "1. if the dll name is correct in configuration file.\n" 
-           << "2  if the dll has been generated.\n"
-           << "3. if the plugin stub file is in place.\n"
-           << "4. if the dll is valid Qt plugin.";
-
-    HbMessageBox::warning(message);
-}
-
-CpBaseSettingView *CpPlaceHolderItemData::createSettingView() const
-{
-    return 0;
-}
-
-//End of File
-
--- a/controlpanelui/src/cpcategorymodel/src/cpplaceholderitemdata.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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:  Placeholder for plugin configured in cpcfg file but the target is missing.
-*
-*/
-
-#ifndef CPPLACEHOLDERITEMDATA_H
-#define CPPLACEHOLDERITEMDATA_H
-
-#include <cpsettingformentryitemdata.h>
-
-class CpPluginConfig;
-class CpItemDataHelper;
-
-class CpPlaceHolderItemData : public CpSettingFormEntryItemData
-{
-    Q_OBJECT
-public:
-    CpPlaceHolderItemData(CpItemDataHelper &itemDataHelper,const CpPluginConfig &pluginConfig);
-    CpPlaceHolderItemData(CpItemDataHelper &itemDataHelper,const QString &displayName,const QString &pluginFile);
-    virtual ~CpPlaceHolderItemData();
-private slots:
-	virtual void onLaunchView();
-private:
-	virtual CpBaseSettingView *createSettingView() const;
-};
-
-#endif //CPPLACEHOLDERITEMDATA_H
-
-//End of File
--- a/controlpanelui/src/cpcategorymodel/src/cppluginconfig.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +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:  An entry for a plugin defined in cpcfg file.
-*
-*/
-
-#include "cppluginconfig.h"
-#include <cplogger.h>
-
-CpPluginConfig::CpPluginConfig() : 
-    mUid(0),
-    mDisplayName(QString()),
-    mPluginFile(QString()),
-    mDescription(QString())
-{
-
-}
-
-void CpPluginConfig::dump()
-{   
-    CPFW_LOG(QLatin1String("id = ") + QString("0x%1").arg(mUid,0,16));
-    CPFW_LOG(QLatin1String("diplayname = ") + mDisplayName);
-    CPFW_LOG(QLatin1String("dll = ") + mPluginFile);
-    CPFW_LOG(QLatin1String("desc = ") + mDescription);
-}
--- a/controlpanelui/src/cpcategorymodel/src/cppluginconfig.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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:  An entry for a controlpanel plugin defined in cpcfg file.
-*
-*/
-
-#ifndef CPPLUGINCONFIG_H
-#define CPPLUGINCONFIG_H
-
-#include <QString>
-
-class CpPluginConfig
-{
-public:
-    CpPluginConfig();
-    void dump();
-public:
-    int mUid; //UID3 for the plugin 
-    QString mDisplayName;
-    QString mPluginFile; 
-    QString mDescription;
-};
-
-#endif /* CPPLUGINCONFIG_H */
--- a/controlpanelui/src/cpcategorymodel/src/cppluginconfigreader.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +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:  This class reads cpcfg files.
-*
-*/
-
-#include "cppluginconfigreader.h"
-#include <QFile>
-#include <QXmlStreamReader>
-#include <cplogger.h>
-
-const QString CHILD_PLUGINS_TAG         = "childplugins";
-const QString PLUGIN_TAG                = "plugin";
-const QString PLUGIN_ID_ATTR            = "id";
-const QString PLUGIN_DLL_ATTR           = "dll";
-const QString PLUGIN_DISPALYNAME_ATTR   = "displayname";
-const QString DESC_TAG                  = "desc";
-
-/*
- * Constructor.
- * @configPath : the full path of the config file.
- */
-CpPluginConfigReader::CpPluginConfigReader(const QString &configPath)
-: mConfigPath (configPath)
-{
-}
-
-/*
- * Desctructor
- */
-CpPluginConfigReader::~CpPluginConfigReader()
-{
-}
-
-/*
- * Reads a cpcfg file, returns a list of CpPluginConfig.
- */
-QList<CpPluginConfig> CpPluginConfigReader::readCpPluginConfigs()
-{ 
-    CPFW_LOG(QLatin1String("reading cpcfg file:") + mConfigPath);
-    
-    // Empty config file
-    if (mConfigPath.isNull() || mConfigPath.isEmpty()) {
-        CPFW_LOG("CpPluginConfigReader::readCpPluginConfigs() mConfigPath is empty.");
-        return QList<CpPluginConfig> ();
-    }
-
-    QFile file(mConfigPath);
-    
-    // Config file doesn't exist
-    if (!file.exists()) {
-        CPFW_LOG( mConfigPath  + " does not exist.");
-        return QList<CpPluginConfig> ();
-    }
-    
-    // Open config file failed
-    if (!file.open(QFile::ReadOnly | QFile::Text)) {
-        CPFW_LOG(QString("CpPluginConfigReader::readCpPluginConfigs() open file failed. Error:%1")
-            .arg(static_cast<int>(file.error()),0,10));
-        return QList<CpPluginConfig> ();
-    }
-
-    QXmlStreamReader reader(&file);
-
-    QList<CpPluginConfig> cpPluginConfigList;
-
-    readCpPluginConfigs(reader, cpPluginConfigList);
-
-    file.close();
-
-    return cpPluginConfigList;
-}
-
-/*
- * Read a list of CpPluginConfig from a xml stream.
- */
-void CpPluginConfigReader::readCpPluginConfigs(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList)
-{
-    xmlReader.readNext();
-
-    while (!xmlReader.atEnd()) {
-        
-        if (xmlReader.isStartElement()) {
-            // Read <childplugins> node
-            if (xmlReader.name() == CHILD_PLUGINS_TAG) {
-                readChildPluginsElement(xmlReader, cpPluginConfigList);
-            }
-            else {
-                xmlReader.raiseError("Not a valid file with the right format.");
-            }
-        }
-        
-        else {
-            xmlReader.readNext();
-        }
-    }
-}
-
-/*
- * Read <childplugins> node.
- */
-void CpPluginConfigReader::readChildPluginsElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList)
-{
-    xmlReader.readNext();
-
-    while (!xmlReader.atEnd()) {
-        
-        if (xmlReader.isEndElement()) {
-            xmlReader.readNext();
-            break;
-        }
-
-        if (xmlReader.isStartElement()) {
-            // Read <plugin> node
-            if (xmlReader.name() == PLUGIN_TAG) {
-                readPluginElement(xmlReader, cpPluginConfigList);
-            }
-            // Skip invalid node
-            else {
-                skipUnknownElement(xmlReader);
-            }
-        }
-        
-        else {
-            xmlReader.readNext();
-        }
-    }
-}
-
-/*
- * Read <plugin> node.
- */
-void CpPluginConfigReader::readPluginElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList)
-{ 
-    CpPluginConfig cpPluginConfig;
-  
-    QXmlStreamAttributes xmlAttributes = xmlReader.attributes();
-  
-    // Read <id> attribute
-    if (xmlAttributes.hasAttribute(PLUGIN_ID_ATTR))  {
-        cpPluginConfig.mUid 
-            = (xmlAttributes.value(PLUGIN_ID_ATTR)).toString().toUInt(0,16);
-    }
-  
-    // Read <dll> attribute
-    if (xmlAttributes.hasAttribute(PLUGIN_DLL_ATTR)) {
-        cpPluginConfig.mPluginFile 
-            = (xmlAttributes.value(PLUGIN_DLL_ATTR)).toString();
-    }
-  
-    // Read <displayname> attribute
-    if (xmlAttributes.hasAttribute(PLUGIN_DISPALYNAME_ATTR)) {
-        cpPluginConfig.mDisplayName 
-            = (xmlAttributes.value(PLUGIN_DISPALYNAME_ATTR)).toString();
-    }
-  
-    // Read <description> node
-    readDescElement(xmlReader,cpPluginConfig);
-  
-#ifdef ENABLE_CPFW_LOG
-    cpPluginConfig.dump();
-#endif
-  
-    cpPluginConfigList.append(cpPluginConfig);
-}
-
-/*
- * Read <description> node.
- */
-void CpPluginConfigReader::readDescElement(QXmlStreamReader &xmlReader,CpPluginConfig &cpPluginConfig)
-{
-    xmlReader.readNext();
-
-    while (!xmlReader.atEnd()) {
-        
-        if (xmlReader.isEndElement()) {
-            xmlReader.readNext();
-            break;
-        }
-
-        if (xmlReader.isStartElement()) {
-            // valid description node
-            if (xmlReader.name() == DESC_TAG) {
-                cpPluginConfig.mDescription = xmlReader.readElementText();
-                if (xmlReader.isEndElement()) {
-                    xmlReader.readNext();
-                }
-            }
-            // invalid node, skip it
-            else {
-                skipUnknownElement(xmlReader);
-            }
-        }
-        
-        else {
-            xmlReader.readNext();
-        }
-    }
-}
-
-/*
- * ignore invalid node.
- */
-void CpPluginConfigReader::skipUnknownElement(QXmlStreamReader &xmlReader)
-{
-    xmlReader.readNext();
-
-    while (!xmlReader.atEnd()) {
-        
-        if (xmlReader.isEndElement()) {
-            xmlReader.readNext();
-            break;
-        }
-
-        if (xmlReader.isStartElement()) {
-            skipUnknownElement(xmlReader);
-        }
-        else {
-            xmlReader.readNext();
-        }
-    }
-}
--- a/controlpanelui/src/cpcategorymodel/src/cppluginconfigreader.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +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:  This class reads cpcfg files.
-*
-*/
-
-/* configuration format:
- 
-  <childplugins>
-    <plugin displayname = "Personalization" id = "0xE195181a" dll = "cppersonaliztionplugin.dll">
-      <desc>This is Personalization</desc>
-    </plugin>
-    <plugin displayname = "Communication" id = "0xE195181b" dll = "cpcommunicationplugin.dll">
-      <desc>This is Communication</desc>
-    </plugin>
-    <plugin displayname = "Application settings" id = "0xE195181c" dll = "cpapplicationsettingsplugin.dll">
-      <desc>This is Application settings</desc>
-    </plugin>
-    <plugin displayname = "Device" id = "0xE195181d" dll = "cpdeviceplugin.dll">
-      <desc>This is Device</desc>
-    </plugin>
-  </childplugins>
-*/
-
-/* Usage:
-
-  const QString file("\\resource\\qt\\plugins\\controlpanel\\config\\applicationsettingsplugin.cpcfg");
-  
-  CpPluginConfigReader cfgReader(file);
-  QList<CpPluginConfig> cfgList = cfgReader.readCpPluginConfigs();
-  
-  foreach (CpPluginConfig cfg, cfgList)
-  {
-    cfg.dump();
-  }
-*/
-
-#ifndef CPPLUGINCONFIGREADER_H
-#define CPPLUGINCONFIGREADER_H
-
-#include <QString>
-#include <QList>
-#include "cppluginconfig.h"
-
-class QXmlStreamReader;
-
-class CpPluginConfigReader
-{
-public:
-    explicit CpPluginConfigReader(const QString &configPath);
-    ~CpPluginConfigReader();
-
-    QList<CpPluginConfig> readCpPluginConfigs();
-
-private:
-    void readCpPluginConfigs(QXmlStreamReader &xmlReader,
-            QList<CpPluginConfig> &cpPluginConfigList);
-    void readChildPluginsElement(QXmlStreamReader &xmlReader, 
-            QList<CpPluginConfig> &cpPluginConfigList);
-    void readPluginElement(QXmlStreamReader &xmlReader,
-            QList<CpPluginConfig> &cpPluginConfigList);
-    void readDescElement(QXmlStreamReader &xmlReader,
-            CpPluginConfig &cpPluginConfig);
-    void skipUnknownElement(QXmlStreamReader &xmlReader);
-private:
-    QString mConfigPath;
-};
-
-#endif /* CPPLUGINCONFIGREADER_H */
--- a/controlpanelui/src/cpcategorymodel/src/cptaskexecutor.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +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 "cptaskexecutor.h"
-#include <QMutexLocker>
-#include <QDebug>
-#include <QtAlgorithms>
-#include <QPointer>
-
-static QPointer<CpTaskExecutor> g_instance;
-
-CpTaskExecutor *CpTaskExecutor::globalInstance()
-{
-    if (!g_instance) {
-        g_instance = new CpTaskExecutor();
-    }
-    return g_instance.data();
-}
-    
-void CpTaskExecutor::destroyGlobalInstance()
-{
-    delete g_instance.data();
-}
-
-CpTaskExecutor::CpTaskExecutor(QObject *parent /*=0*/) 
-: QThread(parent), mStopped(false)
-{
-}
-
-CpTaskExecutor::~CpTaskExecutor()
-{
-    stop();
-}
-
-bool CpTaskExecutor::runTask(CpTask *task,bool append /*= false*/)
-{
-    if (mStopped) {
-        if (isRunning()) {
-            qDebug() << "thread in stopping process...can not run task.\r\n";
-            return false;
-        }
-        mStopped = false;
-    }
-
-    if (task) {
-        {
-            QMutexLocker locker(&mMutex);
-            if (append) {
-                mTasks.append(task);
-            }
-            else {
-                mTasks.insert(0,task);
-            }
-        }
-
-        if (!isRunning()) {
-            qDebug() << "isRunning() == false, call start()\r\n";
-            start();
-        }
-    }
-
-    return true;
-}
-
-void CpTaskExecutor::stop()
-{
-    if (!mStopped && isRunning() ) {
-       mStopped = true;
-       removeTasks();
-       wait(); //wait for finished
-    }
-}
-
-void CpTaskExecutor::removeTasks()
-{
-    QMutexLocker locker(&mMutex);
-    
-    QList<CpTask*>::const_iterator begin(mTasks.begin());
-    QList<CpTask*>::const_iterator end(mTasks.end());
-    for (; begin != end; ++begin) {
-        if ((*begin)->autoDelete()) {
-            delete (*begin);
-        }
-    }
-
-    mTasks.clear();
-}
-
-void CpTaskExecutor::run()
-{
-    while (!mStopped) {
-        CpTask *task = 0;
-        {
-            QMutexLocker locker(&mMutex);
-            if (mTasks.isEmpty()) {
-                break;
-            }
-            task = mTasks.takeFirst();
-        }
-        try {
-            task->execute(&mStopped);
-            task->complete(&mStopped);
-        }catch(...) {
-            qDebug() << "excetion occur when running task\r\n";           
-        }
-
-        if (task->autoDelete()) {
-            delete task;
-        }
-    }
-}
-
-bool CpTaskExecutor::toFront(CpTask *task)
-{
-    QMutexLocker locker(&mMutex);
-    QList<CpTask*>::iterator foundIterator = ::qFind(mTasks.begin(),mTasks.end(),task);
-    if (foundIterator == mTasks.end()) {
-        return false;
-    }
-    
-    mTasks.erase(foundIterator);
-    mTasks.insert(0,task);
-
-    return true;
-}
-
-//End of File
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/firstpluginforcpcategorymodel.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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 = firstpluginforcpcategorymodel
-
-MOC_DIR = moc
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-CONFIG += hb plugin
-LIBS += -lcpframework
-CONFIG += symbian_test
-
-symbian: plugin { # copy qtstub and manifest
-	
-	PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-	
-	deploy.path = C:
-	pluginstub.sources = $${TARGET}.dll
-	pluginstub.path = $$PLUGIN_STUB_PATH
-	DEPLOYMENT += pluginstub
-
-    qtplugins.path = $$PLUGIN_STUB_PATH
-    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-     
-    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin  $$deploy.path$$qtplugins.path/$$basename(qtplugin)" 
-}
-
-DEPENDPATH += .
-INCLUDEPATH += .
-			 
-# Input
-HEADERS += src/firstpluginforcpcategorymodel.h \
-           src/firstpluginviewforcpcategorymodel.h
-   
-SOURCES += src/firstpluginforcpcategorymodel.cpp \
-           src/firstpluginviewforcpcategorymodel.cpp
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginforcpcategorymodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#include "firstpluginforcpcategorymodel.h"
-#include "firstpluginviewforcpcategorymodel.h"
-#include <cpsettingformentryitemdataimpl.h>
-
-FirstPluginForCpCategoryModel::FirstPluginForCpCategoryModel()
-{
-}
-
-FirstPluginForCpCategoryModel::~FirstPluginForCpCategoryModel()
-{
-}
-QList<CpSettingFormItemData*> FirstPluginForCpCategoryModel::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    return QList<CpSettingFormItemData*>() 
-            << new CpSettingFormEntryItemDataImpl<FirstPluginViewForCategoryModel>(
-               itemDataHelper,
-               tr("The plugin for test"), 
-               tr("TestPlugin."));
-}
-
-CpBaseSettingView *FirstPluginForCpCategoryModel::createSettingView(const QVariant &hint) const
-{
-    return 0;
-}
-
-Q_EXPORT_PLUGIN2(FirstPluginForCpCategoryModel, FirstPluginForCpCategoryModel);
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginforcpcategorymodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-#ifndef FIRSTPLUGINFORCPCATEGORYMODEL_H
-#define FIRSTPLUGINFORCPCATEGORYMODEL_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-#include <cplauncherinterface.h>
-
-class FirstPluginForCpCategoryModel : public QObject, public CpPluginInterface, public CpLauncherInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-    Q_INTERFACES(CpLauncherInterface)
-public:
-    FirstPluginForCpCategoryModel();
-    virtual ~FirstPluginForCpCategoryModel();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-    virtual CpBaseSettingView *createSettingView(const QVariant &hint) const;
-};
-
-#endif
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginviewforcpcategorymodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#include "firstpluginviewforcpcategorymodel.h"
-
-#include <hbdataform.h>
-#include <qstringlist>
-#include <QDebug>
-#include <hbdataformmodel.h>
-#include <cpsettingformitemdata.h>
-#include <hbmessagebox.h>
-
-FirstPluginViewForCategoryModel::FirstPluginViewForCategoryModel(QGraphicsItem *parent) 
-    : CpBaseSettingView(0,parent),
-    mGroupItem(0),
-    mSliderItem(0)
-{
-    HbDataForm *form = qobject_cast<HbDataForm*>(widget());
-    if (form) {
-        HbDataFormModel *model = new HbDataFormModel;
-        
-        form->setHeading(tr("View from test plugin"));
-        mGroupItem = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, QString("Group"));
-        
-        model->appendDataFormItem(mGroupItem);
-        
-        mSliderItem = new CpSettingFormItemData(HbDataFormModelItem::SliderItem,
-                QString("New Slider"));
-        mSliderItem->setContentWidgetData("iconEnabled","FALSE");
-        form->addConnection(mSliderItem,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int)));
-        mGroupItem->appendChild(mSliderItem);      
-        
-        form->setModel(model);
-    }
-}
-FirstPluginViewForCategoryModel::~FirstPluginViewForCategoryModel()
-{
-}
-
-void FirstPluginViewForCategoryModel::testClose()
-{
-    close();
-}
-void FirstPluginViewForCategoryModel::sliderValueChanged(int value)
-{
-    //Disable the slider alert.
-	HbMessageBox::information(QString("slider value changed to:%1").arg(value));
-}
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/src/firstpluginviewforcpcategorymodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-#ifndef	FIRSTPLUGINVIEWFORCPCATEGORYMODEL_H
-#define	FIRSTPLUGINVIEWFORCPCATEGORYMODEL_H
-
-#include <cpbasesettingview.h>
-#include <QGraphicsItem>
-
-class HbDataFormModelItem;
-class CpSettingFormItemData;
-
-class FirstPluginViewForCategoryModel : public CpBaseSettingView
-{
-    Q_OBJECT
-public:
-    explicit FirstPluginViewForCategoryModel(QGraphicsItem *parent = 0);
-    virtual ~FirstPluginViewForCategoryModel();
-public:
-    void testClose();
-private slots:   
-    void sliderValueChanged(int value);
-    
-private:
-    HbDataFormModelItem   *mGroupItem;
-    CpSettingFormItemData *mSliderItem;
-};
-#endif
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/secondpluginforcpcategorymodel.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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 = secondpluginforcpcategorymodel
-
-MOC_DIR = moc
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    TARGET.CAPABILITY = ALL -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-
-CONFIG += hb plugin
-LIBS += -lcpframework
-CONFIG += symbian_test
-
-symbian: plugin { # copy qtstub and manifest
-	
-	PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-	
-	deploy.path = C:
-	pluginstub.sources = $${TARGET}.dll
-	pluginstub.path = $$PLUGIN_STUB_PATH
-	DEPLOYMENT += pluginstub
-
-    qtplugins.path = $$PLUGIN_STUB_PATH
-    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-     
-    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin  $$deploy.path$$qtplugins.path/$$basename(qtplugin)" 
-}
-
-DEPENDPATH += .
-INCLUDEPATH += .
-			 
-# Input
-HEADERS += src/secondpluginforcpcategorymodel.h \
-           src/secondpluginviewforcpcategorymodel.h
-SOURCES += src/secondpluginforcpcategorymodel.cpp \
-           src/secondpluginviewforcpcategorymodel.cpp
-
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginforcpcategorymodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#include "secondpluginforcpcategorymodel.h"
-#include "secondpluginviewforcpcategorymodel.h"
-#include <cpsettingformentryitemdataimpl.h>
-
-SecondPluginForCpCategoryModel::SecondPluginForCpCategoryModel()
-{
-}
-
-SecondPluginForCpCategoryModel::~SecondPluginForCpCategoryModel()
-{
-}
-QList<CpSettingFormItemData*> SecondPluginForCpCategoryModel::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    return QList<CpSettingFormItemData*>() 
-            << new CpSettingFormEntryItemDataImpl<SecondPluginViewForCategoryModel>(
-               itemDataHelper,
-               tr("The plugin for test"), 
-               tr("TestPlugin."));
-}
-
-CpBaseSettingView *SecondPluginForCpCategoryModel::createSettingView(const QVariant &hint) const
-{
-    return 0;
-}
-
-Q_EXPORT_PLUGIN2(SecondPluginForCpCategoryModel, SecondPluginForCpCategoryModel);
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginforcpcategorymodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-#ifndef SECONDPLUGINFORCPCATEGORYMODEL_H
-#define SECONDPLUGINFORCPCATEGORYMODEL_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-#include <cplauncherinterface.h>
-
-class SecondPluginForCpCategoryModel : public QObject, public CpPluginInterface, public CpLauncherInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-    Q_INTERFACES(CpLauncherInterface)
-public:
-    SecondPluginForCpCategoryModel();
-    virtual ~SecondPluginForCpCategoryModel();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-    virtual CpBaseSettingView *createSettingView(const QVariant &hint) const;
-};
-
-#endif
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginviewforcpcategorymodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#include "secondpluginviewforcpcategorymodel.h"
-
-#include <hbdataform.h>
-#include <qstringlist>
-#include <QDebug>
-#include <hbdataformmodel.h>
-#include <cpsettingformitemdata.h>
-#include <hbmessagebox.h>
-
-SecondPluginViewForCategoryModel::SecondPluginViewForCategoryModel(QGraphicsItem *parent) 
-    : CpBaseSettingView(0,parent),
-    mGroupItem(0),
-    mSliderItem(0)
-{
-    HbDataForm *form = qobject_cast<HbDataForm*>(widget());
-    if (form) {
-        HbDataFormModel *model = new HbDataFormModel;
-        
-        form->setHeading(tr("View from test plugin"));
-        mGroupItem = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, QString("Group"));
-        
-        model->appendDataFormItem(mGroupItem);
-        
-        mSliderItem = new CpSettingFormItemData(HbDataFormModelItem::SliderItem,
-                QString("New Slider"));
-        mSliderItem->setContentWidgetData("iconEnabled","FALSE");
-        form->addConnection(mSliderItem,SIGNAL(valueChanged(int)),this,SLOT(sliderValueChanged(int)));
-        mGroupItem->appendChild(mSliderItem);      
-        
-        form->setModel(model);
-    }
-}
-SecondPluginViewForCategoryModel::~SecondPluginViewForCategoryModel()
-{
-}
-
-void SecondPluginViewForCategoryModel::testClose()
-{
-    close();
-}
-void SecondPluginViewForCategoryModel::sliderValueChanged(int value)
-{
-    //Disable the slider alert.
-	HbMessageBox::information(QString("slider value changed to:%1").arg(value));
-}
--- a/controlpanelui/src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/src/secondpluginviewforcpcategorymodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-#ifndef	SECONDPLUGINVIEWFORCPCATEGORYMODEL_H
-#define	SECONDPLUGINVIEWFORCPCATEGORYMODEL_H
-
-#include <cpbasesettingview.h>
-#include <QGraphicsItem>
-
-class HbDataFormModelItem;
-class CpSettingFormItemData;
-
-class SecondPluginViewForCategoryModel : public CpBaseSettingView
-{
-    Q_OBJECT
-public:
-    explicit SecondPluginViewForCategoryModel(QGraphicsItem *parent = 0);
-    virtual ~SecondPluginViewForCategoryModel();
-public:
-    void testClose();
-private slots:   
-    void sliderValueChanged(int value);
-    
-private:
-    HbDataFormModelItem   *mGroupItem;
-    CpSettingFormItemData *mSliderItem;
-};
-#endif
--- a/controlpanelui/src/cpcategorymodel/tsrc/unit_common.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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: 
-#
-
-QT += testlib
-CONFIG += hb qtestlib
-
-QMAKE_EXTRA_TARGETS += test autotest
-
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
-    TARGET.CAPABILITY = ALL -TCB
-}
-
-
-
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/data/pluginfileformodelitemdata.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<childplugins>
-  <plugin displayname = "firstpluginforcpcategorymodel"  dll = "firstpluginforcpcategorymodel.dll">
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/runtest.bat	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-@rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-\epoc32\RELEASE\WINSCW\udeb\ut_categorymodelitemdata.exe -xml -o c:\ut_categorymodelitemdata.xml
-copy \epoc32\winscw\c\ut_categorymodelitemdata.xml
-del \epoc32\winscw\c\ut_categorymodelitemdata.xml
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/src/ut_categorymodelitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  
-*       test application for qt cpcategorymodel functions.
-*/
-
-#include "ut_categorymodelitemdata.h"
-#include "cpcategorysettingformitemdata.h"
-#include <QtTest/QtTest>
-#include <cpitemdatahelper.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <HbView.h>
-
-/*!
-      \class TestCpCategorySettingFormItem \n
-      \brief class name: TestCpCategorySettingFormItem \n
-      type of test case: unit test  \n
-      test cases' number totally: 3 \n
- */
-
-void TestCpCategorySettingFormItem::initTestCase()
-{
-    // initialize public test data here
-}
-
-/*!
-     Test Case Description:  \n
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-     CpCategorySettingFormItemData(HbDataFormModelItem::DataItemType type,
-                                                      const QString &label,
-                                                      const QString &configFile,
-                                                      const HbDataFormModelItem *parent = 0) \n
-     2. Case Descrition: Test the first constructor function. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-     (1) type = HbDataFormModelItem::DataItemType,
-                              label = QString("XX"), 
-                              configFile = QString("XX"), 
-                              parent = new HbDataFormModelItem() \n &nbsp;&nbsp;
-     (2) type = HbDataFormModelItem::DataItemType,
-                              label = QString(), 
-                              configFile = QString(), 
-                              parent = new HbDataFormModelItem()\n &nbsp;&nbsp;
-     4. Expected result:  \n &nbsp;&nbsp;
-     (1) no crash\n &nbsp;&nbsp;
-     (2) no crash \n
- */
-void TestCpCategorySettingFormItem::testFirstConstructor()
-{
-    HbDataFormModelItem::DataItemType aType = HbDataFormModelItem::CheckBoxItem;
-    QString aLabel = "testLabel";
-    QString configFile = "testFile";
-    HbDataFormModelItem *pParent = new HbDataFormModelItem();
-    
-    CpCategorySettingFormItemData *pCategoryItemData = new CpCategorySettingFormItemData(aType, aLabel, configFile, pParent);
-    QVERIFY(pCategoryItemData != 0 ); 
-    QVERIFY(pCategoryItemData->type()== aType);
-    delete pParent;
-    
-    pCategoryItemData = new CpCategorySettingFormItemData(aType, QString(), QString(), 0);
-    QVERIFY(pCategoryItemData != 0 ); 
-    QVERIFY(pCategoryItemData->type()== aType);
-    delete pCategoryItemData;
-}
-
-/*!
-     Test Case Description: \n 
-     1. Fucntion Name: \n &nbsp;&nbsp;
-        explicit CpCategorySettingFormItemData(const QString &configFile = QString(), const HbDataFormModelItem *parent = 0);
-     2. Case Descrition: \n &nbsp;&nbsp;
-        Test the second constructor function. \n 
-     3. Input Parameters: \n &nbsp;&nbsp;
-     (1) configFile = QString("XX"), *parent = new HbDataFormModelItem()\n &nbsp;&nbsp;
-     (2) configFile = QString(""), *parent = new HbDataFormModelItem() \n
-     4. Expected result:  \n &nbsp;&nbsp;
-         (1) no crash \n &nbsp;&nbsp;
-         (2) no crash
- */
-void TestCpCategorySettingFormItem::testSecondConstructor()
-{
-    QString configFile = "testFile";
-    HbDataFormModelItem *pParent = new HbDataFormModelItem();
-    CpCategorySettingFormItemData *pCategoryItemData = new CpCategorySettingFormItemData(configFile, pParent);
-    delete pParent;
-    
-    pCategoryItemData = new CpCategorySettingFormItemData(QString(), 0);
-    QVERIFY(pCategoryItemData != 0 ); 
-    delete pCategoryItemData;
-    pCategoryItemData = 0;
-    
-    pCategoryItemData = new CpCategorySettingFormItemData();
-    QVERIFY(pCategoryItemData != 0 ); 
-    delete pCategoryItemData;
-}
-
-/*!
-     Test Case Description: \n
-     1. Fucntion Name: void initialize(CpItemDataHelper &itemDataHelper); \n
-     2. Case Descrition: Test the initialize() function. \n
-     3. Input Parameters: (1) itemDataHelper = new itemDataHelper() \n
-     4. Expected result:  (1) no crash \n
- */
-void TestCpCategorySettingFormItem::testInit()
-{
-    CpItemDataHelper *itemDataHelper = new CpItemDataHelper();
-    QString configFile = "pluginfileformodelitemdata.cpcfg";
-    HbDataFormModelItem *pParent = new HbDataFormModelItem();
-    CpCategorySettingFormItemData *pCategoryItemData = new CpCategorySettingFormItemData(configFile, pParent);
-    QVERIFY(pCategoryItemData != 0 ); 
-    // mInitialized = FALSE
-    pCategoryItemData->initialize(*itemDataHelper);    
-    // call initialize() again in order to test another branch (mInitialized = TRUE)
-    pCategoryItemData->initialize(*itemDataHelper);
-    delete itemDataHelper;
-    delete pParent;
-}
-
-void TestCpCategorySettingFormItem::cleanupTestCase()
-{
-    // release all test data
-    QCoreApplication::processEvents();
-}
-
-QTEST_MAIN(TestCpCategorySettingFormItem)
-//QTEST_APPLESS_MAIN(TestCpCategorySettingFormItem)
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/src/ut_categorymodelitemdata.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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:  
-*       test the functions in cpcategorysettingformmodel class 
-*/
-
-#ifndef UT_CATEGORYMODELITEMDATA_H_ 
-#define UT_CATEGORYMODELITEMDATA_H_
-
-#include <QObject>
-class TestCpCategorySettingFormItem :public QObject
-{
-    Q_OBJECT
-private slots:
-    
-    void initTestCase();
-    
-    void testFirstConstructor(); // test the constructor
-    void testSecondConstructor(); // test the constructor
-    void testInit(); // test the initialize function
-
-    void cleanupTestCase();    
-};
-#endif /* UT_CATEGORYMODELITEMDATA_H_ */
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelitemdata/ut_categorymodelitemdata.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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 = ut_categorymodelitemdata
-QT += testlib
-CONFIG += hb qtestlib
-CONFIG += symbian_test
-
-QMAKE_EXTRA_TARGETS += test autotest
-
-DEPENDPATH += .
-
-INCLUDEPATH +=  ../../src \
-	              ../../../inc 
-
-LIBS += -lcpframework
-LIBS += -lcpcategorymodel
-
-# Input
-HEADERS += src/ut_categorymodelitemdata.h
-SOURCES += src/ut_categorymodelitemdata.cpp
-
-symbian*: { 
-    TARGET.CAPABILITY = CAP_APPLICATION
-    LIBS += -lfirstpluginforcpcategorymodel
-           
-    deploy.path = C:
-    testdll.sources += firstpluginforcpcategorymodel.dll
-    testdll.path = /sys/bin
-    
-    testqtplugin.sources += ../testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/qmakepluginstubs/firstpluginforcpcategorymodel.qtplugin
-    testqtplugin.path = /resource/qt/plugins/controlpanel
-    
-    testqtcfgfile.sources += data/pluginfileformodelitemdata.cpcfg
-    testqtcfgfile.path = /resource/qt/plugins/controlpanel/config                  
-    
-    DEPLOYMENT += testdll  \
-                  testqtplugin \
-                  testqtcfgfile
-}
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/data/configfiletestformodelutility.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<childplugins>
-  <plugin displayname = "" id = ""  dll = "firstpluginforcpcategorymodel.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "" id = ""  dll = "secondpluginforcpcategorymodel.dll">
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/runtest.bat	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-@rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-\epoc32\RELEASE\WINSCW\udeb\ut_categorymodelutility.exe -xml -o c:\ut_categorymodelutility.xml
-copy \epoc32\winscw\c\ut_categorymodelutility.xml
-del \epoc32\winscw\c\ut_categorymodelutility.xml
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/cptestpluginentryitem.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#include "CpTestPluginEntryItem.h"
-
-#include <cpitemdatahelper.h>
-#include <hbaction.h>
-#include <QFileInfo>
-CpTestPluginEntryItemData::CpTestPluginEntryItemData(const HbDataFormModelItem *parent /* = 0*/)
-{
-    
-}
-CpTestPluginEntryItemData::CpTestPluginEntryItemData(CpItemDataHelper &itemDataHelper,
-                                                       const QString &text /*= QString()*/,
-                                                       const QString &description /*= QString()*/,
-                                                       const HbIcon &icon /*= HbIcon()*/,
-                                                       const HbDataFormModelItem *parent /*= 0*/)
-                                                       : CpSettingFormEntryItemData(itemDataHelper,
-                                                       text,
-                                                       description,
-                                                       icon,
-                                                       parent)
-{
-}
-
-CpTestPluginEntryItemData::~CpTestPluginEntryItemData()
-{
-}
-
-void CpTestPluginEntryItemData::testOnLaunchView()
-{
-    onLaunchView();
-}
-CpBaseSettingView *CpTestPluginEntryItemData::createSettingView() const
-{
-    return 0;
-}
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/cptestpluginentryitem.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#ifndef CPTESTPLUGINENTRYITEM_H
-#define CPTESTPLUGINENTRYITEM_H
-#include <cpsettingformentryitemdata.h>
-
-class CpTestPluginEntryItemData : public CpSettingFormEntryItemData
-{
-    Q_OBJECT
-public:
-    explicit CpTestPluginEntryItemData(const HbDataFormModelItem *parent /* = 0*/); 
-    explicit CpTestPluginEntryItemData(CpItemDataHelper &itemDataHelper,
-        const QString &text = QString(),
-        const QString &description = QString(),
-        const HbIcon &icon = HbIcon(),
-        const HbDataFormModelItem *parent = 0);  
-    virtual ~CpTestPluginEntryItemData();
-public slots:
-    void testOnLaunchView();
-private:
-    virtual CpBaseSettingView *createSettingView() const;
-};
-#endif // CPTESTPLUGINENTRYITEM_H
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/ut_categorymodelutility.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +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:  
-*        test application for qt cpcategorymodel functions.
-*/
-
-#include "ut_categorymodelutility.h"
-#include "cptestpluginentryitem.h"
-#include <cpsettingformentryitemData.h>
-#include "cpcategorysettingformitemdata.h"
-#include "cpcategorysettingformmodel.h"
-#include "cppluginconfig.h"
-#include "cpcategorymodelutility.h"
-#include <QtTest/QtTest>
-//#include <cpplaceholderitemdata.h>
-#include <cppluginconfigreader.h>
-#include <cpitemdatahelper.h>
-//#include <cpbasepath.h>
-//#include <cpevent.h>
-
-
-//the class for test
-#include "cpcategorymodelutility.h"
-/*!
-      \class TestCpCategoryModelUtility \n
-      \brief class name: TestCpCategoryModelUtility \n  
-      type of test case: unit test \n
-      test cases' number totally: 7 \n
- */
-
-void TestCpCategoryModelUtility::initTestCase()
-{
-    // initialize public test data here
-    
-}
-
-/*!
-     Test Case Description: \n
-     1. Fucntion Name: \n &nbsp;&nbsp;
-         static bool setEntryItemContentIfEmpty(CpSettingFormItemData *itemData, 
-                                                const QString &displayName,
-                                                const QString &description) \n
-     2. Case Descrition: \n &nbsp;&nbsp;
-         Test the function when setting itemData as 0. \n
-     3. Input Parameters:\n &nbsp;&nbsp;
-         <1> itemData = 0, QString(), QString() \n              
-     4. Expected result:  \n &nbsp;&nbsp;
-         <1> bSetResult = false \n         
- */
-void TestCpCategoryModelUtility::testSetEntryItemReturnFalse()
-{
-    bool bSetResult = CpCategoryModelUtility::setEntryItemContentIfEmpty(0, QString(), QString());
-    QVERIFY(bSetResult == false);
-}
-
-/*!
-     Test Case Description: \n
-     1. Fucntion Name: \n &nbsp;&nbsp;
-         static bool setEntryItemContentIfEmpty(CpSettingFormItemData *itemData, 
-                                                const QString &displayName,
-                                                const QString &description) \n
-     2. Case Descrition: \n &nbsp;&nbsp;
-         setEntryItemContentIfEmpty \n
-     3. Input Parameters:\n &nbsp;&nbsp;
-         new a subclass from CpSettingFormEntryItemData firstly. \n &nbsp;&nbsp;
-         <1> itemData = new CpTestPluginEntryItemData(CpItemDataHelper, QString(XX), QString(XX),HbIcon(QString(XX))), \n &nbsp;&nbsp; 
-             newText = QString(XX), \n &nbsp;&nbsp;
-             newDes = QString(XX),\n &nbsp;&nbsp;
-             newIconName = QString(XX).\n &nbsp;&nbsp;
-         <2> itemData = new CpTestPluginEntryItemData(CpItemDataHelper, QString(),QString(), HbIcon())\n &nbsp;&nbsp;
-             newText = QString(XX),\n &nbsp;&nbsp;
-             newDes = QString(XX) \n 
-     4. Expected result:  \n &nbsp;&nbsp;
-         <1> bSetResult = true,\n &nbsp;&nbsp; 
-         <2> bSetResult = true,   \n
- */
-void TestCpCategoryModelUtility::testSetEntryItemContent()
-{
-    CpItemDataHelper *pHelper = new CpItemDataHelper();
-    QString textNotEmpty = "TextNotEmpty";
-    QString description = "descriptionNotEmpty";
-    QString iconName = "iconNameNotEmpty";
-    HbIcon icon = HbIcon(iconName);
-    CpTestPluginEntryItemData *itemData1 = new CpTestPluginEntryItemData(*pHelper, textNotEmpty, description,icon);
-    QString newText = "newSetText";
-    QString newDes = "newSetdescription";
-    bool bSetResult1 = CpCategoryModelUtility::setEntryItemContentIfEmpty(itemData1, newText, newDes);
-    QVERIFY(bSetResult1 == true);
-    // verify the text, description and icon name cannot be set when they are not empty.
-    QVERIFY( itemData1->text() == textNotEmpty );
-    QVERIFY( itemData1->description() == description );
-    QVERIFY( itemData1->iconName() == iconName );
-    delete itemData1;
-    
-    CpTestPluginEntryItemData *itemData2 = new CpTestPluginEntryItemData(*pHelper, QString(), QString(),HbIcon());
-    bool bSetResult2 = CpCategoryModelUtility::setEntryItemContentIfEmpty(itemData2, newText, newDes);
-    QVERIFY(bSetResult2 == true);
-    // verify the text, description and icon name are set as default when they are empty.
-    QVERIFY(itemData2->text() == newText);    
-    QVERIFY( itemData2->description() == newDes );
-    QString temp = itemData2->iconName();
-    QString newIconName = QLatin1String(":/icon/qgn_prop_set_default_sub.svg");
-    QVERIFY( itemData2->iconName() == newIconName );
-    delete itemData2;
-    delete pHelper;  
-}
-
-/*!
-     Test Case Description: \n &nbsp;&nbsp;
-     1. Fucntion Name: drives()\n
-     2. Case Descrition: \n &nbsp;&nbsp;
-         Verify that it can get all physical drives of the devices \n
-     3. Input Parameters: none \n
-     4. Expected result:  dirs.count() != 0 \n
- */
-void TestCpCategoryModelUtility::testDrives()
-{
-    QStringList dirs = CpCategoryModelUtility::drives(); 
-    // verify the drives "C:, D:, Z:" are contained in the string list.
-    QVERIFY( dirs.contains( "C:", Qt::CaseSensitive ) );
-    QVERIFY( dirs.contains( "D:", Qt::CaseSensitive ) );
-    QVERIFY( dirs.contains( "Z:", Qt::CaseSensitive ) );
-}
-
-/*!
-     Test Case Description:  \n
-     1. Fucntion Name: configFileDirectories() \n
-     2. Case Descrition:  \n
-         Verify that it can get all config directories of the device \n
-     3. Input Parameters: none \n
-     4. Expected result:  dirs.count() != 0 \n
- */
-void TestCpCategoryModelUtility::testPluginDirectories()
-{
-    QStringList dirs = CpCategoryModelUtility::pluginDirectories();
-    qDebug() << dirs;
-    // Verify the right plugin directory path is returned.
-    QVERIFY( dirs.contains( QString( "C:/resource/qt/plugins/controlpanel" ) + QDir::separator(), Qt::CaseSensitive ) );
-}
-
-/*!
-     Test Case Description:  \n
-     1. Fucntion Name: configFileDirectories() \n
-     2. Case Descrition: Verify that it can get all config directories of the device. \n
-     3. Input Parameters: none \n
-     4. Expected result:  dirs.count() != 0 \n
- */
-void TestCpCategoryModelUtility::testConfigFileDirectories()
-{
-    QStringList dirs = CpCategoryModelUtility::configFileDirectories();
-    qDebug() << dirs;
-    // Verify the right config file directory path is returned.
-    QVERIFY( dirs.contains( QString( "C:/resource/qt/plugins/controlpanel/config" ) + QDir::separator(), Qt::CaseSensitive ) );
-}
-
-/*!
-     Test Case Description:  \n &nbsp;&nbsp;
-     1. Fucntion Name: buildConfigPluginItems()\n &nbsp;&nbsp;
-     2. Case Descrition: Verify that it can load the plugins via the plugin config file and create item data of the corresponding plugin succesfully.\n          
-     3. Input Parameters:\n &nbsp;&nbsp;
-        <1> parent = HbDataFormModelItem(), configFile = QString(XX), pHelper = new CpItemDataHelper(), startPosition = -10\n &nbsp;&nbsp;
-        <2> parent = HbDataFormModelItem(), configFile = QString(), pHelper = new CpItemDataHelper(), startPosition = 1\n
-
-     4. Expected result:  \n &nbsp;&nbsp;
-        <1> parent->childCount() == 2 \n 
-        <2> parent->childCount() == 2 \n 
- */
-void TestCpCategoryModelUtility::testBuildConfigPluginItems()
-{
-//    HbDataFormModelItem *parent = new HbDataFormModelItem();
-//    QString configFile = "configfiletestformodelutility.cpcfg";
-//    int startPosition = 1;
-//    
-//    CpItemDataHelper helper;
-//    CpCategoryModelUtility::buildConfigPluginItems(parent, configFile, helper, startPosition);
-//    int childCount = parent->childCount();
-//    // the configfiletestformodelutility.cpcfg contains two control panel plugins.
-//    QVERIFY( parent->childCount() == 2 );
-//    
-//    CpCategoryModelUtility::buildConfigPluginItems(parent, configFile, helper, -10);
-//    QVERIFY( parent->childCount() == 2 );
-//
-//    delete parent;
-}
-
-/*!
-     Test Case Description: \n
-     1. Fucntion Name: CreateCpPluginItemData() \n
-     2. Case Descrition: \n
-         
-     3. Input Parameters: \n
-         
-     4. Expected result:  \n
-         
- */
-void TestCpCategoryModelUtility::testCreateCpPluginItemData()
-{
-    // 
-}
-
-/*!
-    Descrition of what you will do in this function
- */
-void TestCpCategoryModelUtility::cleanupTestCase()
-{
-    // release all test data
-    QCoreApplication::processEvents();
-}
-
-QTEST_MAIN(TestCpCategoryModelUtility)
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/src/ut_categorymodelutility.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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:  
-*       test the functions in cpcategorysettingformmodel class 
-*/
-
-#ifndef UT_CATEGORYMODELUTILITY_H_ 
-#define UT_CATEGORYMODELUTILITY_H_
-
-#include <QObject>
-
-class TestCpCategoryModelUtility :public QObject
-{
-    Q_OBJECT
-private slots:
-    
-    void initTestCase();
-
-    void testSetEntryItemReturnFalse(); // test the setEntryItemContentIfEmpty() function can return false
-    void testSetEntryItemContent(); // 
-    void testDrives();  // test the drives() function
-    void testPluginDirectories();  // test the pluginDirectories() function
-    void testConfigFileDirectories(); // test the configFileDirectories() function
-    void testBuildConfigPluginItems(); // test the buildConfigPluginItems() function
-    void testCreateCpPluginItemData();       
-    void cleanupTestCase();    
-};
-#endif /* UT_CATEGORYMODELUTILITY_H_ */
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_categorymodelutility/ut_categorymodelutility.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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 = ut_categorymodelutility
-
-QT += testlib
-CONFIG += hb qtestlib
-CONFIG += symbian_test
-
-DEPENDPATH += .
-
-QMAKE_EXTRA_TARGETS += test autotest
-
-include ( ../../../common.pri )
-include (../unit_common.pri)
-include(../../../inc/inc.pri)
-include(../../cpcategorymodel.pri)
-
-LIBS += -lcpframework -lcplogger
-
-CONFIG += Hb xml
-DEFINES += BUILD_CPCATEGORY_GLOBAL
-
-symbian*: { 
-    TARGET.CAPABILITY = CAP_APPLICATION
-    LIBS += -lfirstpluginforcpcategorymodel \
-            -lsecondpluginforcpcategorymodel
-           
-    deploy.path = C:
-    testdlls.sources += firstpluginforcpcategorymodel.dll \
-                       secondpluginforcpcategorymodel.dll
-    testdlls.path = /sys/bin
-    
-    testqtplugins.sources += ../testpluginsforcpcategorymodel/firstpluginforcpcategorymodel/qmakepluginstubs/firstpluginforcpcategorymodel.qtplugin \
-                             ../testpluginsforcpcategorymodel/secondpluginforcpcategorymodel/qmakepluginstubs/secondpluginforcpcategorymodel.qtplugin
-    testqtplugins.path = /resource/qt/plugins/controlpanel
-    
-    testqtcfgfile.sources += data/configfiletestformodelutility.cpcfg
-    testqtcfgfile.path = /resource/qt/plugins/controlpanel/config                  
-    
-    DEPLOYMENT += testdlls  \
-                  testqtplugins \
-                  testqtcfgfile
-}
-HEADERS += src/*.h
-SOURCES += src/*.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/data/pluginfileforformmodel.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<childplugins>
-  <plugin displayname = "firstpluginforcpcategorymodel"  dll = "firstpluginforcpcategorymodel.dll">
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/runtest.bat	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-@rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-\epoc32\RELEASE\WINSCW\udeb\ut_cpcategorysettingformmodel.exe -xml -o c:\ut_cpcategorysettingformmodel.xml
-copy \epoc32\winscw\c\ut_cpcategorysettingformmodel.xml
-del \epoc32\winscw\c\ut_cpcategorysettingformmodel.xml
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/src/ut_cpcategorysettingformmodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +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:  
-*       test application for qt cpcategorymodel functions.
-*/
-
-#include "ut_cpcategorysettingformmodel.h"
-
-#include <QtTest/QtTest>
-#include <cpitemdatahelper.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <HbView.h>
-//the class for test
-#include "cpcategorysettingformmodel.h"
-/*!
-    \class TestCpCategorySettingFormModel 
-    \brief describe the test case's goal, like: \n
-      class name: cpcategorysettingformmodel \n
-      class's description \n
-      type of test case: unit test \n
-      test cases' number totally: 2\n
- */
-
-void TestCpCategorySettingFormModel::initTestCase()
-{
-    // initialize public test data here
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  explicit CpCategorySettingFormModel(const QString &configFile);\n
-     2. Case Descrition: test the constructor function. \n
-     3. Input Parameters: \n &nbsp;&nbsp;
-      (1) configFile = QString("pluginfileforformmodel.cpcfg")\n &nbsp;&nbsp;
-      (2) configFile = QString()\n
-      (3) conFile = QString("invaildConfigFile")\n
-4. Expected result:  \n &nbsp;&nbsp;
-    (1) no crash\n &nbsp;&nbsp;
-    (2) no crash\n &nbsp;&nbsp;
-    (3) no crash \n
- */
-void TestCpCategorySettingFormModel::testConstructor()
-{
-    CpCategorySettingFormModel *testCategoryModel = new CpCategorySettingFormModel(QString("pluginfileforformmodel.cpcfg"));
-    QVERIFY(testCategoryModel!=0);
-    delete testCategoryModel;
-    testCategoryModel = 0;
-    testCategoryModel = new CpCategorySettingFormModel(QString());
-    QVERIFY(testCategoryModel!=0);
-    delete testCategoryModel;
-    testCategoryModel = 0;
-    testCategoryModel = new CpCategorySettingFormModel(QString("invaildConfigFile"));
-    QVERIFY(testCategoryModel!=0);
-    delete testCategoryModel;
-    testCategoryModel = 0;
-}
-
-/*!
-     Test Case Description: \n
-     1. Fucntion Name:  virtual void initialize(CpItemDataHelper &itemDataHelper)\n
-     2. Case Descrition: Verify that it can initialize the new categoryformmodel. \n
-     3. Input Parameters: (1) itemDataHelper = CpItemDataHelper\n
-     4. Expected result:  (1) no crash\n
- */
-void TestCpCategorySettingFormModel::testInit()
-{
-    CpCategorySettingFormModel *testCategoryModel = new CpCategorySettingFormModel(QString("pluginfileforformmodel.cpcfg"));
-    CpItemDataHelper *pHelper = new CpItemDataHelper();
-    testCategoryModel->initialize(*pHelper);   
-    // set mInitialized = TRUE
-    testCategoryModel->initialize(*pHelper);    
-    delete testCategoryModel;
-    testCategoryModel = 0;
-    delete pHelper;
-    pHelper = 0;
-}
-
-/*!
-    Release all the test data.
- */
-void TestCpCategorySettingFormModel::cleanupTestCase()
-{
-    // release all test data
-    QCoreApplication::processEvents();
-}
-
-QTEST_MAIN(TestCpCategorySettingFormModel)
-//QTEST_APPLESS_MAIN(TestCpCategorySettingFormModel)
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/src/ut_cpcategorysettingformmodel.h	Tue Aug 31 15:15:28 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:  
-*       test the functions in cpcategorysettingformmodel class 
-*/
-
-#ifndef UT_CPCATEGORYSETTINGFORMMODEL_H_
-#define UT_CPCATEGORYSETTINGFORMMODEL_H_
-
-#include <QObject>
-class TestCpCategorySettingFormModel :public QObject
-{
-    Q_OBJECT
-private slots:
-    
-    void initTestCase();
-    
-    void testConstructor(); // test the constructor
-    void testInit(); // test the initialize() funtion
-        
-    void cleanupTestCase();    
-};
-#endif /* UT_CPCATEGORYSETTINGFORMMODEL_H_ */
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel/ut_cpcategorysettingformmodel.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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 = ut_cpcategorysettingformmodel
-QT += testlib
-CONFIG += hb qtestlib
-CONFIG += symbian_test
-
-
-QMAKE_EXTRA_TARGETS += test autotest
-
-DEPENDPATH += .
-
-INCLUDEPATH +=  ../../src \
-	        ../../../inc 
-
-LIBS += -lcpframework
-LIBS += -lcpcategorymodel
-
-# Input
-HEADERS += src/ut_cpcategorysettingformmodel.h
-SOURCES += src/ut_cpcategorysettingformmodel.cpp
-
-symbian*: { 
-    TARGET.CAPABILITY = CAP_APPLICATION
-    LIBS += -lfirstpluginforcpcategorymodel
-           
-    deploy.path = C:
-    testdll.sources += firstpluginforcpcategorymodel.dll
-    testdll.path = /sys/bin
-    
-    testqtplugin.sources += data/firstpluginforcpcategorymodel.qtplugin
-    testqtplugin.path = /resource/qt/plugins/controlpanel
-    
-    testqtcfgfile.sources += data/pluginfileforformmodel.cpcfg
-    testqtcfgfile.path = /resource/qt/plugins/controlpanel/config                  
-    
-    DEPLOYMENT += testdll  \
-                  testqtplugin \
-                  testqtcfgfile
-}
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithemptychildelement.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithoutattrs.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<childplugins>
-  <plugin>
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithwrongchildtag.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<wrongchildplugins>
-  <plugin displayname = "Ring tone" id = "0X20028738"  dll = "cpringtoneplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Theme" id = "0X2002C2F3"  dll = "cpthemeplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Profile" id = "0X20028739"  dll = "cpprofileactivator.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Key touch screen" id = "0X20025FDE"  dll = "cpkeytouchfdbkplugin.dll">
-    <desc></desc>
-  </plugin>
-</childplugins
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithwrongdesctag.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<childplugins>
-  <plugin displayname = "Ring tone" id = "0X20028738"  dll = "cpringtoneplugin.dll">
-
-  </plugin>
-   <plugin displayname = "Profile" id = "0X20028739"  dll = "cpprofileactivator.dll">
-    <wrongdesc></wrongdesc>
-  </plugin>
-    <plugin displayname = "Key touch screen" id = "0X20025FDE"  dll = "cpkeytouchfdbkplugin.dll">
-    <desc></wrongdesc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfilewithwrongplugintag.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<childplugins>
-  <wrongplugintag displayname = "Ring tone" id = "0X20028738"  dll = "cpringtoneplugin.dll">
-    <desc></desc>
-  </plugin>
-    <plugin displayname = "Theme" id = "0X2002C2F3"  dll = "cpthemeplugin.dll">
-    <desc></desc>
-  </wrong plugin
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/data/pluginfortest.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<childplugins>
-  <plugin displayname = "Ring tone" id = "0X20028738"  dll = "cpringtoneplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Theme" id = "0X2002C2F3"  dll = "cpthemeplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Profile" id = "0X20028739"  dll = "cpprofileactivator.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Key touch screen" id = "0X20025FDE"  dll = "cpkeytouchfdbkplugin.dll">
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/runtest.bat	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-@rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-\epoc32\RELEASE\WINSCW\udeb\ut_cppluginconfigreader.exe -xml -o c:\ut_cppluginconfigreader.xml
-copy \epoc32\winscw\c\ut_cppluginconfigreader.xml
-del \epoc32\winscw\c\ut_cppluginconfigreader.xml
\ No newline at end of file
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/src/ut_cppluginconfigreader.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +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:  
-*       test the functions in cppluginconfigreader class 
-*/
-
-#include "ut_cppluginconfigreader.h"
-#include <QtTest/QtTest>
-#include <cppluginconfigreader.h>
-#include <cpbasepath.h>
-#include <qdir.h>
-
-/*!
-      class name: cppluginconfigreader
-      class's description: 
-      type of test case: unit test 
-      test cases' number totally: \n
-*/
-
-/*!
-     Description of test data \n
- */
-void TestCppluginConfigReader::initTestCase()
-{
-    // initialize public test data here
-}
-
-void TestCppluginConfigReader::testConstructor()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "mainview.cpcfg");
-    QVERIFY(pReader!=0);
-    delete pReader;    
-}
-
-/*!
-     Test Case Description: \n
-     1. Function Name: \n
-            QList<CpPluginConfig> readCpPluginConfigs();\n
-     2. Case Descrition: \n
-         Verify that the valid config file can be read correctly. \n
-     3. Input Parameters:\n
-         <1> valid configfiles: pluginfortest.cpcfg \n           
-     4. Expected result:   \n
-         <1> return the correct plugin number \n        
- */
-void TestCppluginConfigReader::testReadValidConfigFile()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfortest.cpcfg");    
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY(mCorrectConfig.count() == 4 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description:  \n
-     1. Function Name:  \n
-            QList<CpPluginConfig> readCpPluginConfigs(); \n
-     2. Case Descrition:  \n
-         Verify the empty config file path can be dealed without any crash. \n
-     3. Input Parameters: \n
-         <1> empty config plugin path \n   
-         <2> config plugin path = null   \n     
-     4. Expected result:   \n
-         <1> no crash   \n
-         <2> no crash \n
- */
-void TestCppluginConfigReader::testReadEmptyConfigFilePath()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader("");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY(mCorrectConfig.count() == 0 );
-    delete pReader;
-    pReader = 0;
-    pReader = new CpPluginConfigReader(0);
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY(mCorrectConfig.count() == 0 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description: \n 
-     1. Function Name:  \n
-            QList<CpPluginConfig> readCpPluginConfigs(); \n
-     2. Case Descrition:  \n
-         Verify that the empty config file could be read. \n
-     3. Input Parameters: \n
-         <1> empty config file "emptypluginfortest.cpcfg" \n                
-     4. Expected result:   \n
-         <1> no crash   \n
- */
-void TestCppluginConfigReader::testReadEmptyConfigFile()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "emptypluginfortest.cpcfg");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY(mCorrectConfig.count() == 0 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description: \n 
-     1. Function Name:  \n
-            void readCpPluginConfigs(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList) \n  
-     2. Case Descrition:  \n
-         Verify that the function can work without crash when reading the plugin files with wrong tag. \n
-     3. Input Parameters: \n
-         <1> config file with wrong child plugin tag: "pluginfilewithwrongchildtag.cpcfg" \n                
-     4. Expected result:   \n
-         <1> no crash   \n
- */
-void TestCppluginConfigReader::testReaderWithWrongChildPluginTag()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithwrongchildtag.cpcfg");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY( mCorrectConfig.count() == 0 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description: \n 
-     1. Function Name:  \n
-            void readChildPluginsElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList) \n
-     2. Case Descrition:  \n
-         Verify that the function can work without crash when reading the plugin files with empty child plugin element. \n
-     3. Input Parameters: \n
-         <1> config file with empty child plugin element: "pluginfilewithemptychildelement.cpcfg" \n                
-     4. Expected result:   \n
-         <1> no crash   \n
- */
-void TestCppluginConfigReader::testReaderWithEmptyChildElement()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithemptychildelement.cpcfg");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY( mCorrectConfig.count() == 0 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description: \n 
-     1. Function Name:  \n
-            void readChildPluginsElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList) \n
-     2. Case Descrition:  \n
-         Verify that the function can work without crash when reading plugin files with wrong tags. \n
-     3. Input Parameters: \n
-         <1> config file with wrong plugin tag: "pluginfilewithwrongplugintag.cpcfg" \n                
-     4. Expected result:   \n
-         <1> no crash   \n
- */
-void TestCppluginConfigReader::testReaderWithWrongPluginTag()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithwrongplugintag.cpcfg");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    QVERIFY( mCorrectConfig.count() == 0 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description: \n 
-     1. Function Name:  \n
-          void readPluginElement(QXmlStreamReader &xmlReader,QList<CpPluginConfig> &cpPluginConfigList); \n
-     2. Case Descrition:  \n
-         Verify that the function can work without crash when reading the plugin files having no attrs. \n
-     3. Input Parameters: \n
-         <1> plugin element has no plugin attrs: "pluginfilewithoutattrs.cpcfg" \n  
-         <2> plugin element has wrong plugin attrs. \n              
-     4. Expected result:   \n
-         <1> no crash   \n
-         <2> no crash \n
- */
-void TestCppluginConfigReader::testReaderWithoutAttrs()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithoutattrs.cpcfg");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();    
-    QVERIFY( mCorrectConfig.count() == 1 );
-    delete pReader;
-    pReader = 0;
-}
-/*!
-     Test Case Description: \n 
-     1. Function Name:  \n
-          void readDescElement(QXmlStreamReader &xmlReader,CpPluginConfig &cpPluginConfig) \n
-     2. Case Descrition:  \n
-         Verify that the function can work without crash when reading the plugin files with wrong tag. \n
-     3. Input Parameters: \n
-         <1> plugin element has no desc tag: "pluginfilewithwrongdesctag.cpcfg" \n  
-         <2> plugin element has wrong desc tag \n              
-     4. Expected result:   \n
-         <1> no crash   \n
-         <2> no crash \n
- */
-void TestCppluginConfigReader::testReaderWithWrongDescTag()
-{
-    CpPluginConfigReader *  pReader = new CpPluginConfigReader(CP_PLUGIN_CONFIG_PATH + QDir::separator() + "pluginfilewithwrongdesctag.cpcfg");
-    QVERIFY(pReader!=0);
-    mCorrectConfig = pReader->readCpPluginConfigs();
-    delete pReader;
-    pReader = 0;
-}
-/*!
-    Descrition of what you will do in this function
- */
-void TestCppluginConfigReader::cleanupTestCase()
-{
-    // release all test data
-    QCoreApplication::processEvents();
-}
-
-QTEST_APPLESS_MAIN(TestCppluginConfigReader)
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/src/ut_cppluginconfigreader.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +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:  
-*       test the functions in cppluginconfigreader class 
-*/
-
-#ifndef UT_CPPLUGINCONFIGREADER_H
-#define UT_CPPLUGINCONFIGREADER_H
-
-
-#include "cppluginconfig.h"
-
-#include <QObject>
-#include <QList>
-
-class TestCppluginConfigReader :public QObject
-{
-    Q_OBJECT
-private slots:
-    
-    void initTestCase();
-    void testConstructor();
-    void testReadValidConfigFile(); // test with a valid config file.
-    void testReadEmptyConfigFilePath(); // test testReadEmptyConfigFilePath() with empty path.
-    void testReadEmptyConfigFile(); // test with empty config file.
-    void testReaderWithWrongChildPluginTag(); // test with wrong child plugin tags.
-    void testReaderWithEmptyChildElement(); // test with empty child plugin element.
-    void testReaderWithWrongPluginTag(); // test with wrong plugin tag.
-    void testReaderWithoutAttrs(); // test without any plugin attrs.
-    void testReaderWithWrongDescTag(); // test with wrong desc tag.
-    void cleanupTestCase();    
-private:
-    QList<CpPluginConfig> mCorrectConfig;
-};
-#endif /* UT_CPPLUGINCONFIGREADER_H */
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/ut_cppluginconfigreader.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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/*.h
-SOURCES += src/*.cpp
-
-include(../../../inc/inc.pri)
-include(../../cpcategorymodel.pri)
--- a/controlpanelui/src/cpcategorymodel/tsrc/ut_cppluginconfigreader/ut_cppluginconfigreader.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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: 
-#
-
-QT += testlib
-CONFIG += hb qtestlib
-CONFIG += symbian_test
-
-TEMPLATE = app
-TARGET = ut_cppluginconfigreader
-QMAKE_EXTRA_TARGETS += test autotest
-
-DEPENDPATH += .
-INCLUDEPATH += . ../../src\
-	        ../../../inc 
-
-include (../unit_common.pri)
-include(../../../inc/inc.pri)
-include(../../cpcategorymodel.pri)
-
-LIBS += -lcpframework
-LIBS += -lcpcategorymodel
-DEFINES += BUILD_CPCATEGORY_GLOBAL
-
-symbian { 
-    
-    deploy.path = C:
-    configfiles.sources += data/pluginfortest.cpcfg \
-    					   data/emptypluginfortest.cpcfg \
-    					   data/pluginfilewithwrongchildtag.cpcfg \
-    					   data/pluginfilewithemptychildelement.cpcfg \
-    					   data/pluginfilewithwrongplugintag.cpcfg \
-    					   data/pluginfilewithoutattrs.cpcfg \
-    					   data/pluginfilewithwrongdesctag.cpcfg
-    configfiles.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += configfiles
-    
-    # This is for new exporting system coming in garden
-    for(configfile, configfiles.sources):BLD_INF_RULES.prj_exports += "./$$configfile $$deploy.path$$configfiles.path/$$basename(configfile)"
-}
-
-HEADERS += src/*.h
-SOURCES += src/*.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/communicationplugin/communicationplugin.pri	Tue Aug 31 15:15:28 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: cpcommunicationplugin source files
-#
-
-# Input
-HEADERS += src/cpcommunicationplugin.h  \
-		   src/cpcommunicationgroupitemdata.h
-		   
-SOURCES += src/cpcommunicationplugin.cpp  \
-		   src/cpcommunicationgroupitemdata.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/communicationplugin/communicationplugin.pro	Tue Aug 31 15:15:28 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 = lib
-TARGET = cpcommunicationplugin
-
-CONFIG += hb plugin
-
-include ( ../cpplugincommon.pri )
-include ( communicationplugin.pri )
-
-symbian { 
-    TARGET.UID3 = 0x20025FDF
-    LIBS +=  -lxqsettingsmanager
-}
-
-symbian { 
-    deploy.path = C:
-    headers.sources = data/cpcommunicationplugin.cpcfg
-    headers.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += exportheaders
-    
-    # This is for new exporting system coming in garden
-    for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$deploy.path$$headers.path/$$basename(header)"
-}
--- a/controlpanelui/src/cpplugins/communicationplugin/data/cpcommunicationplugin.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-
-
-<childplugins>
-  <plugin displayname = "Mobile Network" id = "0X20029F24"  dll = "cpnetworkplugin.dll">
-    <desc>Operator, status</desc>
-  </plugin>
-  <plugin displayname = "WLAN" id = "0x2002BCE0"  dll = "cpwlanentryplugin.dll">
-    <desc>WLAN status</desc>
-  </plugin>
-  <plugin displayname = "Bluetooth" id = "0x2002434E"  dll = "btcpplugin.dll">
-    <desc>Status text</desc>
-  </plugin>
-  <plugin displayname = "Telephony" id = "0X20029F23"  dll = "cptelephonyplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Network settings" id = "0X2002BC8F"  dll = "cpipsettingsplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "NFC" id = "0X20027040"  dll = "nfccpplugin.dll">
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationgroupitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +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 "cpcommunicationgroupitemdata.h"
-#include <QStringList>
-#include <QtAlgorithms>
-#include <CoreApplicationUIsSDKCRKeys.h>
-#include <xqsettingsmanager.h>
-#include <cpitemdatahelper.h>
-
-CpCommunicationGroupItemData::CpCommunicationGroupItemData(const QString &configFile,
-                                                           const HbDataFormModelItem *parent):
-                                                           CpCategorySettingFormItemData(configFile,parent),
-                                                           mAirplaneModeItem(0),
-                                                           mSettingManager(new XQSettingsManager())
-{
-
-}
-
-CpCommunicationGroupItemData::CpCommunicationGroupItemData(HbDataFormModelItem::DataItemType type,
-                                                           const QString &label,
-                                                           const QString &configFile,
-                                                           const HbDataFormModelItem *parent):
-                                                           CpCategorySettingFormItemData(type, label, configFile, parent),
-                                                           mAirplaneModeItem(0),
-                                                           mSettingManager(new XQSettingsManager())
-{
-
-}
-
-CpCommunicationGroupItemData::~CpCommunicationGroupItemData()
-{
-    delete mSettingManager;
-}
-
-void CpCommunicationGroupItemData::beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper)
-{
-    mAirplaneModeItem = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem);    
-    mAirplaneModeItem->setContentWidgetData("text", hbTrId("txt_cp_button_offline"));
-	mAirplaneModeItem->setContentWidgetData("additionalText", hbTrId("txt_cp_button_offline"));
-    mAirplaneModeItem->setDescription(hbTrId("txt_cp_info_in_offline_mode_all_wireless_communica"));
-    mAirplaneModeItem->setContentWidgetData("objectName", "airplaneModeToggle");
-    mAirplaneModeItem->setContentWidgetData("checkable", true);
-    itemDataHelper.addConnection(mAirplaneModeItem,
-            SIGNAL(toggled(bool)),
-            this,
-            SLOT(toggleAirplaneMode(bool)));
-    
-    XQCentralRepositorySettingsKey key(KCRUidCoreApplicationUIs.iUid,KCoreAppUIsNetworkConnectionAllowed);
-    QVariant airplaneMode = mSettingManager->readItemValue(key,XQSettingsManager::TypeInt);
-    settingValueChanged(key,airplaneMode);
-    
-    mSettingManager->startMonitoring(key,XQSettingsManager::TypeInt);
-    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
-            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
-    
-    this->appendChild(mAirplaneModeItem);
-    
-}
-
-void CpCommunicationGroupItemData::toggleAirplaneMode(bool toggled)
-{    
-    XQCentralRepositorySettingsKey key(KCRUidCoreApplicationUIs.iUid,KCoreAppUIsNetworkConnectionAllowed);
-    //toggled = true means ECoreAppUIsNetworkConnectionNotAllowed
-    //toggled = false means ECoreAppUIsNetworkConnectionAllowed
-    QVariant airplaneMode(static_cast<int>(!toggled));
-    mSettingManager->writeItemValue(key, airplaneMode);
-}
-
-void CpCommunicationGroupItemData::settingValueChanged(const XQSettingsKey &key, const QVariant &value)
-{
-    if (mAirplaneModeItem 
-        && key.uid() == KCRUidCoreApplicationUIs.iUid 
-        && key.key() == KCoreAppUIsNetworkConnectionAllowed 
-        && value.isValid()) {          
-        //value.toBool() returns 
-        //true(1) if value equals ECoreAppUIsNetworkConnectionAllowed, that means offline mode off.
-        //false(0) if value equals ECoreAppUIsNetworkConnectionNotAllowed, that means offline mode on.
-        mAirplaneModeItem->setContentWidgetData("checked", !value.toBool());
-    }
-}
-
-//End of File
--- a/controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationgroupitemdata.h	Tue Aug 31 15:15:28 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:  
- *
- */
-#ifndef CPCOMMUNICATIONGROUPITEMDATA_H
-#define CPCOMMUNICATIONGROUPITEMDATA_H
-
-#include <cpcategorysettingformitemdata.h>
-class CpItemDataHelper;
-class XQSettingsManager;
-class XQSettingsKey;
-
-class CpCommunicationGroupItemData: public CpCategorySettingFormItemData
-{
-    Q_OBJECT
-public:
-    explicit CpCommunicationGroupItemData(const QString &configFile = QString(),
-        const HbDataFormModelItem *parent = 0);
-
-    CpCommunicationGroupItemData(HbDataFormModelItem::DataItemType type,
-        const QString &label,
-        const QString &configFile = QString(),
-        const HbDataFormModelItem *parent = 0);
-
-    ~CpCommunicationGroupItemData();
-private slots:
-    void toggleAirplaneMode(bool toggled);
-    void settingValueChanged(const XQSettingsKey &key, const QVariant &value);
-private:
-    virtual void beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-private:
-     HbDataFormModelItem *mAirplaneModeItem;  
-     XQSettingsManager *mSettingManager;
-};
-#endif /* CPCOMMUNICATIONGROUPITEMDATA_H */
--- a/controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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 "cpcommunicationplugin.h"
-#include "cpcommunicationgroupitemdata.h"
-#include <cpitemdatahelper.h>
-
-CpCommunicationPlugin::CpCommunicationPlugin()
-{
-}
-
-CpCommunicationPlugin::~CpCommunicationPlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpCommunicationPlugin::createSettingFormItemData(CpItemDataHelper &/*itemDataHelper*/) const
-{
-    CpCategorySettingFormItemData *itemData = 
-            new CpCommunicationGroupItemData(
-            HbDataFormModelItem::GroupItem,
-            hbTrId("txt_cp_subhead_connectivity"),
-            QString("cpcommunicationplugin.cpcfg") );
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cpcommunicationplugin, CpCommunicationPlugin);
--- a/controlpanelui/src/cpplugins/communicationplugin/src/cpcommunicationplugin.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPCOMMUNICATIONPLUGIN_H
-#define CPCOMMUNICATIONPLUGIN_H
-
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpCommunicationPlugin 
-        : public QObject, public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpCommunicationPlugin();
-    virtual ~CpCommunicationPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-
-#endif /* CPCOMMUNICATIONPLUGIN_H */
--- a/controlpanelui/src/cpplugins/cpplugincommon.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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:  controlpanel plugin project qmake common settings
-#
-include (../common.pri)
-
-LIBS += -lcplogger -lcpframework -lcpcategorymodel
-
-symbian: plugin { # copy qtstub and manifest
-	
-		PLUGIN_STUB_PATH = /resource/qt/plugins/controlpanel
-		
-		deploy.path = C:
-		pluginstub.sources = $${TARGET}.dll
-		pluginstub.path = $$PLUGIN_STUB_PATH
-		DEPLOYMENT += pluginstub
-
-    qtplugins.path = $$PLUGIN_STUB_PATH
-    qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin
-     
-    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin  $$deploy.path$$qtplugins.path/$$basename(qtplugin)" 
-}
--- a/controlpanelui/src/cpplugins/cpplugins.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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 = subdirs
-SUBDIRS = communicationplugin \
-  			  deviceplugin \
-  			  privacyplugin \
-  			  personalizationplugin \
-			  profileactivatorplugin \
-			  volumeplugin \
-			  ringtoneplugin \
-			  keytouchfdbkplugin 
-					#displayplugin \
-					#applicationsettingsplugin \
-					#accountsplugin
- 
-CONFIG += ordered
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/deviceplugin/data/cpdeviceplugin.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-
-<childplugins>
-  <plugin displayname = "Time &amp; data" id = "0X102818E9"  dll = "datetimesettingsplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Language and region" id = "0X2002873C"  dll = "cplanguageplugin_na.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Text and keyboard" id = "0X20025FDD"  dll = "cpinputsettingplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Positioning" id = "0x2002C318"  dll = "possettingsplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Power management" id = "0x2000E51E" dll = "cppsmplugin.dll">
-    <desc>power save mode </desc>
-  </plugin> 
-  <plugin displayname = "Device updates" id = "0X2002DD04"  dll = "deviceupdatesplugin.dll">
-    <desc></desc>
-  </plugin> 
-  <plugin displayname = "Reset" id = "0x10275117"  dll = "cprfsplugin.dll">
-    <desc></desc>
-  </plugin> 
-  <plugin displayname = "About" id = "0X2002873B"  dll = "cpaboutplugin_na.dll">
-    <desc></desc>
-  </plugin> 
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/deviceplugin/deviceplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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: cpdeviceplugin source files
-#
-
-
-# Input
-HEADERS += src/cpdeviceplugin.h 
-SOURCES += src/cpdeviceplugin.cpp 
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/deviceplugin/deviceplugin.pro	Tue Aug 31 15:15:28 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 = lib
-TARGET = cpdeviceplugin
-
-CONFIG += hb plugin
-
-
-include ( ../cpplugincommon.pri )
-include ( deviceplugin.pri )
-
-symbian { 
-    TARGET.UID3 = 0X20025FE7
-}
-
-symbian { 
-    deploy.path = C:
-    headers.sources = data/cpdeviceplugin.cpcfg
-    headers.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += exportheaders
-    
-    # This is for new exporting system coming in garden
-    for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$deploy.path$$headers.path/$$basename(header)"
-}
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/deviceplugin/src/cpdeviceplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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 "cpdeviceplugin.h"
-#include "cpcategorysettingformitemdata.h"
-#include <cpitemdatahelper.h>
-
-CpDevicePlugin::CpDevicePlugin()
-{
-}
-
-CpDevicePlugin::~CpDevicePlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpDevicePlugin::createSettingFormItemData(CpItemDataHelper &/*itemDataHelper*/) const
-{
-    CpCategorySettingFormItemData *itemData = 
-            new CpCategorySettingFormItemData(
-            HbDataFormModelItem::GroupItem,
-            hbTrId("txt_cp_subhead_device"),
-            QString("cpdeviceplugin.cpcfg") );
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cpdeviceplugin, CpDevicePlugin);
--- a/controlpanelui/src/cpplugins/deviceplugin/src/cpdeviceplugin.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPDEVICEPLUGIN_H
-#define CPDEVICEPLUGIN_H
-
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpDevicePlugin  : public QObject,
-	                    public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpDevicePlugin();
-    virtual ~CpDevicePlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-
-#endif /* CPDEVICEPLUGIN_H */
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/keytouchfdbkplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +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: keytouchfeedback plugin source files
-#
-
-# Input
-HEADERS += src/cpkeyscreenplugin.h \
-           src/cpkeyscreenview.h \
-           src/cpkeyscreenmodel.h \
-           src/cpkeyscreenconstants.h
-
-SOURCES += src/cpkeyscreenplugin.cpp \
-           src/cpkeyscreenview.cpp \
-           src/cpkeyscreenmodel.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/keytouchfdbkplugin.pro	Tue Aug 31 15:15:28 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 = lib
-TARGET = cpkeytouchfdbkplugin
-
-CONFIG += hb plugin
-
-LIBS += -lcpprofilewrapper
-
-include ( ../cpplugincommon.pri )
-include ( keytouchfdbkplugin.pri )
-
-symbian { 
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
-	                 $$MOC_DIR
-    HEADERS += src/cpkeyscreenmodel_p.h
-    SOURCES += src/cpkeyscreenmodel_p.cpp
-
-    LIBS += -lcentralrepository \
-            -lfeatmgr
-    TARGET.UID3 = 0X20025FDE
-    TARGET.CAPABILITY = All -TCB 
-    TARGET.EPOCALLOWDLLDATA = 1
-}
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenconstants.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:  
- *   
- */
-
-#ifndef CPKEYSCREENCONSTANTS_H
-#define CPKEYSCREENCONSTANTS_H
-
-const int KCpKeyscreenLock15s = 15;
-const int KCpKeyscreenLock30s = 30;
-const int KCpKeyscreenLock45s = 45;
-const int KCpKeyscreenLock60s = 60;
-const int KCpKeyscreenLock120s = 120;
-
-const int KCpKeyscreenLockDefault30s = 30;
-
-#endif
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +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 "cpkeyscreenmodel.h"
-#include <qglobal.h>
-
-#ifdef Q_OS_SYMBIAN
-#include "cpkeyscreenmodel_p.h"
-#endif
-
-
-CpKeyScreenModel::CpKeyScreenModel()
-{
-#ifdef Q_OS_SYMBIAN
-    ptr = new CpKeyScreenModelPrivate();
-#endif
-}
-
-CpKeyScreenModel::~CpKeyScreenModel()
-{
-#ifdef Q_OS_SYMBIAN
-    delete ptr;
-    ptr = 0;
-#endif
-}
-
-bool CpKeyScreenModel::isKeyguardSupported()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->isKeyguardSupported();
-#else
-    return 0;
-#endif
-}
-
-int CpKeyScreenModel::keyguard()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->keyguard();
-#else
-    return 0;
-#endif
-}
-
-void CpKeyScreenModel::setKeyguard(int value)
-{
-#ifdef Q_OS_SYMBIAN
-    ptr->setKeyguard(value);
-#else
-    Q_UNUSED(value);
-#endif
-}
-
-bool CpKeyScreenModel::isRotateSupported()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->isRotateSupported();
-#else
-    return false;
-#endif
-}
-
-bool CpKeyScreenModel::rotate()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->rotate();
-#else
-    return 0;
-#endif
-}
-
-void CpKeyScreenModel::setRotate(bool value)
-{
-#ifdef Q_OS_SYMBIAN
-    ptr->setRotate(value);
-#else
-    Q_UNUSED(value);
-#endif
-}
-
-bool CpKeyScreenModel::isBrightnessSupported()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->isBrightnessSupported();
-#else
-    return false;
-#endif
-}
-
-int CpKeyScreenModel::brightness()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->brightness();
-#else
-    return 0;
-#endif    
-}
-
-void CpKeyScreenModel::setBrightness(int value)
-{
-#ifdef Q_OS_SYMBIAN
-    ptr->setBrightness(value);
-#else
-    Q_UNUSED(value);
-#endif
-}
-
-bool CpKeyScreenModel::isCallibrationSupported()
-{
-#ifdef Q_OS_SYMBIAN
-    return ptr->isCallibrationSupported();
-#else
-    return true;
-#endif
-}
-
-// End of the file
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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:  
- *   
- */
-
-#ifndef CPKEYSCREENMODEL_H
-#define CPKEYSCREENMODEL_H
-
-class CpKeyScreenModelPrivate;
-
-class CpKeyScreenModel
-    {
-public:
-    CpKeyScreenModel();
-    ~CpKeyScreenModel();
-
-public:
-    bool isKeyguardSupported();
-    int keyguard();
-    void setKeyguard(int value);
-    bool isRotateSupported();
-    bool rotate();
-    void setRotate(bool value);
-    bool isBrightnessSupported();
-    int brightness();
-    void setBrightness(int value);
-    bool isCallibrationSupported();
-
-private:
-    CpKeyScreenModelPrivate* ptr;
-    };
-
-#endif
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel_p.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +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 "cpkeyscreenmodel_p.h"
-#include "cpkeyscreenconstants.h"
-#include <qglobal.h>
-#include <hbcommoncrkeys.h>
-#include <e32base.h>
-#include <hal.h>
-#include <centralrepository.h>
-#include <settingsinternalcrkeys.h>     // KCRUidSecuritySettings
-#include <hwrmlightdomaincrkeys.h>      // KCRUidLightSettings
-#include <featmgr.h>
-
-CpKeyScreenModelPrivate::CpKeyScreenModelPrivate()
-{
-    TRAP_IGNORE(
-    mLightCenRep = CRepository::NewL( KCRUidLightSettings );
-    mSecurityCenRep = CRepository::NewL( KCRUidSecuritySettings );
-    mRotateSensor = CRepository::NewL(KHbSensorCenrepUid););
-}
-
-CpKeyScreenModelPrivate::~CpKeyScreenModelPrivate()
-{
-    delete mLightCenRep;
-    delete mSecurityCenRep;
-    delete mRotateSensor;
-}
-
-bool CpKeyScreenModelPrivate::isKeyguardSupported()
-{
-    return true;
-}
-
-int CpKeyScreenModelPrivate::keyguard()
-{
-    int period = KCpKeyscreenLockDefault30s;
-    mSecurityCenRep->Get( KSettingsAutomaticKeyguardTime, period );
-    return period;
-}
-
-void CpKeyScreenModelPrivate::setKeyguard(int value)
-{
-    if ( (KCpKeyscreenLock15s == value) || (KCpKeyscreenLock30s == value) 
-            || (KCpKeyscreenLock45s == value) || (KCpKeyscreenLock60s == value) 
-            || (KCpKeyscreenLock120s == value) ){
-        mSecurityCenRep->Set( KSettingsAutomaticKeyguardTime, value );
-        mLightCenRep->Set( KDisplayLightsTimeout, value );
-    }
-}
-
-bool CpKeyScreenModelPrivate::isRotateSupported()
-{
-    return true;
-}
-
-bool CpKeyScreenModelPrivate::rotate()
-{
-    int rotate = 0;
-    mRotateSensor->Get(KHbSensorCenrepKey, rotate);
-    return rotate;
-}
-
-void CpKeyScreenModelPrivate::setRotate(bool value)
-{
-    mRotateSensor->Set(KHbSensorCenrepKey, value);
-}
-
-bool CpKeyScreenModelPrivate::isBrightnessSupported()
-{
-    if ( FeatureManager::FeatureSupported( KFeatureIdBrightnessControl ) ){
-        return true;
-    } else {
-        return false;
-    }
-}
-
-int CpKeyScreenModelPrivate::brightness()
-{
-    int time = 0;
-    mLightCenRep->Get( KLightIntensity, time );
-    return time/20;
-}
-
-void CpKeyScreenModelPrivate::setBrightness(int value)
-{
-    mLightCenRep->Set( KLightIntensity, value * 20 );
-}
-
-bool CpKeyScreenModelPrivate::isCallibrationSupported()
-{
-    return true;
-}
-
-// End of the file
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenmodel_p.h	Tue Aug 31 15:15:28 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:  
- *   
- */
-
-#ifndef CPKEYSCREENMODEL_P_H
-#define CPKEYSCREENMODEL_P_H
-
-class CRepository;
-
-class CpKeyScreenModelPrivate
-    {
-public:
-    CpKeyScreenModelPrivate();
-    ~CpKeyScreenModelPrivate();
-
-public:
-    bool isKeyguardSupported();
-    int keyguard();
-    void setKeyguard(int value);
-    bool isRotateSupported();
-    bool rotate();
-    void setRotate(bool value);
-    bool isBrightnessSupported();
-    int brightness();
-    void setBrightness(int value);
-    bool isCallibrationSupported();
-
-private:
-    CRepository* mLightCenRep;
-    CRepository* mSecurityCenRep;
-    CRepository* mRotateSensor;
-    };
-
-#endif
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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 "cpkeyscreenplugin.h"
-#include "cpkeyscreenview.h"
-#include <cpsettingformentryitemdataimpl.h>
-
-CpKeyScreenPlugin::CpKeyScreenPlugin()
-{
-}
-
-CpKeyScreenPlugin::~CpKeyScreenPlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpKeyScreenPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    CpSettingFormItemData* itemData = new CpSettingFormEntryItemDataImpl<CpKeyScreenView>(
-            CpSettingFormEntryItemData::ListEntryItem,  // item type
-			itemDataHelper,
-			hbTrId("txt_cp_list_keys_screen"),  // text
-			QString(""),                       // description
-			"qtg_large_key_screen");            // icon name
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cpkeyscreenplugin, CpKeyScreenPlugin);
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenplugin.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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:  
- *   
- */
-#ifndef	CPKEYSCREENPLUGIN_H
-#define	CPKEYSCREENPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpKeyScreenPlugin : public QObject, public CpPluginInterface
-{
-Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpKeyScreenPlugin();
-    virtual ~CpKeyScreenPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif	//CPKEYSCREENPLUGIN_H
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +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 "cpkeyscreenview.h"
-#include "cpkeyscreenmodel.h"
-#include "cpkeyscreenconstants.h"
-#include <hbdataform.h>
-#include <QStringList>
-#include <QDebug>
-#include <QtCore/qobject.h>
-#include <hbdataformmodel.h>
-#include <cpsettingformitemdata.h>
-#include <hbmessagebox.h>
-#include <hbslider.h>
-
-
-CpKeyScreenView::CpKeyScreenView(QGraphicsItem *parent) :
-    CpBaseSettingView(0,parent),
-    mScreenComboButton(0),
-    mRotateCheckbox(0),
-	mBrightSliderItem(0),
-	mCallibItem(0),
-	mModel(0)
-{   
-    HbDataForm *form = qobject_cast<HbDataForm*> ( widget() );
-    if (form) {
-        // Valid range is:
-        // 15 secs, 30 secs, 45 secs, 1 min, 2 mins
-        mScreenLockValues.insert(KCpKeyscreenLock15s,hbTrId("txt_cp_setlabel_keys_screen_val_15_seconds"));
-        mScreenLockValues.insert(KCpKeyscreenLock30s,hbTrId("txt_cp_setlabel_keys_screen_val_30_seconds"));
-        mScreenLockValues.insert(KCpKeyscreenLock45s,hbTrId("txt_cp_setlabel_keys_screen_val_45_seconds"));
-        mScreenLockValues.insert(KCpKeyscreenLock60s,hbTrId("txt_cp_setlabel_keys_screen_val_1_minute"));
-        mScreenLockValues.insert(KCpKeyscreenLock120s,hbTrId("txt_cp_setlabel_keys_screen_val_2_minutes"));
-        
-        form->setHeading(hbTrId("txt_cp_subhead_keys_screen"));
-        mModel = new CpKeyScreenModel();
-        HbDataFormModel *model = new HbDataFormModel;
-
-        if ( mModel->isKeyguardSupported() ) {
-            makeScreenItem(*model);
-        }
-
-        if ( mModel->isRotateSupported() ) {
-            makeRotateItem(*model);
-        }
-
-        makeBrightnessItem(*model);
-
-       /* if ( mModel->isCallibrationSupported() ) {
-            makeCallibrationItem(*model);
-        }*/
-
-        form->setModel(model);
-    }
-}
-
-void CpKeyScreenView::makeScreenItem(HbDataFormModel& model)
-{
-    mScreenComboButton = new CpSettingFormItemData(HbDataFormModelItem::ComboBoxItem,
-            hbTrId("txt_cp_setlabel_keys_screen_locked_after"));    
-    
-    qobject_cast<HbDataForm*> ( widget() )->addConnection(
-            mScreenComboButton,SIGNAL(currentIndexChanged(QString)),
-            this,SLOT(screenValueChanged(QString)));
-    
-    model.appendDataFormItem(mScreenComboButton, model.invisibleRootItem());
-
-    int period = mModel->keyguard();
-    
-    int selectedIndex(-1);    
-    
-    QMap<int,QString>::iterator it = mScreenLockValues.find(period);
-    if (it == mScreenLockValues.end()) {
-        mModel->setKeyguard(KCpKeyscreenLockDefault30s); // Set keyguard and backlight period to default
-        selectedIndex = 1;
-    }
-    else {
-        for (it = mScreenLockValues.begin();it != mScreenLockValues.end();++it) {
-            selectedIndex++;
-            if (it.key() == period) {
-                break;
-            }
-        }
-    }
-    
-    QStringList items = mScreenLockValues.values();
-    mScreenComboButton->setContentWidgetData( QString("items"), items );
-    mScreenComboButton->setContentWidgetData( QString("currentIndex"), selectedIndex);
-    mScreenComboButton->setContentWidgetData("objectName", "screenComboButton");
-}
-
-void CpKeyScreenView::makeRotateItem(HbDataFormModel& model)
-{
-    mRotateCheckbox = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, QString());
-    qobject_cast<HbDataForm*> ( widget() )->addConnection(mRotateCheckbox,SIGNAL(stateChanged(int)),this,SLOT(rotateValueChanged(int)));
-    model.appendDataFormItem(mRotateCheckbox, model.invisibleRootItem());
-
-    mRotateCheckbox->setContentWidgetData( QString("text"), QVariant(hbTrId("txt_cp_list_autorotate_display")) );
-    mRotateCheckbox->setData(HbDataFormModelItem::DescriptionRole, QString( hbTrId("txt_cp_info_rotate_the_display_content_automatical") ));
-    Qt::CheckState state;
-    if ( mModel->rotate() ){
-        state = Qt::Checked;
-    } else {
-        state = Qt::Unchecked;
-    }
-    mRotateCheckbox->setContentWidgetData( QString("checkState"), state );
-    mRotateCheckbox->setContentWidgetData("objectName", "rotateCheckbox");
-}
-
-void CpKeyScreenView::makeBrightnessItem(HbDataFormModel& model)
-{
-    mBrightSliderItem = new CpSettingFormItemData(HbDataFormModelItem::SliderItem, hbTrId("txt_cp_setlabel_brightness"));
-    qobject_cast<HbDataForm*> ( widget() )->addConnection(mBrightSliderItem,SIGNAL(valueChanged(int)),this,SLOT(brightValueChanged(int)));
-    model.appendDataFormItem(mBrightSliderItem, model.invisibleRootItem());
-
-    QList<QVariant> sliderElements;
-    sliderElements << QVariant(HbSlider::IncreaseElement) << QVariant(HbSlider::TrackElement)
-                   << QVariant(HbSlider::DecreaseElement);
-    mBrightSliderItem->setContentWidgetData("sliderElements",sliderElements);
-    mBrightSliderItem->setContentWidgetData( QString("value"), mModel->brightness() );
-    mBrightSliderItem->setContentWidgetData( QString("minimum"), 1 );
-    mBrightSliderItem->setContentWidgetData( QString("maximum"), 5 );
-    QMap< QString, QVariant > iconElements;
-    iconElements.insert(QString("IncreaseElement") , QVariant(":/icon/hb_vol_slider_increment.svg"));
-    iconElements.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg") );
-    mBrightSliderItem->setContentWidgetData( QString( "elementIcons" ), iconElements );
-    mRotateCheckbox->setContentWidgetData("objectName", "brightSliderItem");
-}
-
-void CpKeyScreenView::makeCallibrationItem(HbDataFormModel& model)
-{
-    mCallibItem = new CpSettingFormItemData(HbDataFormModelItem::ToggleValueItem,
-                        QString());
-    qobject_cast<HbDataForm*> ( widget() )->addConnection(mCallibItem,SIGNAL(pressed()),this,SLOT(launchCallib()));
-    model.appendDataFormItem(mCallibItem, model.invisibleRootItem());
-    mCallibItem->setContentWidgetData( QString("text"), hbTrId("txt_cp_button_touch_screen_calibration"));
-}
-
-CpKeyScreenView::~CpKeyScreenView()
-{
-    delete mModel;
-	mModel = 0;
-}
-
-void CpKeyScreenView::screenValueChanged(const QString &value)
-{    
-    for (QMap<int,QString>::iterator it = mScreenLockValues.begin();
-         it != mScreenLockValues.end();++it) {
-        if (it.value() == value) {
-            mModel->setKeyguard(it.key());
-            break;
-        }
-    }
-}
-
-void CpKeyScreenView::rotateValueChanged(int value)
-{
-    mModel->setRotate( value );
-}
-
-void CpKeyScreenView::brightValueChanged(int value)
-{
-	mModel->setBrightness(value);
-}
-
-void CpKeyScreenView::launchCallib()
-{
-}
-
-
--- a/controlpanelui/src/cpplugins/keytouchfdbkplugin/src/cpkeyscreenview.h	Tue Aug 31 15:15:28 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:  
- *
- */
-#ifndef	CPKEYSCREENVIEW_H
-#define	CPKEYSCREENVIEW_H
-
-#include <QMap>
-#include <cpbasesettingview.h>
-#include <hbdataformmodelitem.h>
-
-class HbDataFormModelItem;
-class HbDataFormModel;
-class CpSettingFormItemData;
-class CpKeyScreenModel;
-class QPersistentModelIndex;
-class QVariant;
-
-class CpKeyScreenView : public CpBaseSettingView
-{
-    Q_OBJECT
-public:
-    explicit CpKeyScreenView(QGraphicsItem *parent = 0);
-    virtual ~CpKeyScreenView();
-
-private:
-    void makeScreenItem(HbDataFormModel& model);
-    void makeRotateItem(HbDataFormModel& model);
-    void makeBrightnessItem(HbDataFormModel& model);
-    void makeCallibrationItem(HbDataFormModel& model);
-    
-private slots:
-    void screenValueChanged(const QString&);
-    void rotateValueChanged(int value);
-    void brightValueChanged(int value);
-    void launchCallib();
-
-private:
-    CpSettingFormItemData *mScreenComboButton;
-    CpSettingFormItemData *mRotateCheckbox;
-	CpSettingFormItemData *mBrightSliderItem;
-	CpSettingFormItemData *mCallibItem;
-	CpKeyScreenModel* mModel;
-	
-	QMap<int,QString> mScreenLockValues;
-};
-#endif//	CPKEYSCREENVIEW_H
--- a/controlpanelui/src/cpplugins/lookfeelplugin/data/cplookfeelplugin.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-
-<childplugins>
-  <plugin displayname = "Theme" id = "0X2002C2F3"  dll = "cpthemeplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "WallPaper" id = "0X20025FE8"  dll = "cpplaceholderplugin.dll">
-    <desc>Name of the WallPaper</desc>
-  </plugin>
-  <plugin displayname = "Display" id = "0X20028735"  dll = "cpdisplayplugin.dll">
-    <desc></desc>
-  </plugin> 
-  <plugin displayname = "Key &amp; touch screen feedback" id = "0X20025FDE"  dll = "cpkeytouchfdbkplugin.dll">
-    <desc></desc>
-  </plugin> 
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/lookfeelplugin/lookfeelplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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: cpdeviceplugin source files
-#
-
-
-# Input
-HEADERS += src/cplookfeelplugin.h 
-SOURCES += src/cplookfeelplugin.cpp 
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/lookfeelplugin/lookfeelplugin.pro	Tue Aug 31 15:15:28 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 = lib
-TARGET = cplookfeelplugin
-
-CONFIG += hb plugin
-
-
-include ( ../cpplugincommon.pri )
-include ( lookfeelplugin.pri )
-
-symbian { 
-    TARGET.UID3 = 0X20025FE0
-}
-
-symbian { 
-    deploy.path = C:
-    headers.sources = data/cplookfeelplugin.cpcfg
-    headers.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += exportheaders
-    
-    # This is for new exporting system coming in garden
-    for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$deploy.path$$headers.path/$$basename(header)"
-}
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/lookfeelplugin/src/cplookfeelplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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 "cplookfeelplugin.h"
-#include "cpcategorysettingformitemdata.h"
-
-CpLookFeelPlugin::CpLookFeelPlugin()
-{
-}
-
-CpLookFeelPlugin::~CpLookFeelPlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpLookFeelPlugin::createSettingFormItemData(CpItemDataHelper &/*itemDataHelper*/) const
-{
-    CpCategorySettingFormItemData *itemData = 
-            new CpCategorySettingFormItemData(
-            HbDataFormModelItem::GroupItem,
-            tr("Look&Feel"),
-            QString("cplookfeelplugin.cpcfg") );
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cplookfeelplugin, CpLookFeelPlugin);
--- a/controlpanelui/src/cpplugins/lookfeelplugin/src/cplookfeelplugin.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPLOOKFEELPLUGIN_H
-#define CPLOOKFEELPLUGIN_H
-
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpLookFeelPlugin  : public QObject,
-	                    public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpLookFeelPlugin();
-    virtual ~CpLookFeelPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-
-#endif /* CPLOOKFEELPLUGIN_H */
--- a/controlpanelui/src/cpplugins/personalizationplugin/data/cppersonalizationplugin.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<childplugins>
-  <plugin displayname = "Ring tone" id = "0X20028738"  dll = "cpringtoneplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Theme" id = "0X2002C2F3"  dll = "cpthemeplugin.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Profile" id = "0X20028739"  dll = "cpprofileactivator.dll">
-    <desc></desc>
-  </plugin>
-  <plugin displayname = "Key touch screen" id = "0X20025FDE"  dll = "cpkeytouchfdbkplugin.dll">
-    <desc></desc>
-  </plugin>
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_decrement.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="33.999,26 10,26 10,17.998 33.999,17.998 "/>
-<rect fill="#FFFFFF" height="4" width="20" x="12" y="20"/>
-</svg>
--- a/controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_decrement_pressed.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="33.999,26 10,26 10,17.998 33.999,17.998 "/>
-<rect fill="#00FF00" height="4" width="20" x="12" y="20"/>
-</svg>
--- a/controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_increment.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="26.001,33.999 18,33.999 18,26.001 10,26.001 10,18 18,18 18,9.999 26.001,9.999 26.001,18 33.999,18   33.999,26.001 26.001,26.001 "/>
-<polygon fill="#FFFFFF" points="31.999,20 23.999,20 23.999,12 20,12 20,20 12,20 12,23.999 20,23.999 20,31.999 23.999,31.999   23.999,23.999 31.999,23.999 "/>
-</svg>
--- a/controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_increment_pressed.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="26.001,33.999 18,33.999 18,26.001 10,26.001 10,18 18,18 18,9.999 26.001,9.999 26.001,18 33.999,18   33.999,26.001 26.001,26.001 "/>
-<polygon fill="#00FF00" points="31.999,20 23.999,20 23.999,12 20,12 20,20 12,20 12,23.999 20,23.999 20,31.999 23.999,31.999   23.999,23.999 31.999,23.999 "/>
-</svg>
--- a/controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_muted.svg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +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" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<path d="M25.824,21.015V8.411h-9.979l-1.025,1.6L8.354,3.545L3.651,8.242l6.797,6.795H4.931v15.818h6.671l4.24,6.625h9.982v-7.067  l7.902,7.905l4.697-4.703L25.824,21.015z M19.179,30.336L15.26,24.21h-3.682v-2.524h3.682l0.715-1.121l3.204,3.203V30.336z"/>
-<rect fill="#FFFFFF" height="2.648" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 21.1169 50.6082)" width="38.533" x="1.773" y="19.607"/>
-<polygon fill="#FFFFFF" points="21.179,32.835 18.403,32.835 14.166,26.209 9.578,26.209 9.578,19.685 14.166,19.685 14.463,19.219   12.279,17.037 6.931,17.037 6.931,28.855 12.695,28.855 16.937,35.48 23.824,35.48 23.824,28.579 21.179,25.936 "/>
-<polygon fill="#FFFFFF" points="18.403,13.06 21.179,13.06 21.179,16.202 23.824,18.847 23.824,10.412 16.937,10.412 16.332,11.355   18.259,13.284 "/>
-</svg>
--- a/controlpanelui/src/cpplugins/personalizationplugin/icon/hb_vol_slider_unmuted.svg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<path d="M34.951,38.12l-5.054-4.302l1.282-1.521c0.877-1.04,8.324-10.39,0.111-18.605l-1.414-1.413l4.697-4.701l1.413,1.415  c12.695,12.699,0.386,27.46,0.259,27.606L34.951,38.12L34.951,38.12z"/>
-<path d="M30.761,14.545l-1.414-1.412l-3.521,3.521V8.411h-9.981l-4.24,6.624H4.93v15.82h6.674l4.24,6.625h9.981v-8.201l3.855,3.287  l1.298-1.521C33.574,28.005,36.864,20.643,30.761,14.545z M19.18,30.335l-3.921-6.128h-3.682v-2.522h3.682l3.921-6.128V30.335z   M25.918,26.742l-0.094,0.109v-7.844l0.237,0.236C29.324,22.505,26.277,26.318,25.918,26.742z"/>
-<path d="M27.476,17.83c4.622,4.622,0.158,9.979-0.031,10.203l2.014,1.714c2.181-2.554,4.957-8.725-0.11-13.788  L27.476,17.83z" fill="#FFFFFF"/>
-<path d="M34.576,10.406l-1.873,1.871c9.664,9.663,0.404,20.838,0.006,21.309l2.017,1.717  C34.838,35.17,45.974,21.811,34.576,10.406z" fill="#FFFFFF"/>
-<path d="M16.937,10.411l-4.242,6.625H6.931v11.819h5.764l4.242,6.625h6.887V10.411H16.937z M21.179,32.834h-2.776  l-4.237-6.626H9.578v-6.524h4.588l4.237-6.625h2.776V32.834z" fill="#FFFFFF"/>
-</svg>
--- a/controlpanelui/src/cpplugins/personalizationplugin/personalizationplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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: cppersonalizationplugin source files
-#
-
-# Input
-HEADERS += src/cppersonalizationplugin.h  \
-			     src/cppersonalizationgroupitemdata.h\
-           src/cpprofilesettingform.h \
-           ../ringtoneplugin/src/cppersonalizationentryitemdata.h \
-           src/cppersonalizationadvanceview.h \
-           src/cpprofilenameeditdialog.h \
-			     
-SOURCES += src/cppersonalizationplugin.cpp \
-		       src/cppersonalizationgroupitemdata.cpp \
-		       src/cpprofilesettingform.cpp \
-           ../ringtoneplugin/src/cppersonalizationentryitemdata.cpp \
-           src/cppersonalizationadvanceview.cpp \
-           src/cpprofilenameeditdialog.cpp \
--- a/controlpanelui/src/cpplugins/personalizationplugin/personalizationplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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 = cppersonalizationplugin
-
-CONFIG += hb plugin
-RESOURCES += personalizationplugin.qrc
-
-LIBS +=  -lcpprofilewrapper
-LIBS +=  -lxqsettingsmanager -lcpringtoneview
-
-include ( ../cpplugincommon.pri )
-include ( personalizationplugin.pri )
-
-symbian: { 
-    TARGET.UID3 = 0X20025FE5
-}
-
-symbian: {
-    deploy.path = C:
-    headers.sources = data/cppersonalizationplugin.cpcfg
-    headers.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += exportheaders
-
-    # This is for new exporting system coming in garden
-    for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$deploy.path$$headers.path/$$basename(header)"
-}
--- a/controlpanelui/src/cpplugins/personalizationplugin/personalizationplugin.qrc	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file>icon/hb_vol_slider_decrement.svg</file>
-        <file>icon/hb_vol_slider_decrement_pressed.svg</file> 
-        <file>icon/hb_vol_slider_increment.svg</file> 
-        <file>icon/hb_vol_slider_increment_pressed.svg</file> 
-        <file>icon/hb_vol_slider_muted.svg</file> 
-        <file>icon/hb_vol_slider_unmuted.svg</file>           
-    </qresource>    
-</RCC>
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationadvanceview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +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 "cppersonalizationadvanceview.h"
-#include <cpcategorysettingformitemdata.h>
-#include <cpitemdatahelper.h>
-/*#include <hbdataformmodel.h>
-#include <hbdataform.h>
-#include <hblineedit.h>
-#include <hbdataformmodelitem.h>
-*/
-#include "cpprofilesettingform.h"
-#include "cpprofilenameeditdialog.h"
-
-#include <cppluginutility.h>
-#include <hbaction.h>
-#include <hbmenu.h>
-CpPersonalizationAdvanceView::CpPersonalizationAdvanceView(QGraphicsItem *parent /*=0*/):
-    CpBaseSettingView(0,parent)
-{
-    // 1.init the dataform for advance settings here
-    // 2.please modify the cpprofilesettingform.h/ cpp according to current ui spec
-    // 3.NOTICE! you can get controlpanel's text map from the controlpanel ui wiki, use current text id for strings
-    // 4.use cppersonalizationentryitemdata class to create ringtone, message tone...
-    // 5.ignore cpmastervolumeslider class, please use default slideritem to create keyandscreen slider, new property added in slider, if any question, please contact me.
-    // 6. don't forget the cfg file in data folder, you can try to add the profile activator plugin and ringtone plugin here
-    HbDataForm *form = new CpProfileSettingForm();
-    setWidget( form );
-    CpPluginUtility::addCpItemPrototype(form);
-    initMenu();
-}
-CpPersonalizationAdvanceView::~CpPersonalizationAdvanceView()
-{
-    
-}
-
-void CpPersonalizationAdvanceView::initMenu()
-{
-    HbAction *editNameAction = new HbAction( this );
-    editNameAction->setObjectName( "editNameAction" );
-    editNameAction->setText( hbTrId( "txt_cp_list_edit_name" ) );
-    
-    menu()->addAction( editNameAction );
-    connect( editNameAction, SIGNAL( triggered() ), this, SLOT( on_editNameAction_triggered() ));
-}
-
-void CpPersonalizationAdvanceView::on_editNameAction_triggered()
-{
-    QString string = QString( "general" );
-    bool ret = CpProfileNameEditDialog::launchProfileNameEditDialog( string );
-}
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationadvanceview.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPPERSONALIZATIONADVANCEVIEW_H
-#define CPPERSONALIZATIONADVANCEVIEW_H
-
-#include <cpbasesettingview.h>
-class CpItemDataHelper;
-
-class CpPersonalizationAdvanceView: public CpBaseSettingView
-{
-    Q_OBJECT
-public:
-    explicit CpPersonalizationAdvanceView(QGraphicsItem *parent = 0);
-    ~CpPersonalizationAdvanceView();
-    
-private slots:
-    void on_editNameAction_triggered();
-    
-private:
-    void initMenu();
-};
-#endif
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationgroupitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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 "cppersonalizationgroupitemdata.h"
-#include <cplogger.h>
-#include <hbdataformmodelitem.h>
-#include <cpsettingformentryitemdataimpl.h>
-#include <cpbasesettingview.h>
-#include <cpitemdatahelper.h>
-#include <hbmessagebox.h>
-#include <cpprofilemodel.h>
-#include "cppersonalizationadvanceview.h"
-#include "cppersonalizationentryitemdata.h"
-
-
-CpPersonalizationGroupItemData::CpPersonalizationGroupItemData(HbDataFormModelItem::DataItemType type,
-                                                               const QString &label,
-                                                               const QString &configFile,
-                                                               const HbDataFormModelItem *parent):
-                                                               CpCategorySettingFormItemData(type, label, configFile, parent)
-                                                               
-{
-    CPFW_LOG("CpPersonalizationGroupItemData::CpPersonalizationGroupItemData(), START");
-	CPFW_LOG("CpPersonalizationGroupItemData::CpPersonalizationGroupItemData(), END");
-}
-
-CpPersonalizationGroupItemData::~CpPersonalizationGroupItemData()
-{
-}
-
-void CpPersonalizationGroupItemData::beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper)
-{
-
-    // keep this interface for development in the futrue
-    CPFW_LOG("CpPersonalizationGroupItemData::beforeLoadingConfigPlugins(), START");
-
-	CPFW_LOG("CpPersonalizationGroupItemData::beforeLoadingConfigPlugins(), END");
-}
-
-void CpPersonalizationGroupItemData::afterLoadingConfigPlugins(CpItemDataHelper &itemDataHelper)
-{
-    CPFW_LOG("CpPersonalizationGroupItemData::afterLoadingConfigPlugins(), START");
-    CpSettingFormEntryItemData *advanceSettingItem = 
-            new CpSettingFormEntryItemDataImpl<CpPersonalizationAdvanceView>(CpSettingFormEntryItemData::ButtonEntryItem,
-            		itemDataHelper, hbTrId("txt_cp_button_advanced_settings"));
-    
-    advanceSettingItem->setContentWidgetData("textAlignment", QVariant( Qt::AlignHCenter | Qt::AlignVCenter) );
-    advanceSettingItem->setContentWidgetData("objectName", "advanceSettingButton" );
-    appendChild(advanceSettingItem);
-    CPFW_LOG("CpPersonalizationGroupItemData::afterLoadingConfigPlugins(), END");
-}
-
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationgroupitemdata.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +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:  
- *
- */
-#ifndef CPPERSONALIZATIONGROUPITEMDATA_H
-#define CPPERSONALIZATIONGROUPITEMDATA_H
-
-#include <QObject>
-#include <cpcategorysettingformitemdata.h>
-
-class CpProfileModel;
-class CpItemDataHelper;
-class CpSettingFormEntryItemData;
-class CpMasterVolumeValueController;
-
-class CpPersonalizationGroupItemData: public CpCategorySettingFormItemData
-{
-    Q_OBJECT
-public:
-    CpPersonalizationGroupItemData(HbDataFormModelItem::DataItemType type,
-        const QString &label,
-        const QString &configFile = QString(),
-        const HbDataFormModelItem *parent = 0);
-
-    ~CpPersonalizationGroupItemData();
-//private slots:
-    //void masterVolumeValueChanged(int value);
-//	void onVibraValueChange(int isVibra);
-private:
-    virtual void beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-    virtual void afterLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-};
-
-#endif /* CPPERSONALIZATIONGROUPITEMDATA_H */
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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 "cppersonalizationplugin.h"
-#include "cppersonalizationgroupitemdata.h"
-#include <cpcategorysettingformitemdata.h>
-#include <cpitemdatahelper.h>
-#include "cppersonalizationadvanceview.h"
-
-CpPersonalizationPlugin::CpPersonalizationPlugin()
-{
-}
-
-CpPersonalizationPlugin::~CpPersonalizationPlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpPersonalizationPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-  
-    CpPersonalizationGroupItemData *personalItemData = 
-            new CpPersonalizationGroupItemData(
-            HbDataFormModelItem::GroupItem,
-            hbTrId("txt_cp_subhead_personalization"),
-            QString("cppersonalizationplugin.cpcfg") );
-
-    return QList<CpSettingFormItemData*>() << personalItemData;
-}
-
-CpBaseSettingView *CpPersonalizationPlugin::createSettingView(const QVariant &hint) const
-{
-    if (hint.toString().compare("profile_view",Qt::CaseInsensitive) == 0) {
-        return new CpPersonalizationAdvanceView;
-    }
-    return 0;
-}
-
-Q_EXPORT_PLUGIN2(cppersonalizationplugin, CpPersonalizationPlugin);
-
-
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cppersonalizationplugin.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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:  
- *
- */
-
-#ifndef CPPERSONALIZATIONPLUGIN_H
-#define CPPERSONALIZATIONPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-#include <cplauncherinterface.h>
-
-class CpBaseSettingView;
-class QVariant;
-
-class CpPersonalizationPlugin 
-        : public QObject,
-          public CpPluginInterface,
-          public CpLauncherInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-    Q_INTERFACES(CpLauncherInterface)
-public:
-    CpPersonalizationPlugin();
-    virtual ~CpPersonalizationPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-    virtual CpBaseSettingView *createSettingView(const QVariant &hint) const;
-};
-
-#endif /* CPPERSONALIZATIONPLUGIN_H */
-
-
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilenameeditdialog.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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 "cpprofilenameeditdialog.h"
-
-#include <hblineedit.h>
-#include <hblabel.h>
-#include <hbaction.h>
-
-#include <QGraphicsLinearLayout>
-#include <QScopedPointer>
-
-CpProfileNameEditDialog::CpProfileNameEditDialog( QGraphicsItem *parent )
-    :HbDialog( parent )
-{
-    init();
-}
-
-CpProfileNameEditDialog::~CpProfileNameEditDialog()
-{
-}
-
-void CpProfileNameEditDialog::init()
-{
-    setDismissPolicy( HbPopup::NoDismiss );
-    setHeadingWidget( new HbLabel( hbTrId( "txt_cp_title_edit_name" ), this ));
-    
-    QGraphicsLinearLayout *vLayout = new QGraphicsLinearLayout();
-    vLayout->setOrientation( Qt::Vertical );
-    HbWidget *contentWidget = new HbWidget( this );
-    mTextEdit = new HbLineEdit( this );
-    mTextEdit->setFontSpec( HbFontSpec( HbFontSpec::Primary ) );
-    vLayout->addItem( mTextEdit );
-    contentWidget->setLayout( vLayout );
-    setContentWidget( contentWidget );
-    
-    connect( mTextEdit, SIGNAL( contentsChanged() ), this, SLOT( checkPrimaryAction() ) );
-    
-    addAction( new HbAction( hbTrId( "txt_common_button_ok" ), this ));
-    addAction( new HbAction( hbTrId( "txt_common_button_cancel" ), this ) );
-    
-    setTimeout( NoTimeout );
-}
-
-void CpProfileNameEditDialog::setLineEditText( const QString &text )
-{
-    mTextEdit->setText( text );
-    mTextEdit->setSelection( 0, text.length() );
-}
-
-QString CpProfileNameEditDialog::getLineEditText()
-{
-    QString text = mTextEdit->text();
-    return text;
-}
-
-bool CpProfileNameEditDialog::launchProfileNameEditDialog( QString &profileName )
-{
-    CpProfileNameEditDialog *profileEditNameDialog = new CpProfileNameEditDialog();
-    
-    profileEditNameDialog->setLineEditText( profileName );
-    profileEditNameDialog->checkPrimaryAction();
-    profileEditNameDialog->show();
-    return false;
-}
-
-void CpProfileNameEditDialog::checkPrimaryAction()
-{
-    HbAction *const primaryAction = qobject_cast<HbAction *>
-                                                (actions().at(0));
-    if (primaryAction) {
-        if ( !mTextEdit->text().isEmpty() ) {
-            primaryAction->setEnabled(true);        
-        } else {        
-            primaryAction->setEnabled(false);        
-        }
-    }
-}
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilenameeditdialog.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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:  
- *
- */
-
-#ifndef CPPROFILENAMEEDITDIALOG_H
-#define CPPROFILENAMEEDITDIALOG_H
-
-#include <hbdialog.h>
-
-class HbWidget;
-class HbLineEdit;
-
-class CpProfileNameEditDialog : public HbDialog
-{
-    Q_OBJECT
-    
-public:
-    CpProfileNameEditDialog( QGraphicsItem *parent = 0 );
-    virtual ~CpProfileNameEditDialog();
-    
-    static bool launchProfileNameEditDialog( QString &profileName );
-    
-private slots:
-    void checkPrimaryAction();
-    
-private:
-    void init();
-    void setLineEditText( const QString &text );
-    QString getLineEditText();
-    
-private:
-    HbWidget *mContentWidget;
-    HbLineEdit  *mTextEdit;
-};
-
-#endif /* CPPROFILENAMEEDITDIALOG_H */
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesettingform.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,351 +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 "cpprofilesettingform.h"
-#include "cppersonalizationentryitemdata.h"
-#include <QStringList>
-#include <hbdataformmodel.h>
-#include <hbabstractviewitem.h>
-#include <cpitemdatahelper.h>
-#include <cpprofilemodel.h>
-#include <hbslider.h>
-
-#include <QFileInfo>
-#include <QFileIconProvider>
-#include <QAbstractItemModel>
-#include <QModelIndex>
-#include <QMap>
-
-#include <xqsettingsmanager.h>
-#include <ProfileEngineInternalCRKeys.h>
-
-CpProfileSettingForm::CpProfileSettingForm()
-    : mModel(0), mItemDataHelper(new CpItemDataHelper( this )),
-    mProfileModel(new CpProfileModel()), mFileIconProvider(new QFileIconProvider),
-    mGeneralPage(0),mMeetingPage(0),mCurrentPage( 0 ), mSettingManager(0)
-{
-    this->setHeading(hbTrId("txt_cp_button_advanced_settings"));
-    this->setDescription(hbTrId("txt_cp_info_select_tones_that_play_when_you_select"));
-    
-    initModel();
-}
-
-CpProfileSettingForm::~CpProfileSettingForm()
-{
-    delete mModel;
-    delete mProfileModel;
-    delete mFileIconProvider;
-    delete mSettingManager;
-}
-
-void CpProfileSettingForm::initModel()
-{
-    mModel = new HbDataFormModel();
-
-    QString generalString( mProfileModel->profileName( EProfileWrapperGeneralId ) );
-    if( generalString.isEmpty() ) {
-        qDebug( "warning: general profile name is empty");
-        generalString = hbTrId("txt_cp_list_general"); 
-    }
-    QString meetingString( mProfileModel->profileName( EProfileWrapperMeetingId ) );
-    if( meetingString.isEmpty() ) {
-        qDebug( "warning: meeting profile name is empty");
-        meetingString = hbTrId("txt_cp_list_meeting"); 
-    }
-    
-    mSettingManager = new XQSettingsManager();   
-    
-    XQCentralRepositorySettingsKey key(KCRUidProfileEngine.iUid,KProEngSilenceMode);
-    
-    QVariant silenceMode = mSettingManager->readItemValue(key,XQSettingsManager::TypeInt);
-
-    mSettingManager->startMonitoring(key,XQSettingsManager::TypeInt);
-    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
-            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
-    
-    mGeneralPage = mModel->appendDataFormPage( generalString );
-    initProfileItems(EProfileWrapperGeneralId,mGeneralPage);
-    
-    //initGeneralTonesGroup();
-    
-    //initGeneralVibraGroup();
-    
-    mMeetingPage = mModel->appendDataFormPage( meetingString );
-    initProfileItems(EProfileWrapperMeetingId,mMeetingPage);
-    //initMeetingTonesGroup();
-    //initMeetingVibraGroup();
-    setModel(mModel);
-    settingValueChanged(key,silenceMode);
-}
-
-void CpProfileSettingForm::initProfileItems(int profileId,HbDataFormModelItem *parent)
-{
-    CpProfileSettings profileSettings;
-    mProfileModel->profileSettings( profileId, profileSettings );
-    
-    QHash<int,HbDataFormModelItem*> modelItems;
-    
-    //ring tone item
-    QFileInfo ringToneFileInfo( profileSettings.mRingTone );
-    HbDataFormModelItem *modelItem = new CpPersonalizationEntryItemData( *mItemDataHelper,
-            hbTrId("txt_cp_dblist_ringtone"), ringToneFileInfo.fileName(), "qtg_large_ring_tone",
-            CpPersonalizationEntryItemData::TONE_Ring, profileId );
-    mModel->appendDataFormItem(modelItem, parent);
-    modelItems.insert(ProfileItemRingTone,modelItem);
-    
-    //message tone item
-    QFileInfo messageToneFileInfo( profileSettings.mMessageTone );
-    modelItem = new CpPersonalizationEntryItemData( *mItemDataHelper,
-            hbTrId("txt_cp_dblist_message_tone"), messageToneFileInfo.fileName(), "qtg_large_message",
-            CpPersonalizationEntryItemData::TONE_Message,
-            profileId );
-    mModel->appendDataFormItem(modelItem , parent);
-    modelItems.insert(ProfileItemMessageTone,modelItem);
-    
-    //email tone item
-    QFileInfo emailToneFileInfo( profileSettings.mEmailTone );
-    modelItem = new CpPersonalizationEntryItemData( *mItemDataHelper,
-            hbTrId("txt_cp_dblist_email_tone"),  emailToneFileInfo.fileName(), "qtg_large_email",
-            CpPersonalizationEntryItemData::TONE_Email,
-            profileId );
-    mModel->appendDataFormItem(modelItem , parent);
-    modelItems.insert(ProfileItemEmailTone,modelItem);
-    
-    //reminder tone item
-    QFileInfo reminderToneFileInfo( profileSettings.mReminderTone );
-    modelItem = new CpPersonalizationEntryItemData( *mItemDataHelper,
-            hbTrId("txt_cp_dblist_reminder_tone"), reminderToneFileInfo.fileName(), "qtg_large_calendar",
-            CpPersonalizationEntryItemData::TONE_Reminder,
-            profileId );
-    mModel->appendDataFormItem(modelItem , parent);
-    modelItems.insert(ProfileItemReminderTone,modelItem);
-    
-    //notification tones item
-    modelItem= mModel->appendDataFormItem(HbDataFormModelItem::CheckBoxItem,QString(),parent);
-    modelItem->setContentWidgetData("text", hbTrId("txt_cp_list_notification_tones"));
-    modelItem->setContentWidgetData("checkState", profileSettings.mNotificationTone ? 2 : 0);
-    modelItem->setContentWidgetData("objectName", "notificationTonesCheckBox" + QString::number(profileId));
-    if (profileId == EProfileWrapperGeneralId) {
-        addConnection( modelItem, SIGNAL( stateChanged( int )), this, SLOT( on_general_notificationTones_stateChanged( int )));
-    }
-    else if (profileId == EProfileWrapperMeetingId) {
-        addConnection( modelItem, SIGNAL( stateChanged( int )), this, SLOT( on_meeting_notificationTones_stateChanged( int )));
-    }
-    modelItems.insert(ProfileItemNotificationTones,modelItem);
-    
-    
-    //Key and Touch Screen Tones item
-    modelItem = 
-            mModel->appendDataFormItem(HbDataFormModelItem::SliderItem ,QString(hbTrId("txt_cp_setlabel_key_and_touchscreen_tones")),parent);
-    
-    QList<QVariant> sliderElements;
-    sliderElements << QVariant(HbSlider::IncreaseElement) << QVariant(HbSlider::TrackElement)
-            << QVariant(HbSlider::DecreaseElement) << QVariant(HbSlider::IconElement)
-            << QVariant(HbSlider::TextElement);
-    modelItem->setContentWidgetData("sliderElements",sliderElements);
-    modelItem->setContentWidgetData("objectName", "keyTonesSlider" + QString::number(profileId));
-    
-    
-    //TODO: profileModel need provide Max and Min value( 0-5 ), current max value from profileModel is 3
-    modelItem->setContentWidgetData( QString( "minimum" ), 0 );
-    modelItem->setContentWidgetData( QString( "maximum" ), 5 );
-    modelItem->setContentWidgetData( QString("value"), profileSettings.mKeyTouchScreenTone );
-    QMap< QString, QVariant > elements;
-    elements.insert(QString("IncreaseElement") , QVariant(":/icon/hb_vol_slider_increment.svg"));
-    elements.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg") );
-    if (profileSettings.mKeyTouchScreenTone != 0) {
-        elements.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg") );
-    }
-    else {
-        elements.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg") );
-    }
-    
-    modelItem->setContentWidgetData( QString( "elementIcons" ), elements );
-    
-    if (profileId == EProfileWrapperGeneralId) {
-        addConnection( modelItem, SIGNAL( valueChanged( int )), this, SLOT( on_general_keysAndScreenToneSlider_ValueChanged( int )));
-    }
-    else if (profileId == EProfileWrapperMeetingId) {
-        addConnection( modelItem, SIGNAL( valueChanged( int )), this, SLOT( on_meeting_keysAndScreenToneSlider_ValueChanged( int )));
-    }
-  
-    modelItems.insert(ProfileItemKeyandTouchScreenTones,modelItem);
-    
-    
-    //Touch Screen Vibra item
-    modelItem = mModel->appendDataFormItem( HbDataFormModelItem::SliderItem, QString( hbTrId( "txt_cp_setlabel_touch_screen_vibra" ) ), parent );
-     //TODO: profileModel need provide Max and Min value( 0-5 ), current max value from profileModel is 3
-    sliderElements.clear();
-    sliderElements << QVariant(HbSlider::IncreaseElement) << QVariant(HbSlider::TrackElement)
-                << QVariant(HbSlider::DecreaseElement);
-    modelItem->setContentWidgetData("sliderElements",sliderElements);
-    modelItem->setContentWidgetData("objectName", "vibrationSlider" + QString::number(profileId));
-    modelItem->setContentWidgetData( QString( "minimum" ), 0 );
-    modelItem->setContentWidgetData( QString( "maximum" ), 5 );
-    modelItem->setContentWidgetData( QString("value"), profileSettings.mKeyTouchScreenVibra );
-    QMap< QString, QVariant > iconElements;
-    iconElements.insert(QString("IncreaseElement") , QVariant(":/icon/hb_vol_slider_increment.svg"));
-    iconElements.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg") );
-    modelItem->setContentWidgetData( QString( "elementIcons" ), iconElements );
-    
-    if (profileId == EProfileWrapperGeneralId) {
-        addConnection( modelItem, SIGNAL( valueChanged( int )), this, SLOT( on_general_screenVibra_ValueChanged( int )));
-    }
-    else if (profileId == EProfileWrapperMeetingId) {
-        addConnection( modelItem, SIGNAL( valueChanged( int )), this, SLOT( on_meeting_screenVibra_ValueChanged( int )));
-    }
-    
-    modelItems.insert(ProfileItemTouchScreenVibra,modelItem);
-    
-    mProfileModelItems.insert(profileId,modelItems);
-    
-}
-
-
-
-////////////////////////////////////////////////////
-//general tones
-void CpProfileSettingForm::on_general_notificationTones_stateChanged(int state)
-{
-    mProfileModel->setNotificationTone( EProfileWrapperGeneralId, checkBoxStateToBool( state ) );
-}
-
-void CpProfileSettingForm::on_general_keysAndScreenToneSlider_ValueChanged( int value )
-{
-    mProfileModel->setKeyTouchScreenTone( EProfileWrapperGeneralId, value );
-    HbDataFormModelItem *modelItem = profileItem(EProfileWrapperGeneralId,ProfileItemKeyandTouchScreenTones);
-    if (modelItem) {
-        modelItem->setContentWidgetData( QString("value"), value );
-        setMuteIcon(modelItem, (value == 0) );            
-    }
-}
-
-
-//general vibra
-void CpProfileSettingForm::on_general_screenVibra_ValueChanged( int value )
-{
-    mProfileModel->setKeyTouchScreenVibra( EProfileWrapperGeneralId, value );
-    
-    HbDataFormModelItem *modelItem = profileItem(EProfileWrapperGeneralId,ProfileItemTouchScreenVibra);
-    if (modelItem) {
-        modelItem->setContentWidgetData( QString("value"), value );
-    }
-
-}
-
-////////////////////////////////////////////////////
-//meeting Tones
-void CpProfileSettingForm::on_meeting_notificationTones_stateChanged(int state)
-{
-    mProfileModel->setNotificationTone( EProfileWrapperMeetingId, checkBoxStateToBool( state ) );
-}
-
-void CpProfileSettingForm::on_meeting_keysAndScreenToneSlider_ValueChanged( int value )
-{
-    mProfileModel->setKeyTouchScreenTone( EProfileWrapperMeetingId, value );
-    
-    HbDataFormModelItem *modelItem = profileItem(EProfileWrapperMeetingId,ProfileItemKeyandTouchScreenTones);
-    if (modelItem) {
-        modelItem->setContentWidgetData( QString("value"), value );
-        setMuteIcon(modelItem, (value == 0) );            
-    }
-}
-
-void CpProfileSettingForm::on_meeting_screenVibra_ValueChanged( int value )
-{
-    mProfileModel->setKeyTouchScreenVibra( EProfileWrapperMeetingId, value );
-    
-    HbDataFormModelItem *modelItem = profileItem(EProfileWrapperMeetingId,ProfileItemTouchScreenVibra);
-    if (modelItem) {
-        modelItem->setContentWidgetData( QString("value"), value );
-    }
-}
-
-bool CpProfileSettingForm::checkBoxStateToBool( int state )
-{
-    if( state == Qt::Checked ) {
-        return true;
-    } else {
-        return false;
-    }
-}
-
-
-void CpProfileSettingForm::settingValueChanged(const XQSettingsKey &key, const QVariant &value)
-{
-    if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngSilenceMode && value.isValid()) {
-    
-		static const int silenceSensitiveModelItemIds[] = 
-		{       
-			CpProfileSettingForm::ProfileItemRingTone,
-			CpProfileSettingForm::ProfileItemMessageTone,
-			CpProfileSettingForm::ProfileItemEmailTone,
-			CpProfileSettingForm::ProfileItemReminderTone,
-			CpProfileSettingForm::ProfileItemNotificationTones,
-			CpProfileSettingForm::ProfileItemKeyandTouchScreenTones
-		};
-    
-        QHash< int,QHash<int,HbDataFormModelItem*>  >::const_iterator it (mProfileModelItems.begin());
-        for(; it != mProfileModelItems.end(); ++it ) {          
-            for (int i = 0; i < sizeof(silenceSensitiveModelItemIds)/sizeof(silenceSensitiveModelItemIds[0]);++i) {           
-                QHash<int,HbDataFormModelItem*>::const_iterator found = it.value().find(silenceSensitiveModelItemIds[i]);
-                if (found != it.value().end()) {
-                    if (found.key() == CpProfileSettingForm::ProfileItemKeyandTouchScreenTones) {
-                        int currentValue = found.value()->contentWidgetData("value").toInt();
-                        // change the mute icon when the silence mode is changed
-                        bool isMute = value.toBool() || (currentValue == 0);
-                        setMuteIcon(found.value(), isMute); 
-                    } 
-                    found.value()->setEnabled(!value.toBool());                             
-                }
-            }   
-        }
-    }
-}
-
-HbDataFormModelItem *CpProfileSettingForm::profileItem(int profileId,int profileItemId)
-{
-    return mProfileModelItems.value(profileId).value(profileItemId);
-}
-
-/*!
- *  Set the slider icon to mute or unmute
- *  @param isMute: identified the icon of slider, mute or unmute
- *  @param profileId: identified which slider should be changed
- */
-
-void CpProfileSettingForm::setMuteIcon(HbDataFormModelItem *sliderItem, bool isMute)
-{
-    if (sliderItem == 0) {
-        return;
-    }
-    //VolumeSliderItem will be depreacted, so ignore the assert about it
-    if (sliderItem->type() != HbDataFormModelItem::SliderItem) {
-        return;
-    }
-    
-    QMap<QString, QVariant> elements = sliderItem->contentWidgetData("elementIcons").toMap();
-    
-    if (isMute) {        
-        elements.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
-    }
-    else {
-        elements.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg"));
-    }
-    sliderItem->setContentWidgetData( QString( "elementIcons" ), elements ); 
-}
-//End of File
--- a/controlpanelui/src/cpplugins/personalizationplugin/src/cpprofilesettingform.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +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:  
- *
- */
-
-#ifndef CPPROFILESETTINGFORM_H
-#define CPPROFILESETTINGFORM_H
-
-#include <hbdataform.h>
-#include <QHash>
-
-class HbDataFormModel;
-class HbDataFormModelItem;
-class CpItemDataHelper;
-class CpProfileModel;
-class QFileIconProvider;
-class XQSettingsManager;
-class XQSettingsKey;
-class QVariant;
-
-class CpProfileSettingForm : public HbDataForm
-{
-    Q_OBJECT
-public:
-    
-    enum ProfileItemId {
-        ProfileItemRingTone,
-        ProfileItemMessageTone,
-        ProfileItemEmailTone,
-        ProfileItemReminderTone,
-        ProfileItemNotificationTones,
-        ProfileItemKeyandTouchScreenTones,
-        ProfileItemTouchScreenVibra
-    };
-    
-    CpProfileSettingForm();
-    virtual ~CpProfileSettingForm();
-    
-private slots:
-    
-    //general tones
-    void on_general_notificationTones_stateChanged(int state);
-    void on_general_keysAndScreenToneSlider_ValueChanged( int value );
-    //general vibra
-    void on_general_screenVibra_ValueChanged( int value );
-
-    //meeting tones
-    void on_meeting_notificationTones_stateChanged(int state);
-    void on_meeting_keysAndScreenToneSlider_ValueChanged( int value );
-    
-    //meeting vibar
-    void on_meeting_screenVibra_ValueChanged( int value );
-    
-    void settingValueChanged(const XQSettingsKey &key, const QVariant &value);
-private:
-    void initModel();
-    void initGeneralTonesGroup();
-    //void initGeneralVibraGroup();
-    void initMeetingTonesGroup();
-    //void initMeetingVibraGroup();
-    bool checkBoxStateToBool( int state );
- //   void initRingToneGroup(HbDataFormModelItem *parent);
- //   void initMessageToneGroup(HbDataFormModelItem *parent);
- //   void initAlertToneGroup(HbDataFormModelItem *parent);
- //   void initKeyAndScreenToneGroup(HbDataFormModelItem *parent);
-    
-    void initProfileItems(int profileId,HbDataFormModelItem *parent);
-    HbDataFormModelItem *profileItem(int profileId,int profileItemId);
-    void setMuteIcon(HbDataFormModelItem *silderItem, bool isMute);
-private:
-    HbDataFormModel *mModel;
-    CpItemDataHelper *mItemDataHelper;
-    CpProfileModel  *mProfileModel;
-    QFileIconProvider *mFileIconProvider;
-    
-    HbDataFormModelItem *mGeneralPage;
-    HbDataFormModelItem *mMeetingPage;
-    
-    HbDataFormModelItem *mCurrentPage;
-    
-  //  HbDataFormModelItem *mGeneralKeysAndScreenToneSlider;
- //   HbDataFormModelItem *mGeneralSreenVibra;
- //   HbDataFormModelItem *mMeetingKeysAndScreenToneSlider;
-  //  HbDataFormModelItem *mMeetingSreenVibra;
-    
-    XQSettingsManager *mSettingManager;
-    
-    QHash< int,QHash<int,HbDataFormModelItem*>  > mProfileModelItems;
-};
-
-
-#endif //CPPROFILESETTINGFORM_H
--- a/controlpanelui/src/cpplugins/privacyplugin/data/cpprivacyplugin.cpcfg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<childplugins>
-  <plugin displayname = "Pin code" id = "0X2002E682"  dll = "cppincodeplugin.dll">
-    <desc></desc>
-  </plugin> 
-  
-  <plugin displayname = "Device lock" id = "0X2002E683"  dll = "devicelockplugin.dll">
-    <desc></desc>
-  </plugin> 
-  
-  <plugin displayname = "Advanced security" id = "0X2002E684"  dll = "cpadvancedsecplugin.dll">
-    <desc></desc>
-  </plugin> 
-  
-</childplugins>
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/privacyplugin/privacyplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +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: cpprivacyplugin source files
-#
-
-# Input
-HEADERS += src/cpprivacyplugin.h 
-SOURCES += src/cpprivacyplugin.cpp 
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/privacyplugin/privacyplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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 = cpprivacyplugin
-
-CONFIG += hb plugin
-
-LIBS += -lcpframework
-
-include ( ../cpplugincommon.pri )
-include ( privacyplugin.pri )
-
-symbian: { 
-    TARGET.UID3 = 0x20025FE1
-}
-
-symbian {
-    deploy.path = C:
-    headers.sources = data/cpprivacyplugin.cpcfg
-    headers.path = /resource/qt/plugins/controlpanel/config
-    DEPLOYMENT += exportheaders
-
-    # This is for new exporting system coming in garden
-    for(header, headers.sources):BLD_INF_RULES.prj_exports += "./$$header $$deploy.path$$headers.path/$$basename(header)"
-}
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/privacyplugin/src/cpprivacyplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +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 "cpprivacyplugin.h"
-#include <cpcategorysettingformitemdata.h>
-#include <cpitemdatahelper.h>
-
-CpPrivacyPlugin::CpPrivacyPlugin()
-{
-    
-}
-
-CpPrivacyPlugin::~CpPrivacyPlugin()
-{
-    
-}
-
-QList<CpSettingFormItemData*> CpPrivacyPlugin::createSettingFormItemData(CpItemDataHelper &/*itemDataHelper*/) const
-{
-    CpCategorySettingFormItemData *itemData = 
-            new CpCategorySettingFormItemData(
-            HbDataFormModelItem::GroupItem,
-            hbTrId("txt_cp_subhead_security"),
-            QString("cpprivacyplugin.cpcfg") );
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cpprivacyplugin, CpPrivacyPlugin);
--- a/controlpanelui/src/cpplugins/privacyplugin/src/cpprivacyplugin.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPPRIVACYPLUGIN_H
-#define CPPRIVACYPLUGIN_H
-
-#include <cpplugininterface.h>
-#include <qobject.h>
-
-class CpPrivacyPlugin: public QObject,public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpPrivacyPlugin();
-    virtual ~CpPrivacyPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif /* CPPRIVACYPLUGIN_H */
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/profileactivatorplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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: display plugin source files
-#
-
-# Input
-HEADERS += src/*.h
-
-SOURCES += src/*.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/profileactivatorplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +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 = cpprofileactivator
-
-CONFIG += hb plugin
-
-
-include ( ../cpplugincommon.pri )
-include ( profileactivatorplugin.pri )
-LIBS +=  -lcpprofilewrapper
-symbian { 
-    TARGET.UID3 = 0X20028739
-    TARGET.CAPABILITY = All -TCB 
-    TARGET.EPOCALLOWDLLDATA = 1
-    LIBS +=  -lprofileeng
-}
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatordialog.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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 "cpprofileactivatordialog.h"
-
-#include <hbradiobuttonlist.h>
-#include <hbaction.h>
-#include <hbdataformmodelitem.h>
-#include <hbpopup.h>
-#include <hblabel.h>
-#include "cpprofileactivatorentryitem.h"
-#include <QGraphicsLinearLayout>
-#include <QGraphicsWidget>
-
-CpProfileActivatorDialog::CpProfileActivatorDialog(CpSettingFormItemData *profileActivator,
-                                                    CpProfileModel &profileModel,
-                                                    QGraphicsItem *parent):HbDialog(parent),
-                                                     mProfileModel(profileModel),
-                                                     mProfileList(0),
-                                                     mProfileActivator(profileActivator)
-{
-    mTitleLabel = new HbLabel(this);
-    mTitleLabel->setPlainText(hbTrId("txt_cp_title_profile"));
-    mContentWidget = new QGraphicsWidget(this);
-    setContentWidget(mContentWidget);
-    mLayout = new QGraphicsLinearLayout();
-    mLayout->setOrientation( Qt::Vertical );
-    mProfileIds << EProfileWrapperGeneralId
-                << EProfileWrapperMeetingId;
-    mProfileList = new HbRadioButtonList();
-    mProfileList->setItems(profileModel.profileNames());
-    mLayout->addItem(mTitleLabel);
-    mLayout->addItem(mProfileList);
-       
-    int currentId = mProfileModel.activeProfileId();
-    mProfileList->setSelected(mProfileIds.indexOf(static_cast<ProfileWrapperProfileId>(currentId)));
-    
-    
-        
-    mConfirmProfile = new HbAction(hbTrId("txt_common_button_ok"));
-    mCancelProfile = new HbAction(hbTrId("txt_common_button_cancel"));
-    
-    connect(mConfirmProfile, SIGNAL(triggered(bool)), this, SLOT(confirmProfileSelection()));
-    connect(mCancelProfile, SIGNAL(triggered(bool)), this, SLOT(cancelProfileSelection()));
-        
-    
-    this->addAction(mConfirmProfile);
-    this->addAction(mCancelProfile);    
-    this->setModal(true);
-    this->setDismissPolicy(HbPopup::NoDismiss);
-    this->setTimeout(HbPopup::NoTimeout);
-    mContentWidget->setLayout( mLayout );
-}
-
-CpProfileActivatorDialog::~CpProfileActivatorDialog()
-{
-    
-}
-void CpProfileActivatorDialog::confirmProfileSelection()
-{
-    int currentIndex = mProfileList->selected();
-    if (currentIndex == -1) {
-        return;
-    }
-    
-    // the best choice is no need to convert the index to id
-    mProfileModel.activateProfile(mProfileIds.at(currentIndex));
-}
-void CpProfileActivatorDialog::cancelProfileSelection()
-{
-    
-}
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatordialog.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:
- *
- */
-#ifndef CPPROFILEACTIVATORDIALOG_H
-#define CPPROFILEACTIVATORDIALOG_H
-
-#include <hbdialog.h>
-#include <cpprofilemodel.h>
-#include <QPointer>
-class HbRadioButtonList;
-class HbDataFormModelItem;
-class CpProfileActivatorEntryItem;
-class CpSettingFormItemData;
-class QGraphicsLinearLayout;
-class QGraphicsWidget;
-class HbLabel;
-
-class CpProfileActivatorDialog: public HbDialog
-{
-    Q_OBJECT
-public:
-    explicit CpProfileActivatorDialog(CpSettingFormItemData *profileActivator,
-                                      CpProfileModel &profileModel,
-                                      QGraphicsItem *parent = 0);
-    ~CpProfileActivatorDialog();
-    
-private slots:
-    void confirmProfileSelection();
-    void cancelProfileSelection();
-private:
-    CpProfileModel &mProfileModel;
-    HbRadioButtonList *mProfileList;
-    CpSettingFormItemData *mProfileActivator;
-    QPointer<HbAction> mConfirmProfile;
-    QPointer<HbAction> mCancelProfile;
-    QList<ProfileWrapperProfileId> mProfileIds;
-    QGraphicsLinearLayout *mLayout;
-    QGraphicsWidget *mContentWidget;
-    HbLabel *mTitleLabel;
-};
-#endif
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorentryitem.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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 "cpprofileactivatorentryitem.h"
-
-#include "cpprofileactivatordialog.h"
-#include <cpitemdatahelper.h>
-#include <cpprofilemodel.h>
-#include <QScopedPointer>
-#include <cpprofilemonitor.h>
-
-CpProfileActivatorEntryItem::CpProfileActivatorEntryItem(CpItemDataHelper &itemDataHelper,
-                const QString &text,
-                const QString &description,
-                const QString &icon,
-                const HbDataFormModelItem *parent)
-                :CpSettingFormEntryItemData(CpSettingFormEntryItemData::ListEntryItem, itemDataHelper,text,description,
-                                            icon,parent),mProfileModel(0),mProfileMonitor(0)
-{
-    mProfileMonitor = new CpProfileMonitor();
-    mProfileModel = new CpProfileModel();
-    
-    int currentId = mProfileModel->activeProfileId();
-    QString currentName = mProfileModel->profileName(currentId);
-    this->setDescription(currentName);
-    connect(mProfileMonitor, SIGNAL(profileActivated(int)), this, SLOT(onProfileChanged(int)));        
-}
-
-CpProfileActivatorEntryItem::~CpProfileActivatorEntryItem()
-{
-    delete mProfileModel;
-    delete mProfileMonitor;
-}
-
-void CpProfileActivatorEntryItem::onLaunchView()
-{
-    CpProfileActivatorDialog *dialog = 
-        new CpProfileActivatorDialog(this, *mProfileModel);
-    dialog->setAttribute(Qt::WA_DeleteOnClose);
-   // dialog->open(this, SLOT(ultimateDialogSlot(HbAction*)));
-    dialog->show();
-    
-}
-
-void CpProfileActivatorEntryItem::onProfileChanged(int activeProfileId)
-{
-    QString profileName = mProfileModel->profileName(activeProfileId);
-    this->setDescription(profileName);    
-}
-/*void CpPersonalizationEntryItemData::handleOk(const QVariant &result)
-{
-    if (!result.canConvert<QString>())
-    {
-        setDescription( "Corrupt result" );
-    }
-    else
-    {
-        setDescription( result.value<QString>() );
-    }
-}
-void CpPersonalizationEntryItemData::handleError(int errorCode, const QString& errorMessage)
-{
-    //
-    Q_UNUSED(errorCode);
-    Q_UNUSED(errorMessage);
-    setDescription("Error");
-}*/
-
-CpBaseSettingView *CpProfileActivatorEntryItem::createSettingView() const
-{
-        return 0;
-}
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorentryitem.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +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:
- *
- */
-#ifndef CPPROFILEACTIVATORENTRYITEM_H
-#define CPPROFILEACTIVATORENTRYITEM_H
-
-#include <cpsettingformentryitemdata.h>
-
-class CpProfileModel;
-class CpProfileMonitor;
-
-class CpProfileActivatorEntryItem : public CpSettingFormEntryItemData
-{
-Q_OBJECT
-public:
-    explicit CpProfileActivatorEntryItem(CpItemDataHelper &itemDataHelper,
-            const QString &text = QString(), const QString &description =
-                    QString(), const QString &icon = QString(),
-            const HbDataFormModelItem *parent = 0);
-    virtual ~CpProfileActivatorEntryItem();
-private slots:
-    void onLaunchView();
-    void onProfileChanged(int activeProfileId);
-    //void handleOk(const QVariant &result);
-    //void handleError(int errorCode, const QString& errorMessage);
-private:
-    virtual CpBaseSettingView *createSettingView() const;
-private:
-    CpProfileModel *mProfileModel;
-    CpProfileMonitor *mProfileMonitor;
-};
-
-#endif // CPPROFILEACTIVATORENTRYITEM_H
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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 "cpprofileactivatorplugin.h"
-#include "cpprofileactivatorentryitem.h"
-
-CpProfileActivatorPlugin::CpProfileActivatorPlugin()
-{
-}
-
-CpProfileActivatorPlugin::~CpProfileActivatorPlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpProfileActivatorPlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    CpSettingFormItemData* itemData = new CpProfileActivatorEntryItem(
-                                            itemDataHelper,
-                                            hbTrId("txt_cp_dblist_profile"),
-                                            " ",
-                                            "qtg_large_profiles");
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cpprofileactivatorplugin, CpProfileActivatorPlugin);
--- a/controlpanelui/src/cpplugins/profileactivatorplugin/src/cpprofileactivatorplugin.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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:  
- *   
- */
-#ifndef	CPPROFILEACTIVATOR_H
-#define	CPPROFILEACTIVATOR_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpProfileActivatorPlugin : public QObject, public CpPluginInterface
-{
-Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpProfileActivatorPlugin();
-    virtual ~CpProfileActivatorPlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif	//CPPROFILEACTIVATOR_H
--- a/controlpanelui/src/cpplugins/ringtoneplugin/ringtoneplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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: display plugin source files
-#
-
-# Input
-HEADERS += src/*.h
-
-SOURCES += src/*.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/ringtoneplugin/ringtoneplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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 = cpringtoneplugin
-CONFIG += hb plugin
-
-include ( ../cpplugincommon.pri )
-include ( ringtoneplugin.pri )
-
-symbian { 
-    LIBS +=  -lcpprofilewrapper -lxqservice -lxqserviceutil -lcpringtoneview -lxqsettingsmanager
-    TARGET.UID3 = 0X20028738
-    TARGET.CAPABILITY = All -TCB 
-    TARGET.EPOCALLOWDLLDATA = 1
-}
--- a/controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +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 "cppersonalizationentryitemdata.h"
-#include <cpitemdatahelper.h>
-#include <cpprofilemodel.h>
-#include <cplogger.h>
-#include <qdir.h>
-#include <xqsettingsmanager.h>
-#include <xqcentralrepositoryutils.h>
-#include <xqcentralrepositorysearchcriteria.h>
-#include <ProfileEngineInternalCRKeys.h>
-
-#include "cpringtoneview.h"
-
-
-const QString g_strNoTone("Z:\\resource\\No_Sound.wav");
-CpPersonalizationEntryItemData::CpPersonalizationEntryItemData(CpItemDataHelper &itemDataHelper,
-                const QString &text,
-                const QString &description,
-                const QString &icon,
-                Profile_Tone_Types toneType,
-                int profileId,
-                const HbDataFormModelItem *parent)
-                :CpSettingFormEntryItemData(CpSettingFormEntryItemData::ListEntryItem, itemDataHelper,text,description,icon,parent),
-                mProfileModel(0),
-                m_profileID(profileId),
-                mToneType(toneType),
-                mSettingManager(0)
-{
-    Q_UNUSED(itemDataHelper);   //reserve for future
-    CPFW_LOG("CpPersonalizationEntryItemData::CpPersonalizationEntryItemData(), START");
-    mProfileModel = new CpProfileModel();
-    if( mProfileModel )
-    {
-        QString strRing = loadStringValue();
-        if( QFileInfo(strRing) == QFileInfo(g_strNoTone) )
-        {
-            setDescription( hbTrId("txt_cp_list_no_tone" ) );   //sepcial handling about NoTone
-        }
-        else
-        {
-		    setDescription( QFileInfo(strRing).baseName() );
-        }
-    }
-    else
-    {
-        CPFW_LOG("CpPersonalizationEntryItemData::mProfileModel:NULL!");
-    }
-    mSettingManager = new XQSettingsManager();
-    XQCentralRepositorySettingsKey key(KCRUidProfileEngine.iUid,KProEngSilenceMode);
-    
-    //Monitoring the active ring tone
-    XQCentralRepositorySettingsKey keyForActiveRingTone(KCRUidProfileEngine.iUid,KProEngActiveRingTone);
-    
-    QVariant silenceMode = mSettingManager->readItemValue( key,XQSettingsManager::TypeInt );
-    setEnabled( !silenceMode.toInt() );
-    mSettingManager->startMonitoring( key,XQSettingsManager::TypeInt );
-    mSettingManager->startMonitoring(keyForActiveRingTone, XQSettingsManager::TypeString);
-    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
-            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
-
-}
-void CpPersonalizationEntryItemData::settingValueChanged( const XQSettingsKey& key, const QVariant& value )
-{
-    switch (key.key()) {
-        case KProEngActiveRingTone:
-        {
-            QString strRing = loadStringValue();
-            if( QFileInfo(strRing) == QFileInfo(g_strNoTone) )
-            {
-                setDescription( hbTrId("txt_cp_list_no_tone" ) );   //sepcial handling about NoTone
-            }
-            else
-            {
-                setDescription( QFileInfo(strRing).baseName() );
-            }
-            break;
-        }
-        case KProEngSilenceMode:
-        {
-            setEnabled( !value.toInt() );
-            break;
-            
-        }
-        default:
-            break;
-    }    
-}
-
-CpPersonalizationEntryItemData::~CpPersonalizationEntryItemData()
-{
-    if( mProfileModel )
-    {
-        delete mProfileModel;
-        mProfileModel = 0;
-    }
-    if( mSettingManager )
-    {
-        delete mSettingManager;
-    }
-}
-
-QString CpPersonalizationEntryItemData::loadStringValue() const
-{
-    QString strRing;
-    switch( mToneType )
-    {
-    case TONE_Message:
-        if( m_profileID>=0 )
-        {
-            strRing = mProfileModel->messageTone( m_profileID );
-        }
-        break;
-    case TONE_Email:
-        if( m_profileID >=0 )
-        {
-            strRing = mProfileModel->emailTone( m_profileID );
-        }
-        break;
-    case TONE_Reminder:
-        if( m_profileID >=0 )
-        {
-            strRing = mProfileModel->reminderTone( m_profileID );
-        }
-        break;
-    case TONE_Ring:
-    default:
-        if( m_profileID <0 )
-        {
-            
-            strRing = mProfileModel->ringTone();
-        }
-        else
-        {
-            strRing = mProfileModel->ringTone( m_profileID );
-        }
-        break;
-    }
-
-    return strRing;
-}
-void CpPersonalizationEntryItemData::storeStringValue( const QString &strValue ) const
-{
-    QString strInput = strValue;
-    if( strInput.length() == 0 )
-    {
-        strInput = g_strNoTone;
-    }
-    switch( mToneType )
-    {
-    case TONE_Message:
-        if( m_profileID >=0 )
-        {
-            mProfileModel->setMessageTone( m_profileID, strInput );
-        }
-        break;
-    case TONE_Email:
-        if( m_profileID >=0 )
-        {
-            mProfileModel->setEmailTone( m_profileID, strInput );
-        }
-        break;
-    case TONE_Reminder:
-        if( m_profileID >=0 )
-        {
-            mProfileModel->setReminderTone( m_profileID, strInput );
-        }
-        break;
-    case TONE_Ring:
-    default:
-        if( m_profileID <0 )
-        {
-            mProfileModel->setRingTone( strInput );
-        }
-        else
-        {
-            mProfileModel->setRingTone( m_profileID, strInput );
-        }
-        break;
-    }
-}
-
-void CpPersonalizationEntryItemData::handleOk(const QString &strFname)
-{
-    if(strFname.length())
-    {   
-        //lower level services(tone fetcher or music fetcher)
-        //will guarantee strFname is a valid absolute file path.
-        setDescription(QFileInfo(strFname).baseName());
-    }
-    else
-    {
-        setDescription( hbTrId("txt_cp_list_no_tone" ) );
-    }
-    storeStringValue(strFname);
-}
-
-
-void CpPersonalizationEntryItemData::handleError(int errorCode, const QString& errorMessage)
-{
-    Q_UNUSED(errorCode);
-    Q_UNUSED(errorMessage);
-}
-
-CpBaseSettingView *CpPersonalizationEntryItemData::createSettingView() const
-{
-    CpRingToneView *pView = new CpRingToneView( );
-    connect( pView, SIGNAL( selOK( const QString&)),SLOT(handleOk(const QString &)) );
-    connect( pView, SIGNAL( selError( int, const QString& ) ), SLOT( handleOk(const QString &)) );
-    return pView;
-}
--- a/controlpanelui/src/cpplugins/ringtoneplugin/src/cppersonalizationentryitemdata.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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:
- *
- */
-#ifndef CPPERSONALIZATIONENTRYITEMDATA_H
-#define CPPERSONALIZATIONENTRYITEMDATA_H
-
-#include <cpsettingformentryitemdata.h>
-#include <xqsettingskey.h>
-
-class CpProfileModel;
-class XQSettingsManager;
-
-class CpPersonalizationEntryItemData : public CpSettingFormEntryItemData
-{
-    Q_OBJECT
-public:
-        typedef enum
-        {
-            TONE_Ring = 0,
-            TONE_Message,
-            TONE_Email,
-            TONE_Reminder
-        }Profile_Tone_Types;
-
-        explicit CpPersonalizationEntryItemData(CpItemDataHelper &itemDataHelper,
-                const QString &text = QString(),
-                const QString &description = QString(),
-                const QString &icon = QString(),
-                Profile_Tone_Types toneType = TONE_Ring,
-                int profileId = -1,
-                const HbDataFormModelItem *parent = 0);
-        virtual ~CpPersonalizationEntryItemData();
-private slots:
-        void handleOk(const QString &strFname);
-        void handleError( int errorCode, const QString& errorMessage );
-        void settingValueChanged( const XQSettingsKey& key, const QVariant& value );
-private:
-        virtual CpBaseSettingView *createSettingView() const;
-        QString loadStringValue() const;
-        void storeStringValue( const QString &strvalue ) const;
-private:
-        CpProfileModel *mProfileModel;
-        int m_profileID;
-        Profile_Tone_Types mToneType;
-        XQSettingsManager *mSettingManager;
-};
-
-#endif // CPPERSONALIZATIONENTRYITEMDATA_H
--- a/controlpanelui/src/cpplugins/ringtoneplugin/src/cpringtoneplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +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 "cpringtoneplugin.h"
-#include "cppersonalizationentryitemdata.h"
-
-CpRingTonePlugin::CpRingTonePlugin()
-{
-}
-
-CpRingTonePlugin::~CpRingTonePlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpRingTonePlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    CpPersonalizationEntryItemData *itemData 
-        = new CpPersonalizationEntryItemData(
-                itemDataHelper,
-                hbTrId("txt_cp_dblist_ringtone"),
-				QString(""),
-				"qtg_large_ring_tone");
-    return QList<CpSettingFormItemData*>() << itemData;
-}
-
-Q_EXPORT_PLUGIN2(cpringtoneplugin, CpRingTonePlugin);
--- a/controlpanelui/src/cpplugins/ringtoneplugin/src/cpringtoneplugin.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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:  
- *   
- */
-#ifndef	CPRINGTONEPLUGIN_H
-#define	CPRINGTONEPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpRingTonePlugin : public QObject, public CpPluginInterface
-{
-Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpRingTonePlugin();
-    virtual ~CpRingTonePlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif	//CPRINGTONEPLUGIN_H
--- a/controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_decrement.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="33.999,26 10,26 10,17.998 33.999,17.998 "/>
-<rect fill="#FFFFFF" height="4" width="20" x="12" y="20"/>
-</svg>
--- a/controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_decrement_pressed.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="33.999,26 10,26 10,17.998 33.999,17.998 "/>
-<rect fill="#00FF00" height="4" width="20" x="12" y="20"/>
-</svg>
--- a/controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_increment.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="26.001,33.999 18,33.999 18,26.001 10,26.001 10,18 18,18 18,9.999 26.001,9.999 26.001,18 33.999,18   33.999,26.001 26.001,26.001 "/>
-<polygon fill="#FFFFFF" points="31.999,20 23.999,20 23.999,12 20,12 20,20 12,20 12,23.999 20,23.999 20,31.999 23.999,31.999   23.999,23.999 31.999,23.999 "/>
-</svg>
--- a/controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_increment_pressed.svg	Tue Aug 31 15:15:28 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 baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<polygon points="26.001,33.999 18,33.999 18,26.001 10,26.001 10,18 18,18 18,9.999 26.001,9.999 26.001,18 33.999,18   33.999,26.001 26.001,26.001 "/>
-<polygon fill="#00FF00" points="31.999,20 23.999,20 23.999,12 20,12 20,20 12,20 12,23.999 20,23.999 20,31.999 23.999,31.999   23.999,23.999 31.999,23.999 "/>
-</svg>
--- a/controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_muted.svg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +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" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<path d="M25.824,21.015V8.411h-9.979l-1.025,1.6L8.354,3.545L3.651,8.242l6.797,6.795H4.931v15.818h6.671l4.24,6.625h9.982v-7.067  l7.902,7.905l4.697-4.703L25.824,21.015z M19.179,30.336L15.26,24.21h-3.682v-2.524h3.682l0.715-1.121l3.204,3.203V30.336z"/>
-<rect fill="#FFFFFF" height="2.648" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 21.1169 50.6082)" width="38.533" x="1.773" y="19.607"/>
-<polygon fill="#FFFFFF" points="21.179,32.835 18.403,32.835 14.166,26.209 9.578,26.209 9.578,19.685 14.166,19.685 14.463,19.219   12.279,17.037 6.931,17.037 6.931,28.855 12.695,28.855 16.937,35.48 23.824,35.48 23.824,28.579 21.179,25.936 "/>
-<polygon fill="#FFFFFF" points="18.403,13.06 21.179,13.06 21.179,16.202 23.824,18.847 23.824,10.412 16.937,10.412 16.332,11.355   18.259,13.284 "/>
-</svg>
--- a/controlpanelui/src/cpplugins/volumeplugin/icon/hb_vol_slider_unmuted.svg	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
-<svg baseProfile="tiny" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<path d="M34.951,38.12l-5.054-4.302l1.282-1.521c0.877-1.04,8.324-10.39,0.111-18.605l-1.414-1.413l4.697-4.701l1.413,1.415  c12.695,12.699,0.386,27.46,0.259,27.606L34.951,38.12L34.951,38.12z"/>
-<path d="M30.761,14.545l-1.414-1.412l-3.521,3.521V8.411h-9.981l-4.24,6.624H4.93v15.82h6.674l4.24,6.625h9.981v-8.201l3.855,3.287  l1.298-1.521C33.574,28.005,36.864,20.643,30.761,14.545z M19.18,30.335l-3.921-6.128h-3.682v-2.522h3.682l3.921-6.128V30.335z   M25.918,26.742l-0.094,0.109v-7.844l0.237,0.236C29.324,22.505,26.277,26.318,25.918,26.742z"/>
-<path d="M27.476,17.83c4.622,4.622,0.158,9.979-0.031,10.203l2.014,1.714c2.181-2.554,4.957-8.725-0.11-13.788  L27.476,17.83z" fill="#FFFFFF"/>
-<path d="M34.576,10.406l-1.873,1.871c9.664,9.663,0.404,20.838,0.006,21.309l2.017,1.717  C34.838,35.17,45.974,21.811,34.576,10.406z" fill="#FFFFFF"/>
-<path d="M16.937,10.411l-4.242,6.625H6.931v11.819h5.764l4.242,6.625h6.887V10.411H16.937z M21.179,32.834h-2.776  l-4.237-6.626H9.578v-6.524h4.588l4.237-6.625h2.776V32.834z" fill="#FFFFFF"/>
-</svg>
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cppersonalizationcustomviewitem.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +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 "cppersonalizationcustomviewitem.h"
-#include <hbdataformmodelitem.h>
-#include <hbdataformmodel.h>
-#include <hbabstractitemview.h>
-#include <QMetaProperty>
-#include <hbpushbutton.h>
-
-CpPersonalizationCustomViewItem::CpPersonalizationCustomViewItem(QGraphicsItem *parent )
-																: HbDataFormViewItem(parent),
-																  mWidget(0)
-{
-}
-CpPersonalizationCustomViewItem::~CpPersonalizationCustomViewItem()
-{
-}
-HbAbstractViewItem* CpPersonalizationCustomViewItem::createItem()
-{
-	return new CpPersonalizationCustomViewItem(*this);
-}
-bool CpPersonalizationCustomViewItem::canSetModelIndex(const QModelIndex &index) const
-{
-    CpVolumeCustomItemType type = static_cast<CpVolumeCustomItemType>(index.data(HbDataFormModelItem::ItemTypeRole).toInt());
-	/*if (type == MasterVolumeSliderItem) {
-		return true;
-	}
-	else*/ if (type == SilenceIndicatorItem) {
-        return true;
-	} 
-	else {
-		return false;
-	}
-}
-
-HbWidget *CpPersonalizationCustomViewItem::createCustomWidget()
-{
-    CpVolumeCustomItemType type = static_cast<CpVolumeCustomItemType>
-                (modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
-	/*if (type == MasterVolumeSliderItem) {
-		CpMasterVolumeSlider *masterVolumeSlider = new CpMasterVolumeSlider();
-		connect(masterVolumeSlider, SIGNAL(valueChanged(int)), this, SLOT(store()));
-		mWidgetMap.insert(type,masterVolumeSlider);
-		return masterVolumeSlider;
-	} else*/ if (type == SilenceIndicatorItem ) {
-        HbPushButton *slienceIndicator = new HbPushButton();
-        slienceIndicator->setCheckable(true);
-        connect(slienceIndicator, SIGNAL(toggled(bool)),this,SLOT(store()));
-        mWidget = slienceIndicator;
-        return slienceIndicator;
-	}
-	else {
-		return 0;
-	}
-}
-
-void CpPersonalizationCustomViewItem::load()
-{
-	//HbDataFormViewItem::load();
-	
-    CpVolumeCustomItemType itemType = static_cast<CpVolumeCustomItemType>(
-        modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
-
-    if(itemType == SilenceIndicatorItem) {
-        
-        QModelIndex itemIndex = modelIndex();
-        HbDataFormModel *model = static_cast<HbDataFormModel*>(itemView()->model());;
-        HbDataFormModelItem *modelItem = static_cast<HbDataFormModelItem*>(
-            model->itemFromIndex(itemIndex));
-        
-       
-        if (mWidget != 0) {
-            const QMetaObject *metaObj = mWidget->metaObject();
-            int count = metaObj->propertyCount();
-            for (int i = 0; i < count; i++) {
-                QMetaProperty metaProperty = metaObj->property(i);
-                if (metaProperty.isValid() && metaProperty.isWritable()) {
-                    metaProperty.write(mWidget,modelItem->contentWidgetData(metaProperty.name()));
-                }
-            }
-        }
-    }	
-}
-
-void CpPersonalizationCustomViewItem::restore()
-{
-    HbDataFormViewItem::restore();
-    
-    CpVolumeCustomItemType itemType = static_cast<CpVolumeCustomItemType>(
-        modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
-
-    if(itemType == SilenceIndicatorItem) {
-        
-        QModelIndex itemIndex = modelIndex();
-        HbDataFormModel *model = static_cast<HbDataFormModel*>(itemView()->model());;
-        HbDataFormModelItem *modelItem = static_cast<HbDataFormModelItem*>(
-            model->itemFromIndex(itemIndex));
-        
-       
-        if (mWidget != 0) {
-            const QMetaObject *metaObj = mWidget->metaObject();
-            int count = metaObj->propertyCount();
-            for (int i = 0; i < count; i++) {
-                QMetaProperty metaProperty = metaObj->property(i);
-                if (metaProperty.isValid() && metaProperty.isWritable()) {
-                    metaProperty.write(mWidget,modelItem->contentWidgetData(metaProperty.name()));
-                }
-            }
-        }
-    }   
-}
-
-
-void CpPersonalizationCustomViewItem::store()
-{
-	//HbDataFormViewItem::store();
-
-    CpVolumeCustomItemType itemType = static_cast<CpVolumeCustomItemType>(
-        modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
-
-    if(itemType == SilenceIndicatorItem) {
-
-        QModelIndex itemIndex = modelIndex();
-        HbDataFormModel *model = static_cast<HbDataFormModel*>(itemView()->model());
-        HbDataFormModelItem *modelItem = static_cast<HbDataFormModelItem*>(
-            model->itemFromIndex(itemIndex));
-        
-        
-        /*if (CpMasterVolumeSlider *slider = qobject_cast<CpMasterVolumeSlider *>(widget)) {
-            modelItem->setContentWidgetData("value",slider->value());
-        }*/
-        if (HbPushButton *silenceIndicator = qobject_cast<HbPushButton *>(mWidget)) {
-            modelItem->setContentWidgetData("checked",silenceIndicator->isChecked());
-        }                
-    }
-}
-
-/*void CpPersonalizationCustomViewItem::onValueChanged(int value)
-{
-	HbDataFormModelItem::DataItemType itemType = static_cast<HbDataFormModelItem::DataItemType>(
-									modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
-
-	if(itemType == MasterVolumeSliderItem) {
-
-		QModelIndex itemIndex = modelIndex();
-		HbDataFormModel *model = static_cast<HbDataFormModel*>(itemView()->model());;
-		HbDataFormModelItem *modelItem = static_cast<HbDataFormModelItem*>(
-			model->itemFromIndex(itemIndex));
-		modelItem->setContentWidgetData("value",value);
-	}
-}*/
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cppersonalizationcustomviewitem.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +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:  
- *
- */
-#ifndef CP_PERSONALIZATION_CUSTOMVIEWITEM_H
-#define CP_PERSONALIZATION_CUSTOMVIEWITEM_H
-
-#include <hbdataformviewitem.h>
-#include <hbdataformmodelitem.h>
-#include <QMap>
-
-class HbWidget;
-
-enum CpVolumeCustomItemType {
-    MasterVolumeSliderItem = HbDataFormModelItem::CustomItemBase+21, 
-    SilenceIndicatorItem = HbDataFormModelItem::CustomItemBase+22
-};
-
-class CpPersonalizationCustomViewItem: public HbDataFormViewItem
-{
-	Q_OBJECT
-public:
-    explicit CpPersonalizationCustomViewItem(QGraphicsItem *parent = 0);
-    ~CpPersonalizationCustomViewItem();
-    virtual HbAbstractViewItem* createItem();
-	virtual bool canSetModelIndex(const QModelIndex &index) const;
-public slots:
-		virtual void load();
-		virtual void store();
-		virtual void restore();
-/*private slots:
-	void onValueChanged(int value);*/
-protected:
-    virtual HbWidget* createCustomWidget();
-private:
-    //QMap<CpVolumeCustomItemType, HbWidget *> mWidgetMap;
-    HbWidget *mWidget;
-};
-#endif
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cpvolumecontroller.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +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 "cpvolumecontroller.h"
-#include <cplogger.h>
-#include <cpitemdatahelper.h>
-#include <hbdataformmodelitem.h>
-#include "cpvolumegroupitemdata.h"
-#ifdef Q_OS_SYMBIAN
-	#include <cpprofilemodel.h>
-#endif
-//#include <hbslider.h>
-//#include <hbpushbutton.h>
-
-#include <xqsettingsmanager.h>
-#include <ProfileEngineInternalCRKeys.h>
-#include <ProfileInternal.hrh>
-
-CpVolumeController::CpVolumeController(CpProfileModel *profileModel,
-                                       const QList<HbDataFormModelItem *> &itemList,
-                                       CpItemDataHelper &itemDataHelper) : 
-                                       mProfileModel(profileModel),
-                                       mItemList(itemList),
-                                       mSettingManager(0)
-															 
-{
-	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(beepActivated()),this,SLOT(onBeepActivated()));
-	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(silentActivated()),this,SLOT(onSilentActivated()));
-	//itemDataHelper.addConnection(mMasterVolumeItem,SIGNAL(normalValueChanged(int)),this,SLOT(onNormalValueChanged(int)));
-	//updateMasterVolumeValue();
-    
-    
-    itemDataHelper.addConnection(
-                mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem), SIGNAL(toggled(bool)),
-                this, SLOT(silenceModeChange(bool))
-            );
-    
-    
-    itemDataHelper.addConnection(
-                mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem), SIGNAL(valueChanged(int)),
-                this, SLOT(masterVolumeChange(int))
-            );
-    itemDataHelper.addConnection(
-                mItemList.at(CpVolumeGroupItemData::EVolumeMasterVibraItem), SIGNAL(stateChanged(int)),
-                this, SLOT(masterVibraChange(int))
-            );
-    updateUi();
-    
-    mSettingManager = new XQSettingsManager();
-    
-    XQCentralRepositorySettingsKey silenceKey(KCRUidProfileEngine.iUid,KProEngSilenceMode);
-    mSettingManager->startMonitoring(silenceKey,XQSettingsManager::TypeInt);
-   
-    XQCentralRepositorySettingsKey masterVolumeKey
-                                    (KCRUidProfileEngine.iUid,KProEngMasterVolume);
-    mSettingManager->startMonitoring(masterVolumeKey,XQSettingsManager::TypeInt);
-    
-    XQCentralRepositorySettingsKey masterVibraKey
-                                    (KCRUidProfileEngine.iUid,KProEngMasterVibra);
-    mSettingManager->startMonitoring(masterVibraKey,XQSettingsManager::TypeInt);
-    
-    connect(mSettingManager, SIGNAL(valueChanged (XQSettingsKey, QVariant)),
-            this, SLOT(settingValueChanged(XQSettingsKey, QVariant)));
-}
-
-CpVolumeController::~CpVolumeController()
-{
-    delete mSettingManager;
-}
-
-void CpVolumeController::silenceModeChange(bool isSilence)
-{
-#ifdef Q_OS_SYMBIAN
-	mProfileModel->setSilenceMode(isSilence);
-#endif
-}
-
-
-void CpVolumeController::masterVolumeChange(int value)
-{
-#ifdef Q_OS_SYMBIAN	
-    mProfileModel->setMasterVolume(value);
-	HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
-	masterVolume->setContentWidgetData("value",value);
-#endif
-}
-
-void CpVolumeController::masterVibraChange(int state)
-{
-#ifdef Q_OS_SYMBIAN
-    mProfileModel->setMasterVibra(state);
-#endif
-}
-
-void CpVolumeController::updateUi()
-{
-#ifdef Q_OS_SYMBIAN
-	bool isSilenceMode = mProfileModel->silenceMode();
-	HbDataFormModelItem *silenceIndicator = mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem);
-	if(silenceIndicator) {
-			silenceIndicator->setContentWidgetData("checked",isSilenceMode);		
-	}
-	HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
-	if (masterVolume) {
-	    CPFW_LOG("::updateMasterVolumeValue(), Start using profile model.");
-	    QMap<QString, QVariant> iconMaps;
-	    if (isSilenceMode) {
-	        CPFW_LOG("::updateMasterVolumeValue(), Got silent state.");
-	        iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
-	        iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
-	        iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
-	    }
-	    else {
-            iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
-	        iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
-	        iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg"));
-	    }
-	    masterVolume->setContentWidgetData("elementIcons", iconMaps);
-	    masterVolume->setEnabled(!isSilenceMode);
-	    //masterVolume->setContentWidgetData("enabled",!isSilenceMode);
-	    masterVolume->setContentWidgetData("value",mProfileModel->masterVolume());
-	}
-	HbDataFormModelItem *masterVibra = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVibraItem);
-	if (masterVibra) {
-        masterVibra->setContentWidgetData("checkState",(mProfileModel->masterVibra()?2:0));
-	} 
-	
-#endif
-}
-
-void CpVolumeController::settingValueChanged(const XQSettingsKey &key, const QVariant &value)
-{
-    if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngSilenceMode) {
-        HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
-        if (masterVolume) {
-        		QMap<QString, QVariant> iconMaps;
-        		if (value.toBool()) {
-                    iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
-        		    iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
-        			iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
-        		}
-        		else {
-                    iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
-        		    iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
-        		    iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_unmuted.svg"));
-        		}
-        		masterVolume->setContentWidgetData("elementIcons", iconMaps);
-            masterVolume->setEnabled(!value.toBool());
-        }
-        HbDataFormModelItem *silenceMode = mItemList.at(CpVolumeGroupItemData::EVolumeSilenceItem);
-        if (silenceMode) {
-            silenceMode->setContentWidgetData("checked",value.toInt() != 0);
-        }
-    }
-    else if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngMasterVolume) {
-        HbDataFormModelItem *masterVolume = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVolumeItem);
-        if (masterVolume) {
-            masterVolume->setContentWidgetData("value",value.toInt());
-        }
-    }
-    else if (key.uid() == KCRUidProfileEngine.iUid && key.key() == KProEngMasterVibra) {
-        HbDataFormModelItem *masterVibra = mItemList.at(CpVolumeGroupItemData::EVolumeMasterVibraItem);
-        if (masterVibra) {
-            masterVibra->setContentWidgetData("checkState",(value.toInt() ? 2 : 0));
-        }
-    }
-}
-
-//End of File
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cpvolumecontroller.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:  
- *
- */
-#ifndef CPVOLUMECONTROLLER_H
-#define CPVOLUMECONTROLLER_H
-
-#include <QObject>
-
-class CpProfileModel;
-class HbDataFormModelItem;
-class CpItemDataHelper;
-class XQSettingsManager;
-class XQSettingsKey;
-class QVariant;
-
-class CpVolumeController : public QObject
-{
-	Q_OBJECT
-public:
-    CpVolumeController(CpProfileModel *profileModel,
-		const QList<HbDataFormModelItem *> &itemList,
-		CpItemDataHelper &itemDataHelper);
-	virtual ~CpVolumeController();
-
-private slots:
-    void silenceModeChange(bool isSilence);
-    void masterVolumeChange(int value);
-    void masterVibraChange(int state);
-    
-    void settingValueChanged(const XQSettingsKey &key, const QVariant &value);
-    
-private:
-	void updateUi();	
-	
-private:
-	CpProfileModel *mProfileModel;
-	QList<HbDataFormModelItem *> mItemList;
-	XQSettingsManager *mSettingManager;
-};
-
-#endif
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cpvolumegroupitemdata.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +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 "cpvolumegroupitemdata.h"
-#include <cplogger.h>
-#include <QStringList>
-#include <cpsettingformentryitemdataimpl.h>
-#include <cpbasesettingview.h>
-#include <cpitemdatahelper.h>
-#include <hbmessagebox.h>
-#include <cpprofilemodel.h>
-//#include "cpmastervolumevaluecontroller.h"
-#include "cpvolumecontroller.h"
-#include "cppersonalizationcustomviewitem.h"
-#include <hbslider.h>
-
-CpVolumeGroupItemData::CpVolumeGroupItemData(CpItemDataHelper &itemDataHelper)
-: CpSettingFormItemData(HbDataFormModelItem::GroupItem,hbTrId("txt_cp_subhead_volume")),//mSilenceIndicator(0),
-                                                                                   //mMasterVolume(0),
-                                                                                   //mMasterVibra(0),
-                                                                                   mVolumeController(0),
-                                                                                   mProfileModel(0)
-{
-    initItems(itemDataHelper);
-}
-
-CpVolumeGroupItemData::~CpVolumeGroupItemData()
-{
-    delete mProfileModel;
-    delete mVolumeController;
-}
-
-void CpVolumeGroupItemData::initItems(CpItemDataHelper &itemDataHelper)
-{
-    mProfileModel = new CpProfileModel();
-        
-    itemDataHelper.addItemPrototype(new CpPersonalizationCustomViewItem);
-    CPFW_LOG("CpVolumeGroupItemData::initItems(), get active profile id");
-    CPFW_LOG("CpVolumeGroupItemData::initItems(), succeed in getting id");
-    
-    HbDataFormModelItem *silenceIndicator = new HbDataFormModelItem(static_cast<HbDataFormModelItem::DataItemType>(SilenceIndicatorItem));
-    mItemList.insert(CpVolumeGroupItemData::EVolumeSilenceItem, silenceIndicator);
-    silenceIndicator->setContentWidgetData("text",hbTrId("txt_cp_button_silence"));
-    silenceIndicator->setContentWidgetData("objectName", "silenceIndicatorButton");
-    this->appendChild(silenceIndicator);
-    
-    HbDataFormModelItem *masterVolume = new HbDataFormModelItem(HbDataFormModelItem::SliderItem,
-                                            hbTrId("txt_cp_setlabel_ringing_volume"));
-    mItemList.insert(CpVolumeGroupItemData::EVolumeMasterVolumeItem, masterVolume);
-    QList<QVariant> elements;
-    elements << QVariant(HbSlider::IncreaseElement) << QVariant(HbSlider::TrackElement)
-            << QVariant(HbSlider::DecreaseElement) << QVariant(HbSlider::IconElement)
-            << QVariant(HbSlider::TextElement);
-    masterVolume->setContentWidgetData("sliderElements",elements);
-    masterVolume->setContentWidgetData("objectName","masterVolumeSlider");
-    
-    QMap<QString, QVariant> iconMaps;
-    iconMaps.insert(QString("DecreaseElement"), QVariant(":/icon/hb_vol_slider_decrement.svg"));
-    iconMaps.insert(QString("IncreaseElement"), QVariant(":/icon/hb_vol_slider_increment.svg"));
-    //iconMaps.insert(QString("IconElement"), QVariant(":/icon/hb_vol_slider_muted.svg"));
-    
-    masterVolume->setContentWidgetData("elementIcons", iconMaps);
-    masterVolume->setContentWidgetData("minimum", 1);
-    masterVolume->setContentWidgetData("maximum", 10);
-    masterVolume->setContentWidgetData("majorTickInterval",1);
-    masterVolume->setContentWidgetData("tickPosition",Hb::SliderTicksBelow);
-
-    /*QStringList tickLabels;
-    tickLabels<<hbTrId("txt_cp_setlabel_volume_val_soft")
-              <<hbTrId("txt_cp_setlabel_volume_val_med")
-              <<hbTrId("txt_cp_setlabel_volume_val_loud");
-    masterVolume->setContentWidgetData("majorTickLabels",tickLabels);*/
-    
-    masterVolume->setContentWidgetData("iconCheckable",false);
-    this->appendChild(masterVolume);
-    
-    HbDataFormModelItem *masterVibra = new HbDataFormModelItem(HbDataFormModelItem::CheckBoxItem);
-    mItemList.insert(CpVolumeGroupItemData::EVolumeMasterVibraItem, masterVibra);
-    masterVibra->setContentWidgetData("text",hbTrId("txt_cp_list_vibrate"));
-    masterVibra->setContentWidgetData("objectName","masterVibraCheckBox");
-    
-    this->appendChild(masterVibra);
-    
-    mVolumeController = new CpVolumeController(mProfileModel, mItemList, itemDataHelper);
-}
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cpvolumegroupitemdata.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPVOLUMEGROUPITEMDATA_H
-#define CPVOLUMEGROUPITEMDATA_H
-
-#include <cpsettingformitemdata.h>
-#include <cpprofilemodel.h>
-
-class CpProfileModel;
-class CpItemDataHelper;
-class CpVolumeController;
-class CpVolumeGroupItemData : public CpSettingFormItemData
-{
-    Q_OBJECT
-public:
-    enum VolumeGroupModelItem {
-        EVolumeSilenceItem,
-        EVolumeMasterVolumeItem,
-        EVolumeMasterVibraItem,
-        EVolumeItemEnd
-    };
-public:
-    explicit CpVolumeGroupItemData(CpItemDataHelper &itemDataHelper);
-    virtual ~CpVolumeGroupItemData();
-private:
-    Q_DISABLE_COPY(CpVolumeGroupItemData)
-    void initItems(CpItemDataHelper &itemDataHelper);
-    QList<HbDataFormModelItem *> mItemList;
-    CpVolumeController *mVolumeController;
-    CpProfileModel *mProfileModel;
-};
-
-#endif
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cpvolumeplugin.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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 "cpvolumeplugin.h"
-#include "cpvolumegroupitemdata.h"
-#include <cpitemdatahelper.h>
-
-CpVolumePlugin::CpVolumePlugin()
-{
-}
-
-CpVolumePlugin::~CpVolumePlugin()
-{
-}
-
-QList<CpSettingFormItemData*> CpVolumePlugin::createSettingFormItemData(CpItemDataHelper &itemDataHelper) const
-{
-    
-    CpVolumeGroupItemData *volumeGroupItem = new CpVolumeGroupItemData(itemDataHelper);
-
-    return QList<CpSettingFormItemData*>() << volumeGroupItem ;
-}
-
-Q_EXPORT_PLUGIN2(cpvolumeplugin, CpVolumePlugin);
-
-
--- a/controlpanelui/src/cpplugins/volumeplugin/src/cpvolumeplugin.h	Tue Aug 31 15:15:28 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:  
- *
- */
-
-#ifndef CPVOLUMEPLUGIN_H
-#define CPVOLUMEPLUGIN_H
-
-#include <qobject.h>
-#include <cpplugininterface.h>
-
-class CpVolumePlugin 
-        : public QObject,
-          public CpPluginInterface
-{
-    Q_OBJECT
-    Q_INTERFACES(CpPluginInterface)
-public:
-    CpVolumePlugin();
-    virtual ~CpVolumePlugin();
-    virtual QList<CpSettingFormItemData*> createSettingFormItemData(CpItemDataHelper &itemDataHelper) const;
-};
-
-#endif /* CPVOLUMEPLUGIN_H */
-
-
--- a/controlpanelui/src/cpplugins/volumeplugin/volumeplugin.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +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: controlpanel project - common qmake settings
-#
-
-HEADERS += src/*.h 
-SOURCES += src/*.cpp 
-           
-           
-           
\ No newline at end of file
--- a/controlpanelui/src/cpplugins/volumeplugin/volumeplugin.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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 = cpvolumeplugin
-
-CONFIG += hb plugin
-RESOURCES += volumeplugin.qrc
-LIBS += -lcpprofilewrapper -lxqsettingsmanager
-
-include ( ../cpplugincommon.pri )
-include ( volumeplugin.pri )
-
-symbian { 
-    TARGET.UID3 = 0X20028737
-}
--- a/controlpanelui/src/cpplugins/volumeplugin/volumeplugin.qrc	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file>icon/hb_vol_slider_decrement.svg</file>
-        <file>icon/hb_vol_slider_decrement_pressed.svg</file> 
-        <file>icon/hb_vol_slider_increment.svg</file> 
-        <file>icon/hb_vol_slider_increment_pressed.svg</file> 
-        <file>icon/hb_vol_slider_muted.svg</file> 
-        <file>icon/hb_vol_slider_unmuted.svg</file>           
-    </qresource>    
-</RCC>
\ No newline at end of file
--- a/controlpanelui/src/cpprofilewrapper/bwins/cpprofilewrapperu.def	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-EXPORTS
-	?setKeyTouchScreenVibra@CpProfileModel@@QAEXHH@Z @ 1 NONAME ; void CpProfileModel::setKeyTouchScreenVibra(int, int)
-	?tr@CpProfileModel@@SA?AVQString@@PBD0H@Z @ 2 NONAME ; class QString CpProfileModel::tr(char const *, char const *, int)
-	?masterVibra@CpProfileModel@@QBE_NXZ @ 3 NONAME ; bool CpProfileModel::masterVibra(void) const
-	?ringTone@CpProfileModel@@QBE?AVQString@@XZ @ 4 NONAME ; class QString CpProfileModel::ringTone(void) const
-	?setProfileSettings@CpProfileModel@@QAEXHAAVCpProfileSettings@@@Z @ 5 NONAME ; void CpProfileModel::setProfileSettings(int, class CpProfileSettings &)
-	?qt_metacast@CpProfileModel@@UAEPAXPBD@Z @ 6 NONAME ; void * CpProfileModel::qt_metacast(char const *)
-	?setRingTone@CpProfileModel@@QAEXABVQString@@@Z @ 7 NONAME ; void CpProfileModel::setRingTone(class QString const &)
-	?setReminderTone@CpProfileModel@@QAEXHABVQString@@@Z @ 8 NONAME ; void CpProfileModel::setReminderTone(int, class QString const &)
-	?trUtf8@CpProfileModel@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString CpProfileModel::trUtf8(char const *, char const *)
-	?silenceMode@CpProfileModel@@QBE_NXZ @ 10 NONAME ; bool CpProfileModel::silenceMode(void) const
-	?setEmailTone@CpProfileModel@@QAEXHABVQString@@@Z @ 11 NONAME ; void CpProfileModel::setEmailTone(int, class QString const &)
-	?emailTone@CpProfileModel@@QBE?AVQString@@H@Z @ 12 NONAME ; class QString CpProfileModel::emailTone(int) const
-	?activeProfileId@CpProfileModel@@QBEHXZ @ 13 NONAME ; int CpProfileModel::activeProfileId(void) const
-	?masterVolume@CpProfileModel@@QBEHXZ @ 14 NONAME ; int CpProfileModel::masterVolume(void) const
-	?notificationTone@CpProfileModel@@QBE_NH@Z @ 15 NONAME ; bool CpProfileModel::notificationTone(int) const
-	?tr@CpProfileModel@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString CpProfileModel::tr(char const *, char const *)
-	?getStaticMetaObject@CpProfileModel@@SAABUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const & CpProfileModel::getStaticMetaObject(void)
-	?keyTouchScreenTone@CpProfileModel@@QBEHH@Z @ 18 NONAME ; int CpProfileModel::keyTouchScreenTone(int) const
-	?reminderTone@CpProfileModel@@QBE?AVQString@@H@Z @ 19 NONAME ; class QString CpProfileModel::reminderTone(int) const
-	?profileName@CpProfileModel@@QBE?AVQString@@H@Z @ 20 NONAME ; class QString CpProfileModel::profileName(int) const
-	?setRingTone@CpProfileModel@@QAEXHABVQString@@@Z @ 21 NONAME ; void CpProfileModel::setRingTone(int, class QString const &)
-	?setKeyTouchScreenTone@CpProfileModel@@QAEXHH@Z @ 22 NONAME ; void CpProfileModel::setKeyTouchScreenTone(int, int)
-	?setMasterVolume@CpProfileModel@@QAEXH@Z @ 23 NONAME ; void CpProfileModel::setMasterVolume(int)
-	?staticMetaObject@CpProfileModel@@2UQMetaObject@@B @ 24 NONAME ; struct QMetaObject const CpProfileModel::staticMetaObject
-	?profileNames@CpProfileModel@@QBE?AVQStringList@@XZ @ 25 NONAME ; class QStringList CpProfileModel::profileNames(void) const
-	?activateProfile@CpProfileModel@@QAEHH@Z @ 26 NONAME ; int CpProfileModel::activateProfile(int)
-	?setNotificationTone@CpProfileModel@@QAEXH_N@Z @ 27 NONAME ; void CpProfileModel::setNotificationTone(int, bool)
-	?metaObject@CpProfileModel@@UBEPBUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const * CpProfileModel::metaObject(void) const
-	??0CpProfileModel@@QAE@PAVQObject@@@Z @ 29 NONAME ; CpProfileModel::CpProfileModel(class QObject *)
-	??1CpProfileModel@@UAE@XZ @ 30 NONAME ; CpProfileModel::~CpProfileModel(void)
-	?qt_metacall@CpProfileModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 31 NONAME ; int CpProfileModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?profileSettings@CpProfileModel@@QAEXHAAVCpProfileSettings@@@Z @ 32 NONAME ; void CpProfileModel::profileSettings(int, class CpProfileSettings &)
-	?messageTone@CpProfileModel@@QBE?AVQString@@H@Z @ 33 NONAME ; class QString CpProfileModel::messageTone(int) const
-	?d_func@CpProfileModel@@ABEPBVCpProfileModelPrivate@@XZ @ 34 NONAME ; class CpProfileModelPrivate const * CpProfileModel::d_func(void) const
-	?setSilenceMode@CpProfileModel@@QAEX_N@Z @ 35 NONAME ; void CpProfileModel::setSilenceMode(bool)
-	?keyTouchScreenVibra@CpProfileModel@@QBEHH@Z @ 36 NONAME ; int CpProfileModel::keyTouchScreenVibra(int) const
-	?d_func@CpProfileModel@@AAEPAVCpProfileModelPrivate@@XZ @ 37 NONAME ; class CpProfileModelPrivate * CpProfileModel::d_func(void)
-	??_ECpProfileModel@@UAE@I@Z @ 38 NONAME ; CpProfileModel::~CpProfileModel(unsigned int)
-	?ringTone@CpProfileModel@@QBE?AVQString@@H@Z @ 39 NONAME ; class QString CpProfileModel::ringTone(int) const
-	?trUtf8@CpProfileModel@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString CpProfileModel::trUtf8(char const *, char const *, int)
-	?setMessageTone@CpProfileModel@@QAEXHABVQString@@@Z @ 41 NONAME ; void CpProfileModel::setMessageTone(int, class QString const &)
-	?setMasterVibra@CpProfileModel@@QAEX_N@Z @ 42 NONAME ; void CpProfileModel::setMasterVibra(bool)
-	?trUtf8@CpProfileMonitor@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString CpProfileMonitor::trUtf8(char const *, char const *, int)
-	??_ECpProfileMonitor@@UAE@I@Z @ 44 NONAME ; CpProfileMonitor::~CpProfileMonitor(unsigned int)
-	?activeProfileModified@CpProfileMonitor@@IAEXH@Z @ 45 NONAME ; void CpProfileMonitor::activeProfileModified(int)
-	?tr@CpProfileMonitor@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString CpProfileMonitor::tr(char const *, char const *, int)
-	?trUtf8@CpProfileMonitor@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString CpProfileMonitor::trUtf8(char const *, char const *)
-	?staticMetaObject@CpProfileMonitor@@2UQMetaObject@@B @ 48 NONAME ; struct QMetaObject const CpProfileMonitor::staticMetaObject
-	??0CpProfileMonitor@@QAE@PAVQObject@@@Z @ 49 NONAME ; CpProfileMonitor::CpProfileMonitor(class QObject *)
-	?metaObject@CpProfileMonitor@@UBEPBUQMetaObject@@XZ @ 50 NONAME ; struct QMetaObject const * CpProfileMonitor::metaObject(void) const
-	?d_func@CpProfileMonitor@@ABEPBVCpProfileMonitorPrivate@@XZ @ 51 NONAME ; class CpProfileMonitorPrivate const * CpProfileMonitor::d_func(void) const
-	?d_func@CpProfileMonitor@@AAEPAVCpProfileMonitorPrivate@@XZ @ 52 NONAME ; class CpProfileMonitorPrivate * CpProfileMonitor::d_func(void)
-	?profileActivated@CpProfileMonitor@@IAEXH@Z @ 53 NONAME ; void CpProfileMonitor::profileActivated(int)
-	?tr@CpProfileMonitor@@SA?AVQString@@PBD0@Z @ 54 NONAME ; class QString CpProfileMonitor::tr(char const *, char const *)
-	?getStaticMetaObject@CpProfileMonitor@@SAABUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const & CpProfileMonitor::getStaticMetaObject(void)
-	?qt_metacast@CpProfileMonitor@@UAEPAXPBD@Z @ 56 NONAME ; void * CpProfileMonitor::qt_metacast(char const *)
-	??1CpProfileMonitor@@UAE@XZ @ 57 NONAME ; CpProfileMonitor::~CpProfileMonitor(void)
-	?qt_metacall@CpProfileMonitor@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 58 NONAME ; int CpProfileMonitor::qt_metacall(enum QMetaObject::Call, int, void * *)
-
--- a/controlpanelui/src/cpprofilewrapper/cpprofilewrapper.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +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 = cpprofilewrapper
-
-CONFIG += debug_and_release 
-
-win32|mac {
-    !contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) {
-        CONFIG -= debug_and_release debug release
-        contains(QT_CONFIG,debug):  CONFIG+=debug
-        contains(QT_CONFIG,release):CONFIG+=release
-    }
-}
-
-CONFIG(debug, debug|release) {
-    SUBDIRPART = debug
-} else {
-    SUBDIRPART = release
-}
-
-win32 { 
-    DESTDIR = C:/ControlPanel/$$SUBDIRPART/bin
-    OBJECTS_DIR = $$PWD/../$$SUBDIRPART/tmp/$$TARGET
-}
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-DEFINES += PROFILEWRAPPER_FREEZE
-
-
-HEADERS += ../inc/cpprofilemodel.h \
-           ../inc/cpprofilewrappermacro.h \
-           ../inc/cpprofilemonitor.h \
-           src/cpprofilemodel_p.h \
-           src/cpprofilemonitor_p.h 
-SOURCES += src/cpprofilemodel.cpp \
-		   src/cpprofilemonitor.cpp
-CONFIG += hb
-win32 {
-    INCLUDEPATH += $$PWD/src
-    INCLUDEPATH += ../inc
-    SOURCES += src/cpprofilemodel_win_p.cpp
-}
-
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
-    		   $$APP_LAYER_SYSTEMINCLUDE \
-	           $$MOC_DIR
-    INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
-
-    SOURCES += src/cpprofilemodel_p.cpp \
-			   src/cpprofilemonitor_p.cpp
-
-    LIBS += -lprofileeng  \
-            -lcentralrepository \
-            -lcharconv \
-            -lcplogger \  # For cplogger
-            -lxqutils
-    TARGET.CAPABILITY = All -TCB 
-    TARGET.EPOCALLOWDLLDATA = 1
-    TARGET.UID3 = 0x20025FE6
-}
-
-
--- a/controlpanelui/src/cpprofilewrapper/eabi/cpprofilewrapperu.def	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-EXPORTS
-	_ZN14CpProfileModel11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN14CpProfileModel11qt_metacastEPKc @ 2 NONAME
-	_ZN14CpProfileModel11setRingToneERK7QString @ 3 NONAME
-	_ZN14CpProfileModel11setRingToneEiRK7QString @ 4 NONAME
-	_ZN14CpProfileModel12setEmailToneEiRK7QString @ 5 NONAME
-	_ZN14CpProfileModel14setMasterVibraEb @ 6 NONAME
-	_ZN14CpProfileModel14setMessageToneEiRK7QString @ 7 NONAME
-	_ZN14CpProfileModel14setSilenceModeEb @ 8 NONAME
-	_ZN14CpProfileModel15activateProfileEi @ 9 NONAME
-	_ZN14CpProfileModel15profileSettingsEiR17CpProfileSettings @ 10 NONAME
-	_ZN14CpProfileModel15setMasterVolumeEi @ 11 NONAME
-	_ZN14CpProfileModel15setReminderToneEiRK7QString @ 12 NONAME
-	_ZN14CpProfileModel16staticMetaObjectE @ 13 NONAME DATA 16
-	_ZN14CpProfileModel18setProfileSettingsEiR17CpProfileSettings @ 14 NONAME
-	_ZN14CpProfileModel19getStaticMetaObjectEv @ 15 NONAME
-	_ZN14CpProfileModel19setNotificationToneEib @ 16 NONAME
-	_ZN14CpProfileModel21setKeyTouchScreenToneEii @ 17 NONAME
-	_ZN14CpProfileModel22setKeyTouchScreenVibraEii @ 18 NONAME
-	_ZN14CpProfileModelC1EP7QObject @ 19 NONAME
-	_ZN14CpProfileModelC2EP7QObject @ 20 NONAME
-	_ZN14CpProfileModelD0Ev @ 21 NONAME
-	_ZN14CpProfileModelD1Ev @ 22 NONAME
-	_ZN14CpProfileModelD2Ev @ 23 NONAME
-	_ZNK14CpProfileModel10metaObjectEv @ 24 NONAME
-	_ZNK14CpProfileModel11masterVibraEv @ 25 NONAME
-	_ZNK14CpProfileModel11messageToneEi @ 26 NONAME
-	_ZNK14CpProfileModel11profileNameEi @ 27 NONAME
-	_ZNK14CpProfileModel11silenceModeEv @ 28 NONAME
-	_ZNK14CpProfileModel12masterVolumeEv @ 29 NONAME
-	_ZNK14CpProfileModel12profileNamesEv @ 30 NONAME
-	_ZNK14CpProfileModel12reminderToneEi @ 31 NONAME
-	_ZNK14CpProfileModel15activeProfileIdEv @ 32 NONAME
-	_ZNK14CpProfileModel16notificationToneEi @ 33 NONAME
-	_ZNK14CpProfileModel18keyTouchScreenToneEi @ 34 NONAME
-	_ZNK14CpProfileModel19keyTouchScreenVibraEi @ 35 NONAME
-	_ZNK14CpProfileModel8ringToneEi @ 36 NONAME
-	_ZNK14CpProfileModel8ringToneEv @ 37 NONAME
-	_ZNK14CpProfileModel9emailToneEi @ 38 NONAME
-	_ZTI14CpProfileModel @ 39 NONAME
-	_ZTV14CpProfileModel @ 40 NONAME
-	_ZN16CpProfileMonitor11qt_metacallEN11QMetaObject4CallEiPPv @ 41 NONAME
-	_ZN16CpProfileMonitor11qt_metacastEPKc @ 42 NONAME
-	_ZN16CpProfileMonitor16profileActivatedEi @ 43 NONAME
-	_ZN16CpProfileMonitor16staticMetaObjectE @ 44 NONAME DATA 16
-	_ZN16CpProfileMonitor19getStaticMetaObjectEv @ 45 NONAME
-	_ZN16CpProfileMonitor21activeProfileModifiedEi @ 46 NONAME
-	_ZN16CpProfileMonitorC1EP7QObject @ 47 NONAME
-	_ZN16CpProfileMonitorC2EP7QObject @ 48 NONAME
-	_ZN16CpProfileMonitorD0Ev @ 49 NONAME
-	_ZN16CpProfileMonitorD1Ev @ 50 NONAME
-	_ZN16CpProfileMonitorD2Ev @ 51 NONAME
-	_ZNK16CpProfileMonitor10metaObjectEv @ 52 NONAME
-	_ZTI16CpProfileMonitor @ 53 NONAME
-	_ZTV16CpProfileMonitor @ 54 NONAME
-
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +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 "cpprofilemodel.h"
-#include "cpprofilemodel_p.h"
-#include <QtCore/QStringList>
-
-/*!
-   Contructor
- */
-CpProfileModel::CpProfileModel(QObject *parent /*=0*/):QObject(parent),
-                                                       d_ptr(new CpProfileModelPrivate())
-{
-    d_ptr->initialize(this);    
-}
-
-/*!
-   Destrutor
- */
-CpProfileModel::~CpProfileModel()
-{
-    delete d_ptr;
-}
-
-/*!
-   Get profile name with its id
- */
-QString CpProfileModel::profileName(int profileId) const
-{
-    return d_ptr->profileName(profileId);
-}
-/*!
-   get profile name list 
- */
-QStringList CpProfileModel::profileNames()const
-{
-    return d_ptr->profileNames();
-}
-/*!
-   Activate a profile with its id, return the result code.
- */
-int CpProfileModel::activateProfile(int profileId)
-{
-    return d_ptr->activateProfile(profileId);
-}
-
-/*!
-   Get active profile's id
- */
-int CpProfileModel::activeProfileId() const
-{
-    return d_ptr->activeProfileId();
-}
-
-/*!
-     Get profile settings, store in center repository keys 
- */
-void CpProfileModel::profileSettings(int profileId, CpProfileSettings& profileSettings)
-{
-    d_ptr->profileSettings(profileId, profileSettings);
-}
-
-/*!
-     Set profile settings from center repository keys
- */
-void CpProfileModel::setProfileSettings(int profileId, CpProfileSettings& profileSettings )
-{
-    return d_ptr->setProfileSettings(profileId, profileSettings);
-}
-
-/*!
-     Get ring tone of active profile
- */
-QString CpProfileModel::ringTone() const
-{
-    return d_ptr->ringTone();
-}
-
-/*!
-     Set ring tone for all profiles
- */
-void CpProfileModel::setRingTone(const QString& filePath)
-{
-    d_ptr->setRingTone(filePath);
-}
-
-/*!
-     Return ringing volume of device
- */
-int CpProfileModel::masterVolume() const
-{
-    return d_ptr->masterVolume();
-}
-
-/*!
-     Set device's ringing volume
- */
-void CpProfileModel::setMasterVolume(int volume)
-{
-    return d_ptr->setMasterVolume(volume);
-}
-
-/*!
-     Return the master vibra's status of device
- */
-bool CpProfileModel::masterVibra() const
-{
-    return d_ptr->masterVibra();
-}
-
-/*!
-     Set the master vibra's status of device
- */
-void CpProfileModel::setMasterVibra(bool isVibra)
-{
-    d_ptr->setMasterVibra(isVibra);
-}
-
-/*!
-     Return the silence mode of device
- */
-bool CpProfileModel::silenceMode() const
-{
-    return d_ptr->silenceMode();
-}
-
-/*!
-     Set silence mode for deivce
- */
-void CpProfileModel::setSilenceMode(bool isSilence)
-{
-    d_ptr->setSilenceMode(isSilence);
-}
-
-/*!
-   Get profile's ring tone, if the profile id is invalid, always return an empty string
-   \param profileId profile's id
- */
-QString CpProfileModel::ringTone(int profileId)const
-{
-    return d_ptr->ringTone(profileId);
-}
-
-/*!
-   Set ring tone for a profile, if the profile id is invalid, nothing happens
-   \param profileId profile's id
-   \param filePath ring tone's path
- */
-void CpProfileModel::setRingTone(int profileId, const QString& filePath)
-{
-    d_ptr->setRingTone(profileId, filePath);
-}
-
-/*!
-   Get message tone's name, if the profile id is invalid, always return an empty string
-   \param profileId profile's id
- */
-QString CpProfileModel::messageTone(int profileId) const
-{
-    return d_ptr->messageTone(profileId);
-}
-
-/*!
-   Set message tone for a profile, if the profile id is invalid, nothing happens
-   \param profileId profile's id
-   \param filePath message tone's path
- */
-void CpProfileModel::setMessageTone(int profileId, const QString& filePath)
-{
-    d_ptr->setMessageTone(profileId, filePath);
-}
-
-/*!
-   Get email tone's name, if the profile id is invalid, always return an empty string
-   \param profileId profile's id
- */
-QString CpProfileModel::emailTone(int profileId) const
-{
-    return d_ptr->emailTone(profileId);
-}
-
-/*!
-   Set email tone for a profile, if the profile id is invalid, nothing happens
-   \param profileId profile's id
-   \param filePath message tone's path
- */
-void CpProfileModel::setEmailTone(int profileId, const QString& filePath)
-{
-    d_ptr->setEmailTone(profileId,filePath);
-}
-
-/*!
-   Get reminder tone's name, if the profile id is invalid, always return an empty string
-   \param profileId profile's id
- */
-QString CpProfileModel::reminderTone(int profileId) const
-{
-    return d_ptr->reminderTone(profileId);
-}
-
-/*!
-   Set reminder tone for a profile, if the profile id is invalid, nothing happens
-   \param profileId profile's id
-   \param filePath reminder tone's path
- */
-void CpProfileModel::setReminderTone(int profileId, const QString& filePath)
-{
-    d_ptr->setReminderTone(profileId,filePath);
-}
-
-/*!
-   Get notification tone's status, if the profile id is invalid, always return false
-   \param profileId profile's id
-   \return return the status of notification tone, true value stands for the tone being on
- */
-bool CpProfileModel::notificationTone(int profileId) const
-{
-    return d_ptr->notificationTone(profileId);
-}
-
-/*!
-   Set notification tone's status for a profile, if the profile id is invalid, nothing happens
-   \param profileId profile's id
-   \return isActive the status of notification tone
- */
-void CpProfileModel::setNotificationTone(int profileId, bool isActive)
-{
-    d_ptr->setNotificationTone(profileId, isActive);
-}
-
-/*!
-     Get key & touch screen tone's value, if the profile id is invalid, always return 0
- */
-int CpProfileModel::keyTouchScreenTone(int profileId) const
-{
-    return d_ptr->keyTouchScreenTone(profileId);
-}
-
-/*!
-     set key & touch screen tone, if the profile id is invalid, nothing happens
-     \param profileId identify the profile
-     \param level 0-5
- */
-void CpProfileModel::setKeyTouchScreenTone(int profileId, int level)
-{
-    d_ptr->setKeyTouchScreenTone(profileId,level);
-}
-
-/*!
-   Get key & touch screen vibra's value, if the profile id is invalid, always return 0
-   \param profileId identify the profile
- */
-int CpProfileModel::keyTouchScreenVibra(int profileId) const
-{
-    return d_ptr->keyTouchScreenVibra(profileId);
-}
-
-/*!
-   Set key touch screen vibar for a profile, if the profile id is invalid, nothing happens
-   \param profileId identify the profile
-   \param level 0-5
- */
-void CpProfileModel::setKeyTouchScreenVibra(int profileId, int level)
-{
-    d_ptr->setKeyTouchScreenVibra(profileId,level);
-}
-
-// End of file
-
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,703 +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 "cpprofilemodel_p.h"
-#include "cpprofilemodel.h"
-#include <cplogger.h>
-#include <e32base.h>
-#include <QString>
-#include <QMap>
-#include <MProfileEngineExtended2.h>
-#include <MProfileExtended.h>
-#include <MProfileName.h>
-#include <MProfileTones.h>
-#include <MProfileSetTones.h>
-#include <MProfileExtraTones.h>
-#include <MProfileSetExtraTones.h>
-#include <MProfileExtraSettings.h>
-#include <MProfileSetExtraSettings.h>
-#include <MProfileFeedbackSettings.h>
-#include <MProfileSetFeedbackSettings.h>
-#include <MProfilesNamesArray.h>
-#include <settingsinternalcrkeys.h>
-#include <hbglobal.h>
-#include <QtCore/QStringList>
-#include <MProfileExtended2.h>
-#include <MProfileSetExtraTones2.h>
-#include <MProfileExtraTones2.h>
-#include <MProfileVibraSettings.h>
-#include <MProfileSetVibraSettings.h>
-#include <TProfileToneSettings.h>
-#include <hwrmvibrasdkcrkeys.h>
-#include <centralrepository.h>
-#include <XQConversions>
-#include <profile.hrh>
-/*
- * Constructor
- */
-CpProfileModelPrivate::CpProfileModelPrivate()
-    : mEngine(0),
-      mProfileNames(0),
-      q_ptr(0)
-{
-    
-}
-
-/*
- * Initialize the profile engine and available profile list for profile wrapper. 
- */
-void CpProfileModelPrivate::initialize(CpProfileModel *parent)
-{
-    q_ptr = parent;
-    CPFW_LOG("CpProfileModelPrivate::CpProfileModelPrivate(), START.");
-    TRAP_IGNORE(
-        mEngine = CreateProfileEngineExtended2L();
-        mProfileNames = mEngine->ProfilesNamesArrayLC();
-        CleanupStack::Pop(); // pop the pointer of mProfileNames
-        /*
-         * Currently, engine part will return all previous version of profile
-         * so some invalid profile will be added in the new list, to avoid this 
-         * use hard code to get the right list of profile. 
-         */
-        /*MProfilesNamesArray* nameList = mEngine->ProfilesNamesArrayLC();
-        int profileCount = nameList->MdcaCount();
-        for (int i = 0; i<profileCount; i++) {
-            MProfileName *profileName = nameList->ProfileName(i);
-            mProfileList.insert(profileName->Id(), mEngine->Profile2L(profileName->Id())); 
-        }
-        CleanupStack::PopAndDestroy(*nameList);*/           
-    );
-    mProfileList.append(static_cast<int>(EProfileWrapperGeneralId)); // general id 
-    mProfileList.append(static_cast<int>(EProfileWrapperMeetingId)); // meeting id     
-    CPFW_LOG("CpProfileModelPrivate::CpProfileModelPrivate(), END");
-}    
-
-/*
- * Destructor 
- */
-CpProfileModelPrivate::~CpProfileModelPrivate()
-{
-    if (mEngine!=0) {
-        mEngine->Release();
-    }
-    if (mProfileNames) {
-        delete mProfileNames;
-    }
-	mProfileList.clear();
-}
-
-/*
- * Get profile name with its id
- */
-QString CpProfileModelPrivate::profileName(int profileId) const
-{
-    CPFW_LOG("CpProfileModelPrivate::profileName(), START.");
-    // Return an empty string if id is not valid.    
-    if (!isValidProfile(profileId)) {
-        return QString();
-    }
-    
-    const MProfileName* name = mProfileNames->ProfileName(profileId);
-    QString profileName;
-    if (name != 0) {
-        profileName = XQConversions::s60DescToQString(name->Name());
-    }
-    CPFW_LOG("CpProfileModelPrivate::profileName(), END.");
-    return profileName;    
-}
-
-/*
- * Get available profiles' name list.
- */
-QStringList CpProfileModelPrivate::profileNames() const
-{
-    CPFW_LOG("CpProfileModelPrivate::profileNames(), START.");
-    QStringList nameList;
-
-    foreach(int profileId, mProfileList) {
-        const MProfileName *name = mProfileNames->ProfileName(profileId);
-        if (name != 0) {
-            nameList.append(XQConversions::s60DescToQString(name->Name()));
-        }
-    }
-
-    CPFW_LOG("CpProfileModelPrivate::profileNames(), END.");
-    return nameList;
-}
-
-
-/*
- * Activate a profile with its id, return the result.
- */
-int CpProfileModelPrivate::activateProfile(int profileId)
-{
-    CPFW_LOG("CpProfileModelPrivate::activateProfile(), START.");
-    // currently, only two profile remains: general and meeting,
-    // But profile engine also support the old profile like:
-    // silence, out ...
-    // so filter the invalid profile id first.
-    if (!isValidProfile(profileId)) {
-        return KErrNotFound;
-    }
-    TRAPD( err, 
-        mEngine->SetActiveProfileL( profileId );
-    );
-    CPFW_LOG("CpProfileModelPrivate::activateProfile(), END.");
-    return err;
-}
-
-/*
- * Get active profile's id
- */
-int CpProfileModelPrivate::activeProfileId() const
-{
-    return mEngine->ActiveProfileId();
-}
-
-/*
- * Return all profile settings according to profile's id
- */
-void CpProfileModelPrivate::profileSettings(int profileId,
-        CpProfileSettings& profileSettings)
-{
-    if (!isValidProfile(profileId)) {
-        return;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        
-        const MProfileTones &setTones = profileExtend->ProfileTones();
-        const TProfileToneSettings &toneSettings = setTones.ToneSettings();
-        const MProfileExtraTones2 &extTones = profileExtend->ProfileExtraTones2();
-        const MProfileVibraSettings &vibraSettings =
-                profileExtend->ProfileVibraSettings();
-        const MProfileExtraSettings &extraSettings =
-                profileExtend->ProfileExtraSettings();
-        const MProfileFeedbackSettings &feedbackSettings =
-                extraSettings.ProfileFeedbackSettings();
-               
-        profileSettings.mRingTone = XQConversions::s60DescToQString(setTones.RingingTone1());
-        profileSettings.mMessageTone = XQConversions::s60DescToQString(setTones.MessageAlertTone());
-        profileSettings.mEmailTone = XQConversions::s60DescToQString(extTones.EmailAlertTone());
-        profileSettings.mReminderTone = XQConversions::s60DescToQString(extTones.ReminderTone());
-        profileSettings.mNotificationTone = toneSettings.iWarningAndGameTones;
-        
-        // only use Keypad Volume as a base value for display in key & touch screen setting option
-        profileSettings.mKeyTouchScreenTone = toneSettings.iKeypadVolume;
-        profileSettings.mKeyTouchScreenVibra = feedbackSettings.TactileFeedback();
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();    
-    );
-}
-/*
- *   set profile settings
- */
-void CpProfileModelPrivate::setProfileSettings(int profileId, CpProfileSettings& profileSettings)
-{
-    if (!isValidProfile(profileId)) {
-        return;
-    }
-    
-    QT_TRAP_THROWING (
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId); 
-        CleanupStack::PushL(profileExtend);
-        
-        MProfileSetTones &setTones = profileExtend->ProfileSetTones();
-        TProfileToneSettings &toneSettings = setTones.SetToneSettings();
-        MProfileSetExtraTones2 &setExtTones =
-                profileExtend->ProfileSetExtraTones2();
-        MProfileSetVibraSettings &setVibraSettings =
-                profileExtend->ProfileSetVibraSettings();
-        MProfileSetExtraSettings &extraSettings =
-                profileExtend->ProfileSetExtraSettings();
-        MProfileSetFeedbackSettings &setFeedbackSettings =
-                extraSettings.ProfileSetFeedbackSettings();
-        
-        
-        setTones.SetRingingTone1L(*XQConversions::qStringToS60Desc(
-                profileSettings.mRingTone));
-        setTones.SetMessageAlertToneL(*XQConversions::qStringToS60Desc(
-                profileSettings.mMessageTone));
-        setExtTones.SetEmailAlertToneL(*XQConversions::qStringToS60Desc(
-                profileSettings.mEmailTone));
-        setExtTones.SetReminderToneL(*XQConversions::qStringToS60Desc(
-                profileSettings.mReminderTone));
-
-        toneSettings.iWarningAndGameTones
-                        = profileSettings.mNotificationTone;
-        // Change the keypad volume and touch screen tone together
-        toneSettings.iKeypadVolume
-                        = static_cast<TProfileKeypadVolume> (profileSettings.mKeyTouchScreenTone);    
-        setFeedbackSettings.SetAudioFeedback(
-                        static_cast<TProfileAudioFeedback> (profileSettings.mKeyTouchScreenTone));
-        setFeedbackSettings.SetTactileFeedback(
-                        static_cast<TProfileTactileFeedback> (profileSettings.mKeyTouchScreenVibra));
-        
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-         )
-}
-
-/*
- * Get the active profile's ring tone name
- */
-QString CpProfileModelPrivate::ringTone() const
-{
-    // return empty string when active profile id is invalid,
-    // some old application still set the profile which is not available now,
-    // this check can be removed when every application use a correct profile id    
-
-    QString ringTone;
-    if (!isValidProfile(activeProfileId())) {
-        return ringTone;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(activeProfileId());
-        CleanupStack::PushL(profileExtend);
-        const MProfileTones &setTones = profileExtend->ProfileTones();
-        
-        ringTone = XQConversions::s60DescToQString(setTones.RingingTone1());
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-        )
-    
-    return ringTone;
-}
-
-/*
- * Set the ring tone for all profiles
- */
-void CpProfileModelPrivate::setRingTone(const QString& filePath)
-{   
-    for (TInt i = 0; i < mProfileList.count(); ++i) {  
-        QT_TRAP_THROWING(
-            MProfileExtended2 *profileExtend = mEngine->Profile2L(mProfileList.at(i));
-            CleanupStack::PushL(profileExtend);
-            
-            MProfileSetTones &setTones = profileExtend->ProfileSetTones();
-            
-            setTones.SetRingingTone1L( *XQConversions::qStringToS60Desc(filePath) );
-            mEngine ->CommitChangeL(*profileExtend);
-            CleanupStack::Pop(); // profileExtend
-            profileExtend->Release();
-        )
-    }     
-}
-
-/*
- *  Get the ringing volume value 
- */
-int CpProfileModelPrivate::masterVolume() const
-{
-    int masterVolume = 0;
-    QT_TRAP_THROWING(masterVolume = mEngine->MasterVolumeL();)
-    return masterVolume;
-}
-
-/*
- * Set the ringing volume
- */
-void CpProfileModelPrivate::setMasterVolume(int volume)
-{
-    // the volume range 1-10
-    if (volume >= EProfileRingingVolumeLevel1 && volume <= EProfileRingingVolumeLevel10) {
-        QT_TRAP_THROWING(mEngine->SetMasterVolumeL( volume );)
-    }
-}
-/*
- * Get the master vibra's status   
- */
-bool CpProfileModelPrivate::masterVibra() const
-{
-    bool masterVibra = false;
-    QT_TRAP_THROWING(masterVibra = mEngine->MasterVibraL();)
-    return masterVibra; 
-}
-
-/*
- * Set master vibra's status
- */
-void CpProfileModelPrivate::setMasterVibra(bool isVibra)
-{
-    QT_TRAP_THROWING(mEngine->SetMasterVibraL( isVibra );)    
-}
-
-/*
- * Get the status of silence mode.
- */
-bool CpProfileModelPrivate::silenceMode() const
-{
-    bool isSlience = false;
-    QT_TRAP_THROWING(isSlience = mEngine->SilenceModeL();)
-    return isSlience;
-}
-
-/*
- * Set the status of silence mode
- */
-void CpProfileModelPrivate::setSilenceMode(bool isSilence)
-{
-    QT_TRAP_THROWING(mEngine->SetSilenceModeL( isSilence );)    
-}
-
-/*
- * Return the ring tone of a profile, if the profile id is invalid, always
- * return an empty string
- */
-QString CpProfileModelPrivate::ringTone(int profileId) const
-{
-    QString ringTone;
-    if(!isValidProfile(profileId)) {
-        return ringTone;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend =  mEngine->Profile2L(profileId); 
-        CleanupStack::PushL(profileExtend);
-        
-        const MProfileTones &setTones = profileExtend->ProfileTones();
-        
-        ringTone = XQConversions::s60DescToQString(setTones.RingingTone1());
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )    
-    return ringTone;
-}
-
-/*
- * Set the ring tone for a profile, if the profile id is invalid, nothing happens
- */
-void CpProfileModelPrivate::setRingTone(int profileId, const QString& filePath)
-{
-    if(!isValidProfile(profileId)) {
-        return;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        
-        MProfileSetTones &setTones = profileExtend->ProfileSetTones();
-        
-        setTones.SetRingingTone1L(*XQConversions::qStringToS60Desc(filePath));
-        mEngine->CommitChangeL(*profileExtend);     
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )            
-}
-
-/*
- * Get the message tone of a profile, if the profile id is invalid, always return 
- * an empty string 
- */
-QString CpProfileModelPrivate::messageTone(int profileId) const
-{
-    QString messageTone;
-    if(!isValidProfile(profileId)) {
-        return messageTone;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId); 
-        CleanupStack::PushL(profileExtend);
-        
-        const MProfileTones &setTones = profileExtend->ProfileTones();
-        
-        messageTone = XQConversions::s60DescToQString(setTones.MessageAlertTone());
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-    
-    return messageTone;    
-}
-
-/*
- * Set the message tone of a profile, if the profile id is invalid, nothing happens
- */
-void CpProfileModelPrivate::setMessageTone(int profileId, const QString& filePath)
-{
-    if(!isValidProfile(profileId)) {
-        return;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        MProfileSetTones &setTones =
-            profileExtend->ProfileSetTones();
-        setTones.SetMessageAlertToneL(*XQConversions::qStringToS60Desc(filePath));
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )                
-}
-
-/*
- * Get the email tone of a profile, if profile id is invalid, return an empty string
- */
-QString CpProfileModelPrivate::emailTone(int profileId) const
-{
-    QString emailTone;
-    
-    if(!isValidProfile(profileId)) {
-        return emailTone;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);  
-        CleanupStack::PushL(profileExtend);
-        const MProfileExtraTones2 &extTones =
-                profileExtend->ProfileExtraTones2();
-
-        emailTone = XQConversions::s60DescToQString(extTones.EmailAlertTone());
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-    return emailTone;
-}
-
-/*
- * Set the email tone for a profile, if the profile id is invalid, nothing happens
- */
-void CpProfileModelPrivate::setEmailTone(int profileId, const QString& filePath)
-{
-    if(!isValidProfile(profileId)) {
-        return ;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        MProfileSetExtraTones2 &setExtTones =
-                profileExtend->ProfileSetExtraTones2();
-        setExtTones.SetEmailAlertToneL(*XQConversions::qStringToS60Desc(filePath));
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-}
-
-/*
- * Get a reminder tone for a profile, if the profile id is invalid,
- * always return an emtpy string 
- */
-QString CpProfileModelPrivate::reminderTone(int profileId) const
-{
-    QString reminderTone;
-    if(!isValidProfile(profileId)) {
-        return reminderTone;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        const MProfileExtraTones2 &extTones = profileExtend->ProfileExtraTones2();
-        
-        reminderTone = XQConversions::s60DescToQString(extTones.ReminderTone());
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-    return reminderTone;        
-}
-
-/*
- * Set a reminder tone for a profile, if the profile id is invalid,
- * nothing happens
- */
-void CpProfileModelPrivate::setReminderTone(int profileId, const QString& filePath)
-{
-    if(!isValidProfile(profileId)) {
-        return;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        
-        MProfileSetExtraTones2 &setExtTones = profileExtend->ProfileSetExtraTones2();
-        setExtTones.SetReminderToneL( *XQConversions::qStringToS60Desc(filePath) );
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )            
-}
-
-/*
- * Get the status of notification tone, if the profile id is invalid,
- * always return false
- */
-bool CpProfileModelPrivate::notificationTone(int profileId) const
-{
-    bool ret = false;
-    if(!isValidProfile(profileId)) {
-        return false;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        
-        const MProfileTones &setTones = profileExtend->ProfileTones();
-        const TProfileToneSettings &toneSettings = setTones.ToneSettings();
-        ret = toneSettings.iWarningAndGameTones;
-        
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-    return ret;
-}
-
-/*
- * Set the status of notification tone, if the profile id is
- * invalid, nothing happens
- */
-void CpProfileModelPrivate::setNotificationTone(int profileId, bool isActive)
-{
-    if(!isValidProfile(profileId)) {
-        return ;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        MProfileSetTones &setTones = profileExtend->ProfileSetTones();
-        TProfileToneSettings &toneSettings = setTones.SetToneSettings();
-
-        toneSettings.iWarningAndGameTones = isActive;
-
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-}
-/*
- * Get key & touch screen tone's value, if the profile id
- * is invalid, always return 0
- */
-int CpProfileModelPrivate::keyTouchScreenTone(int profileId) const
-{
-    int level = 0;
-    if(!isValidProfile(profileId)) {
-        return level;
-    }
-    
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-
-        const MProfileTones &setTones = profileExtend->ProfileTones();
-        const TProfileToneSettings &toneSettings = setTones.ToneSettings();
-        
-        // Return only keypad volume, but touch tone volume will be synchronized in 
-        // SetKeyTouchScreenTone(), these two settings also have the same default value
-        // in cenrep key
-        level = toneSettings.iKeypadVolume;  
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-    return level;
-}
-/*
- *   set key & touch screen tone, if the profile id
- *   is invalid, nothing happens
- */
-void CpProfileModelPrivate::setKeyTouchScreenTone(int profileId, int level)
-{   
-    if(!isValidProfile(profileId)) {
-        return ;
-    }
-    QT_TRAP_THROWING(
-
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);
-        MProfileSetTones &setTones =
-                profileExtend->ProfileSetTones();
-        TProfileToneSettings &toneSettings =
-                setTones.SetToneSettings();
-        
-        MProfileSetExtraSettings &extraSettings =
-                    profileExtend->ProfileSetExtraSettings();
-        MProfileSetFeedbackSettings &setFeedbackSettings =
-                    extraSettings.ProfileSetFeedbackSettings();
-        
-        // Update the key pad volume and touch tone volume together
-        toneSettings.iKeypadVolume
-                = static_cast<TProfileKeypadVolume> (level);
-        
-        setFeedbackSettings.SetAudioFeedback(
-                static_cast<TProfileAudioFeedback> (level));
-        
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )    
-}
-
-/*
- * Get key touch screen vibra's value of a profile, return 0 if the
- * profile id is invalid  
- */
-int CpProfileModelPrivate::keyTouchScreenVibra(int profileId)const
-{
-    int level = 0;
-    if(!isValidProfile(profileId)) {
-        return level;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);    
-        const MProfileExtraSettings &extraSettings =
-                    profileExtend->ProfileExtraSettings();
-        const MProfileFeedbackSettings &feedbackSettings =
-                    extraSettings.ProfileFeedbackSettings();
-        level = feedbackSettings.TactileFeedback();
-
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )
-    
-    return level;
-}
-
-/*
- * Set key & touch screen vibra for a profile, 
- * if the profile id is invalid, nothing happens
- */
-void CpProfileModelPrivate::setKeyTouchScreenVibra(int profileId, int level)
-{
-    if(!isValidProfile(profileId)) {
-        return ;
-    }
-    QT_TRAP_THROWING(
-        MProfileExtended2 *profileExtend = mEngine->Profile2L(profileId);
-        CleanupStack::PushL(profileExtend);    
-
-        MProfileSetExtraSettings &extraSettings =
-                profileExtend->ProfileSetExtraSettings();
-        MProfileSetFeedbackSettings &setFeedbackSettings =
-                extraSettings.ProfileSetFeedbackSettings();
-        setFeedbackSettings.SetTactileFeedback(
-                static_cast<TProfileTactileFeedback> (level));
-        mEngine->CommitChangeL(*profileExtend);
-        CleanupStack::Pop(); // profileExtend
-        profileExtend->Release();
-    )                
-}
-
-/*
- * Judge the profile is valid or not 
- */
-
-bool CpProfileModelPrivate::isValidProfile(int profileId) const
-{
-    return mProfileList.contains(profileId);
-}
-
-// End of file
-
-
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_p.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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:  
- *
- */
-
-#ifndef CPPROFILEMODEL_P_H
-#define CPPROFILEMODEL_P_H
-
-#include <qglobal.h>
-#include <QList>
-class CpProfileModel;
-class CpProfileSettings;
-class MProfileEngineExtended2;
-class MProfileExtended2;
-class MProfileFeedbackSettings;
-class MProfileSetFeedbackSettings;
-class CRepository;
-class QStringList;
-class MProfilesNamesArray;
-struct TProfileToneSettings; 
-class CpProfileModelPrivate
-{
-    Q_DECLARE_PUBLIC(CpProfileModel)
-public:
-    CpProfileModelPrivate();
-    ~CpProfileModelPrivate();
-    void initialize(CpProfileModel *parent);
-public:
-    QString profileName(int profileId) const;
-    QStringList profileNames() const;
-    int activateProfile(int profileId);
-    int activeProfileId() const;
-    void profileSettings(int profileId, CpProfileSettings& profileSettings);
-    void setProfileSettings(int profileId, CpProfileSettings& profileSettings);
-
-    QString ringTone() const;
-    void setRingTone(const QString& filePath);
-
-    int masterVolume() const;
-    void setMasterVolume(int volume);
-
-    bool masterVibra() const;
-    void setMasterVibra(bool isVibra);
-
-    bool silenceMode() const;
-    void setSilenceMode(bool isSlience);
-
-    QString ringTone(int profileId)const;
-    void setRingTone(int profileId, const QString& filePath);
-    QString messageTone(int profileId) const;
-    void setMessageTone(int profileId, const QString& filePath);
-    QString emailTone(int profileId) const;
-    void setEmailTone(int profileId, const QString& filePath);
-    QString reminderTone(int profileId) const;
-    void setReminderTone(int profileId, const QString& filePath);
-    
-    bool notificationTone(int profileId) const;
-    void setNotificationTone(int profileId, bool isActive);
-    
-    int keyTouchScreenTone(int profileId) const;
-    void setKeyTouchScreenTone(int profileId, int level);
-    
-    int keyTouchScreenVibra(int profileId)const;
-    void setKeyTouchScreenVibra(int profileId, int level);
-
-private:
-    bool isValidProfile(int profileId) const;
-    
-private:
-#ifdef Q_OS_SYMBIAN
-    MProfileEngineExtended2 *mEngine;
-    // Valid profile id list
-    QList<int> mProfileList;
-    MProfilesNamesArray *mProfileNames;
-
-#endif // Q_OS_SYMBIAN
-    CpProfileModel *q_ptr;
-};
-
-#endif
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemodel_win_p.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +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 "cpprofilemodel_p.h"
-#include <QString>
-
-CpProfileModelPrivate::CpProfileModelPrivate()
-{
-}
-
-CpProfileModelPrivate::~CpProfileModelPrivate()
-{
-}
-
-/*
- * Get the result of the initiation
- */
-int CpProfileModelPrivate::initiationFlag()
-{
-    return -1;
-}
-
-/*
- * Get profile name with its id
- */
-QString CpProfileModelPrivate::profileName(int profileId)
-{
-    Q_UNUSED(profileId);
-    return "";
-}
-
-/*
- * Activate a profile with its id, return the operation code.
- */
-int CpProfileModelPrivate::activateProfile(int profileId)
-{
-    Q_UNUSED(profileId);
-    return -1;
-}
-
-/*
- * Get active profile's id
- */
-int CpProfileModelPrivate::activeProfileId()
-{
-    return -1;
-}
-
-/*
- * Get path and file name of ring tone file
- */
-QString CpProfileModelPrivate::ringTone()
-{
-    return "";
-}
-
-/*
- * Set path and file to ring tone
- */
-int CpProfileModelPrivate::setRingTone(const QString& filePath)
-{
-    Q_UNUSED(filePath);
-	return -1;
-}
-
-/*
- * Get path and file name of message tone file
- */
-QString CpProfileModelPrivate::messageTone()
-{
-    return "";
-}
-
-/*
- * Set path and file to message tone
- */
-int CpProfileModelPrivate::setMessageTone(const QString& filePath)
-{
-    Q_UNUSED(filePath);
-	return -1;
-}
-
-/*
- * Get path and file name of email tone file
- */
-QString CpProfileModelPrivate::emailTone()
-{
-    return "";
-}
-
-/*
- * Set path and file to email tone
- */
-int CpProfileModelPrivate::setEmailTone(const QString& filePath)
-{
-    Q_UNUSED(filePath);
-	return -1;
-}
-
-/*
- * Get path and file name of calendar event tone file
- */
-QString CpProfileModelPrivate::calendarTone()
-{
-    return "";
-}
-
-/*
- * Set path and file to calendar event tone
- */
-void CpProfileModelPrivate::setCalendarTone(const QString& filePath)
-{
-    Q_UNUSED(filePath);
-}
-
-/*
- * Get path and file name of clock alarm tone file
- */
-QString CpProfileModelPrivate::alarmTone()
-{
-    return "";
-}
-
-/*
- * Set path and file to clock alarm tone
- */
-void CpProfileModelPrivate::setAlarmTone(const QString& filePath)
-{
-    Q_UNUSED(filePath);
-}
-
-/*
- * Get the value of master volume
- */
-int CpProfileModelPrivate::ringVolume()
-{
-    return -1;
-}
-
-/*
- * Set master volume, the value should be between 1-10
- */
-void CpProfileModelPrivate::setRingVolume(int volume)
-{
-    Q_UNUSED(volume);
-}
-
-/*
- * Activate master volume to beep
- */
-void CpProfileModelPrivate::activateBeep()
-{;
-}
-
-/*
- * Get beep status in master volume
- */
-bool CpProfileModelPrivate::isBeep()
-{
-    return false;
-}
-
-/*
- * Activate master volume to silent
- */
-void CpProfileModelPrivate::activateSilent()
-{
-}
-
-/*
- * Get silent status in master volume
- */
-bool CpProfileModelPrivate::isSilent()
-{
-    return false;
-}
-
-/*
- * Get master vibra's status
- */
-bool CpProfileModelPrivate::vibraStatus()
-{
-    return false;
-}
-
-/*
- * Set master vibra's status
- */
-void CpProfileModelPrivate::setVibraStatus(bool status)
-{
-    Q_UNUSED(status);
-}
-
-/*
- * Get keypad' volume
- */
-int CpProfileModelPrivate::keyVolume()
-{
-    return -1;
-}
-
-/*
- * Set keypad's volume, 
- * the value of the volume should be between 0-3
- */
-void CpProfileModelPrivate::setKeyVolume(int volume)
-{
-    Q_UNUSED(volume);
-}
-
-/*
- * Get screen tone's volume
- */
-int CpProfileModelPrivate::screenVolume()
-{
-    return -1;
-}
-
-/*
- * Set screen tone's volume, 
- * the value of the volume should be between 0-3
- */
-void CpProfileModelPrivate::setScreenVolume(int volume)
-{
-    Q_UNUSED(volume);
-}
-
-/*
- * Get screen vibra's level
- */
-int CpProfileModelPrivate::screenVibra()
-{
-    return -1;
-}
-
-/*
- * Set screen vibra's level, 
- * the value of the level should be between 0-3
- */
-void CpProfileModelPrivate::setScreenVibra(int volume)
-{
-    Q_UNUSED(volume);
-}
-
-
-// End of file
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemonitor.cpp	Tue Aug 31 15:15:28 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:  
- *   
- */
-
-#include "cpprofilemonitor.h"
-#include "cpprofilemonitor_p.h"
-
-/*!
-     \class  CpProfileMonitor
-     \brief This class will observe the profile change or modification, and emit related signals.
- */
-/*!
-     \fn  void profileActivated(int activeProfileId)
-     This signal will emmit when a new profile activated
- */
-/*!
-     \fn      void activeProfileModified(int activeProfileId)
-     This signal will emmit when active profile's settings are modified
- */
-/*!
-  Constructor
- */
-CpProfileMonitor::CpProfileMonitor(QObject *parent)
-    :QObject(parent),d_ptr(new CpProfileMonitorPrivate())
-{
-    d_ptr->initialize(this);
-}
-
-/*!
-   Descontructor
- */
-CpProfileMonitor::~CpProfileMonitor()
-{    
-    delete d_ptr;        
-}
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemonitor_p.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +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 "cpprofilemonitor_p.h"
-#include "cpprofilemonitor.h"
-
-#include <CProfileChangeNotifyHandler.h>
-
-/*
- * Construtor
- */
-CpProfileMonitorPrivate::CpProfileMonitorPrivate():
-                                mProfileNotifier(0)
-{
-    
-}
-
-/*
- * Desconstructor
- */
-CpProfileMonitorPrivate::~CpProfileMonitorPrivate()
-{
-    delete mProfileNotifier;
-}
-
-/*
- * Initializing for the monitoring profile event
- */
-void CpProfileMonitorPrivate::initialize(CpProfileMonitor *parent)
-{
-    q_ptr = parent;
-    TRAP_IGNORE(mProfileNotifier = CProfileChangeNotifyHandler::NewL(this));   
-}
-
-/*
- * From MProfileChangeObserver, monitor the profile event
- */
-void CpProfileMonitorPrivate::HandleActiveProfileEventL(TProfileEvent aProfileEvent, TInt aProfileId)
-{
-    switch (aProfileEvent) {
-        case EProfileNewActiveProfile:
-        {
-            q_ptr->profileActivated(aProfileId);
-            break;
-        }
-        case EProfileActiveProfileModified:
-        {
-            q_ptr->activeProfileModified(aProfileId);
-            break;
-        }
-        default:
-            break;
-    }
-}
--- a/controlpanelui/src/cpprofilewrapper/src/cpprofilemonitor_p.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +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:  
- *   
- */
-#ifndef CPPROFILEMONITORPRIVATE_H
-#define CPPROFILEMONITORPRIVATE_H
-
-#include <MProfileChangeObserver.h>
-#include <qglobal.h>
-
-class CProfileChangeNotifyHandler;
-class CpProfileMonitor;
-
-class CpProfileMonitorPrivate:public MProfileChangeObserver
-{
-    Q_DECLARE_PUBLIC(CpProfileMonitor)
-public:
-    CpProfileMonitorPrivate();
-    ~CpProfileMonitorPrivate();
-    void initialize(CpProfileMonitor *parent);
-    
-#ifdef Q_OS_SYMBIAN
-private:
-    void HandleActiveProfileEventL(TProfileEvent aProfileEvent, TInt aProfileId);
-private:
-    CProfileChangeNotifyHandler *mProfileNotifier;
-#endif
-private:
-    CpProfileMonitor *q_ptr;
-};
-
-#endif
--- a/controlpanelui/src/cpprofilewrapper/tsrc/unit_common.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +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: 
-#
-
-QT += testlib
-CONFIG += hb qtestlib
-
-unix {
-    test.commands = /epoc32/RELEASE/WINSCW/udeb/$${TARGET}.exe
-    autotest.commands = /epoc32/RELEASE/WINSCW/udeb/$${TARGET}.exe -xml -o c:/$${TARGET}.xml
-} else:win32 {
-    test.CONFIG += recursive
-    autotest.CONFIG += recursive
-    build_pass {
-        test.commands =/epoc32/RELEASE/WINSCW/udeb/$${TARGET}.exe
-        autotest.commands =/epoc32/RELEASE/WINSCW/udeb/$${TARGET}.exe -xml -o c:/$${TARGET}.xml
-        }
-}
-QMAKE_EXTRA_TARGETS += test autotest
-
-symbian {
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
-    TARGET.CAPABILITY = ALL -TCB
-}
-
-
-
Binary file controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/data/testsound.aac has changed
Binary file controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/data/testsound2.aac has changed
--- a/controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/runtest.bat	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-@rem
-@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description: 
-@rem
-
-\epoc32\RELEASE\WINSCW\udeb\ut_cprofilemodel.exe -xml -o c:\ut_cprofilemodel.xml
-copy \epoc32\winscw\c\ut_cprofilemodel.xml
-del \epoc32\winscw\c\ut_cprofilemodel.xml
\ No newline at end of file
--- a/controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/src/ut_cpprofilemodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1305 +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:  
-*       test the functions in cpprofilemodel class 
-*/
-
-#include "ut_cpprofilemodel.h"
-
-
-#include <QtTest/QtTest>
-
-#include <QtCore/QStringList>
-#include <cpprofilemodel.h>
-#include <hbpushbutton.h>
-#include <hbtranslator.h>
-#include <profile.hrh>
-
-/*!
-    \class TestCpProfileModel \n
-    \brief describe the test case's goal, like: \n
-      class name: cpprofilemodel \n
-      class's description: \n
-      type of test case: unit test\n 
-      test cases' number totally: \n
- */
-
-void TestCpProfileModel::initTestCase()
-{
-    //translate the hbTrId text in control panel.
-    HbTranslator translator("control_panel");
-    translator.loadCommon();
-    ringTonePath1 = QString("C:") + QDir::separator() + QString("resource") + QDir::separator() + QString("cptestdata") + QDir::separator() + QString("sounds") + QDir::separator() + QString("testsound.aac");
-    ringTonePath2 = QString("C:") + QDir::separator() + QString("resource") + QDir::separator() + QString("cptestdata") + QDir::separator() + QString("sounds") + QDir::separator() + QString("testsound2.aac");
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: CpProfileModel(QObject *parent = 0); \n
-     2. Case Descrition: verify the constructor can work correctly. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> parent = 0; \n&nbsp;&nbsp;
-        <2> parent = new QObject(); \n
-     4. Expected result: \n&nbsp;&nbsp;
-        no crash \n
- */
-void TestCpProfileModel::testConstructor()
-{
-    QObject *pObject = new QObject();
-    
-    //test constructor without parent.
-    CpProfileModel *profileModel = new CpProfileModel(0);
-    QVERIFY( profileModel != 0 );
-    delete profileModel;
-    profileModel = 0;
-    // test constructor with parent.
-    profileModel = new CpProfileModel(pObject);
-    QVERIFY( profileModel != 0 );
-    
-    delete pObject;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString profileName(int profileId)const; \n
-     2. Case Descrition: verify that it can return the corresponding profile name when using valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId,\n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId,\n
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> return QString( "General" ) \n &nbsp;&nbsp;
-        <2> return QString( "Meeting" ) \n
- */
-void TestCpProfileModel::testProfileNameWithValidProfileID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    QString profileName1 = profileModel->profileName(EProfileWrapperGeneralId);
-    QVERIFY( profileName1 == QString( "General" ) );
-    
-    QString profileName2 = profileModel->profileName(EProfileWrapperMeetingId);
-    QVERIFY( profileName2 == QString("Meeting") );
-    
-    delete profileModel;
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString profileName(int profileId)const; \n
-     2. Case Descrition: verify that it doesn't crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -80, \n &nbsp;&nbsp;
-        <3> profileId = 888, \n &nbsp;&nbsp;
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> return QString() \n &nbsp;&nbsp;
-        <2> return QString() \n &nbsp;&nbsp;
-        <3> return QString() \n &nbsp;&nbsp;
-        <4> return QString() \n &nbsp;&nbsp;
- */
-void TestCpProfileModel::testProfileNameWithInvalidProfileID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    QString profileName1 = profileModel->profileName(EProfileWapperStart);
-    QVERIFY( profileName1 == QString() );
-    
-    QString profileName2 = profileModel->profileName(EPRofileWrapperEnd);
-    QVERIFY( profileName2 == QString() );
-    
-    QString profileName3 = profileModel->profileName( -80 );
-    QVERIFY( profileName3 == QString() );
-    
-    QString profileName4 = profileModel->profileName( 888 );
-    QVERIFY( profileName4 == QString() );
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QStringList profileNames()const; \n
-     2. Case Descrition: Verify that the profile name list can be get correctly with this function \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        none \n
-     4. Expected result: \n &nbsp;&nbsp;
-         \n
- */
-void TestCpProfileModel::testProfileNames()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    QStringList profilesNames = profileModel->profileNames();
-    
-    // Verify the right profile names are returned.
-    QVERIFY ( profilesNames.count() == 2 ); 
-    QVERIFY( profilesNames.contains("General", Qt::CaseInsensitive));
-    QVERIFY( profilesNames.contains("Meeting", Qt::CaseInsensitive));    
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int activateProfile(int profileId); \n
-     2. Case Descrition: Verify that the profile cannot be actived with the invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -6 \n &nbsp;&nbsp;
-        <4> profileId = 356 \n
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> return KErrNotFound \n &nbsp;&nbsp;
-        <2> return KErrNotFound \n &nbsp;&nbsp;
-        <3> return KErrNotFound \n &nbsp;&nbsp;
-        <4> return KErrNotFound \n 
- */
-void TestCpProfileModel::testActivateProfileWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    int retErr1 = profileModel->activateProfile(EProfileWapperStart);
-    QVERIFY( retErr1 == KErrNotFound );
-    
-    int retErr2 = profileModel->activateProfile(EPRofileWrapperEnd);
-    QVERIFY( retErr2 == KErrNotFound );
-    
-    int retErr3 = profileModel->activateProfile( -6 );
-    QVERIFY( retErr3 == KErrNotFound );
-    
-    int retErr4 = profileModel->activateProfile( 356 );
-    QVERIFY( retErr4 == KErrNotFound );
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int activateProfile(int profileId); \n
-     2. Case Descrition: Verify that the profile can be actived with the valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId,\n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId,\n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> the current active profile ID is EProfileWrapperGeneralId \n &nbsp;&nbsp;
-        <2> the current active profile ID is EProfileWrapperMeetingId \n
- */
-void TestCpProfileModel::testActivateProfileWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->activateProfile(EProfileWrapperGeneralId);
-    QVERIFY( profileModel->activeProfileId() == EProfileWrapperGeneralId );
-    
-    profileModel->activateProfile(EProfileWrapperMeetingId);
-    QVERIFY( profileModel->activeProfileId() == EProfileWrapperMeetingId );
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int activeProfileId() const;\n
-     2. Case Descrition: Verify that it can return the right profile ID or Error code. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> set an active valid profile \n &nbsp;&nbsp;
-        <2> set an active invaild profile \n
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> return the right ID \n &nbsp;&nbsp;
-        <2> no crash \n
- */
-void TestCpProfileModel::testActiveProfileId()
-{
-    CpProfileModel *profileModel = new CpProfileModel();   
-    
-    profileModel->activateProfile(EProfileWrapperGeneralId);
-    QVERIFY( profileModel->activeProfileId() == EProfileWrapperGeneralId );
-    
-    profileModel->activateProfile(-8);
-    // set profile failed, so the active profileID is still the previous ID, EProfileWrapperGeneralId.
-    QVERIFY( profileModel->activeProfileId() == EProfileWrapperGeneralId );  
-    
-    delete profileModel;
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void profileSettings(int profileId, CpProfileSettings& profileSettings);\n
-     2. Case Descrition: get profile settings,\n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileID = EProfileWrapperGeneralId, profileSettings = CpProfileSettings; \n &nbsp;&nbsp;
-        <2> profileID = EProfileWrapperMeetingId, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-        <3> profileID = EProfileWapperStart, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-        <4> profileID = EPRofileWrapperEnd, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-        <5> profileID = int, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-     4. Expected result: \n &nbsp;&nbsp;
-        no crash \n
- */
-void TestCpProfileModel::testProfileSettings()
-{
-    CpProfileSettings profileSettings;    
-    CpProfileModel *profileModel = new CpProfileModel();
-    profileSettings.mKeyTouchScreenVibra = 0;
-    profileSettings.mKeyTouchScreenTone = 2;
-    // test with valid profile ID.
-    profileModel->setProfileSettings( EProfileWrapperGeneralId, profileSettings );
-    profileModel->profileSettings( EProfileWrapperGeneralId, profileSettings );
-    QVERIFY( profileSettings.mKeyTouchScreenTone == 2);
-    
-    profileModel->setProfileSettings( EProfileWrapperMeetingId, profileSettings );
-    profileModel->profileSettings( EProfileWrapperMeetingId, profileSettings );
-    QVERIFY( profileSettings.mKeyTouchScreenVibra == 0);
-    // test with invalid profile ID.
-    profileModel->profileSettings( EProfileWapperStart, profileSettings );
-
-    profileModel->profileSettings( EPRofileWrapperEnd, profileSettings );
-
-    profileModel->profileSettings( 98, profileSettings );    
-    
-    delete profileModel;
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int setProfileSettings(int profileId, CpProfileSettings& profileSettings );\n
-     2. Case Descrition: Set profile settings from center repository keys \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileID = EProfileWrapperGeneralId, profileSettings = CpProfileSettings; \n &nbsp;&nbsp;
-        <2> profileID = EProfileWrapperMeetingId, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-        <3> profileID = EProfileWapperStart, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-        <4> profileID = EPRofileWrapperEnd, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-        <5> profileID = 98, profileSettings = CpProfileSettings;  \n &nbsp;&nbsp;
-     4. Expected result: \n &nbsp;&nbsp;
-        no crash \n
- */
-void TestCpProfileModel::testSetProfileSettings()
-{
-    CpProfileSettings profileSettings;
-    profileSettings.mKeyTouchScreenVibra = 4;
-    profileSettings.mKeyTouchScreenTone = 3;
-    CpProfileModel *profileModel = new CpProfileModel();
-    // test with valid profile ID.
-    profileModel->setProfileSettings( EProfileWrapperGeneralId, profileSettings );
-    profileModel->profileSettings( EProfileWrapperGeneralId, profileSettings );
-    QVERIFY( profileSettings.mKeyTouchScreenTone == 3);
-    
-    profileModel->setProfileSettings( EProfileWrapperMeetingId, profileSettings );
-    profileModel->profileSettings( EProfileWrapperMeetingId, profileSettings );
-    QVERIFY( profileSettings.mKeyTouchScreenVibra == 4);
-    
-    // test with invalid profile ID.
-    profileModel->setProfileSettings( EProfileWapperStart, profileSettings );
-    profileModel->setProfileSettings( EPRofileWrapperEnd, profileSettings );
-    profileModel->setProfileSettings( 98, profileSettings );    
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString ringTone() const;\n
-     2. Case Descrition: Verify that it return the right active ring tone path. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> set ringtone for profiles.  \n &nbsp;&nbsp;
-        <2> no ringtone is set. \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> return the right path \n &nbsp;&nbsp;
-        <2> return QString() \n
- */
-void TestCpProfileModel::testRingToneOfActive()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    // set a ringtone for profiles.
-    profileModel->setRingTone(ringTonePath1);
-    QString retRingTonePath1 = profileModel->ringTone();
-    QVERIFY( retRingTonePath1 == ringTonePath1 );
-    // no ringtone is set.
-    profileModel->setRingTone(QString());
-    QString retRingTonePath2 = profileModel->ringTone();
-    QVERIFY( retRingTonePath2 == QString() );
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setRingTone(const QString& filePath);\n
-     2. Case Descrition: Verify that it can set ring tone successfully with valid sound path. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> soundPath = QString(), \n &nbsp;&nbsp;
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->ringTone() == soundPath \n
- */
-void TestCpProfileModel::testSetRingToneAllWithValidPath()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setRingTone(ringTonePath1);
-    QVERIFY( profileModel->ringTone() == ringTonePath1 );
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setRingTone(const QString& filePath);\n
-     2. Case Descrition: Verify that no crash when setting ring tone with invalid sound path. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> path = QString(), \n &nbsp;&nbsp;
-        <2> path = QString(XX), XX is an invalid path \n &nbsp;&nbsp;
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->ringTone() == QString() \n &nbsp;&nbsp;
-        <2> profileModel->ringTone() == path \n &nbsp;&nbsp;
- */
-void TestCpProfileModel::testSetRingToneAllWithInvalidPath()
-{
-    QString inValidPath = "Z:/InvalidSoundPath";
-    CpProfileModel *profileModel = new CpProfileModel();
-    // using empty path.
-    profileModel->setRingTone( QString() );    
-    QVERIFY( profileModel->ringTone() == QString() );
-    // using an invalid path.
-    profileModel->setRingTone( QString( inValidPath ) ); 
-    QString retStr = profileModel->ringTone();    
-    QVERIFY( profileModel->ringTone() == inValidPath );
-    
-    delete profileModel;
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int void setMasterVolume(int volume);\n
-     2. Case Descrition: Verify that the valid volume can be set correctly \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> volume = int X, X = {1,2,3,4,5,6,7,8,9,10} \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->masterVolume() == X. \n
- */
-void TestCpProfileModel::testSetMasterWithValidVolume()
-{
-    CpProfileModel *profileModel = new CpProfileModel();    
-
-    for( int i = EProfileRingingVolumeLevel1; i <= EProfileRingingVolumeLevel10; i++ )
-        {
-            profileModel->setMasterVolume(i);
-            QVERIFY( profileModel->masterVolume() == i );
-        }
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int void setMasterVolume(int volume);\n
-     2. Case Descrition: Verify that no crash when using  \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> volume = -8 \n &nbsp;&nbsp;
-        <2> volume = 230 \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> no crash and the master volume is not changed. \n &nbsp;&nbsp;
-        <2> no crash and the master volume is not changed. \n 
- */
-void TestCpProfileModel::testSetMasterWithInvalidVolume()
-{
-    CpProfileModel *profileModel = new CpProfileModel(); 
-    int oldVolume = profileModel->masterVolume();
-    
-    profileModel->setMasterVolume( -8 );
-    QVERIFY( profileModel->masterVolume() == oldVolume );
-    
-    profileModel->setMasterVolume( 230 );
-    QVERIFY( profileModel->masterVolume() == oldVolume );
-    
-    delete profileModel;        
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: int masterVolume() const;\n
-     2. Case Descrition: Verify that it returns the right master volume for device. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> setMasterVolume( EProfileRingingVolumeLevel3 ) \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> returnMasterVolume == EProfileRingingVolumeLevel3 \n
- */
-void TestCpProfileModel::testMasterVolume()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    profileModel->setMasterVolume( EProfileRingingVolumeLevel3 );
-    
-    int returnMasterVolume = profileModel->masterVolume();
-    QVERIFY( returnMasterVolume == EProfileRingingVolumeLevel3 );
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-         void setMasterVibra(bool isVibra);\n         
-     2. Case Descrition: Verify that the master vibra's status can be set successfully. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> isVibra = true; \n  &nbsp;&nbsp;
-        <2> isVibra = false; \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->masterVibra() == true. \n &nbsp;&nbsp;
-        <1> profileModel->masterVibra() == false. \n
- */
-void TestCpProfileModel::testSetMasterVibra()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setMasterVibra(true);    
-    QVERIFY( profileModel->masterVibra() == true );
-    
-    profileModel->setMasterVibra(false);
-    QVERIFY( profileModel->masterVibra() == false );    
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-         bool masterVibra() const;\n         
-     2. Case Descrition: Verify that it returns the correct master vibra's status. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> isVibra = true; \n  &nbsp;&nbsp;
-        <2> isVibra = false; \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->masterVibra() == true. \n &nbsp;&nbsp;
-        <1> profileModel->masterVibra() == false. \n
- */
-void TestCpProfileModel::testMasterVibra()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setMasterVibra(true);    
-    QVERIFY( profileModel->masterVibra() == true );
-    
-    profileModel->setMasterVibra(false);
-    QVERIFY( profileModel->masterVibra() == false );    
-    
-    delete profileModel;
-}
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        void setSilenceMode(bool isSlience);\n
-     2. Case Descrition: Verify the right slicence mode can be set. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> isSlience = true; \n  &nbsp;&nbsp;
-        <2> isSlience = false; \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->silenceMode() == true. \n &nbsp;&nbsp;
-        <1> profileModel->silenceMode() == false. \n
- */
-void TestCpProfileModel::testSetSilenceMode()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setSilenceMode(true);
-    QVERIFY( profileModel->silenceMode() == true );
-
-    profileModel->setSilenceMode(false);
-    QVERIFY( profileModel->silenceMode() == false ); 
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        bool silenceMode() const;\n &nbsp;&nbsp;
-        void setSilenceMode(bool isSlience);\n
-     2. Case Descrition: Verify it get the correct silence mode of device. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> isSlience = true; \n  &nbsp;&nbsp;
-        <2> isSlience = false; \n 
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->silenceMode() == true. \n &nbsp;&nbsp;
-        <1> profileModel->silenceMode() == false. \n
- */
-void TestCpProfileModel::testSilenceMode()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setSilenceMode(true);
-    QVERIFY( profileModel->silenceMode() == true );
-
-    profileModel->setSilenceMode(false);
-    QVERIFY( profileModel->silenceMode() == false ); 
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString ringTone(int profileId)const; \n
-     2. Case Descrition: Verify that it can return the right ringtone when using valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, set ringtone with ringTonePath1 \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, set ringtone with ringTonePath2 \n        
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> profileModel->ringTone(EProfileWrapperGeneralId) == ringTonePath1  \n &nbsp;&nbsp;
-        <2> profileModel->ringTone(EProfileWrapperMeetingId) == ringTonePath2  \n     
- */
-void TestCpProfileModel::testRingToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setRingTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->ringTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    
-    profileModel->setRingTone( EProfileWrapperMeetingId, ringTonePath2 );
-    QVERIFY( profileModel->ringTone(EProfileWrapperMeetingId) == ringTonePath2 );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString ringTone(int profileId)const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 100,\n &nbsp;&nbsp;       
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash and return QString() \n &nbsp;&nbsp;
-        <2> no crash and return QString() \n &nbsp;&nbsp;
-        <3> no crash and return QString() \n &nbsp;&nbsp;
-        <4> no crash and return QString() \n 
- */
-void TestCpProfileModel::testRingToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    // set ring tone for all profile
-    profileModel->setRingTone(ringTonePath1);
-    
-    QVERIFY( profileModel->ringTone( EProfileWapperStart ) == QString() );
-    QVERIFY( profileModel->ringTone( EPRofileWrapperEnd ) == QString() );
-    QVERIFY( profileModel->ringTone( -9 ) == QString() );
-    QVERIFY( profileModel->ringTone( 100 ) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setRingTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it can set the profile ringtone successfully with valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, filePath = QString(ringTonePath) \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, filePath = QString() \n 
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> profileModel->ringTone(EProfileWrapperGeneralId) == ringTonePath \n &nbsp;&nbsp;
-        <2> profileModel->ringTone(EProfileWrapperMeetingId) == QString() \n 
- */
-void TestCpProfileModel::testSetRingToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setRingTone(EProfileWrapperGeneralId, ringTonePath2);
-    QVERIFY( profileModel->ringTone(EProfileWrapperGeneralId) == ringTonePath2 );
-    
-    profileModel->setRingTone(EProfileWrapperMeetingId, QString());
-    QVERIFY( profileModel->ringTone(EProfileWrapperMeetingId) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setRingTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -19,\n &nbsp;&nbsp;
-        <4> profileId = 101,\n
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash \n &nbsp;&nbsp;
-        <2> no crash \n &nbsp;&nbsp;
-        <3> no crash \n &nbsp;&nbsp;
-        <4> no crash \n 
- */
-void TestCpProfileModel::testSetRingToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setRingTone(EProfileWapperStart, ringTonePath2);
-    
-    profileModel->setRingTone(EPRofileWrapperEnd, ringTonePath2);
-    
-    profileModel->setRingTone(-19, ringTonePath2);
-    
-    profileModel->setRingTone(101, ringTonePath2);
-    
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString messageTone(int profileId) const; \n
-     2. Case Descrition: Verify that it can return the right message tone when using valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, set ringtone with soundPath1 \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, set ringtone with soundTonePath2 \n  
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> profileModel->messageTone(EProfileWrapperGeneralId) == soundPath1  \n &nbsp;&nbsp;
-        <2> profileModel->messageTone(EProfileWrapperMeetingId) == soundPath2  \n  
- */
-void TestCpProfileModel::testMessageToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setMessageTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->messageTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    
-    profileModel->setMessageTone( EProfileWrapperMeetingId, ringTonePath2 );
-    QVERIFY( profileModel->messageTone(EProfileWrapperMeetingId) == ringTonePath2 );
-
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString messageTone(int profileId) const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 59,\n 
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash and return QString() \n &nbsp;&nbsp;
-        <2> no crash and return QString() \n &nbsp;&nbsp;
-        <3> no crash and return QString() \n &nbsp;&nbsp;
-        <4> no crash and return QString() \n 
- */
-void TestCpProfileModel::testMessageToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-
-    QVERIFY( profileModel->messageTone( EProfileWapperStart ) == QString() );
-    QVERIFY( profileModel->messageTone( EPRofileWrapperEnd ) == QString() );
-    QVERIFY( profileModel->messageTone( -9 ) == QString() );
-    QVERIFY( profileModel->messageTone( 59 ) == QString() );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setMessageTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it can set the message tone successfully with valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, filePath = QString(soundPath) \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, filePath = QString() \n 
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> profileModel->messageTone(EProfileWrapperGeneralId) == ringTonePath \n &nbsp;&nbsp;
-        <2> profileModel->messageTone(EProfileWrapperMeetingId) == QString() \n 
- */
-void TestCpProfileModel::testSetMessageToneWithValidID()
-{
-    QString soundPath2 = QString("C:/unavailable path");
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setMessageTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->messageTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    // set an unavailable path.
-    profileModel->setMessageTone( EProfileWrapperGeneralId, soundPath2 );
-    QVERIFY( profileModel->messageTone(EProfileWrapperGeneralId) == soundPath2 );
-    
-    profileModel->setMessageTone( EProfileWrapperMeetingId, QString() );
-    QVERIFY( profileModel->messageTone(EProfileWrapperMeetingId) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setMessageTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -100,\n &nbsp;&nbsp;
-        <4> profileId = 100,\n 
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> no crash \n &nbsp;&nbsp;
-        <2> no crash \n &nbsp;&nbsp;
-        <3> no crash \n &nbsp;&nbsp;
-        <4> no crash \n 
- */
-void TestCpProfileModel::testSetMessageToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setMessageTone( EProfileWapperStart, ringTonePath1 );
-//    QVERIFY( profileModel->messageTone(EProfileWapperStart) == QString() );
-
-    profileModel->setMessageTone( EPRofileWrapperEnd, QString() );
-//    QVERIFY( profileModel->messageTone(EPRofileWrapperEnd) == QString() );
-    
-    profileModel->setMessageTone( -100, ringTonePath1 );
-//    QVERIFY( profileModel->messageTone(-100) == QString() );
-    
-    profileModel->setMessageTone( 100, QString() );
-//    QVERIFY( profileModel->messageTone(100) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString emailTone(int profileId) const; \n
-     2. Case Descrition: Verify that it can return the right email tone when using valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, set ringtone with soundPath1 \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, set ringtone with soundTonePath2 \n  
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> profileModel->emailTone(EProfileWrapperGeneralId) == soundPath1  \n &nbsp;&nbsp;
-        <2> profileModel->emailTone(EProfileWrapperMeetingId) == soundPath2  \n  
- */
-void TestCpProfileModel::testEmailToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setEmailTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->emailTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    
-    profileModel->setEmailTone( EProfileWrapperMeetingId, ringTonePath2 );
-    QVERIFY( profileModel->emailTone(EProfileWrapperMeetingId) == ringTonePath2 );
-
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString emailTone(int profileId) const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 59,\n 
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash and return QString() \n &nbsp;&nbsp;
-        <2> no crash and return QString() \n &nbsp;&nbsp;
-        <3> no crash and return QString() \n &nbsp;&nbsp;
-        <4> no crash and return QString() \n 
- */
-void TestCpProfileModel::testEmailToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-
-    QVERIFY( profileModel->emailTone( EProfileWapperStart ) == QString() );
-    QVERIFY( profileModel->emailTone( EPRofileWrapperEnd ) == QString() );
-    QVERIFY( profileModel->emailTone( -9 ) == QString() );
-    QVERIFY( profileModel->emailTone( 59 ) == QString() );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setEmailTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it can set the email tone successfully with valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, filePath = QString(soundPath) \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, filePath = QString() \n 
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> profileModel->emailTone(EProfileWrapperGeneralId) == soundPath \n &nbsp;&nbsp;
-        <2> profileModel->emailTone(EProfileWrapperMeetingId) == QString() \n 
- */
-void TestCpProfileModel::testSetEmailToneWithValidID()
-{
-    QString soundPath2 = QString("C:/unavailable path");
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setEmailTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->emailTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    // set an unavailable path.
-    profileModel->setEmailTone( EProfileWrapperGeneralId, soundPath2 );
-    QVERIFY( profileModel->emailTone(EProfileWrapperGeneralId) == soundPath2 );
-    
-    profileModel->setEmailTone( EProfileWrapperMeetingId, QString() );
-    QVERIFY( profileModel->emailTone(EProfileWrapperMeetingId) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setEmailTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -100,\n &nbsp;&nbsp;
-        <4> profileId = 100,\n 
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> no crash \n &nbsp;&nbsp;
-        <2> no crash \n &nbsp;&nbsp;
-        <3> no crash \n &nbsp;&nbsp;
-        <4> no crash \n 
- */
-void TestCpProfileModel::testSetEmailToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setEmailTone( EProfileWapperStart, ringTonePath1 );
-//    QVERIFY( profileModel->emailTone(EProfileWapperStart) == QString() );
-
-    profileModel->setEmailTone( EPRofileWrapperEnd, QString() );
-//    QVERIFY( profileModel->emailTone(EPRofileWrapperEnd) == QString() );
-    
-    profileModel->setEmailTone( -100, ringTonePath1 );
-//    QVERIFY( profileModel->emailTone(-100) == QString() );
-    
-    profileModel->setEmailTone( 100, QString() );
-//    QVERIFY( profileModel->emailTone(100) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString reminderTone(int profileId) const; \n
-     2. Case Descrition: Verify that it can return the right reminder tone when using valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, set ringtone with soundPath1 \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, set ringtone with soundTonePath2 \n  
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> profileModel->reminderTone(EProfileWrapperGeneralId) == soundPath1  \n &nbsp;&nbsp;
-        <2> profileModel->reminderTone(EProfileWrapperMeetingId) == soundPath2  \n  
- */
-void TestCpProfileModel::testReminderToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setReminderTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->reminderTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    
-    profileModel->setReminderTone( EProfileWrapperMeetingId, ringTonePath2 );
-    QVERIFY( profileModel->reminderTone(EProfileWrapperMeetingId) == ringTonePath2 );
-
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString reminderTone(int profileId) const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 59,\n 
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash and return QString() \n &nbsp;&nbsp;
-        <2> no crash and return QString() \n &nbsp;&nbsp;
-        <3> no crash and return QString() \n &nbsp;&nbsp;
-        <4> no crash and return QString() \n 
- */
-void TestCpProfileModel::testReminderToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-
-    QVERIFY( profileModel->reminderTone( EProfileWapperStart ) == QString() );
-    QVERIFY( profileModel->reminderTone( EPRofileWrapperEnd ) == QString() );
-    QVERIFY( profileModel->reminderTone( -9 ) == QString() );
-    QVERIFY( profileModel->reminderTone( 59 ) == QString() );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setReminderTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it can set the reminder tone successfully with valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, filePath = QString(soundPath) \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, filePath = QString() \n 
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> profileModel->reminderTone(EProfileWrapperGeneralId) == soundPath \n &nbsp;&nbsp;
-        <2> profileModel->reminderTone(EProfileWrapperMeetingId) == QString() \n 
- */
-void TestCpProfileModel::testSetReminderToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setReminderTone( EProfileWrapperGeneralId, ringTonePath1 );
-    QVERIFY( profileModel->reminderTone(EProfileWrapperGeneralId) == ringTonePath1 );
-    // set an unavailable path.
-    profileModel->setReminderTone( EProfileWrapperGeneralId, ringTonePath2 );
-    QVERIFY( profileModel->reminderTone(EProfileWrapperGeneralId) == ringTonePath2 );
-    
-    profileModel->setReminderTone( EProfileWrapperMeetingId, QString() );
-    QVERIFY( profileModel->reminderTone(EProfileWrapperMeetingId) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setReminderTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -100,\n &nbsp;&nbsp;
-        <4> profileId = 100,\n 
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash \n &nbsp;&nbsp;
-        <2> no crash \n &nbsp;&nbsp;
-        <3> no crash \n &nbsp;&nbsp;
-        <4> no crash \n 
- */
-void TestCpProfileModel::testSetReminderToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setReminderTone( EProfileWapperStart, ringTonePath1 );
-//    QVERIFY( profileModel->reminderTone(EProfileWapperStart) == QString() );
-
-    profileModel->setReminderTone( EPRofileWrapperEnd, QString() );
-//    QVERIFY( profileModel->reminderTone(EPRofileWrapperEnd) == QString() );
-    
-    profileModel->setReminderTone( -100, ringTonePath1 );
-//    QVERIFY( profileModel->reminderTone(-100) == QString() );
-    
-    profileModel->setReminderTone( 100, QString() );
-//    QVERIFY( profileModel->reminderTone(100) == QString() );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString notificationTone(int profileId) const; \n
-     2. Case Descrition: Verify that it can return the right notification tone when using valid profile ID. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, isActive = true \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, isActive = false \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->notificationTone(EProfileWrapperGeneralId) == true  \n &nbsp;&nbsp;
-        <2> profileModel->notificationTone(EProfileWrapperMeetingId) == false  \n  
- */
-void TestCpProfileModel::testNotificationToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setNotificationTone( EProfileWrapperGeneralId, true );
-    QVERIFY( profileModel->notificationTone(EProfileWrapperGeneralId) == true );
-    
-    profileModel->setNotificationTone( EProfileWrapperMeetingId, false );
-    QVERIFY( profileModel->notificationTone(EProfileWrapperMeetingId) == false );
-
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: QString notificationTone(int profileId) const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 59,\n 
-     4. Expected result: \n&nbsp;&nbsp;
-        <1> no crash and return QString() \n &nbsp;&nbsp;
-        <2> no crash and return QString() \n &nbsp;&nbsp;
-        <3> no crash and return QString() \n &nbsp;&nbsp;
-        <4> no crash and return QString() \n 
- */
-void TestCpProfileModel::testNotificationToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-
-    QVERIFY( profileModel->notificationTone( EProfileWapperStart ) == false );
-    QVERIFY( profileModel->notificationTone( EPRofileWrapperEnd ) == false );
-    QVERIFY( profileModel->notificationTone( -9 ) == false );
-    QVERIFY( profileModel->notificationTone( 59 ) == false );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name: void setNotificationTone(int profileId, const QString& filePath); \n
-     2. Case Descrition: Verify that it can set the notification tone successfully with valid profile ID. \n
-     3. Input Parameters:  \n&nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, isActive = true \n &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, isActive = false \n 
-     4. Expected result: \n&nbsp;&nbsp;\n &nbsp;&nbsp;
-        <1> profileModel->notificationTone(EProfileWrapperGeneralId) == true \n &nbsp;&nbsp;
-        <2> profileModel->notificationTone(EProfileWrapperMeetingId) == false \n 
- */
-void TestCpProfileModel::testSetNotificationTone()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setNotificationTone( EProfileWrapperGeneralId, true );
-    QVERIFY( profileModel->notificationTone(EProfileWrapperGeneralId) == true );
-
-    profileModel->setNotificationTone( EProfileWrapperGeneralId, false );
-    QVERIFY( profileModel->notificationTone(EProfileWrapperGeneralId) == false );
-
-    delete profileModel;
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        void setKeyTouchScreenTone(int profileId, int level);\n
-     2. Case Descrition: Verify that the tone of the valid profile can be set with valid level value. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, level = int X (X = 0,1,2,3,4,5); \n  &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, level = int X; \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->keyTouchScreenTone(EProfileWrapperGeneralId) == X. \n &nbsp;&nbsp;
-        <2> profileModel->keyTouchScreenTone(EProfileWrapperMeetingId) == X. \n
- */
-void TestCpProfileModel::testSetKeyTouchScreenToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    int i = 0;
-    for ( ; i <= 5; i++ ) {
-        profileModel->setKeyTouchScreenTone( EProfileWrapperGeneralId, i );
-        QVERIFY( profileModel->keyTouchScreenTone( EProfileWrapperGeneralId ) == i );
-        
-        profileModel->setKeyTouchScreenTone( EProfileWrapperMeetingId, i );
-        QVERIFY( profileModel->keyTouchScreenTone( EProfileWrapperMeetingId ) == i );
-    }
-    
-    profileModel->setKeyTouchScreenTone( EProfileWrapperGeneralId, 12 );
-    int b = profileModel->keyTouchScreenTone( EProfileWrapperGeneralId );
-    
-    profileModel->setKeyTouchScreenTone( EProfileWrapperMeetingId, -12 );
-    int c = profileModel->keyTouchScreenTone( EProfileWrapperMeetingId );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        void setKeyTouchScreenTone(int profileId, int level);\n
-     2. Case Descrition: Verify that it does not crash with invalid level value. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart, level = int X \n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd, level = int X \n &nbsp;&nbsp;
-        <3> profileId = -8, level = int X \n &nbsp;&nbsp;
-        <4> profileId = 99, level = int X \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> no crash \n &nbsp;&nbsp;
-        <2> no crash \n &nbsp;&nbsp;
-        <3> no crash \n &nbsp;&nbsp;
-        <4> no crash \n 
- */
-void TestCpProfileModel::testSetKeyTouchScreenToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setKeyTouchScreenTone( EProfileWapperStart, 4 );    
-    
-    profileModel->setKeyTouchScreenTone( EPRofileWrapperEnd, 2 );
-
-    profileModel->setKeyTouchScreenTone( -8, 4 );
-    
-    profileModel->setKeyTouchScreenTone( 99, 3 );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        int keyTouchScreenTone(int profileId) const; \n
-     2. Case Descrition: Verify that the tone can be get with valid profile ID. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId \n  &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> return the right tone level. \n &nbsp;&nbsp;
-        <2> return the right tone level. \n 
- */
-void TestCpProfileModel::testKeyTouchScreenToneWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setKeyTouchScreenTone( EProfileWrapperGeneralId, 4 );
-    QVERIFY( profileModel->keyTouchScreenTone( EProfileWrapperGeneralId ) == 4);
-    
-    profileModel->setKeyTouchScreenTone( EProfileWrapperMeetingId, 5 );
-    QVERIFY( profileModel->keyTouchScreenTone( EProfileWrapperMeetingId ) == 5);
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        int keyTouchScreenTone(int profileId) const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 100,\n     
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> no crash and return 0 \n &nbsp;&nbsp;
-        <2> no crash and return 0 \n &nbsp;&nbsp;
-        <3> no crash and return 0 \n &nbsp;&nbsp;
-        <4> no crash and return 0 \n 
- */
-void TestCpProfileModel::testKeyTouchScreenToneWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    QVERIFY( profileModel->keyTouchScreenTone( EProfileWapperStart ) == 0);
-    QVERIFY( profileModel->keyTouchScreenTone( EPRofileWrapperEnd ) == 0);
-    QVERIFY( profileModel->keyTouchScreenTone( -9 ) == 0);
-    QVERIFY( profileModel->keyTouchScreenTone( 100 ) == 0);
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        void setKeyTouchScreenVibra(int profileId, int level);\n
-     2. Case Descrition: Verify that the vibra mode of the valid profile can be set with valid level value. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId, level = int X (X = 0,1,2,3,4,5); \n  &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId, level = int X; \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> profileModel->keyTouchScreenVibra(EProfileWrapperGeneralId) == X. \n &nbsp;&nbsp;
-        <2> profileModel->keyTouchScreenVibra(EProfileWrapperMeetingId) == X. \n
- */
-void TestCpProfileModel::testSetKeyTouchScreenVibraWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    int i = 0;
-    for ( ; i <= 5; i++ ) {
-        profileModel->setKeyTouchScreenVibra( EProfileWrapperGeneralId, i );
-        QVERIFY( profileModel->keyTouchScreenVibra( EProfileWrapperGeneralId ) == i );
-        
-        profileModel->setKeyTouchScreenVibra( EProfileWrapperMeetingId, i );
-        QVERIFY( profileModel->keyTouchScreenVibra( EProfileWrapperMeetingId ) == i );
-    }
-    
-    profileModel->setKeyTouchScreenVibra( EProfileWrapperGeneralId, 12 );
-    int b = profileModel->keyTouchScreenVibra( EProfileWrapperGeneralId );
-    
-    profileModel->setKeyTouchScreenVibra( EProfileWrapperMeetingId, -12 );
-    int c = profileModel->keyTouchScreenVibra( EProfileWrapperMeetingId );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        void setKeyTouchScreenVibra(int profileId, int level);\n
-     2. Case Descrition: Verify that it does not crash with the invalid level value. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart, level = int X \n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd, level = int X \n &nbsp;&nbsp;
-        <3> profileId = -8, level = int X \n &nbsp;&nbsp;
-        <4> profileId = 99, level = int X \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> no crash \n &nbsp;&nbsp;
-        <2> no crash \n &nbsp;&nbsp;
-        <3> no crash \n &nbsp;&nbsp;
-        <4> no crash \n 
- */
-void TestCpProfileModel::testSetKeyTouchScreenVibraWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setKeyTouchScreenVibra( EProfileWapperStart, 4 );    
-    
-    profileModel->setKeyTouchScreenVibra( EPRofileWrapperEnd, 2 );
-
-    profileModel->setKeyTouchScreenVibra( -8, 4 );
-    
-    profileModel->setKeyTouchScreenVibra( 99, 3 );
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        int keyTouchScreenVibra(int profileId) const; \n
-     2. Case Descrition: Verify that the vibra value can be get with valid profile ID. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWrapperGeneralId \n  &nbsp;&nbsp;
-        <2> profileId = EProfileWrapperMeetingId \n  
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> return the right key touch screen vibra's value. \n &nbsp;&nbsp;
-        <2> return the right key touch screen vibra's value. \n 
- */
-void TestCpProfileModel::testKeyTouchScreenVibraWithValidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    profileModel->setKeyTouchScreenVibra( EProfileWrapperGeneralId, 4 );
-    QVERIFY( profileModel->keyTouchScreenVibra( EProfileWrapperGeneralId ) == 4);
-    
-    profileModel->setKeyTouchScreenVibra( EProfileWrapperMeetingId, 5 );
-    QVERIFY( profileModel->keyTouchScreenVibra( EProfileWrapperMeetingId ) == 5);
-    
-    delete profileModel;    
-}
-
-/*!
-     Test Case Description:\n 
-     1. Fucntion Name:  \n &nbsp;&nbsp;
-        int keyTouchScreenVibra(int profileId) const; \n
-     2. Case Descrition: Verify that it does not crash when using invalid profile ID. \n
-     3. Input Parameters:  \n &nbsp;&nbsp;
-        <1> profileId = EProfileWapperStart,\n &nbsp;&nbsp;
-        <2> profileId = EPRofileWrapperEnd,\n &nbsp;&nbsp;
-        <3> profileId = -9,\n &nbsp;&nbsp;
-        <4> profileId = 100,\n     
-     4. Expected result: \n &nbsp;&nbsp;
-        <1> no crash and return 0 \n &nbsp;&nbsp;
-        <2> no crash and return 0 \n &nbsp;&nbsp;
-        <3> no crash and return 0 \n &nbsp;&nbsp;
-        <4> no crash and return 0 \n 
- */
-void TestCpProfileModel::testKeyTouchScreenVibraWithInvalidID()
-{
-    CpProfileModel *profileModel = new CpProfileModel();
-    
-    QVERIFY( profileModel->keyTouchScreenVibra( EProfileWapperStart ) == 0);
-    QVERIFY( profileModel->keyTouchScreenVibra( EPRofileWrapperEnd ) == 0);
-    QVERIFY( profileModel->keyTouchScreenVibra( -9 ) == 0);
-    QVERIFY( profileModel->keyTouchScreenVibra( 100 ) == 0);
-    
-    delete profileModel;    
-}
-
-/*!
-    Descrition of what you will do in this function
- */
-void TestCpProfileModel::cleanupTestCase()
-{
-    // release all test data
-    QCoreApplication::processEvents();
-}
-
-QTEST_MAIN(TestCpProfileModel)
--- a/controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/src/ut_cpprofilemodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +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:  
-*       test the functions in cppluginconfigreader class 
-*/
-
-#ifndef UT_CPPROFILEMODEL_H_ 
-#define UT_CPPROFILEMODEL_H_
-
-class CpPluginConfig;
-#include <QObject>
-
-class TestCpProfileModel :public QObject
-{
-    Q_OBJECT
-private slots:
-    // init function
-    void initTestCase();
-    
-    void testConstructor(); // test the constructor.    
-
-    void testProfileNameWithValidProfileID(); // test the profileName() function with valid profile ID. 
-    void testProfileNameWithInvalidProfileID(); // test the profileName() function with invalid profile ID.
-    void testProfileNames(); // test the profileNames() function.
-   
-    void testActivateProfileWithInvalidID(); //test the activateProfile() function with invalid profile ID.
-    void testActivateProfileWithValidID(); // test the activateProfile() function with valid profile ID.
-    void testActiveProfileId(); // test the activeProfileId() function.
-    
-    void testProfileSettings(); // test the profileSettings() function.
-    void testSetProfileSettings(); // test the setProfileSettings() function.
-    
-    void testRingToneOfActive(); // test the ringTone() function.
-    void testSetRingToneAllWithValidPath(); // test the setRingTone() function with valid sound path.
-    void testSetRingToneAllWithInvalidPath(); // test the setRingTone() function with invalid sound path.
-    
-    void testSetMasterWithValidVolume(); // test the setMasterVolume() function with valid volume value.
-    void testSetMasterWithInvalidVolume(); // test the setMasterVolume() function with invalid volume value.
-    void testMasterVolume(); // test the masterVolume() function.
-    
-    void testSetMasterVibra(); // test the setMasterVibra() functions.
-    void testMasterVibra(); // test the masterVibra() functions.
-    
-    void testSetSilenceMode(); // test the setSilenceMode() functions.
-    void testSilenceMode(); // test the silenceMode() functions.
-    
-    void testRingToneWithValidID(); // test the ringTone(int profileId) function with valid profile ID.
-    void testRingToneWithInvalidID(); // test the ringTone(int profileId) function with invalid profile ID.
-    void testSetRingToneWithValidID(); // test the  setRingTone(int profileId, const QString& filePath) function with valid profile ID.
-    void testSetRingToneWithInvalidID(); // test the  setRingTone(int profileId, const QString& filePath) function with invalid profile ID.
-    
-    void testMessageToneWithValidID(); // test MessageTone() function with valid profile ID.
-    void testMessageToneWithInvalidID(); // test MessageTone() function with valid profile ID.
-    void testSetMessageToneWithValidID(); // test the setMessageTone() function with valid profile ID.
-    void testSetMessageToneWithInvalidID(); // test the setMessageTone() function with invalid profile ID.
-    
-    void testEmailToneWithValidID(); // test emailTone() function with valid profile ID.
-    void testEmailToneWithInvalidID(); // test emailTone() function with valid profile ID.
-    void testSetEmailToneWithValidID(); // test the setEmailTone() function with valid profile ID.
-    void testSetEmailToneWithInvalidID(); // test the setEmailTone() function with invalid profile ID.
-    
-    void testReminderToneWithValidID(); // test reminderTone() function with valid profile ID.
-    void testReminderToneWithInvalidID(); // test reminderTone() function with valid profile ID.
-    void testSetReminderToneWithValidID(); // test the setReminderTone() function with valid profile ID.
-    void testSetReminderToneWithInvalidID(); // test the setReminderTone() function with invalid profile ID.
-    
-    void testNotificationToneWithValidID(); // test notificationTone() function with valid profile ID.
-    void testNotificationToneWithInvalidID(); // test notificationTone() function with valid profile ID.
-    void testSetNotificationTone(); // test the setNotificationTone() function with valid profile ID.
-    
-    void testSetKeyTouchScreenToneWithValidID(); // test the setKeyTouchScreenTone()function with valid profile ID.
-    void testSetKeyTouchScreenToneWithInvalidID(); // test the setKeyTouchScreenTone()function with invalid profile ID.
-    void testKeyTouchScreenToneWithValidID(); // test the keyTouchScreenTone()function with valid profile ID.
-    void testKeyTouchScreenToneWithInvalidID(); // test the keyTouchScreenTone()function with invalid profile ID.
-    
-    void testSetKeyTouchScreenVibraWithValidID(); // test the setKeyTouchScreenVibra()function with valid profile ID.
-    void testSetKeyTouchScreenVibraWithInvalidID(); // test the setKeyTouchScreenVibra()function with invalid profile ID.
-    void testKeyTouchScreenVibraWithValidID(); // test the keyTouchScreenVibra()function with valid profile ID.
-    void testKeyTouchScreenVibraWithInvalidID(); // test the keyTouchScreenVibra()function with invalid profile ID.
-
-    void cleanupTestCase();    
-private:
-   QString ringTonePath1;
-   QString ringTonePath2;
-};
-#endif /* UT_CPPROFILEMODEL_H_ */
--- a/controlpanelui/src/cpprofilewrapper/tsrc/ut_cpprofilemodel/ut_cpprofilemodel.pro	Tue Aug 31 15:15:28 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: 
-#
-
-TEMPLATE = app
-TARGET = ut_cpprofilemodel
-
-QT += testlib
-CONFIG += hb qtestlib
-CONFIG += symbian_test
-
-include (../unit_common.pri)
-
-HEADERS += src/*.h
-SOURCES += src/*.cpp
-
-QMAKE_EXTRA_TARGETS += test autotest
-
-DEPENDPATH += .
-
-INCLUDEPATH += . ../../src\
-	        ../../../inc 
-
-LIBS += -lcpframework 
-LIBS += -lcpprofilewrapper \
-        -lprofileeng  \
-        -lcentralrepository \
-        -lcharconv
-symbian { 
-    deploy.path = C:
-    soundfiles.sources += data/testsound.aac \
-                          data/testsound2.aac
-    soundfiles.path = /resource/cptestdata/sounds
-    DEPLOYMENT += soundfiles
-    
-    # This is for new exporting system coming in garden
-    for(soundfile, soundfiles.sources):BLD_INF_RULES.prj_exports += "./$$soundfile $$deploy.path$$soundfiles.path/$$basename(soundfile)"
-}
\ No newline at end of file
--- a/controlpanelui/src/cpringtoneview/bwins/cpringtoneviewu.def	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-EXPORTS
-	?tr@CpRingToneView@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString CpRingToneView::tr(char const *, char const *)
-	?selOK@CpRingToneView@@IAEXABVQString@@@Z @ 2 NONAME ; void CpRingToneView::selOK(class QString const &)
-	??1CpRingToneView@@UAE@XZ @ 3 NONAME ; CpRingToneView::~CpRingToneView(void)
-	?getStaticMetaObject@CpRingToneView@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & CpRingToneView::getStaticMetaObject(void)
-	?handleError@CpRingToneView@@AAEXHABVQString@@@Z @ 5 NONAME ; void CpRingToneView::handleError(int, class QString const &)
-	?launchMediaFetcher@CpRingToneView@@AAEXABVQString@@0@Z @ 6 NONAME ; void CpRingToneView::launchMediaFetcher(class QString const &, class QString const &)
-	?selError@CpRingToneView@@IAEXHABVQString@@@Z @ 7 NONAME ; void CpRingToneView::selError(int, class QString const &)
-	?trUtf8@CpRingToneView@@SA?AVQString@@PBD0H@Z @ 8 NONAME ; class QString CpRingToneView::trUtf8(char const *, char const *, int)
-	?qt_metacall@CpRingToneView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int CpRingToneView::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?staticMetaObject@CpRingToneView@@2UQMetaObject@@B @ 10 NONAME ; struct QMetaObject const CpRingToneView::staticMetaObject
-	?metaObject@CpRingToneView@@UBEPBUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const * CpRingToneView::metaObject(void) const
-	?tr@CpRingToneView@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString CpRingToneView::tr(char const *, char const *, int)
-	??0CpRingToneView@@QAE@PAVQGraphicsItem@@@Z @ 13 NONAME ; CpRingToneView::CpRingToneView(class QGraphicsItem *)
-	?itemActivated@CpRingToneView@@AAEXABVQModelIndex@@@Z @ 14 NONAME ; void CpRingToneView::itemActivated(class QModelIndex const &)
-	??_ECpRingToneView@@UAE@I@Z @ 15 NONAME ; CpRingToneView::~CpRingToneView(unsigned int)
-	?trUtf8@CpRingToneView@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString CpRingToneView::trUtf8(char const *, char const *)
-	?handleOk@CpRingToneView@@AAEXABVQVariant@@@Z @ 17 NONAME ; void CpRingToneView::handleOk(class QVariant const &)
-	?qt_metacast@CpRingToneView@@UAEPAXPBD@Z @ 18 NONAME ; void * CpRingToneView::qt_metacast(char const *)
-
--- a/controlpanelui/src/cpringtoneview/cpringtoneview.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +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: display plugin source files
-#
-include (../common.pri)
-include (ringtoneview.pri)
-TARGET = cpringtoneview
-TEMPLATE = lib
-
-CONFIG += hb
-DEFINES += CPRINGTONEVIEW_LIBRARY
-symbian {
-    LIBS +=  -lcpprofilewrapper -lcplogger -lcpframework -lxqservice -lxqserviceutil
-    TARGET.UID3 = 0X2002873A
-    TARGET.CAPABILITY = All -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
--- a/controlpanelui/src/cpringtoneview/eabi/cpringtoneviewu.def	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-EXPORTS
-	_ZN14CpRingToneView11handleErrorEiRK7QString @ 1 NONAME
-	_ZN14CpRingToneView11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
-	_ZN14CpRingToneView11qt_metacastEPKc @ 3 NONAME
-	_ZN14CpRingToneView13itemActivatedERK11QModelIndex @ 4 NONAME
-	_ZN14CpRingToneView16staticMetaObjectE @ 5 NONAME DATA 16
-	_ZN14CpRingToneView18launchMediaFetcherERK7QStringS2_ @ 6 NONAME
-	_ZN14CpRingToneView19getStaticMetaObjectEv @ 7 NONAME
-	_ZN14CpRingToneView5selOKERK7QString @ 8 NONAME
-	_ZN14CpRingToneView8handleOkERK8QVariant @ 9 NONAME
-	_ZN14CpRingToneView8selErrorEiRK7QString @ 10 NONAME
-	_ZN14CpRingToneViewC1EP13QGraphicsItem @ 11 NONAME
-	_ZN14CpRingToneViewC2EP13QGraphicsItem @ 12 NONAME
-	_ZN14CpRingToneViewD0Ev @ 13 NONAME
-	_ZN14CpRingToneViewD1Ev @ 14 NONAME
-	_ZN14CpRingToneViewD2Ev @ 15 NONAME
-	_ZNK14CpRingToneView10metaObjectEv @ 16 NONAME
-	_ZTI14CpRingToneView @ 17 NONAME
-	_ZTV14CpRingToneView @ 18 NONAME
-	_ZThn16_N14CpRingToneViewD0Ev @ 19 NONAME
-	_ZThn16_N14CpRingToneViewD1Ev @ 20 NONAME
-	_ZThn8_N14CpRingToneViewD0Ev @ 21 NONAME
-	_ZThn8_N14CpRingToneViewD1Ev @ 22 NONAME
-
--- a/controlpanelui/src/cpringtoneview/ringtoneview.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +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: display plugin source files
-#
-
-# Input
-HEADERS += ../inc/cpringtoneview.h
-
-SOURCES += src/cpringtoneview.cpp
--- a/controlpanelui/src/cpringtoneview/src/cpringtoneview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +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 "cpringtoneview.h"
-#include <HbListWidget>
-#include <QGraphicsLinearLayout>
-#include <HbLabel>
-#include <QList>
-#include <QPair>
-#include <QModelIndex>
-#include <QStandardItemModel>
-#include <QStandardItem>
-#include <xqaiwrequest.h>
-#include <cplogger.h>
-#include <hbstyleloader.h>
-#include <hbdataformmodel.h>
-#include <hbdataformmodelitem.h>
-#include <hbdataform.h>
-#include <cpsettingformentryitemdata.h>
-
-CpRingToneView::CpRingToneView( QGraphicsItem *parent ):
-                              CpBaseSettingView(0, parent),
-                              mToneTypeList( new HbListWidget(this) ),
-                              mReq(0), mProcessing(false)
-{
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem_color.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.widgetml");
-    
-    HbDataForm *form = qobject_cast<HbDataForm*> ( widget() );
-    form->setHeading(hbTrId("txt_cp_subhead_select_tone_type"));   
-    
-    HbDataFormModel *model = new HbDataFormModel();  
-    QList< QPair<QString,QString> > tonesTypeList;
-    tonesTypeList << qMakePair( QString("qtg_large_tone_off"), hbTrId("txt_cp_list_no_tone") )
-                 << qMakePair( QString("qtg_large_tone"), hbTrId("txt_cp_list_tone") )
-                 << qMakePair( QString("qtg_large_music"), hbTrId("txt_cp_list_music") )                 
-                 << qMakePair( QString("qtg_large_ovistore"), hbTrId("txt_cp_list_get_more_tones") );
-       
-    for (int i = 0; i < tonesTypeList.count(); ++i) {
-        HbDataFormModelItem *itemData = new HbDataFormModelItem();
-        itemData->setType ( static_cast<HbDataFormModelItem::DataItemType> (CpSettingFormEntryItemData::ListEntryItem) );
-        itemData->setLabel(tonesTypeList.at(i).second);
-        itemData->setIcon(tonesTypeList.at(i).first);
-        model->appendDataFormItem(itemData, model->invisibleRootItem());
-    }
-    connect(form, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
-    form->setModel(model);
-}
-CpRingToneView::~CpRingToneView()
-{
-    if (mReq) {
-        delete mReq;
-    }    
-}
-
-void CpRingToneView::itemActivated( const QModelIndex &index )
-{
-    //avoid responding to the second or later consecutive click
-	if (mProcessing) {
-		return;
-	}
-	mProcessing = true;
-    int nRow = index.row();
-
-    switch(nRow) {
-        case 0:         //no tone, set default no sound
-                emit selOK(QString(""));
-                emit aboutToClose();
-                break;
-        case 1:         //tone
-                launchMediaFetcher( "com.nokia.symbian.IToneFetch", "fetch()" );
-                break;
-        case 2:         //music
-                launchMediaFetcher("com.nokia.symbian.IMusicFetch", "fetch()" );
-                break;
-        case 3:         //get more tones
-		default:
-		        break;
-	 }
-}
-void CpRingToneView::handleOk(const QVariant &result)
-{
-    mProcessing = false;
-    CPFW_LOG( "CpRingToneView::handleOk" );
-    if (!result.canConvert<QString>() || result.toString().length() == 0 )  //error result
-    {
-        return;
-    }
-    hide();
-    emit selOK( result.value<QString>() );
-    emit aboutToClose();
-}
-
-
-void CpRingToneView::handleError(int errorCode, const QString& errorMessage)
-{
-    mProcessing = false;
-    emit(selError( errorCode, errorMessage ));
-}
-
-void CpRingToneView::launchMediaFetcher( const QString &strService, const QString &strItface )
-{
-    CPFW_LOG("CpRingToneView::launchMediaFetcher, START");
-    if(mReq)
-    {
-        delete mReq;
-        mReq = 0;
-    }
-        //launch media fetcher
-    mReq = mAppMgr.create(strService, strItface, true);
-    mReq->setSynchronous(false);
-    if (!mReq)
-    {
-      CPFW_LOG("CpRingToneView::launchMediaFetcher, Mediafetcher start failed");
-      return;
-    }
-    else
-    {   //use QueuedConnection so that requestError will not be emitted when selecting one tone
-        connect(mReq, SIGNAL(requestOk(QVariant)), SLOT( handleOk(QVariant)), Qt::QueuedConnection);
-        connect(mReq, SIGNAL(requestError(int, QString)), SLOT(handleError(int, QString)));
-    }
-    
-    QList<QVariant> args;
-    args << QVariant(QString("<app_name>"));
-    mReq->setArguments(args);
-    // Make the request
-    if (!mReq->send())
-    {
-        CPFW_LOG("CpRingToneView::launchMediaFetcher, Mediafetcher calling failed");
-    }
-    CPFW_LOG("CpRingToneView::launchMediaFetcher, END");
-}
-
--- a/controlpanelui/src/cpserviceprovider/cpserviceprovider.pri	Tue Aug 31 15:15:28 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: cpserviceprovider project - included files
-#
-
-HEADERS += src/cpservicemainwindow.h \
-		   src/cplauncherservice.h
-		   
-SOURCES += src/cpservicemainwindow.cpp \
-		   src/cplauncherservice.cpp \
-		   src/main.cpp
\ No newline at end of file
--- a/controlpanelui/src/cpserviceprovider/cpserviceprovider.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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: cpserviceprovider project - qmake settings
-#
-
-TEMPLATE = app
-TARGET = cpserviceprovider
-
-CONFIG += hb service
-symbian:TARGET.UID3 = 0x2002873F
-
-include( ../common.pri )
-include( cpserviceprovider.pri )
-
-# DEFINES += ENABLE_CPSP_LOG
-RESOURCES += cpserviceprovider.qrc
-
-LIBS += -lxqservice -lxqserviceutil -lcplogger -lcpframework
-
-SERVICE.FILE = service_conf.xml
-SERVICE.OPTIONS = embeddable
-SERVICE.OPTIONS += hidden
--- a/controlpanelui/src/cpserviceprovider/cpserviceprovider.qrc	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/logconf" >
-        <file alias="cpserviceproviderlog.conf">data/cpserviceproviderlog.conf</file>
-    </qresource>  
-</RCC>
\ No newline at end of file
--- a/controlpanelui/src/cpserviceprovider/data/cpserviceproviderlog.conf	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-[CpServiceProvider]
-logdatetime = 1
-logloggername = 1
-datetimeformat = hh:mm:ss
-output = debugoutput fileoutput
-fileoutput/logfile = C:/data/logs/cpserviceprovider.log
-fileoutput/truncate = 1
--- a/controlpanelui/src/cpserviceprovider/service_conf.xml	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service>
-  <name>cpserviceprovider</name>
-  <filepath>="must-not-be-empty"</filepath>
-  <description>ControlPanel service</description>
-  <interface>
-     <name>com.nokia.symbian.ICpPluginLauncher</name>
-     <version>1.0</version>
-     <description>Launch a setting view which comes from a controlpanel plugin</description>
-  </interface>
-</service>
\ No newline at end of file
--- a/controlpanelui/src/cpserviceprovider/src/cplauncherservice.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +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 "cplauncherservice.h"
-#include <QCoreApplication>
-#include <cpservicemainwindow.h>
-#include <cplauncherinterface.h>
-#include <cppluginloader.h>
-#include <cpbasesettingview.h>
-#include "cpsplogger.h"
-
-CpLauncherService::CpLauncherService(HbMainWindow *mainWindow /* = 0*/)
-: XQServiceProvider("cpserviceprovider.com.nokia.symbian.ICpPluginLauncher",mainWindow),
-  mMainWindow(mainWindow),
-  mAsyncRequestIndex(-1),
-  mReturnValue(false)
-{
-    CPSP_LOG_FUNC_ENTRY("CpLauncherService::CpLauncherService")
-    
-    publishAll();
-    connect(this,SIGNAL(clientDisconnected()),this,SLOT(handleClientDisconnected()));
-}
-
-CpLauncherService::~CpLauncherService()
-{
-    CPSP_LOG_FUNC_ENTRY("CpLauncherService::~CpLauncherService")
-}
-
-bool CpLauncherService::complete()
-{
-    CPSP_LOG_FUNC_ENTRY("CpLauncherService::complete")
-    
-    CPSP_LOG( QString("CpLauncherService::complete() mAsyncRequestIndex = %1, mReturnValue = %2").arg(
-            mAsyncRequestIndex).arg(mReturnValue.toBool()) )
-    
-    bool ret = completeRequest(mAsyncRequestIndex, mReturnValue);
-    mAsyncRequestIndex = -1;
-    return ret;
-}
-
-void CpLauncherService::setReturnValue(const QVariant &returnValue)
-{
-    CPSP_LOG_FUNC_ENTRY("CpLauncherService::setReturnValue")
-    
-    mReturnValue = returnValue;
-}
-
-bool CpLauncherService::launchSettingView(const QString &pluginFile,const QVariant &hint)
-{
-    CPSP_LOG_FUNC_ENTRY("CpLauncherService::launchSettingView");
-   
-    mAsyncRequestIndex = setCurrentRequestAsync();
-    
-    bool succeed = false;
-       
-    if (mMainWindow) {
-        mMainWindow->show();
-        CpLauncherInterface *plugin = CpPluginLoader::loadCpLauncherInterface(pluginFile);
-        if (plugin) {
-            CpBaseSettingView *settingView = plugin->createSettingView(hint);
-            if (settingView) {
-                connect(settingView, SIGNAL(returnValueDelivered(QVariant)),this,SLOT(setReturnValue(QVariant)));
-                (static_cast<CpServiceMainWindow*>(mMainWindow))->setSettingView(settingView);                
-                succeed = true;
-            }
-            else {
-                CPSP_LOG("Create setting view failed.");
-            }
-        }
-        else {
-            CPSP_LOG(QLatin1String("Load plugin interface(CpLauncherInterface) failed: ") + pluginFile);
-        }
-        
-        if (!succeed) {
-            qApp->quit();  //quit application if loading plugin failed or creating setting view failed.
-        }
-    }
-    
-    return succeed;
-}
-
-void CpLauncherService::handleClientDisconnected()
-{
-    CPSP_LOG_FUNC_ENTRY("CpLauncherService::handleClientDisconnected")
-        
-    qApp->quit();
-}
-
-//End of File
--- a/controlpanelui/src/cpserviceprovider/src/cplauncherservice.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +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:  
-*
-*/
-
-#ifndef CPLAUNCHERSERVICE_H
-#define CPLAUNCHERSERVICE_H
-
-#include <xqserviceprovider.h>
-
-class HbMainWindow;
-
-class CpLauncherService : public XQServiceProvider
-{
-    Q_OBJECT
-public:
-    explicit CpLauncherService(HbMainWindow *mainWindow = 0);
-    virtual ~CpLauncherService();
-    bool complete();
-public slots:
-    bool launchSettingView(const QString &pluginFile,const QVariant &hint);
-private slots:
-    void setReturnValue(const QVariant &returnValue);
-    void handleClientDisconnected();
-private:
-    HbMainWindow *mMainWindow;
-    int mAsyncRequestIndex;
-    QVariant mReturnValue;
-};
-
-#endif //CPLAUNCHERSERVICE_H
-
-//End of File
--- a/controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +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 "cpservicemainwindow.h"
-#include <QCoreApplication>
-#include <cpbasesettingview.h>
-#include "cplauncherservice.h"
-#include "cpsplogger.h"
-
-CpServiceMainWindow::CpServiceMainWindow(QWidget *parent /* = 0*/)
-: HbMainWindow(parent), mLauncherService(0), mPreviousView(0)
-{
-    CPSP_LOG_FUNC_ENTRY("CpServiceMainWindow::CpServiceMainWindow")
-        
-    mLauncherService = new CpLauncherService(this);
-}
-
-CpServiceMainWindow::~CpServiceMainWindow()
-{
-    CPSP_LOG_FUNC_ENTRY("CpServiceMainWindow::~CpServiceMainWindow")
-}
-
-void CpServiceMainWindow::setSettingView(CpBaseSettingView *settingView)
-{
-    CPSP_LOG_FUNC_ENTRY("CpServiceMainWindow::setSettingView")
-    
-    mSettingViewPointer = settingView;
-    
-    mPreviousView = currentView();
-    
-    connect(settingView, SIGNAL(aboutToClose()), this, SLOT(quit()));    
-    addView(settingView);
-    setCurrentView(settingView);
-}
-
-void CpServiceMainWindow::quit()
-{
-    CPSP_LOG_FUNC_ENTRY("CpServiceMainWindow::quit");
-    
-    closeSettingView();
-    
-    connect(mLauncherService, SIGNAL(returnValueDelivered()), qApp, SLOT(quit()));
-    mLauncherService->complete();
-  
-    /*
-    hide();
-    mLauncherService->complete();
-    if (mSettingViewPointer) {
-        removeView(mSettingViewPointer);
-        mSettingViewPointer->deleteLater();
-    }  
-    */
-}
-
-void CpServiceMainWindow::closeSettingView()
-{
-    CPSP_LOG_FUNC_ENTRY("CpServiceMainWindow::closeSettingView")
-    
-    if (mSettingViewPointer) {
-        removeView(mSettingViewPointer);
-        mSettingViewPointer->deleteLater();
-    }
-    
-    setCurrentView(mPreviousView);
-}
-
-//End of File
--- a/controlpanelui/src/cpserviceprovider/src/cpservicemainwindow.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:  
-*
-*/
-
-#ifndef CPSERVICEMAINWINDOW_H
-#define CPSERVICEMAINWINDOW_H
-
-#include <hbmainwindow.h>
-#include <QPointer>
-
-class CpLauncherService;
-class CpBaseSettingView;
-
-class CpServiceMainWindow : public HbMainWindow
-{
-    Q_OBJECT
-public:
-    explicit CpServiceMainWindow(QWidget *parent = 0);
-    virtual ~CpServiceMainWindow();
-    
-    /*
-     * set the setting view as current view
-     */
-    void setSettingView(CpBaseSettingView *settingView);
-    
-    /*
-     * close current setting view
-     */
-    void closeSettingView();
-    
-public slots:
-    void quit();
-private:
-    CpLauncherService *mLauncherService;
-    HbView *mPreviousView;
-    QPointer<CpBaseSettingView> mSettingViewPointer;
-};
-
-#endif // CPSERVICEMAINWINDOW_H
-
-//End of File
--- a/controlpanelui/src/cpserviceprovider/src/cpsplogger.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +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:  
-*
-*/
-
-#ifndef CPSPLOGGER_H
-#define CPSPLOGGER_H
-
-#include <QLatin1String>
-#include <logger.h>
-
-#ifdef ENABLE_CPSP_LOG
-    #define CPSP_LOGGER_NAME          QLatin1String("CpServiceProvider")
-    #define CPSP_LOGGER_CONFIG_PATH   QLatin1String(":/logconf/cpserviceproviderlog.conf")
-
-    #define CPSP_LOG(str)             Logger::instance(CPSP_LOGGER_NAME)->log(str);
-    #define CPSP_LOG_FUNC_ENTRY(func) LogFunctionEntryHelper ___cpsp_log_func_entry_helper(CPSP_LOGGER_NAME,func);
-#else
-    #define CPSP_LOG(str)
-    #define CPSP_LOG_FUNC_ENTRY(func)
-#endif
-
-
-#endif
--- a/controlpanelui/src/cpserviceprovider/src/main.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:  main.cpp
-*
-*/
-#include <hbapplication.h>
-#include <hbstyleloader.h>
-#include <hbtranslator.h>
-#include <QLocale>
-#include "cpservicemainwindow.h"
-#include "cpsplogger.h"
-
-int main(int argc, char **argv)
-{
-    HbApplication app(argc,argv ); 
- 
-#ifdef ENABLE_CPSP_LOG
-    INIT_LOGGER(CPSP_LOGGER_NAME,CPSP_LOGGER_CONFIG_PATH)
-#endif
-    
-    CPSP_LOG("Entering CpServiceProvider.exe...");
-    
-    HbTranslator translator("control_panel");
-    translator.loadCommon();
-    
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem_color.css");
-    HbStyleLoader::registerFilePath(":/widgetml/cpdataformlistentryviewitem.widgetml");
-    
-    CpServiceMainWindow wnd;
-    /*
-    DON'T call wnd.show(),
-    it will cause deadlock problem if cpserviceprovider is launched from an indicator plugin.
-    */
-    
-    int ret = app.exec();
-    
-    CPSP_LOG("Exiting CpServiceProvider.exe.");
-    
-    return ret;     
-}
-
-//End of File
--- a/controlpanelui/src/inc/cpcategoryglobal.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:  
-*
-*/
-
-#ifndef CP_CATEGORY_GLOBAL_H
-#define CP_CATEGORY_GLOBAL_H
-
-#include <QtGlobal>
-
-#ifdef BUILD_CPCATEGORY_GLOBAL
-    #define CP_CATEGORY_EXPORT Q_DECL_EXPORT
-#else
-    #define CP_CATEGORY_EXPORT Q_DECL_IMPORT
-#endif
-
-#endif
--- a/controlpanelui/src/inc/cpcategorysettingformitemdata.h	Tue Aug 31 15:15:28 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:  An extension to CpSettingFormItemData, can be filled with model items comes from controlpanel plugins.
-*
-*/
-#ifndef CPCATEGORYSETTINGFORMITEMDATA_H
-#define CPCATEGORYSETTINGFORMITEMDATA_H
-
-#include <cpcategoryglobal.h>
-#include <cpsettingformitemdata.h>
-
-class CpCategorySettingFormItemDataPrivate;
-class CP_CATEGORY_EXPORT CpCategorySettingFormItemData : public CpSettingFormItemData
-{
-	Q_OBJECT
-public:
-	CpCategorySettingFormItemData(HbDataFormModelItem::DataItemType type,
-		const QString &label,
-		const QString &configFile,
-		const HbDataFormModelItem *parent = 0);	 
-
-	explicit CpCategorySettingFormItemData(const QString &configFile = QString(),
-		const HbDataFormModelItem *parent = 0);
-
-	virtual ~CpCategorySettingFormItemData();
-
-	void initialize(CpItemDataHelper &itemDataHelper);
-private:
-	virtual void beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-    virtual void afterLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-private:
-	CpCategorySettingFormItemDataPrivate *d;
-};
-
-#endif
-
-//End of File
--- a/controlpanelui/src/inc/cpcategorysettingformmodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +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:  An extension to HbDataFormModel, can be filled with model items comes from controlpanel plugins.
-*
-*/
-#ifndef CPCATEGORYSETTINGFORMMODEL_H
-#define CPCATEGORYSETTINGFORMMODEL_H
-
-#include <cpcategoryglobal.h>
-#include <hbdataformmodel.h>
-
-class CpItemDataHelper;
-class CpCategorySettingFormModelPrivate;
-
-class CP_CATEGORY_EXPORT CpCategorySettingFormModel : public HbDataFormModel
-{
-	Q_OBJECT
-public:
-	explicit CpCategorySettingFormModel(const QString &configFile);
-	virtual ~CpCategorySettingFormModel();
-	virtual void initialize(CpItemDataHelper &itemDataHelper);
-private:
-	virtual void beforeLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-    virtual void afterLoadingConfigPlugins(CpItemDataHelper &itemDataHelper);
-private:
-	CpCategorySettingFormModelPrivate *d;
-};
-
-#endif
-
-//End of File
-
--- a/controlpanelui/src/inc/cpevent.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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:  
-*
-*/
-
-#ifndef CPEVENT_H
-#define CPEVENT_H
-
-#include <cpcategoryglobal.h>
-#include <QString>
-#include <QEvent>
-
-class CpPluginInterface;
-class HbDataFormModelItem;
-class CpItemDataHelper;
-
-class CpCreatePluginItemDataEvent : public QEvent
-{
-public:
-    enum { CreatePluginItemData = QEvent::User + 1 };
-    
-    CpCreatePluginItemDataEvent() : 
-        QEvent ( static_cast<QEvent::Type>(CreatePluginItemData) ),
-        mPluginInterface(0),
-        mParentItem(0),
-        mItemDataHelper(0),
-        mItemPosition(-1)
-    {   
-    }
-    
-    CpPluginInterface *mPluginInterface;
-    
-    HbDataFormModelItem *mParentItem;
-    int mItemPosition;
-    
-    CpItemDataHelper *mItemDataHelper;  
-    
-    QString mDisplayName;
-    QString mDescription;
-    QString mPluginFile;
-};
-
-CP_CATEGORY_EXPORT int createCpPluginItemData(CpCreatePluginItemDataEvent *event);
-
-#endif //CPEVENT_H
-
-//End of File
-
--- a/controlpanelui/src/inc/cpprofilemodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +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:  
-*
-*/
-
-#ifndef CPPROFILEMODEL_H
-#define CPPROFILEMODEL_H
-
-#include "cpprofilewrappermacro.h"
-#include <QtCore/qglobal.h>
-#include <QString>
-#include <QtCore/QObject>
-class CpProfileModelPrivate;
-
-/*!
-     Profile id is defined in profile engine
- */
-enum ProfileWrapperProfileId
-{
-    EProfileWapperStart = -1,
-    EProfileWrapperGeneralId = 0, 
-    EProfileWrapperMeetingId = 2,
-    EPRofileWrapperEnd    
-};
-class CpProfileSettings
-{
-public:
-    QString mRingTone;
-    QString mMessageTone;
-    QString mEmailTone;
-    QString mReminderTone;
-    bool mNotificationTone;
-    int mKeyTouchScreenTone; // 0-5
-    
-    int mKeyTouchScreenVibra; //0-5    
-};
-class PROFILE_WRAPPER_EXPORT CpProfileModel : QObject
-{
-    Q_OBJECT
-public:
-    CpProfileModel(QObject *parent = 0);
-    ~CpProfileModel();
-
-public:
-    QString profileName(int profileId)const;
-    QStringList profileNames()const;
-    int activateProfile(int profileId);
-    int activeProfileId() const;
-    
-    void profileSettings(int profileId, CpProfileSettings& profileSettings);
-    void setProfileSettings(int profileId, CpProfileSettings& profileSettings );
-    
-    QString ringTone() const;
-    void setRingTone(const QString& filePath);
-    
-    int masterVolume() const;
-    void setMasterVolume(int volume);
-    
-    
-    bool masterVibra() const;
-    void setMasterVibra(bool isVibra);
-        
-    bool silenceMode() const;
-    void setSilenceMode(bool isSlience);
-    
-    /*!
-     *  For profile settings 
-     */
-    
-    QString ringTone(int profileId)const;
-    void setRingTone(int profileId, const QString& filePath);
-    QString messageTone(int profileId) const;
-    void setMessageTone(int profileId, const QString& filePath);
-    QString emailTone(int profileId) const;
-    void setEmailTone(int profileId, const QString& filePath);
-    QString reminderTone(int profileId) const;
-    void setReminderTone(int profileId, const QString& filePath);
-    
-    bool notificationTone(int profileId) const;
-    void setNotificationTone(int profileId, bool isActive);
-    
-    int keyTouchScreenTone(int profileId) const;
-    void setKeyTouchScreenTone(int profileId, int level);
-    
-    int keyTouchScreenVibra(int profileId)const;
-    void setKeyTouchScreenVibra(int profileId, int level);
-
-private:
-    CpProfileModelPrivate *const d_ptr;
-
-private:    
-    Q_DISABLE_COPY(CpProfileModel)
-    Q_DECLARE_PRIVATE_D(d_ptr,CpProfileModel)
-};
-
-#endif
--- a/controlpanelui/src/inc/cpprofilemonitor.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +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:  
- *   
- */
-
-#ifndef CPPROFILEMONITOR_H
-#define CPPROFILEMONITOR_H
-
-#include <QObject>
-#include <cpprofilewrappermacro.h>
-
-class CpProfileMonitorPrivate;
-
-class PROFILE_WRAPPER_EXPORT CpProfileMonitor: public QObject
-{
-    Q_OBJECT
-public:
-    explicit CpProfileMonitor(QObject *parent = 0);
-    ~CpProfileMonitor();
-signals:
-    void profileActivated(int activeProfileId);
-    void activeProfileModified(int activeProfileId);
-private:
-    CpProfileMonitorPrivate *const d_ptr;
-   
-private:    
-    Q_DISABLE_COPY(CpProfileMonitor)
-    Q_DECLARE_PRIVATE_D(d_ptr,CpProfileMonitor)
-};
-
-#endif /* CPPROFILEMONITOR_H */
--- a/controlpanelui/src/inc/cpprofilewrappermacro.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:  
-*
-*/
-
-#ifndef CP_PROFILEWRAPPER_MACRO_H
-#define CP_PROFILEWRAPPER_MACRO_H
-
-#include <QtGlobal>
-
-#ifdef PROFILEWRAPPER_FREEZE
-    #define PROFILE_WRAPPER_EXPORT Q_DECL_EXPORT
-#else
-    #define PROFILE_WRAPPER_EXPORT Q_DECL_IMPORT
-#endif
-
-#endif
--- a/controlpanelui/src/inc/cpringtoneview.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:
- *
- */
-#ifndef CPRINGTONEVIEW_H
-#define CPRINGTONEVIEW_H
-
-#include "ringtoneviewdef.h"
-#include <cpbasesettingview.h>
-#include <xqappmgr.h>
-
-class HbListWidget;
-class HbListWidgetItem;
-class XQAiwRequest;
-
-class CPRINGTONEVIEW_EXPORT CpRingToneView : public CpBaseSettingView
-{
-    Q_OBJECT
-public:
-   explicit CpRingToneView( QGraphicsItem *parent = 0 );
-   ~CpRingToneView();
-signals:
-   void selOK( const QString &strFname);
-   void selError(  int errorCode, const QString& errorMessage );
-
-private slots:
-    void itemActivated( const QModelIndex &index );
-    void handleOk(const QVariant &result);
-    void handleError(int errorCode, const QString& errorMessage);
-
-private:
-    HbListWidget* mToneTypeList;
-    XQAiwRequest* mReq;
-    XQApplicationManager mAppMgr;
-    //used to mark if there is a request being processed
-    bool mProcessing;
-    
-private:
-    void launchMediaFetcher( const QString &strService, const QString &strItface );
-};
-
-#endif // CPRINGTONEVIEW_H
--- a/controlpanelui/src/inc/cptaskexecutor.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +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:  
-*
-*/
-#ifndef CPTASKEXECUTOR_H
-#define CPTASKEXECUTOR_H
-
-#include <cpcategoryglobal.h>
-#include <QThread>
-#include <QList>
-#include <QMutex>
-
-class CpTask
-{
-public:
-    explicit CpTask(bool autoDelete = true) 
-    : mAutoDelete(autoDelete)
-    {
-    }
-
-    virtual ~CpTask()
-    {
-    }
-
-    bool autoDelete() const 
-    {
-        return mAutoDelete;
-    }
-
-    virtual void execute(volatile bool *stopped)
-    {
-        Q_UNUSED(stopped);
-    }
-
-    virtual void complete(volatile bool *stopped)
-    {
-        Q_UNUSED(stopped);
-    }
-
-private:
-    bool mAutoDelete;
-};
-
-class CP_CATEGORY_EXPORT CpTaskExecutor : public QThread
-{
-    Q_OBJECT
-public:
-    explicit CpTaskExecutor(QObject *parent = 0);
-
-    virtual ~CpTaskExecutor();
-    
-    /*
-    return the gloabl instance
-    */
-    static CpTaskExecutor *globalInstance();
-    
-    /*
-    destroy the global instance 
-    */
-    static void destroyGlobalInstance();
-
-    /*
-    add the task to running queue
-    @task the task
-    @append ture -- append to tail false -- preappend to head
-    */
-
-    bool runTask(CpTask *task,bool append = false);
-
-    /*
-    stop the thread and remove all not running tasks
-    */
-    void stop();
-
-    /*
-    move a task to front of the queue
-    */
-    bool toFront(CpTask *task);
-
-    /*
-    move a task to front of the queue
-    */
-    template <typename Predicate> bool toFront(Predicate pred);
-
-protected:
-    /*
-    From QThread, run tasks
-    */
-    virtual void run();
-private:
-    /*
-    remove not running tasks
-    */
-    void removeTasks();
-private:
-    QList<CpTask*> mTasks;
-    QMutex mMutex;
-    volatile bool mStopped;
-};
-
-
-template<typename Predicate>
-bool CpTaskExecutor::toFront(Predicate pred)
-{
-    QMutexLocker locker(&mMutex);
-    
-    QList<CpTask*>::iterator workIterator = mTasks.begin();
-    QList<CpTask*>::iterator endIterator(mTasks.end());
-
-    for(;workIterator != endIterator;++workIterator)
-    {
-        if (pred(*workIterator)) {
-            break;
-        }
-    }
-
-    if (workIterator == endIterator) {
-        return false;
-    }
-
-    CpTask *task = *workIterator;
-    mTasks.erase(workIterator);
-    mTasks.insert(0,task);
-
-    return true;
-}
-
-#endif  //CPTASKECECUTOR_H
-
-//End of File
--- a/controlpanelui/src/inc/cpuids.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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:  
-*	Contains all QT comtrol pannel related formal uids
-*
-*/
-#ifndef	QCPUIDS_H
-#define	QCPUIDS_H
-
-#define	QUID_CONTROLPANNEL_UI	            0X20025FD9
-#define	QUID_CPFRAMEWORK_DLL	            0X20025FDA
-#define	QUID_CPPLUGIN_APPSETTINGS	        0X20025FDC
-#define	QUID_CPPLUGIN_PLACEHOLDER_NOICON	0X20025FDD
-#define	QUID_CPPLUGIN_KEYTOUCH	            0X20025FDE
-#define	QUID_CPPLUGIN_COMMUNICATION	        0X20025FDF
-#define	QUID_CPPPLUGIN_LOOKFEEL             0X20025FE0
-#define	QUID_CPPLUGIN_SAMPLEVIEW	        0X20025FE2
-#define	QUID_CPPLUGIN_SAMPLEGROUP	        0X20025FE3
-#define	QUID_CPPLUGIN_PRIVACY	            0X20025FE1
-#define	QUID_CPPLUGIN_THEME		            0X20025FDB
-#define	QUID_CPPLUGIN_TONES	                0X20025FE4
-#define	QUID_CPPLUGIN_PERSONALIZATION   	0X20025FE5
-#define	QUID_CPPROFILEENGWRAPPER            0X20025FE6
-#define	QUID_CPPLUGIN_DEVICE                0X20025FE7
-#define	QUID_CPPLUGIN_PLACEHOLDER           0X20025FE8
-
-#define QUID_CPPLUGIN_PINCODE    0X20028731
-#define QUID_CPPLUGIN_DEVICELOCK 0X20028732
-#define QUID_SECCODEUI           0X20028733
-#define QUID_LOGGER              0X20028734
-#define QUID_CPPLUGIN_DISPLAY    0X20028735
-
-
-#define QUID_CPCATEGORYMODEL_DLL  0X20028736
-#define QUID_CPVOLUME  0X20028737
-#define QUID_RINGTONE 0X20028738
-#define QUID_PROFILEACTIVATOR  0X20028739
-#define QUID_RINGTONESELVIEW  0X2002873A
-#define QUID_CPPLUGIN_ABOUT  0X2002873B
-#define QUID_CPPLUGIN_LANGUAGE  0X2002873C
-#define QUID_RESERVED10 0X2002873D
-#define QUID_RESERVED11 0X2002873E
-#define QUID_CPSERVICEPROVIDER 0X2002873F
-#define QUID_DE_GSPLUGIN 0X20028740    //reserved by 9.2
-
-#endif	//QCPUIDS_H
--- a/controlpanelui/src/inc/inc.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +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: 
-#
-
-INTERNAL_HEADERS += $$PWD/cpcategorysettingformmodel.h \
-                    $$PWD/cpcategorysettingformitemdata.h \
-                    $$PWD/cpcategoryglobal.h \
-                    $$PWD/cptaskexecutor.h \
-                    $$PWD/cpevent.h
-                    
-HEADERS += $$INTERNAL_HEADERS
--- a/controlpanelui/src/inc/ringtoneviewdef.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:  
-*
-*/
-
-#ifndef RINGTONEVIEWDEF_H
-#define RINGTONEVIEWDEF_H
-
-#include <QtGlobal>
-
-#ifdef CPRINGTONEVIEW_LIBRARY
-#  define CPRINGTONEVIEW_EXPORT Q_DECL_EXPORT
-#else
-#  define CPRINGTONEVIEW_EXPORT Q_DECL_IMPORT
-#endif
-
-#endif	//RINGTONEVIEWDEF_H
--- a/controlpanelui/src/src.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +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 = subdirs
-SUBDIRS = cpprofilewrapper cpcategorymodel cpringtoneview cpapplication cpserviceprovider  tonefetcher cpplugins
-CONFIG += ordered
\ No newline at end of file
--- a/controlpanelui/src/tonefetcher/common.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +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: controlpanel project - common qmake settings
-CONFIG += debug_and_release
-
-# On win32 and mac, debug and release libraries are named differently.
-# We must follow the debug and release settings Qt was compiled with:
-# build debug iff Qt built debug, build release iff Qt built release.
-win32|mac:!contains(QT_CONFIG,debug)|!contains(QT_CONFIG,release) { 
-    CONFIG -= debug_and_release \
-        debug \
-        release
-    contains(QT_CONFIG,debug):CONFIG += debug
-    contains(QT_CONFIG,release):CONFIG += release
-}
-CONFIG(debug, debug|release):SUBDIRPART = debug
-else:SUBDIRPART = release
-
-# Add the output dirs to the link path too
-LIBS += -L$$DESTDIR
-MOC_DIR = moc
-OBJECT_DIR = obj
-RCC_DIR = rcc
-
-# For some reason the default include path doesn't include MOC_DIR on symbian
-symbian { 
-    INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MW_LAYER_PLATFORM_EXPORT_PATH(cplogger)
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-    INCLUDEPATH += $$MOC_DIR
-    TARGET.CAPABILITY = ALL \
-        -TCB
-    TARGET.EPOCALLOWDLLDATA = 1
-}
-INCLUDEPATH += $$PWD/inc
-
--- a/controlpanelui/src/tonefetcher/inc/tonefetcherlog.conf	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-[ToneFetcher]
-logdatetime = 1
-logloggername = 1
-datetimeformat = hh:mm:ss:zzz
-output = debugoutput fileoutput
-fileoutput/logfile = C:/data/logs/tonefetcher.log
-fileoutput/truncate = 1
\ No newline at end of file
--- a/controlpanelui/src/tonefetcher/inc/tonefetcherlogger.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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:
- *     The header file for tone fetcher logger.
- *     
- */
-
-#ifndef TONEFETCHERLOGGER_H
-#define TONEFETCHERLOGGER_H
-
-#include <QLatin1String>
-#include <logger.h>
-
-/*
- make LOG work
-*/
-
-//#define ENABLE_TONEFETCHER_LOG
-
-#define TONEFETCHER_LOGGER_NAME       QLatin1String("ToneFetcher")
-
-#if defined (Q_OS_SYMBIAN)
-    #define TF_LOGGER_CONFIG_PATH QLatin1String("C:/data/.config/tonefetcherlog.conf")
-#elif defined (Q_WS_WIN)
-    #ifdef _DEBUG
-        #define TF_LOGGER_CONFIG_PATH QLatin1String("C:/controlpanel/debug/bin/tonefetcherlog.conf")
-    #else 
-        #define TF_LOGGER_CONFIG_PATH QLatin1String("C:/controlpanel/release/bin/tonefetcherlog.conf")
-    #endif
-#endif
-
-#ifdef ENABLE_TONEFETCHER_LOG
-    #define TF_LOG(str)   Logger::instance(TONEFETCHER_LOGGER_NAME)->log(str);
-#else
-    #define TF_LOG(str)
-#endif
-
-#endif /* TONEFETCHERLOGGER_H */
--- a/controlpanelui/src/tonefetcher/inc/tonefetcherutils.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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:
- *     The source file for tone fetcher utilities.
- *     
- */
-
-#include "tonefetcherutils.h"
-#include <QDir>
-#include <QChar>
-
-QString ToneFetcherUtils::normalizeSeperator(const QString &path)
-{
-    QString standardpath( path );
-    QChar c('/');
-    QChar c1('\\');
-    if (standardpath.contains(c, Qt::CaseSensitive)) {
-        standardpath.replace(c, QDir::separator());
-    }
-    if (standardpath.contains(c1, Qt::CaseSensitive)) {
-        standardpath.replace(c1, QDir::separator());
-    }        
-    return standardpath;
-}
--- a/controlpanelui/src/tonefetcher/inc/tonefetcherutils.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +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:
- *     The header file for tone fetcher utilities.
- *     
- */
-
-#ifndef TONEFETCHERUTILS_H
-#define TONEFETCHERUTILS_H
-
-#include <QString>
-
-class ToneFetcherUtils
-{
-public:
-    //replace '/' and '\' with QDir::separator()
-    static QString normalizeSeperator(const QString &path);
-};
-
-#endif
--- a/controlpanelui/src/tonefetcher/rom/rom.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:
-#     Rom exports for tone fetcher
-# 
-
-symbian {
-    TONESERVICEPROVIDER_IBY_DIR = $$section(PWD, ":", 1)
-
-    exists(/epoc32/include/platform_paths.hrh) {
-        BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
-    } else {
-        BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <domain\osextensions\platform_paths.hrh>"
-    }
-
-    BLD_INF_RULES.prj_exports += "$$TONESERVICEPROVIDER_IBY_DIR/tonefetcher.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tonefetcher.iby)"
-
-}
--- a/controlpanelui/src/tonefetcher/rom/tonefetcher.iby	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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: 
-*
-*/
-
-#ifndef __TONEFETCHER_IBY__
-#define __TONEFETCHER_IBY__
-
-#include <bldprivate.hrh>
-
-#define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc        Private\10003a3f\import\apps\ ## NAME ## _reg.rsc
-
-file=ABI_DIR\BUILD_DIR\tonefetcher.exe                   SHARED_LIB_DIR\tonefetcher.exe
-HB_UPGRADABLE_APP_REG_RSC(tonefetcher)
-S60_APP_RESOURCE(tonefetcher)
-
-
-data=DATAZ_\private\2002BCCA\service_conf.xml  private\2002BCCA\service_conf.xml
-
-#endif
-
--- a/controlpanelui/src/tonefetcher/service_conf.xml	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<service>
-  <name>tonefetcher</name>
-  <filepath>No path</filepath>
-  <description>tone service</description>
-  <interface>
-     <name>com.nokia.symbian.IToneFetch</name>
-     <version>1.0</version>
-     <description>Launch a tone selection view</description>
-  </interface>
-</service>
\ No newline at end of file
--- a/controlpanelui/src/tonefetcher/src/main.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +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:
- *     The main function for Tone Fetcher
- */
-
-#include "tonefetcher.h"
-#include "tonefetchermainwindow.h"
-#include <hbapplication.h>
-#include <tonefetcherlogger.h>
-
-int main(int argc, char *argv[])
-{
-    HbApplication a(argc, argv);
-    
-#ifdef ENABLE_TONEFETCHER_LOG
-    Logger::instance(TONEFETCHER_LOGGER_NAME)->configure(
-            TF_LOGGER_CONFIG_PATH,QSettings::IniFormat);
-#endif
-    TF_LOG("Entering tonefetcher.exe...");
-    ToneFetcherMainWindow w;   
-    w.show();
-    int ret = a.exec();
-    TF_LOG("Leaving tonefetcher.exe...");
-#ifdef ENABLE_TONEFETCHER_LOG
-    Logger::closeAll();
-#endif
-    return ret;
-}
--- a/controlpanelui/src/tonefetcher/src/tonefetcher.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +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:
- *     The source file for tone fetcher.
- *     
- */
-#include "tonefetcher.h"
-#include <hbmainwindow.h>
-#include "tonefetcherview.h"
-#include "tonefetchermainwindow.h"
-#include "tonefetcherutils.h"
-#include <QChar>
-#include <QDir>
-#include <tonefetcherlogger.h>
-
-ToneFetcher::ToneFetcher(HbMainWindow *mainWindow)
-    : XQServiceProvider(QString("tonefetcher.com.nokia.symbian.IToneFetch"), mainWindow),
-      mMainWindow(mainWindow),
-      mAsyncRequestIndex(-1),
-      mReturnValue(0)
-{
-    //publish tone service
-    publishAll();
-}
-
-ToneFetcher::~ToneFetcher()
-{
-
-}
-
-void ToneFetcher::fetch()
-{
-    mAsyncRequestIndex = setCurrentRequestAsync();    
-    if (mMainWindow) {
-        mMainWindow->show();
-        ToneFetcherView *toneView = new ToneFetcherView(this);
-        if (toneView) {            
-            connect(toneView, SIGNAL(itemSelected(QString)), this, SLOT(setSelectedPath(QString)));
-            mMainWindow->addView(toneView);
-            mMainWindow->setCurrentView(toneView);            
-        } else {
-            TF_LOG("ToneFetcher::fetch: ToneFetcherView failed to be created");
-        }
-    }
-}
-
-void ToneFetcher::complete()
-{
-    completeRequest(mAsyncRequestIndex, mReturnValue);    
-}
-
-bool ToneFetcher::isActive()
-{
-    return mAsyncRequestIndex > 0;
-}
-
-void ToneFetcher::setSelectedPath(const QString & tonePath)
-{    
-    mReturnValue.setValue(ToneFetcherUtils::normalizeSeperator(tonePath));
-}
-//End of File
--- a/controlpanelui/src/tonefetcher/src/tonefetcher.h	Tue Aug 31 15:15:28 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:
- *     The header file for tone fetcher.
- *     
- */
-#ifndef TONEFETCHER_H
-#define TONEFETCHER_H
-
-#include <xqserviceprovider.h>
-
-class HbMainWindow;
-class ToneFetcher : public XQServiceProvider
-{
-
-    Q_OBJECT
-    
-public:
-    explicit ToneFetcher(HbMainWindow *mainWindow = 0);
-    ~ToneFetcher();
-    /*
-     * return the tone's absolution path to the service requestor.
-     */
-    void complete();
-    /*
-     * currently only one request is allowed.
-     */
-    bool isActive();
-        
-public slots:
-    /*
-     * tone fetcher service's operation
-     */
-    void fetch();
-    
-private slots:
-    /*
-     * set the selected tone's path to be the return value
-     */
-    void setSelectedPath(const QString &tonePath);
-
-private:
-    HbMainWindow *mMainWindow;
-    int mAsyncRequestIndex;
-    QVariant mReturnValue;
-};
-
-#endif // TONEFETCHER_H
--- a/controlpanelui/src/tonefetcher/src/tonefetchermainwindow.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +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:
- *     The main window function for Tone Fetcher
- */
-
-#include "tonefetchermainwindow.h"
-#include <hbview.h>
-
-ToneFetcherMainWindow::ToneFetcherMainWindow(QWidget *parent)
-    : HbMainWindow(parent)
-{
-    mToneFetcher = new ToneFetcher(this); 
-   
-}
-
-ToneFetcherMainWindow::~ToneFetcherMainWindow()
-{
-    delete mToneFetcher;
-}
-//End of File
--- a/controlpanelui/src/tonefetcher/src/tonefetchermainwindow.h	Tue Aug 31 15:15:28 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:
- *     The header file of Tone Fetcher Mainwindow
- */
-#ifndef TONEFETCHERMAINWINDOW_H
-#define TONEFETCHERMAINWINDOW_H
-
-#include <hbmainwindow.h>
-#include "tonefetcher.h"
-#include <QCoreApplication>
-
-class ToneFetcherMainWindow : public HbMainWindow
-{
-    Q_OBJECT
-    
-public:
-    explicit ToneFetcherMainWindow(QWidget *parent = 0);
-    virtual ~ToneFetcherMainWindow();
-    
-private:
-    ToneFetcher *mToneFetcher;
-};
-
-#endif // TONEFETCHERWINDOW_H
-//End of File
--- a/controlpanelui/src/tonefetcher/src/tonefetchermodel.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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:
- *     The source file for tone list model
- */
-#include "tonefetchermodel.h"
-#include <QFileInfo>
-#include <QtAlgorithms>
-
-ToneFetcherModel::ToneFetcherModel(QObject *parent) 
-    : QStringListModel(parent)
-{
-}
-
-ToneFetcherModel::~ToneFetcherModel()
-{
-}
-
-QVariant ToneFetcherModel::data(const QModelIndex &index, int role) const
-{
-    if (role == Qt::DisplayRole) {
-        return  QFileInfo(QStringListModel::data(index, role).toString()).baseName();        
-    } else {
-        return QStringListModel::data(index, role);
-    }
-}
-
-QString ToneFetcherModel::getPath(const QModelIndex &index) const
-{    
-    return  QStringListModel::data(index, Qt::DisplayRole).toString();
-}
-
-void ToneFetcherModel::sort()
-{
-    QStringList list = stringList();
-    qStableSort(list.begin(), list.end(), caseSensitiveLessThan);   
-    removeRows(0, rowCount());
-    setStringList(list);
-}
-void ToneFetcherModel::layoutToBeChanged()
-{
-    emit layoutAboutToBeChanged();
-}
-
-void ToneFetcherModel::layoutHasChanged()
-{
-    emit layoutChanged();
-}
-
-bool ToneFetcherModel::caseSensitiveLessThan(const QString &s1, const QString &s2)
-{
-    return QFileInfo(s1).baseName().toLower() < QFileInfo(s2).baseName().toLower();
-}
-//End of File
--- a/controlpanelui/src/tonefetcher/src/tonefetchermodel.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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:
- *     The header file for tone list model
- *     
- */
-
-#ifndef TONEFETCHERMODEL_H
-#define TONEFETCHERMODEL_H
-
-#include <QStringListModel>
-#include <QStringList>
-
-// CLASS DECLARATION
-/**
- *  This class is used for storing tone list items.
- *  inherited from QStringListModel so that many existing functions could be used.
- *
- */
-class ToneFetcherModel : public QStringListModel
-{
-public:
-    explicit ToneFetcherModel( QObject *parent );
-    virtual ~ToneFetcherModel();
-    //from QStringListModel
-    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;        
-    QString getPath(const QModelIndex &index) const;
-    //sort the list
-    void sort();
-    //sort method
-    bool static caseSensitiveLessThan(const QString &s1, const QString &s2);
-    //emit the signal of layoutToBeChanged();
-    void layoutToBeChanged();
-    //emit the signal of layoutChanged();
-    void layoutHasChanged();
-};
-
-#endif /* TONEFETCHERMODEL_H */
--- a/controlpanelui/src/tonefetcher/src/tonefetcherview.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +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:
- *     The source file for tone fetcher view.
- *     
- */
-#include "tonefetcherview.h"
-#include "tonefetcherwidget.h"
-#include <hbaction.h>
-#include <hbtoolbar.h>
-#include "tonefetcher.h"
-#include <qcoreapplication.h>
-
-ToneFetcherView::ToneFetcherView(ToneFetcher *service) : mServiceProvider(service)
-{    
-    setTitle(hbTrId("Tone Selection"));//need change according to ps file
-    initToolBar();
-    initMainWidget();
-    QMetaObject::connectSlotsByName(this);
-    
-}
-
-ToneFetcherView::~ToneFetcherView()
-{    
-    removeToolBarAction();
-}
-
-void ToneFetcherView::initMainWidget()
-{
-    mWidget = new ToneFetcherWidget(this, this);
-    Q_ASSERT(mWidget);
-    setWidget(mWidget);
-    //mWidget->setCurrentToolBarType( ToneServiceWidget::GeneralTone );
-    connect(mWidget, SIGNAL(triggerToolBar(bool)), this, SLOT(enableToolBar(bool)));
-}
-
-void ToneFetcherView::quit()
-{    
-    connect(mServiceProvider, SIGNAL(returnValueDelivered()), qApp, SLOT(quit()));
-    mServiceProvider->complete();
-}
-
-void ToneFetcherView::initToolBar()
-{
-    mToolBarLeftAction = new HbAction(this);
-    mToolBarLeftAction->setObjectName("leftAction");
-    mToolBarLeftAction->setText(hbTrId("Play/Pause"));//need change according to ps file
-    toolBar()->addAction(mToolBarLeftAction);
-    mToolBarLeftAction->setEnabled(false);
-    
-    mToolBarRightAction = new HbAction(this);
-    mToolBarRightAction->setObjectName("rightAction");
-    mToolBarRightAction->setText(hbTrId("Select"));//need change according to ps file
-    mToolBarRightAction->setEnabled(false);    
-    toolBar()->addAction(mToolBarRightAction);
-    
-    toolBar()->setOrientation(Qt::Horizontal);
-    toolBar()->setEnabled(false); 
-    
-}
-
-void ToneFetcherView::on_leftAction_triggered()
-{
-    mWidget->playOrPause();   
-    
-}
-
-void ToneFetcherView::on_rightAction_triggered()
-{       
-    emit itemSelected(mWidget->getCurrentItemPath());
-    quit();
-    /*QDir dir("c:\\data\\Sounds\\Simple\\");
-    dir.remove("def.aac");
-    dir.remove("abc.aac");   */ 
-}
-
-void ToneFetcherView::enableToolBar(bool enable)
-{
-    mToolBarRightAction->setEnabled(enable);
-    mToolBarLeftAction->setEnabled(enable);
-    toolBar()->setEnabled(enable); 
-}
-
-void ToneFetcherView::removeToolBarAction()
-{
-    toolBar()->removeAction(mToolBarRightAction);
-    toolBar()->removeAction(mToolBarLeftAction);
-}
-//End of File
--- a/controlpanelui/src/tonefetcher/src/tonefetcherview.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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:
- *     The header file for tone fetcher view.
- *     
- */
-
-#ifndef TONEFETCHERVIEW_H
-#define TONEFETCHERVIEW_H
-
-#include <hblistwidget.h>
-#include <hbview.h>
-class ToneFetcherWidget;
-class HbAction;
-class ToneFetcher;
-
-class ToneFetcherView : public HbView
-{
-    Q_OBJECT
-    
-public:
-    explicit ToneFetcherView(ToneFetcher *service);
-    ~ToneFetcherView();
-    void quit();
-
-signals:
-        void itemSelected(const QString &path);
-        
-private:
-    void initMainWidget();
-    void initToolBar();
-    /*
-     * tool bar actions must to be removed in case the app crashes.
-     */
-    void removeToolBarAction();
-    
-private slots:
-    void on_leftAction_triggered();
-    void on_rightAction_triggered();
-    void enableToolBar(bool enable);
-    
-private:
-    ToneFetcherWidget *mWidget;
-    ToneFetcher *mServiceProvider; //not own
-    HbAction *mToolBarLeftAction;
-    HbAction *mToolBarRightAction;
-    };
-
-#endif /* TONEFETCHERVIEW_H */
--- a/controlpanelui/src/tonefetcher/src/tonefetcherwidget.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +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:
- *     The source file for tone fetcher widget.
- *     
- */
-#include "tonefetcherwidget.h"
-#include "hbabstractviewitem.h"
-#include "hbstyle.h"
-#include "hbabstractitemview.h"
-#include <hblistview.h>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <QModelIndex>
-#include <QGraphicsLinearLayout>
-#include <QDirModel>
-#include <QTime>
-#include <QFileInfo>
-#include <QString>
-#include <QStandardItemModel>
-#include <XQUtils>
-#include <hblabel.h>
-#include "tonefetcherview.h"
-#include "tonefetchermodel.h"
-#include <hbmessagebox.h>
-#include <hbprogressdialog.h>
-
-ToneFetcherWidget::ToneFetcherWidget(HbWidget *parent, ToneFetcherView *serviceView)
-    : HbWidget(parent),
-      mLabel(0),
-      mListView(0),
-      mLayout(0),
-      mToneModel(0),
-      mServiceView(serviceView),         
-      mServiceEngine(0),
-      mWaitNote(0)
-      
-{    
-    init();
-    connect(mServiceEngine, SIGNAL(mdeSessionOpened()), 
-            this, SLOT(mdeSessionOpened()));
-    connect(mServiceEngine, SIGNAL(mdeSessionError(int)),
-            this, SLOT(mdeSessionError(int)));
-    connect(mServiceEngine, SIGNAL(queryComplete(QStringList)), 
-            this, SLOT(queryComplete(QStringList)));
-    connect(mServiceEngine, SIGNAL(queryError(int)), 
-            this, SLOT(queryError(int)));
-    connect(mServiceEngine, 
-           SIGNAL(notifyPreviewEvent(int)), 
-           this, SLOT(previewEvent(int)));
-    connect( mServiceEngine, SIGNAL(notifyObjectChanged()),
-            this, SLOT(onObjectChanged()));
-}
-
-ToneFetcherWidget::~ToneFetcherWidget()
-{
-    delete mToneModel;
-    mToneModel = 0;
-    delete mWaitNote;
-    mWaitNote = 0;
-}
-
-void ToneFetcherWidget::on_list_activated(const QModelIndex &index)
-{  
-    //stop previewing when clicking another item.
-    if (mServiceEngine->isPlaying()) {
-        mServiceEngine->stopPlaying();
-    }
-    /*
-     * when one item is selected, reselecting it will deselect it. selecting another 
-     * will also deselect it, while the other is selected.
-     */
-    QItemSelectionModel *selectionModel = mListView->selectionModel();        
-    if (mOldSeletedItem == index) {
-        selectionModel->select(index,QItemSelectionModel::Toggle);
-    }
-    
-    QModelIndexList modelIndexList = selectionModel->selectedIndexes();
-    if (modelIndexList.isEmpty()) {
-        mOldSeletedItem = QModelIndex();
-    }
-    else {
-        mOldSeletedItem = modelIndexList.front();
-    }
-    emit triggerToolBar(selectionModel->hasSelection());
-
-    
-}
-
-void ToneFetcherWidget::init()
-{
-    mLayout = new QGraphicsLinearLayout(this);
-    mLayout->setOrientation(Qt::Vertical);
-    setLayout(mLayout);
-
-    mLabel = new HbLabel(this);
-    mLabel->setPlainText(hbTrId("Select tone"));
-    mLayout->addItem(mLabel);
-    
-    mListView = new HbListView(this);
-    mListView->setObjectName("list");
-    mLayout->addItem(mListView);
-    mListView->setSelectionMode(HbAbstractItemView::SingleSelection);
-     
-    mServiceEngine = new ToneFetcherEngine(this);     
-    mToneModel = new ToneFetcherModel(this);    
-    
-    initRomSoundList();    
-    
-    connect(mListView, SIGNAL(activated(QModelIndex)),
-        this, SLOT(on_list_activated(QModelIndex )));
-    if( !mWaitNote ){
-        mWaitNote = new HbProgressDialog( HbProgressDialog::WaitDialog );
-        mWaitNote->setText( hbTrId( "Refreshing..." ) );
-        QAction *action = mWaitNote->actions().at(0);//disable Cancel buttion.
-        action->setEnabled(false);
-    }
-}
-
-void ToneFetcherWidget::mdeSessionOpened()
-{
-    mServiceEngine->getTones();
-}
-
-void ToneFetcherWidget::queryComplete(const QStringList &uriList)
-{
-    addFilesFromMDE(uriList);
-    addFilesFromRom();
-    mToneModel->sort();
-    mToneModel->layoutHasChanged();
-    if (!mListView->model()) {    
-        mListView->setModel(mToneModel);
-    }
-    refreshFinish();
-}
-
-void ToneFetcherWidget::queryError(int error)
-{
-    Q_UNUSED(error);
-        
-}
-
-void ToneFetcherWidget::mdeSessionError(int error)
-{
-    Q_UNUSED(error);
-}
-
-QString ToneFetcherWidget::getCurrentItemPath() 
-{
-    QModelIndexList modelIndexList = mListView->selectionModel()->selectedIndexes();
-    if (modelIndexList.count() > 0) {
-        QModelIndex index = modelIndexList.front();
-        QString path = mToneModel->getPath(index);
-        return path;
-    }
-    return QString();
-}
-
-void ToneFetcherWidget::playOrPause() 
-{
-    if(mServiceEngine->isPlaying()) {
-        mServiceEngine->stopPlaying();
-    } else {    
-        mServiceEngine->play(getCurrentItemPath());
-    }
-    
-}
-
-void ToneFetcherWidget::previewEvent(int event) 
-{
-    if (event == 0) {
-        //preview successful, reserved
-    } else {
-        HbMessageBox::information(QString(hbTrId("Preview Error")));
-    }
-}
-
-void ToneFetcherWidget::onObjectChanged()
-{
-    refreshStart();
-    if (mServiceEngine->isPlaying()) {
-        mServiceEngine->stopPlaying();      
-    }
-    mToneModel->layoutToBeChanged();
-    emit triggerToolBar(false);    
-    mToneModel->removeRows(0, mToneModel->rowCount());           
-    mServiceEngine->getTones();    
-}
-
-void ToneFetcherWidget::addFilesFromRom() 
-{     
-    int currentCount = mToneModel->rowCount();
-    mToneModel->insertRows(currentCount, mRomSoundList.size());
-    for (int i = 0; i < mRomSoundList.size(); ++i) {
-        mToneModel->setData(mToneModel->index(i + currentCount), 
-            QFileInfo(mRomSoundList.at(i)).absoluteFilePath());
-    }  
-}
-
-void ToneFetcherWidget::addFilesFromMDE(const QStringList &uriList)
-{
-    int currentCount = mToneModel->rowCount();
-    mToneModel->insertRows(currentCount, uriList.size());
-    for (int i = 0; i < uriList.size(); ++i) {
-        mToneModel->setData(mToneModel->index(i + currentCount), QFileInfo(uriList.at(i)).absoluteFilePath());
-    }   
-}
-
-void ToneFetcherWidget::refreshFinish()
-{
-    if (mWaitNote) {
-        mWaitNote->close();
-    }
-}
-
-void ToneFetcherWidget::refreshStart()
-{
-    if (mWaitNote) {
-        mWaitNote->open();
-    }
-}
-
-void ToneFetcherWidget::initRomSoundList()
-{
-    QDir digitalSoundPath(XQUtils::romRootPath() + XQUtils::digitalSoundsPath());
-    QDir simpleSoundPath(XQUtils::romRootPath() + XQUtils::simpleSoundsPath());
-    mRomSoundList = digitalSoundPath.entryInfoList() + simpleSoundPath.entryInfoList();
-}
-//End of File
--- a/controlpanelui/src/tonefetcher/src/tonefetcherwidget.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +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:
- *     The header file for tone fetcher widget.
- *     
- */
-#ifndef TONEFETCHERWIDGET_H
-#define TONEFETCHERWIDGET_H
-
-#include <hbwidget.h>
-#include <QFileInfo>
-#include <QDir>
-#include <QString>
-#include "tonefetcherengine.h"
-
-class QDirModel;
-class HbListView;
-class QGraphicsLinearLayout;
-class QStandardItemModel;
-class HbAbstractViewItem;
-class ToneFetcherView;
-class ToneFetcherModel;
-class HbLabel;
-class HbProgressDialog;
-
-class ToneFetcherWidget : public HbWidget
-{
-    Q_OBJECT
-    
-public:
-    explicit ToneFetcherWidget(HbWidget *parent, ToneFetcherView *serviceView);
-    ~ToneFetcherWidget();
-    QString getCurrentItemPath();
-    void playOrPause();
-    
-signals:
-    void itemClicked(const QString &item);
-    void triggerToolBar(bool enable);
-    
-    
-private:
-    void init();
-    void addFilesFromRom();
-    void initRomSoundList();
-    void addFilesFromMDE(const QStringList &uriList);
-    
-private slots:
-    void on_list_activated(const QModelIndex &index);    
-    void mdeSessionOpened();
-    void mdeSessionError(int error);
-    void queryComplete(const QStringList &uriList);
-    void queryError(int error );
-    void previewEvent(int event);
-    void onObjectChanged();
-    void refreshFinish();
-    void refreshStart();
-    
-private:
-    HbLabel *mLabel;
-    HbListView *mListView;
-    QGraphicsLinearLayout *mLayout;
-    ToneFetcherModel *mToneModel;   
-    
-    ToneFetcherView *mServiceView;
-    ToneFetcherEngine *mServiceEngine;
-    
-    QFileInfoList mRomSoundList;    
-    QModelIndex mOldSeletedItem;
-    HbProgressDialog *mWaitNote;
-};
-#endif /* TONEFETCHERWIDGET_H */
--- a/controlpanelui/src/tonefetcher/tonefetcher.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +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/tonefetchermainwindow.h \
-           src/tonefetcher.h \
-           src/tonefetcherview.h \
-           src/tonefetcherwidget.h \
-           src/tonefetchermodel.h \
-           tonefetcherengine/tonefetcherengine.h \
-           inc/tonefetcherutils.h
-
-SOURCES += src/tonefetchermainwindow.cpp \
-           src/tonefetcher.cpp \
-           src/tonefetcherview.cpp \
-           src/tonefetcherwidget.cpp \
-           src/tonefetchermodel.cpp \
-           tonefetcherengine/tonefetcherengine.cpp \
-           inc/tonefetcherutils.cpp \
-           src/main.cpp 
-
-symbian {
-    HEADERS +=  tonefetcherengine/private/CTonePlayer.h \
-                tonefetcherengine/private/CToneSelection.h \
-                tonefetcherengine/private/MTonePlayingWatcher.h \
-                tonefetcherengine/private/MToneSelectionWatcher.h \
-                tonefetcherengine/private/tonefetcherengine_symbian.h
-                
-
-
-    SOURCES += tonefetcherengine/private/CTonePlayer.cpp \
-               tonefetcherengine/private/CToneSelection.cpp \
-               tonefetcherengine/private/tonefetcherengine_symbian.cpp
-} else {
-    HEADERS +=  tonefetcherengine/private/tonefetcherengine_stub.h
-    SOURCES += tonefetcherengine/private/tonefetcherengine_stub.cpp
-}
-
-
--- a/controlpanelui/src/tonefetcher/tonefetcher.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +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 = tonefetcher
-CONFIG += hb service
-
-include( common.pri )
-include( tonefetcher.pri )
-LIBS += -lxqservice \
-    -lxqserviceutil \
-    -lcplogger \
-    -lcpframework \
-    -lxqutils
-symbian {
-    LIBS += -lcafutils \
-            -lcaf \
-            -lmdeclient \
-            -lcentralrepository \
-            -lProfileEng \
-            -lpeninputClient \
-            -lmediaclientaudio \
-            -lDrmAudioPlayUtility \
-            -lmediaclientvideo \
-            -lDRMCommon \
-            -lDrmRights \
-            -lDrmHelper \
-            -ldrmutility \
-            -lapmime \
-            -lecom \
-            -lcone \
-            -lapgrfx
-
-            TARGET.UID3 = 0x2002BCCA
-            TARGET.CAPABILITY = ALL -TCB
-            TARGET.VID = VID_DEFAULT
-            BLD_INF_RULES.prj_exports += "./service_conf.xml z:/private/2002BCCA/service_conf.xml"
-}
-symbian {
-    include(rom/rom.pri)
-}
-
-             
-SERVICE.FILE = service_conf.xml
-SERVICE.OPTIONS = embeddable
-SERVICE.OPTIONS += hidden     
-libFiles.sources = xqservice.dll
-libFiles.path = "!:\sys\bin"
-DEPLOYMENT += libFiles
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/CTonePlayer.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +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:
- *     The source file for tone playing.
- *     
- */
-#include "CTonePlayer.h"
-#include "tonefetcherutils.h"
-#include <AudioPreference.h>             // KAudioPriorityPreview
-#include <c3dringingtoneinterface.h>     // C3DRingingToneInterface
-#include <ctsydomainpskeys.h>            // for phone call states
-#include <MProfileEngine.h>
-#include <MProfile.h>
-#include <MProfileTones.h>
-#include "TProfileToneSettings.h"
-#include <MProfileExtraSettings.h>
-#include <MProfile3DToneSettings.h>
-#include <ProfileInternal.hrh>
-#include <ProfileEngineDomainCRKeys.h>   // KProEngDefaultRingingTone
-#include "MTonePlayingWatcher.h"
-
-
-CMFPreviewHandlerBase::CMFPreviewHandlerBase()
-    {
-    iMediaType = KErrNotFound;
-    iRingingVolume = KErrNotFound;
-    iRingingType = KErrNotFound;
-    iVibra = KErrNotFound;
-    i3DEffect = KErrNotFound;
-    i3DEcho = KErrNotFound;
-    iFileSize = KErrNotFound;    
-    iFullName = 0;    
-    iActiveProfileRead = EFalse;
-    iPlayerStatus = EPlayerNotCreated;
-
-    }
-
-void CMFPreviewHandlerBase::ConstructL()
-    {
-    // To allow/not allow screensaver
-    // Errors ignored, no actions needed if API is not available
-    //iProperty.Attach( KPSUidScreenSaver, KScreenSaverAllowScreenSaver );    
-    TRAP_IGNORE(User::LeaveIfError( iApaSession.Connect() ) );
-    
-    TRAP_IGNORE( ReadDefaultToneL() );
-    // To keep backlight on while a video is being previewed
-    iBacklightTimer = CPeriodic::NewL( EPriorityLow );
-    }
-
-CMFPreviewHandlerBase::~CMFPreviewHandlerBase()
-    {
-    delete iFullName;
-    iProperty.Close();
-    
-    iApaSession.Close();
-    }
-
-void CMFPreviewHandlerBase::SetAttrL( const TDesC& aFileName )
-    {
-    if ( aFileName.Length() )
-        {        
-        delete iFullName;
-        iFullName = 0;
-        iFullName = aFileName.AllocL();      
-        }
-    }
-
-TInt CMFPreviewHandlerBase::RingingVolume()
-    {
-    const TInt KDefaultVolumeLevel = 7; // see profile.hrh for volume levels
-    
-    if ( iRingingVolume != KErrNotFound )
-        {
-        return iRingingVolume;
-        }
-        
-    if ( iActiveProfileRead )
-        {
-        return iActiveProfileRingingVolume;
-        }
-
-    return KDefaultVolumeLevel;
-    }
-
-TInt CMFPreviewHandlerBase::RingingType()
-    {
-    if ( iRingingType != KErrNotFound )
-        {
-        return iRingingType;
-        }
-        
-    if ( iActiveProfileRead )
-        {
-        return iActiveProfileRingingType;
-        }
-
-    return ERingingTypeRinging;
-    }
-
-TInt CMFPreviewHandlerBase::Vibra()
-    {
-    if ( iVibra != KErrNotFound )
-        {
-        return iVibra;
-        }
-        
-    if ( iActiveProfileRead )
-        {
-        return iActiveProfileVibra;
-        }
-    
-    return 0;  // in case of error vibra is off
-    }
-
-TInt CMFPreviewHandlerBase::Echo3D()
-    {
-    if ( i3DEcho != KErrNotFound )
-        {
-        return i3DEcho;
-        }
-    
-    if ( iActiveProfileRead )
-        {
-        return iActiveProfile3DEcho;
-        }
-
-    return EProfile3DEchoOff;  // from ProfileInternal.hrh
-    }
-
-TInt CMFPreviewHandlerBase::Effect3D()
-    {
-    if ( i3DEffect != KErrNotFound )
-        {
-        return i3DEffect;
-        }
-    
-    if ( iActiveProfileRead )
-        {
-        return iActiveProfile3DEffect;
-        }
-
-    return EProfile3DEffectOff;
-    }
-
-TInt CMFPreviewHandlerBase::ConvertVolume( TInt aVolume, TInt aMaxVolume )
-    {
-    const TInt KMinVolumeLevel = 1;
-    const TInt KMaxVolumeLevel = 10;
-        
-    TInt result = aMaxVolume * aVolume / KMaxVolumeLevel;
-    
-    // if user has selected minimum volume level set HW volume 1
-    if ( aVolume == KMinVolumeLevel && result == 0 )
-        {
-        result = 1;
-        }
-
-    return result;
-    }
-  
-void CMFPreviewHandlerBase::ReadActiveProfileL()
-    {
-    iActiveProfileRead = EFalse;
-    
-    MProfileEngine* profileEngine = CreateProfileEngineL();
-    CleanupReleasePushL( *profileEngine );
-    
-    MProfile* activeProfile  = profileEngine->ActiveProfileL();
-    CleanupReleasePushL( *activeProfile );
-        
-    const MProfileTones& profileTones = activeProfile->ProfileTones();
-     
-    const TProfileToneSettings& toneSettings = profileTones.ToneSettings();
-    iActiveProfileVibra = toneSettings.iVibratingAlert;
-    iActiveProfileRingingVolume = toneSettings.iRingingVolume;
-    iActiveProfileRingingType = toneSettings.iRingingType;
-          
-    const MProfileExtraSettings& extra = activeProfile->ProfileExtraSettings();
-    const MProfile3DToneSettings& threeD = extra.Profile3DToneSettings();
-    
-    iActiveProfile3DEffect = threeD.Effect();
-    iActiveProfile3DEcho = threeD.Echo();
-   
-    CleanupStack::PopAndDestroy( activeProfile ); 
-    CleanupStack::PopAndDestroy( profileEngine );
-    
-    iActiveProfileRead = ETrue;
-    }
- 
-void CMFPreviewHandlerBase::ReadDefaultToneL()
-    {
-    CRepository* cenrep = CRepository::NewLC( KCRUidProfileEngine );
-
-    User::LeaveIfError( cenrep->Get( KProEngDefaultRingingTone, iDefaultTone ) );
-    CleanupStack::PopAndDestroy( cenrep );
-    }
-
-TInt CMFPreviewHandlerBase::GetDataType( const TDesC& aFileName, TDataType& aDataType )
-    {
-    TUid dummyUid( KNullUid );
-    return iApaSession.AppForDocument( aFileName, dummyUid, aDataType );
-    }
-
-TInt CMFPreviewHandlerBase::DoResetInactivityTimer( TAny* /*aObject*/ )
-    {
-    User::ResetInactivityTime();
-    return KErrNone;
-    }
-
-void CMFPreviewHandlerBase::DisableBackLight()
-    {
-        const TInt KResetInactivityTimerDelay = 2000000;
-    iBacklightTimer->Cancel(); // Just in case
-    // Disable backlight turn off during video preview
-    iBacklightTimer->Start( KResetInactivityTimerDelay,
-                            KResetInactivityTimerDelay,
-                            TCallBack( DoResetInactivityTimer, 0 ) );
-    
-    }
-
-CTonePlayer* CTonePlayer::NewL( MTonePlayingWatcher *aWatcher )
-    {
-    CTonePlayer* self = CTonePlayer::NewLC( aWatcher );
-    CleanupStack::Pop();
-    return self;
-    }
-
-CTonePlayer* CTonePlayer::NewLC( MTonePlayingWatcher *aWatcher )
-    {
-    CTonePlayer* self = new ( ELeave ) CTonePlayer( aWatcher );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-void CTonePlayer::ConstructL()
-    {
-    iAudioPlayerStatus = EPlayerNotCreated;
-    CMFPreviewHandlerBase::ConstructL();
-    iTonePlayerStatus = EPlayerNotCreated;
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    coeEnv->AddForegroundObserverL( *this );
-    }
-
-CTonePlayer::CTonePlayer( MTonePlayingWatcher *aWatcher ) : iTonePlayWatcher( aWatcher )
-    {    
-    }
-
-CTonePlayer::~CTonePlayer()
-    {
-    Cancel();
-    
-    delete iAudioPlayer;
-    delete iTonePlayer;
-    delete i3dRingingTonePlugin;
-    }
-
-TBool CTonePlayer::IsPlaying()
-    {
-    if ( iAudioPlayerStatus != EPlayerNotCreated )
-        {
-        return ETrue;
-        }
-    
-    if ( iTonePlayerStatus != EPlayerNotCreated )
-        {
-        return ETrue;
-        }
-
-    return EFalse;
-    }
-
-void CTonePlayer::PlayL()
-    {    
-    //sequence for playing a beep once sound
-    _LIT8( KFileListBeepSequence, "\x00\x11\x06\x0A\x08\x73\x0A\x40\x28\x0A\xF7\
-    \x05\xFC\x40\x64\x0A\x08\x40\x32\x0A\xF7\x06\x0B" ); 
-
-    // rng mime type
-    _LIT( KFileListRngMimeType, "application/vnd.nokia.ringing-tone" );
-    
-    Cancel(); // stop previous play
-    
-    if ( !iFullName || iFullName->Des().Length() == 0 )
-        {
-        User::Leave( KErrNotFound );
-        }
-
-    TRAP_IGNORE( ReadActiveProfileL() );
-
-    TPtrC fileName( iFullName->Des() );
-    TDataType dataType;
-    TInt err = GetDataType( fileName, dataType );
-    if ( err == KErrNotFound )
-        {
-        fileName.Set( iDefaultTone );
-        if ( fileName.Length() == 0 )
-             {
-             User::Leave( KErrNotFound );
-             }
-        }
-    else if ( err != KErrNone )
-        {
-        User::Leave( err );
-        }
-        
-    TBool mimeTypeRng = EFalse;
-    
-    if ( err == KErrNone )
-        {
-        if( dataType.Des().CompareF( KFileListRngMimeType ) == 0 )
-            {
-            mimeTypeRng = ETrue;
-            }
-        }
-
-    TInt ringingType = RingingType();
-    if ( ringingType == ERingingTypeBeepOnce )
-        {
-        // Active profile ringing tone is set to Beep Once
-        // Don't initialize a FileSequence but use DesSequence instead
-        iTonePlayer = CMdaAudioToneUtility::NewL( *this );
-        iTonePlayer->PrepareToPlayDesSequence( KFileListBeepSequence() );
-        iTonePlayerStatus = EPlayerInitializing;
-        }
-    else
-        {
-        if( mimeTypeRng )
-            {
-            //Ringingtone is a RNG-file
-            iTonePlayer = CMdaAudioToneUtility::NewL( *this );
-            iTonePlayer->PrepareToPlayFileSequence( fileName );
-            iTonePlayerStatus = EPlayerInitializing;
-            }
-        else
-            {
-            delete iAudioPlayer;
-            iAudioPlayer = 0;
-
-            iAudioPlayer = CDrmPlayerUtility::NewFilePlayerL(
-                fileName, *this, KAudioPriorityRingingTonePreview,
-                ( TMdaPriorityPreference )KAudioPrefRingFilePreview );
-    
-            iAudioPlayerStatus = EPlayerInitializing;
-            }
-        }
-    DisableBackLight();
-    }
-
-void CTonePlayer::Stop()
-    {
-    Cancel();
-    }
-
-TInt CTonePlayer::ConvertVolume( TInt aVolume )
-    {
-    TInt result = 0;
-    if ( iAudioPlayer )
-        {
-        result = CMFPreviewHandlerBase::ConvertVolume( aVolume, iAudioPlayer->MaxVolume() );
-        }
-    else if ( iTonePlayer )
-        {
-        result = CMFPreviewHandlerBase::ConvertVolume( aVolume, iTonePlayer->MaxVolume() );
-        }
-        
-    //if user has selected silent ringing type, set volume off
-    TInt ringingType = RingingType();
-    if( ringingType == ERingingTypeSilent )
-        {
-        result = 0;
-        }
-
-    return result;
-    }
-
-void CTonePlayer::SetToneRingingType( TInt aRingingType )
-    {
-    const TInt KToneInterval = 1000000; // 1 second pause between tones
-    const TInt KAscendingVolumeInterval = 3000000; // 3 seconds
-    
-    if ( !iTonePlayer )
-        {
-        return;
-        }
-    TInt ringingVolume = RingingVolume();
-    
-    switch( aRingingType )
-        {
-        case ERingingTypeRinging:
-        case ERingingTypeSilent:
-            {
-            iTonePlayer->SetRepeats( KMdaAudioToneRepeatForever,
-                                     TTimeIntervalMicroSeconds( KToneInterval ) );
-            break;
-            }
-        case ERingingTypeAscending:
-            {
-            iTonePlayer->SetRepeats( KMdaAudioToneRepeatForever,
-                                     TTimeIntervalMicroSeconds( KToneInterval ) );
-            
-            TInt volRamp = KAscendingVolumeInterval * ringingVolume;
-            iTonePlayer->SetVolumeRamp( TTimeIntervalMicroSeconds( volRamp ) );
-            break;
-            }
-        case ERingingTypeRingOnce:
-        case ERingingTypeBeepOnce:
-            {
-            iTonePlayer->SetRepeats( 0, TTimeIntervalMicroSeconds( KToneInterval ) );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-void CTonePlayer::SetAudioRingingType( TInt aRingingType )
-    {
-    const TInt KToneInterval = 1000000; // 1 second pause between tones
-    const TInt KAscendingVolumeInterval = 3000000; // 3 seconds
-    
-    if ( !iAudioPlayer )
-        {
-        return;
-        }
-
-    TInt ringingVolume = RingingVolume();
-        
-    switch( aRingingType )
-        {
-        case ERingingTypeRinging:
-        case ERingingTypeSilent:
-            {
-            iAudioPlayer->SetRepeats( KMdaAudioToneRepeatForever,
-                                      TTimeIntervalMicroSeconds( KToneInterval ) );
-            break;
-            }
-        case ERingingTypeAscending:
-            {
-            iAudioPlayer->SetRepeats( KMdaAudioToneRepeatForever,
-                                      TTimeIntervalMicroSeconds( KToneInterval ) );
-            TInt volRamp = KAscendingVolumeInterval * ringingVolume;
-            iAudioPlayer->SetVolumeRamp( TTimeIntervalMicroSeconds( volRamp ) );
-            break;
-            }
-        case ERingingTypeRingOnce:
-            {
-            iAudioPlayer->SetRepeats( 0, TTimeIntervalMicroSeconds( KToneInterval ) );
-            break;
-            }
-
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-void CTonePlayer::Cancel()
-    {
-    TBool isPlaying = EFalse;
-    
-    if ( iAudioPlayer )
-        {
-        isPlaying = ETrue;
-        if ( iAudioPlayerStatus == EPlayerPlayingWith3DEffect )
-            {
-            i3dRingingTonePlugin->Stop();
-            // plugin calls AudioPlayer->Stop()
-            iAudioPlayer->Close();
-            }
-        if ( iAudioPlayerStatus == EPlayerPlaying )
-            {
-            iAudioPlayer->Stop();
-            iAudioPlayer->Close();
-            }
-        
-        delete iAudioPlayer;
-        iAudioPlayer = 0;
-        iAudioPlayerStatus = EPlayerNotCreated;
-        }
-    
-    if ( iTonePlayer )
-        {
-        isPlaying = ETrue;
-        if ( iTonePlayerStatus == EPlayerPlaying )
-            {
-            iTonePlayer->CancelPlay();
-            }
-        
-        delete iTonePlayer;
-        iTonePlayer = 0;
-        iTonePlayerStatus = EPlayerNotCreated;
-        }
-        
-
-    if ( isPlaying )
-        {
-        //User::InfoPrint(_L("cancel"));
-//        EnableScreenSaver( ETrue );
-        iBacklightTimer->Cancel();
-        }
-    }
-
-void CTonePlayer::MatoPlayComplete( TInt aError )
-    {
-    Cancel();
-    iTonePlayWatcher->HandlePreviewEvent( aError );
-    }
-
-void CTonePlayer::MatoPrepareComplete( TInt aError )
-    {
-    if ( aError != KErrNone )
-        {
-        Cancel();
-        
-        iTonePlayWatcher->HandlePreviewEvent( aError );
-        return;
-        }
-
-    TInt ringingVolume = RingingVolume();
-    TInt ringingType = RingingType();
-    TInt vibra = Vibra();
-       
-    iTonePlayerStatus = EPlayerInitialized;
-    SetToneRingingType( ringingType );
-    iTonePlayer->SetVolume( ConvertVolume( ringingVolume ) );
-    
-    TMdaPriorityPreference pref = (TMdaPriorityPreference) KAudioPrefRingFilePreview;               
-    if ( vibra )
-        {
-        pref = (TMdaPriorityPreference) KAudioPrefRingFilePreviewVibra;
-        }
-    iTonePlayer->SetPriority( KAudioPriorityPreview, pref );
-                                             
-    iTonePlayer->Play();
-    iTonePlayerStatus = EPlayerPlaying;
-    }
-
-void CTonePlayer::MdapcInitComplete( TInt aError, 
-                        const TTimeIntervalMicroSeconds& /* aDuration */ )
-    {
-    if ( aError != KErrNone )
-        {
-        Cancel();
-        iTonePlayWatcher->HandlePreviewEvent( aError );
-        return;
-        }
-        
-
-    TInt ringingVolume = RingingVolume();
-    TInt ringingType = RingingType();
-    TInt vibra = Vibra();
-    TInt echo3D = Echo3D();
-    TInt effect3D = Effect3D();
-
-    
-
-    iAudioPlayerStatus = EPlayerInitialized;
-    SetAudioRingingType( ringingType );
-    iAudioPlayer->SetVolume( ConvertVolume( ringingVolume ) );
-    
-    TMdaPriorityPreference pref = (TMdaPriorityPreference) KAudioPrefRingFilePreview;               
-    if ( vibra )
-        {
-        pref = (TMdaPriorityPreference) KAudioPrefRingFilePreviewVibra;
-        }
-    iAudioPlayer->SetPriority( KAudioPriorityPreview, pref );
-     
-    iAudioPlayerStatus = EPlayerPlaying;
-    
-    if ( effect3D == EProfile3DEffectOff )
-        {
-        iAudioPlayer->Play();  // 3D not used
-        return;
-        }
-
-    if ( !i3dRingingTonePlugin )
-        {
-        TUid emptyUid = { 0 };
-        TRAPD( err, i3dRingingTonePlugin = C3DRingingToneInterface::NewL( emptyUid ) );
-        if ( err != KErrNone || !i3dRingingTonePlugin )
-            {
-            iAudioPlayer->Play();
-            return;
-            }
-        }       
-   
-    i3dRingingTonePlugin->SetAttr( E3DRTIAttr3DEffect, effect3D );
-    i3dRingingTonePlugin->SetAttr( E3DRTIAttr3DEcho, echo3D );    
-    i3dRingingTonePlugin->SetAttr( E3DRTIAttrDrmPlayerUtility, iAudioPlayer );
-    TRAP_IGNORE( i3dRingingTonePlugin->PlayL() );
-
-    iAudioPlayerStatus = EPlayerPlayingWith3DEffect;
-    }
-
-void CTonePlayer::MdapcPlayComplete( TInt aError )
-    {  
-    Cancel();
-    iTonePlayWatcher->HandlePreviewEvent( aError );
-    }
-
-void CTonePlayer::HandleLosingForeground()
-    {
-    if ( IsPlaying() )
-        {
-        Stop();
-        }
-    }
-void CTonePlayer::HandleGainingForeground()
-    {
-    
-    }
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/CTonePlayer.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +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:
- *     The header file for tone playing.
- *     
- */
-
-#ifndef CTONEPLAYER_H
-#define CTONEPLAYER_H
-
-#include <e32base.h>
-#include <coemain.h>
-#include <DrmAudioSamplePlayer.h>
-#include <mdaaudiotoneplayer.h>
-#include <videoplayer.h>
-#include <centralrepository.h>
-#include <apgcli.h>  // for RApaLsSession
-#include <e32property.h>
-
-class C3DRingingToneInterface;
-class RWindow;
-class MTonePlayingWatcher;
-/**
-* CMFPreviewHandlerBase
-*
-* Base class for CMFAudioPreviewHandler.
- */
-class CMFPreviewHandlerBase : public CBase
-                        
-    {
-    public:     
-       enum TMediaFileType
-           {
-           EMediaFileTypeAudio = 0,
-           EMediaFileTypeVideo
-           };
-        enum TPlayerStatus
-            {
-            EPlayerNotCreated,
-            EPlayerInitializing,
-            EPlayerReady,
-            EPlayerPlaying,
-            EPlayerInitialized,
-            EPlayerPlayingWith3DEffect
-            };
-    
-        // these must match with the ones in Profile Engine
-        enum TRingingTypes
-            {
-            ERingingTypeRinging = 0,
-            ERingingTypeAscending,
-            ERingingTypeRingOnce,
-            ERingingTypeBeepOnce,
-            ERingingTypeSilent
-            };
-    
-        enum TFLAllowScreenSaver
-            {
-            EFLScreenSaverAllowed = 0, EFLScreenSaverNotAllowed
-            };
-    public:    
-        void SetAttrL(const TDesC& aFileName);    
-        TInt Attr(TInt aAttr);    
-        virtual void PlayL() = 0;
-        virtual void Stop() = 0;
-        virtual TBool IsPlaying() = 0;
-           
-    protected:    
-        virtual ~CMFPreviewHandlerBase();
-    
-    protected:    
-        /**
-         * C++ default constructor.
-         */
-        CMFPreviewHandlerBase( );    
-        /**
-         * By default Symbian OS constructor is private.
-         */
-        void ConstructL();
-     
-    protected:
-        TInt ConvertVolume(TInt aVolume);
-        void ReadActiveProfileL();
-        TInt GetDataType(const TDesC& aFileName, TDataType& aDataType);
-        void ReadDefaultToneL();   
-        void DisableBackLight();    
-        static TInt DoResetInactivityTimer(TAny* aObject);
-        TInt RingingVolume();
-        TInt RingingType();
-        TInt Vibra();
-        TInt Echo3D();
-        TInt Effect3D();
-        static TInt ConvertVolume(TInt aVolume, TInt aMaxVolume);    
-    
-    protected:
-        TInt iRingingVolume;
-        TInt iRingingType;
-        TInt iVibra;
-        TInt i3DEffect;
-        TInt i3DEcho;
-        TInt iMediaType;
-        TInt iFileSize;
-        HBufC* iFullName;    
-        TBool iActiveProfileRead;
-        TInt iActiveProfileRingingVolume;
-        TInt iActiveProfileRingingType;
-        TInt iActiveProfileVibra;
-        TInt iActiveProfile3DEffect;
-        TInt iActiveProfile3DEcho;    
-        TInt iPlayerStatus;    
-        // handle to window
-        RWindow* iWindow; // does not own    
-        // for getting file MIME types
-        RApaLsSession iApaSession;    
-        // for setting screensaver on/off
-        RProperty iProperty;    
-        // default ringing tone
-        TFileName iDefaultTone;        
-        /**
-         * Timer for resetting the user inactivity timeout
-         */
-        CPeriodic* iBacklightTimer;
-    };
-
-// CLASS DECLARATION
-/**
- *  This class is used for playing the tones.
- *
- */
-
-class CTonePlayer : public CMFPreviewHandlerBase,
-                    public MDrmAudioPlayerCallback,
-                    public MMdaAudioToneObserver,
-                    public MCoeForegroundObserver
-    {
-    public:
-        static CTonePlayer* NewL( MTonePlayingWatcher *aWatcher );
-        static CTonePlayer* NewLC( MTonePlayingWatcher *aWatcher );
-        virtual ~CTonePlayer();   
-    
-        
-    public:
-        void PlayL();
-        void Stop();
-        TBool IsPlaying();
-    
-    private:
-        CTonePlayer( MTonePlayingWatcher *aWatcher );
-        void ConstructL();
-        void Cancel();
-        void SetAudioRingingType( TInt aRingingType );
-        void SetToneRingingType( TInt aRingingType );
-        TInt ConvertVolume( TInt aVolume );        
-            
-    private:
-        // from MMdaAudioToneObserver
-        virtual void MatoPrepareComplete( TInt aError );
-        virtual void MatoPlayComplete(TInt aError);
-    
-    private:
-        // from MDrmAudioPlayerCallback
-        void MdapcInitComplete(TInt aError,
-                const TTimeIntervalMicroSeconds& aDuration);
-        void MdapcPlayComplete(TInt aError);
-        
-        // from MCoeForegroundObserver
-        void HandleLosingForeground();
-        void HandleGainingForeground();
-    
-    private:
-        //wacher of the playing process
-        MTonePlayingWatcher* iTonePlayWatcher;
-        
-        // audio player
-        CDrmPlayerUtility* iAudioPlayer;
-    
-        /// Audioplayer status
-        TPlayerStatus iAudioPlayerStatus;
-    
-        /// toneplayer
-        CMdaAudioToneUtility* iTonePlayer;
-    
-        /// Toneplayer status
-        TPlayerStatus iTonePlayerStatus;
-        
-        // plugin for playing 3D effects
-        C3DRingingToneInterface* i3dRingingTonePlugin;
-    
-    };
-    
-#endif /* CTONEPLAYER_H */
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/CToneSelection.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,408 +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:
- *     The source file for mde tone fetcher.
- *     
- */
-#include "CToneSelection.h"
-#include <pathinfo.h>
-#include <bautils.h>
-#include "tonefetcherengine.h"
-#include "MToneSelectionWatcher.h"
-#include <centralrepository.h>
-#include <ProfileEngineDomainCRKeys.h>
-#include <tonefetcherlogger.h>
-#include <QString>
-
-//refresh interval, 2 seconds.
-const TInt KTimerInterval = 2 * 1000 * 1000;
-const TInt KObserverCallStep = 100;
-const TInt KOneKiloByte = 1024;
-// CONSTANTS
-_LIT( KMimeMp3, "mp3" );
-
-CMFActiveCaller* CMFActiveCaller::NewL( CToneSelection* aObserver )
-    {
-    CMFActiveCaller* self = new (ELeave) CMFActiveCaller( aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-CMFActiveCaller::~CMFActiveCaller()
-    {
-    Cancel();
-    iTimer.Close();
-    }
-
-CMFActiveCaller::CMFActiveCaller(CToneSelection* aObserver) : CActive(CActive::EPriorityStandard)
-    {
-    iObserver = aObserver;
-    }
-
-void CMFActiveCaller::ConstructL()
-    {
-    User::LeaveIfError( iTimer.CreateLocal() );
-    CActiveScheduler::Add( this );
-    }
-
-void CMFActiveCaller::DoCancel()
-    {
-    iTimer.Cancel();
-    }
-
-void CMFActiveCaller::RunL()
-    {
-    iObserver->ChangeObject();
-    }
-
-void CMFActiveCaller::Request()
-    {
-    Cancel();
-    SetActive();
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete( status, KErrNone );
-    }
-
-void CMFActiveCaller::Start( TInt aMilliseconds )
-    {    
-    Cancel();
-
-    if ( aMilliseconds <= 0 )
-        {
-        Request();  // no delay - complete asap
-        }
-    else
-        {
-        iTimer.After( iStatus, aMilliseconds );
-        SetActive();
-        }
-    }
-
-void CMFActiveCaller::Stop()
-    {
-    Cancel();
-    }
-
-CToneSelection* CToneSelection::NewL( MToneSelectionWatcher *aWatcher )
-    {
-    CToneSelection* self = CToneSelection::NewLC(aWatcher);
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-CToneSelection* CToneSelection::NewLC( MToneSelectionWatcher *aWatcher )
-    {
-    CToneSelection* self = new ( ELeave ) CToneSelection( aWatcher );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-void CToneSelection::ConstructL()
-    {
-    iSession = CMdESession::NewL( *this );    
-    iObjectNotificationCaller = CMFActiveCaller::NewL( this );    
-    }
-
-CToneSelection::CToneSelection( MToneSelectionWatcher *aWatcher ) : iToneSelectionWatcher( aWatcher )
-    {
-    iMediaFileCounter = 0;
-    iIsQuerying = EFalse;
-    }
-
-CToneSelection::~CToneSelection()
-    {
-    iResultArray.ResetAndDestroy();
-    delete iQuery;
-    delete iSession;
-    delete iObjectNotificationCaller;
-    }
-
-void CToneSelection::HandleSessionOpened( CMdESession& /*aSession*/, TInt aError )
-    {
-    if ( aError != KErrNone )
-        {
-        iDefNS = 0;
-        delete iSession;
-        iSession = 0;
-        iSessionOpen = EFalse;
-        iToneSelectionWatcher->HandleMdeSessionError( aError );
-        }
-    else
-        {
-        iDefNS = &iSession->GetDefaultNamespaceDefL();
-        iSessionOpen = ETrue;
-        TRAP_IGNORE( AddObjectObserverL() );
-        iToneSelectionWatcher->HandleMdeSessionOpened();
-        }
-    }
-
-
-
-void CToneSelection::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
-    {
-    if ( aError == KErrNone )
-        {
-        return;
-        }
-        
-    delete iSession;
-    iSession = 0;
-    iSessionOpen = EFalse;
-    iToneSelectionWatcher->HandleMdeSessionError( aError );
-    }
-
-void CToneSelection::HandleQueryNewResults( CMdEQuery& /*aQuery*/, 
-                                               TInt /*aFirstNewItemIndex*/,
-                                               TInt /*aNewItemCount*/ )
-    {
-    }
-
-void CToneSelection::HandleObjectNotification( CMdESession& /*aSession*/, 
-                                        TObserverNotificationType /*aType*/,
-                                        const RArray<TItemId>& /*aObjectIdArray*/ )
-    {   
-    /*if ( aObjectIdArray.Count() > 0 && ( aType == ENotifyAdd || aType == ENotifyModify || aType == ENotifyRemove ) )
-        {
-        QString str("CToneSelection::HandleObjectNotification " + QString::number(aObjectIdArray.Count()) + " " + QString::number(aType));
-        TF_LOG(str);        
-        iMediaFileCounter = iMediaFileCounter + aObjectIdArray.Count();
-        if ( iMediaFileCounter >= KObserverCallStep )
-            {
-            iMediaFileCounter = 0;
-            iToneSelectionWatcher->HandleObjectChanged();
-            }
-        else 
-            {
-            iObjectNotificationCaller->Start(KTimerInterval);
-            }        
-        }*/
-    }
-
-void CToneSelection::AddObjectObserverL()
-    {
-    if ( iSessionOpen )
-        {
-        TUint32 notificationType = ENotifyAdd | ENotifyModify | ENotifyRemove;        
-        iSession->AddObjectObserverL( *this, 0, notificationType, iDefNS );
-        
-        iSession->AddObjectPresentObserverL( *this );
-        }
-    }
-
-void CToneSelection::HandleObjectPresentNotification( CMdESession& /*aSession*/, 
-                         TBool /*aPresent*/, const RArray<TItemId>& aObjectIdArray )
-    {
-    
-    if( aObjectIdArray.Count() > 0 )
-        {
-        //if query is executing, we do not allow the fresh of contents
-        if ( iIsQuerying )
-            {
-            iMediaFileCounter = 0;
-            return;
-            }
-        QString str("CToneSelection::HandleObjectPresentNotification " + QString::number(aObjectIdArray.Count()));
-        TF_LOG(str);
-        iMediaFileCounter = iMediaFileCounter + aObjectIdArray.Count();
-        if ( iMediaFileCounter > KObserverCallStep )
-            {
-            iMediaFileCounter = 0;
-            iToneSelectionWatcher->HandleObjectChanged();
-            }
-        else 
-            {
-            iObjectNotificationCaller->Start(KTimerInterval);
-            }    
-        }    
-    }
-
-void CToneSelection::HandleQueryCompleted( CMdEQuery& aQuery, TInt aError )
-    {
-    iIsQuerying = EFalse;
-    iResultArray.ResetAndDestroy();
-    if ( aError == KErrCancel )
-        {      
-        iToneSelectionWatcher->HandleQueryError( aError );
-        return;
-        }
-    else
-        {
-        CMdEObjectQuery* query = static_cast<CMdEObjectQuery*> (&aQuery);
-        TInt count = query->Count();
-        for (TInt i = 0; i < count; ++i)
-            {
-            CMdEObject* object =
-                    (CMdEObject*) query->TakeOwnershipOfResult(i);
-            CleanupStack::PushL(object);
-            CMdEPropertyDef& propDef = 
-                        CToneSelection::PropertyDefL( iSession, CToneSelection::EAttrSongName  );
-                
-            CMdEProperty* property = 0;
-            TInt err = object->Property( propDef, property, 0 );
-            if ( err != KErrNotFound && property )
-                {            
-                HBufC* songUri = HBufC::NewL( object->Uri().Length() );
-                TPtr ptr = songUri->Des();
-                ptr.Copy( object->Uri() );
-                iResultArray.AppendL( songUri );
-                }
-            CleanupStack::PopAndDestroy( object );
-            }
-        iToneSelectionWatcher->HandleQueryComplete( iResultArray );     
-        }
-    }
-
-void CToneSelection::QueryTonesL()
-    {
-    LeaveIfSessionClosedL();
-    delete iQuery;
-    iQuery = 0;
-    CMdEObjectDef& musicObjectDef =
-            iDefNS->GetObjectDefL( MdeConstants::Audio::KAudioObject );    
-    iQuery = iSession->NewObjectQueryL( *iDefNS, musicObjectDef, this );    
-    
-    // set attributes that are included in query result  
-    CMdEPropertyDef& namePropertyDef = PropertyDefL( EAttrSongName );
-    iQuery->AddPropertyFilterL( &namePropertyDef );
-    
-    iQuery->SetResultMode( EQueryResultModeItem );
-    
-    CMdELogicCondition& conditions = iQuery->Conditions();
-    ExcludeMusicPropertiesL( conditions );
-    iIsQuerying = ETrue;
-    iQuery->FindL();
-    }
-
-void CToneSelection::LeaveIfSessionClosedL()
-    {
-    if ( !iSession || !iSessionOpen )
-        {
-        User::Leave( KErrDisconnected );
-        }
-    }
-
-CMdEPropertyDef& CToneSelection::PropertyDefL( TInt aAttr )
-    {
-    return PropertyDefL( iSession, aAttr );
-    }
-
-CMdEPropertyDef& CToneSelection::PropertyDefL( CMdESession* /*aSession*/, TInt aAttr )
-    {
-    CMdEObjectDef& objectDef = 
-            iDefNS->GetObjectDefL( MdeConstants::Audio::KAudioObject );
-   
-    if ( aAttr == EAttrFileSize )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::Object::KSizeProperty );
-        }
-    else if ( aAttr == EAttrMediaType )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::Object::KItemTypeProperty );
-        }
-    else if ( aAttr == EAttrSongName || aAttr == EAttrFileName )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::Object::KTitleProperty );
-        }
-    else if ( aAttr == EAttrArtist )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::MediaObject::KArtistProperty );
-        }
-    else if ( aAttr == EAttrAlbum )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::Audio::KAlbumProperty );
-        }
-    else if ( aAttr == EAttrGenre )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::MediaObject::KGenreProperty );
-        }
-    else if ( aAttr == EAttrComposer )
-        {
-        return objectDef.GetPropertyDefL( MdeConstants::Audio::KComposerProperty );
-        }
-    else
-        {
-        User::Leave( KErrNotSupported );
-        }
-	//avoid critical warning
-    return objectDef.GetPropertyDefL( MdeConstants::Audio::KAudioObject );
-    }
-
-void CToneSelection::ExcludeMusicPropertiesL( CMdELogicCondition& aCondition )
-    {
-    TInt sizeLimitKB = 0;
-    CRepository* cenrep = CRepository::NewL( KCRUidProfileEngine );
-    CleanupStack::PushL( cenrep );
-    User::LeaveIfError( cenrep->Get( KProEngRingingToneMaxSize, sizeLimitKB ) );
-    CleanupStack::PopAndDestroy(); // cenrep
-
-    SetAttr( CToneSelection::EAttrFileSize, sizeLimitKB );
-    CMdEPropertyDef& sizeTypeDef = PropertyDefL( EAttrFileSize );
-    CMdEPropertyDef& mimeTypeDef = PropertyDefL( EAttrMediaType );
-    CMdEPropertyDef& artistTypeDef = PropertyDefL( EAttrArtist );
-    CMdEPropertyDef& albumTypeDef = PropertyDefL( EAttrAlbum );
-    CMdEPropertyDef& genreTypeDef = PropertyDefL( EAttrGenre );
-    CMdEPropertyDef& composerTypeDef = PropertyDefL( EAttrComposer );
-    
-    CMdELogicCondition& condition = 
-                        aCondition.AddLogicConditionL( ELogicConditionOperatorAnd );
-    condition.AddPropertyConditionL( sizeTypeDef, TMdEIntRange(0, iMaxFileSize * KOneKiloByte, EMdERangeTypeNotBetween) );
-    condition.AddPropertyConditionL( mimeTypeDef, 
-            ETextPropertyConditionCompareContains, KMimeMp3 );
-    condition.AddPropertyConditionL( artistTypeDef );
-    condition.AddPropertyConditionL( albumTypeDef );
-    condition.AddPropertyConditionL( genreTypeDef );
-    condition.AddPropertyConditionL( composerTypeDef );
-    
-    condition.SetNegate( ETrue );
-    }
-
-void CToneSelection::SetAttr( int attr, int value )
-{
-    switch ( attr )
-        {
-        case CToneSelection::EAttrFileSize:
-            {
-            iMaxFileSize = value;
-            break;
-            }            
-        default:
-            {
-            break;
-            }
-        }
-}
-
-void CToneSelection::ChangeObject()
-    {    
-    if ( QueryReady() )
-        {
-        iToneSelectionWatcher->HandleObjectChanged();
-        }
-    }
-
-TBool CToneSelection::QueryReady() 
-    {
-    if ( iQuery )
-        {
-        return iQuery->IsComplete();    
-        }
-     
-    return ETrue;
-    }
-// End of File
-
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/CToneSelection.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +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:
- *     The header file for mde tone fetcher.
- *     
- */
-
-#ifndef CTONESELECTION_H
-#define CTONESELECTION_H
-
-#include <e32base.h>
-#include <mdesession.h>
-#include <mdequery.h>
-#include <mdelogiccondition.h>
-#include <mdeconstants.h>
-#include <mdeobjectquery.h>
-#include <mdccommon.h>
-#include <mdeitem.h>
-#include <mdeobject.h>
-
-// FORWARD DECLARATIONS
-class MToneSelectionWatcher;
-class CToneSelection;
-
-/**
-* CMFActiveCaller
-*
-* CMFActiveCaller is used for generating a call from active scheduler.
-* Typical use is to start some operation after a short delay.
-*/
-NONSHARABLE_CLASS (CMFActiveCaller) : public CActive
-    {
-    public:
-        static CMFActiveCaller* NewL( CToneSelection* aObserver );
-        virtual ~CMFActiveCaller();
-
-    private:
-        CMFActiveCaller( CToneSelection* aObserver );
-        void ConstructL();
-
-    public:
-        void Start( TInt aMilliseconds );
-        void Stop();
-        void Request();
-
-    private:
-        void RunL();
-        void DoCancel();
-        
-    private:
-        // timer
-        RTimer iTimer;
-
-        // observer that gets called
-        CToneSelection* iObserver;
-    };
-
-// CLASS DECLARATION
-/**
- *  This class is used for quering tones from mde.
- *
- */
-class CToneSelection : public CBase, 
-                       public MMdESessionObserver,
-                       public MMdEQueryObserver,
-                       public MMdEObjectObserver,
-                       public MMdEObjectPresentObserver                            
-    {
-    public:
-        enum TStorageType
-            {
-            EPhoneMemory = 0, ERomStorage, EMassStorage, EMemoryCard
-            };
-        
-        enum TQueryAttribute
-            {
-            EAttrMediaType = 20, // integer
-            EAttrFileSize, // integer
-            EAttrStorageType, // integer
-            EAttrMediaFileId, // integer
-            EAttrFileName, // string
-            EAttrFullName, // string
-            EAttrSongName, // string
-            EAttrArtist, // string
-            EAttrAlbum, // string
-            EAttrGenre, // string
-            EAttrComposer
-            };
-    
-    public:
-        static CToneSelection* NewL( MToneSelectionWatcher *aWatcher );
-        static CToneSelection* NewLC( MToneSelectionWatcher *aWatcher );
-        
-        virtual ~CToneSelection();
-        //iTimer's callback function.
-        void ChangeObject();
-        void QueryTonesL();   
-        void SetAttr( int attr, int value );
-        TBool QueryReady();
-    
-    private:   
-        CToneSelection(  MToneSelectionWatcher *aWatcher );
-        void ConstructL(); 
-        void ExcludeMusicPropertiesL( CMdELogicCondition& aCondition );    
-        void LeaveIfSessionClosedL();
-        CMdEPropertyDef& PropertyDefL(TInt aAttr);
-        CMdEPropertyDef& PropertyDefL(CMdESession* aSession, TInt aAttr);
-    
-    private:
-        // from MMdESessionObserver
-        void HandleSessionOpened( CMdESession& aSession, TInt aError );
-        void HandleSessionError( CMdESession& aSession, TInt aError );
-    
-    private:
-        // from MMdEQueryObserver (mdequery.h)
-        void HandleQueryNewResults( CMdEQuery& aQuery, TInt aFirstNewItemIndex,
-                TInt aNewItemCount );
-        void HandleQueryCompleted( CMdEQuery& aQuery, TInt aError );    
-    private:
-        // from MMdEObjectObserver
-        void HandleObjectNotification( CMdESession& aSession,
-                TObserverNotificationType aType,
-                const RArray<TItemId>& aObjectIdArray );
-    
-    private:
-        // from MMdEObjectPresentObserver
-        void HandleObjectPresentNotification( CMdESession& aSession,
-                TBool aPresent, const RArray<TItemId>& aObjectIdArray);
-        void AddObjectObserverL();
-        void HandleObjectChanged();
-    private:
-    
-        MToneSelectionWatcher* iToneSelectionWatcher;
-    
-        // session to metadata engine
-        CMdESession* iSession;
-        
-        CMdENamespaceDef* iDefNS; 
-    
-        // metadata query
-        CMdEObjectQuery* iQuery;
-        TBool iIsQuerying;
-    
-        // used for saving the quering result.
-        RPointerArray<TDesC> iResultArray;
-    
-        // is metadata session open
-        TBool iSessionOpen;
-    
-        // max audio file file size
-        TInt iMaxFileSize;
-        
-        TInt iMediaFileCounter;
-        // for generating active object calls
-        CMFActiveCaller* iObjectNotificationCaller;
-        
-    };
-#endif /* CTONESELECTION_H */
-
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/MTonePlayingWatcher.h	Tue Aug 31 15:15:28 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:
- * 
- *     
- */
-
-#ifndef MTONEPLAYINGWATCHER_H
-#define MTONEPLAYINGWATCHER_H
-
-#include <e32def.h>
-
-/*
- * this class is used to watch tone playing event, inherited by ToneFetcherEnginePrivate
- */
-class MTonePlayingWatcher
-    {
-    public:
-        // handle preview event
-        virtual void HandlePreviewEvent( TInt event ) = 0;
-    };
-
-#endif /* MTONEPLAYINGWATCHER_H */
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/MToneSelectionWatcher.h	Tue Aug 31 15:15:28 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:
- *   
- *     
- */
-
-#ifndef MTONESELECTIONWATCHER_H
-#define MTONESELECTIONWATCHER_H
-
-#include <e32def.h>
-#include <e32cmn.h> 
-
-/*
- * this class is used to watch MDE system change, inherited by ToneFetcherEnginePrivate
- */
-class MToneSelectionWatcher
-    {
-    public:
-        // handle mde session error event
-        virtual void HandleMdeSessionError( TInt aError ) = 0;
-        
-        // handle mde session open event
-        virtual void HandleMdeSessionOpened() = 0;
-        
-        // handle query error event        
-        virtual void HandleQueryError( TInt aError ) = 0;
-        
-        // handle query complete event
-        virtual void HandleQueryComplete( RPointerArray<TDesC>& ) = 0;
-        
-        // handle object changed event
-        virtual void HandleObjectChanged() = 0;
-    };
-
-#endif /* MTONESELECTIONWATCHER_H */
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_stub.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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:
- *     The source file for tone fetcher engine private class of other platforms.
- *     
- */
-
-#include "tonefetcherengine_stub.h"
-
-ToneFetcherEnginePrivate::ToneFetcherEnginePrivate()
-    {
-    
-    }
-
-virtual ~ToneFetcherEnginePrivate::ToneFetcherEnginePrivate()
-    {
-    
-    }
-
-void ToneFetcherEnginePrivate::getTones()
-    {
-    
-    }
-
-void ToneFetcherEnginePrivate::play( const QString & )
-    {
-    
-    }
-
-bool ToneFetcherEnginePrivate::isPlaying()
-    {
-    return false;
-    }
-
-void ToneFetcherEnginePrivate::stopPlaying()
-    {
-    
-    }
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_stub.h	Tue Aug 31 15:15:28 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:
- *     The header file for tone fetcher engine private class of other platforms.
- *     
- */
-
-#ifndef TONEFETCHERENGINE_STUB_H
-#define TONEFETCHERENGINE_STUB_H
-
-#include <QObject>
-
-class ToneFetcherEnginePrivate : public QObject
-{
-    Q_OBJECT
-    
-public:
-    ToneFetcherEnginePrivate();
-    virtual ~ToneFetcherEnginePrivate();
-    void getTones();    
-    void play( const QString & );
-    bool isPlaying();
-    void stopPlaying();
-};
-
-#endif /* TONEFETCHERENGINE_STUB */
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_symbian.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +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:
- *     The source file for tone fetcher engine private class.
- *     
- */
-
-
-#include "tonefetcherengine_symbian.h"
-#include "CToneSelection.h"
-#include "CTonePlayer.h"
-#include "tonefetcherutils.h"
-#include <XQConversions>
-
-ToneFetcherEnginePrivate::ToneFetcherEnginePrivate()
-    {
-    TRAP_IGNORE( mToneSelection = CToneSelection::NewL( this ) ); 
-    TRAP_IGNORE( mTonePlayer = CTonePlayer::NewL( this ) );    
-    }
-
-ToneFetcherEnginePrivate::~ToneFetcherEnginePrivate()
-    {
-    mResultList.clear();
-    delete mToneSelection;
-    delete mTonePlayer;
-    }
-
-void ToneFetcherEnginePrivate::getTones()
-    {
-    QT_TRAP_THROWING( mToneSelection->QueryTonesL() );
-    }
-
-void ToneFetcherEnginePrivate::play(const QString &file)
-    {    
-    QT_TRAP_THROWING( mTonePlayer->SetAttrL( XQConversions::qStringToS60Desc( ToneFetcherUtils::normalizeSeperator(file) )->Des() ) );
-    QT_TRAP_THROWING( mTonePlayer->PlayL() );
-    }
-
-bool ToneFetcherEnginePrivate::isPlaying()
-    {
-    return mTonePlayer->IsPlaying();
-    }
-
-void ToneFetcherEnginePrivate::stopPlaying()
-    {
-    mTonePlayer->Stop();
-    }
-
-void ToneFetcherEnginePrivate::HandleMdeSessionError( TInt aError )
-    {
-    emit mdeSessionError( aError );
-    }
-
-void ToneFetcherEnginePrivate::HandleMdeSessionOpened()
-    {
-    emit mdeSessionOpened();
-    }
-
-void ToneFetcherEnginePrivate::HandleQueryError( TInt aError )
-    {
-    emit queryError(aError);
-    }
-
-void ToneFetcherEnginePrivate::HandleQueryComplete( RPointerArray<TDesC>& aResultArray )
-    {
-    mResultList.clear();
-    for ( int i = 0; i < aResultArray.Count(); ++i ) 
-        {
-        mResultList.append( XQConversions::s60DescToQString( *(aResultArray[i]) ) );
-        }
-    aResultArray.ResetAndDestroy();
-    emit queryComplete(mResultList);
-    }
-
-void ToneFetcherEnginePrivate::HandleObjectChanged()
-    {
-    emit notifyObjectChanged();
-    }
-
-void ToneFetcherEnginePrivate::HandlePreviewEvent( TInt event )
-    {
-    emit notifyPreviewEvent(event);
-    }
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_symbian.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +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:
- *     The header file for tone fetcher engine private class of symbian platform.
- *     
- */
-
-#ifndef TONEFETCHERENGINEPRIVATE_H
-#define TONEFETCHERENGINEPRIVATE_H
-
-//#include <e32base.h>
-#include "MToneSelectionWatcher.h"
-#include "MTonePlayingWatcher.h"
-#include <QObject>
-#include <QStringList>
-
-class CToneSelection;
-class CTonePlayer;
-
-class ToneFetcherEnginePrivate : public QObject,                                 
-                                 public MToneSelectionWatcher,
-                                 public MTonePlayingWatcher
-{
-    Q_OBJECT
-    
-public:
-    ToneFetcherEnginePrivate();
-    virtual ~ToneFetcherEnginePrivate();
-    void getTones();    
-    void play( const QString &file );
-    bool isPlaying();
-    void stopPlaying();
-    
-public:
-    //from MToneSelectionWatcher
-    void HandleMdeSessionError( TInt aError );
-    void HandleMdeSessionOpened();
-    void HandleQueryError( TInt aError );
-    void HandleQueryComplete( RPointerArray<TDesC>& aResultArray );
-    void HandleObjectChanged();
-    //from MTonePlayingWatcher
-    void HandlePreviewEvent( TInt event );
-    
-signals:
-    void mdeSessionOpened();
-    void mdeSessionError(int error);
-    void queryComplete(const QStringList& uriList);
-    void queryError(int error);
-    void notifyObjectChanged();  
-    void notifyPreviewEvent(int event);
-
-private:
-    QStringList mResultList;
-    CToneSelection* mToneSelection;
-    CTonePlayer* mTonePlayer;
-};
-#endif /* TONEFETCHERENGINEPRIVATE_H */
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/tonefetcherengine.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +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:
- *     The source file for tone fetcher engine.
- *     
- */
-#include "tonefetcherengine.h"
-#ifdef Q_OS_SYMBIAN
-#include "tonefetcherengine_symbian.h"
-#else
-#include "tonefetcherengine_stub.h"
-#endif
-
-ToneFetcherEngine::ToneFetcherEngine(QObject* parent) : QObject(parent)
-{
-    d = new ToneFetcherEnginePrivate();
-    Q_ASSERT(d);
-    
-    connect(d, SIGNAL(mdeSessionOpened()), 
-            this, SIGNAL(mdeSessionOpened()));
-    connect(d, SIGNAL(mdeSessionError(int)),
-            this, SIGNAL(mdeSessionError(int)));
-    connect(d, SIGNAL(queryComplete(QStringList)),
-            this, SIGNAL(queryComplete(QStringList)));
-    connect(d, SIGNAL(queryError(int)),
-            this, SIGNAL(queryError(int)));
-    connect(d, SIGNAL(notifyObjectChanged()),
-            this, SIGNAL(notifyObjectChanged()));    
-    connect(d, SIGNAL(notifyPreviewEvent(int)),
-            this, SIGNAL(notifyPreviewEvent(int)));
-}
-
-ToneFetcherEngine::~ToneFetcherEngine()
-{
-    delete d;
-}
-
-void ToneFetcherEngine::getTones()
-{
-    d->getTones();
-}
-
-void ToneFetcherEngine::play(const QString &file)
-{    
-    d->play(file);
-}
-
-bool ToneFetcherEngine::isPlaying()
-{
-    return d->isPlaying();
-}
-
-void ToneFetcherEngine::stopPlaying()
-{
-    d->stopPlaying();
-}
-
-//End of File
--- a/controlpanelui/src/tonefetcher/tonefetcherengine/tonefetcherengine.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +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:
- *     The header file for tone fetcher engine.
- *     
- */
-
-#ifndef TONEFETCHERENGINE_H
-#define TONEFETCHERENGINE_H
-#include <QObject>
-#include <QStringList>
-
-class ToneFetcherEnginePrivate;
-
-// CLASS DECLARATION
-/**
- *  This class is used for interacting with platform based codes
- *  including fetching tones from MDE (Metadata Engine) and playing tones
- *  using platform-dependant interface.
- *
- */
-class  ToneFetcherEngine : public QObject
-{
-    Q_OBJECT
-    
-public:    
-    explicit ToneFetcherEngine( QObject* parent = 0 );
-    ~ToneFetcherEngine();
-    /*
-     * search the tone using MDE, not including rom files.
-     */
-    void getTones();
-    
-    /*
-     * preview the tone
-     * @param file the absolute path of the file.
-     */
-    void play(const QString &file);
-    
-    bool isPlaying();
-    
-    /*
-     * stop playing
-     */
-    void stopPlaying();
-    
-signals:
-    void mdeSessionOpened();
-    void mdeSessionError(int error);
-    void queryComplete(const QStringList &uriList);
-    void queryError(int error);
-    void notifyPreviewEvent(int event);
-    void notifyObjectChanged();
-    
-private:
-    ToneFetcherEnginePrivate *d;
-};
-#endif
--- a/controlpanelui/src/tonefetcher/tsrc/main.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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:
- *     The main window file for tone service test
- *     
- */
-#include "tonetestapp.h"
-
-#include <hbapplication.h>
-#include <hbmainwindow.h>
-
-int main(int argc, char *argv[])
-{
-
-    QCoreApplication::setOrganizationName("Nokia");
-    QCoreApplication::setApplicationName("ToneTestApp");
-      
-    HbApplication app(argc, argv);
-    HbMainWindow mainWindow;
-    ToneTestApp *mainView = new ToneTestApp;
-    mainWindow.addView(mainView);
-    mainWindow.show();
-    return app.exec();
-}
--- a/controlpanelui/src/tonefetcher/tsrc/rom/rom.pri	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +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:
-#     Rom exports for tonetestapp
-# 
-
-symbian {
-    TONETESTAPP_IBY_DIR = $$section(PWD, ":", 1)
-
-    exists(/epoc32/include/platform_paths.hrh) {
-        BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
-    } else {
-        BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <domain\osextensions\platform_paths.hrh>"
-    }
-
-    BLD_INF_RULES.prj_exports += "$$TONETESTAPP_IBY_DIR/tonetestapp.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tonetestapp.iby)"
-
-}
--- a/controlpanelui/src/tonefetcher/tsrc/rom/tonetestapp.iby	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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: 
-*
-*/
-
-#ifndef __TONETESTAPP_IBY__
-#define __TONETESTAPP_IBY__
-
-#include <bldprivate.hrh>
-
-#define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc        Private\10003a3f\import\apps\ ## NAME ## _reg.rsc
-
-file=ABI_DIR\BUILD_DIR\tonetestapp.exe                   SHARED_LIB_DIR\tonetestapp.exe
-HB_UPGRADABLE_APP_REG_RSC(tonetestapp)
-S60_APP_RESOURCE(tonetestapp)
-
-#endif
-
--- a/controlpanelui/src/tonefetcher/tsrc/tonetestapp.cpp	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +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:
- *     The source file for tone service test.
- *     
- */
-#include "tonetestapp.h"
-#include <xqaiwrequest.h>
-#include <QGraphicsLinearLayout>
-#include <hbpushbutton.h>
-#include <hblineedit.h>
-#include <hblabel.h>
-#include <qdebug>
-#include <xqservicerequest.h>
-
-ToneTestApp::ToneTestApp(QGraphicsItem *parent) :
-    HbView(parent),
-    mReq(0),
-    mResultEdit(0),
-    mErrorCodeEdit(0),
-    mErrorEdit(0)
-{
-    qDebug() << "ToneTestApp::ToneTestApp(";
-    createLayout();
-}
-
-ToneTestApp::~ToneTestApp()
-{
-    qDebug() << "ToneTestApp::~ToneTestApp";
-    delete mReq;
-}
-
-void ToneTestApp::handleOk(const QVariant &result)
-{
-    qDebug() << "ToneTestApp::handleOk";
-    
-    if (!result.canConvert<QString>())
-    {
-        mErrorEdit->setText("Corrupt result");
-    }
-    else
-    {
-        mResultEdit->setText(result.value<QString>());
-        qDebug() << "ToneTestApp::handleOk" << ": result=" << result.value<QString>();
-    }
-    
-}
-
-void ToneTestApp::handleError(int errorCode, const QString& errorMessage)
-{
-    qDebug() << "ToneTestApp::handleError" << ": errorCode=" << errorCode << ", msg:" << errorMessage;
-    mErrorEdit->setText(errorMessage);
-    mErrorCodeEdit->setText(QString::number(errorCode));
-}
-
-void ToneTestApp::createLayout()
-{
-    qDebug() <<  "ToneTestApp::createLayout";
-    
-    QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical);
-
-    if (layout)
-    {
-        QGraphicsLinearLayout *topLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
-        if (topLayout)
-        {
-            topLayout->addStretch(5);
-            
-            mResultEdit = new HbLineEdit;
-            HbLabel* label = new HbLabel("Result:");
-            if (mResultEdit && label)
-            {
-                topLayout->addItem(label);
-                mResultEdit->setMaxRows(5);
-                topLayout->addItem(mResultEdit);
-            }
-            
-            mErrorCodeEdit = new HbLineEdit;
-            label = new HbLabel("Error code:");
-            if (mErrorCodeEdit && label)
-            {
-                topLayout->addItem(label);
-                topLayout->addItem(mErrorCodeEdit);
-            }
-            
-            mErrorEdit = new HbLineEdit;
-            label = new HbLabel("Error description:");
-            if (mErrorEdit && label)
-            {
-                topLayout->addItem(label);
-                mErrorEdit->setMaxRows(5);
-                topLayout->addItem(mErrorEdit);
-            }
-            
-            layout->addItem(topLayout);
-            layout->setStretchFactor(topLayout, 5);
-        }
-
-        QGraphicsLinearLayout *bottomLayout = new QGraphicsLinearLayout(Qt::Vertical);
-
-        if (bottomLayout)
-        {
-            bottomLayout->addStretch();
-            HbPushButton* button = new HbPushButton("Fetch tone");
-            if (button)
-            {
-                connect(button, SIGNAL(clicked()), this, SLOT(fetchTone()));
-                bottomLayout->addItem(button);
-            }
-            layout->addItem(bottomLayout);
-        }
-
-        setLayout(layout); // Takes ownership of layout
-    }
-}
-
-void ToneTestApp::fetchTone()
-{
-    qDebug() <<  "ToneTestApp::fetchSong START";
-    
-    mResultEdit->setText("");
-    mErrorEdit->setText("");
-    mErrorCodeEdit->setText("");
-    
-    if (!mReq)
-   {
-        mReq = mAppMgr.create("com.nokia.symbian.IToneFetch", "fetch()", true);
-     //   XQServiceRequest snd("com.nokia.services.toneserviceprovider.tone", "queryTone()", true);
-       // QVariant retValue;
-                
-  /*  bool res = snd.send(retValue);
-    if (!res)
-        {
-        int returnvalue = snd.latestError();
-        mErrorEdit->setText(QString::number(returnvalue));
-        // mRetValue->setText("send fail!");
-        }*/ 
-        
-        if (!mReq)
-        {
-            mErrorEdit->setText("Failed to create REQ");
-            return;
-        }
-        else
-        {
-            connect(mReq, SIGNAL(requestOk(const QVariant&)), SLOT(handleOk(const QVariant&)));
-            connect(mReq, SIGNAL(requestError(int,const QString&)), SLOT(handleError(int,const QString&)));
-        }
-    }
-    
-    // Set arguments for request (application title)
-    QList<QVariant> args;
-    args << QVariant(QString("<app_name>"));
-    mReq->setArguments(args);
-
-    // Make the request
-    if (!mReq->send())
-    {
-        mErrorEdit->setText("Failed to send REQ");        
-    }
-}
-
--- a/controlpanelui/src/tonefetcher/tsrc/tonetestapp.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +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:
- *     The header file for tone service test.
- *     
- */
-#ifndef TONETESTAPP_H
-#define TONETESTAPP_H
-
-#include <hbview.h>
-#include <xqappmgr.h>
-
-class XQApplicationManager;
-class XQAiwRequest;
-class HbLineEdit;
-
-class ToneTestApp : public HbView
-{
-    Q_OBJECT
-
-public:
-    ToneTestApp(QGraphicsItem *parent=0);
-    virtual ~ToneTestApp();
-
-private slots:
-    void handleOk(const QVariant &result);
-    void handleError(int errorCode, const QString& errorMessage);
-    
-    void fetchTone();
-    
-private:
-    void createLayout();
-    
-private:
-    XQApplicationManager mAppMgr;
-    XQAiwRequest* mReq;
-    HbLineEdit* mResultEdit;
-    HbLineEdit* mErrorCodeEdit;
-    HbLineEdit* mErrorEdit;
-};
-
-#endif // TONETESTAPP_H
--- a/controlpanelui/src/tonefetcher/tsrc/tonetestapp.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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 = tonetestapp 
-
-CONFIG += hb
-LIBS += -lxqservice -lxqserviceutil
-
-
-HEADERS   += tonetestapp.h
-SOURCES   += tonetestapp_reg.rss \
-    main.cpp \
-    tonetestapp.cpp
-RESOURCES +=
-symbian {
-    include(rom/rom.pri)
-    TARGET.UID3 = 0x2002BCC9
-    TARGET.CAPABILITY = ALL -TCB
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE 
-}
-
--- a/controlpanelui/tsrc/tsrc.pro	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +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 = subdirs
-SUBDIRS = ../src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/firstpluginforcpcategorymodel \
-          ../src/cpcategorymodel/tsrc/testpluginsforcpcategorymodel/secondpluginforcpcategorymodel \          
-          ../src/cpcategorymodel/tsrc/ut_cppluginconfigreader \
-          ../src/cpcategorymodel/tsrc/ut_categorymodelitemdata \
-          ../src/cpcategorymodel/tsrc/ut_categorymodelutility \
-          ../src/cpcategorymodel/tsrc/ut_cpcategorysettingformmodel \
-          ../src/cpprofilewrapper/tsrc/ut_cpprofilemodel
-
-CONFIG += ordered
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project DefaultApplicationSettings
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+#include "../services_db/group/bld.inf"
+#include "../server/group/bld.inf"
+#include "../service/group/bld.inf"
+#include "../gsplugin/group/bld.inf"
+
+PRJ_EXPORTS
+
+../rom/DefaultApplicationSettings.iby CORE_APP_LAYER_IBY_EXPORT_PATH(defaultapplicationsettings.iby)
+../rom/DefaultApplicationSettingsResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(defaultapplicationsettingsresources.iby)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/data/10281BA0.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  ECOM Interface definition for project General Settings Plugin
+*
+*/
+
+
+#include <registryinfo.rh>
+
+/**
+* How to use the resource definition:
+*
+* IMPLEMENTATION_INFO
+*    {
+*    implementation_uid  = <Your implementation UID here>;
+*    version_no          = 1;
+*    display_name        = "<Your plugin name here (just for debugging)>";
+*    default_data        = "<One of the below UIDs your plugin will be part of>";
+*    opaque_data         = "<Position of your plugin in the parent listbox>";
+*    }
+*
+* For example plugins wishing to use Apps Plugin as a parent use 
+* KGSAppsPluginUid (defined in GSFWViewUIDs.h):
+*
+*    default_data = "0x10207239";
+
+// Use this UID if plugin belongs to Main view:
+const TUid KGSMainViewUid = { 0x1020723B };
+
+
+// No item is selected in the container's listbox
+const TUid KGSNoneSelected = { 0x00000000 };
+
+// UIDs used by the sub-view plugins:
+
+// Use this UID if plugin belongs to General view:
+const TUid KGSGenPluginUid  = { 0x10207237 };
+
+// Use this UID if plugin belongs to Telephony view:
+const TUid KGSTelPluginUid  = { 0x1020723D };
+
+// Use this UID if plugin belongs to Connection view:
+const TUid KGSConPluginUid  = { 0x10207250 };
+
+// Use this UID if plugin belongs to Applications view:
+const TUid KGSAppsPluginUid = { 0x10207239 };
+
+// Use this UID if plugin belongs to Personalisation view:
+const TUid KGSPrslnPluginUid = { 0x10207252 };
+
+// Use this UID if plugin belongs to Security view:
+const TUid KGSSecurityPluginUid = { 0x1020743A };
+
+// Use this UID if plugin belongs to Standby view:
+const TUid KGSStandbyPluginUid = { 0x1020743F };
+
+*
+* Note that position of the plugin is supported only for internally provided
+* plugins. Others, such as 3rd party plugins, are sorted according to their
+* name and plugin provider category.
+*
+* Plugin position must follow the postition defined in UI specification.
+* Position starts from 0. Use -1 if position is not to be used in sorting.
+*
+*/
+RESOURCE REGISTRY_INFO theInfo
+    {
+    dll_uid     = 0x10281BA0; // Plugin dll UID 
+    interfaces  = 
+        {
+        INTERFACE_INFO
+            {
+            interface_uid   = 0x10207236; // UID for CGSPluginInterface - do not change.
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid  = 0x10281BA1; // Plugin UID
+                    version_no          = 1;
+                    display_name        = "DefaultAppSettings Plugin"; 
+                    default_data        = "0x10207239"; 
+                    opaque_data         = "0"; // Order number. We are the first
+                    }
+                };
+            }
+        };
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/data/gsdasplugin_rsc.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Resource file for project General Settings Plugin
+*
+*/
+
+
+//  INCLUDES
+#include    <bldvariant.hrh>
+#include    <avkon.rh>
+#include    <avkon.rsg>
+#include    <avkon.mbg>
+#include    <eikcore.rsg>
+#include    <eikon.rh>
+#include    <eikon.rsg>
+#include    <avkon.loc>
+#include    <data_caging_paths_strings.hrh>
+
+#include    <gs_das.loc>
+
+//  RESOURCE IDENTIFIER
+NAME    DAGS
+RESOURCE RSS_SIGNATURE { }
+RESOURCE TBUF { buf=""; }
+
+//  RESOURCE DEFINITIONS 
+
+//----------------------------------------------------
+//   
+//    r_gs_menubar_change_exit
+//    Options menu with 'Exit' item.
+//
+//----------------------------------------------------
+//
+RESOURCE MENU_BAR r_gs_menubar_change_exit
+    {
+    titles =
+        {
+        MENU_TITLE 
+            { 
+            menu_pane = r_gs_menu_item_exit;
+            }
+        };
+    }
+
+//----------------------------------------------------
+//   
+//    r_gs_menu_item_exit
+//    Options menu item 'Exit'.
+//
+//----------------------------------------------------
+//
+RESOURCE MENU_PANE r_gs_menu_item_exit
+    {
+    items =
+        {
+        MENU_ITEM 
+            {
+            command = EAknCmdExit;
+            txt = qtn_options_exit;
+            }
+        };
+    }
+    
+//----------------------------------------------------
+//   
+//    r_gs_example_view_title
+//    Packet data view's title.
+//
+//----------------------------------------------------
+//
+RESOURCE TBUF r_gs_defaultapp_caption
+    {
+    buf = qtn_da_gsp_caption;
+    }
+
+//----------------------------------------------------
+//   
+//    r_gs_defaultapp_view
+//    Default App plugin view.
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_VIEW r_gs_defaultapp_view
+    {
+    menubar = r_gs_menubar_change_exit;
+    cba = R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT;    
+    }
+
+//End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/group/GSDasPluginIcons.mk	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,71 @@
+#
+# Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0""
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Icons makefile for project Default Application settings
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=\epoc32\data\z
+endif
+
+# ----------------------------------------------------------------------------
+# : Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\gsdasplugin.mif
+HEADERFILENAME=$(HEADERDIR)\gsdasplugin.mbg
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# : Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2, \s60\bitmaps.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+
+RESOURCE :
+	mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
+		/c8,8 qgn_prop_cp_dev_def.svg
+
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo $(HEADERFILENAME)&& \
+	@echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project General Settings Plugin
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// export loc file
+../loc/gs_das.loc			APP_LAYER_LOC_EXPORT_PATH( gs_das.loc )
+
+PRJ_EXTENSIONS
+START EXTENSION s60/mifconv
+  OPTION TARGETFILE gsdasplugin.mif
+  OPTION HEADERFILE gsdasplugin.mbg
+  OPTION SOURCES -c8,8 qgn_prop_cp_dev_def
+END
+
+
+PRJ_MMPFILES
+gsdasplugin.mmp
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/group/gsdasplugin.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for project General Settings Plugin
+*
+*/
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+CAPABILITY          CAP_ECOM_PLUGIN
+TARGET              gsdasplugin.dll
+TARGETTYPE          PLUGIN
+UID                 0x10009D8D 0x10281BA0
+VENDORID            VID_DEFAULT
+
+SOURCEPATH          ../src
+SOURCE              gs_das_implementationtable.cpp 
+SOURCE              gs_das.cpp
+SOURCE              gs_das_emptycontainer.cpp 
+
+USERINCLUDE         ../inc
+USERINCLUDE         ../data
+
+// Default system include paths for middleware layer modules.
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE       /epoc32/include/ecom
+
+SOURCEPATH          ../data
+//ECOM resource definition
+START RESOURCE      10281BA0.rss 
+TARGET              gsdasplugin.rsc 
+END // ECOM resource definition
+
+//Default App GS plugin resources
+START RESOURCE      gsdasplugin_rsc.rss 
+HEADER
+TARGETPATH          RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END // Default App GS plugin resources
+
+LIBRARY             euser.lib
+LIBRARY             ecom.lib
+LIBRARY             egul.lib
+LIBRARY             aknskins.lib
+LIBRARY             efsrv.lib
+LIBRARY             avkon.lib
+LIBRARY             bafl.lib 
+LIBRARY             cone.lib 
+LIBRARY             eikcore.lib 
+LIBRARY             commonengine.lib//For RConeResourceLoader
+LIBRARY             gsframework.lib
+LIBRARY             gsecomplugin.lib
+LIBRARY             defaultappclient.lib
+
+LIBRARY             apparc.lib
+LIBRARY             apgrfx.lib
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/inc/gs_das.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implements a (minimal) GS Plugin
+*
+*/
+
+
+
+#ifndef GS_DAS_H
+#define GS_DAS_H
+
+// Includes
+#include <aknview.h>
+#include <AknServerApp.h>
+#include <eikclb.h>
+#include <ConeResLoader.h>
+
+#include <gsplugininterface.h>
+#include "gs_das_emptycontainer.h"
+// Classes referenced
+class CDefaultAppClient;
+
+// Constants
+/** This is the name of the plugin's resource file */
+_LIT( KDefaultAppGSPluginResourceFileName, "z:gsdasplugin_rsc.rsc" );
+
+/** This is the plugin's UID */
+const TUid KDefaultAppGSPluginUid = { 0x10281BA1 };
+  
+// CLASS DECLARATION
+
+/**
+ *  This class implements a GS plugin.
+ *
+ *  This class inplements a GS plugin that acts as a client for the Default App Server, so that it can be
+ *  accessed from the GS application.
+ *
+ *  @since S60 5.0
+ */
+class CDefaultAppGSPlugin : public CGSPluginInterface, public MAknServerAppExitObserver
+    {
+    
+public: // Constructors and destructor
+        
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+
+    static CDefaultAppGSPlugin* NewL( TAny* aInitParams );
+
+    /**
+     * Destructor.
+     */
+    ~CDefaultAppGSPlugin();
+
+public: // From CAknView
+                
+    /**
+     * From CAknView
+     * Returns the UID of the Plugin (see base class)
+     *
+     * @since S60 5.0
+     */
+    TUid Id() const;
+        
+    /**
+     * From CAknView
+     * Activates the plugin (see base class)
+     *
+     * @since S60 5.0
+     * @param aPrevViewId see base class
+     * @param aCustomMessageId see base class
+     * @param aCustomMessage see base class
+     */        
+    void DoActivateL( const TVwsViewId& aPrevViewId,
+                      TUid aCustomMessageId,
+                      const TDesC8& aCustomMessage );
+        
+    /**
+     * From CAknView
+     * Deactivates the Plugin (see base class)
+     *
+     * @since S60 5.0
+     */
+    void DoDeactivate();
+    
+    /**
+     * From CAknView
+     * Handles a menu command (see base class)
+     *
+     * @since S60 5.0
+     * @param aCommand the command to handle
+     */
+    void HandleCommandL( TInt aCommand );
+
+public: // From CGSPluginInterface
+    
+    /**
+     * From CGSPluginInterface
+     * Returns the Plugin Caption (see base class)
+     *
+     * @since S60 5.0
+     * @param aCaption placeholder for the caption
+     */   
+    void GetCaptionL( TDes& aCaption ) const;
+    
+    /**
+     * From CGSPluginInterface
+     * Returns the plugin's icon (see CGSPluginInterface header file)
+     *
+     * @since S60 5.0
+     * @param aIconType icon type
+     */  
+    CGulIcon* CreateIconL( const TUid aIconType );
+        
+private: // From MAknServerAppExitObserver
+    
+    /**
+     * From MAknServerAppExitObserver
+     * Handles server exits
+     *
+     * @since S60 5.0
+     * @param aReason for the server exit
+     */
+    void HandleServerAppExit ( TInt aReason );
+        
+private:
+        
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppGSPlugin();
+
+    /**
+     * Symbian OS default constructor.
+     */
+    void ConstructL();
+        
+private: // Data  
+
+    /**
+     * The Resource Loader
+     */
+    RConeResourceLoader iResources; // Resouce loader.
+    
+    /**
+     * The id of the previous View, to be activated when user pushes Back
+     */
+    TVwsViewId iPrevViewId;
+    
+    /**
+     * Pointer to the Default App Client API class
+     * Own.
+     */
+    CDefaultAppClient* iClient;
+    
+    /**
+     * Empty Container, used to avoid screen flickering
+     * Own.
+     */
+    CCEmptyContainer* iEmptyContainer;
+    };
+
+#endif // GS_DAS_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/inc/gs_das_emptycontainer.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implements a empty container for gsplugin
+*
+*/
+
+
+#ifndef CEMPTYCONTAINER_H
+#define CEMPTYCONTAINER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <coecntrl.h>
+
+// CLASS DECLARATION
+
+/**
+ *  CCEmptyContainer
+ * 
+ */
+class CCEmptyContainer : public CCoeControl
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Destructor.
+     */
+    ~CCEmptyContainer();
+
+    /**
+     * Two-phased constructor.
+     */
+    static CCEmptyContainer* NewL ( const TRect& aRect, const CCoeControl* aParent );
+
+    /**
+     * Two-phased constructor.
+     */
+    static CCEmptyContainer* NewLC ( const TRect& aRect, const CCoeControl* aParent );
+    
+public:
+    // from base class CCoeControl
+       TInt CountComponentControls() const;
+       
+       CCoeControl* ComponentControl( TInt aIndex ) const;
+
+private:
+
+    /**
+     * Constructor for performing 1st stage construction
+     */
+    CCEmptyContainer();
+
+    /**
+     * EPOC default constructor for performing 2nd stage construction
+     */
+    void ConstructL ( const TRect& aRect, const CCoeControl* aParent );
+
+    };
+
+#endif // CEMPTYCONTAINER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/loc/gs_das.loc	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project General Settings Plugin
+*
+*/
+
+
+// d:Text of a list item in General Settings application
+// d:Item opens the Default Applications settings
+// l:list_single_large_graphic_pane_t1
+// r:5.0
+//
+#define qtn_da_gsp_caption "Default Applications"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/src/gs_das.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,255 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implements a (minimal) GS Plugin
+*
+*/
+
+
+// Includes
+#include <aknViewAppUi.h>
+#include <StringLoader.h>
+#include <bautils.h>
+
+#include <gsdasplugin_rsc.rsg> // Plugin's own  UI resources
+#include <gsdasplugin.mbg>
+
+#include "gs_das.h"
+
+#include <das_client.h>
+
+
+// Constants
+
+#ifdef __SCALABLE_ICONS
+  // svg file
+  _LIT( KGSDasPluginIconFileName, "\\resource\\apps\\GSDasPlugin.mif");
+#else
+  // bitmap
+  _LIT( KGSDasPluginIconFileName, "\\resource\\apps\\GSDasPlugin.mbm");
+#endif // __SCALABLE_ICONS
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+
+// ---------------------------------------------------------------------------
+// CDefaultAppGSPlugin::CDefaultAppGSPlugin()
+// Constructor
+//
+// ---------------------------------------------------------------------------
+//
+CDefaultAppGSPlugin::CDefaultAppGSPlugin( )
+    : iResources( *iCoeEnv ), iClient(NULL)
+    {
+    
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppGSPlugin::~CDefaultAppGSPlugin()
+// Destructor
+//
+// ---------------------------------------------------------------------------
+//
+CDefaultAppGSPlugin::~CDefaultAppGSPlugin()
+    {
+    iResources.Close();
+    if(iClient)
+        delete iClient;
+    if( iEmptyContainer )
+        {
+        AppUi()->RemoveFromViewStack( *this, iEmptyContainer );
+        delete iEmptyContainer;
+        };
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppGSPlugin::ConstructL()
+// Symbian OS two-phased constructor
+// 
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppGSPlugin::ConstructL()
+    {
+    // Find the resource file:
+    TParse parse;
+    parse.Set( KDefaultAppGSPluginResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
+    TFileName fileName( parse.FullName() );
+
+    // Get language of resource file:
+    BaflUtils::NearestLanguageFile( CEikonEnv::Static()->FsSession(), fileName );
+
+    // Open resource file:
+    iResources.OpenL( fileName );
+    
+    //We can call this after opening the resource file ...
+    BaseConstructL( R_GS_DEFAULTAPP_VIEW );
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppGSPlugin::NewL()
+// Static constructor
+//
+// ---------------------------------------------------------------------------
+//
+CDefaultAppGSPlugin* CDefaultAppGSPlugin::NewL( TAny* /*aInitParams*/ )
+    {
+    CDefaultAppGSPlugin* self = new( ELeave ) CDefaultAppGSPlugin( );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ========================= From CAknView ==================
+
+
+// ---------------------------------------------------------------------------
+// From class CAknView.
+// Returns the UID of the plugin (see base class)
+// ---------------------------------------------------------------------------
+//
+TUid CDefaultAppGSPlugin::Id() const
+    {
+    return KDefaultAppGSPluginUid;
+    }
+
+
+// ---------------------------------------------------------------------------
+// From class CAknView.
+// Activates the plugin (see base class)
+// See das_servmimeapps.h for possible values of the flags (useful for R&D)
+// -0x00010000 : 
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppGSPlugin::DoActivateL( const TVwsViewId& aPrevViewId,
+                                  TUid /*aCustomMessageId*/,
+                                  const TDesC8& /*aCustomMessage*/ )
+    {
+    iPrevViewId = aPrevViewId;
+    
+    TInt flags(0); //See das_servmimeapps.h for possible values of the flags (useful for R&D)
+    
+    if( !iClient )
+        {
+        iClient=CDefaultAppClient::NewL(this);
+        }
+    
+    iClient->ChangeDefaultsL( flags );
+    
+    //construct an empty control, so we avoid the screen flickering
+    if( !iEmptyContainer )
+        {
+        iEmptyContainer = CCEmptyContainer::NewL( ClientRect(),NULL );
+        iEmptyContainer->SetMopParent(this);
+        AppUi()->AddToStackL(*this, iEmptyContainer);
+        };
+    }
+
+
+// ---------------------------------------------------------------------------
+// From class CAknView.
+// Deactivates the Plugin (see base class)
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppGSPlugin::DoDeactivate()
+    {
+    if(iEmptyContainer)
+        {
+    	AppUi()->RemoveFromViewStack(*this, iEmptyContainer);
+    	delete iEmptyContainer;
+    	iEmptyContainer=NULL;
+        };
+    }
+
+
+// ---------------------------------------------------------------------------
+// From class CAknView.
+// Handles a menu command (see base class)
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppGSPlugin::HandleCommandL( TInt aCommand )
+    {
+    switch ( aCommand )
+        {
+        case EAknSoftkeyBack:
+            AppUi()->ActivateLocalViewL( iPrevViewId.iViewUid );
+            break;
+        case EAknCmdExit:
+        case EEikCmdExit:
+            AppUi()->RunAppShutter();
+            break;
+        default:
+            AppUi()->HandleCommandL( aCommand ); //also handles EAknCmdExit 
+            break;
+        }
+    }
+// ========================= From CGSPluginInterface ==================
+
+
+
+// ---------------------------------------------------------------------------
+// From class CGSPluginInterface.
+// Returns the Plugin Caption (see base class)
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppGSPlugin::GetCaptionL( TDes& aCaption ) const
+    {
+    HBufC* result = StringLoader::LoadL( R_GS_DEFAULTAPP_CAPTION );
+    aCaption.Copy( *result );
+    delete result;
+    }
+
+// ---------------------------------------------------------------------------
+// From class CGSPluginInterface.
+// Return the icon, if has one.
+// ---------------------------------------------------------------------------
+//
+CGulIcon* CDefaultAppGSPlugin::CreateIconL( const TUid aIconType )
+    {
+    //EMbm<Mbm_file_name><Bitmap_name>
+    CGulIcon* icon;    
+
+    if( aIconType == KGSIconTypeLbxItem )
+        {
+        icon = AknsUtils::CreateGulIconL(
+        AknsUtils::SkinInstance(),
+        KAknsIIDQgnPropCpDevDef,
+        KGSDasPluginIconFileName,
+        EMbmGsdaspluginQgn_prop_cp_dev_def,
+        EMbmGsdaspluginQgn_prop_cp_dev_def_mask );    
+        }
+       else
+        {
+        icon = CGSPluginInterface::CreateIconL( aIconType );
+        };
+
+    return icon;
+    }
+
+// ========================= From MAknServerAppExitObserver ==================
+
+// ---------------------------------------------------------------------------
+// From class MAknServerAppExitObserver.
+// Handles server exits
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppGSPlugin::HandleServerAppExit( TInt aReason)
+    {
+    delete iClient;
+    iClient=NULL;
+    TRAP_IGNORE(HandleCommandL(aReason));//do not care why it leaved
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/src/gs_das_emptycontainer.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implements a (minimal) GS Plugin
+*
+*/
+
+
+#include "gs_das_emptycontainer.h"
+
+CCEmptyContainer::CCEmptyContainer()
+    {
+    // No implementation required
+    }
+
+CCEmptyContainer::~CCEmptyContainer()
+    {
+    }
+
+CCEmptyContainer* CCEmptyContainer::NewLC ( const TRect& aRect, 
+        const CCoeControl* aParent )
+    {
+    CCEmptyContainer* self = new (ELeave) CCEmptyContainer();
+    CleanupStack::PushL ( self );
+    self->ConstructL( aRect, aParent );
+    return self;
+    }
+
+CCEmptyContainer* CCEmptyContainer::NewL ( const TRect& aRect, 
+        const CCoeControl* aParent )
+    {
+    CCEmptyContainer* self = CCEmptyContainer::NewLC ( aRect, aParent );
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+void CCEmptyContainer::ConstructL( const TRect& aRect,const CCoeControl* aParent )
+    {
+    if ( aParent == NULL )
+        {
+        CreateWindowL();
+        }
+    else
+        {
+        SetContainerWindowL( *aParent );
+        }
+    SetRect( aRect );
+    ActivateL();
+    }
+
+TInt CCEmptyContainer::CountComponentControls() const
+    {
+    return 0;
+    }
+
+CCoeControl* CCEmptyContainer::ComponentControl ( TInt aIndex ) const
+    {
+    switch( aIndex )
+        {
+        
+        }
+    return NULL;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/gsplugin/src/gs_das_implementationtable.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation table
+*
+*/
+
+
+// System includes
+#include <e32std.h>
+#include <implementationproxy.h>
+
+// User includes
+#include "gs_das.h"
+#include <das_client.h>
+
+// Constants
+const TImplementationProxy KDASGSPluginImplementationTable[] = 
+    {
+    // Uid for plugin implementation:
+    IMPLEMENTATION_PROXY_ENTRY( 0x10281BA1,    CDefaultAppGSPlugin::NewL )
+    };
+
+
+// ---------------------------------------------------------------------------
+// ImplementationGroupProxy
+// Gate/factory function
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( 
+    TInt& aTableCount )
+    {
+    TInt error;
+    if( !CDefaultAppClient::ServiceAvailable(error) )
+        {
+        //there was an error, service not found.
+        aTableCount=0;
+        }
+    else //service was found
+        aTableCount = sizeof( KDASGSPluginImplementationTable ) 
+            / sizeof( TImplementationProxy );
+            
+    return KDASGSPluginImplementationTable;
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/rom/DefaultApplicationSettings.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Image description file for project DefaultApplicationSettings
+*
+*/
+
+
+
+#ifndef DEFAULTAPPLICATIONSETTINGS_IBY
+#define DEFAULTAPPLICATIONSETTINGS_IBY
+
+#include <bldvariant.hrh>
+
+#ifdef RD_DEFAULT_APPLICATION_SETTINGS
+
+S60_APP_EXE(DefaultAppServer)
+S60_APP_AIF_RSC(DefaultAppServer)
+
+//services_db
+file=ABI_DIR\BUILD_DIR\servicesdb.dll                   SHARED_LIB_DIR\servicesdb.dll
+
+//client lib
+file=ABI_DIR\BUILD_DIR\defaultappclient.dll             SHARED_LIB_DIR\defaultappclient.dll
+
+//gs plugin
+ECOM_PLUGIN( gsdasplugin.dll, 10281BA0.rsc )
+data=DATAZ_\BITMAP_DIR\GSDasPlugin.mif                  BITMAP_DIR\GSDasPlugin.mif
+
+#endif // RD_DEFAULT_APPLICATION_SETTINGS
+
+#endif // DEFAULTAPPLICATIONSETTINGS_IBY
+
+//  End of File  
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/rom/DefaultApplicationSettingsResources.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Image description file for project DefaultApplicationSettings
+*
+*/
+
+
+
+#ifndef DEFAULTAPPLICATIONSETTINGSRESOURCES_IBY
+#define DEFAULTAPPLICATIONSETTINGSRESOURCES_IBY
+
+#include <bldvariant.hrh>
+
+#ifdef RD_DEFAULT_APPLICATION_SETTINGS
+
+//server
+data=DATAZ_\APP_RESOURCE_DIR\defaultappserver.rsc       APP_RESOURCE_DIR\defaultappserver.rsc
+
+//gs plugin
+data=DATAZ_\RESOURCE_FILES_DIR\gsdasplugin_rsc.rsc      RESOURCE_FILES_DIR\gsdasplugin_rsc.rsc
+
+#endif // RD_DEFAULT_APPLICATION_SETTINGS
+
+#endif // DEFAULTAPPLICATIONSETTINGSRESOURCES_IBY
+
+//  End of File  
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/data/defaultappserver.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,460 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Resource definitions for project DefaultApp Server
+*
+*/
+
+
+#include <avkon.rh>
+#include <avkon.rsg>
+#include <avkon.hrh>
+#include <avkon.loc>
+#include <avkon.mbg>
+
+#include <eikon.rh>
+#include <eikon.rsg>
+
+#include <uikon.rh>
+
+#include <bldvariant.hrh>
+
+#include <appinfo.rh>//localisable app info
+#include <data_caging_paths_strings.hrh>
+
+#include <services_db.rh>
+#include "das_gsentries.rh"
+#include "das.hrh"
+#include <defaultappserver.loc>
+#include <services_db.loc>
+
+NAME DFAP
+RESOURCE RSS_SIGNATURE { }
+RESOURCE TBUF { buf=""; }
+
+
+
+// ---------------------------------------------------------   
+// Define default menu and CBA key.
+// ---------------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+    {
+    menubar=r_das_menubar;
+    cba = r_das_softkeys_options_back__change;//R_AVKON_SOFTKEYS_OPTIONS_BACK;
+    }
+
+// ---------------------------------------------------------
+// r_das_menubar
+// Menubar for Default App Server
+// ---------------------------------------------------------
+//
+RESOURCE MENU_BAR r_das_menubar
+    {
+    titles=
+        {
+        MENU_TITLE 
+            { 
+            menu_pane = r_das_menu;
+            }
+        };
+    }
+
+// ---------------------------------------------------------------------------
+// r_das_menu
+// Menu for Options
+// ---------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_das_menu
+    {
+    items=
+        {
+        MENU_ITEM 
+            { 
+            flags = EEikMenuItemAction;
+            command = EAknCmdOpen;
+            txt = qtn_options_change; 
+            },
+        MENU_ITEM 
+            { 
+            command = EAknCmdFindPopupActivated; 
+            txt = qtn_options_find; 
+            },
+        MENU_ITEM 
+            { 
+            command = EDasCmdAdvanced; 
+            txt = qtn_options_advanced;
+            },
+        MENU_ITEM
+            {
+            cascade = r_das_menu_original_settings;
+            txt = qtn_da_options_reset;
+            },
+        MENU_ITEM 
+            { 
+            command = EAknCmdHelp;
+            txt = qtn_options_help; 
+            },
+        MENU_ITEM 
+            { 
+            command = EAknCmdExit; 
+            txt = qtn_options_exit; 
+            }
+        };
+    }
+    
+// ---------------------------------------------------------------------------
+// r_das_menu_factory_settings
+// Sub-menu for Factory settings
+// This contains one item, but additional items will be added to it
+// ---------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_das_menu_original_settings
+    {
+    items =
+        {
+        MENU_ITEM
+            {
+            command = EDasCmdResetSelected;
+            txt = qtn_da_options_reset_selected;
+            flags = EEikMenuItemSpecific;
+            },
+        MENU_ITEM
+            {
+            command = EDasCmdResetAll;
+            txt = qtn_da_options_reset_all;
+            }
+        };
+    }
+
+// ---------------------------------------------------------------------------
+// r_das_servicesmimes_listbox
+// Listbox for the Services & MIMEs
+// ---------------------------------------------------------------------------
+//
+RESOURCE LISTBOX r_das_servicesmimes_listbox
+    {
+    flags = EAknListBoxSelectionList;
+    }
+
+// ---------------------------------------------------------------------------
+// r_da_title_app
+// Application title
+// ---------------------------------------------------------------------------
+//
+RESOURCE TBUF r_da_title_app 
+    {
+    buf = qtn_da_title_app;
+    }
+
+// ---------------------------------------------------------------------------
+// r_da_title_main
+// Main view title
+// ---------------------------------------------------------------------------
+//
+RESOURCE TBUF r_da_title_main 
+    {
+    buf = qtn_da_title_main;
+    }
+
+// ---------------------------------------------------------------------------
+// r_da_title_popup_adv
+// Advanced settings
+// ---------------------------------------------------------------------------
+//
+RESOURCE TBUF r_da_title_advanced
+    {
+    buf = qtn_da_title_advanced;
+    }
+
+
+
+
+// resources for the simplified view
+
+
+// ---------------------------------------------------------------------------
+// r_da_tasks
+// This is the list of tasks. For each task, there are 3 items:
+//  -the task name (this will be shown in the list)
+//  -the MIME label (the selected default application for the task will be set as default for Open and this MIME)
+//  -a list of Services & MIMEs that belong to the task: all applications that can handle at least one Service & MIME
+//   from the list, may become defaults for the task (however, only for the Services & MIMEs the application supports).
+// ---------------------------------------------------------------------------
+//
+RESOURCE DAS_GS_TASKS r_da_tasks
+    {
+    tasks=
+        {
+        DAS_GS_TASK_ENTRY
+            {
+            task_name = qtn_da_main_browse;
+            //USE_TASK_TITLE
+            task_title = qtn_da_title_popup_browse;
+
+            mime_label = "application/x-web-browse";
+            service_mimes =
+                {
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "text/html"; }
+                };
+            }, //browse web task
+        DAS_GS_TASK_ENTRY
+            {
+            task_name = qtn_da_main_play_music;
+            //
+            task_title = qtn_da_title_popup_music;
+
+            mime_label = "application/x-audio-play";
+            service_mimes =
+                {
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/mp3"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/mpeg"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-mp3"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/mpegurl"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-mpegurl"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/3gpp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/3gpp2"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/mp4"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/aac"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/basic"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/amr"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/amr-wb"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/awb"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-amr"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-epoc-wve"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-sibo-wve"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/wav"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-wav"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-au"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/au"; },
+                // SERIES 60 MIDI
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-midi"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/midi"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/sp-midi"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-beatnik-rmf"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-rmf"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/rmf"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/mobile-xmf"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/vnd.nokia.mobile-xmf"; },
+                //qcelp
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/qcelp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/vnd.qcelp"; },
+                //wma
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-ms-wma"; }
+                //real audio (probably with system priority in the system)
+                /* 
+                 * Real Audio is commented out because leaving it here would be confusing for users:
+                 * If Real Audio is uncommented below, both Music Player and RealPlayer will be listed 
+                 * as handling music. However, the Music Player can not handle the Real Audio MIMEs
+                 * (it can handle most of the MIMEs above this comment). The RealPlayer can only handle 
+                 * the RealAudio MIMEs (commented here). So there is no overlapping between the 2 players.
+                 * This would mean that whatever the client choses as the default player between these 2,
+                 * they will still continue to play media as before. E.g. all mp3s, WMAs, AACs will be
+                 * played with the MediaPlayer even if RealPlayer is chosed as default audio player.
+                 *
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/vnd.rn-realaudio"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-pn-realaudio-plugin"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "audio/x-pn-realaudio"; }
+                 */
+                };
+            }, //play music task
+        DAS_GS_TASK_ENTRY
+            {
+            task_name = qtn_da_main_play_videos;
+            //USE_TASK_TITLE
+            task_title = qtn_da_title_popup_video;
+
+            mime_label = "application/x-video-play";
+            service_mimes =
+                {
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "video/3gpp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "video/3gpp2"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "video/mpeg4"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "video/mp4"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "application/sdp"; },
+                //following MIMEs are probably system priority in the platform player
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "video/vnd.rn-realvideo"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "application/vnd.rn-realmedia"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "application/x-pn-realmedia"; }
+                };
+            }, //play videos task
+        DAS_GS_TASK_ENTRY
+            {
+            task_name = qtn_da_main_view_images;
+            //USE_TASK_TITLE
+            task_title = qtn_da_title_popup_image;
+
+            mime_label = "application/x-image-view";
+            service_mimes =
+                {
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/jpeg"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/jpg"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/jp2"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/tiff"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-wmf"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/ico"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/gif"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/bmp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-bmp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-bitmap"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-xbitmap"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-win-bitmap"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-windows-bmp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/ms-bmp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-ms-bmp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/vnd.wap.wbmp"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/png"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-epoc-mbm"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/vnd.nokia.ota-bitmap"; },
+                DAS_SERVICE_MIME
+                    { service_uid = 0x10208DCA; mime = "image/x-ota-bitmap"; }
+                };
+            } //view images task
+        }; //tasks
+    }
+
+        
+// ---------------------------------------------------------------------------
+// r_defaultappserver_localisable_app_info
+// Localisable app info
+// ---------------------------------------------------------------------------
+//
+RESOURCE LOCALISABLE_APP_INFO r_defaultappserver_localisable_app_info
+    {
+    short_caption = qtn_da_title_app;    
+    caption_and_icon =
+    CAPTION_AND_ICON_INFO
+        {
+        caption = qtn_da_title_app;
+        };
+    }
+
+RESOURCE CBA r_das_softkeys_options_back__change
+    {
+    buttons =
+        {
+        CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
+        CBA_BUTTON {id=EAknSoftkeyBack; txt=text_softkey_back;},
+        CBA_BUTTON {id=EAknCmdOpen; txt=qtn_msk_change;}
+        };
+    }
+   
+RESOURCE DIALOG r_das_dlg
+    {
+    flags = EAknDialogSelectionList | EEikDialogFlagNotifyEsc;
+            
+    buttons = r_das_softkeys_options_back__change;
+    items = 
+        {
+        DLG_LINE
+            {
+            type = EAknCtDoubleListBox;
+
+            id = ESelectionListControl;
+            control = LISTBOX
+                {
+                flags = EAknListBoxSelectionList;
+                };
+            },
+        DLG_LINE
+            {
+            itemflags = EEikDlgItemNonFocusing;
+            id = EFindControl;
+            type = EAknCtSelectionListPopupFind;
+            }
+        };
+    }
+
+// ---------------------------------------------------------------------------
+// r_da_services_mime
+// This resource stores localized strings for the supported services, identified
+// by their Uid and generic name.
+// This resource is defined in the services_db.rh file
+// ---------------------------------------------------------------------------
+//
+RESOURCE DAS_SERVICES r_da_service_mime
+    {
+    services = 
+        {
+        DAS_SERVICE_ENTRY
+            {
+            service_uid = 0x10208DCA; //KOpenServiceUid
+            service_name = "Open";
+            service_localized_name = qtn_da_service_open;
+            }         
+        };
+    }    
+    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/data/defaultappserver_reg.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Registration resource file for Default App Server
+*
+*/
+
+
+
+//  INCLUDES
+
+#include <appinfo.rh>
+#include <defaultappserver.rsg>
+#include <data_caging_paths_strings.hrh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x10281B9C //server app UID
+
+//  RESOURCE DEFINITIONS
+// -----------------------------------------------------------------------------
+//
+// APP_REGISTRATION_INFO
+// Registration resource for Default App Server
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE APP_REGISTRATION_INFO
+    {
+    app_file = "defaultappserver";
+    embeddability = KAppEmbeddable;
+    hidden = KAppIsHidden;
+    newfile=KAppDoesNotSupportNewFile;
+    localisable_resource_file = APP_RESOURCE_DIR"\\defaultappserver";
+    localisable_resource_id = R_DEFAULTAPPSERVER_LOCALISABLE_APP_INFO;    
+    service_list =
+        {
+        SERVICE_INFO { uid = 0x10281B9D; }
+        };
+    }
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project Default App Server
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// export loc file
+../loc/defaultappserver.loc		APP_LAYER_LOC_EXPORT_PATH( defaultappserver.loc )
+../loc/services_db.loc			APP_LAYER_LOC_EXPORT_PATH( services_db.loc )
+
+PRJ_MMPFILES
+das_server.mmp
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/group/das_server.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,80 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for project Default App Server
+*
+*/
+
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>  
+
+TARGET                  defaultappserver.exe
+TARGETTYPE              EXE
+UID                     0 0x10281B9C
+
+CAPABILITY              WriteDeviceData  SwEvent
+VENDORID                VID_DEFAULT
+
+SOURCEPATH              ../src
+SOURCE                  das.cpp               //entry point
+SOURCE                  das_app.cpp           //Application class
+SOURCE                  das_doc.cpp           //Document class
+SOURCE                  das_appui.cpp         //AppUi class
+SOURCE                  das_srvmime_dlg.cpp   //dlg class: services & MIMEs
+SOURCE                  das_view.cpp          //standard view class, rather empty
+SOURCE                  das_server.cpp        //server class
+SOURCE                  das_service.cpp       //service class
+SOURCE                  das_servmimeapps.cpp  //engine class
+
+USERINCLUDE             ../inc
+
+// Default system include paths for middleware layer modules.
+APP_LAYER_SYSTEMINCLUDE
+
+START RESOURCE          ../data/defaultappserver.rss
+HEADER
+TARGETPATH              APP_RESOURCE_DIR
+LANGUAGE_IDS
+END // RESOURCE
+
+START RESOURCE          ../data/defaultappserver_reg.rss
+DEPENDS defaultappserver.rsg
+TARGETPATH              /private/10003a3f/apps
+END
+
+
+
+
+LIBRARY                 euser.lib
+LIBRARY                 apparc.lib //is this needed??
+LIBRARY                 apgrfx.lib
+LIBRARY                 apmime.lib
+LIBRARY                 cone.lib
+LIBRARY                 eikcore.lib
+LIBRARY                 eikcoctl.lib
+LIBRARY                 eikdlg.lib
+LIBRARY                 avkon.lib
+LIBRARY                 bafl.lib
+LIBRARY                 commonengine.lib //StringLoader
+LIBRARY                 serviceregistry.lib
+
+LIBRARY aknskins.lib
+LIBRARY egul.lib
+LIBRARY aknlayout2scalable.lib
+LIBRARY aknicon.lib
+LIBRARY hlplch.lib // for "Help" options menu
+LIBRARY featmgr.lib
+
+LIBRARY                 servicesdb.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das.hlp.hrh	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Help IDs for project Default App Server
+*
+*/
+
+
+#ifndef DAS_HLP_HRH
+#define DAS_HLP_HRH
+
+
+_LIT(KDA_HLP_MAIN,"DA_HLP_MAIN"); //GS client, simplified view
+_LIT(KDA_HLP_ADVANCED,"DA_HLP_ADVANCED"); //GS client, advanced view
+_LIT(KDA_HLP_APPLICATION,"DA_HLP_APPLICATION"); //other client
+
+#endif // DAS_HLP_HRH
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das.hrh	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Resource headers for project Default App Server
+*
+*/
+
+
+#ifndef DAS_HRH
+#define DAS_HRH
+
+// DefaultApp enumerate command codes 
+enum TDefaultAppCommands
+    {
+    EDasCmdAdvanced=100,
+    EDasCmdResetAll,
+    EDasCmdResetSelected
+    };
+
+#endif // DAS_HRH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_app.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,89 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class implements the application.
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPAPPLICATION_H
+#define C_DEFAULTAPPAPPLICATION_H
+
+#include <aknapp.h>
+
+class CDefaultAppDocument;
+class CDefaultAppServer;
+
+/** UID for the application; this should correspond to the uid defined in the mmp file */
+const TUid KUidDefaultAppServer = { 0x10281B9C };
+
+/**
+ *  This class implements the application.
+ *
+ *  @since Series 60 v5.0
+ */
+class CDefaultAppApplication : public CAknApplication
+    {
+private: // Functions from base classes
+
+    /**
+     * From CApaApplication.
+     * Returns application's UID (KUidDefaultAppServer).
+     *
+     * @since S60 v5.0
+     * @return The value of KUidDefaultAppServer.
+     */
+    TUid AppDllUid() const;
+
+    /**
+     * From CApaApplication.
+     * Creates CDefaultAppDocument document object.
+     *
+     * @since S60 v5.0
+     * @return A pointer to the created document object.
+     */
+    CApaDocument* CreateDocumentL();
+       
+    /**
+     * From CApaApplication.
+     * Creates a new server object (CDefaultAppServer).
+     *
+     * @since S60 v5.0
+     * @param aAppServer pointer to the newly created server object
+     */
+    void NewAppServerL(CApaAppServer*& aAppServer);
+    
+public:
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppApplication(void);
+    
+public: //data
+    /**
+     * Pointer to the documet class
+     * Not owned.
+     */
+    CDefaultAppDocument* iDocument; //not owned
+    
+    /**
+     * Pointer to the server class
+     * Not owned.
+     */
+    CDefaultAppServer* iServer;     //not owned
+    };
+
+#endif      // C_DEFAULTAPPAPPLICATION_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_appui.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class implements the AppUi
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPAPPUI_H
+#define C_DEFAULTAPPAPPUI_H
+
+
+#include <aknappui.h>
+#include <eikmenub.h>
+
+class CDefaultAppSrvMimeDlg;
+class CDefaultAppView;
+class CDefaultAppServMimeApps;
+
+
+
+/**
+ *  This class implements the AppUi.
+ *
+ *  @since Series 60 v5.0
+ */
+class CDefaultAppAppUi : public CAknAppUi
+    {
+public:
+    
+    /**
+     * Destructor.
+     */
+    virtual ~CDefaultAppAppUi();
+
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppAppUi();
+
+    /**
+     * Symbian OS default constructor.
+     */
+    void ConstructL();
+    
+    /**
+     * This function completes the construction of the AppUi. This function is called after the client
+     * has connected to this server instance, and all the necessary data for this construction step is 
+     * available.
+     *
+     * @since S60 v5.0
+     * @param aClientUid The Uid of the client
+     * @param aServiceFlags various flags that may alter what data is displayed to the user
+     */
+    void ConstructSrvMimeDlgL(TUid aClientUid, TInt aServiceFlags);
+    
+    /* 
+     * This functino is used to record the exist of the dialog; 
+     */
+    void SetDialogExist( TBool aExist );
+    
+public: // from CAknAppUi
+    
+    /**
+     * From CAknAppUi.
+     * Handles commands from the menu (see base class)
+     *
+     * @since S60 v5.0
+     * @param aCommand the command being handled
+     */
+    void HandleCommandL(TInt aCommand);
+
+    /**
+     * From CAknAppUi.
+     * Handles layout changes (e.g. from portrait to landscape)
+     *
+     * @since S60 v5.0
+     * @param aType The type of resources that have changed
+     */
+    void HandleResourceChangeL(TInt aType);
+    
+     /**
+     * Handles Window Server events (we are interested in catching the end key event 
+     * and exiting the application
+     *
+     * @since S60 v5.0
+     * @param aEvent The event that occurred
+     * @param aDestination The control associated with the event
+     */
+    void HandleWsEventL(const TWsEvent & aEvent, CCoeControl * aDestination);
+
+
+private:
+    
+    /**
+     * Imports and displays the icon of the client application.
+     *
+     * @since S60 v5.0
+     */
+    void SetClientIconL(TUid aClietAppUid);
+
+public: 
+    
+    /**
+     * Pointer to the View
+     * Own.
+     */
+    CDefaultAppView *iView;
+    
+    /**
+     * Pointer to the dialog
+     * Own.
+     */
+    CDefaultAppSrvMimeDlg *iDlg;
+    
+    /**
+     * Pointer to the "engine". The engine is a place where application data is retrieved and stored.
+     * Own.
+     */
+    CDefaultAppServMimeApps *iServMimeApps;
+    
+    /**
+     * variable used to remember the list selection position when reloading the dialog
+     * for the simplified view
+     * Own.
+     */
+    TInt iSelectedItemSimple;
+    
+    /**
+     * variable used to remember the list selection position when reloading the dialog
+     * for the advanced view
+     * Own.
+     */
+    TInt iSelectedItemAdvanced;
+    
+    /**
+     * variable used to remember dialog type (simple/advanced) when reloading the dialog
+     * Own.
+     */
+    TBool iReloadDlgAdvanced;
+    
+    /**
+     * variable used to specify if the dialog is reloaded
+     * Own.
+     */
+    TBool iReloadDlg;
+    
+    /**
+     * specifies if the dialog is dismissed or reloaded
+     * Own.
+     */
+    TBool iExitBack;
+    
+    TUid  iClientUid;
+    
+private:
+    // This is used to record the exist of the dialogue.
+    TBool iDialogExist;
+    };
+#endif // C_DEFAULTAPPAPPUI_H
+
+//end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_doc.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class implements the application document.
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPDOC_H
+#define C_DEFAULTAPPDOC_H
+
+#include <AknDoc.h>
+
+class CDefaultAppAppUi;
+
+/**
+ *  This class implements the application document.
+ *
+ *  @since Series 60 v5.0
+ */
+class CDefaultAppDocument : public CAknDocument
+    {
+public:
+
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CDefaultAppDocument* NewL(CEikApplication& aApp);
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CDefaultAppDocument* NewLC(CEikApplication& aApp);
+
+// from base class CAknDocument
+    /**
+     * From CAknDocument.
+     * Function to create the AppUi.
+     *
+     * @since S60 v5.0
+     * @return the created AppUi instance
+     */
+    CEikAppUi* CreateAppUiL();
+
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppDocument(CEikApplication& aApp);
+public:
+    /**
+     * Pointer to the AppUi
+     * Not owned
+     */
+    CDefaultAppAppUi* iDefaultAppUi; //not owned
+    };
+
+#endif      // C_DEFAULTAPPDOC_H
+
+// End of File
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_gsentries.rh	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Resource headers for project das_server
+*
+*/
+
+
+#ifndef DAS_GSENTRIES_RH
+#define DAS_GSENTRIES_RH
+
+// ---------------------------------------------------------------------------
+// New structure to describe a Service & MIME pair
+// ---------------------------------------------------------------------------
+//
+STRUCT DAS_SERVICE_MIME
+    {
+    LONG service_uid;
+    LTEXT8 mime;
+    }
+
+// ---------------------------------------------------------------------------
+// New structure to describe a Task.
+// A Task has a name, a MIME label and a list of associated Service & MIMEs pairs.
+// ---------------------------------------------------------------------------
+//
+STRUCT DAS_GS_TASK_ENTRY
+    {
+    LTEXT task_name;
+    
+    //task title
+    LTEXT task_title;         
+
+    // The main service and MIME give the default application for the task. 
+    // The default application for the task is registered as default for the main MIME and Service
+    // The default application for the task does not necessarily have to support the main MIME and Service
+    // ()
+    LTEXT8 mime_label;
+    
+    //other pairs that 
+    STRUCT service_mimes[]; //Type is DAS_SERVICE_MIME
+    }
+
+// ---------------------------------------------------------------------------
+// New structure to describe a list of Tasks
+// ---------------------------------------------------------------------------
+//
+STRUCT DAS_GS_TASKS
+    {
+    STRUCT tasks[]; //Type is DAS_GS_TASK_ENTRY
+    }
+
+#endif // DAS_GSENTRIES_RH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_server.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  The Default Application server class
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPSERVER_H
+#define C_DEFAULTAPPSERVER_H
+
+#include <AknServerApp.h>
+
+class CDefaultAppApplication;
+
+/**
+ *  This is the main implemetation of DefaultApp server.
+ *
+ *  @since Series 60 v5.0
+ */
+class CDefaultAppServer: public CAknAppServer
+    {
+public:  // Constructors and destructor
+
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CDefaultAppServer* NewL(CDefaultAppApplication *aApp);
+    
+// from base class CAknAppServer 
+
+    /**
+     * From CAknAppServer
+     * Creates a service for the specified service Uid
+     *
+     * @since S60 v5.0
+     * @param aServiceType the service type Uid
+     * @return the created service 
+     */   
+    CApaAppServiceBase* CreateServiceL(TUid aServiceType) const;
+
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppServer(CDefaultAppApplication *aApp);
+
+public:
+    /**
+     * pointer to the application. After the client connects, the server side needs to announce the AppUi class, to
+     * continue the construction
+     * Not owned.
+     */
+    CDefaultAppApplication* iApp; //Not owned        
+    };
+
+#endif      // C_DEFAULTAPPSERVER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_service.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,122 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  The Default App Service implementation (server-side)
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPSERVICE_H
+#define C_DEFAULTAPPSERVICE_H
+
+#include <AknServerApp.h>
+
+class CDefaultAppServer;
+
+/**
+ *  This class implements the Default Application server-side service.
+ *
+ *  @since Series 60 v5.0
+ */
+class CDefaultAppService : public CAknAppServiceBase
+    {
+public:
+    enum TIpcMessageIds
+        {
+        ESetDefaultAll = RApaAppServiceBase::KServiceCmdBase
+        };
+        
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */    
+    static CDefaultAppService* NewL(const CDefaultAppServer* aServer);
+    
+    /**
+     * Destructor.
+     */
+    virtual ~CDefaultAppService();
+    
+public: // from base class CAknAppServiceBase  
+
+    /**
+     * From CAknAppServiceBase.
+     * function called when a new message is received
+     *
+     * @since S60 v5.0
+     * @param aMessage the received service message
+     */
+    void ServiceL(const RMessage2& aMessage);        
+    
+    /**
+     * From CAknAppServiceBase.
+     * function called to check client credentials. Used to retrieve client app UID
+     *
+     * @since S60 v5.0
+     * @param aMsg the message being received
+     */
+    CPolicyServer::TCustomResult SecurityCheckL(const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
+
+private: //construction
+
+    /**
+     * C++ constructor.
+     */
+    CDefaultAppService(const CDefaultAppServer* aServer);
+    
+    /**
+     * Sets default for all the Service & MIME pairs supported by the client
+     *
+     * @since S60 v5.0
+     * @param aMessage the received service message
+     */
+    void HandleSetDefaultAllL(const RMessage2& aMessage);
+    
+    /**
+     * Function where most of the processing happens.
+     * We use it so that the service request from the client returns immediately
+     *
+     * @since S60 v5.0
+     * @param aInstance a pointer to the calling CDefaultAppService instance  
+     */
+    static TInt IdleWorker(TAny *aInstance);
+    
+public:
+    /**
+     * The Uid of the client application
+     */
+    TUid iClientUid;
+    
+    /**
+     * Service flags requested by the client
+     */
+    TInt iServiceFlags;
+    
+    /**
+     * pointer to the server
+     * Not owned.
+     */
+    const CDefaultAppServer* iDefaultAppServer;  //not owned
+    
+    /**
+     * Active Object where most of the processing happens. We use it so that the service
+     * call returns immediately.
+     * Owned.
+     */
+    CIdle *iIdle;
+    };
+
+#endif      // C_DEFAULTAPPSERVICE_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_servmimeapps.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,533 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Keeps info about Services, MIMEs and Applications
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPSERVMIMEAPPS_H
+#define C_DEFAULTAPPSERVMIMEAPPS_H
+
+class CApaMaskedBitmap;
+class CDefaultAppServMimeApps;
+class CServicesDB;
+class RApaLsSession;
+
+/**  The UID of the General Settings Application */
+const TUid KUidGS = { 0x100058EC }; //we define this here because we use it in several places
+
+/**
+ *  Helper class: stores an Application name, its UID and some other info (how many 
+ *  service&MIMEs pair it supports, is it platform application or not)
+ *  This helper class is used to sort the list of Applications that support a Service&MIME pair
+ *
+ *  @since S60 v5.0
+ */
+class CAppHelper : public CBase
+    {
+public:
+    /**  flags used with the app helper. */
+    enum 
+        {
+        EFlagPlatformApp  =0x0001,
+        EFlagNameNotOwned =0x0002
+        };
+public:
+
+    /**
+     * Destructor.
+     */
+    ~CAppHelper();
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CAppHelper* NewLC(const TDesC& aName, const TInt aUid);
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CAppHelper* NewLC(const CAppHelper& aApp);
+    
+    /**
+     * This function is used for ordering an array of CAppHelper objects
+     *
+     * @since S60 v5.0
+     * @param a1 CAppHelper object
+     * @param a2 CAppHelper object
+     */
+    static TInt OrderApplications(const CAppHelper& a1, const CAppHelper& a2);
+private:
+
+    /**
+     * C++ constructor
+     */
+    CAppHelper(const TInt aUid, const TInt aScore, const TInt aFlags=0);
+public:
+    
+    /**
+     * the App name
+     * Owned or Not Owned, depending on flags (iFlag&EFlagNameNotOwned).
+     */
+    HBufC* iName;
+    
+    /**
+     * the UID of the application
+     */
+    TInt iUid;
+    
+    /**
+     * the application score (how many Services & MIMEs it supports)
+     */
+    TInt iScore;
+    
+    /**
+     * Object flags
+     */
+    TInt iFlags;
+    };
+    
+/**
+ *  Helper class: stores a Service & Mime Pair
+ *
+ *  This class stores data specific to a Service & MIME pair:
+ *  -the Service + MIME string
+ *  -the Service Uid
+ *  -the MIME
+ *  -a list of applications (CAppHelper) that support this Service & MIME pair
+ *  -the list index and Uid of the default application for this Service & MIME pair
+ *
+ *  @since S60 v5.0
+ */
+class CServiceMime : public CBase
+    {
+    friend class CDefaultAppServMimeApps;
+public:
+
+    /**
+     * C++ constructor
+     */
+    CServiceMime();
+    
+    /**
+     * Destructor.
+     */
+    ~CServiceMime();
+    
+    /**
+     * This function is used for ordering an array of CServiceMime objects
+     *
+     * @since S60 v5.0
+     * @param a1 CServiceMime object
+     * @param a2 CServiceMime object
+     */
+    static TInt OrderServiceMimes(const CServiceMime& a1, const CServiceMime& a2);
+    
+private:
+    /**
+     * String that contains the localized Service + MIME name
+     * Owned.
+     */
+    HBufC *iServiceMime;
+    
+    /**
+     * The Uid of the service
+     */
+    TUid  iServiceUid;
+    
+    /**
+     * the MIME string
+     * Owned.
+     */
+    HBufC8 *iMime;
+    
+    /**
+     * list of applications that support this Service & MIME pair
+     * Owned (members of the array).
+     */
+    RPointerArray<CAppHelper> iApplications;
+    
+    /**
+     * the UID of the default application for this Service & MIME
+     */
+    TUid iDefaultAppUid;
+    
+    /**
+     * the list index for the default application
+     * this has the following special values:
+     *  -1 : the default is (yet) unknown
+     *  -2 : there is a single app in the list, its priority is System 
+     *       (this means: do not add other apps unless they have system priority)
+     *  -3 : there are more than one applications in the list, ALL have the System priority 
+     *       (this also means: do not add other apps unless they have system priority)
+     */
+    TInt iDefaultApp;
+    
+    /**
+     * indicates if the Service & MIME pair instance is used by a task or not 
+     */
+    TBool iUsedByTasks;
+    };
+    
+    
+/**
+ *  Helper class: stores a Task
+ *
+ *  This class stores data specific to a Task:
+ *  -the task caption/title (list layout and title layout)
+ *  -the lists of Service (UIDs) & MIMEs associated with this task
+ *  -the MIME label 
+ *  -a list of Services & MIMEs objects (and their associated application list) that correspond to the list 
+ *   of Services & MIMEs associated with the task
+ *  -a list of applications (CAppHelper) that are associated with this task
+ *  -the UID and list index of the default application for the task, in the list(s) above.
+ *
+ *  How this works:
+ *  The Service & MIME pairs associated with the task are those pairs for which changing the default application for the
+ *  task will have an impact: the new default becomes the default application for all these pairs, if applicable.
+ *  The list of candidate default applications is build from the Service & MIME pairs associated with the task: any
+ *  application that can handle at least one pair, is added to the list. The score corresponds to the number of pairs an 
+ *  application is able to handle (the better the score, the more suitable the application is for the task).
+ *  When a new application is made default, it is also made default for Open + the MIME label. This way we can retrieve
+ *  the default application for the task, to display it to the user.
+ *  The list of Services & MIME objects are instances of CServiceMime that correspond to the list of Services & MIMEs that
+ *  are associated with the task (the associated Services & MIMEs is a "theoretical" list, while the CServiceMime list
+ *  is a list of Services & MIMEs that were found in the system. The Services & MIMEs in this object list is a subset of
+ *  the associated Services & MIMEs. The reunion of all Applications lists associated with each CServiceMime object in the
+ *  list is going to be same as the list of Applications that are associated with the Task.
+ *  When a new default application is selected for the task, this new default is saved in 2 ways:
+ *  -the new default application is made default for the Open service and the MIME label. This way, we can retrieve next
+ *   time the default application for the task. There is no danger to launch this default for opening the MIME label, since
+ *   no application is supposed to support the MIME label.
+ *  -the new default application is made default for all the Services & MIMEs associated with the task: for each instance
+ *   of CServiceMime in the list, the default is looked in the application list of the object: if it is found (which means 
+ *   that the new default application supports that Service & MIME), then the new task default is made default for the
+ *   current Service & MIME too.
+ *
+ *  @since S60 v5.0
+ */
+class CMediaTask : public CBase
+    {
+    friend class CDefaultAppServMimeApps;
+public:
+
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CMediaTask* NewLC( TResourceReader& aReader );
+    
+    /**
+     * Destructor.
+     */
+    ~CMediaTask();
+private:
+    
+    /**
+     * C++ constructor
+     */
+    CMediaTask();
+    
+    /**
+     * Symbian constructor
+     */
+    void ConstructL( TResourceReader& aReader );
+private:
+    /**
+     * Task caption, list layout
+     * Owned.
+     */
+    HBufC *iTaskList;
+
+    /**
+     * Task caption, title layout
+     * Owned.
+     */
+    HBufC *iTaskTitle;
+    
+    /**
+     * List of MIMEs associated with the task
+     * Owned (members of the array).
+     */
+    RPointerArray<HBufC8> iMimes;
+    
+    /**
+     * List of services associated with the task (1 to 1 correspondence with iMimes, they form pairs together) 
+     */
+    RArray<TInt> iServicesUids;
+    
+    /**
+     * the MIME label
+     * Owned.
+     */
+    HBufC8 *iMimeLabel;
+    
+    /**
+     * the list of real/discovered CServiceMime associated with the task
+     * Not Owned (members of the array).
+     */
+    RPointerArray<CServiceMime> iSMs; //not owned
+    
+    /**
+     * Application captions for the applications associated with the task
+     * Owned (members of the array).
+     * Application names NOT owned (names are owned by CServiceMime objects)
+     */
+    RPointerArray<CAppHelper> iApplications;
+    
+    /**
+     * The UID of the default application for the task
+     */
+    TUid iDefaultAppUid; //the Uid for the default application
+    
+    /**
+     * the index (in the application list) of the default application for the task
+     */
+    TInt iDefaultApp; //index
+    
+    };    
+
+
+/**
+ *  Engine class for the application
+ *
+ *  This class stores a list of Services and MIMEs and it may store a list of Tasks. All data handling operations
+ *  are implemented in this class.
+ *  There are 2 types of clients for the Default App Server:
+ *   1. General Settings Application (using a plugin). For this type of client we have to display first a list of tasks,
+ *      and if the user switches to the advanced view, we have to display a list of all Services & MIMEs in the system
+ *      for which the user can change the default application.
+ *   2. Normal applications may also be clients for the Default APp Server. For normal applications, only a list of Services
+ *      and MIMEs for which the cliet application is a default candidate is displayed. The task list is not constructed.
+ *  When the class is instantiated, it looks in the system (AppArc) and it builds all the data structures it needs. After
+ *  that, it can populate various lists for displaying them to the user, and can also change the default application, as 
+ *  instructed by the user (AppUi calls the functions).
+ *
+ *  @since S60 v5.0
+ */
+class CDefaultAppServMimeApps : public CBase
+    {
+public:
+    /**  flags used with the Set Default service. They influence what data is stored in the data structures. */
+    enum 
+        {
+        EFlagNoObserver=1,
+        //R&D values
+        EFlagShowAllServicesAndMimes    = 0x00010000,
+        EFlagGsClient                   = 0x00020000,
+        };
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CDefaultAppServMimeApps* NewL(const TUid& aAppUid, TInt aServiceFlags);
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CDefaultAppServMimeApps* NewLC(const TUid& aAppUid, TInt aServiceFlags);
+
+    /**
+     * Destructor.
+     */
+    virtual ~CDefaultAppServMimeApps();
+
+    /**
+     * This function fills with entries a data structure used by a List Box to display Services & MIMEs or Tasks
+     *
+     * @since S60 v5.0
+     * @param aServicesAndMimes the container for the list entries
+     */
+    void GetServicesAndMimesListL(CDesCArray& aServicesAndMimesArray);
+    
+    /**
+     * This function fills a Popup-list data structure with applications specific to the selected Service & MIME or Task
+     *
+     * @since S60 v5.0
+     * @param aIndex the index of the selected Service & MIME pair or Task
+     * @param aApplicationsArray the container for the list entries
+     * @param aTitle a container for the title of the list (also filled by the function)
+     */
+    void GetApplicationsListL(TInt aIndex, CDesCArray& aApplicationsArray, HBufC*& aTitle);
+    
+    /**
+     * This function sets a new default, for a Service & MIME pair or for a Task.
+     * The function also updates the list of Services & MIMEs (or Tasks), to display the new default application
+     *
+     * @since S60 v5.0
+     * @param aServiceAndMimeIndex the index of the selected Service or Mime (or Task)
+     * @param aDefaultAppIndex the index of the new default application
+     * @param aServicesAndMimesArray the container for the list entries (to be updated)
+     */
+    void UpdateDefaultL(TInt aServiceAndMimeIndex, TInt aDefaultAppIndex, CDesCArray *aServicesAndMimesArray);
+    
+    /**
+     * This function resets (removes) the defaults associated with a certain task, 
+     * or it can remove all the defaults
+     *
+     * @since S60 v5.0
+     * @param aCathegory specifies the task index for which the function should reset 
+     *                   the default, or -1 if all defaults should be reset
+     * @return 0 or error code (KErrArgument -> aCathegory has an invalid value)
+     */
+    TInt RestoreFactorySettingsL(TInt aCathegory);
+    
+private:  //construction
+
+    /**
+     * C++ constructor
+     */
+    CDefaultAppServMimeApps();
+
+    /**
+     * This function builds the info database behind this class.
+     * For all available services in the resources it creats the corresponding
+     * Services & MIMEs (or Tasks) instances.
+     *
+     * @since S60 v5.0
+     * @param aAppUid the Uid of the client application
+     * @param aServiceFlags different service flags requested by the client
+     */
+    void ConstructL(TUid aAppUid, TInt aServiceFlags);
+    
+    /**
+     * This function builds part the info database behind this class.
+     * It creates the Services & MIMEs (or Tasks) instances for the given service
+     *
+     * @since S60 v5.0
+     * @param aServiceUid the Uid of the current service
+     * @param aServiceIndex the index of the current service
+     * @param aServiceFlags different service flags requested by the client
+     * @param aServicesDb pointer to an instance that holds localized service names
+     */
+    void AddMIMEsForServiceL(TUid aServiceUid, TInt aServiceIndex, TInt aServiceFlags, CServicesDB* aServicesDb);
+    
+    /**
+     * This function sorts the Services & MIMEs and their applications. 
+     * It also sorts the Serivces & MIMEs associated with tasks
+     *
+     * @since S60 v5.0
+     */
+    void BeautifyAndSortServMimeApps(void);
+
+    /**
+     * This function reads from the resource file the list of tasks (and associated data). 
+     * This function is used during construction
+     *
+     * @since S60 v5.0
+     * @param aResourceId the resource id corresponding to the tasks resource
+     */
+    void GetTaskListL( TInt aResourceId );
+    
+    /**
+     * This function adds a new Application to a list of an Service & Mime object.
+     *
+     * @since S60 v5.0
+     * @param aServMime the Service & Mime object
+     * @param aAppUid the uid of the inserted application
+     * @param aPrio the priority of the inserted application for the Service & MIME of the host object
+     * @param aLs pointer to a RApaLsSession object (so we do not need to create a new connection)
+     */
+    void InsertApplicationL(CServiceMime& aServMime, const TUid& aAppUid, const TDataTypePriority& aPrio, const RApaLsSession *aLs);
+    
+    /**
+     * This function takes a task and a Service & MIME object. It checks all the applications that support the given
+     * Service & MIME object (from its list). If an application is not in the task's application list, this function adds 
+     * it there, with a score of 1. If the application is already in the list, then its score is incremented.
+     * The Service & MIME object is also marked as being used by a task.
+     *
+     * @since S60 v5.0
+     * @param aTask the selected task
+     * @param aServMime the selected Service & MIME object
+     */
+    void PopulateTaskWithApplicationsL(CMediaTask& aTask, CServiceMime* aServMime);
+    
+    /**
+     * This function creates a string that will become en element of a list box. To create the string, the function
+     * concatenates several sub-strings.
+     *
+     * @since S60 v5.0
+     * @param aServMime the selected Service & MIME object
+     * @param aInsertDefaultApp if TRUE, creates an object that also contains the name of the default application for the
+     *        Service & MIME pair
+     * @return the created string
+     */
+    HBufC* GetServiceAndMimeStringLC(CServiceMime& aServMime, TBool aInsertDefaultApp) const;
+    
+    /**
+     * This function creates a string that will become en element of a list box. To create the string, the function
+     * concatenates several sub-strings.
+     *
+     * @since S60 v5.0
+     * @param aMediaTask the selected Task object
+     * @param aInsertDefaultApp if TRUE, creates an object that also contains the name of the default application for the
+     *        Service & MIME pair
+     * @return the created string
+     */
+    HBufC* GetMediaTaskStringLC(CMediaTask& aMediaTask, TBool aInsertDefaultApp) const;
+
+private:  //data
+    
+    /**
+     * The list of Services & MIMEs
+     * Owned (members of the array).
+     */
+    RPointerArray<CServiceMime> iServMimes;
+    
+    /**
+     * The list of Tasks
+     * Owned (members of the array).
+     */
+    RPointerArray<CMediaTask> iTasks;
+    
+    /**
+     * The list of Services & MIMEs that are used by tasks (but otherwise would have been deleted, since they are not 
+     * displayed to the user, because there is no more than one default candidate for each Service & MIME in this list)
+     * Owned (members of the array).
+     */
+    RPointerArray<CServiceMime> iTaskServMimes; //ServMimes with a single application, used in tasks
+    
+public:
+
+    /**
+     * the list of elements, ar required by the dialog
+     */
+    CDesCArraySeg iList;
+
+    /**
+     * the UID of the client application
+     */
+    TUid iAppUid;
+    
+    /**
+     * TRUE if the current view is the GS simplified view (if this var is TRUE, it also implies that GS is our client)
+     */
+    TBool iSimplifiedView;
+    
+    /**
+     * if TRUE, the client application does not observe our exit. In this case do not display "Exit" in the menu, since 
+     * the client application will not exit when the server exits.
+     */
+    TBool iFlagNoObserver;
+    };
+
+
+#endif // C_DEFAULTAPPSRVMIMEVIEW_H
+
+// end of file
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_srvmime_dlg.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,197 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  The Service & MIME list dlg
+*
+*/
+
+
+#ifndef C_DEFAULTAPPSRVMIMEDLG_H
+#define C_DEFAULTAPPSRVMIMEDLG_H
+
+
+#include <badesca.h> // CDesCArray
+#include <coecntrl.h> // CCoeControl
+#include <eiklbo.h> // MEikListBoxObserver
+
+
+#include <aknselectionlist.h> 
+#include <aknsettingitemlist.h> 
+
+// FORWARD DECLARATIONS
+class CAknDoubleStyleListBox;
+class CDefaultAppAppUi;
+//class CDefaultAppServMimeApps;
+
+/**
+ *  This is the Dialog class of the application
+ *
+ *  This dialog displays a double list box and it can also display a pop-up list on top of it.
+ *  The elements of the lists are created by the engine (CDefaultAppServMimeApps class)
+ *
+ *  @since S60 v5.0
+ */
+class CDefaultAppSrvMimeDlg : public CAknSelectionListDialog, 
+                              public MListBoxItemChangeObserver
+    {
+public:
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    static CDefaultAppSrvMimeDlg* NewL(CDefaultAppAppUi* aAppUi);
+    
+    /**
+     * Destructor.
+     */
+    virtual ~CDefaultAppSrvMimeDlg();
+    
+public: //from CAknSelectionListDialog
+    
+    /**
+     * From CAknSelectionListDialog.
+     * This function is called when buttons/softkeys are pressed, to check if the dlg should exit.
+     * We always return EFalse, since this is a modeless & nonwaiting dialog.
+     *
+     * @since S60 v5.0
+     * @param aButtonId the list box for which the event happened
+     */
+    virtual TBool OkToExitL(TInt aButtonId);
+    
+    /**
+     * From CAknSelectionListDialog.
+     * This function is called when a command is issued by the user.
+     *
+     * @since S60 v5.0
+     * @param aCommandId the list box for which the event happened
+     */
+    virtual void ProcessCommandL(TInt aCommand);
+    
+    /**
+     * From CAknSelectionListDialog.
+     * This function is called during the construction of the dialog.
+     * We build the list of elements here.
+     *
+     * @since S60 v5.0
+     */
+    virtual void PreLayoutDynInitL();
+    
+
+public: //from CAknDialog
+    
+    /**
+     * From CAknDialog.
+     * This function is called to complete the menu construction.
+     *
+     * @since S60 v5.0
+     * @param aResourceId the resource id
+     * @param aMenuPane the menu class instance
+     */
+    virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+    
+public: //from CCoeControl
+
+    /**
+     * From CCoeControl.
+     * This function is called to get the help context
+     *
+     * @since S60 v5.0
+     * @param aContext recipient for the help context
+     */
+    virtual void GetHelpContext(TCoeHelpContext& aContext) const;
+    
+    /**
+     * From CCoeControl.
+     * Called by the framework when the view size is changed
+     *
+     * @since S60 v5.0
+     */
+    virtual void SizeChanged();
+    
+    /**
+     * From CCoeControl.
+     * Called by the framework to process the key event
+     *
+     * @since S60 v5.0
+     */
+    virtual TKeyResponse OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType);
+    
+    
+public: //own functions
+
+    /**
+     * Enables marquee for the list elements.
+     *
+     * @since S60 v5.0
+     */
+    void EnableMarqueeL();
+    
+    
+    /**
+     * Part of the popup menu construction process: 
+     * gets 2 icons, the selected (ticked) and empty icon
+     *
+     * @since S60 v5.0
+     * @return an array with the 2 icons
+     */
+    CArrayPtr<CGulIcon>* GetPopupListIconsL() const;
+    
+    /**
+     * Creates a pop-up list for a selected item of the list-box.
+     *
+     * @since S60 v5.0
+     * @param aSelectedIndex the selected element (used to get the content of the pop-up list)
+     */
+    void OpenMenuForSelectedServiceAndMimeL(TInt aSelectedIndex);    
+public:
+    //from MListBoxItemChangeObserver
+    void ListBoxItemsChanged(CEikListBox* aListBox);
+    
+private: //construction
+
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppSrvMimeDlg(CDefaultAppAppUi* aAppUi, TInt *aSelected);
+
+private: //data    
+    /**
+     * Pointer to the AppUi
+     * Not Owned.
+     */
+    CDefaultAppAppUi* iDefaultAppUi;
+    
+    /**
+     * The index of the selected element in the list. This is pointer to AppUI's index
+     * Not owned.
+     */
+    TInt *iSelected;
+    
+    /**
+     * Flag allowing to exit the dialog
+     */
+    TBool iOkToExit;
+
+    /**
+     * Pointer refer to CAknPopupList
+     */
+    CAknPopupList* iPopupList;
+    };
+    
+
+#endif // C_DEFAULTAPPSRVMIMEDLG_H
+
+// end of file
+
+    
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/inc/das_view.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Standard View
+*
+*/
+
+
+#ifndef C_DEFAULTAPPVIEW_H
+#define C_DEFAULTAPPVIEW_H
+
+#include <coecntrl.h> // CCoeControl
+
+
+// FORWARD DECLARATIONS
+class CDefaultAppAppUi;
+
+
+class CDefaultAppView : public CCoeControl
+    {
+    public: // New methods
+
+        /**
+        * NewL.
+        * Two-phased constructor.
+        * Create a CDefaultAppView object, which will draw itself to aRect.
+        * @param aRect The rectangle this view will be drawn to.
+        * @return a pointer to the created instance of CDefaultAppView.
+        */
+        static CDefaultAppView* NewL( const TRect& aRect );
+
+        /**
+        * NewLC.
+        * Two-phased constructor.
+        * Create a CDefaultAppView object, which will draw itself
+        * to aRect.
+        * @param aRect Rectangle this view will be drawn to.
+        * @return A pointer to the created instance of CDefaultAppView.
+        */
+        static CDefaultAppView* NewLC( const TRect& aRect );
+
+        /**
+        * CDefaultAppView
+        * Virtual Destructor.
+        */
+        virtual ~CDefaultAppView();
+
+    public:  // Functions from base classes
+
+        /**
+        * From CCoeControl, Draw
+        * Draw this CDefaultAppView to the screen.
+        * @param aRect the rectangle of this view that needs updating
+        */
+        void Draw( const TRect& aRect ) const;
+
+        /**
+        * From CoeControl, SizeChanged.
+        * Called by framework when the view size is changed.
+        */
+        virtual void SizeChanged();
+
+    private: // Constructors
+
+        /**
+        * ConstructL
+        * @param aRect The rectangle this view will be drawn to.
+        */
+        void ConstructL(const TRect& aRect);
+
+        /**
+        * C++ default constructor.
+        */
+        CDefaultAppView();
+
+    };
+
+#endif // C_DEFAULTAPPVIEW_H
+
+// end of file
+
+    
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/loc/defaultappserver.loc	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,139 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Default App Server
+*
+*/
+
+
+/************* All views *********************/
+
+// d:Menu string (cascade), resets settings defaults to original/factory values
+// l:list_single_pane_t1_cp2/opt3
+// r:5.0
+//
+#define qtn_da_options_reset "Original settings"
+
+// d:Sub-menu string, resets selected item to original/factory value
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+//
+#define qtn_da_options_reset_selected "Restore default application"
+
+// d:Sub-menu string, resets all defaults to original/factory values
+// l:list_single_popup_submenu_pane_t1
+// r:5.0
+//
+#define qtn_da_options_reset_all "For all items"
+
+
+/************* Simplified view *********************/
+
+// d:The title for this view
+// d:It describes a list of applications that are launched by default when the user performs a task that is 
+// d:defined in general terms by the list items (see these items next). Examples of such tasks are:
+// d:"Play Music", "Play Videos", "View Images", "Browse web".
+// l:title_pane_t2/opt9
+// r:5.0
+//
+#define qtn_da_title_main "Default Applications"
+
+// d:Item in a list of tasks
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:list_double_pane_t1_cp2
+// r:5.0
+//
+#define qtn_da_main_view_images "View images"
+
+// d:Same string as before, as a title for a pop-up menu list
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:heading_pane_t1
+// r:5.0
+//
+#define qtn_da_title_popup_image "View images"
+
+// d:Item in a list of tasks
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:list_double_pane_t1_cp2
+// r:5.0
+//
+#define qtn_da_main_play_videos "Play videos"
+
+// d:Same string as before, as a title for a pop-up menu list
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:heading_pane_t1
+// r:5.0
+//
+#define qtn_da_title_popup_video "Play videos"
+
+// d:Item in a list of tasks
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:list_double_pane_t1_cp2
+// r:5.0
+//
+#define qtn_da_main_play_music "Play music"
+
+// d:Same string as before, as a title for a pop-up menu list
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:heading_pane_t1
+// r:5.0
+//
+#define qtn_da_title_popup_music "Play music"
+
+// d:Item in a list of tasks
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:list_double_pane_t1_cp2
+// r:5.0
+//
+#define qtn_da_main_browse "Browse web"
+
+// d:Same string as before, as a title for a pop-up menu list
+// d:It describes a task (in general terms) that will be performed by a selected application.
+// l:heading_pane_t1
+// r:5.0
+//
+#define qtn_da_title_popup_browse "Browse web"
+
+
+/************* Advanced view *********************/
+
+// d:The title for this view
+// d:It describes a list of applications that are launched by default when the user performs a task
+// d:that is defined quite clear (in engineering terms :-). The task is defined by the Service performed
+// d:on a file that has a certain MIME.  Examples of such tasks are:
+// d:"Open audio/mp3", "Print image/jpeg", "Open application/html", "Edit application/text".
+// d:The service name (Open, Print, Edit in the above examples) is localized, the MIME is not.
+// l:title_pane_t2/opt9
+// r:5.0
+//
+#define qtn_da_title_advanced "Advanced settings"
+
+
+
+
+/************* Application specific settings view *********************/
+// NOTE: This view is very similar with the "Advanced view", just the title is changed
+
+// d:The title for this view (the view is very similar with the "Advanced view", the only difference is that
+// d:in this view, the list is filtered so only the task specific to the client application are displayed).
+// d:The view describes a list of applications that are launched by default when the user performs a task
+// d:that is defined quite clear (in engineering terms :-). The task is defined by the Service performed
+// d:on a file that has a certain MIME.  Examples of such tasks are:
+// d:"Open audio/mp3", "Print image/jpeg", "Open application/html", "Edit application/text".
+// d:The service name (Open, Print, Edit in the above examples) is localized, the MIME is not.
+
+// l:title_pane_t2/opt9
+// r:5.0
+//
+#define qtn_da_title_app "Default Applications"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/loc/services_db.loc	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Services DB
+*
+*/
+
+
+
+/************* Service + MIMEs *********************/
+
+/* Examples of MIMEs:
+   -audio/mpeg
+   -video/3gpp
+   -image/jpeg
+ */
+
+
+
+// d:This is the name of a Service (it should be short)
+// d:The parameter is a MIME (non-localizable text). String is scrollable.
+// d:This is the default service, it opens a file with an application
+// l:None
+// r:5.0
+//
+#define qtn_da_service_open "Open %U"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Executable module to start the process and load the DefaultAppServer.
+*
+*/
+
+
+#include <e32base.h>
+#include "das_app.h"
+#include <eikstart.h>
+
+// ---------------------------------------------------------------------------
+// NewApplication()
+// constructs CDefaultAppApplication
+// Returns: CApaDocument*: created application object
+//
+// ---------------------------------------------------------------------------
+LOCAL_C CApaApplication* NewApplication()
+    {
+    return new CDefaultAppApplication;
+    }
+
+// ---------------------------------------------------------------------------
+// E32Main()
+//
+// ---------------------------------------------------------------------------
+GLDEF_C TInt E32Main()
+    {
+    return EikStart::RunApplication(NewApplication);
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_app.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This is the main application implementation of default app server.
+*
+*/
+
+
+#include "das_app.h"
+#include "das_doc.h"
+#include "das_server.h"
+
+// ---------------------------------------------------------------------------
+// Return the UID for the CSoundApplication application
+// ---------------------------------------------------------------------------
+//
+TUid CDefaultAppApplication::AppDllUid() const
+    {
+    return KUidDefaultAppServer;
+    }
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppApplication::CDefaultAppApplication(void) : iDocument(NULL), iServer(NULL)
+    {}
+    
+// ---------------------------------------------------------------------------
+// Create an CDefaultAppDocument document, and return a pointer to it
+// ---------------------------------------------------------------------------
+//
+CApaDocument* CDefaultAppApplication::CreateDocumentL()
+    {
+    iDocument = CDefaultAppDocument::NewL(*this);
+    return (static_cast<CApaDocument*>(iDocument));
+    }
+
+// ---------------------------------------------------------------------------
+// Simple function to return a server object
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppApplication::NewAppServerL(CApaAppServer*& aAppServer)
+    {
+    aAppServer = iServer = CDefaultAppServer::NewL(this);
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_appui.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This is the app ui implementation of default application server.
+*
+*/
+
+
+#include <eikserverapp.h> 
+#include <akncontext.h>
+#include <apgicnfl.h> 
+#include <AknIconArray.h> 
+#include <AknsUtils.h>
+#include <aknlists.h> 
+#include <defaultappserver.rsg> 
+#include "das_appui.h"
+#include "das_view.h"
+#include "das_srvmime_dlg.h"
+#include "das_servmimeapps.h"
+#include "das.hrh"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppAppUi::~CDefaultAppAppUi()
+    {
+    if(iView)
+        delete iView; 
+    if(iServMimeApps)
+        delete iServMimeApps;
+    }
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//    
+CDefaultAppAppUi::CDefaultAppAppUi() : iView(NULL), iDlg(NULL), iExitBack(EFalse)
+    {
+    // No implementation required
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian constructor
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::ConstructL()
+{
+    BaseConstructL(EAknEnableSkin|EAknEnableMSK|EAknSingleClickCompatible);
+    // Create view object
+    iView = CDefaultAppView::NewL( ClientRect() );
+}
+
+// ---------------------------------------------------------------------------
+// Continues the construction, after the client connects to the server and some data is known
+// (client UID and service flags)
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::ConstructSrvMimeDlgL(TUid aClientUid, TInt aServiceFlags)
+{
+    SetClientIconL(aClientUid);
+    iClientUid = aClientUid;
+    iSelectedItemSimple=-1;
+    iSelectedItemAdvanced=-1;
+    iReloadDlgAdvanced=(aClientUid==KUidGS?EFalse:ETrue);
+    iReloadDlg=ETrue;
+    do
+    {        
+        if(!iServMimeApps)
+            iServMimeApps=CDefaultAppServMimeApps::NewL(aClientUid, aServiceFlags);
+        	
+        if(iReloadDlgAdvanced)
+        {
+    	    //some settings for the advanced view
+    	    iServMimeApps->iSimplifiedView=EFalse;
+        }
+        else
+        {
+            //some settings for the simple view
+    	    iServMimeApps->iSimplifiedView=ETrue;
+        };
+        iServMimeApps->GetServicesAndMimesListL(iServMimeApps->iList);
+        
+        iDlg=CDefaultAppSrvMimeDlg::NewL(this);
+        SetDialogExist( ETrue );
+        iDlg->SetMopParent(this);
+        iDlg->ExecuteLD(R_DAS_DLG);
+        iDlg=NULL;
+    }
+    while(iReloadDlg);
+    
+    
+    //exit the server
+    if(iExitBack)
+    {
+        //if we exit by "Back" button, notify the client app, so that it does not exit.
+        CEikAppServer* server = iEikonEnv->AppServer(); //if we do not do this, the client exits when backkey is pressed
+        if ( server )
+        {
+            server->NotifyServerExit( EAknSoftkeyBack );
+        }
+    };
+    //exit this application
+    RunAppShutter();
+}
+
+// ---------------------------------------------------------------------------
+// From class CAknAppUi.
+// handle menu command
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::HandleCommandL(TInt aCommand)
+    {
+    switch (aCommand)
+        {
+    case EAknSoftkeyExit:
+        __ASSERT_ALWAYS(0,User::Leave(KErrGeneral));
+        break;
+    case EEikCmdExit:
+    
+        Exit();
+        break;
+    //no need for default. We may also have other commands that we do not handle here.
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// imports and displays the icon of the client application.
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::SetClientIconL(TUid aClietAppUid)
+    {
+    CEikStatusPane *statusPane=StatusPane();
+    TUid contextPaneUid=TUid::Uid(EEikStatusPaneUidContext);
+    if(statusPane && statusPane->PaneCapabilities(contextPaneUid).IsPresent())
+        {
+        CAknContextPane *contextPane=(CAknContextPane*)(statusPane->ControlL(contextPaneUid)); //we don't get the ownership
+        MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); //we don't get the ownership
+        
+        CFbsBitmap* iconBmp = NULL;
+        CFbsBitmap* iconBmpMask = NULL;
+    
+        AknsUtils::CreateAppIconLC(skinInstance,aClietAppUid,EAknsAppIconTypeContext,
+                                       iconBmp,iconBmpMask);
+        CleanupStack::Pop(2);//the 2 icons
+        
+        contextPane->SetPicture(iconBmp,iconBmpMask);// ownership transfer for the 2 pictures
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// Handles layout changes (e.g. from portrait to landscape)
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::HandleResourceChangeL(TInt aType)
+    {
+     CAknAppUi::HandleResourceChangeL( aType );
+     
+     if(iView)
+     iView->HandleResourceChange(aType);
+     if( iDlg && iDialogExist )
+     iDlg->HandleResourceChange(aType);
+        
+     if ( aType == KEikDynamicLayoutVariantSwitch )
+         {
+         if( iView )
+         iView->SetRect(ClientRect());
+         if( iDlg && iDialogExist )
+         iDlg->SetRect(ClientRect());
+         }
+    }
+
+// ---------------------------------------------------------------------------
+// Handles Window Server events (we are interested in catching the end key event 
+// and exiting the application
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::HandleWsEventL(const TWsEvent & aEvent, CCoeControl * aDestination)
+    {
+     CAknAppUi::HandleWsEventL(aEvent,aDestination);
+    }
+
+// ---------------------------------------------------------------------------
+// This functino is used to record the exist of the dialog; 
+// and exiting the application
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppAppUi::SetDialogExist( TBool aExist )
+    {
+    iDialogExist = aExist;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_doc.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of the document class
+*
+*/
+
+
+
+#include "das_doc.h"
+#include "das_appui.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppDocument* CDefaultAppDocument::NewL(CEikApplication& aApp)
+    {
+    CDefaultAppDocument* self = NewLC(aApp);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppDocument* CDefaultAppDocument::NewLC(CEikApplication& aApp)
+    {
+    CDefaultAppDocument* self = new (ELeave) CDefaultAppDocument(aApp);
+    CleanupStack::PushL(self);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppDocument::CDefaultAppDocument(CEikApplication& aApp) : CAknDocument(aApp), iDefaultAppUi(NULL)
+    {
+    // No implementation required
+    }
+
+// ---------------------------------------------------------------------------
+// Instantiates CDefaultAppAppUi
+// ---------------------------------------------------------------------------
+//
+CEikAppUi* CDefaultAppDocument::CreateAppUiL()
+    {
+    iAppUi = iDefaultAppUi = new (ELeave) CDefaultAppAppUi;
+    return (static_cast<CEikAppUi*>(iAppUi));
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_server.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of the server class
+*
+*/
+
+
+
+#include <eikstart.h>  //for RDebug
+
+#include "das_server.h"
+#include "das_service.h"
+#include "das_app.h"
+
+const TUid KDefaultAppServiceUid = { 0x10281B9D };
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppServer* CDefaultAppServer::NewL(CDefaultAppApplication* aApp)
+    {
+    CDefaultAppServer* self = new (ELeave) CDefaultAppServer(aApp);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppServer::CDefaultAppServer(CDefaultAppApplication* aApp) : iApp(aApp)
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAknAppServer.
+// Creates a service for the specified service Uid
+// ---------------------------------------------------------------------------
+//
+CApaAppServiceBase* CDefaultAppServer::CreateServiceL(TUid aServiceType) const
+    {
+    RDebug::Print(_L("CDefaultAppServer::CreateServiceL"));
+    if (aServiceType == KDefaultAppServiceUid)
+        return CDefaultAppService::NewL(this);
+    else
+        return CAknAppServer::CreateServiceL(aServiceType);
+    }
+        
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_service.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of the DefaultApp service
+*
+*/
+
+
+//#include <eikstart.h> //for RDebug
+#include "das_server.h"
+#include "das_service.h"
+#include "das_app.h"
+#include "das_doc.h"
+#include "das_appui.h"
+#include "das_servmimeapps.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppService::CDefaultAppService(const CDefaultAppServer* aServer) : iDefaultAppServer(aServer)
+    {
+    iClientUid=TUid::Uid(0);
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CDefaultAppService::~CDefaultAppService()
+    {
+    delete iIdle;
+    }
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+//    
+CDefaultAppService* CDefaultAppService::NewL(const CDefaultAppServer* aServer)
+    {
+    CDefaultAppService* self = new (ELeave) CDefaultAppService(aServer);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAknAppServiceBase.
+// function called when a new message is received
+// ---------------------------------------------------------------------------
+//            
+void CDefaultAppService::ServiceL(const RMessage2& aMessage)
+    {
+    switch (aMessage.Function())
+        {
+        case ESetDefaultAll : 
+            HandleSetDefaultAllL(aMessage);
+            break;        
+        default:
+            CAknAppServiceBase::ServiceL(aMessage);
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAknAppServiceBase.
+// function called to check client credentials. Used to retrieve client app UID
+// ---------------------------------------------------------------------------
+//
+CPolicyServer::TCustomResult CDefaultAppService::SecurityCheckL(const RMessage2& aMsg, TInt& /*aAction*/, TSecurityInfo& /*aMissing*/)
+    {
+    iClientUid=aMsg.SecureId();
+    return CPolicyServer::EPass;
+    }        
+
+// ---------------------------------------------------------------------------
+// Sets default for all the Service & MIME pairs supported by the client
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppService::HandleSetDefaultAllL(const RMessage2& aMessage)
+    {
+    //Get flags
+    //TInt serviceFlags=aMessage.Int0();
+    iServiceFlags=aMessage.Int0();
+    aMessage.Complete(KErrNone);
+    
+	if(!iIdle)
+	    {
+		iIdle=CIdle::NewL(CActive::EPriorityStandard);
+	    TCallBack cb(&IdleWorker,this);
+	    iIdle->Start(cb);
+	    };
+    }
+
+// ---------------------------------------------------------------------------
+// Function where most of the processing happens.
+// We use it so that the service request from the client returns immediately
+// ---------------------------------------------------------------------------
+//
+TInt CDefaultAppService::IdleWorker(TAny *aInstance)
+	{
+	CDefaultAppService *service=(CDefaultAppService*)aInstance;
+	//construct the view
+	if ( service->iDefaultAppServer && 
+		 service->iDefaultAppServer->iApp &&
+		 service->iDefaultAppServer->iApp->iDocument &&
+		 service->iDefaultAppServer->iApp->iDocument->iDefaultAppUi)
+	    {
+	    service->iDefaultAppServer->iApp->iDocument->iDefaultAppUi->ConstructSrvMimeDlgL(service->iClientUid,service->iServiceFlags);
+	    };
+	return 0; //no more work to do
+	}
+
+
+   
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_servmimeapps.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,1073 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Keeps info about Services, MIMEs and Applications
+*
+*/
+
+
+// System includes
+#include <e32def.h> // STATIC_CAST
+#include <defaultappserver.rsg> // R_DAS_SERVICESMIMES_LISTBOX
+#include <StringLoader.h> // StringLoader
+#include <barsread.h> //TResourceRead
+#include <eikenv.h> //CEikonEnv
+#include <apgcli.h>
+#include <apgicnfl.h> // CApaMaskedBitmap
+
+#include <serviceregistry.h>
+
+#include "das_servmimeapps.h"
+#include "das_app.h" // KUidDefaultAppServer
+#include <services_db.h>
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apmstd.h>
+#else
+#include <apmstd.h>
+#include <apmfndr.h> // KDataTypePrioritySystem
+#endif
+
+const TInt KStringMargin = 10; //10 is a sufficiently large margin
+
+// ======== MEMBER FUNCTIONS ======== CAppHelper
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+// 
+CAppHelper* CAppHelper::NewLC(const TDesC& aName, const TInt aUid)
+    {
+    CAppHelper* self = new (ELeave) CAppHelper(aUid,0);
+    CleanupStack::PushL(self);
+    //construct iName, copy it
+    self->iName = HBufC::NewL(aName.Size());
+    TPtr* ptr=new (ELeave) TPtr(self->iName->Des());
+    ptr->Copy(aName);
+    delete ptr;
+    
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+//     
+CAppHelper* CAppHelper::NewLC(const CAppHelper& aApp)
+    {
+    CAppHelper* self = new (ELeave) CAppHelper(aApp.iUid,1,aApp.iFlags);
+    CleanupStack::PushL(self);
+    //construct iName, get pointer and flag it
+    self->iName = aApp.iName;
+    self->iFlags |= EFlagNameNotOwned;
+    return self;
+    }
+ 
+// ---------------------------------------------------------------------------
+// C++ Constructor
+// ---------------------------------------------------------------------------
+//     
+CAppHelper::CAppHelper(const TInt aUid, const TInt aScore, const TInt aFlags):
+    iName(NULL), iUid(aUid), iScore(aScore), iFlags(aFlags)
+    {
+    //no implementation needed
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//    
+CAppHelper::~CAppHelper(void)
+    {
+    if(!( iFlags&EFlagNameNotOwned ))
+        delete iName;
+    iName = NULL;
+    }
+// ---------------------------------------------------------------------------
+// This function is used to order Applications
+// ---------------------------------------------------------------------------
+//  
+TInt CAppHelper::OrderApplications(const CAppHelper& a1, const CAppHelper& a2)
+    {
+    //if a1<a2 return -1, otherwise 0 or 1
+    //platform applications are always first (smaller)
+    if(a1.iFlags&EFlagPlatformApp && !(a2.iFlags&EFlagPlatformApp))
+        return -1; //a1 is platform app, a2 is not
+    if(!(a1.iFlags&EFlagPlatformApp) && a2.iFlags&EFlagPlatformApp)
+        return 1; //a1 is not platform app, a2 is
+    
+    //look into names names
+    if(*a1.iName < *a2.iName) return -1;
+    if(*a1.iName > *a2.iName) return 1;
+    //if we are here, strings were equal
+    return 0;
+    }
+
+    
+// ======== MEMBER FUNCTIONS ======== CServiceMime
+
+// ---------------------------------------------------------------------------
+// C++ Constructor
+// ---------------------------------------------------------------------------
+//     
+CServiceMime::CServiceMime() : iServiceMime(NULL), iMime(NULL)
+    {
+    iDefaultAppUid=TUid::Uid(0);
+    iDefaultApp=-1;//currently we do not know the default index
+    iUsedByTasks=EFalse;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CServiceMime::~CServiceMime()
+    {
+    if (iServiceMime) delete iServiceMime;
+    if (iMime) delete iMime;
+    for (TInt i=0 ; i<iApplications.Count() ; i++)
+        delete iApplications[i];
+    iApplications.Close();
+    }
+    
+// ---------------------------------------------------------------------------
+// This function is used to order Services & MIMEs
+// ---------------------------------------------------------------------------
+//  
+TInt CServiceMime::OrderServiceMimes(const CServiceMime& a1, const CServiceMime& a2)
+    {
+    //if a1<a2 return -1, otherwise 0 or 1
+    //we sort by the MIME, then by the service
+    if(*a1.iMime<*a2.iMime)return -1;
+    if(*a1.iMime>*a2.iMime)return 1;
+    //if we are here, MIMEs are the same
+    if(*a1.iServiceMime<*a2.iServiceMime)return -1;
+    if(*a1.iServiceMime>*a2.iServiceMime)return 1;
+    //if we are here, strings were equal
+    return 0;
+    }
+
+// ======== MEMBER FUNCTIONS ======== CMediaTask
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+// 
+CMediaTask* CMediaTask::NewLC( TResourceReader& aReader )
+    {
+    CMediaTask* self = new (ELeave) CMediaTask();
+    CleanupStack::PushL(self);
+    self->ConstructL(aReader);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//    
+CMediaTask::~CMediaTask()
+    {
+    
+    if(iTaskList)delete iTaskList;
+    if(iTaskTitle)delete iTaskTitle;
+    
+    if(iMimeLabel)delete iMimeLabel;
+    
+    iMimes.ResetAndDestroy();
+    iServicesUids.Close();
+    
+    iSMs.Close();//elements not owned
+    
+    iApplications.ResetAndDestroy();
+    }
+
+// ---------------------------------------------------------------------------
+// C++ Constructor
+// ---------------------------------------------------------------------------
+// 
+CMediaTask::CMediaTask() : iMimeLabel(NULL), iDefaultApp(-1)
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// The construction means reading the task details from the resource file
+// ---------------------------------------------------------------------------
+//    
+void CMediaTask::ConstructL( TResourceReader& aReader )
+    {
+    TInt i,count;
+    //read the task name
+    iTaskList = aReader.ReadHBufCL();
+    if( !iTaskList )User::Leave(KErrArgument);
+    
+    //read the task title
+    iTaskTitle = aReader.ReadHBufCL();
+    if( !iTaskTitle )User::Leave(KErrArgument);
+    
+    //read the mime label
+    iMimeLabel = aReader.ReadHBufC8L();
+    if( !iMimeLabel )User::Leave(KErrArgument);
+    
+    //read the service mimes entries
+    count = aReader.ReadInt16();
+    for (i=0; i<count; i++)
+        {
+        //read the service uid
+        TInt uid=aReader.ReadInt32();
+        if(uid == 0)User::Leave(KErrArgument);
+        //read the mime
+        HBufC8* mime=aReader.ReadHBufC8L();
+        if( !mime )User::Leave(KErrArgument);
+        //append both things
+        iServicesUids.Append(uid);
+        iMimes.Append(mime);//takes ownership
+        }
+    }
+    
+    
+// ======== MEMBER FUNCTIONS ======== CDefaultAppServMimeApps
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+// 
+CDefaultAppServMimeApps* CDefaultAppServMimeApps::NewL(const TUid& aAppUid, TInt aServiceFlags)
+    {
+    CDefaultAppServMimeApps* self = CDefaultAppServMimeApps::NewLC(aAppUid, aServiceFlags);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+// 
+CDefaultAppServMimeApps* CDefaultAppServMimeApps::NewLC(const TUid& aAppUid, TInt aServiceFlags)
+    {
+    CDefaultAppServMimeApps* self = new (ELeave) CDefaultAppServMimeApps();
+    CleanupStack::PushL(self);
+    self->ConstructL(aAppUid, aServiceFlags);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// This function builds the data structures for the dialog:
+// It reads the considered services from the resource files, then it builds the
+// task list and the associated list of Services& MIMEs and applications.
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppServMimeApps::ConstructL(TUid aAppUid, TInt aServiceFlags)
+    {
+    //set the client app uid
+    /* Uncomment this for testing the General Settings (Control Pannel) specific view from another application (R&D purpose)
+     * 
+    TBool flagGsClient = aServiceFlags & EFlagGsClient;
+    if(flagGsClient)aAppUid=KUidGS; //we mimic the GS Client. 
+    */
+    iAppUid = aAppUid;
+    
+    //for all the available services, launch the AddMIMEsForServiceL function
+    TResourceReader reader;
+    CEikonEnv::Static()->CreateResourceReaderLC( reader, R_DA_SERVICE_MIME );
+    CServicesDB* sdb = CServicesDB::NewLC(&reader);
+    TInt i;
+    TUid uid;
+    for(i=0; i<sdb->Count(); i++)
+        {
+        uid = sdb->ServiceUidL(i);
+        AddMIMEsForServiceL(uid,i,aServiceFlags,sdb);
+        };
+    CleanupStack::PopAndDestroy(sdb);
+    CleanupStack::PopAndDestroy( ); // reader
+    //change MIMEs & sort
+    BeautifyAndSortServMimeApps();
+    }
+    
+// ---------------------------------------------------------------------------
+// this is by far the most complicated function in the entire subsystem
+// some more comments are needed, but after this function will be split in 2
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppServMimeApps::AddMIMEsForServiceL(TUid aServiceUid, TInt aServiceIndex, TInt aServiceFlags, CServicesDB* aServicesDb)
+    {
+    CServiceMime *sm = NULL;
+    TUid uid;
+    
+    RApaLsSession ls;
+    TApaAppInfo info;
+    CApaAppServiceInfoArray* serv=NULL;
+    CServiceRegistry *sr=NULL;
+    TInt i,j,k;
+    TInt it,jt;//indexes for iterating inside tasks
+    TInt lowerMarker, upperMarker;
+    //flags
+    TBool flagShowAll = EFalse;
+    /*
+     * Uncomment the line below to show all the Services & MIMEs in views, and not only those for which default app can be changed.
+     * This can be used for R&D, to see all the MIMEs&Services in the system.
+    flagShowAll = aServiceFlags & EFlagShowAllServicesAndMimes;
+     */
+    iFlagNoObserver = aServiceFlags & EFlagNoObserver;
+    
+    //check who is connecting, so that we can set the view
+    if(iAppUid == KUidGS)
+        {
+        iSimplifiedView=ETrue; //at least in the beginning. 
+                               //For this function, this is also a flag that says if we have GS as client or not
+        GetTaskListL(R_DA_TASKS);
+        }
+    else iSimplifiedView=EFalse;
+        
+    //connect
+    User::LeaveIfError( ls.Connect() );
+    CleanupClosePushL( ls );
+    
+    //Get all the apps and MIMEs for the current service
+    ls.GetAppInfo(info,iAppUid);
+    serv=ls.GetServiceImplementationsLC(aServiceUid);
+    lowerMarker = upperMarker = iServMimes.Count();
+    //create entries for the MIMEs supported by the client application
+    for (i=0; i<serv->Array().Count(); i++)
+        {
+        uid=serv->Array()[i].Uid();
+        if( iSimplifiedView || uid == iAppUid) //this means that for app clients, we first skip all the other applications
+            {
+            //if iSimplifiedView is true, then we have GS as a client    
+            for(j=0; j<serv->Array()[i].DataTypes().Count(); j++)
+                {
+                TBool createSM=ETrue;
+                if(iSimplifiedView)
+                    {
+                    //check if we already have an entry for this service & MIME
+                    for(k=lowerMarker; k<upperMarker; k++)
+                        if(iServMimes[k]->iMime->Des() == serv->Array()[i].DataTypes()[j].iDataType.Des8())
+                            {
+                            //we found it!
+                            sm=iServMimes[k];
+                            createSM=EFalse;
+                            break;//we found the sm, no need to search for it any more
+                            }
+                    //if we don't find it, we will create an entry ...
+                    }
+            
+                if(createSM)
+                    {
+                    //we have to create sm, we did not found it previously (or we were not looking for it)
+                    sm=new (ELeave) CServiceMime;
+                    CleanupStack::PushL(sm);
+                    sm->iMime = HBufC8::NewL(serv->Array()[i].DataTypes()[j].iDataType.Des8().Size());
+                    *(sm->iMime) = serv->Array()[i].DataTypes()[j].iDataType.Des8();
+                    //transform the MIME from audio/mpeg to audio mpeg
+                    HBufC *transformedMime=HBufC::NewLC(serv->Array()[i].DataTypes()[j].iDataType.Des().Size());
+                    TPtr *ptr=new (ELeave) TPtr(transformedMime->Des());
+                    CleanupStack::PushL(ptr);
+                    ptr->Copy(serv->Array()[i].DataTypes()[j].iDataType.Des());
+                    TInt location=ptr->Locate('/');
+                    if(location>0)ptr->Replace(location,1,_L(" "));
+                    //transforming done
+                    //sm->iServiceMime = aServicesDb->ServiceStringLC(aServiceIndex, serv->Array()[i].DataTypes()[j].iDataType.Des());
+                    sm->iServiceMime = aServicesDb->ServiceStringLC(aServiceIndex, transformedMime->Des());
+                    CleanupStack::Pop(sm->iServiceMime);
+                    CleanupStack::PopAndDestroy(ptr);
+                    CleanupStack::PopAndDestroy(transformedMime);
+                    //StringLoader::LoadL( R_DA_SERVICE_OPEN, serv->Array()[i].DataTypes()[j].iDataType.Des());
+                    sm->iServiceUid=aServiceUid;
+                    }
+            
+                //insert the client application
+                InsertApplicationL(*sm, uid, serv->Array()[i].DataTypes()[j].iPriority, &ls);
+            
+                //get the Uid of the default application for this service and MIME
+                ls.AppForDataType(serv->Array()[i].DataTypes()[j].iDataType,sm->iDefaultAppUid);
+                
+                if(createSM)
+                    {
+                    //sm was created this iteration, ad it.
+                    iServMimes.AppendL(sm);//takes ownership of sm
+                    upperMarker++;
+                    CleanupStack::Pop(sm);
+                
+                    }
+                }//for
+                /*
+                 * If a service that has no MIME will be considered, some code must be added (probably in this place)
+                 */
+            }//if (
+        
+        }
+    __ASSERT_DEBUG(upperMarker == iServMimes.Count(), User::Panic( _L("upperMarker bad value"), 1));
+    
+    if(sr)
+        {
+        //we do not need it any more
+        delete sr;
+        sr=NULL;
+        }
+    if(lowerMarker == upperMarker)
+        {
+        //current app does not support any MIME for the current service, clean and get out of here
+        CleanupStack::PopAndDestroy(serv);
+        CleanupStack::PopAndDestroy();  // closes RApaLsSession
+        return;
+        }
+        
+    if(!iSimplifiedView)
+        {
+        //if we are here, we have MIMEs for the current service
+        //iterate once more and add applications for MIMEs already in the list
+        for (i=0; i<serv->Array().Count(); i++)
+            {
+            uid=serv->Array()[i].Uid();
+            if( uid == iAppUid) continue; //we don't add our client application once more in the list (it is already there)
+            for(j=0; j<serv->Array()[i].DataTypes().Count(); j++)
+                for(k=lowerMarker; k<upperMarker; k++)
+                    if(iServMimes[k]->iMime->Des() == serv->Array()[i].DataTypes()[j].iDataType.Des8())
+                        {
+                        InsertApplicationL(*(iServMimes[k]), serv->Array()[i].Uid(), serv->Array()[i].DataTypes()[j].iPriority, &ls);
+                        }//if same MIME
+            }
+        }
+        
+    //before deleting some of the entries ...    
+    if(iSimplifiedView)
+        {
+        //check the service & MIMEs against the task list...
+        //first, check the service against task services
+        for(it=0; it<iTasks.Count(); it++)
+            for(jt=0; jt<iTasks[it]->iServicesUids.Count(); jt++)
+                if(aServiceUid.iUid == iTasks[it]->iServicesUids[jt])
+                    {
+                    //lets check if the MIME matches too...
+                    for(k=lowerMarker; k<upperMarker; k++)
+                        if(*iServMimes[k]->iMime == *iTasks[it]->iMimes[jt])
+                            {
+                            //this entry matches an entry in the task list
+                            //add the applications to the list
+                            PopulateTaskWithApplicationsL(*iTasks[it],iServMimes[k]);
+                            //link the sm, if it has more than 1 application
+                            break;//sm found, no need to search for it further
+                            }
+                    }
+        }
+    
+    
+    
+    //iterate from the newly added entries and set the index
+    for(k=lowerMarker; k<upperMarker; k++)
+        {
+        TBool smSetOrRemoved = EFalse;
+        //check for single applications
+        if( iServMimes[k]->iApplications.Count() <2 && !flagShowAll)
+            {
+            //this entry has a single element (that should not be shown)
+            //we either delete it, or move it
+            if(iServMimes[k]->iUsedByTasks)
+                {
+                //the sm is used by tasks, we move it
+                iTaskServMimes.AppendL(iServMimes[k]);//takes ownership of sm
+                }
+            else
+                {
+                //the sm is not used by tasks, we delete it.
+                delete iServMimes[k];
+                }
+            
+            //we remove the entry from the iServMimes (so that it is not shown)
+            iServMimes.Remove(k);
+            k--;
+            upperMarker--;
+            smSetOrRemoved=ETrue;
+            }
+        
+        //set the index
+        if(!smSetOrRemoved)
+            {
+            for(i=0 ; i< iServMimes[k]->iApplications.Count() ; i++)
+                {
+                if(iServMimes[k]->iApplications[i]->iUid == iServMimes[k]->iDefaultAppUid.iUid)
+                    iServMimes[k]->iDefaultApp=i;
+                }
+            }
+        };
+    
+    if(iSimplifiedView)
+    for(it=0; it<iTasks.Count(); it++)
+        if(iTasks[it]->iDefaultAppUid.iUid == 0 && iTasks[it]->iApplications.Count()>0)
+            {
+            //there is no uid, look for the platform App and make it the default
+            for(jt=0; jt<iTasks[it]->iApplications.Count(); jt++)
+                if(iTasks[it]->iApplications[jt]->iFlags & CAppHelper::EFlagPlatformApp)
+                    {
+                    iTasks[it]->iDefaultAppUid.iUid = iTasks[it]->iApplications[jt]->iUid;
+                    iTasks[it]->iDefaultApp=jt;
+                    break;//app found, no need to search for it any longer
+                    };
+                
+            //if no app found, mark the first one as default
+            if(iTasks[it]->iDefaultAppUid.iUid == 0)
+                {
+                iTasks[it]->iDefaultAppUid.iUid = iTasks[it]->iApplications[0]->iUid;
+                iTasks[it]->iDefaultApp = 0;//the index
+                };
+            }
+        else
+            for(jt=0; jt<iTasks[it]->iApplications.Count(); jt++)
+                if(iTasks[it]->iApplications[jt]->iUid == iTasks[it]->iDefaultAppUid.iUid)
+                    {
+                    iTasks[it]->iDefaultApp=jt;
+                    break;//app found, no need to search for it any longer
+                    }
+    
+    //done, destroy serv
+    CleanupStack::PopAndDestroy(serv);
+    CleanupStack::PopAndDestroy( );  // closes RApaLsSession
+    }
+    
+// ---------------------------------------------------------------------------
+// C++ Constructor
+// ---------------------------------------------------------------------------
+//     
+CDefaultAppServMimeApps::CDefaultAppServMimeApps(): iList(4)
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//    
+CDefaultAppServMimeApps::~CDefaultAppServMimeApps()
+    {
+    iServMimes.ResetAndDestroy();
+    iTasks.ResetAndDestroy();
+    iTaskServMimes.ResetAndDestroy();
+    }
+
+// ---------------------------------------------------------------------------
+// This function sorts the Services & MIMEs and their applications. 
+// It also sorts the Serivces & MIMEs associated with tasks
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppServMimeApps::BeautifyAndSortServMimeApps(void)
+    {
+    //first, go through the Services & MIMEs localized names and sort them
+    TLinearOrder<CServiceMime> order(&CServiceMime::OrderServiceMimes);
+    iServMimes.Sort(order);
+    
+    //go through applications and sort them
+    TInt i,j;
+    for(i=0; i<iServMimes.Count(); i++)
+        {
+        TLinearOrder<CAppHelper> order2(&CAppHelper::OrderApplications);
+        iServMimes[i]->iApplications.Sort(order2);
+        //get our app index 
+        for(j=0; j<iServMimes[i]->iApplications.Count(); j++)
+            if(iServMimes[i]->iApplications[j]->iUid == iServMimes[i]->iDefaultAppUid.iUid)
+                iServMimes[i]->iDefaultApp = j;
+        };
+    //if we have tasks, we sort their apps too
+    for(i=0; i<iTasks.Count(); i++)
+        {
+        TLinearOrder<CAppHelper> order2(&CAppHelper::OrderApplications);
+        iTasks[i]->iApplications.Sort(order2);
+        //get our app index 
+        for(j=0; j<iTasks[i]->iApplications.Count(); j++)
+            if(iTasks[i]->iApplications[j]->iUid == iTasks[i]->iDefaultAppUid.iUid)
+                iTasks[i]->iDefaultApp = j;
+        };
+    }
+
+
+// ---------------------------------------------------------------------------
+// This function reads from the resource file the list of tasks (and associated data). 
+// This function is used during construction
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppServMimeApps::GetTaskListL( TInt aResourceId )
+    {
+    TResourceReader reader;
+    TInt i;
+    CServiceRegistry* sr=CServiceRegistry::NewL();
+    CleanupStack::PushL(sr);
+
+    // Read tasks
+    
+    CEikonEnv::Static()->CreateResourceReaderLC( reader, aResourceId );
+
+    TInt count = reader.ReadInt16();
+    for ( i = 0; i < count; i++ )
+        {
+        CMediaTask* task=CMediaTask::NewLC(reader);
+        // Read the default application for this task ...
+        sr->GetDefault(KOpenServiceUid, *task->iMimeLabel, task->iDefaultAppUid);
+        
+        //add the task to the list
+        iTasks.Append(task);
+        CleanupStack::Pop(task);
+        }
+
+    CleanupStack::PopAndDestroy(); // reader
+    CleanupStack::PopAndDestroy(sr);
+    }
+    
+// ---------------------------------------------------------------------------
+// This function adds a new Application to a list of an Service & Mime object.
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppServMimeApps::InsertApplicationL(CServiceMime& aServMime, const TUid& aAppUid, const TDataTypePriority& aPrio, const RApaLsSession *aLs)
+    {
+    TBool addIt = ETrue;
+
+    if(aPrio == KDataTypePrioritySystem)
+        {
+        // the application to be inserted has system priority
+        if(aServMime.iDefaultApp == -1)
+            {
+            //we have non-system applications in the list
+            //delete them ...
+            aServMime.iApplications.ResetAndDestroy();
+                          
+            //... and make the default -2 ... (it means single app with system priority)
+            aServMime.iDefaultApp = -2;
+            //... and add our application (after exiting from the "if")
+            }
+        else
+            {
+            //do not delete the applications, but just add our application
+            //...and make the default -3 (it means multiple apps with system priority)
+            aServMime.iDefaultApp = -3;
+            //... and add our application (after exiting from the "if")
+            }
+        }
+    else
+        {
+        // the application to be inserted does NOT have system priority
+        if(aServMime.iDefaultApp < -1)
+            {
+            // there are only System apps in the list, do not add ours
+            addIt = EFalse;
+            }
+        // else there are normal applications in the list, insert ours, as well
+        }
+    //add the application to the list
+    if(addIt)
+        {
+        TApaAppInfo info;
+        aLs->GetAppInfo(info,aAppUid);
+        //find the best name for the application
+        CAppHelper *app = NULL;
+        if(info.iCaption.Size() != 0)
+            {
+            //this is for now, the preferred name
+            app = CAppHelper::NewLC(info.iCaption, aAppUid.iUid);
+            }
+        else
+            {
+            //fall-back name
+            app = CAppHelper::NewLC(info.iShortCaption, aAppUid.iUid);
+            };
+        //is the app platform application??
+        if (info.iFullName.Left(1) == _L("Z") || 
+            info.iFullName.Left(1) == _L("z")) 
+            app->iFlags |= CAppHelper::EFlagPlatformApp;
+        //append the name
+        aServMime.iApplications.AppendL(app);
+        CleanupStack::Pop(app);
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// This function takes a task and a Service & MIME object. It checks all the applications that support the given
+// Service & MIME object (from its list). If an application is not in the task's application list, this function adds 
+// it there, with a score of 1. If the application is already in the list, then its score is incremented.
+// The Service & MIME object is also marked as being used by a task.
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppServMimeApps::PopulateTaskWithApplicationsL(CMediaTask& aTask,CServiceMime* aServMime)
+    {
+    TInt i,j;
+    TBool found;
+    //add the applications to the list
+    for(i=0; i<aServMime->iApplications.Count(); i++)
+        {
+        found=EFalse;
+        for(j=0; j<aTask.iApplications.Count(); j++)
+            if(aServMime->iApplications[i]->iUid == aTask.iApplications[j]->iUid)
+                {
+                //we found this application...
+                found=ETrue;
+                //... increase its score
+                aTask.iApplications[j]->iScore++;
+                //... and get to the next application
+                break; //application found, no need to search for it any more
+                }
+        //if the application was not found, we have to add it!
+        if(!found)
+            {
+            CAppHelper *app = CAppHelper::NewLC(*aServMime->iApplications[i]);
+            aTask.iApplications.AppendL(app);
+            CleanupStack::Pop(app);
+            }
+        }
+    //mark the sm
+    aServMime->iUsedByTasks=ETrue;
+    //link the sm
+    aTask.iSMs.Append(aServMime);
+    }
+
+// ---------------------------------------------------------------------------
+// This function fills with entries a data structure used by a List Box to display Services & MIMEs or Tasks
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppServMimeApps::GetServicesAndMimesListL(CDesCArray& aServicesAndMimesArray)
+    {
+    TInt i;
+    aServicesAndMimesArray.Reset();
+    if(iSimplifiedView)
+        {
+        for ( i=0 ; i<iTasks.Count() ; i++ )
+            {
+            TDesC* string = GetMediaTaskStringLC(*iTasks[i], ETrue);
+            aServicesAndMimesArray.AppendL (*string);
+            CleanupStack::PopAndDestroy(string);
+            }
+        }
+    else
+        {
+        for ( i=0 ; i<iServMimes.Count() ; i++ )
+            {
+            TDesC* string = GetServiceAndMimeStringLC(*iServMimes[i], ETrue);
+            aServicesAndMimesArray.AppendL (*string);
+            CleanupStack::PopAndDestroy(string);
+            }
+        }
+    
+    }
+    
+// ---------------------------------------------------------------------------
+// This function fills a Popup-list data structure with applications specific to the selected Service & MIME or Task
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppServMimeApps::GetApplicationsListL(TInt aIndex, CDesCArray& aApplicationsArray, HBufC*& aTitle)
+    {
+    // Strings will be of the format "1\tApplication"
+    _LIT (KStringAppsDefault, "1\t");
+    _LIT (KStringAppsNonDefault, "0\t");
+    
+    TInt bufLen=20;
+    HBufC *string=HBufC::NewLC(bufLen);
+    HBufC *newString=NULL;
+    TInt i,len;
+    RPointerArray<CAppHelper> *apps=NULL;
+    
+    //get the proper list
+    if(iSimplifiedView)
+        apps = &(iTasks[aIndex]->iApplications);
+    else
+        apps = &(iServMimes[aIndex]->iApplications);
+    
+    for ( i=0 ; i<apps->Count() ; i++ )
+        {
+        len=(*apps)[i]->iName->Size() + KStringMargin ;
+        if(len>bufLen)
+            {
+            newString=string->ReAllocL(len);
+            if(newString != string)
+                {
+                CleanupStack::Pop(string);//already destroyed
+                string=newString;
+                CleanupStack::PushL(string);
+                }
+            bufLen=len;
+            newString=NULL;
+            }
+        //copy the application into the string buffer
+        TPtr ptr=string->Des();
+        TBool isDefault=EFalse;
+        
+        if( iSimplifiedView && iTasks[aIndex]->iDefaultApp==i) isDefault=ETrue;
+        if( !iSimplifiedView && iServMimes[aIndex]->iDefaultApp==i) isDefault=ETrue;
+        
+        if( isDefault ) ptr.Copy(KStringAppsDefault);
+        else ptr.Copy(KStringAppsNonDefault);
+        ptr.Append(*(*apps)[i]->iName);
+        
+        aApplicationsArray.AppendL (ptr);
+        }
+    
+    CleanupStack::PopAndDestroy(string); //data in ptr is out of scope
+        
+    //get the title now
+    if ( iSimplifiedView )
+        aTitle = GetMediaTaskStringLC(*iTasks[aIndex], EFalse);
+    else
+        aTitle = GetServiceAndMimeStringLC(*iServMimes[aIndex], EFalse);
+    CleanupStack::Pop(aTitle);
+    }
+
+// ---------------------------------------------------------------------------
+// This function sets a new default, for a Service & MIME pair or for a Task.
+// The function also updates the list of Services & MIMEs (or Tasks), to display the new default application
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppServMimeApps::UpdateDefaultL(TInt aServiceAndMimeIndex, TInt aDefaultAppIndex, CDesCArray *aServicesAndMimesArray)
+    {
+    //check for correct parameters
+    if (aServiceAndMimeIndex <0 || aDefaultAppIndex <0) User::Leave(KErrArgument);
+    if(iSimplifiedView)
+        {
+        if( aServiceAndMimeIndex >= iTasks.Count() ||
+            aDefaultAppIndex >= iTasks[aServiceAndMimeIndex]->iApplications.Count())
+            User::Leave(KErrArgument);
+        }
+    else
+        {
+        if( aServiceAndMimeIndex >= iServMimes.Count() ||
+            aDefaultAppIndex >= iServMimes[aServiceAndMimeIndex]->iApplications.Count())
+            User::Leave(KErrArgument);
+        }
+    
+    //if we are here, parameters are within their range
+    TBool doUpdate=ETrue;
+    TUid defaultAppUid;
+    CServiceRegistry *sr=CServiceRegistry::NewL();
+    CleanupStack::PushL(sr);
+        
+    //update the default in the Service Registry
+    if(iSimplifiedView)
+        {
+        TInt i,j;
+        TUid serviceUid;
+        //set the default for the generic MIME (and our server application)
+        TDataType dt(*iTasks[aServiceAndMimeIndex]->iMimeLabel);
+        defaultAppUid=TUid::Uid(iTasks[aServiceAndMimeIndex]->iApplications[aDefaultAppIndex]->iUid);
+        if(sr->SetDefault(KOpenServiceUid, dt,defaultAppUid))
+            {
+            //if we are here, SetDefault returned an error.
+            //so we do not update the default...
+            doUpdate=EFalse;
+            }
+        //set the selected default for all the Services & MIME that it supports
+        if(doUpdate)
+            {
+            for(i=0; i<iTasks[aServiceAndMimeIndex]->iSMs.Count(); i++)
+                for(j=0; j<iTasks[aServiceAndMimeIndex]->iSMs[i]->iApplications.Count(); j++)
+                    if(defaultAppUid.iUid == iTasks[aServiceAndMimeIndex]->iSMs[i]->iApplications[j]->iUid )
+                        {
+                        //the selected application supports this Service & MIME pair.
+                        //make the app default for the pair.
+                        dt=*iTasks[aServiceAndMimeIndex]->iSMs[i]->iMime;
+                        serviceUid=iTasks[aServiceAndMimeIndex]->iSMs[i]->iServiceUid;
+                        sr->SetDefault(serviceUid, dt,defaultAppUid);
+                        //update the sm so that it reflects the new default
+                        iTasks[aServiceAndMimeIndex]->iSMs[i]->iDefaultAppUid=defaultAppUid;
+                        iTasks[aServiceAndMimeIndex]->iSMs[i]->iDefaultApp=j;
+                        break; //application found in sm's list, do not need to search for it any more
+                        }
+            //update the default entries
+            iTasks[aServiceAndMimeIndex]->iDefaultApp=aDefaultAppIndex;
+            iTasks[aServiceAndMimeIndex]->iDefaultAppUid=defaultAppUid;
+            }
+            
+        }
+    else
+        {
+        TDataType dt(*iServMimes[aServiceAndMimeIndex]->iMime);
+        defaultAppUid=TUid::Uid(iServMimes[aServiceAndMimeIndex]->iApplications[aDefaultAppIndex]->iUid);
+        if(sr->SetDefault(iServMimes[aServiceAndMimeIndex]->iServiceUid, dt,defaultAppUid))
+            {
+            //if we are here, SetDefault returned an error.
+            //so we do not update the default...
+            doUpdate=EFalse;
+            }
+        //update the default entries
+        if(doUpdate)
+            {
+            iServMimes[aServiceAndMimeIndex]->iDefaultApp=aDefaultAppIndex;
+            iServMimes[aServiceAndMimeIndex]->iDefaultAppUid=defaultAppUid;
+            }
+        }
+    CleanupStack::PopAndDestroy(sr);
+        
+    //check if setting the default failed
+    if(!doUpdate)
+    {
+    	//### if updating the default failed, here would be the place to put an error note to the user
+    	return; // or leave
+    };
+        
+    //update the item in the list
+    if (aServicesAndMimesArray)
+        {
+        //get the string
+        TDesC* string;
+        if(iSimplifiedView)
+            string = GetMediaTaskStringLC(*iTasks[aServiceAndMimeIndex], ETrue);
+        else
+            string = GetServiceAndMimeStringLC(*iServMimes[aServiceAndMimeIndex], ETrue);
+        aServicesAndMimesArray->Delete(aServiceAndMimeIndex);
+        aServicesAndMimesArray->InsertL(aServiceAndMimeIndex,*string);
+        CleanupStack::PopAndDestroy(string);
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// This function creates a string that will become en element of a list box. To create the string, the function
+// concatenates several sub-strings.
+// ---------------------------------------------------------------------------
+//    
+HBufC* CDefaultAppServMimeApps::GetServiceAndMimeStringLC(CServiceMime& aServMime, TBool aInsertDefaultApp) const
+    {
+    HBufC *string=NULL;
+    TPtr *ptr=NULL;
+    TInt len;
+    _LIT(KTab,"\t");
+    
+    if(aInsertDefaultApp && aServMime.iDefaultApp >= 0) //it may be that we do not have a default ...
+        len=aServMime.iApplications[aServMime.iDefaultApp]->iName->Size();
+    else
+        len=0;
+    len+= aServMime.iServiceMime->Size();
+    len+= KStringMargin ; 
+    
+    string=HBufC::NewLC(len);
+        
+    //build the string, add the tabs before and after
+    ptr=new (ELeave) TPtr(string->Des());
+    CleanupStack::PushL(ptr);
+    
+    ptr->Copy(*aServMime.iServiceMime);
+
+    if(aInsertDefaultApp)
+        {
+        ptr->Insert(0,KTab);
+        ptr->Append(KTab);
+
+        //add default app
+        if(aServMime.iDefaultApp >= 0) //it may be that we do not have a default ...
+            ptr->Append(*aServMime.iApplications[aServMime.iDefaultApp]->iName);
+        }
+
+    CleanupStack::PopAndDestroy(ptr);
+
+    return string; //pass ownership, string also on the stack
+        
+    }
+
+// ---------------------------------------------------------------------------
+// This function creates a string that will become en element of a list box. To create the string, the function
+// concatenates several sub-strings.
+// ---------------------------------------------------------------------------
+//    
+HBufC* CDefaultAppServMimeApps::GetMediaTaskStringLC(CMediaTask& aMediaTask, TBool aInsertDefaultApp) const
+    {
+    TPtr *ptr=NULL;
+    TInt len = KStringMargin;
+    _LIT(KTab,"\t");
+    HBufC *taskName=NULL; //not owned, not deleted at the end of function
+    
+    //compute the string length
+    if(aInsertDefaultApp)
+        {
+        //we insert the task list name
+        taskName = aMediaTask.iTaskList;
+        //we also insert the length od the default app (if we have it)
+        if(aMediaTask.iDefaultApp >= 0)//it may be that we do not have a default ...
+            len += aMediaTask.iApplications[aMediaTask.iDefaultApp]->iName->Size();
+        }
+    else
+        {
+        //we should insert the task title, if we have it
+        taskName = aMediaTask.iTaskTitle;
+        //taskName = aMediaTask.iTaskList;
+        };
+    len += taskName->Size();
+    
+    //allocate the string
+    HBufC *string=HBufC::NewLC(len);
+    
+    //add the title
+    ptr=new (ELeave) TPtr(string->Des());
+    CleanupStack::PushL(ptr);
+    ptr->Copy(*taskName);
+
+    //add other stuff
+    if(aInsertDefaultApp)
+        {
+        ptr->Insert(0,KTab);
+        ptr->Append(KTab);
+        //add default app
+        if(aMediaTask.iDefaultApp >= 0) //it may be that we do not have a default ...
+            ptr->Append(*aMediaTask.iApplications[aMediaTask.iDefaultApp]->iName);
+        }
+    
+    CleanupStack::PopAndDestroy(ptr);
+
+    return string; //pass ownership, string also on the stack
+    }
+
+// ---------------------------------------------------------------------------
+// This function resets (removes) the defaults associated with a certain task, 
+// or it can remove all the defaults
+// ---------------------------------------------------------------------------
+//  
+TInt CDefaultAppServMimeApps::RestoreFactorySettingsL(TInt aCathegory)
+    {
+    TInt i, j;
+    CServiceRegistry *sr=NULL;
+    
+    if(aCathegory == -1)
+        {
+        sr=CServiceRegistry::NewL();
+        
+        if ( iSimplifiedView )
+        	{
+            for(i=0; i<iTasks.Count(); i++)
+        	    {
+                for(j=0; j<iTasks[i]->iMimes.Count(); j++)
+            	    {
+            	    sr->RemoveEntry(TUid::Uid(iTasks[i]->iServicesUids[j]), TDataType(*iTasks[i]->iMimes[j]));
+            	    }
+                //remove the entry that identifies the default app for the task
+                sr->RemoveEntry(KOpenServiceUid, TDataType(*iTasks[i]->iMimeLabel));
+        	    }
+        	}
+        else
+        	{
+        	//we reset the defaults for all the services & MIME
+        	for(i=0; i<iServMimes.Count(); i++)
+        	    sr->RemoveEntry(iServMimes[i]->iServiceUid, TDataType(*iServMimes[i]->iMime));
+        	//remove the entry that identifies the default app for the task
+        	for(i=0; i<iTasks.Count(); i++)
+        	    sr->RemoveEntry(KOpenServiceUid, TDataType(*iTasks[i]->iMimeLabel));     	
+        	}
+        }
+    else if(iSimplifiedView && aCathegory >= 0 && aCathegory < iTasks.Count())
+        {
+        //we are in simplified view, restore defaults for a single task
+        sr=CServiceRegistry::NewL();
+        for(i=0; i<iTasks[aCathegory]->iMimes.Count(); i++)
+                sr->RemoveEntry(TUid::Uid(iTasks[aCathegory]->iServicesUids[i]), TDataType(*iTasks[aCathegory]->iMimes[i]));
+            //remove the entry that identifies the default app for the task
+            sr->RemoveEntry(KOpenServiceUid, TDataType(*iTasks[aCathegory]->iMimeLabel));
+        }
+    else if(!iSimplifiedView && aCathegory >= 0 && aCathegory < iServMimes.Count())
+        {
+        //we are in the advanced view, restore defaults for a single Service & MIME pair
+        sr=CServiceRegistry::NewL();
+        sr->RemoveEntry(iServMimes[aCathegory]->iServiceUid, TDataType(*iServMimes[aCathegory]->iMime));
+        }
+    else return -1; //wrong aCathegory range
+    
+    if(sr) delete sr;
+    return 0;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_srvmime_dlg.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,530 @@
+/*
+* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of the Services & MIME view class
+*
+*/
+
+
+
+// System includes
+#include <e32base.h>
+#include <AknIconArray.h> 
+#include <gulicon.h>
+#include <AknsUtils.h>
+#include <avkon.mbg>
+
+#include <featmgr.h>
+#include <hlplch.h>
+
+#include <aknlists.h>
+#include <barsread.h>
+#include <e32def.h>
+#include <eikclbd.h>
+#include <eikmenub.h>
+
+#include <defaultappserver.rsg>
+#include <StringLoader.h>
+#include <uikon.hrh>
+#include <aknPopup.h>
+#include <akntitle.h>
+#include <aknsfld.h>
+#include <featmgr.h>
+
+#include <aknsettingitemlist.h> 
+
+#include "das_srvmime_dlg.h"
+#include "das_servmimeapps.h"
+#include "das_appui.h"
+#include "das_app.h"
+#include "das.hrh"
+#include "das.hlp.hrh"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Symbian 2-phased constructor
+// ---------------------------------------------------------------------------
+//    
+CDefaultAppSrvMimeDlg* CDefaultAppSrvMimeDlg::NewL(CDefaultAppAppUi* aAppUi)
+    {
+    //we first need to create a CDefaultAppServMimeApps instance
+    TInt *selected;
+    if(aAppUi->iReloadDlgAdvanced)
+    {
+    	//some settings for the advanced view
+    	selected=&(aAppUi->iSelectedItemAdvanced);
+    }
+    else
+    {
+        //some settings for the simple view
+    	selected=&(aAppUi->iSelectedItemSimple);
+    };
+    
+    //create the dialog instance (ownership of servMimeApps is passed to the dialog
+    CDefaultAppSrvMimeDlg *dialog=new(ELeave)CDefaultAppSrvMimeDlg(aAppUi, selected);
+    CleanupStack::PushL(dialog);
+    dialog->ConstructL(R_DAS_MENUBAR); 
+    CleanupStack::Pop(dialog);
+    return dialog;
+    }
+
+// ---------------------------------------------------------------------------
+// C++ Constructor
+// ---------------------------------------------------------------------------
+//    
+CDefaultAppSrvMimeDlg::CDefaultAppSrvMimeDlg(CDefaultAppAppUi* aAppUi, TInt *aSelected) : 
+    CAknSelectionListDialog(*aSelected, &aAppUi->iServMimeApps->iList, NULL), 
+    iDefaultAppUi(aAppUi), iSelected(aSelected), iOkToExit(EFalse)
+    {
+    //no implementation necessary
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//    
+CDefaultAppSrvMimeDlg::~CDefaultAppSrvMimeDlg()
+    {
+    if ( iDefaultAppUi )
+        {
+        iDefaultAppUi->SetDialogExist( EFalse );
+        }
+    
+    if ( iPopupList )
+        {
+        iPopupList->CancelPopup();
+        iPopupList = NULL;
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// From class From CAknSelectionListDialog
+// This function is called when buttons/softkeys are pressed, to check if the dlg should exit.
+// We make the checkings and return the result.
+// ---------------------------------------------------------------------------
+//   
+TBool CDefaultAppSrvMimeDlg::OkToExitL(TInt aButtonId)
+    {
+    CAknSelectionListDialog::OkToExitL(aButtonId);
+    if ( aButtonId == EAknSoftkeyOptions && iPopupList )
+    	{
+    	iPopupList->CancelPopup();
+    	iPopupList = NULL;
+    	}
+    if(aButtonId == EAknSoftkeyBack || aButtonId == EAknCmdOpen || aButtonId == EAknSoftkeyOk)
+        {
+        ProcessCommandL(aButtonId);
+        };
+    if(aButtonId==EAknCmdEnd || aButtonId==EAknSoftkeyCancel)
+    	{
+    	iOkToExit=ETrue;
+    	iDefaultAppUi->iReloadDlg=EFalse;
+    	}
+    return iOkToExit;
+    }
+
+// ---------------------------------------------------------------------------
+// From class From CAknSelectionListDialog
+// This function is called when a command is issued by the user.
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppSrvMimeDlg::ProcessCommandL(TInt aCommand)
+    {
+    CAknSelectionListDialog::ProcessCommandL(aCommand); //this hides the menu and takes care of find
+    iEnterKeyPressed=EFalse; 
+    
+    
+    *iSelected = ListBox()->CurrentItemIndex();
+    if (FindBox() && *iSelected != -1)
+	    *iSelected = STATIC_CAST(CAknFilteredTextListBoxModel*,ListBox()->Model())->Filter()->FilteredItemIndex(*iSelected);
+    // ATTENTION: If *iSelected is -1 it means that the list is empty!
+
+    
+    switch(aCommand)
+        {
+    case EDasCmdAdvanced:
+        //SwitchViewL();
+        
+        //make the dialog reload        
+        iDefaultAppUi->iReloadDlgAdvanced=ETrue;
+        iOkToExit=ETrue;
+        //force our exit
+        TryExitL(0);
+        
+        break;
+    case EAknCmdHelp:
+        HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), iDefaultAppUi->AppHelpContextL());
+        break;
+    case EDasCmdResetAll:
+    case EDasCmdResetSelected:
+        if(aCommand==EDasCmdResetSelected)
+        {
+        	if(*iSelected!=-1)
+        	    iDefaultAppUi->iServMimeApps->RestoreFactorySettingsL(*iSelected);
+        }   
+        else
+            iDefaultAppUi->iServMimeApps->RestoreFactorySettingsL(-1);
+            
+        //common code:
+        //reload the dialog
+        if(!iDefaultAppUi->iServMimeApps->iSimplifiedView)
+            iDefaultAppUi->iReloadDlgAdvanced=ETrue;
+        iOkToExit=ETrue;
+        //delete the iServMimeApps so that it will be reloaded next time
+        delete iDefaultAppUi->iServMimeApps;
+        iDefaultAppUi->iServMimeApps=NULL;
+        //force our exit
+        TryExitL(0);
+        break;
+    case EAknCmdExit:
+        //exit the server
+        iOkToExit=ETrue;
+        iDefaultAppUi->iReloadDlg=EFalse;
+        //force our exit
+        TryExitL(0);
+        break;
+    case EAknSoftkeyBack:
+        //we have 2 cases here: 
+        //if we are in the advanced view, we switch back to the simple view.
+        //if we are in the simple view, then we exit the server
+        if(iDefaultAppUi->iServMimeApps->iAppUid == KUidGS && !iDefaultAppUi->iServMimeApps->iSimplifiedView)
+            {
+            //switch back to simple view
+            //make the dialog reload
+            iDefaultAppUi->iReloadDlgAdvanced=EFalse;
+            iOkToExit=ETrue;
+            // no need to force our exit, we are comming from a TryExitL() 
+            }
+        else
+            {
+            //exit the server
+            iOkToExit=ETrue;
+            iDefaultAppUi->iReloadDlg=EFalse;
+            //tell AppUi that the exit is due a "Back" command
+            iDefaultAppUi->iExitBack=ETrue;
+            }
+        break;
+    case EAknCmdOpen:
+    case EAknSoftkeyOk:
+        //we have the index of the selected item in *iSelected
+        OpenMenuForSelectedServiceAndMimeL(*iSelected);
+        break;    
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// From class From CAknSelectionListDialog
+// Called during the construction of the dialog. We build the list of elements here.
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppSrvMimeDlg::PreLayoutDynInitL()
+    {
+    CAknSelectionListDialog::PreLayoutDynInitL();
+    
+    CEikSettingsListBox* listbox=(CEikSettingsListBox*)ListBox();
+    // Ownership retained by us
+    listbox->CreateScrollBarFrameL( ETrue );
+    listbox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto );
+    listbox->UpdateScrollBarsL();   
+
+    //enable marquee
+    EnableMarqueeL();   
+        
+    //restore the selected item    
+    if(*iSelected >= 0)
+        {
+        listbox->SetCurrentItemIndex(*iSelected);
+        };
+        
+    //change the title
+    CEikStatusPane *statusPane=iDefaultAppUi->StatusPane();
+    if(statusPane && statusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent())
+        {
+        CAknTitlePane *titlePane=(CAknTitlePane*)(statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
+        HBufC* titleString;
+        //load the correct title string
+        if(iDefaultAppUi->iReloadDlgAdvanced)
+            {
+                if(iDefaultAppUi->iClientUid == KUidGS)
+                    //User activated advanced view in Control Panel
+                    titleString=StringLoader::LoadLC(R_DA_TITLE_ADVANCED);
+                else //Client is some application other than Control Panel; load app specific view.
+                    titleString=StringLoader::LoadLC(R_DA_TITLE_APP);
+            }
+        else //Simple view in Control Panel
+            titleString=StringLoader::LoadLC(R_DA_TITLE_MAIN);
+        titlePane->SetTextL(*titleString);
+        CleanupStack::PopAndDestroy(titleString);
+        };
+    
+    ListBox()->AddItemChangeObserverL( this );
+    }
+    
+// ---------------------------------------------------------------------------
+// From class CAknDialog.
+// Called when the menu is initialized.
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppSrvMimeDlg::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
+    {
+    if (aResourceId != R_DAS_MENU) return;
+    __ASSERT_ALWAYS(iDefaultAppUi->iServMimeApps,User::Leave(KErrGeneral));
+    
+    // for !iSimplifiedView dim the EDasCmdAdvanced
+    if(!iDefaultAppUi->iServMimeApps->iSimplifiedView)
+        aMenuPane->SetItemDimmed(EDasCmdAdvanced, ETrue);    
+    
+    // if the Client is not observing when we are exiting, then dim the Exit
+    if(iDefaultAppUi->iServMimeApps->iFlagNoObserver)
+        aMenuPane->SetItemDimmed(EAknCmdExit, ETrue);
+    
+    // Help should be displayed only if the feature is supported
+    // according to Feature Manager
+    if (!FeatureManager::FeatureSupported(KFeatureIdHelp))
+        {
+        aMenuPane->SetItemDimmed(EAknCmdHelp, ETrue);
+        }
+		//if the findbox already exists, dim the find menu item.
+    if ( FindBox()->IsVisible() )
+        {
+        aMenuPane->SetItemDimmed(EAknCmdFindPopupActivated, ETrue);
+        }
+    
+    CTextListBoxModel* modelSm = ( ( CEikSettingsListBox* )ListBox() )->Model();  // not taking ownership
+    TInt itemCount = modelSm->NumberOfItems();
+		//if the listbox is empty, dim the change menu item.
+    if (itemCount == 0)
+        {
+        aMenuPane->SetItemDimmed(EAknCmdOpen, ETrue);
+        }
+    
+    }
+    
+// ---------------------------------------------------------------------------
+// From class CCoeControl.
+// Called to get the help context.
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppSrvMimeDlg::GetHelpContext(TCoeHelpContext& aContext) const
+    {
+    aContext.iMajor = KUidDefaultAppServer;
+    
+    //check if we have proper values
+    if(!iDefaultAppUi->iServMimeApps)
+        aContext.iContext = KDA_HLP_MAIN;
+    else
+        {
+        //check for GS client
+        if (iDefaultAppUi->iServMimeApps->iAppUid == KUidGS)
+            {
+            //the client is GS. Check for simplified or advanced view
+            if (iDefaultAppUi->iServMimeApps->iSimplifiedView)
+                aContext.iContext = KDA_HLP_MAIN;
+            else
+                aContext.iContext = KDA_HLP_ADVANCED;
+            }
+        else
+            {
+            //this is not GS client
+            aContext.iContext = KDA_HLP_APPLICATION;
+            };
+        };
+    }
+
+// ---------------------------------------------------------------------------
+// From class CCoeControl.
+// Called to get the help context.
+// ---------------------------------------------------------------------------
+//    
+void CDefaultAppSrvMimeDlg::SizeChanged()
+    {
+    CAknSelectionListDialog::SizeChanged(); 
+    }
+   
+    
+// ---------------------------------------------------------------------------
+// Enables marquee for the list elements.
+// ---------------------------------------------------------------------------
+//  
+void CDefaultAppSrvMimeDlg::EnableMarqueeL()
+    {
+    CFormattedCellListBoxData *tmp=((CEikSettingsListBox*)(ListBox()))->ItemDrawer()->FormattedCellData();
+    
+    tmp->SetMarqueeParams(KMaxTInt, 6, 2000000, 10000); // Magic: loop forever
+    tmp->EnableMarqueeL(ETrue);
+    }
+
+
+// ---------------------------------------------------------------------------
+// Loads icons from a file and sets them in the drawer for iSavedGamesList
+// ---------------------------------------------------------------------------
+//  
+CArrayPtr<CGulIcon>* CDefaultAppSrvMimeDlg::GetPopupListIconsL() const
+    {
+    // CGulIcon class packages two bitmaps: icon image and its mask
+    // CAknIconArray inherits from CArrayPtrFlat
+    CArrayPtr<CGulIcon>* iconList = new (ELeave) 
+                                 CAknIconArray(2);
+    CleanupStack::PushL(iconList);
+    
+    TFileName iconFile( AknIconUtils::AvkonIconFileName() );
+    MAknsSkinInstance* skinInstance;
+    CFbsBitmap* newIconBmp = NULL;
+    CFbsBitmap* newIconBmpMask = NULL;
+    CGulIcon* newIcon = NULL;
+    
+    skinInstance = AknsUtils::SkinInstance();
+              
+    //creating blank icon
+    AknsUtils::CreateIconLC(skinInstance,KAknsIIDQgnPropEmpty,
+                           newIconBmp,newIconBmpMask,iconFile,
+                           EMbmAvkonQgn_prop_empty,
+                           EMbmAvkonQgn_prop_empty_mask);
+    
+    newIcon = CGulIcon::NewL(newIconBmp,newIconBmpMask);
+    
+    CleanupStack::Pop(2);//newIconBmp & newIconBmpMask
+    CleanupStack::PushL(newIcon);
+    iconList->AppendL(newIcon);
+    
+    CleanupStack::Pop(newIcon);     
+              
+    //creating TICK mark icon
+    AknsUtils::CreateIconLC(skinInstance,KAknsIIDQgnPropSubCurrent,
+                           newIconBmp,newIconBmpMask,iconFile,
+                           EMbmAvkonQgn_prop_sub_current,
+                           EMbmAvkonQgn_prop_sub_current_mask);
+    
+    newIcon = CGulIcon::NewL(newIconBmp,newIconBmpMask);
+    
+    CleanupStack::Pop(2);//newIconBmp & newIconBmpMask
+    CleanupStack::PushL(newIcon);
+    iconList->AppendL(newIcon);
+
+    CleanupStack::Pop(newIcon);
+    
+    CleanupStack::Pop(iconList);
+
+    newIconBmp = NULL;
+    newIconBmpMask = NULL;
+    newIcon = NULL;
+
+    return iconList;
+    }
+        
+    
+// ---------------------------------------------------------------------------
+// Pops-up a menu list with the Applications for the selected Service & MIME item
+// ---------------------------------------------------------------------------
+//  
+void CDefaultAppSrvMimeDlg::OpenMenuForSelectedServiceAndMimeL(TInt aSelectedIndex)
+    {
+    if(!iDefaultAppUi->iServMimeApps)User::Leave(KErrNotFound);
+    if(aSelectedIndex<0)return; //there is no selected item (list is empty)
+    
+    CAknSingleGraphicPopupMenuStyleListBox *selectedServiceAndMime = new (ELeave) CAknSingleGraphicPopupMenuStyleListBox;
+    CleanupStack::PushL(selectedServiceAndMime);
+    
+    if ( iPopupList != NULL )
+    	{
+        iPopupList->CancelPopup();
+        iPopupList = NULL;
+    	}
+    
+    iPopupList = CAknPopupList::NewL(selectedServiceAndMime, R_AVKON_SOFTKEYS_OK_CANCEL);
+    selectedServiceAndMime->ConstructL(iPopupList,EAknListBoxMenuList);
+    selectedServiceAndMime->CreateScrollBarFrameL (ETrue);
+    selectedServiceAndMime->ScrollBarFrame()->SetScrollBarVisibilityL( 
+            CEikScrollBarFrame::EOff, 
+            CEikScrollBarFrame::EAuto );
+
+    //construct icons
+    CArrayPtr<CGulIcon>* icons=GetPopupListIconsL();
+    selectedServiceAndMime->ItemDrawer()->ColumnData()->SetIconArray(icons); // passing ownership of icons
+    
+    
+    //populate the applications list
+    CTextListBoxModel* modelApps = selectedServiceAndMime->Model();  // not taking ownership
+    modelApps->SetOwnershipType (ELbmOwnsItemArray);
+    CDesCArray* applications = STATIC_CAST(CDesCArray*, modelApps->ItemTextArray());
+    HBufC* listTitle=NULL;
+    iDefaultAppUi->iServMimeApps->GetApplicationsListL(aSelectedIndex, *applications, listTitle);
+    
+    
+    //set the title of the list
+    CleanupStack::PushL(listTitle);
+    iPopupList->SetTitleL(*listTitle);
+    CleanupStack::PopAndDestroy(listTitle);
+    //
+    TInt popupOk = iPopupList->ExecuteLD();
+    iPopupList = NULL;
+    
+    if(popupOk)
+        {
+        TInt selected = selectedServiceAndMime->CurrentItemIndex();
+        
+        //update the default in the array & list
+        //get the list array first
+        CTextListBoxModel* modelSm = ((CEikSettingsListBox*)ListBox())->Model();  // not taking ownership
+        //modelSm->SetOwnershipType (ELbmOwnsItemArray);
+        CDesCArray* servicesAndMimesArray = STATIC_CAST(CDesCArray*, modelSm->ItemTextArray());
+        //do the update
+        iDefaultAppUi->iServMimeApps->UpdateDefaultL(aSelectedIndex,selected,servicesAndMimesArray);
+        //redraw the list
+        DrawNow();
+        }
+    CleanupStack::PopAndDestroy(selectedServiceAndMime);
+    }
+
+// ---------------------------------------------------------------------------
+// OfferKeyEventL from ccoecontrol
+// ---------------------------------------------------------------------------
+// 
+TKeyResponse CDefaultAppSrvMimeDlg::OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType)
+    {
+    if ( aKeyEvent.iCode == EKeyBackspace )
+        {
+        if ( FindBox()->TextLength() >0 )
+            {
+            return FindBox()->OfferKeyEventL( aKeyEvent, aType );
+            }
+        }
+    return CAknSelectionListDialog::OfferKeyEventL( aKeyEvent ,aType );
+    }
+
+// -----------------------------------------------------------------------------
+// CDefaultAppSrvMimeDlg::ListBoxItemsChanged (from MListBoxItemChangeObserver)
+// 
+// -----------------------------------------------------------------------------
+//
+void CDefaultAppSrvMimeDlg::ListBoxItemsChanged( CEikListBox* aListBox )
+    {
+    if ( aListBox )
+        {
+        CEikButtonGroupContainer& cba = ButtonGroupContainer();
+        CTextListBoxModel* modelSm = ((CEikSettingsListBox*)aListBox)->Model();  // not taking ownership
+        TInt itemCount = modelSm->NumberOfItems();
+        if (itemCount == 0)
+            {
+            cba.MakeCommandVisible(EAknCmdOpen, EFalse);
+            }
+        else
+            {
+            cba.MakeCommandVisible(EAknCmdOpen, ETrue);
+            }
+        }
+    }
+   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/server/src/das_view.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of the view class
+*
+*/
+
+
+
+// System includes
+
+#include "das_view.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CDefaultAppView* CDefaultAppView::NewL( const TRect& aRect )
+    {
+    CDefaultAppView* self = CDefaultAppView::NewLC( aRect );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CDefaultAppView* CDefaultAppView::NewLC( const TRect& aRect )
+    {
+    CDefaultAppView* self = new ( ELeave ) CDefaultAppView;
+    CleanupStack::PushL( self );
+    self->ConstructL( aRect );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CDefaultAppView::ConstructL( const TRect& aRect )
+    {
+    // Create a window for this application view
+    CreateWindowL();
+
+    // Set the windows size
+    SetRect( aRect );
+
+    // Activate the window, which makes it ready to be drawn
+    ActivateL();
+    }
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::CDefaultAppView()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CDefaultAppView::CDefaultAppView()
+    {
+    // No implementation required
+    }
+
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::~CDefaultAppView()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CDefaultAppView::~CDefaultAppView()
+    {
+    // No implementation required
+    }
+
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::Draw()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
+void CDefaultAppView::Draw( const TRect& /*aRect*/ ) const
+    {
+    // Get the standard graphics context
+    CWindowGc& gc = SystemGc();
+
+    // Gets the control's extent
+    TRect drawRect( Rect());
+
+    
+  	}
+
+// -----------------------------------------------------------------------------
+// CDefaultAppView::SizeChanged()
+// Called by framework when the view size is changed.
+// -----------------------------------------------------------------------------
+//
+void CDefaultAppView::SizeChanged()
+    {  
+    DrawNow();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/BWINS/defaultappclientU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,8 @@
+EXPORTS
+	??1CDefaultAppClient@@UAE@XZ @ 1 NONAME ; CDefaultAppClient::~CDefaultAppClient(void)
+	?ChangeDefaultsL@CDefaultAppClient@@QAEXH@Z @ 2 NONAME ; void CDefaultAppClient::ChangeDefaultsL(int)
+	?NewL@CDefaultAppClient@@SAPAV1@PAVMAknServerAppExitObserver@@@Z @ 3 NONAME ; class CDefaultAppClient * CDefaultAppClient::NewL(class MAknServerAppExitObserver *)
+	?NewLC@CDefaultAppClient@@SAPAV1@PAVMAknServerAppExitObserver@@@Z @ 4 NONAME ; class CDefaultAppClient * CDefaultAppClient::NewLC(class MAknServerAppExitObserver *)
+	?PairsToDisplayL@CDefaultAppClient@@QAEHXZ @ 5 NONAME ; int CDefaultAppClient::PairsToDisplayL(void)
+	?ServiceAvailable@CDefaultAppClient@@SAHAAH@Z @ 6 NONAME ; int CDefaultAppClient::ServiceAvailable(int &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/EABI/defaultappclientU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,14 @@
+EXPORTS
+	_ZN17CDefaultAppClient15ChangeDefaultsLEi @ 1 NONAME
+	_ZN17CDefaultAppClient15PairsToDisplayLEv @ 2 NONAME
+	_ZN17CDefaultAppClient16ServiceAvailableERi @ 3 NONAME
+	_ZN17CDefaultAppClient4NewLEP25MAknServerAppExitObserver @ 4 NONAME
+	_ZN17CDefaultAppClient5NewLCEP25MAknServerAppExitObserver @ 5 NONAME
+	_ZN17CDefaultAppClientD0Ev @ 6 NONAME
+	_ZN17CDefaultAppClientD1Ev @ 7 NONAME
+	_ZN17CDefaultAppClientD2Ev @ 8 NONAME
+	_ZTI17CDefaultAppClient @ 9 NONAME ; #<TI>#
+	_ZTI18RDefaultAppService @ 10 NONAME ; #<TI>#
+	_ZTV17CDefaultAppClient @ 11 NONAME ; #<VT>#
+	_ZTV18RDefaultAppService @ 12 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project DefaultAppServer - Service
+*
+*/
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+das_service.mmp
+
+PRJ_TESTMMPFILES
+
+PRJ_TESTEXPORTS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/group/das_service.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for project DefaultAppServer - Service
+*
+*/
+
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>  
+
+TARGET                  defaultappclient.dll
+TARGETTYPE              DLL
+UID                     0x1000008d 0x10281B9E
+
+CAPABILITY              CAP_GENERAL_DLL DRM
+VENDORID                VID_DEFAULT
+
+// Define directories for the .def-files of WINSCW build.
+// IMPORTANT NOTICE:  The lines in the example that end with a backslash 
+// must have one space after the backslash.
+#if defined(ARMCC)
+deffile ../EABI/ 
+#elif defined( WINSCW )
+deffile ../BWINS/ 
+#endif
+
+SOURCEPATH              ../src
+SOURCE                  das_service.cpp
+SOURCE                  das_client.cpp
+
+USERINCLUDE             ../inc
+
+// Default system include paths for middleware layer modules.
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY                 euser.lib
+LIBRARY                 apgrfx.lib
+LIBRARY                 avkon.lib
+LIBRARY                 eikcore.lib
+LIBRARY                 apparc.lib
+
+//EXPORTUNFROZEN
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/inc/das_service.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class defines the service used to change the default app.
+*
+*/
+
+
+
+#ifndef R_DEFAULTAPPSERVICE_H
+#define R_DEFAULTAPPSERVICE_H
+
+#include <AknServerApp.h>
+
+/**
+ *  Definition for the default app service
+ *
+ *  This class defines the client side of the default app service.
+ *
+ *  @lib defaultappclient.dll
+ *  @since S60 v5.0
+ */
+class RDefaultAppService : public RAknAppServiceBase
+    {
+
+private:
+
+    /**  messages used */
+    enum TIpcMessageIds
+            {
+            ESetDefaultAll = RApaAppServiceBase::KServiceCmdBase
+            };
+public:
+
+    /**
+     * Sends SetDefault message to the server
+     *
+     * @since S60 v5.0
+     * @param aFlags service class (value is transparent for this class/function)
+     * @return 0 for success, negative value on failure
+     */
+    TInt SetDefault( TInt aFlags );
+
+private: // From RApaAppServiceBase
+
+    /**
+     * From RApaAppServiceBase.
+     * Returns the uid of the service
+     *
+     * @since S60 v5.0
+     * @return the Uid of the provided service (Default App Service)
+     */
+    TUid ServiceUid() const;
+    };
+
+
+#endif // R_DEFAULTAPPSERVICE_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/src/das_client.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,241 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class implemets the Default App Client API
+*
+*/
+
+
+#include <e32std.h>
+#include <apgcli.h>
+
+
+#include <das_client.h>
+#include "das_service.h"
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <apaid.h>
+#else
+#include <apaid.h>
+#include <apaidpartner.h> // new file introduced by xSymbian
+#endif
+
+const TUid KDefaultAppServiceUid = { 0x10281B9D };
+
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CDefaultAppClient::NewL()
+// 
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDefaultAppClient* CDefaultAppClient::NewL( MAknServerAppExitObserver* aObserver )
+    {
+    CDefaultAppClient* self = CDefaultAppClient::NewLC( aObserver );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppClient::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDefaultAppClient* CDefaultAppClient::NewLC( MAknServerAppExitObserver* aObserver )
+    {
+    CDefaultAppClient* self = new ( ELeave ) CDefaultAppClient;
+    CleanupStack::PushL( self );
+    self->ConstructL( aObserver );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppClient::CDefaultAppClient()
+// Default constructor
+//
+// ---------------------------------------------------------------------------
+//
+CDefaultAppClient::CDefaultAppClient()
+    {
+    iServerAppUid.iUid = 0;
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppClient::ConstructL()
+// 
+//
+// ---------------------------------------------------------------------------
+//
+void CDefaultAppClient::ConstructL( MAknServerAppExitObserver* aObserver )
+    {
+    iObserver=aObserver;
+    iService = new (ELeave) RDefaultAppService;
+    }
+
+// ---------------------------------------------------------------------------
+// CDefaultAppClient::~CDefaultAppClient
+//
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CDefaultAppClient::~CDefaultAppClient()
+    {
+    if(iMonitor)
+        {
+        iMonitor->Cancel();
+        delete iMonitor;
+        };
+    if(iService)
+        {
+        iService->Close();
+        delete iService;
+        };
+    
+    
+        
+    // iObserver is not owned
+    }
+
+
+// ---------------------------------------------------------------------------
+// Function to check if a server is present in the system. If the
+// server is present, the subsequent functions should not fail due
+// to server unavailability.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CDefaultAppClient::ServiceAvailable(TInt& aErrorCode)
+    {
+    TRAP(aErrorCode,GetServiceParamsL(NULL));
+    if(aErrorCode != KErrNone) return EFalse;
+    return ETrue;
+    }
+
+// ---------------------------------------------------------------------------
+// Function to check the number of Service & MIME pairs the server would display if the 
+// ChangeDefaultsL() would be called. The purpose of this function
+// is to allow the client application not to display an entry for starting the server, in the 
+// Options menu, in case the Server's list of Service & MIME pairs is empty.
+// 
+// Please note that the function may return a higher number than the actual number
+// of pairs, because it does not check for MIMEs with System priority (that would not be 
+// displayed).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CDefaultAppClient::PairsToDisplayL()
+    {
+    RApaLsSession ls;
+    TInt i,j;
+    TInt pairs=0;
+    
+    //Get own UID
+    TUid clientAppUid = User::Identity(); 
+    
+    //connect
+    User::LeaveIfError(ls.Connect());
+    
+    //we are connected, so some initialization
+    CleanupClosePushL( ls );
+    User::LeaveIfError(ls.GetAllApps());
+    
+    //get all services & MIMEs supported by our application
+    CApaAppServiceInfoArray* servicesAndDataTypes=ls.GetAppServicesLC(clientAppUid);
+    
+    for(i=0; i<servicesAndDataTypes->Array().Count(); i++ )
+        {
+        const TApaAppServiceInfo currentServiceInfo = servicesAndDataTypes->Array()[i];
+        for ( j = 0 ; j < currentServiceInfo.DataTypes().Count() ; j++ )
+            {
+            //check if there are more than one applications supporting this Service & MIME pair
+            CApaAppServiceInfoArray* apps=ls.GetServiceImplementationsLC(currentServiceInfo.Uid(),currentServiceInfo.DataTypes()[j].iDataType);
+            
+            if(apps->Array().Count()>1)
+                {
+            	//more that one app handles this Service & MIME
+            	pairs++;
+                };
+        
+            CleanupStack::PopAndDestroy(apps);
+            };
+        };
+      
+    //clean
+    CleanupStack::PopAndDestroy(servicesAndDataTypes);
+    CleanupStack::PopAndDestroy();  // closes RApaLsSession        
+    
+    return pairs;
+    }
+    
+// ---------------------------------------------------------------------------
+// This function launches the server, as a chained application. The client application will not be
+// available to the user until the server does not exit.
+// When the server exits, the client application gains control again. The observer (if specified 
+// during instantiation (NewL) is notified that the server has exited.
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CDefaultAppClient::ChangeDefaultsL( TInt aFlags )
+    {
+    if(iServerAppUid.iUid == 0)
+        GetServiceParamsL( &iServerAppUid );
+    
+    iService->ConnectChainedAppL(iServerAppUid);
+    
+    if(iObserver)
+        iMonitor = CApaServerAppExitMonitor::NewL(*iService, *iObserver, CActive::EPriorityStandard);
+    else
+        aFlags|=EFlagNoObserver;
+    
+    iService->SetDefault(aFlags);
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// This function finds out the uid of the Default Application Server 
+// (the application registered to handle the DefaultApp service)
+// ---------------------------------------------------------------------------
+//     
+void CDefaultAppClient::GetServiceParamsL( TUid *aServerAppUid)
+    {
+    CApaAppServiceInfoArray* services = NULL;    
+    RApaLsSession ls;
+    TInt count = 0; //number of services found so far.
+    
+    User::LeaveIfError(ls.Connect());
+    CleanupClosePushL( ls );
+    
+    User::LeaveIfError(ls.GetServerApps( KDefaultAppServiceUid ));
+
+    services = ls.GetServiceImplementationsLC( KDefaultAppServiceUid );
+        
+    if( services )
+        {
+        count = services->Array().Count();
+        // get the server's Uid
+        if( aServerAppUid )
+            aServerAppUid->iUid = services->Array()[0].Uid().iUid;
+        };
+    CleanupStack::PopAndDestroy( 2 );  // destroys services + closes RApaLsSession
+            
+    if ( count == 0) User::Leave(KErrNotFound);
+    if ( count > 1) User::Leave(KErrNotSupported);
+        
+    // if we are here, it means that we have a single server handling the defaults
+    }
+
+
+
+   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/service/src/das_service.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class defines the service used to change the default app.
+*
+*/
+
+
+#include "das_service.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+
+const TUid KDefaultAppServiceUid = { 0x10281B9D };
+
+// ---------------------------------------------------------------------------
+// Sends SetDefault message to the server
+// ---------------------------------------------------------------------------
+//        
+TInt RDefaultAppService::SetDefault( TInt aFlags )
+    {
+    return SendReceive( ESetDefaultAll, TIpcArgs( aFlags ) );
+    }
+        
+// ---------------------------------------------------------------------------
+// From class RApaAppServiceBase.
+// Returns the uid of the service
+// ---------------------------------------------------------------------------
+//
+TUid RDefaultAppService::ServiceUid() const
+    {
+    return KDefaultAppServiceUid;
+    }        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/services_db/BWINS/servicesdbU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,11 @@
+EXPORTS
+	??1CServicesDB@@UAE@XZ @ 1 NONAME ; CServicesDB::~CServicesDB(void)
+	?Count@CServicesDB@@QBEHXZ @ 2 NONAME ; int CServicesDB::Count(void) const
+	?NewL@CServicesDB@@SAPAV1@PAVTResourceReader@@@Z @ 3 NONAME ; class CServicesDB * CServicesDB::NewL(class TResourceReader *)
+	?NewLC@CServicesDB@@SAPAV1@PAVTResourceReader@@@Z @ 4 NONAME ; class CServicesDB * CServicesDB::NewLC(class TResourceReader *)
+	?ServiceNameLC@CServicesDB@@QBEPAVHBufC16@@H@Z @ 5 NONAME ; class HBufC16 * CServicesDB::ServiceNameLC(int) const
+	?ServiceNameLC@CServicesDB@@QBEPAVHBufC16@@VTUid@@@Z @ 6 NONAME ; class HBufC16 * CServicesDB::ServiceNameLC(class TUid) const
+	?ServiceStringLC@CServicesDB@@QBEPAVHBufC16@@HABVTDes16@@@Z @ 7 NONAME ; class HBufC16 * CServicesDB::ServiceStringLC(int, class TDes16 const &) const
+	?ServiceStringLC@CServicesDB@@QBEPAVHBufC16@@VTUid@@ABVTDes16@@@Z @ 8 NONAME ; class HBufC16 * CServicesDB::ServiceStringLC(class TUid, class TDes16 const &) const
+	?ServiceUidL@CServicesDB@@QBE?AVTUid@@H@Z @ 9 NONAME ; class TUid CServicesDB::ServiceUidL(int) const
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/services_db/Eabi/servicesdbU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,15 @@
+EXPORTS
+	_ZN11CServicesDB4NewLEP15TResourceReader @ 1 NONAME
+	_ZN11CServicesDB5NewLCEP15TResourceReader @ 2 NONAME
+	_ZN11CServicesDBD0Ev @ 3 NONAME
+	_ZN11CServicesDBD1Ev @ 4 NONAME
+	_ZN11CServicesDBD2Ev @ 5 NONAME
+	_ZNK11CServicesDB11ServiceUidLEi @ 6 NONAME
+	_ZNK11CServicesDB13ServiceNameLCE4TUid @ 7 NONAME
+	_ZNK11CServicesDB13ServiceNameLCEi @ 8 NONAME
+	_ZNK11CServicesDB15ServiceStringLCE4TUidRK6TDes16 @ 9 NONAME
+	_ZNK11CServicesDB15ServiceStringLCEiRK6TDes16 @ 10 NONAME
+	_ZNK11CServicesDB5CountEv @ 11 NONAME
+	_ZTI11CServicesDB @ 12 NONAME DATA 12 ; #<TI>#
+	_ZTV11CServicesDB @ 13 NONAME DATA 20 ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/services_db/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project Service DB
+*
+*/
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+
+PRJ_MMPFILES
+services_db.mmp
+
+PRJ_TESTMMPFILES
+
+
+PRJ_TESTEXPORTS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/services_db/group/services_db.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for Services DB
+*
+*/
+
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>  
+
+TARGET                  servicesdb.dll
+TARGETTYPE              DLL
+UID                     0x1000008d 0x10281B9F
+
+CAPABILITY              CAP_GENERAL_DLL DRM
+VENDORID                VID_DEFAULT
+
+// Define directories for the .def-files of WINSCW build.
+// IMPORTANT NOTICE:  The lines in the example that end with a backslash 
+// must have one space after the backslash.
+#if defined(ARMCC)
+deffile ../Eabi/ 
+#elif defined( WINSCW )
+deffile ../BWINS/ 
+#endif
+
+
+SOURCEPATH              ../src
+SOURCE                  services_db.cpp
+
+USERINCLUDE             ../inc
+
+// Default system include paths for middleware layer modules.
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY                 euser.lib
+LIBRARY                 commonengine.lib
+LIBRARY                 bafl.lib  //TResourceReader
+
+//EXPORTUNFROZEN
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defaultapplicationsettings/services_db/src/services_db.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,230 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implements the Services DB API
+*
+*/
+
+
+#include <e32std.h>
+#include <bautils.h>
+#include <StringLoader.h>
+
+#include <services_db.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CServicesDB::NewLC()
+//
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CServicesDB* CServicesDB::NewLC( TResourceReader* aResReader )
+    {
+    CServicesDB* self = new (ELeave) CServicesDB();
+    CleanupStack::PushL(self);
+    self->ConstructL(aResReader);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CServicesDB::NewL()
+//
+//
+// ---------------------------------------------------------------------------
+//    
+EXPORT_C CServicesDB* CServicesDB::NewL( TResourceReader* aResReader )
+    {
+    CServicesDB* self = CServicesDB::NewLC(aResReader);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CServicesDB::CServicesDB()
+//
+//
+// ---------------------------------------------------------------------------
+//
+CServicesDB::CServicesDB()
+    {
+    //no implementation necessary
+    }
+
+// ---------------------------------------------------------------------------
+// CServicesDB::~CServicesDB()
+//
+//
+// ---------------------------------------------------------------------------
+//    
+EXPORT_C CServicesDB::~CServicesDB()
+    {
+    iServiceUids.Close();
+    iServiceNames.ResetAndDestroy();
+    iServiceLoc.ResetAndDestroy();
+    }
+
+// ---------------------------------------------------------------------------
+// The class is constructed by reading the data from the specified resource id into memory
+// ---------------------------------------------------------------------------
+//
+void CServicesDB::ConstructL( TResourceReader* aResReader )
+    {
+    TInt i;
+    TInt count = aResReader->ReadInt16();
+    for ( i = 0; i < count; i++ )
+        {
+        //read the service uid
+        TInt uid=aResReader->ReadInt32();
+        if(uid == 0)User::Leave(KErrArgument);
+        //read the service name
+        HBufC* service=aResReader->ReadHBufCL();
+        if(!service)User::Leave(KErrArgument);
+        //read the localized string
+        HBufC* serviceLoc=aResReader->ReadHBufCL();
+        if(!serviceLoc)User::Leave(KErrArgument);
+        
+        //append things
+        iServiceUids.Append(uid);
+        iServiceNames.Append(service);//takes ownership
+        iServiceLoc.Append(serviceLoc);//takes ownership
+        }
+    //done
+    }            
+
+// ---------------------------------------------------------------------------
+// Returns the number of available services 
+// (the number of services read from the resource during construction)
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TInt CServicesDB::Count() const
+    {
+    return iServiceUids.Count();
+    }
+
+// ---------------------------------------------------------------------------
+// Function to return the Uid of a service (by index).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TUid CServicesDB::ServiceUidL(TInt aIndex) const
+    {
+    if(aIndex<0 || aIndex>=iServiceUids.Count())
+        User::Leave(KErrArgument);
+    return TUid::Uid(iServiceUids[aIndex]);
+    }
+    
+    
+// ---------------------------------------------------------------------------
+// Function to return the localized name associated with a service. If the returned 
+// strings accepts a parameter, this can be specified as aParam
+// ---------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CServicesDB::ServiceStringLC(TInt aIndex, const TDes& aParam) const
+    {
+    TInt size=aParam.Size();
+    HBufC *string=NULL;
+    
+    //check parameters
+    if(aIndex<0 || aIndex>=iServiceUids.Count())
+        User::Leave(KErrArgument);
+    
+    //get the size of the new string
+    size+=iServiceLoc[aIndex]->Size();
+    //allocate the string
+    string = HBufC::NewLC(size);
+    //create string content
+    TPtr ptr=string->Des();
+    if(aParam.Size())
+        {
+        //we have something in aParam
+        //ptr.Format(*iServiceLoc[aIndex],&aParam);
+        StringLoader::Format(ptr,*iServiceLoc[aIndex],-1,aParam);
+        }
+    else
+        {
+        //nothing in aParam, just copy the localized string to string
+        ptr.Copy(*iServiceLoc[aIndex]);
+        }
+    //done, return
+    return string; //string is on the stack, too
+    }
+    
+// ---------------------------------------------------------------------------
+// Function to return the localized name associated with a service. If the returned 
+// strings accepts a parameter, this can be specified as aParam
+// ---------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CServicesDB::ServiceStringLC(TUid aServiceUid, const TDes& aParam) const
+    {
+    HBufC* string=NULL;
+    TInt i;
+    
+    //look for the service UIDs
+    for(i=0; i<iServiceUids.Count(); i++)
+        {
+        if(iServiceUids[i] == aServiceUid.iUid)
+            {
+            string = ServiceStringLC(i,aParam);
+            break;//service found
+            }
+        }
+    if(!string)CleanupStack::PushL(string);//otherwise, string is already on the stack!
+    return string;
+    }
+    
+// ---------------------------------------------------------------------------
+// Function to return the generic name of a service. 
+// ---------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CServicesDB::ServiceNameLC(TInt aIndex) const
+    {
+    HBufC* string=NULL;
+    TInt size=0;
+     
+    //check parameters
+    if(aIndex<0 || aIndex>=iServiceUids.Count())
+        User::Leave(KErrArgument);
+    
+    //get the size of the new string
+    size=iServiceNames[aIndex]->Size();
+    //allocate the string
+    string = HBufC::NewLC(size);
+    //create string content
+    TPtr ptr=string->Des();
+    ptr.Copy(*iServiceNames[aIndex]);
+    return string;
+    }
+
+// ---------------------------------------------------------------------------
+// Function to return the generic name of a service. 
+// ---------------------------------------------------------------------------
+//
+EXPORT_C HBufC* CServicesDB::ServiceNameLC(TUid aServiceUid) const
+    {
+    HBufC* string=NULL;
+    TInt i;
+    
+    //loc for the service UIDs
+    for(i=0; i<iServiceUids.Count(); i++)
+        {
+        if(iServiceUids[i] == aServiceUid.iUid)
+            {
+            string = ServiceNameLC(i);
+            break;//service found
+            }
+        }
+    if(!string)CleanupStack::PushL(string);//otherwise, string is already on the stack!
+    return string;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/default_app_client_api.metaxml	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="a5a5f7d02cd304f45dac9894b0154901" dataversion="2.0">
+  <name>Default App Client API</name>
+  <description>API for launching the Default App Server and allow the user to change the default app for Services &amp; MIMEs</description>
+  <type>c++</type>
+  <collection>DefaultApplicationSettings</collection>
+  <libs>
+    <lib name="defaultappclient.lib" />
+  </libs>
+  <release category="platform"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  File that exports the files belonging to 
+:                Default App Client API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/das_client.h     APP_LAYER_PLATFORM_EXPORT_PATH(das_client.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/inc/das_client.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Client interface to ask for setting the default application
+*
+*/
+
+
+
+#ifndef C_DEFAULTAPPCLIENT_H
+#define C_DEFAULTAPPCLIENT_H
+
+#include <e32def.h>
+#include <e32base.h>
+#include <AknServerApp.h>
+
+class RDefaultAppService; 
+ 
+ 
+/**
+ *  Client API for setting the default application.
+ *
+ *  This class defines the API that applications should use to trigger the launch of the
+ *  Default Application Server, that asks the user to select default applications for those
+ *  Service & MIME pairs for which the client application is a candidate.
+ *
+ *  A client application should first instantiate the service, using eithe NewL() or NewLC()
+ *  The client application can check first if the sercive is available in the system (by using 
+ *  the ServiceAvailable() function. The client application may also check if there is 
+ *  anything to display (if there is any Service & MIME that the client application supports for 
+ *  which there is at least another application supporting the pair). If there is no such pair,
+ *  then launching the server would display an empty list). This checking is performed using the 
+ *  PairsToDisplayL() function. 
+ *
+ *  After the above checkings are done, the client application can ask the server to change
+ *  defaults by calling the ChangeDefaultsL() function. 
+ *    
+ *
+ *  @lib defaultappclient.dll
+ *  @since S60 v5.0
+ */
+class CDefaultAppClient : public CBase 
+    {
+
+public:
+
+    /**  flags used to modify the service behaviour */
+    enum TFlags
+        {
+        EFlagNoObserver=1,
+        EFlagReserved1=2,
+        EFlagReserved2=4
+        };
+
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    IMPORT_C static CDefaultAppClient* NewL(MAknServerAppExitObserver* aObserver);
+
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    IMPORT_C static CDefaultAppClient* NewLC(MAknServerAppExitObserver* aObserver);
+
+    /**
+     * Destructor.
+     */
+    IMPORT_C virtual ~CDefaultAppClient();
+
+    /**
+     * Function to check if a server is present in the system. If the
+     * server is present, the subsequent functions should not fail due
+     * to server unavailability.
+     *
+     * @since S60 v5.0
+     * @return ETrue or EFalse, depending service/server availability
+     */
+    IMPORT_C static TBool ServiceAvailable( TInt& aErrorCode );
+    
+    /**
+     * Function to check the number of Service & MIME pairs the server would display if the 
+     * ChangeDefaultsL() would be called. The purpose of this function
+     * is to allow the client application not to display an entry for starting the server, in the 
+     * Options menu, in case the Server's list of Service & MIME pairs is empty.
+     * 
+     * Please note that the function may return a higher number than the actual number
+     * of pairs, because it does not check for MIMEs with System priority (that would not be 
+     * displayed).
+     *
+     * @since S60 v5.0
+     * @return the number of Service & MIME pairs the server would display
+     */
+    IMPORT_C TInt PairsToDisplayL();
+    
+    /**
+     * This function launches the server, as a chained application. The client application will not be
+     * available to the user until the server does not exit.
+     * When the server exits, the client application gains control again. The observer (if specified 
+     * during instantiation (NewL) is notified that the server has exited.
+     *
+     * @since S60 v5.0
+     * @param aFlags service flags 
+     */
+    IMPORT_C void ChangeDefaultsL( TInt aFlags = 0 );
+    
+
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    CDefaultAppClient();
+
+    /**
+     * Symbian constructor.
+     */
+    void ConstructL( MAknServerAppExitObserver* aObserver );
+    
+    /**
+     * This function finds out the uid of the Default Application Server 
+     * (the application registered to handle the DefaultApp service)
+     *
+     * @since S60 v5.0
+     * @param aServerAppUid If parameter is non-NULL, it returns the Uid of the server there
+     */
+    static void GetServiceParamsL( TUid* aServerAppUid); 
+
+private: // data
+
+    /**
+     * The UID of the server application (we discover the server)
+     */
+    TUid iServerAppUid;
+
+    /**
+     * Pointer to the service class.
+     * Own.
+     */
+    RDefaultAppService *iService; 
+    
+    /**
+     * Pointer to the Observer to call after the operation initiated by
+     * ChangeDefaultsAsyncL() has finished.
+     * Not Owned.
+     */
+    MAknServerAppExitObserver* iObserver;
+    
+    /**
+     * Monitor object that calls the iObserver when the server has exited.
+     * Owned.
+     */
+    CApaServerAppExitMonitor* iMonitor;
+    
+    };
+
+#endif // C_DEFAULTAPPCLIENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/bwins/DasClientApiTestU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/eabi/DasClientApiTestU.def	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.bat	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,22 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description: 
+@rem
+
+copy C:\TestFramework\testframework_DasClientApiTest.ini C:\TestFramework\TestFramework.ini
+md e:\bctest
+md e:\bctest\Results
+
+ATSINTERFACE.EXE -testmodule testcombiner -config C:\TestFramework\uiDasClientApiTest.cfg
+copy c:\Logs\TestFramework\TestReport.txt e:\bctest\results\DAS_TEST.txt
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Personalisation application localised resource IBY
+*
+*/
+
+
+/*
+-----------------------------------------------------------------------------
+
+    DESCRIPTION
+
+    stiftestframework_DasClientApiTest.iby file specifies needed test components for
+    ROM image
+
+-----------------------------------------------------------------------------
+*/
+
+#ifndef DasClientApiTest__IBY
+#define DasClientApiTest__IBY
+
+file=ABI_DIR\BUILD_DIR\DasClientApiTest.DLL                SHARED_LIB_DIR\DasClientApiTest.DLL
+
+data=\epoc32\data\z\system\data\testframework_DasClientApiTest.ini       testframework\testframework_DasClientApiTest.ini
+
+data=\epoc32\data\z\system\data\tcDasClientApiTest.cfg               testframework\tcDasClientApiTest.cfg
+
+data=\epoc32\data\z\system\data\ui_DasClientApiTest.cfg               testframework\ui_DasClientApiTest.cfg
+
+#endif // DasClientApiTest__IBY
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 specification file of  DasClientApiTest
+*
+*/
+
+
+#include <data_caging_paths.hrh> 
+#include <platform_paths.hrh>
+
+TARGET          DasClientApiTest.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+
+DEFFILE         DasClientApiTest.def
+
+//START RESOURCE ../data/DasClientApiTest_reg.rss
+//	TARGETPATH  /private/10003a3f/apps
+//END
+
+#ifdef SBSV2
+USERINCLUDE     ../inc 
+
+    MW_LAYER_SYSTEMINCLUDE
+
+#else // SBSV2 not defined
+USERINCLUDE     ../inc 
+APP_LAYER_SYSTEMINCLUDE 
+    
+
+SOURCEPATH      ../src
+#endif // SBSV2
+
+SOURCE          DasClientApiTest.cpp
+SOURCE          DasClientApiTestblocks.cpp
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib
+LIBRARY         defaultappclient.lib//default application client
+LIBRARY			avkon.lib//MAknServerAppExitObserver
+LIBRARY         cone.lib 
+LIBRARY         eikcore.lib 
+LIBRARY			eiksrv.lib
+  
+LANG            SC
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/DasClientApiTest.pkg	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,67 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0""
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: Installation file for STIF
+;
+;
+;
+;
+; Installation file for STIF
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"\epoc32\release\armv5\urel\DasClientApiTest.dll"   -   "!:\Sys\Bin\DasClientApiTest.dll"
+
+"\Epoc32\winscw\c\testframework\testframework_DasClientApiTest.ini"-"!:\TestFramework\testframework_DasClientApiTest.ini"
+"\Epoc32\winscw\c\testframework\tcDasClientApiTest.cfg"-"!:\TestFramework\tcDasClientApiTest.cfg"
+"\Epoc32\winscw\c\testframework\ui_DasClientApiTest.cfg"-"!:\TestFramework\ui_DasClientApiTest.cfg"
+"\epoc32\winscw\c\DasClientApiTest.bat"-"!:\DASTest.bat"
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project DasClientApiTest
+*
+*/
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+#ifdef SBSV2
+    PRJ_TESTEXPORTS
+    DasClientApiTest.iby                              /epoc32/rom/include/DasClientApiTest.iby
+    
+    ../init/testframework_DasClientApiTest.ini        /epoc32/data/z/system/data/testframework.ini
+
+    ../conf/ui_DasClientApiTest.cfg                   /epoc32/winscw/c/TestFramework/ui_DasClientApiTest.cfg
+
+    ../conf/tcDasClientApiTest.cfg                    /epoc32/wins/c/TestFramework/tcDasClientApiTest.cfg
+
+#else // SBSV2 not defined
+    PRJ_TESTEXPORTS
+
+    ../init/testframework_DasClientApiTest.ini           /epoc32/wins/c/TestFramework/testframework.ini
+    ../init/testframework_DasClientApiTest.ini           /epoc32/winscw/c/TestFramework/testframework.ini
+
+    ../conf/ui_DasClientApiTest.cfg                      /epoc32/wins/c/TestFramework/ui_DasClientApiTest.cfg
+    ../conf/ui_DasClientApiTest.cfg                      /epoc32/data/z/system/data/ui_DasClientApiTest.cfg
+
+    ../conf/tcDasClientApiTest.cfg                       /epoc32/winscw/c/TestFramework/tcDasClientApiTest.cfg
+    ../conf/tcDasClientApiTest.cfg                       /epoc32/data/z/system/data/tcDasClientApiTest.cfg
+
+#endif // SBSV2
+
+DasClientApiTest.iby /epoc32/rom/include/DasClientApiTest.iby
+../init/testframework_DasClientApiTest.ini /epoc32/data/z/system/data/testframework.ini
+../init/testframework_DasClientApiTest.ini		/epoc32/winscw/c/testframework/testframework_DasClientApiTest.ini
+../conf/ui_DasClientApiTest.cfg /epoc32/winscw/c/TestFramework/ui_DasClientApiTest.cfg
+../conf/tcDasClientApiTest.cfg /epoc32/wins/c/TestFramework/tcDasClientApiTest.cfg
+ 
+PRJ_EXPORTS
+
+DasClientApiTest.bat		/epoc32/winscw/c/DasClientApiTest.bat
+
+//testframework_DasClientApiTest.ini		/epoc32/winscw/c/testframework/testframework_DasClientApiTest.ini
+//tcDasClientApiTest.cfg	/epoc32/winscw/c/testframework/tcDasClientApiTest.cfg
+//ui_DasClientApiTest.cfg	/epoc32/winscw/c/testframework/ui_DasClientApiTest.cfg
+
+PRJ_TESTMMPFILES
+DasClientApiTest.mmp
+
+PRJ_MMPFILES
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/inc/CClientLauncher.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CCClientLauncher declaration.
+*
+*/
+
+#ifndef CCLIENTLAUNCHER_H
+#define CCLIENTLAUNCHER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <aknserverapp.h> 
+#include <aknappui.h> 
+
+// CLASS DECLARATION
+
+/**
+ *  CCClientLauncher
+ * 
+ */
+class CCClientLauncher : public CAknAppUi,public MAknServerAppExitObserver
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Destructor.
+     */
+    ~CCClientLauncher();
+
+    /**
+     * Two-phased constructor.
+     */
+    static CCClientLauncher* NewL();
+    
+    /**
+     * Two-phased constructor.
+     */
+    static CCClientLauncher* NewLC();
+    
+public:
+    //function from CAknAppUi
+    void  ProcessCommandL (TInt aCommand);
+    
+private:
+    //function from MAknServerAppExitObserver
+    //handle the exit of the server.
+    void HandleServerAppExit(TInt aReason);
+    
+private:
+
+    /**
+     * Constructor for performing 1st stage construction
+     */
+    CCClientLauncher();
+
+    /**
+     * EPOC default constructor for performing 2nd stage construction
+     */
+    void ConstructL();
+
+    };
+
+#endif // CCLIENTLAUNCHER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/inc/DasClientApiTest.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,170 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of class CDasClientApiTest
+*
+*/
+
+
+#ifndef C_DASCLIENTAPITEST_H
+#define C_DASCLIENTAPITEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+#include <aknserverapp.h> 
+#include <das_client.h>
+//
+#include <CClientLauncher.h>
+// MACROS
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+// User MACROS
+#define KErrGeneral     -2
+#define KFirstOption    1
+#define KSecondtOption  2
+
+//define client flags
+#define KFlagNoObserver     1
+#define KFlagReserved1      2
+#define KFlagReserved2      4
+// Logging path
+_LIT( KDasClientApiTestLogPath, "\\logs\\testframework\\DasClientApiTest\\" ); 
+// Log file
+_LIT( KDasClientApiTestLogFile, "DasClientApiTest.txt" ); 
+_LIT( KDasClientApiTestLogFileWithTitle, "DasClientApiTest_[%S].txt" );
+
+//
+/**
+*  CDasClientApiTest test class for STIF Test Framework TestScripter.
+*  @since S60 5.0
+*/
+
+NONSHARABLE_CLASS(CDasClientApiTest) : public CScriptBase/*,public MAknServerAppExitObserver*/
+    {
+public:  // Constructors and destructor
+
+    /**
+    * Two-phased constructor.
+    */
+    static CDasClientApiTest* NewL( CTestModuleIf& aTestModuleIf );
+
+    /**
+    * Destructor.
+    */
+    virtual ~CDasClientApiTest();
+    
+/*private:
+    //function from MAknServerAppExitObserver. is used to handle the exit of the server.
+    
+    void HandleServerAppExit(TInt aReason);*/
+
+public: // Functions from base classes
+
+    /**
+    * From CScriptBase Runs a script line.
+    * @since S60 5.0
+    * @param aItem Script line containing method name and parameters
+    * @return Symbian OS error code
+    */
+    virtual TInt RunMethodL( CStifItemParser& aItem );
+    
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CDasClientApiTest( CTestModuleIf& aTestModuleIf );
+
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+    void ConstructL();
+
+    /**
+    * Frees all resources allocated from test methods.
+    * @since S60 5.0
+    */
+    void Delete();
+
+    /**
+    * Test method.
+    * @since S60 5.0
+    * @param aItem Script line containing parameters.
+    * @return Symbian OS error code.
+    */
+    virtual TInt InitialClientL(const TInt aOption );
+    
+    virtual TInt CallClientNewLL( CStifItemParser& aItem );
+    
+    virtual TInt CallClientNewLCL( CStifItemParser& aItem );
+    
+    virtual TInt CallServiceAvailableL( CStifItemParser& aItem );
+    
+//    virtual TInt CallPairsToDisplayLL( CStifItemParser& aItem );
+    
+    virtual TInt CallChangeDefaultsLL( CStifItemParser& aItem );
+    /**
+     * Method used to log version of test class
+     */
+    void SendTestClassVersion();
+    
+        /**
+     * Turn off ScreenSaver
+     * @since S60 5.0
+     * @return Symbian OS error code.
+     */
+    void TurnOffScreenSaver();
+
+    /**
+     * Restore ScreenSaver
+     * @since S60 5.0
+     * @return Symbian OS error code.
+     */
+    void RestoreScreenSaver();
+
+
+    /**
+    * In this method NewLC is called.
+    * @since ?Series60_version
+    * @param aResReader Resource reader to get information from Resource file
+    * @return Symbian OS error code.
+    */
+    void CallNewlcL(  MAknServerAppExitObserver* aObserver );
+
+
+private:    // Data
+
+    /**
+     * ScreenSaver Property
+     */
+    TInt iOldScreenSaverProperty;
+    
+    /**
+     * ?description_of_pointer_member
+     * Not own.
+     */
+    //?type* ?member_name;
+    CDefaultAppClient* iClient;
+    
+    //
+    CCClientLauncher* iLauncher;
+    
+    };
+
+#endif      // C_DASCLIENTAPITEST_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/src/DasClientApiTest.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,181 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of class CDasClientApiTest
+*
+*/
+
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include <SettingServerClient.h>
+#include <ScreensaverInternalPSKeys.h>
+#include <e32property.h>
+
+#include "DasClientApiTest.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CDasClientApiTest::CDasClientApiTest
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CDasClientApiTest::CDasClientApiTest( CTestModuleIf& aTestModuleIf ):
+    CScriptBase( aTestModuleIf )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CDasClientApiTest::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CDasClientApiTest::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KDasClientApiTestLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KDasClientApiTestLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KDasClientApiTestLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    
+    TurnOffScreenSaver();
+    }
+
+// -----------------------------------------------------------------------------
+// CDasClientApiTest::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CDasClientApiTest* CDasClientApiTest::NewL( CTestModuleIf& aTestModuleIf )
+    {
+    CDasClientApiTest* self = new( ELeave ) CDasClientApiTest( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CDasClientApiTest::~CDasClientApiTest()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+
+    }
+
+//-----------------------------------------------------------------------------
+// CDasClientApiTest::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CDasClientApiTest::SendTestClassVersion()
+    {
+    TVersion moduleVersion;
+    moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+    moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+    moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+
+    TFileName moduleName;
+    moduleName = _L( "DasClientApiTest.dll" );
+
+    TBool newVersionOfMethod = ETrue;
+    TestModuleIf().SendTestModuleVersion( moduleVersion, moduleName, 
+        newVersionOfMethod );
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+    return ( CScriptBase* ) CDasClientApiTest::NewL( aTestModuleIf );
+    }
+
+// -----------------------------------------------------------------------------
+// Turn off ScreenSaver
+// -----------------------------------------------------------------------------
+//
+void CDasClientApiTest::TurnOffScreenSaver()
+    {
+    //TInt Get(TUid aCategory, TUint aKey, TInt &aValue);
+    TInt err1 = RProperty::Get( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, 
+        iOldScreenSaverProperty );
+    TInt err2 = RProperty::Set( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, 
+        KScreenSaverAllowScreenSaver );    
+    RDebug::Printf( "screensaver property=%d err1=%d err2=%d\n", 
+        iOldScreenSaverProperty, err1, err2 );
+    }
+
+// -----------------------------------------------------------------------------
+// Restore ScreenSaver
+// -----------------------------------------------------------------------------
+//
+void CDasClientApiTest::RestoreScreenSaver()
+    {
+    RProperty::Set( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, 
+        iOldScreenSaverProperty );
+    User::ResetInactivityTime();
+    }
+
+
+//  End of File
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/default_app_client_api/tsrc/DasClientApiTest/src/DasClientApiTestblocks.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,250 @@
+/*
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 cpp file has the functions to test Das Client API.
+*
+*/
+
+
+// [INCLUDE FILES]
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "DasClientApiTest.h"
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CDasClientApiTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CDasClientApiTest::Delete() 
+    { 
+    if( iLauncher )
+    	{
+        delete iLauncher;
+        iLauncher = NULL;
+    	}
+
+    if( iClient )
+    	{
+        delete iClient;
+        iClient = NULL;
+    	}
+    }
+
+// -----------------------------------------------------------------------------
+// CDasClientApiTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CDasClientApiTest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "CallClientNewLL", CDasClientApiTest::CallClientNewLL ),
+        ENTRY( "CallClientNewLCL", CDasClientApiTest::CallClientNewLCL ),
+        ENTRY( "CallServiceAvailableL", CDasClientApiTest::CallServiceAvailableL ),
+        ENTRY( "CallChangeDefaultsLL", CDasClientApiTest::CallChangeDefaultsLL ),
+        // [test cases entries]
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CDasClientApiTest::CallNewlcL
+// This function is used because we can not TRAP CServicesDB::NewLC
+// -----------------------------------------------------------------------------
+//
+void CDasClientApiTest::CallNewlcL(  MAknServerAppExitObserver* aObserver )
+{ 
+   iClient = CDefaultAppClient::NewLC( aObserver );
+   CleanupStack::Pop( iClient );
+}
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::InitialClientL
+// This function is used to create CDefaultAppClient object. This function is used
+// to call CDefaultAppClient::NewL and CDefaultAppClient::NewLC functions. 
+// -----------------------------------------------------------------------------
+//
+TInt CDasClientApiTest::InitialClientL( TInt aOption )
+    {
+    //launcher of the client;
+    if( aOption == KFirstOption )
+        {
+        TRAPD( error, iClient = CDefaultAppClient::NewL( NULL ) );
+        if( KErrNone != error )
+            {
+            iLog->Log( _L( "=>CDefaultAppClient::NewL leaves" ) );
+            return error;
+            }
+        }
+    else
+        {
+        TRAPD( error1, CallNewlcL( NULL ) );
+        if( KErrNone != error1 )
+            {
+            iLog->Log( _L( "=>CDefaultAppClient::NewLC leaves" ) );
+            return error1;
+            }
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallClientNewLL
+// Is used to test CDefaultAppClient::NewL
+// -----------------------------------------------------------------------------
+TInt CDasClientApiTest::CallClientNewLL( CStifItemParser& /*aItem*/ )
+    {
+    TInt result;
+    
+    TRAPD( error, result = InitialClientL( KFirstOption ) );   
+    if( KErrNone != error )
+        {
+        iLog->Log( _L( "CDefaultAppClient object not created with NewL." ) ); 
+        return error;
+        }
+    else
+        {
+        if( KErrNone != result )
+            {
+            iLog->Log( _L( "CDefaultAppClient object not created with NewL." ) ); 
+            return result;
+            }
+        else
+        	{
+        	iLog->Log( _L( "CDefaultAppClient object created with NewL." ) ); 
+        	}
+        };
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallClientNewLCL
+// Is used to test CDefaultAppClient::NewLC
+// -----------------------------------------------------------------------------
+TInt CDasClientApiTest::CallClientNewLCL( CStifItemParser& /*aItem*/ )
+    {
+    TInt result;
+    TRAPD( error, result = InitialClientL( KSecondtOption ) );
+    if( KErrNone != error )
+        {
+        return error;
+        }
+    else
+        {
+        if( KErrNone != result )
+            {
+            return result;
+            }
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallServiceAvailableL
+// Is used to test CDefaultAppClient::ServiceAvailableL
+// -----------------------------------------------------------------------------
+TInt CDasClientApiTest::CallServiceAvailableL( CStifItemParser& /*aItem*/ )
+    {
+    //Initial the iClient
+    TInt result;
+    TRAPD( error, result = InitialClientL( KFirstOption ) );
+    if( KErrNone != error )
+        {
+        return error;
+        }
+    else
+        {
+        if( KErrNone != result )
+            {
+            return result;
+            }
+        };
+    //call the function 
+
+    TInt errcode;
+    TBool returnvalue;
+    TRAPD( callerror, returnvalue = CDefaultAppClient::ServiceAvailable( errcode ) );
+    if( KErrNone != callerror )
+        {
+        iLog->Log(_L( "Call function ServiceAvailable failed.The function leaves,the leace code is %d"), callerror );
+        return callerror;
+        }
+    else
+        {
+        if( returnvalue != KErrNone )
+            {
+            iLog->Log( _L( "The function returned sucessfully,But the service is not available. The error code is %d" ), errcode );
+            return errcode;
+            }
+        else
+            {
+            iLog->Log( _L( "The function ServiceAvailable called success, and the service is available! " ) );
+            }
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallChangeDefaultsLL
+// Is used to test CDefaultAppClient::ChangeDefaultsL
+// -----------------------------------------------------------------------------
+TInt CDasClientApiTest::CallChangeDefaultsLL( CStifItemParser& /*aItem*/ )
+    {
+    //
+    TInt result;
+    TRAPD( error, result = InitialClientL( KFirstOption ) );
+    if(KErrNone != error)
+        {
+        iLog->Log( _L( "Initial the iClient failed,the failed code is %d" ), error );
+        return error;
+        }
+    else
+        {
+        if( KErrNone != result )
+            {            
+            return result;
+            }
+        };
+    TRAPD( errorCall, iClient->ChangeDefaultsL() );
+    if( errorCall != KErrNone )
+        {
+        iLog->Log( _L( "Function ChangeDefaultsL is called failed. The failed code is %d" ), errorCall );
+        return errorCall;
+        }
+    else
+        {
+        iLog->Log( _L( "The Function is called successfully." ) );
+        }
+    return KErrNone;
+    }
+
+//
+//  [End of File]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes all the Domain API specific bld.inf files, which 
+*                export files.
+*
+*/
+
+
+
+#include "../default_app_client_api/group/bld.inf"
+#include "../services_db_api/group/bld.inf"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  File that exports the files belonging to 
+:                Services DB API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/services_db.rh     APP_LAYER_PLATFORM_EXPORT_PATH(services_db.rh)
+../inc/services_db.h     APP_LAYER_PLATFORM_EXPORT_PATH(services_db.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/inc/services_db.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of class CServicesDB
+*
+*/
+
+
+
+#ifndef SERVICES_DB_H
+#define SERVICES_DB_H
+
+#include <e32def.h>
+#include <e32base.h>
+
+class TResourceReader;
+ 
+/**
+ *  API for retrieving various localized strings associated with services.
+ *
+ *  This class receives a resource ID during construction (resource type is DAS_SERVICES)
+ *  and retrieves various info defined in this resource. 
+ *
+ *  @lib defaultappclient.dll
+ *  @since S60 v5.0
+ */
+class CServicesDB : public CBase
+    {
+
+public:
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    IMPORT_C static CServicesDB* NewL( TResourceReader* aResReader );
+    
+    /**
+     * Symbian OS two-phased constructor
+     * @return
+     */
+    IMPORT_C static CServicesDB* NewLC( TResourceReader* aResReader );
+
+    /**
+     * Destructor.
+     */
+    IMPORT_C ~CServicesDB();
+    
+public:
+
+    /**
+     * Returns the number of available services 
+     * (the number of services read from the resource during construction)
+     *
+     * @since S60 v5.0
+     * @return number of available services/elements
+     */
+    IMPORT_C TInt Count() const;
+    
+    /**
+     * Function to return the Uid of a service (by index).
+     *
+     * @since S60 v5.0
+     * @return the uid of the service (it leaves if aIndex is not a valid index)
+     */
+    IMPORT_C TUid ServiceUidL(TInt aIndex) const;
+    
+    /**
+     * Function to return the localized name associated with a service. If the returned 
+     * strings accepts a parameter, this can be specified as aParam
+     *
+     * @since S60 v5.0
+     * @param aIndex the index of the service
+     * @param aParam parameter for the localized string
+     * @return the localized name (it leaves if aIndex is not a valid index)
+     */
+    IMPORT_C HBufC* ServiceStringLC(TInt aIndex, const TDes& aParam) const;
+    
+    /**
+     * Function to return the localized name associated with a service. If the returned 
+     * strings accepts a parameter, this can be specified as aParam
+     *
+     * @since S60 v5.0
+     * @param aServiceUid the Uid of the service
+     * @param aParam parameter for the localized string
+     * @return the localized name (NULL, if the service is not found)
+     */
+    IMPORT_C HBufC* ServiceStringLC(TUid aServiceUid, const TDes& aParam) const;
+    
+    /**
+     * Function to return the generic name of a service. 
+     *
+     * @since S60 v5.0
+     * @param aIndex the index of the service
+     * @return the generic name of the service (it leaves if aIndex is not a valid index)
+     */
+    IMPORT_C HBufC* ServiceNameLC(TInt aIndex) const;
+    
+    /**
+     * Function to return the generic name of a service. 
+     *
+     * @since S60 v5.0
+     * @param aServiceUid the Uid of the service
+     * @return the generic name of the service (NULL, if the service is not found)
+     */
+    IMPORT_C HBufC* ServiceNameLC(TUid aServiceUid) const;
+    
+private:
+    
+    /**
+     * C++ default constructor.
+     */
+    CServicesDB();
+    
+    /**
+     * Symbian constructor.
+     */
+    void ConstructL( TResourceReader* aResReader );
+        
+private:
+    /**
+     * array of service Uids
+     */
+    RArray<TInt> iServiceUids;
+    
+    /**
+     * array of service names
+     */
+    RPointerArray<HBufC> iServiceNames;
+    
+    /**
+     * array of service localized names
+     */
+    RPointerArray<HBufC> iServiceLoc;
+    };
+
+#endif // SERVICES_DB_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/inc/services_db.rh	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Resource headers for project Services DB
+*
+*/
+
+
+#ifndef SERVICES_DB_RH
+#define SERVICES_DB_RH
+
+
+// ---------------------------------------------------------------------------
+// This structure defines a service entry: it holds the service uid,
+// service generic name, and service localized string
+// ---------------------------------------------------------------------------
+//
+STRUCT DAS_SERVICE_ENTRY
+    {
+    LONG service_uid;
+    LTEXT service_name;
+    LTEXT service_localized_name;
+    }
+
+// ---------------------------------------------------------------------------
+// This structure defines a list of service entries
+// ---------------------------------------------------------------------------
+//
+STRUCT DAS_SERVICES
+    {
+    STRUCT services[]; //Type is DAS_SERVICE_ENTRY
+    }
+
+#endif // SERVICES_DB_RH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/services_db_api.metaxml	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?>
+<api id="ae69ac471f1c896165c698e47987d2fd" dataversion="2.0">
+  <name>Services DB API</name>
+  <description>API for retrieving information about services: UID, generic name (in engineering English), localized name.</description>
+  <type>c++</type>
+  <collection>DefaultApplicationSettings</collection>
+  <libs>
+    <lib name="servicesdb.lib" />
+  </libs>
+  <release category="platform"/>
+  <attributes>
+     <!-- This indicates wether the api provedes separate html documentation -->
+     <!-- or is the additional documentation generated from headers. -->
+     <!-- If you are unsuere then the value is "no" -->
+     <htmldocprovided>no</htmldocprovided>
+     <adaptation>no</adaptation>
+  </attributes>
+</api>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/Bmarm/ServicesDbApiTestU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/Bwins/ServicesDbApiTestU.DEF	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/EABI/ServicesDbApiTestU.def	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/conf/ui_ServicesDbApiTest.cfg	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,304 @@
+###################################################################################
+#
+# This cfg file has tests for Services DB API
+# The resource file - ServicesDbApiTest.rss defined to test this api has the following services. 
+# The tests listed below are based on this resource file services
+#
+# RESOURCE DAS_SERVICES r_da_service_mime
+#    {
+#   services = 
+#        {
+#       DAS_SERVICE_ENTRY
+#            {
+#            service_uid = 0x101; // NOT A REAL UID - 257 
+#            service_name = "Open";
+#            service_localized_name = "Open Localized";
+#            },
+#        DAS_SERVICE_ENTRY
+#            {
+#            service_uid = 0x102; // NOT A REAL UID - 258
+#            service_name = "Upload";
+#            service_localized_name = "Upload Localized";
+#            },
+#        DAS_SERVICE_ENTRY
+#            {
+#            service_uid = 0x103; // NOT A REAL UID - 259
+#            service_name = "Print";
+#            service_localized_name = "Print Localized %U";
+#            }
+#        };
+#
+###################################################################################
+
+
+[Define]
+KFirstServiceIndex             0
+KSecondServiceIndex            1
+KThirdServiceIndex             2
+KNotAServiceInResourceIndex    10
+KFirstServiceUid               257
+KSecondServiceUid              258
+KThirdServiceUid               259
+KNotAServiceInResourceUid      260
+KErrGeneral                    -2
+KErrArgument                   -6
+[Enddefine]
+
+
+# This test case is for NewL
+# 1
+[Test]
+title Initialize Services DB 
+create ServicesDbApiTest foobar
+foobar InitializeSeviceDB 
+delete foobar
+[Endtest]
+
+# This test case is for NewLC
+# 2
+[Test]
+title Initialize on stack
+create ServicesDbApiTest foobar
+foobar InitializeonStackSeviceDB 
+delete foobar
+[Endtest]
+
+# Testing Count function 
+# 3 
+[Test]
+title CountSeviceDB
+create ServicesDbApiTest foobar
+foobar CountSeviceDB 
+delete foobar
+[Endtest]  
+
+######################################################################
+# Testing ServiceUidL function with different INDEX parameters 
+######################################################################
+# 4
+[Test]
+title Test ServiceUidL - No parameter
+create ServicesDbApiTest foobar
+allownextresult KErrGeneral
+foobar ServiceUidLSeviceDB 
+delete foobar
+[Endtest]  
+
+#5
+[Test]
+title Test ServiceUidL 0 INDEX
+create ServicesDbApiTest foobar
+foobar ServiceUidLSeviceDB KFirstServiceIndex
+delete foobar
+[Endtest] 
+
+#6 
+[Test]
+title Test ServiceUidL 1 INDEX
+create ServicesDbApiTest foobar
+foobar ServiceUidLSeviceDB KSecondServiceIndex
+delete foobar
+[Endtest] 
+
+#7
+[Test]
+title Test ServiceUidL 2 INDEX
+create ServicesDbApiTest foobar
+foobar ServiceUidLSeviceDB KThirdServiceIndex
+delete foobar
+[Endtest] 
+
+#8
+[Test]
+title Test ServiceUidL Wrong INDEX
+create ServicesDbApiTest foobar
+allownextresult KErrArgument
+foobar ServiceUidLSeviceDB KNotAServiceInResourceIndex
+delete foobar
+[Endtest] 
+
+#--------------------------------------------------------------------#
+
+######################################################################
+# Testing ServiceStringLC function with different INDEX parameters 
+######################################################################
+#9
+[Test]
+title Test ServiceStringLC with No Index
+create ServicesDbApiTest foobar
+allownextresult KErrGeneral
+foobar ServiceStringLCSeviceDB 
+delete foobar
+[Endtest]  
+
+#10
+[Test]
+title Test ServiceStringLC with  0 Index
+create ServicesDbApiTest foobar
+foobar ServiceStringLCSeviceDB KFirstServiceIndex
+delete foobar
+[Endtest]  
+
+#11
+[Test]
+title Test ServiceStringLC with  1 Index
+create ServicesDbApiTest foobar
+foobar ServiceStringLCSeviceDB KSecondServiceIndex
+delete foobar
+[Endtest]  
+
+#12
+[Test]
+title Test ServiceStringLC with  2 Index
+create ServicesDbApiTest foobar
+foobar ServiceStringLCSeviceDB KThirdServiceIndex
+delete foobar
+[Endtest]  
+
+#13
+[Test]
+title Test ServiceStringLC with  wrong Index
+create ServicesDbApiTest foobar
+allownextresult KErrArgument
+foobar ServiceStringLCSeviceDB KNotAServiceInResourceIndex
+delete foobar
+[Endtest]  
+
+#--------------------------------------------------------------------#
+
+######################################################################
+# Testing ServiceStringLC function with different UID as parameters 
+######################################################################
+#14
+[Test]
+title Test ServiceStringLC with No UID
+create ServicesDbApiTest foobar
+allownextresult KErrGeneral
+foobar ServiceStringLCUIDSeviceDB 
+delete foobar
+[Endtest]
+
+#15
+[Test]
+title Test ServiceStringLC with 257 UID (0x101)
+create ServicesDbApiTest foobar
+foobar ServiceStringLCUIDSeviceDB KFirstServiceUid
+delete foobar
+[Endtest]
+
+#16
+[Test]
+title Test ServiceStringLC with 258 UID (0x102)
+create ServicesDbApiTest foobar
+foobar ServiceStringLCUIDSeviceDB KSecondServiceUid
+delete foobar
+[Endtest]
+
+#17
+[Test]
+title Test ServiceStringLC with 258 UID (0x103)
+create ServicesDbApiTest foobar
+foobar ServiceStringLCUIDSeviceDB KThirdServiceUid
+delete foobar
+[Endtest]
+
+#18
+[Test]
+title Test ServiceStringLC with Wrong UID 
+create ServicesDbApiTest foobar
+foobar ServiceStringLCUIDSeviceDB KNotAServiceInResourceUid
+delete foobar
+[Endtest]
+
+#--------------------------------------------------------------------#
+
+######################################################################
+# Testing ServiceNameLC function with different INDEX as parameters 
+######################################################################
+#19
+[Test]
+title test ServiceNameLC with No parameter 
+allownextresult KErrGeneral
+create ServicesDbApiTest foobar
+foobar ServiceNameLCSeviceDB 
+delete foobar
+[Endtest]
+
+#20
+[Test]
+title test ServiceNameLC with 0 index
+create ServicesDbApiTest foobar
+foobar ServiceNameLCSeviceDB KFirstServiceIndex
+delete foobar
+[Endtest]
+
+#21
+[Test]
+title test ServiceNameLC with 1 index
+create ServicesDbApiTest foobar
+foobar ServiceNameLCSeviceDB KSecondServiceIndex
+delete foobar
+[Endtest]
+
+#22
+[Test]
+title test ServiceNameLC with 2 index
+create ServicesDbApiTest foobar
+foobar ServiceNameLCSeviceDB KThirdServiceIndex
+delete foobar
+[Endtest]
+
+#23
+[Test]
+title test ServiceNameLC with incorrect index
+create ServicesDbApiTest foobar
+allownextresult KErrArgument
+foobar ServiceNameLCSeviceDB KNotAServiceInResourceIndex
+delete foobar
+[Endtest]
+
+#--------------------------------------------------------------------#
+
+######################################################################
+# Testing ServiceNameLC function with different UID as parameters 
+######################################################################
+#24
+[Test]
+title test ServiceNameLC with No Parameter
+allownextresult KErrGeneral
+create ServicesDbApiTest foobar
+foobar ServiceNameLCuidSeviceDB 
+delete foobar
+[Endtest]
+
+#25
+[Test]
+title test ServiceNameLC with  257 UID (0x101)
+create ServicesDbApiTest foobar
+foobar ServiceNameLCuidSeviceDB KFirstServiceUid
+delete foobar
+[Endtest]
+
+#26
+[Test]
+title test ServiceNameLC with  258 UID (0x102)
+create ServicesDbApiTest foobar
+foobar ServiceNameLCuidSeviceDB KSecondServiceUid
+delete foobar
+[Endtest]
+
+#27
+[Test]
+title test ServiceNameLC with  259 UID (0x103)
+create ServicesDbApiTest foobar
+foobar ServiceNameLCuidSeviceDB KThirdServiceUid
+delete foobar
+[Endtest]
+
+#28
+[Test]
+title test ServiceNameLC with  260 UID
+create ServicesDbApiTest foobar
+foobar ServiceNameLCuidSeviceDB KNotAServiceInResourceUid
+delete foobar
+[Endtest]
Binary file devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/data/ServicesDbApiTest.rsc has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Personalisation application localised resource IBY
+*
+*/
+
+
+#ifndef SERVICESDBAPITEST_IBY
+#define SERVICESDBAPITEST_IBY
+
+
+file=ABI_DIR/BUILD_DIR/ServicesDbApiTest.dll		SHARED_LIB_DIR/ServicesDbApiTest.dll
+data=DATAZ_/RESOURCE_FILES_DIR/ServicesDbApiTest.rsc   RESOURCE_FILES_DIR/ServicesDbApiTest.rsc
+
+#endif  // SERVICESDBAPITEST_IBY
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 specification file of  ServicesDbApiTest
+*
+*/
+
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+TARGET          ServicesDbApiTest.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+
+VENDORID VID_DEFAULT
+
+
+//TARGETPATH      ?target_path
+DEFFILE         ServicesDbApiTest.def
+
+
+APP_LAYER_SYSTEMINCLUDE
+USERINCLUDE     ../inc 
+
+SOURCEPATH      ../src
+
+SOURCE          ServicesDbApiTest.cpp
+SOURCE          ServicesDbApiTestBlocks.cpp
+
+START RESOURCE          ServicesDbApiTest.rss
+HEADER
+TARGETPATH              RESOURCE_FILES_DIR
+END // RESOURCE
+
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib 
+LIBRARY         eikcore.lib 
+LIBRARY         efsrv.lib 
+LIBRARY         bafl.lib 
+LIBRARY         cone.lib 
+LIBRARY         servicesdb.lib 
+LIBRARY         commonengine.lib
+
+LANG            SC
+
+epocallowdlldata
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest.pkg	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,66 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0""
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: Installation file for STIF
+;
+;
+;
+
+; Languages
+&EN
+
+; Provide value for uid
+#{"STIF"},(0x00000000),1,1,0,TYPE=SA
+
+; Series60 product id for S60 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Logo
+; None
+
+; Package signature - Optional
+; None
+
+; Start of Package body
+
+
+; Condition blocks
+; None
+
+; Options list
+; None
+
+; Install files
+"/epoc32/release/armv5/urel/ServicesDbApiTest.dll"   -   "c:/Sys/Bin/ServicesDbApiTest.dll"
+"/epoc32/data/z/resource/ServicesDbApiTest.rsc"     -    "c:/resource/ServicesDbApiTest.rsc"
+;.cfg & .ini files
+"..\init\TestFramework_SDB.ini" - "!:\TestFramework\TestFramework_SDB.ini"
+"..\conf\ui_ServicesDbApiTest.cfg" - "!:\TestFramework\ui_ServicesDbApiTest.cfg"
+;"proeng_c.bat" - "!:\proeng.bat"
+
+; Embedded SIS 
+; None
+
+; End of Package body
+
+; PKG dependencies
+; None
+
+; PKG capabilities
+; None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest_DoxyFile.txt	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,222 @@
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = ServicesDbApiTest
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = P:\ServicesDbApiTest\
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = NO
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = NO
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = YES
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = P:\ServicesDbApiTest\
+FILE_PATTERNS          = *.h \
+                         *.rh \
+                         *.hrh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = NO
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = YES
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = YES
+RTF_OUTPUT             = Doc
+COMPACT_RTF            = YES
+RTF_HYPERLINKS         = YES
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = NONSHARABLE_CLASS
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/ServicesDbApiTest_nrm.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 specification file of  ServicesDbApiTest
+*
+*/
+
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+TARGET          ServicesDbApiTest.dll
+TARGETTYPE      dll
+UID             0x1000008D 0x101FB3E3
+
+CAPABILITY      ALL -TCB
+
+VENDORID VID_DEFAULT
+
+
+//TARGETPATH      ?target_path
+DEFFILE         ServicesDbApiTest.def
+
+
+APP_LAYER_SYSTEMINCLUDE
+USERINCLUDE     ../inc 
+
+SOURCEPATH      ../src
+
+SOURCE          ServicesDbApiTest.cpp
+SOURCE          ServicesDbApiTestBlocks.cpp
+
+START RESOURCE          ServicesDbApiTest.rss
+HEADER
+TARGETPATH              RESOURCE_FILES_DIR
+END // RESOURCE
+
+
+LIBRARY         euser.lib
+LIBRARY         stiftestinterface.lib
+LIBRARY         stiftestengine.lib 
+LIBRARY         eikcore.lib 
+LIBRARY         efsrv.lib 
+LIBRARY         bafl.lib 
+LIBRARY         cone.lib 
+LIBRARY         servicesdb.lib 
+LIBRARY         commonengine.lib
+
+LANG            SC
+
+epocallowdlldata
+/*
+START WINS      
+?wins_specific_information
+END
+
+START MARM
+?marm_specific_information
+END
+*/
+// Other possible keywords:
+ 
+// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
+/*
+START BITMAP ?target
+TARGETPATH   ?emulated_path_on_target_machine
+HEADER
+SOURCE       ?color_depth ?source_bitmap
+END
+*/
+// DEFFILE ?filename
+// AIF ?filename
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Build information file for project ServicesDbApiTest
+*
+*/
+
+
+
+PRJ_PLATFORMS
+// specify the platforms your component needs to be built for here
+// defaults to WINS MARM so you can ignore this if you just build these
+DEFAULT
+
+PRJ_TESTEXPORTS
+// NOTE: If using ARS requirements all export operations should be done under this.
+// 'abld test export'
+
+
+PRJ_EXPORTS
+// Specify the source file followed by its destination here
+// copy will be used to copy the source file to its destination
+// If there's no destination then the source file will be copied
+// to the same name in /epoc32/include
+// Example: 
+/*
+/agnmodel/inc/AGMCOMON.H
+*/
+//IBY file
+
+
+PRJ_TESTMMPFILES
+ServicesDbApiTest.mmp
+
+PRJ_MMPFILES
+ServicesDbApiTest_nrm.mmp
+
+// Specify the .mmp files required for building the important component
+// releasables.
+//
+// Specify "tidy" if the component you need to build doesn't need to be
+// released. Specify "ignore" if the MMP file exists but should be
+// ignored.
+// Example:
+/*
+/agnmodel/group/agnmodel.mmp
+#if defined(MARM)
+/agnmodel/group/agsvexe.mmp
+#endif
+*/
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/proeng_c.bat	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,23 @@
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0""
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description: Copy file batch 
+rem
+
+copy C:\TestFramework\testframework_ProEngWrapAPI.ini C:\TestFramework\TestFramework.ini
+md e:\BCTest
+md e:\BCTest\Results
+
+ATSINTERFACE.EXE -testmodule testscripter -config C:\TestFramework\ProEngWrapAPI.cfg
+copy c:\Logs\TestFramework\TestReport.txt e:\BCTest\results\SP_ProEngWrapAPI.txt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group/proeng_z.bat	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,25 @@
+rem
+rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0""
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description: Copy file batch
+rem
+
+copy z:\TestFramework\testframework_ProEngWrapAPI.ini C:\TestFramework\TestFramework.ini
+md e:\BCTest
+md e:\BCTest\Results
+
+ATSINTERFACE.EXE -testmodule testscripter -config C:\TestFramework\ProEngWrapAPI.cfg
+copy c:\Logs\TestFramework\TestReport.txt e:\BCTest\results\SP_ProEngWrapAPI.txt
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/inc/ServicesDbApiTest.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,264 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of class CServicesDbApiTest
+*
+*/
+
+
+
+#ifndef SERVICESDBAPITEST_H
+#define SERVICESDBAPITEST_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+#include <services_db.h>
+#include <ConeResLoader.h>
+#include <data_caging_path_literals.hrh>
+#include <StringLoader.h>
+#include <barsread.h>
+#include <eikenv.h>
+
+
+
+// MACROS
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+
+// Logging path
+_LIT( KServicesDbApiTestLogPath, "\\logs\\testframework\\ServicesDbApiTest\\" ); 
+// Log file
+_LIT( KServicesDbApiTestLogFile, "ServicesDbApiTest.txt" ); 
+_LIT( KServicesDbApiTestLogFileWithTitle, "ServicesDbApiTest_[%S].txt" );
+
+_LIT(KEmptyString,"");
+
+// FORWARD DECLARATIONS
+class CServicesDbApiTest;
+
+
+//Constants
+const TInt KNoOfServices = 3; // This is the number of services listed in resource file. 
+const TInt KFirstOption = 0;
+const TInt KSecondOption = 1;
+const TInt KFirstServiceIndex = 0;
+const TInt KSecondServiceIndex = 1;
+const TInt KThirdServiceIndex=2;
+const TInt KFirstServiceUid =   257;
+const TInt KSecondServiceUid = 258;
+const TInt KThirdServiceUid  =  259;
+const TInt KBufSize = 128;
+
+// CLASS DECLARATION
+
+/**
+*  CServicesDbApiTest test class for STIF Test Framework TestScripter.
+*  This class is written to test Services DB API. 
+*
+*  @lib ServicesDbApiTest.lib
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CServicesDbApiTest) : public CScriptBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CServicesDbApiTest* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CServicesDbApiTest();
+
+ 
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        * @since ?Series60_version
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CServicesDbApiTest( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        /**
+        * Frees all resources allocated from test methods.
+        * @since ?Series60_version
+        */
+        void Delete();
+
+        /**
+        * Test methods are listed below. 
+        */
+        
+        /**
+         * Method used to log version of test class
+         */
+        void SendTestClassVersion();
+
+        //[TestMethods]
+        
+        /**
+        * Creates CServicesDB object
+        * @since ?Series60_version
+        * @param aOption Option to create CServicesDB object using NewL or NewLC
+        * @return Symbian OS error code.
+        */
+        TInt CreateSeviceDBL(TInt aOption);  
+        
+        /**
+        * In this method NewLC is called.
+        * @since ?Series60_version
+        * @param aResReader Resource reader to get information from Resource file
+        * @return Symbian OS error code.
+        */
+        void CallNewlcL(  TResourceReader aResReader );
+        
+        /**
+        * This method is used to test CServicesDB::NewL
+        * @since ?Series60_version
+        * @param No parameters required
+        * @return Symbian OS error code.
+        */
+        TInt InitializeSeviceDB( );
+        
+        /**
+        * This method is used to test CServicesDB::NewLC
+        * @since ?Series60_version
+        * @param No parameters required
+        * @return Symbian OS error code.
+        */
+        TInt InitializeonStackSeviceDB( );
+        
+        /**
+        * This method is used to test CServicesDB::Count
+        * @since ?Series60_version
+        * @param No parameters required
+        * @return Symbian OS error code.
+        */
+        TInt CountSeviceDB();
+        
+        /**
+        * This method is used to test CServicesDB::ServiceUidL
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        TInt ServiceUidLSeviceDB( CStifItemParser& aItem );
+        
+        /**
+        * This method is used to test CServicesDB::ServiceStringLC
+        * with Index as parameter.
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        TInt ServiceStringLCSeviceDB( CStifItemParser& aItem );
+        
+        /**
+        * This method is used to test CServicesDB::ServiceStringLC
+        * with UID as parameter
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        TInt ServiceStringLCuidSeviceDB( CStifItemParser& aItem );
+        
+        /**
+        * This method is used to test CServicesDB::ServiceNameLC
+        * with Index as parameter
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        TInt ServiceNameLCSeviceDB( CStifItemParser& aItem );
+        
+        /**
+        * This method is used to test CServicesDB::ServiceNameLC
+        * with UID as parameter
+        * @since ?Series60_version
+        * @param aItem Script line containing parameters.
+        * @return Symbian OS error code.
+        */
+        TInt ServiceNameLCuidSeviceDB( CStifItemParser& aItem );
+        
+        /**
+        * This is method encapsulates ServiceStringLC. 
+        * This method can be TRAPD and used to help in testing ServiceStringLC
+        * @since ?Series60_version
+        * @param aIndex the index of the service
+        * @param aParam parameter for the localized string
+        * @return Symbian OS error code.
+        */
+        TInt CallServiceStringLCSeviceDBL(TInt aIndex,const TDes& aParam );
+        
+        /**
+        * This is method encapsulates ServiceStringLC. 
+        * This method can be TRAPD and used to help in testing ServiceStringLC
+        * @since ?Series60_version
+        * @param aServiceUid the Uid of the service
+        * @param aParam parameter for the localized string
+        * @return Symbian OS error code.
+        */
+        TInt CallServiceStringLCuidSeviceDBL( TUid aServiceUid, const TDes& aParam);
+        
+        /**
+        * This is method encapsulates ServiceNameLC. 
+        * This method can be TRAPD and used to help in testing ServiceNameLC
+        * @since ?Series60_version
+        * @param aIndex the index of the service
+        * @return Symbian OS error code.
+        */
+        TInt CallServiceNameLCSeviceDBL(TInt aIndex);
+        
+        /**
+        * This is method encapsulates ServiceNameLC. 
+        * This method can be TRAPD and used to help in testing ServiceNameLC
+        * @since ?Series60_version
+        * @param aServiceUid the Uid of the service
+        * @return Symbian OS error code.
+        */
+        TInt CallServiceNameLCuidSeviceDBL( TUid aServiceUid );
+        
+        
+    private:    // Data
+        
+        // This is the pointer to object of the class being tested
+        // Through this pointer all the Exported methods are tested. 
+        CServicesDB *iServicesDB;
+    
+        
+    };
+
+#endif      // SERVICESDBAPITEST_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/init/TestFramework_SDB.ini	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,200 @@
+#
+# This is STIF initialization file
+# Comment lines start with '#'-character.
+# See STIF TestFramework users guide.doc for instructions
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set following test engine settings:
+#	- Set Test Reporting mode. TestReportMode's possible values are:
+#		+ 'Summary': Summary of the tested test cases.
+#		+ 'Environment': Hardware and software info.
+#		+ 'TestCases': Test case report.
+#		+ 'FullReport': Set of all above ones.
+#		+ Example 'TestReportMode= Summary TestCases'
+#
+# 	- CreateTestReport setting controls report creation mode
+#		+ YES, Test report will created.
+#		+ NO, No Test report.
+#
+# 	- File path indicates the base path of the test report.
+# 	- File name indicates the name of the test report.
+#
+# 	- File format indicates the type of the test report.
+#		+ TXT, Test report file will be txt type, for example 'TestReport.txt'.
+#		+ HTML, Test report will be html type, for example 'TestReport.html'.
+#   + XML, Test report will be xml type, for example 'TestReport.xml'.
+#          Note, that xml format is available only when output is set to FILE.
+#
+# 	- File output indicates output source of the test report.
+#		+ FILE, Test report logging to file.
+#		+ RDEBUG, Test report logging to using rdebug.
+#
+# 	- File Creation Mode indicates test report overwriting if file exist.
+#		+ OVERWRITE, Overwrites if the Test report file exist.
+#		+ APPEND, Continue logging after the old Test report information if
+#                 report exist.
+# 	- Sets a device reset module's dll name(Reboot).
+#		+ If Nokia specific reset module is not available or it is not correct one
+#		  StifHWResetStub module may use as a template for user specific reset
+#		  module.
+# 	- Sets STIF test measurement disable options. e.g. pluging1 and pluging2 disablation
+#		DisableMeasurement= stifmeasurementplugin01 stifmeasurementplugin02
+#
+
+[Engine_Defaults]
+
+TestReportMode= FullReport    # Possible values are: 'Empty', 'Summary', 'Environment',
+                                                     'TestCases' or 'FullReport'
+
+CreateTestReport= YES         # Possible values: YES or NO
+
+TestReportFilePath= C:\LOGS\TestFramework\
+TestReportFileName= TestReport
+
+TestReportFormat= TXT         # Possible values: TXT, HTML or XML
+TestReportOutput= FILE        # Possible values: FILE or RDEBUG
+TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND
+
+DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting
+
+DisableMeasurement= stifmeasurementdisablenone  # Possible values are:
+              # 'stifmeasurementdisablenone', 'stifmeasurementdisableall'
+              # 'stifmeasurementplugin01', 'stifmeasurementplugin02',
+              # 'stifmeasurementplugin03', 'stifmeasurementplugin04',
+              # 'stifmeasurementplugin05' or 'stifbappeaprofiler'
+
+Timeout= 0                    # Default timeout value for each test case. In milliseconds
+UITestingSupport= YES        # Possible values: YES or NO
+#SeparateProcesses= YES       # Possible values: YES or NO (default: NO)
+[End_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Module configurations start
+# Modules are added between module tags
+# tags. Module name is specified after ModuleName= tag, like
+# ModuleName= XXXXXXXXX
+# Modules might have initialisation file, specified as
+# IniFile= c:\testframework\YYYYYY
+# Modules might have several configuration files, like
+# TestCaseFile= c:\testframework\NormalCases.txt
+# TestCaseFile= c:\testframework\SmokeCases.txt
+# TestCaseFile= c:\testframework\ManualCases.txt
+
+# (TestCaseFile is synonym for old term ConfigFile)
+
+# Following case specifies demo module settings. Demo module
+# does not read any settings from file, so tags 
+# IniFile and TestCaseFile are not used.
+# In the simplest case it is enough to specify only the
+# name of the test module when adding new test module
+
+[New_Module]
+ModuleName= testscripter
+TestCaseFile= c:\testframework\ui_ServicesDbApiTest.cfg
+[End_Module]
+
+
+# Load testmoduleXXX, optionally with initialization file and/or test case files
+#[New_Module]
+#ModuleName= testmodulexxx
+
+#TestModuleXXX used initialization file
+#IniFile= c:\testframework\init.txt
+
+#TestModuleXXX used configuration file(s)
+#TestCaseFile= c:\testframework\testcases1.cfg
+#TestCaseFile= c:\testframework\testcases2.cfg
+#TestCaseFile= c:\testframework\manualtestcases.cfg
+
+#[End_Module]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+
+
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+# Set STIF logging overwrite parameters for Logger.
+# 	Hardware and emulator environment logging path and styles can
+# 	be configured from here to overwrite the Logger's implemented values.
+#	
+#	Settings description:
+#	- Indicates option for creation log directory/directories. If log directory/directories
+#         is/are not created by user they will make by software.
+#		+ YES, Create log directory/directories if not allready exist.
+#		+ NO, Log directory/directories not created. Only created one is used.
+#
+#	- Overwrite emulator path setting.
+#		+ Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined 
+#		           Logger's path 'D:\\LOGS\\Module\\' with those definition the path
+#		           will be 'C:\LOGS\TestFramework\LOGS\Module\'
+#
+#	- Overwrite emulator's logging format.
+#		+ TXT, Log file(s) will be txt type(s), for example 'Module.txt'.
+#		+ HTML, Log file(s) will be html type(s), for example 'Module.html'.
+#
+#	- Overwrited emulator logging output source.
+#		+ FILE, Logging to file(s).
+#		+ RDEBUG, Logging to using rdebug(s).
+#
+#	- Overwrite hardware path setting (Same description as above in emulator path).
+#	- Overwrite hardware's logging format(Same description as above in emulator format).
+#	- Overwrite hardware's logging output source(Same description as above in emulator output).
+#
+#	- File Creation Mode indicates file overwriting if file exist.
+#		+ OVERWRITE, Overwrites if file(s) exist.
+#		+ APPEND, Continue logging after the old logging information if file(s) exist.
+#
+#	- Will thread id include to the log filename.
+#		+ YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'.
+#		+ NO, No thread id to log file(s), Example filename 'Module.txt'.
+#
+#	- Will time stamps include the to log file.
+#		+ YES, Time stamp added to each line in log file(s). Time stamp is 
+#                 for example'12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No time stamp(s).
+#
+#	- Will line breaks include to the log file.
+#		+ YES, Each logging event includes line break and next log event is in own line.
+#		+ NO, No line break(s).
+#
+#	- Will event ranking include to the log file.
+#		+ YES, Event ranking number added to each line in log file(s). Ranking number
+#                 depends on environment's tics, for example(includes time stamp also)
+#                 '012   12.Nov.2003 115958    LOGGING INFO'
+#		+ NO, No event ranking.
+#
+#	- Will write log file in unicode format.
+#		+ YES, Log file will be written in unicode format
+#		+ NO, Log will be written as normal, not unicode, file.
+#
+
+[Logger_Defaults]
+
+#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#'
+#NOTE: TestEngine and TestServer logging settings cannot change here
+
+#CreateLogDirectories= YES    # Possible values: YES or NO
+
+#EmulatorBasePath= C:\LOGS\TestFramework\
+#EmulatorFormat= HTML         # Possible values: TXT or HTML
+#EmulatorOutput= FILE         # Possible values: FILE or RDEBUG
+
+#HardwareBasePath= D:\LOGS\TestFramework\
+#HardwareFormat= HTML         # Possible values: TXT or HTML
+#HardwareOutput= FILE         # Possible values: FILE or RDEBUG
+
+#FileCreationMode= OVERWRITE  # Possible values: OVERWRITE or APPEND
+
+#ThreadIdToLogFile= YES       # Possible values: YES or NO
+#WithTimeStamp= YES           # Possible values: YES or NO
+#WithLineBreak= YES           # Possible values: YES or NO
+#WithEventRanking= YES        # Possible values: YES or NO
+
+#FileUnicode= YES             # Possible values: YES or NO
+#AddTestCaseTitle= YES        # Possible values: YES or NO
+[End_Logger_Defaults]
+# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+# End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/src/ServicesDbApiTest.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,155 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of class CServicesDbApiTest
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <StifTestInterface.h>
+#include "ServicesDbApiTest.h"
+#include <SettingServerClient.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CServicesDbApiTest
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CServicesDbApiTest::CServicesDbApiTest( 
+    CTestModuleIf& aTestModuleIf ):
+        CScriptBase( aTestModuleIf )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CServicesDbApiTest::ConstructL()
+    {
+    //Read logger settings to check whether test case name is to be
+    //appended to log file name.
+    RSettingServer settingServer;
+    TInt ret = settingServer.Connect();
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        }
+    // Struct to StifLogger settigs.
+    TLoggerSettings loggerSettings; 
+    // Parse StifLogger defaults from STIF initialization file.
+    ret = settingServer.GetLoggerSettings(loggerSettings);
+    if(ret != KErrNone)
+        {
+        User::Leave(ret);
+        } 
+    // Close Setting server session
+    settingServer.Close();
+
+    TFileName logFileName;
+    
+    if(loggerSettings.iAddTestCaseTitle)
+        {
+        TName title;
+        TestModuleIf().GetTestCaseTitleL(title);
+        logFileName.Format(KServicesDbApiTestLogFileWithTitle, &title);
+        }
+    else
+        {
+        logFileName.Copy(KServicesDbApiTestLogFile);
+        }
+
+    iLog = CStifLogger::NewL( KServicesDbApiTestLogPath, 
+                          logFileName,
+                          CStifLogger::ETxt,
+                          CStifLogger::EFile,
+                          EFalse );
+    
+    SendTestClassVersion();
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CServicesDbApiTest* CServicesDbApiTest::NewL( 
+    CTestModuleIf& aTestModuleIf )
+    {
+    CServicesDbApiTest* self = new (ELeave) CServicesDbApiTest( aTestModuleIf );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+
+    }
+
+// Destructor
+CServicesDbApiTest::~CServicesDbApiTest()
+    { 
+
+    // Delete resources allocated from test methods
+    Delete();
+
+    // Delete logger
+    delete iLog; 
+    delete iServicesDB;
+    
+    }
+
+//-----------------------------------------------------------------------------
+// CServicesDbApiTest::SendTestClassVersion
+// Method used to send version of test class
+//-----------------------------------------------------------------------------
+//
+void CServicesDbApiTest::SendTestClassVersion()
+	{
+	TVersion moduleVersion;
+	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
+	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
+	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
+	
+	TFileName moduleName;
+	moduleName = _L("ServicesDbApiTest.dll");
+
+	TBool newVersionOfMethod = ETrue;
+	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
+	}
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point.
+// Returns: CScriptBase: New CScriptBase derived object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CScriptBase* LibEntryL( 
+    CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
+    {
+
+    return ( CScriptBase* ) CServicesDbApiTest::NewL( aTestModuleIf );
+
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/src/ServicesDbApiTest.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,62 @@
+/*
+* 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: Resource definitions for project ServicesDbApiTest
+*
+*/
+// ---------------------------------------------------------------------------
+// r_da_services_mime
+// This resource stores localized strings for the supported services, identified
+// by their Uid and generic name.
+// This resource is defined in the services_db.rh file
+// ---------------------------------------------------------------------------
+//
+#include    <bldvariant.hrh>
+#include    <avkon.rh>
+//#include    <avkon.rsg>
+//#include    <avkon.mbg>
+//#include    <eikcore.rsg>
+#include    <eikon.rh>
+//#include    <eikon.rsg>
+//#include    <avkon.loc>
+//#include    <data_caging_paths_strings.hrh>
+#include <services_db.rh>
+//  RESOURCE IDENTIFIER
+NAME    SDBT // 4 letter ID
+RESOURCE RSS_SIGNATURE { }
+RESOURCE TBUF { buf=""; }
+
+RESOURCE DAS_SERVICES r_da_service_mime
+    {
+    services = 
+        {
+        DAS_SERVICE_ENTRY
+            {
+            service_uid = 0x101; // NOT A REAL UID
+            service_name = "Open";
+            service_localized_name = "Open Localized";
+            },
+        DAS_SERVICE_ENTRY
+            {
+            service_uid = 0x102; // NOT A REAL UID
+            service_name = "Upload";
+            service_localized_name = "Upload Localized";
+            },
+        DAS_SERVICE_ENTRY
+            {
+            service_uid = 0x103; // NOT A REAL UID
+            service_name = "Print";
+            service_localized_name = "Print Localized %U";
+            }
+        };
+    }    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/src/ServicesDbApiTestBlocks.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,590 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 cpp file has the functions to test Services DB API.
+*
+*/
+
+
+
+// [INCLUDE FILES]
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include "ServicesDbApiTest.h"
+#include <servicesdbapitest.rsg>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CServicesDbApiTest::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        ENTRY( "InitializeSeviceDB",         CServicesDbApiTest::InitializeSeviceDB ),
+        ENTRY( "InitializeonStackSeviceDB",  CServicesDbApiTest::InitializeonStackSeviceDB ),
+        ENTRY( "CountSeviceDB",              CServicesDbApiTest::CountSeviceDB),
+        ENTRY( "ServiceUidLSeviceDB",        CServicesDbApiTest::ServiceUidLSeviceDB),
+        ENTRY( "ServiceStringLCSeviceDB",    CServicesDbApiTest::ServiceStringLCSeviceDB),
+        ENTRY( "ServiceStringLCUIDSeviceDB", CServicesDbApiTest::ServiceStringLCuidSeviceDB),
+        ENTRY( "ServiceNameLCSeviceDB",      CServicesDbApiTest::ServiceNameLCSeviceDB),
+        ENTRY( "ServiceNameLCuidSeviceDB",   CServicesDbApiTest::ServiceNameLCuidSeviceDB),
+          };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CreateSeviceDBL
+// This function is used to create CServicesDB object. This function is used
+// to call CServicesDB::NewL and CServicesDB::NewLC functions. 
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::CreateSeviceDBL( TInt aOption )
+{
+      
+     // Get CCoeEnv instance
+    CEikonEnv* eikEnv = CEikonEnv::Static();
+    // Initialize loader
+    //open our resource file
+    RConeResourceLoader resources(*eikEnv);
+    
+    TParse parse;
+    parse.Set(_L("c:ServicesDbApiTest.rsc"), &KDC_RESOURCE_FILES_DIR, NULL ); 
+     
+    TFileName fileName( parse.FullName() );
+    iLog->Log(_L("Opened Resource file named ::  "));   iLog->Log(fileName);
+         
+    TRAPD( error, resources.OpenL(fileName) ); //Open resource file
+    if ( KErrNone != error )
+    {
+        iLog->Log(_L("Error in opening resource file. ERROR = %d "),error); //return( error );
+        //Check on Z drive if not found on C drive
+        parse.Set(_L("z:ServicesDbApiTest.rsc"), &KDC_RESOURCE_FILES_DIR, NULL ); 
+        TFileName fileName1( parse.FullName() );
+        iLog->Log(_L("Opening Resource file named ::  "));   iLog->Log(fileName1);
+        
+        TRAPD( error1 , resources.OpenL(fileName1) );
+        if ( KErrNone != error1  )
+        {
+            iLog->Log(_L("Error in opening resource file. ERROR = %d "),error1); 
+            return( error1 ); 
+        }
+    }  
+  
+    TResourceReader reader;
+    eikEnv->CreateResourceReaderLC( reader, R_DA_SERVICE_MIME );
+    
+    if ( KFirstOption == aOption )
+    {
+        TRAPD( errorinNewL, iServicesDB=CServicesDB::NewL(&reader) );
+        if ( KErrNone != errorinNewL )
+        {
+            iLog->Log(_L("=>CServicesDB::NewL leaves"));
+        }
+        CleanupStack::PopAndDestroy(); //reader's resource
+        resources.Close();        
+        return ( errorinNewL );
+    }  
+    else 
+    {
+        TRAPD( errorinNewLC, CallNewlcL(reader) );
+        if( KErrNone != errorinNewLC )
+        { 
+            iLog->Log(_L("=>CServicesDB::NewLC leaves"));
+        }
+        CleanupStack::PopAndDestroy();
+        resources.Close();
+        return ( errorinNewLC );
+    }
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallNewlcL
+// This function is used because we can not TRAP CServicesDB::NewLC
+// -----------------------------------------------------------------------------
+//
+void CServicesDbApiTest::CallNewlcL(  TResourceReader aResReader )
+{ 
+   iServicesDB = CServicesDB::NewLC( &aResReader );
+   CleanupStack::Pop();
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::InitializeSeviceDB
+// Is used to test CServicesDB::NewL 
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::InitializeSeviceDB( )
+{
+    TInt result;
+    TRAPD( error , result = CreateSeviceDBL( KFirstOption ) );
+    if ( KErrNone != error )
+    {  iLog->Log(_L("Services DB object not created with NewL.")); return ( error );  }
+    else
+    {  
+       if ( KErrNone != result )
+       {
+          iLog->Log(_L("Services DB object not created with NewL.")); return ( result );
+       }
+       else
+       {
+           iLog->Log(_L("Services DB object created with NewL."));       
+       }
+    }
+    return ( result );
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::InitializeonStackSeviceDB
+// Is used to test CServicesDB::NewLC
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::InitializeonStackSeviceDB( )
+{
+    TInt result;
+    TRAPD( error, result = CreateSeviceDBL( KSecondOption ) );
+    if ( KErrNone != error )
+    {  iLog->Log(_L("Services DB object not created with NewLC.")); return ( error );  }
+    else
+    {  
+        if ( KErrNone != result )
+        {
+           iLog->Log(_L("Services DB object not created with NewLC.")); return ( result );
+        }
+        else
+        {
+            iLog->Log(_L("Services DB object created with NewLC."));       
+        } 
+    }
+    return ( result );
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CountSeviceDB
+// Testing - IMPORT_C TInt Count() const;
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::CountSeviceDB()
+{
+    TInt result = InitializeSeviceDB();
+    if ( KErrNone != result )
+        {
+            return ( result );
+        }
+    TInt nrServices=iServicesDB->Count();
+    iLog->Log(_L("Number of Services listed in resource file = %d"),nrServices);
+    if ( KNoOfServices != nrServices )
+    { 
+        iLog->Log(_L("The number of services returned by CServicesDB::COUNT is incorrect"));
+        return ( KErrGeneral );
+    }
+    return ( KErrNone );
+}
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceUidLSeviceDB
+// Testing - IMPORT_C TUid ServiceUidL(TInt aIndex) const;
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::ServiceUidLSeviceDB( CStifItemParser& aItem )
+{
+    TInt result = InitializeSeviceDB();
+    if ( KErrNone != result )
+        {
+            return ( result );
+        }
+    TUid serviceUid;
+    TInt index;
+     
+    if( aItem.GetNextInt(index) != KErrNone )
+    { 
+        iLog->Log(_L("NO Index number provided, index is required parameter for testing ServiceUid "));
+        return ( KErrGeneral );
+    }
+
+    TRAPD( error, serviceUid = iServicesDB->ServiceUidL(index) );
+    if ( KErrNone != error )
+    {
+       iLog->Log(_L("Incorrect Index. There is no service matching the Index Number."));
+       iLog->Log(_L("=> ServiceUidL leaves when index is incorrect."));
+       return (error);
+    }
+        
+    iLog->Log(_L("UID of the Service[%d]=%d"),index,serviceUid.iUid);
+    
+    switch (index)
+        {
+        case KFirstServiceIndex: if (serviceUid.iUid == 0x101) 
+                {  iLog->Log(_L("Service UID is correct"));   }
+                else 
+                {  iLog->Log(_L("Service UID is incorrect")); return ( KErrGeneral );  }
+                break;
+        case KSecondServiceIndex: if (serviceUid.iUid == 0x102) 
+                {  iLog->Log(_L("Service UID is correct"));   }
+                else 
+                {  iLog->Log(_L("Service UID is incorrect")); return ( KErrGeneral );  }
+                break;
+        case KThirdServiceIndex: if (serviceUid.iUid == 0x103)
+                {  iLog->Log(_L("Service UID is correct"));   }
+                else 
+                {  iLog->Log(_L("Service UID is incorrect")); return ( KErrGeneral );  }
+                break;    
+        default : break;
+        };
+
+    return ( KErrNone );
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceStringLCSeviceDB
+// Testing - IMPORT_C HBufC* ServiceStringLC(TInt aIndex, const TDes& aParam) const;
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::ServiceStringLCSeviceDB( CStifItemParser& aItem )
+{    
+    TInt result = InitializeSeviceDB();
+    if ( KErrNone != result )
+    {
+        return ( result );
+    }
+    TInt index;
+    TBuf<KBufSize> format(KEmptyString);
+    
+    if( aItem.GetNextInt(index) != KErrNone )
+    { 
+        iLog->Log(_L("NO Index number provided, index is required parameter for testing ServiceUid "));
+        return ( KErrGeneral );
+    }
+    TInt res;
+    TRAPD( error, res = CallServiceStringLCSeviceDBL(index,format ));
+    if ( KErrNone != error )
+    {
+        iLog->Log(_L("Incorrect Index. There is no service matching the Index Number."));
+        iLog->Log(_L("=> ServiceStringLC leaves when index is incorrect."));
+        return (error);
+    }
+     
+    return ( res ); 
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallServiceStringLCSeviceDBL
+// This function is used because we can not trap ServiceStringLC
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::CallServiceStringLCSeviceDBL(TInt aIndex,const TDes& aParam )
+{
+    HBufC *string;
+    string=iServicesDB->ServiceStringLC(aIndex,aParam);
+    iLog->Log(_L("LOCALIZED name of the Service[%d] = "),aIndex);
+    iLog->Log(*string);
+    
+    switch (aIndex)
+        {
+        case KFirstServiceIndex: if(!(string->Des().Compare(_L("Open Localized"))))
+                {  iLog->Log(_L("LOCALIZED name is correct"));   }
+                else 
+                {  iLog->Log(_L("LOCALIZED name is incorrect"));
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KSecondServiceIndex: if(!(string->Des().Compare(_L("Upload Localized"))))
+                {  iLog->Log(_L("LOCALIZED name is correct"));   }
+                else 
+                {  iLog->Log(_L("LOCALIZED name is incorrect")); 
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KThirdServiceIndex: if(!(string->Des().Compare(_L("Print Localized %U"))))
+                {  iLog->Log(_L("LOCALIZED name is correct"));   }
+                else 
+                {  iLog->Log(_L("LOCALIZED name is incorrect"));  
+                   CleanupStack::PopAndDestroy(string);return ( KErrGeneral );  }
+                break;    
+        default : break;
+        }; 
+    
+    CleanupStack::PopAndDestroy(string);    
+    return ( KErrNone );
+
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceStringLCuidSeviceDB
+// Testing - IMPORT_C HBufC* ServiceStringLC(TUid aServiceUid, const TDes& aParam) const;
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::ServiceStringLCuidSeviceDB( CStifItemParser& aItem )
+{
+    TInt result = InitializeSeviceDB();
+    if ( KErrNone != result )
+    {
+        return ( result );
+    }
+    TBuf<KBufSize> format(KEmptyString);
+    TInt uid;
+    
+    if( aItem.GetNextInt(uid) != KErrNone )
+    { 
+        iLog->Log(_L("NO UID number provided, UID is required parameter for testing ServiceStringLC "));
+        return ( KErrGeneral );
+    }   
+    TUid serviceUID= TUid::Uid(uid);
+    iLog->Log(_L("serviceUID = %d"),serviceUID.iUid);
+    TInt res ;
+    TRAPD(error, res = CallServiceStringLCuidSeviceDBL(serviceUID,format));
+    if ( KErrNone != error )
+    {
+        iLog->Log(_L("=> ServiceStringLC leaves. Error code = %d"),error);
+        return (error);
+    }
+    return ( res ); 
+
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::CallServiceStringLCuidSeviceDBL
+// This function is used because we can not trap ServiceStringLC
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::CallServiceStringLCuidSeviceDBL( TUid aServiceUid, const TDes& aParam )
+{
+    HBufC *string;
+    string=iServicesDB->ServiceStringLC(aServiceUid,aParam);
+    if ( NULL != string )
+    {
+       iLog->Log(_L("LOCALIZED name of the Service with UID(%d) = "),aServiceUid.iUid);
+       iLog->Log(*string);
+    }
+    else 
+    {
+        iLog->Log(_L("No matching service found, Service UID provided is incorrect")); 
+    } 
+       
+    switch (aServiceUid.iUid)
+        {
+        case KFirstServiceUid: if(!(string->Des().Compare(_L("Open Localized"))))
+                {  iLog->Log(_L("LOCALIZED name is correct"));   }
+                else 
+                {  iLog->Log(_L("LOCALIZED name is incorrect")); 
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KSecondServiceUid: if(!(string->Des().Compare(_L("Upload Localized"))))
+                {  iLog->Log(_L("LOCALIZED name is correct"));   }
+                else 
+                {  iLog->Log(_L("LOCALIZED name is incorrect"));
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KThirdServiceUid: if(!(string->Des().Compare(_L("Print Localized %U"))))
+                {  iLog->Log(_L("LOCALIZED name is correct"));   }
+                else 
+                {  iLog->Log(_L("LOCALIZED name is incorrect"));  
+                   CleanupStack::PopAndDestroy(string);return ( KErrGeneral );  }
+                break;    
+        default : break;
+        }; 
+       
+    CleanupStack::PopAndDestroy(string);    
+    return ( KErrNone );
+}
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceNameLCSeviceDB
+// Testing - IMPORT_C HBufC* ServiceNameLC(TInt aIndex) const;
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::ServiceNameLCSeviceDB( CStifItemParser& aItem )
+{
+    TInt result = InitializeSeviceDB();
+    if ( KErrNone != result )
+    {
+        return ( result );
+    }
+    TInt index;
+    TBuf<KBufSize> format(KEmptyString);
+    
+    if( aItem.GetNextInt(index) != KErrNone )
+    { 
+        iLog->Log(_L("NO Index number provided, index is required parameter for testing ServiceNameLC "));
+        return ( KErrGeneral );
+    }
+    iLog->Log(_L("checked till here"));
+    iLog->Log(_L("index = %d"),index);
+    
+    TRAPD(error,TInt res = CallServiceNameLCSeviceDBL(index));
+    if ( KErrNone != error )
+    {
+        iLog->Log(_L("Incorrect Index. There is no service matching the Index Number."));
+        iLog->Log(_L("=> ServiceNameLC leaves when index is incorrect."));
+        return (error);
+    }
+    return ( KErrNone ); 
+   
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceNameLCSeviceDB
+// This function is used because we can not trap ServiceNameLC
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::CallServiceNameLCSeviceDBL(TInt aIndex)
+{
+    HBufC *string;
+    string=iServicesDB->ServiceNameLC(aIndex);
+    iLog->Log(_L("GENERIC name of the Service[%d] = "),aIndex);
+    iLog->Log(*string);
+    
+    switch (aIndex)
+        {
+        case KFirstServiceIndex: if(!(string->Des().Compare(_L("Open"))))
+                {  iLog->Log(_L("GENERIC name is correct"));   }
+                else 
+                {  iLog->Log(_L("GENERIC name is incorrect"));
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KSecondServiceIndex: if(!(string->Des().Compare(_L("Upload"))))
+                {  iLog->Log(_L("GENERIC name is correct"));   }
+                else 
+                {  iLog->Log(_L("GENERIC name is incorrect"));
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KThirdServiceIndex: if(!(string->Des().Compare(_L("Print"))))
+                {  iLog->Log(_L("GENERIC name is correct"));   }
+                else 
+                {  iLog->Log(_L("GENERIC name is incorrect")); 
+                   CleanupStack::PopAndDestroy(string);return ( KErrGeneral );  }
+                break;    
+        default : break;
+        }; 
+    
+    CleanupStack::PopAndDestroy(string);    
+    return ( KErrNone );
+
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceNameLCuidSeviceDB
+// Testing - IMPORT_C HBufC* ServiceNameLC(TUid aServiceUid) const;
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::ServiceNameLCuidSeviceDB( CStifItemParser& aItem )
+{
+    
+    TInt result = InitializeSeviceDB();
+    if ( KErrNone != result )
+    {
+        return ( result );
+    }
+    TBuf<KBufSize> format(KEmptyString);
+    TInt uid;
+    
+    if( aItem.GetNextInt(uid) != KErrNone )
+    { 
+        iLog->Log(_L("NO UID number provided, UID is required parameter for testing ServiceStringLC "));
+        return ( KErrGeneral );
+    }
+    iLog->Log(_L("checked till here"));
+    
+    TUid serviceUID= TUid::Uid(uid);
+    iLog->Log(_L("serviceUID = %d"),serviceUID.iUid);
+    
+    TRAPD(error,TInt res = CallServiceNameLCuidSeviceDBL(serviceUID));
+    if ( KErrNone != error )
+    {
+        iLog->Log(_L("=> ServiceNameLC leaves."),error);
+        return (error);
+    }
+    return ( KErrNone ); 
+}
+
+
+// -----------------------------------------------------------------------------
+// CServicesDbApiTest::ServiceNameLCuidSeviceDB
+// This function is used because we can not trap ServiceNameLC
+// -----------------------------------------------------------------------------
+//
+TInt CServicesDbApiTest::CallServiceNameLCuidSeviceDBL( TUid aServiceUid )
+{
+    HBufC *string;
+    string=iServicesDB->ServiceNameLC(aServiceUid);
+    if ( NULL != string )
+    {
+       iLog->Log(_L("GENERIC name of the Service with UID(%d) = "),aServiceUid.iUid);
+       iLog->Log(*string);
+    }
+    else 
+    {
+        iLog->Log(_L("No matching service found, Service UID provided is incorrect")); 
+    } 
+       
+    switch (aServiceUid.iUid)
+        {
+        case KFirstServiceUid: if(!(string->Des().Compare(_L("Open"))))
+                {  iLog->Log(_L("GENERIC name is correct"));   }
+                else 
+                {  iLog->Log(_L("GENERIC name is incorrect")); 
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KSecondServiceUid: if(!(string->Des().Compare(_L("Upload"))))
+                {  iLog->Log(_L("GENERIC name is correct"));   }
+                else 
+                {  iLog->Log(_L("GENERIC name is incorrect"));
+                   CleanupStack::PopAndDestroy(string); return ( KErrGeneral );  }
+                break;
+        case KThirdServiceUid: if(!(string->Des().Compare(_L("Print"))))
+                {  iLog->Log(_L("GENERIC name is correct"));   }
+                else 
+                {  iLog->Log(_L("GENERIC name is incorrect"));  
+                   CleanupStack::PopAndDestroy(string);return ( KErrGeneral );  }
+                break;    
+        default : break;
+        }; 
+       
+    CleanupStack::PopAndDestroy(string);    
+    return ( KErrNone );
+}
+
+
+//  [End of File] - Do not remove
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devmngt_pub/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,22 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes all the SDK API specific bld.inf files, which 
+*                export files.
+*
+*/
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for project settingsuis 
+*
+*/
+
+
+// mw layer
+// Device management ADO
+
+//Components:
+
+//devmngt_plat
+#include "../devmngt_plat/group/bld.inf"
+
+//devmngt_pub
+#include "../devmngt_pub/group/bld.inf"
+
+#include "../defaultapplicationsettings/group/bld.inf"
+
+//systemswuis
+#include "../systemswuis/group/bld.inf"
+
--- a/layers.sysdef.xml	Tue Aug 31 15:15:28 2010 +0300
+++ b/layers.sysdef.xml	Wed Sep 01 12:33:30 2010 +0100
@@ -1,17 +1,22 @@
 <?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
+
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
   <!ENTITY layer_real_source_path "sf/app/settingsuis" >
 ]>
 
-<SystemDefinition name="settingsuis" schema="1.5.1">
+<SystemDefinition name="settingsuis" schema="1.4.0">
   <systemModel>
     <layer name="app_layer">
-    	<module name="themeplugin">
-        <unit unitID="themeplugin" mrp="" bldFile="&layer_real_source_path;/controlpanelplugins/themeplugin" name="themeplugin" proFile="themeplugin.pro" qmakeArgs="-r -config rom"/>
-      </module>
-      <module name="controlpanelui">
-        <unit unitID="controlpanelui" mrp="" bldFile="&layer_real_source_path;/controlpanelui" name="controlpanelui" proFile="controlpanelui.pro" qmakeArgs="-r -config rom"/>
+      <module name="settingsuis">
+      <unit name="settingsuis" unitID="presdo.settingsuis" bldFile="&layer_real_source_path;/group" mrp="" />
       </module>
     </layer>
+    <layer name="api_test_layer">
+      <module name="settingsuis_test">
+      <!--<unit unitID="presdo.settingsuis_test" mrp="" bldFile="&layer_real_source_path;/tsrc/group" name="settingsuis_test" />-->
+      <unit unitID="presdo.settingsuis_test" mrp="" bldFile="&layer_real_source_path;/devmngt_plat/services_db_api/tsrc/ServicesDbApiTest/group" name="settingsuis_test" />
+      </module>
+    </layer>      
   </systemModel>
 </SystemDefinition>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_4_0.dtd	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,86 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>  
--- a/sysdef_1_5_1.dtd	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
-  name CDATA #REQUIRED
-  schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
-  name CDATA #REQUIRED
-  levels CDATA #IMPLIED
-  span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
-  name CDATA #REQUIRED
-  level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
-  unitID ID #REQUIRED
-  name CDATA #REQUIRED
-  mrp CDATA #REQUIRED
-  filter CDATA #IMPLIED
-  bldFile CDATA #REQUIRED
-  priority CDATA #IMPLIED
-  contract CDATA #IMPLIED
-  proFile CDATA #IMPLIED
-  qmakeArgs CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
-  name CDATA #REQUIRED
-  mrp CDATA #REQUIRED
-  filter CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
-  name CDATA #REQUIRED
-  version CDATA #REQUIRED
-  late (Y|N) #IMPLIED
-  filter CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
-  name ID #REQUIRED
-  description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
-  name ID #REQUIRED
-  description CDATA #REQUIRED
-  target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
-  name ID #REQUIRED
-  abldTarget CDATA #REQUIRED
-  description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
-  name ID #REQUIRED
-  abldOption CDATA #REQUIRED
-  description CDATA #REQUIRED
-  enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
-  name ID #REQUIRED
-  description CDATA #REQUIRED
-  filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
-  command CDATA #REQUIRED
-  targetList IDREFS #IMPLIED
-  unitParallel (Y | N | y | n) #REQUIRED
-  targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
-  name CDATA #REQUIRED
-  cwd CDATA #REQUIRED
-  command CDATA #REQUIRED>  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,19 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for project systemswuis  
+*
+*/
+
+
+#include "../touchscreencalib/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/PubSub/touchscprivatepskeys.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Private Publish&Subscribe definitions of the
+*                Security UIs subsystem
+*
+*/
+
+
+#ifndef TOUCHSCPRIVATEPSKEYS_H
+#define TOUCHSCPRIVATEPSKEYS_H
+
+// INCLUDES
+
+//CONSTANTS
+
+// =============================================================================
+// Touch Screen Calibration API
+// =============================================================================
+
+/**
+* Touchscreen calibration P&S UID
+*/
+const TUid KPSUidTouchScreenCalibration = { 0x102828BC };
+
+/**
+* Wait a touchscreen calibration
+*/
+const TUint32 KPSTouchScreenCalibration = 0x00000000;
+enum TPSTouchScreenCalibration
+    {
+    ETouchScreenCalibrationWait,
+    ETouchScreenCalibrationOk    
+    };
+    
+#endif//TOUCHSCPRIVATEPSKEYS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/aif/TouchScreenCalibaif.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  RSS for creating the aif file for TouchScreenCalib.
+*
+*/
+
+
+//  INCLUDES
+#include <aiftool.rh>
+
+RESOURCE AIF_DATA
+{
+    app_uid = 0x102828BC; 
+    hidden = KAppIsHidden;
+    num_icons = 0;
+    embeddability = KAppNotEmbeddable;
+    newfile = KAppDoesNotSupportNewFile;
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/data/TouchScreenCalib.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2006 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 all the resources for the module.
+*
+*/
+
+
+//  RESOURCE IDENTIFIER
+NAME    TSCA // 4 letter ID
+
+//  INCLUDES
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include "touchscreencalib.loc"
+
+//  CONSTANTS  
+//  -none
+
+//  MACROS 
+//  -none
+
+//  RESOURCE DEFINITIONS 
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf="touch_screen_calib"; }
+
+RESOURCE EIK_APP_INFO
+    {
+        status_pane = r_status_pane;
+    }
+
+RESOURCE STATUS_PANE_APP_MODEL r_status_pane
+    {
+        layout= R_AVKON_STATUS_PANE_LAYOUT_EMPTY;
+    }
+
+RESOURCE TBUF       r_qtn_touch_screen_cali_instr_can { buf = qtn_touch_screen_cali_instr_can; }
+RESOURCE TBUF       r_qtn_touch_screen_cali_instr_res { buf = qtn_touch_screen_cali_instr_res; }
+RESOURCE TBUF       r_qtn_touch_screen_cali_instr_gen { buf = qtn_touch_screen_cali_instr_gen; }
+RESOURCE TBUF       r_qtn_touch_screen_cali_cancel { buf = qtn_touch_screen_cali_cancel; }
+RESOURCE TBUF       r_qtn_touch_screen_cali_done { buf = qtn_touch_screen_cali_done; }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/data/TouchScreenCalib_anim.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  It contains resources for Touch Screen Calibration tap target
+*                animation
+*
+*/
+
+
+//  RESOURCE IDENTIFIER
+NAME    TSAN
+
+//  INCLUDES
+#include <uikon.rh>
+#include <avkon.rh>
+#include <touchscreencalib.mbg>
+
+//  RESOURCE DEFINITIONS 
+
+RESOURCE RSS_SIGNATURE { }
+
+STRUCT ANIM_DURATION
+    {
+    WORD time;
+    }
+
+RESOURCE ANIM_DURATION r_anim_duration
+    {
+    time = 0; //milliseconds
+    }
+
+RESOURCE BMPANIM_DATA r_shutdown_anim
+    {
+    frameinterval = 200;
+
+    playmode = EAknBitmapAnimationPlayModeCycle;
+
+    bmpfile = "z:\\resource\\apps\\touchscreencalib.mbm";
+
+    frames = r_target_frames;
+    }
+
+RESOURCE ARRAY r_target_frames 
+    {
+    items = 
+        {
+            BMPANIM_FRAME { bmpid = EMbmTouchscreencalibQgn_graf_screencalib_1;
+                            maskid = EMbmTouchscreencalibQgn_graf_screencalib_1_mask; },
+            BMPANIM_FRAME { bmpid = EMbmTouchscreencalibQgn_graf_screencalib_2;
+                            maskid = EMbmTouchscreencalibQgn_graf_screencalib_2_mask; },
+            BMPANIM_FRAME { bmpid = EMbmTouchscreencalibQgn_graf_screencalib_3;
+                            maskid = EMbmTouchscreencalibQgn_graf_screencalib_3_mask; },
+            BMPANIM_FRAME { bmpid = EMbmTouchscreencalibQgn_graf_screencalib_4;
+                            maskid = EMbmTouchscreencalibQgn_graf_screencalib_4_mask; },
+            BMPANIM_FRAME { bmpid = EMbmTouchscreencalibQgn_graf_screencalib_5;
+                            maskid = EMbmTouchscreencalibQgn_graf_screencalib_5_mask; }
+        };
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/data/TouchScreenCalib_reg.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  RSS for creating the registration file for TouchScreenCalib.
+*
+*/
+
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x102828BC // application UID
+RESOURCE APP_REGISTRATION_INFO
+    {
+    app_file="TouchScreenCalib"; // filename of application binary (minus extension)
+    hidden = KAppIsHidden;    
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/group/TouchScreenCalib.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2006 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 is project specification file for the TouchScreenCalib.
+*
+*/
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET          touchscreencalib.exe
+TARGETTYPE      exe
+UID             0x0 0x102828BC
+EPOCSTACKSIZE	0x5000
+
+VENDORID        VID_DEFAULT
+CAPABILITY      CAP_APPLICATION
+
+SOURCEPATH      ../src
+
+SOURCE          TouchScreenCalibApplication.cpp 
+SOURCE          TouchScreenCalibAppUi.cpp
+SOURCE          TouchScreenCalibDocument.cpp
+SOURCE          TouchScreenCalibView.cpp
+SOURCE          TouchScreenCalibPubSubObserver.cpp
+SOURCE          TouchScreenCalibSubscriber.cpp
+
+START RESOURCE  ../data/TouchScreenCalib.rss
+TARGETPATH      APP_RESOURCE_DIR
+HEADER
+LANGUAGE_IDS
+END  // RESOURCE
+
+START RESOURCE  ../data/TouchScreenCalib_anim.rss
+HEADER
+TARGETPATH      APP_RESOURCE_DIR
+END  // RESOURCE
+
+START RESOURCE  ../data/TouchScreenCalib_reg.rss
+HEADER
+TARGETPATH      /private/10003a3f/apps
+END
+
+USERINCLUDE     . ../inc ../data
+USERINCLUDE     ../../inc
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib  
+LIBRARY         apparc.lib  
+LIBRARY         cone.lib    
+LIBRARY         avkon.lib
+LIBRARY         eikdlg.lib 
+LIBRARY         eikcore.lib 
+LIBRARY         efsrv.lib
+LIBRARY         fbscli.lib
+LIBRARY         commonengine.lib        //use of SharedData
+LIBRARY         ws32.lib
+LIBRARY         aknnotify.lib           //AknGlobalNote
+LIBRARY         apgrfx.lib              //
+LIBRARY         egul.lib                //DrawUtils
+LIBRARY         bafl.lib
+LIBRARY         aknskins.lib            //for skin background
+LIBRARY         cdlengine.lib           //for scalable ui
+LIBRARY         gdi.lib
+LIBRARY         aknlayout2scalable.lib
+LIBRARY         aknicon.lib
+LIBRARY         centralrepository.lib
+LIBRARY         starterclient.lib       //use of Starter to remove splash screen
+LIBRARY         touchfeedback.lib
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2006 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 provides the information required for building the
+*                whole of a TouchScreenCalib.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../loc/touchscreencalib.loc             APP_LAYER_LOC_EXPORT_PATH(touchscreencalib.loc)
+../rom/TouchScreenCalib.iby             CORE_APP_LAYER_IBY_EXPORT_PATH(touchscreencalib.iby)
+../rom/TouchScreenCalib_variant.iby     CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(touchscreencalib_variant.iby)
+../rom/TouchScreenCalibResources.iby    LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(touchscreencalibresources.iby)
+../PubSub/touchscprivatepskeys.h        |../../inc/touchscprivatepskeys.h
+
+PRJ_MMPFILES
+
+TouchScreenCalib.mmp
+../tscstartupextensionplugin/group/tscstartupextensionplugin.mmp
+../tsccustcmds/group/tsccustcmds.mmp
+
+PRJ_EXTENSIONS
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE touchscreencalib.mif
+OPTION HEADERFILE touchscreencalib.mbg
+OPTION SOURCES -c16,8 Qgn_graf_screencalib \
+		-c16,8 Qgn_graf_screencalib_1 \
+		-c16,8 Qgn_graf_screencalib_2 \
+		-c16,8 Qgn_graf_screencalib_3 \
+		-c16,8 Qgn_graf_screencalib_4 \
+		-c16,8 Qgn_graf_screencalib_5
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/group/touchscreencalib_icons.mk	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,75 @@
+#
+# Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0""
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: Icons makefile for project touchscreencalib
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\z
+else
+ZDIR=\epoc32\data\z
+endif
+
+# ----------------------------------------------------------------------------
+# : Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+HEADERDIR=\epoc32\include
+ICONTARGETFILENAME=$(TARGETDIR)\touchscreencalib.mif
+HEADERFILENAME=$(HEADERDIR)\touchscreencalib.mbg
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# : Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+
+RESOURCE :
+	mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
+		/c16,8 Qgn_graf_screencalib \
+		/c16,8 Qgn_graf_screencalib_1 \
+		/c16,8 Qgn_graf_screencalib_2 \
+		/c16,8 Qgn_graf_screencalib_3 \
+		/c16,8 Qgn_graf_screencalib_4 \
+		/c16,8 Qgn_graf_screencalib_5
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo $(HEADERFILENAME)&& \
+	@echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/MTouchScreenCalibPropertyResponder.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Interface of Touch screen calibration property change obsever
+*
+*/
+
+
+#ifndef MTOUCHSCREENCALIBPROPERTYRESPONDER_H
+#define MTOUCHSCREENCALIBPROPERTYRESPONDER_H
+
+// INCLUDES
+#include <e32base.h>
+
+class MTouchScreenCalibPropertyResponder
+    {
+public:
+    virtual void HandlePropertyChangedL( const TUid& aCategory, TUint aKey ) = 0;
+    };
+#endif //MTOUCHSCREENCALIBPROPERTYRESPONDER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibAppUi.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,202 @@
+/*
+* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  AppUi class of the application.
+*
+*/
+
+
+#ifndef TOUCHSCREENCALIBAPPUI_H
+#define TOUCHSCREENCALIBAPPUI_H
+
+// SYSTEM INCLUDES
+#include <aknappui.h>
+#include <coecntrl.h>
+#include <StringLoader.h>
+#include <aknPopup.h>
+#include <aknlists.h>
+#include <badesca.h>
+#include <AknDef.h>
+#include <e32hal.h>
+
+// CONSTANTS
+const TInt KConvertGetCase = 0;
+const TInt KConvertSaveCase = 1;
+
+const TInt KUnknownOrientation = 0;
+const TInt KPortraitOrientation = 1;
+const TInt KLandscapeOrientation = 2;
+
+// FORWARD DECLARATIONS
+class TTouchScreenCalibLayout
+    {
+public:
+    TAknLayoutRect      iAnimImageLayout1;
+    TAknLayoutRect      iAnimImageLayout2;
+    TAknLayoutRect      iAnimImageLayout3;
+    TAknLayoutRect      iAnimImageLayout4;
+    };
+
+class CTouchScreenCalibView;
+class CTouchScreenCalibPubSubObserver;
+/**
+*  'AppUi' class.
+*
+*/
+class CTouchScreenCalibAppUi : public CAknAppUi, CCoeControl
+{
+    public: // Constructors and destructor
+
+        /**
+        * C++ default constructor.
+        */
+        CTouchScreenCalibAppUi();
+
+        /**
+        * Destructor.
+        */
+        ~CTouchScreenCalibAppUi();
+
+        // from CCoeAppUiBase
+        void PrepareToExit();
+
+        /**
+        * Handles key events
+        * @param TKeyEvent key event
+        * @param TEventCode event code
+        * @since S60 3.2
+        */
+        void HandleKeyL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+        /**
+        * Handles pointer events
+        * @param TPoint co-ordinates
+        * @since S60 3.2
+        */
+        void HandlePointerL( TPoint aPos );
+
+        /**
+        * Check current point number
+        * @since S60 3.2
+        * @return TInt, point number
+        */
+        TInt GetCalibrationStep();
+
+        /**
+        * Get rect of current tap animation or image
+        * @since S60 3.2
+        * @param TInt, point number
+        * @return TRect, animation or image rect.
+        */
+        TRect GetAnimImageRect(TInt aPointNumber = 0);
+
+        /**
+        * From CAknAppUi, called when screen layout changes
+        */
+        void HandleScreenDeviceChangedL();
+
+        /**
+        * Check if first boot is going on
+        * @since S60 3.2
+        * @return. ETrue if first boot, otherwise EFalse
+        */
+        TBool FirstBoot();
+
+    protected:
+        /*
+         * Handles changes to the application when it
+         * switches to or from the foreground.
+         */
+        virtual void HandleForegroundEventL(TBool aForeground);
+
+    private:
+        /**
+        * EPOC default constructor.
+        */
+        void ConstructL();
+
+        /**
+        * Update display
+        * @since S60 3.2
+        */
+        void UpdateL();
+
+        /**
+        * Checks layout orientation
+        * @since S60 3.2
+        * @return TBool. ETrue if orientation same in driver native level and window level
+        */
+        TBool IsCorrectOrientation(TRect aRect);
+
+        /**
+        * Convert calibration or tapped points to different layout orientation
+        * @since S60 3.2
+        * @param Points
+        * @param Convert case.
+        * @return Calibration points. KConvertGetCase or KConvertSaveCase.
+        */
+        TDigitizerCalibration ConvertToCorrectOrientation(TDigitizerCalibration aPoints,
+                                                          TInt aConvertCase);
+        /**
+        * Get calibration points
+        * @since S60 3.2
+        * @return Calibration points
+        */
+        TDigitizerCalibration CalibrationPoints();
+
+        /**
+        * Change to next calibration point
+        * @since S60 3.2
+        */
+        void NextCalibrationStepL();
+
+        /**
+        * Saves calibration
+        * @since S60 3.2
+        */
+        void SaveCalibration();
+
+        /**
+        * Restart calibration at first point
+        * @since S60 3.2
+        */
+        void ResetCalibrationStepsL();
+
+        /**
+        * Sets tap points to 0 values
+        * @since S60 3.2
+        */
+        void ResetTapPoints();
+
+        TDigitizerCalibration ChangeOrientation(TDigitizerCalibration aSourcePoints,
+                                                TPoint aDestReso);
+        
+        
+        void SetOrientation();
+
+    private: //Data
+        CTouchScreenCalibView*              iTouchScreenCalibView; //owns
+        CTouchScreenCalibPubSubObserver*    iTouchScreenCalibPubSubObserver; //owns
+        TDigitizerCalibration               iCalibrationPoints;
+        TDigitizerCalibration               iTapPoints;
+        TInt                                iCurrentCalibrationStep;
+        TBool                               iExitting;
+        TTouchScreenCalibLayout             iTouchScreenCalibLayout;
+        TBool                               iCalibrationDone;
+        TInt								iNativeOrientation;
+        TBool                               iCalibrationCancel;
+};
+
+#endif // TOUCHSCREENCALIBAPPUI_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibApplication.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Application class of the module.
+*
+*/
+
+
+
+#ifndef TOUCHSCREENCALIBAPPLICATION_H
+#define TOUCHSCREENCALIBAPPLICATION_H
+
+// SYSTEM INCLUDES
+#include <aknapp.h>
+
+// CONSTANTS
+const TUid KUidTouchScreenCalib = { 0x102828BC };
+
+// CLASS DECLARATION
+
+/**
+* CTouchScreenCalibApp application class.
+*/
+class CTouchScreenCalibApplication : public CAknApplication
+    {
+    private: // from CApaApplication
+        /**
+        * Create CTouchScreenCalibDocument document object.
+        */
+        CApaDocument* CreateDocumentL();
+
+        /**
+        * Return KUidTouchScreenCalib.
+        */
+        TUid AppDllUid() const;
+    };
+
+#endif // TOUCHSCREENCALIBAPPLICATION_H
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibDefines.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes some common defines used in the TouchScreenCalib application
+*
+*/
+
+
+#ifndef TOUCHSCREENCALIBDEFINES_H
+#define TOUCHSCREENCALIBDEFINES_H
+
+//CONSTANTS
+_LIT( KTouchScreenCalibAppName, "TouchScreenCalib" ); 
+
+// MACROS
+
+#define PANIC(aPanic) User::Panic( KTouchScreenCalibAppName, aPanic )
+
+#define TRACE_ADDPREFIX(aText) (TPtrC((const TText *)L"TouchScreenCalibApp: \"" L##aText L"\""))
+
+#ifdef _DEBUG
+#define TRACES(aMsg) RDebug::Print( TRACE_ADDPREFIX(aMsg) )
+#define TRACES1(aFormat,aP1) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1) )
+#define TRACES2(aFormat,aP1,aP2) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2) )
+#define TRACES3(aFormat,aP1,aP2,aP3) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2),(aP3) )
+#else
+#define TRACES(aMsg)
+#define TRACES1(aFormat,aP1)
+#define TRACES2(aFormat,aP1,aP2)
+#define TRACES3(aFormat,aP1,aP2,aP3)
+#endif
+#endif      // TOUCHSCREENCALIBDEFINES_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibDocument.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,80 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Document class of the module.
+*
+*/
+
+
+
+#ifndef TOUCHSCREENCALIBDOCUMENT_H
+#define TOUCHSCREENCALIBDOCUMENT_H
+
+// SYSTEM INCLUDES
+#include <AknDoc.h>
+
+// FORWARD DECLARATIONS
+class   CEikAppUi;
+
+// CLASS DECLARATION
+
+/**
+*  CTouchScreenCalibDocument application class.
+*/
+class CTouchScreenCalibDocument : public CAknDocument
+{
+    public:
+
+        /**
+        *   C++ default constructor.
+        */
+        CTouchScreenCalibDocument(CEikApplication& aApp): CAknDocument(aApp) { }
+
+        /**
+        *   Two-phased constructor.
+        */
+        static CTouchScreenCalibDocument* NewL(CEikApplication& aApp);
+
+        /**
+        *   Destructor.
+        */
+        virtual ~CTouchScreenCalibDocument();
+
+    private:
+        /**
+        *   EPOC default constructor.
+        */
+        void ConstructL();
+
+        /**
+        * This method makes an application hidden so that it is not visible
+        * for example in Applications list and FastSwap window.
+        * @param CApaWindowGroupName* aWgName
+        * @return void        
+        */
+        void UpdateTaskNameL( CApaWindowGroupName* aWgName );
+
+    private:// from CEikDocument
+
+        /**
+        * Create CTouchScreenCalibAppUi object.
+        */
+        CEikAppUi* CreateAppUiL();
+        
+    private:// data
+
+};
+
+#endif
+
+//End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibPubSubObserver.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2007 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class the handles the received indications from the Public and
+*           Subscribe.
+*
+*/
+
+
+#ifndef TOUCHSCREENCALIBPUBSUBOBSERVER_H
+#define TOUCHSCREENCALIBPUBSUBOBSERVER_H
+
+//  INCLUDES
+#include <e32property.h>
+#include "MTouchScreenCalibPropertyResponder.h"
+#include "TouchScreenCalibAppUi.h"
+
+// CLASS DECLARATION
+class CTouchScreenCalibAppUi;
+class CTouchScreenCalibSubscriber;
+
+class CTouchScreenCalibPubSubObserver : public CBase, public MTouchScreenCalibPropertyResponder
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ constructor.
+        */
+        CTouchScreenCalibPubSubObserver( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi );
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTouchScreenCalibPubSubObserver* NewL( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi );
+        
+        /**
+        * Destructor.
+        */
+        ~CTouchScreenCalibPubSubObserver();
+
+    private:
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        void ConstructL();
+
+        CTouchScreenCalibPubSubObserver();
+
+    protected: // From MTouchScreenCalibPropertyResponder
+
+        void HandlePropertyChangedL( const TUid& aCategory, TUint aKey );
+
+    private:    // Data
+        //reference to application class
+        CTouchScreenCalibAppUi*         iTouchScreenCalibAppUi; //uses
+        RProperty                       iProperty;
+        CTouchScreenCalibSubscriber*    iGlobalSWStateSubscriber;
+        CTouchScreenCalibSubscriber*    iTsyCallState;
+    };
+
+#endif      // TOUCHSCREENCALIBPUBSUBOBSERVER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibSubscriber.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TouchScreenCalibSubscriber (Publish & Subscribe).
+*
+*/
+
+
+#ifndef TOUCHSCREENCALIBSUBSCRIBER_H
+#define TOUCHSCREENCALIBSUBSCRIBER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32property.h>
+#include "MTouchScreenCalibPropertyResponder.h"
+
+// CLASS DECLARATION
+/**
+*  CTouchScreenCalibSubscriber
+*  
+*  @lib   
+*  @since 3.2
+*/
+
+class CTouchScreenCalibSubscriber : public CActive
+{
+public:
+    /**
+    * Two-phased constructor.
+    */         
+    static CTouchScreenCalibSubscriber* NewL( MTouchScreenCalibPropertyResponder& aTouchScreenCalibPropertyResponder, 
+                                     const TUid& aCategory, 
+                                     TUint aKey );
+
+    /**
+    * Destructor.
+    */
+     ~CTouchScreenCalibSubscriber();
+
+     void Subscribe();
+
+private:
+     CTouchScreenCalibSubscriber( MTouchScreenCalibPropertyResponder& aTouchScreenCalibPropertyResponder, 
+                         const TUid& aCategory, TUint 
+                         aKey );
+     void ConstructL();
+
+public: // from CActive
+    /**
+    *	@param none
+    *	@return none
+    */    
+    void RunL();
+    
+    /**
+    *	@param aError the error returned
+    *	@return error
+    */
+    TInt RunError( TInt aError );
+
+    /**
+    *	@param none
+    *	@return none
+    */    
+    void DoCancel();
+	
+private: // Methods not implemented
+    CTouchScreenCalibSubscriber( const CTouchScreenCalibSubscriber& );           // Copy constructor
+    CTouchScreenCalibSubscriber& operator=( const CTouchScreenCalibSubscriber& );// Assigment operator
+
+private:
+
+    MTouchScreenCalibPropertyResponder& iTouchScreenCalibPropertyResponder;
+    RProperty                           iProperty;
+    TUid                                iCategory;
+    TUint                               iKey;
+};
+
+#endif // TOUCHSCREENCALIBSUBSCRIBER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/inc/TouchScreenCalibView.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,215 @@
+/*
+* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class is the container class of the CTouchScreenCalibView.
+*     Is used to show tap target animation.
+*
+*/
+
+
+
+#ifndef TOUCHSCREENCALIBVIEW_H
+#define TOUCHSCREENCALIBVIEW_H
+
+// SYSTEM INCLUDES
+#include <coecntrl.h>
+#include <data_caging_path_literals.hrh>
+
+#include <touchfeedback.h>
+// USER INCLUDES
+#include "TouchScreenCalibAppUi.h"
+
+// CONSTANTS
+
+// FORWARD DECLARATIONS
+class TCalibAnimImageRect
+    {
+public:
+    TRect iAnimImageRect1;
+    TRect iAnimImageRect2;
+    TRect iAnimImageRect3;
+    TRect iAnimImageRect4;
+    };
+
+class CTouchScreenCalibAppUi;
+class CAknBitmapAnimation;
+
+// CLASS DECLARATION
+
+/**
+*  This class takes care of showing welcome animatio to the user.
+*/
+class CTouchScreenCalibView :  public CCoeControl , public MCoeControlObserver 
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        *  C++ default constructor.
+        */
+        CTouchScreenCalibView( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi );
+
+        /**
+        * Two-phased constructor.
+        */
+        static CTouchScreenCalibView* NewL( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi );
+
+        /**
+        *  Destructor
+        */
+        ~CTouchScreenCalibView();      
+
+        /**
+        *  This handles the key events in this control.
+        */
+        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+
+        /**
+        * Update UI
+        */
+        void UpdateL( TAknLayoutText aTextLayout );
+        
+        /**
+        * Prepare to draw background for ending phase
+        */
+        void DrawEndingBackground();
+        
+        /**
+        * Prepare to draw background for notes
+        */
+        void EndTargetAnimation();
+    
+        /**
+        *  This makes the animation module to stop showing animation.
+        */
+        void EndAnimation();
+
+        /**
+        * 
+        */
+        void SetTextL(TAknLayoutText aTextLayout);
+
+        /**
+        * 
+        */
+        void SetWinPriority(TInt aPriority);
+
+    private:
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        void ConstructL();
+
+        CTouchScreenCalibView();
+
+        /**
+        *  Is called when size is changed.
+        */
+        void SizeChanged();
+
+        /**
+        *  Returns the count of the components in the container.
+        */
+        TInt CountComponentControls() const;
+
+        /**
+        *  Returns the component specified by aIndex parameter.
+        */
+        CCoeControl* ComponentControl(TInt aIndex) const;
+
+        /**
+        *  Handles the event of the control.
+        */
+        void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
+
+        /**
+        *  Handles key events.
+        *  @param  aKeyEvent        Event to be handled
+        *  @param  aType            Type of the key event 
+        *  @return TKeyResponse
+        */
+        virtual TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+
+        /**
+        * Handles pointer events
+        */
+        virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+
+        /**
+        * Checks tapped point's validity
+        * @param TPoint             co-ordinates
+        * @since S60 3.2
+        */
+        TBool Validate(TPoint aPos);
+
+        /**
+        * Draw white background
+        * @since S60 3.2
+        */
+        void DrawBackground() const;
+
+        /**
+        * Draw texts
+        * @since S60 3.2
+        */
+        void DrawText() const;
+
+        /**
+        * Draw inactive tap points
+        * @since S60 3.2
+        */
+        void ShowImage( TRect aRect ) const;
+
+    private: // Functions from base classes
+
+        /**
+        * From CCoeControl
+        */
+        void Draw( const TRect& aRect ) const;
+    
+    protected: // Data
+
+        //Used for showing animation    
+        CAknBitmapAnimation *iAnim; //owns
+
+        CFbsBitmap *iBitmap;
+        CFbsBitmap *iBitmapMask;
+
+        CTouchScreenCalibAppUi* iTouchScreenCalibAppUi; //uses
+
+        //used for telling when the animation is showing
+        TBool iAnimationShowing;
+
+        //used for telling if animation is cancelled by user.
+        TBool iAnimationCancelled;
+
+        const CFont* iFont; // not owned
+
+        CArrayPtr<HBufC>* iText;
+
+        
+        TCalibAnimImageRect iAnimImageRect;
+
+        TPoint iTextTopLeft;
+        TSize iTextSize;
+        TInt iTextBaselineOffset;
+        TRgb iTextColor;
+        CGraphicsContext::TTextAlign iTextAlignment;
+        TBool iCalibrationCompleted;
+        MTouchFeedback* iTouchFeedback;
+    };
+
+#endif      // TOUCHSCREENCALIBVIEW_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/loc/touchscreencalib.loc	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for TouchScreenCalib
+*
+*/
+
+
+// LOCALISATION STRINGS
+
+//d:Asks user to tap center of the target with stylus.
+//l:main_touch_calib_pane_t1
+//w:
+//r:3.2
+//
+#define qtn_touch_screen_cali_instr_gen "Touch screen calibration step %N of 4: Use stylus to tap center of target."
+
+//d:Used to tell user that pressing Send key cancels calibration and exits application.
+//d:This is used when TouchScreenCalib application is started from General Settings by user.
+//l:main_touch_calib_pane_t2
+//w:
+//r:3.2
+//
+#define qtn_touch_screen_cali_instr_can "To cancel press Send key."
+
+//d:Used to tell user that pressing Send key resets calibration and calibration
+//d:begins again from point 1. This is used when TouchScreenCalib application is
+//d:started when the phone is starter for the first time.
+//l:main_touch_calib_pane_t2
+//w:
+//r:3.2
+//
+#define qtn_touch_screen_cali_instr_res "To start again from point 1 press Send key."
+
+//d:This Information Note is displayed if user cancels calibration with Send key press.
+//l:popup_note_window/opt2
+//w:
+//r:5.0
+//
+#define qtn_touch_screen_cali_cancel "Calibration cancelled."
+
+//d:This Confirmation Note is dipslayed when calibration is done succesfully.
+//l:popup_note_window/opt2
+//w:
+//r:3.2
+//
+#define qtn_touch_screen_cali_done "Calibration successful!"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/rom/TouchScreenCalib.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* 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:
+*     This class is a part of the standard application framework.
+*     The application gets instantiated starting from this class.
+*     Provides a factory method for instantiating the document object.
+*
+*/
+#ifndef __TOUCHSCREENCALIB_IBY__
+#define __TOUCHSCREENCALIB_IBY__
+
+#if defined (__PEN_SUPPORT) && defined(__PEN_SUPPORT_CALIBRATION)
+S60_APP_EXE(TouchScreenCalib)
+S60_APP_AIF_RSC(TouchScreenCalib)
+#endif
+#if ( defined FF_TOUCHSCREENCALIB_IN_STARTUP && defined __PEN_SUPPORT && defined __PEN_SUPPORT_CALIBRATION )
+ECOM_PLUGIN( tscstartupextensionplugin.dll, tscstartupextensionplugin.rsc )
+file=ABI_DIR\BUILD_DIR\tsccustcmds.dll           SHARED_LIB_DIR\tsccustcmds.dll
+#endif //FF_TOUCHSCREENCALIB_IN_STARTUP
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/rom/TouchScreenCalibResources.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +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:
+*     This class is a part of the standard application framework.
+*     The application gets instantiated starting from this class.
+*     Provides a factory method for instantiating the document object.
+*
+*/
+
+#ifndef __TOUCHSCREENCALIB_RESOURCES_IBY__
+#define __TOUCHSCREENCALIB_RESOURCES_IBY__
+
+#if defined (RD_SCALABLE_UI_V2) && defined(__PEN_SUPPORT) && defined(__PEN_SUPPORT_CALIBRATION)
+S60_APP_RESOURCE(TouchScreenCalib)
+#endif
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/rom/TouchScreenCalib_variant.iby	Wed Sep 01 12:33:30 2010 +0100
@@ -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:
+*     This class is a part of the standard application framework.
+*     The application gets instantiated starting from this class.
+*     Provides a factory method for instantiating the document object.
+*
+*/
+
+#ifndef __TOUCHSCREENCALIB_VARIANT_IBY__
+#define __TOUCHSCREENCALIB_VARIANT_IBY__
+
+#if defined (RD_SCALABLE_UI_V2) && defined(__PEN_SUPPORT) && defined(__PEN_SUPPORT_CALIBRATION)
+SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,TouchScreenCalib)
+S60_APP_RESOURCE(TouchScreenCalib_anim)
+#endif
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/src/TouchScreenCalibAppUi.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,722 @@
+/*
+* Copyright (c) 2006 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  AppUi class of the application.
+*
+*/
+
+
+// SYSTEM INCLUDES
+#include <aknnotewrappers.h>
+#include <touchscreencalib.rsg>
+#include <e32property.h>
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include "touchscprivatepskeys.h"
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <StartupAppInternalPSKeys.h>
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <aknlayoutscalable_apps.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <centralrepository.h>
+#include <starterdomaincrkeys.h>
+#include <starterclient.h>     //used for RemoveSplashScreen
+
+// USER INCLUDES
+#include "TouchScreenCalibApplication.h"
+#include "TouchScreenCalibAppUi.h"
+#include "TouchScreenCalibDefines.h"
+#include "TouchScreenCalibDocument.h"
+#include "TouchScreenCalibView.h"
+#include "TouchScreenCalibPubSubObserver.h"
+
+// CONSTANTS
+
+_LIT_SECURITY_POLICY_C1(KReadDeviceDataPolicy, ECapabilityReadDeviceData);
+_LIT_SECURITY_POLICY_C1(KWriteDeviceDataPolicy, ECapabilityWriteDeviceData);
+
+// ================= MEMBER FUNCTIONS =======================
+//
+// ----------------------------------------------------
+// CTouchScreenCalibAppUi::CTouchScreenCalibAppUi()
+// ----------------------------------------------------
+CTouchScreenCalibAppUi::CTouchScreenCalibAppUi():
+    iTouchScreenCalibPubSubObserver( NULL ),
+    iCurrentCalibrationStep( 0 ),
+    iExitting( EFalse ),
+    iCalibrationDone( EFalse ),
+    iCalibrationCancel( EFalse )
+    {
+    TRACES("CTouchScreenCalibAppUi::CTouchScreenCalibAppUi");
+    iNativeOrientation = KUnknownOrientation;
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibAppUi::ConstructL()
+// ----------------------------------------------------
+void CTouchScreenCalibAppUi::ConstructL()
+    {
+    TRACES("CTouchScreenCalibAppUi::ConstructL()");
+    TInt flags = EStandardApp|EAknEnableSkin;
+
+    BaseConstructL(flags);
+
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+    RProperty::Define(KPSUidTouchScreenCalibration,
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION    
+    RProperty::Define(KPSUidStartup,
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+                      KPSTouchScreenCalibration,
+                      RProperty::EInt,
+                      KReadDeviceDataPolicy,
+                      KWriteDeviceDataPolicy );
+    
+    // Clearing the calibration before doing the actual calibration
+    TDigitizerCalibrationType caltype = EFactory;
+    UserHal::RestoreXYInputCalibration(caltype);
+    ResetTapPoints();
+    
+//    SetOrientation();
+
+    iCalibrationPoints = CalibrationPoints();
+
+    // Set TSC application to be system application
+    CEikonEnv& eikEnv = *CEikonEnv::Static();
+    eikEnv.SetSystem( ETrue );
+
+    iTouchScreenCalibLayout.iAnimImageLayout1.LayoutRect(Rect(),AknLayoutScalable_Apps::main_touch_calib_pane_g1().LayoutLine());
+    iTouchScreenCalibLayout.iAnimImageLayout2.LayoutRect(Rect(),AknLayoutScalable_Apps::main_touch_calib_pane_g2().LayoutLine());
+    iTouchScreenCalibLayout.iAnimImageLayout3.LayoutRect(Rect(),AknLayoutScalable_Apps::main_touch_calib_pane_g3().LayoutLine());
+    iTouchScreenCalibLayout.iAnimImageLayout4.LayoutRect(Rect(),AknLayoutScalable_Apps::main_touch_calib_pane_g4().LayoutLine());
+
+    iTouchScreenCalibView = CTouchScreenCalibView::NewL( this );
+    AddToStackL( iTouchScreenCalibView );
+
+    iTouchScreenCalibView->SetWinPriority(0);
+    // Disable priority changes of window server
+    eikEnv.WsSession().ComputeMode( RWsSession::EPriorityControlDisabled );
+
+    UpdateL();
+    
+    iTouchScreenCalibPubSubObserver = CTouchScreenCalibPubSubObserver::NewL( this );
+
+    if (FirstBoot())
+        {
+        TRACES("CTouchScreenCalibAppUi::ConstructL(): First boot ongoing");        
+        TRACES("CTouchScreenCalibAppUi::ConstructL(): Connect to Starter");
+        RStarterSession startersession;
+        if( startersession.Connect() == KErrNone )
+            {
+            TRACES("CTouchScreenCalibAppUi::ConstructL(): Connected to Starter");
+            startersession.EndSplashScreen();
+            TRACES("CTouchScreenCalibAppUi::ConstructL(): Splash screen removed");
+            startersession.Close();
+            }
+        }
+    NextCalibrationStepL();
+
+    TRACES("CTouchScreenCalibAppUi::ConstructL(): End");
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibAppUi::~CTouchScreenCalibAppUi()
+// ----------------------------------------------------
+CTouchScreenCalibAppUi::~CTouchScreenCalibAppUi()
+    {
+    TRACES("CTouchScreenCalibAppUi::~CTouchScreenCalibAppUi()");
+    if (iTouchScreenCalibView)
+        {
+        TRACES("CTouchScreenCalibAppUi::~CTouchScreenCalibAppUi(): delete iTouchScreenCalibView");
+        RemoveFromStack( iTouchScreenCalibView );
+        delete iTouchScreenCalibView;
+        }
+    if (iTouchScreenCalibPubSubObserver)
+        {
+        TRACES("CTouchScreenCalibAppUi::~CTouchScreenCalibAppUi(): delete iTouchScreenCalibPubSubObserver");
+        delete iTouchScreenCalibPubSubObserver;
+        }
+    TRACES("CTouchScreenCalibAppUi::~CTouchScreenCalibAppUi(): End");
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibAppUi::NextCalibrationStepL()
+// ----------------------------------------------------
+void CTouchScreenCalibAppUi::NextCalibrationStepL()
+    {
+    TRACES("CTouchScreenCalibAppUi::NextCalibrationStepL()");
+    TRACES2("CTouchScreenCalibAppUi::NextCalibrationStepL(): TapPoint1: %d %d",iTapPoints.iTl.iX, iTapPoints.iTl.iY);
+    TRACES2("CTouchScreenCalibAppUi::NextCalibrationStepL(): TapPoint2: %d %d",iTapPoints.iTr.iX, iTapPoints.iTr.iY);
+    TRACES2("CTouchScreenCalibAppUi::NextCalibrationStepL(): TapPoint3: %d %d",iTapPoints.iBr.iX, iTapPoints.iBr.iY);
+    TRACES2("CTouchScreenCalibAppUi::NextCalibrationStepL(): TapPoint4: %d %d",iTapPoints.iBl.iX, iTapPoints.iBl.iY);
+    iCurrentCalibrationStep++;
+    TRACES1("CTouchScreenCalibAppUi::NextCalibrationStepL(): CurrentCalibrationStep: %d",iCurrentCalibrationStep);
+
+    if (iCurrentCalibrationStep > 4)
+        {
+        TRACES("CTouchScreenCalibAppUi::NextCalibrationStepL(): Calibration succesfully completed. Save it and exit application.");
+        SaveCalibration();
+        iCalibrationDone = ETrue;
+
+        iTouchScreenCalibView->EndTargetAnimation();
+        iTouchScreenCalibView->SetWinPriority(ECoeWinPriorityNormal);
+        TRACES("CTouchScreenCalibAppUi::NextCalibrationStepL(): Show 'Calibration Done' note");
+        HBufC* noteText = CEikonEnv::Static()->AllocReadResourceLC(R_QTN_TOUCH_SCREEN_CALI_DONE );
+        CAknInformationNote* note =
+            new( ELeave ) CAknInformationNote( ETrue );
+        note->ExecuteLD( *noteText );
+        CleanupStack::PopAndDestroy( noteText );
+        if ( FirstBoot() )
+            {
+            iTouchScreenCalibView->DrawEndingBackground();
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+            RProperty::Set( KPSUidTouchScreenCalibration, KPSTouchScreenCalibration, ETouchScreenCalibrationOk );    
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION    
+            RProperty::Set( KPSUidStartup, KPSTouchScreenCalibration, ETouchScreenCalibrationOk );    
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION            
+            iTouchScreenCalibView->SetWinPriority(0);
+            }
+        else
+            {
+            PrepareToExit();
+            }
+        }
+    else
+        {
+        TRACES("CTouchScreenCalibAppUi::NextCalibrationStepL(): Update next step.");
+        UpdateL();
+        }
+    TRACES("CTouchScreenCalibAppUi::NextCalibrationStepL(): End");
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibAppUi::SaveCalibration()
+// ----------------------------------------------------
+void CTouchScreenCalibAppUi::SaveCalibration()
+    {
+    TRACES("CTouchScreenCalibAppUi::SaveCalibration()");
+
+    // Touch Screen driver supports only portrait orientation. If device is now in
+    // landscape mode, convert points to portrait.
+    TDigitizerCalibration tapPoints = ConvertToCorrectOrientation(iTapPoints,
+                                                                  KConvertSaveCase);
+    UserHal::SetXYInputCalibration(tapPoints);
+    TRACES("CTouchScreenCalibAppUi::SaveCalibration(): End");
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibAppUi::ResetCalibrationStepsL()
+// ----------------------------------------------------
+void CTouchScreenCalibAppUi::ResetCalibrationStepsL()
+    {
+    iCurrentCalibrationStep = 0;
+    ResetTapPoints();
+    NextCalibrationStepL();
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::HandleForegroundEventL(TBool aForeground)
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::HandleForegroundEventL( TBool aForeground )
+    {
+    // call super-class first
+    CAknAppUi::HandleForegroundEventL( aForeground );
+    TRACES1("CTouchScreenCalibAppUi::HandleForegroundEventL( %d )", aForeground);
+    if ( aForeground )
+        {
+        // if we are coming to foreground
+        UpdateL();
+        }
+    else
+        {
+        if (!FirstBoot())
+            {
+            // Take old calibration in use                
+            TDigitizerCalibrationType caltype = ESaved;
+            UserHal::RestoreXYInputCalibration(caltype);
+            PrepareToExit();
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::HandleKeyL(const TKeyEvent& aKeyEvent, TEventCode /*aType*/ )
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::HandleKeyL( const TKeyEvent& aKeyEvent, TEventCode /*aType*/ )
+    {
+    TRACES1("CTouchScreenCalibAppUi::HandleKeyL(): %d",aKeyEvent.iCode);
+
+    if (aKeyEvent.iCode == EKeyYes) //Send key
+        {
+        TRACES("CTouchScreenCalibAppUi::HandleKeyL(): Send Key");
+        if (FirstBoot()) // Restart calibration from step 1
+            {
+            TRACES("CTouchScreenCalibAppUi::HandleKey(): Go to first calibration step");
+            ResetCalibrationStepsL();
+            }
+        else// Show "Calibration cancelled" Information note.
+            {
+            TRACES("CTouchScreenCalibAppUi::HandleKeyL(): Show cancel note");
+            iCalibrationCancel = ETrue;
+            
+            iTouchScreenCalibView->EndAnimation();          
+            iTouchScreenCalibView->SetWinPriority(ECoeWinPriorityNormal);
+            HBufC* noteText = CEikonEnv::Static()->AllocReadResourceLC(R_QTN_TOUCH_SCREEN_CALI_CANCEL );
+            CAknInformationNote* note =
+                new( ELeave ) CAknInformationNote( ETrue );
+            note->ExecuteLD( *noteText );
+            CleanupStack::PopAndDestroy( noteText );
+            
+            // Take old calibration in use
+            TDigitizerCalibrationType caltype = ESaved;
+            UserHal::RestoreXYInputCalibration(caltype);
+            PrepareToExit();
+            }
+        }
+    else if ( aKeyEvent.iCode == EKeyNo || aKeyEvent.iCode == EKeyApplication0 
+                     || ( aKeyEvent.iCode == EKeyNull && aKeyEvent.iScanCode == EStdKeyDevice7 ))
+        {
+        TRACES("CTouchScreenCalibAppUi::HandleKeyL(): End Key or App Key");
+        if (!FirstBoot())
+            {
+            // Take old calibration in use                
+            TDigitizerCalibrationType caltype = ESaved;
+            UserHal::RestoreXYInputCalibration(caltype);
+            PrepareToExit();
+            }
+        }
+    TRACES("CTouchScreenCalibAppUi::HandleKeyL(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::HandlePointerL()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::HandlePointerL( TPoint aPos )
+    {
+    TRACES("CTouchScreenCalibAppUi::HandlePointerL()");
+
+    switch(iCurrentCalibrationStep)
+        {
+        case 1:
+            TRACES("CTouchScreenCalibAppUi::HandlePointerL(): case 1");
+            iTapPoints.iTl.iX = aPos.iX;
+            iTapPoints.iTl.iY = aPos.iY;
+            break;
+        case 2:
+            TRACES("CTouchScreenCalibAppUi::HandlePointerL(): case 2");
+            iTapPoints.iTr.iX = aPos.iX;
+            iTapPoints.iTr.iY = aPos.iY;
+            break;
+        case 3:
+            TRACES("CTouchScreenCalibAppUi::HandlePointerL(): case 4");
+            iTapPoints.iBr.iX = aPos.iX;
+            iTapPoints.iBr.iY = aPos.iY;
+            break;
+        case 4:
+            TRACES("CTouchScreenCalibAppUi::HandlePointerL(): case 3");
+            iTapPoints.iBl.iX = aPos.iX;
+            iTapPoints.iBl.iY = aPos.iY;
+            break;
+        default:
+            TRACES("CTouchScreenCalibAppUi::HandlePointerL(): case default");
+            break;
+        }
+    TRACES("CTouchScreenCalibAppUi::HandlePointerL(): End: Continue calibration");
+    NextCalibrationStepL();
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::PrepareToExit()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::PrepareToExit()
+    {
+    TRACES("CTouchScreenCalibAppUi::PrepareToExit()");
+    if (!iExitting)
+        {
+        iExitting = ETrue;
+        CEikAppUi::PrepareToExit();
+        Exit();
+        }
+    TRACES("CTouchScreenCalibAppUi::PrepareToExit(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::ResetTapPoints()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::ResetTapPoints()
+    {
+    TRACES("CTouchScreenCalibAppUi::ResetTapPoints()");
+    iTapPoints.iTl.iX = 0;
+    iTapPoints.iTl.iY = 0;
+    iTapPoints.iTr.iX = 0;
+    iTapPoints.iTr.iY = 0;
+    iTapPoints.iBr.iX = 0;
+    iTapPoints.iBr.iY = 0;
+    iTapPoints.iBl.iX = 0;
+    iTapPoints.iBl.iY = 0;
+    TRACES("CTouchScreenCalibAppUi::ResetTapPoints(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::UpdateL()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::UpdateL()
+    {
+    TRACES("CTouchScreenCalibAppUi::UpdateL()");
+    TRACES1("CTouchScreenCalibAppUi::UpdateL(): iCurrentCalibrationStep: %d",iCurrentCalibrationStep);
+
+    TAknLayoutText textLayout;
+    textLayout.LayoutText(TRect(), AknLayoutScalable_Apps::main_touch_calib_pane_t1().LayoutLine());
+
+    TRACES2("CTouchScreenCalibAppUi::UpdateL(): Text rect top:    X:%d Y:%d",textLayout.TextRect().iTl.iX, textLayout.TextRect().iTl.iY);
+    TRACES2("CTouchScreenCalibAppUi::UpdateL(): Text rect:bottom: X:%d Y:%d",textLayout.TextRect().iBr.iX, textLayout.TextRect().iBr.iY);
+
+    iTouchScreenCalibView->UpdateL(textLayout);
+
+    TRACES("CTouchScreenCalibAppUi::UpdateL(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::GetCalibrationStep()
+// ---------------------------------------------------------------------------
+TInt CTouchScreenCalibAppUi::GetCalibrationStep()
+    {
+    return iCurrentCalibrationStep;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::GetAnimImageRect()
+// ---------------------------------------------------------------------------
+TRect CTouchScreenCalibAppUi::GetAnimImageRect(TInt aPointNumber)
+    {
+    TRACES1("CTouchScreenCalibAppUi::GetAnimImageRect(%d)", aPointNumber);
+    TRect rect;
+    TInt width(0);
+    TInt height(0);
+
+    // If aPointNumber is 0, return current calibration point.
+    if (aPointNumber == 0)
+        {
+        aPointNumber = GetCalibrationStep();
+        }
+
+    switch (aPointNumber)
+        {
+        case 1:
+            width = iTouchScreenCalibLayout.iAnimImageLayout1.Rect().iBr.iX -
+                         iTouchScreenCalibLayout.iAnimImageLayout1.Rect().iTl.iX;
+            height= iTouchScreenCalibLayout.iAnimImageLayout1.Rect().iBr.iY -
+                         iTouchScreenCalibLayout.iAnimImageLayout1.Rect().iTl.iY;
+
+            rect = TRect(TPoint( iCalibrationPoints.iTl.iX - (width/2),
+                                 iCalibrationPoints.iTl.iY - (height/2)),
+                         TPoint( iCalibrationPoints.iTl.iX + (width/2),
+                                 iCalibrationPoints.iTl.iY + (height/2)));
+            break;
+        case 2:
+            width = iTouchScreenCalibLayout.iAnimImageLayout2.Rect().iBr.iX -
+                         iTouchScreenCalibLayout.iAnimImageLayout2.Rect().iTl.iX;
+            height= iTouchScreenCalibLayout.iAnimImageLayout2.Rect().iBr.iY -
+                         iTouchScreenCalibLayout.iAnimImageLayout2.Rect().iTl.iY;
+
+            rect = TRect(TPoint( iCalibrationPoints.iTr.iX - (width/2),
+                                 iCalibrationPoints.iTr.iY - (height/2)),
+                         TPoint( iCalibrationPoints.iTr.iX + (width/2),
+                                 iCalibrationPoints.iTr.iY + (height/2)));
+            break;
+        case 3:
+            width = iTouchScreenCalibLayout.iAnimImageLayout3.Rect().iBr.iX -
+                         iTouchScreenCalibLayout.iAnimImageLayout3.Rect().iTl.iX;
+            height= iTouchScreenCalibLayout.iAnimImageLayout3.Rect().iBr.iY -
+                         iTouchScreenCalibLayout.iAnimImageLayout3.Rect().iTl.iY;
+
+            rect = TRect(TPoint( iCalibrationPoints.iBr.iX - (width/2),
+                                 iCalibrationPoints.iBr.iY - (height/2)),
+                         TPoint( iCalibrationPoints.iBr.iX + (width/2),
+                                 iCalibrationPoints.iBr.iY + (height/2)));
+            break;
+        case 4:
+            width = iTouchScreenCalibLayout.iAnimImageLayout4.Rect().iBr.iX -
+                         iTouchScreenCalibLayout.iAnimImageLayout4.Rect().iTl.iX;
+            height= iTouchScreenCalibLayout.iAnimImageLayout4.Rect().iBr.iY -
+                         iTouchScreenCalibLayout.iAnimImageLayout4.Rect().iTl.iY;
+
+            rect = TRect(TPoint( iCalibrationPoints.iBl.iX - (width/2),
+                                 iCalibrationPoints.iBl.iY - (height/2)),
+                         TPoint( iCalibrationPoints.iBl.iX + (width/2),
+                                 iCalibrationPoints.iBl.iY + (height/2)));
+            break;
+        default:
+            break;
+        }
+    TRACES("CTouchScreenCalibAppUi::GetAnimImageRect(): End");
+    return rect;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::HandleResourceChange(...)
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibAppUi::HandleScreenDeviceChangedL()
+    {
+    TRACES("CTouchScreenCalibAppUi::HandleResourceChange()");
+    CAknAppUiBase::HandleScreenDeviceChangedL();
+
+    if (!iCalibrationDone && !iCalibrationCancel )
+        {
+        TRACES("CTouchScreenCalibAppUi::HandleResourceChange(): Restart calibration");
+        iCalibrationPoints = CalibrationPoints();
+        if (iTouchScreenCalibView)
+            {
+            RemoveFromStack( iTouchScreenCalibView );
+            delete iTouchScreenCalibView;
+            iTouchScreenCalibView = NULL;
+            }
+        iTouchScreenCalibView = CTouchScreenCalibView::NewL( this );
+        AddToStackL( iTouchScreenCalibView );
+        ResetCalibrationStepsL();
+        }
+    else
+        {
+        TRACES("CTouchScreenCalibAppUi::HandleResourceChange(): Update ending background");
+        iTouchScreenCalibView->DrawEndingBackground();
+        }
+    TRACES("CTouchScreenCalibAppUi::HandleResourceChange(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::CalibrationPoints();
+// ---------------------------------------------------------------------------
+TDigitizerCalibration CTouchScreenCalibAppUi::CalibrationPoints()
+    {
+    TRACES("CTouchScreenCalibAppUi::CalibrationPoints()");
+    TDigitizerCalibration calibrationPoints;
+#if defined(__WINS__)
+    // Dummy values for emulator for testing purposes
+    TRect rect = iAvkonAppUi->ApplicationRect();
+    TRACES2("CTouchScreenCalibAppUi::CalibrationPoints(): Window resolution: (%d. %d)",rect.iBr.iX,rect.iBr.iY);
+
+    calibrationPoints.iTl.iX = rect.iTl.iX+50;
+    calibrationPoints.iTl.iY = rect.iTl.iY+50;
+    calibrationPoints.iTr.iX = rect.iBr.iX-50;
+    calibrationPoints.iTr.iY = rect.iTl.iY+50;
+    calibrationPoints.iBr.iX = rect.iBr.iX-50;
+    calibrationPoints.iBr.iY = rect.iBr.iY-50;
+    calibrationPoints.iBl.iX = rect.iTl.iX+50;
+    calibrationPoints.iBl.iY = rect.iBr.iY-50;
+#else
+    UserHal::CalibrationPoints(calibrationPoints);
+#endif
+
+    // Orientation in driver level could be different than window orientation. Convert
+    // points to correct orientation.
+    if (calibrationPoints.iBr.iX > calibrationPoints.iBr.iY )
+        {
+        TRACES("CTouchScreenCalibAppUi::CalibrationPoints(): Native orientation: landscape");
+        iNativeOrientation = KLandscapeOrientation;
+        }
+    else
+        {
+        TRACES("CTouchScreenCalibAppUi::CalibrationPoints(): Native orientation: portrait");
+        iNativeOrientation = KPortraitOrientation;
+        }
+    calibrationPoints = ConvertToCorrectOrientation(calibrationPoints, KConvertGetCase);
+
+    TRACES("CTouchScreenCalibAppUi::CalibrationPoints(): End");
+    return calibrationPoints;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::ConvertToCorrectOrientation(TDigitizerCalibration aPoints);
+// ---------------------------------------------------------------------------
+TDigitizerCalibration CTouchScreenCalibAppUi::ConvertToCorrectOrientation(TDigitizerCalibration aPoints,
+                                                                          TInt aConvertCase)
+    {
+    TRACES("CTouchScreenCalibAppUi::ConvertToCorrectOrientation()");
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", aPoints.iTl.iX,aPoints.iTl.iY);
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", aPoints.iTr.iX,aPoints.iTr.iY);
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", aPoints.iBr.iX,aPoints.iBr.iY);
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", aPoints.iBl.iX,aPoints.iBl.iY);
+    TDigitizerCalibration points;
+    TPoint destReso;
+
+    TRect rect = iAvkonAppUi->ApplicationRect();
+
+    if (!IsCorrectOrientation(rect))
+        {
+        TRACES("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): Points are not for current layout.");
+        if (aConvertCase == KConvertGetCase)
+            {
+            destReso.iX = rect.iBr.iX;
+            destReso.iY = rect.iBr.iY;
+            TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): Destin reso: X:%d Y:%d", destReso.iX,destReso.iY);
+            points = ChangeOrientation(aPoints, destReso);
+            }
+        else
+            {
+            destReso.iX = rect.iBr.iY;
+            destReso.iY = rect.iBr.iX;
+            TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): Destin reso: X:%d Y:%d", destReso.iX,destReso.iY);
+            points = ChangeOrientation(aPoints, destReso);
+            }
+        }
+    else
+        {
+        points = aPoints;
+        }
+
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", points.iTl.iX,points.iTl.iY);
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", points.iTr.iX,points.iTr.iY);
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", points.iBr.iX,points.iBr.iY);
+    TRACES2("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): X:%d Y:%d", points.iBl.iX,points.iBl.iY);
+
+    TRACES("CTouchScreenCalibAppUi::ConvertToCorrectOrientation(): End");
+    return points;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::IsCorrectOrientation(TRect aRect)
+// ---------------------------------------------------------------------------
+TBool CTouchScreenCalibAppUi::IsCorrectOrientation(TRect aRect)
+    {
+    TRACES("CTouchScreenCalibAppUi::IsCorrectOrientation()");
+    TBool ret(ETrue);
+    TBool nativePortrait(ETrue);
+
+    if (iNativeOrientation == KLandscapeOrientation)
+        {
+        TRACES("CTouchScreenCalibAppUi::IsCorrectOrientation(): Native orientation: landscape");
+        nativePortrait = EFalse;
+        }
+
+    TBool windowsPortrait(ETrue);
+
+    if (aRect.iBr.iX > aRect.iBr.iY)
+        {
+        TRACES("CTouchScreenCalibAppUi::IsCorrectOrientation(): Window orientation: landscape");
+        windowsPortrait = EFalse;
+        }
+    else
+        {
+        windowsPortrait = ETrue;
+        }
+
+    if (nativePortrait != windowsPortrait)
+        {
+        ret = EFalse;
+        }
+
+    TRACES1("CTouchScreenCalibAppUi::IsCorrectOrientation(): End: returns %d",ret);
+    return ret;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibAppUi::ChangeOrientation(TDigitizerCalibration aPoints);
+// ---------------------------------------------------------------------------
+TDigitizerCalibration CTouchScreenCalibAppUi::ChangeOrientation(TDigitizerCalibration aSourcePoints,
+                                                                TPoint aDestReso)
+    {
+    TRACES("CTouchScreenCalibAppUi::ChangeOrientation()");
+    TDigitizerCalibration destPoints;
+
+    destPoints.iTl.iX = aSourcePoints.iTr.iY;
+    destPoints.iTl.iY = aDestReso.iY - aSourcePoints.iTr.iX;
+    destPoints.iTr.iX = aSourcePoints.iBr.iY;
+    destPoints.iTr.iY = aDestReso.iY - aSourcePoints.iBr.iX;
+    destPoints.iBr.iX = aSourcePoints.iBl.iY;
+    destPoints.iBr.iY = aDestReso.iY - aSourcePoints.iBl.iX;
+    destPoints.iBl.iX = aSourcePoints.iTl.iY;
+    destPoints.iBl.iY = aDestReso.iY - aSourcePoints.iTl.iX;
+
+
+    TRACES("CTouchScreenCalibAppUi::ChangeOrientation(): End");
+    return destPoints;
+    }
+
+// ---------------------------------------------------------
+// CTouchScreenCalibAppUi::FirstBoot()
+// ---------------------------------------------------------
+TBool CTouchScreenCalibAppUi::FirstBoot()
+    {
+    TRACES("CTouchScreenCalibAppUi::FirstBoot()");
+    TInt value( 0 );
+
+    TRACES("CTouchScreenCalibAppUi::FirstBoot(): Read first boot info from Central Repository ");
+    CRepository* repository(NULL);
+
+    TRAPD( err, repository = CRepository::NewL( KCRUidStartup ) );
+    if ( err == KErrNone )
+        {
+        err = repository->Get( KStartupFirstBoot, value );
+        }
+
+    delete repository;
+
+    if (value)
+        {
+        TRACES("CTouchScreenCalibAppUi::FirstBoot(): End, return EFalse");
+        return EFalse;
+        }
+
+    else
+        {
+        TRACES("CTouchScreenCalibAppUi::FirstBoot(): End, return ETrue");
+        return ETrue;
+        }
+    }
+
+
+/*
+ * This funcntion is used to change the screen orientation to the
+ * same orientation with the factory given calibration data. But it 
+ * is not used now. So just leave it here!
+ * */
+
+
+void CTouchScreenCalibAppUi::SetOrientation()
+    {
+#ifndef __WINS__
+
+    TInt orientation = KUnknownOrientation;
+    TInt nativeOrientation = KUnknownOrientation;
+    TDigitizerCalibration Points;
+    UserHal::CalibrationPoints( Points );
+    if ( Points.iBr.iX  > Points.iBr.iY)
+        {
+        orientation = KLandscapeOrientation;
+        }
+    else
+        {
+        orientation = KPortraitOrientation;
+        }
+    TRect rect = iAvkonAppUi->ApplicationRect();
+    if ( rect.iBr.iX > rect.iBr.iY )
+        {
+        nativeOrientation = KLandscapeOrientation;
+        }
+    else
+        {
+        nativeOrientation = KPortraitOrientation;
+        }
+    
+    if (orientation != nativeOrientation )
+        {
+        if ( orientation == KLandscapeOrientation )
+            {
+            SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
+            }
+        else
+            {
+            SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait );
+            }
+        }
+#endif
+    }
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/src/TouchScreenCalibApplication.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*     This module implements the application core i.e. application
+*     class and standard exported functions
+*
+*/
+
+
+// INCLUDE FILES
+#include "TouchScreenCalibApplication.h"
+#include "TouchScreenCalibDocument.h"
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibApplication::AppDllUid()
+// Returns application UID
+// ---------------------------------------------------------------------------
+TUid CTouchScreenCalibApplication::AppDllUid() const
+    {
+    return KUidTouchScreenCalib;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibApplication::CreateDocumentL()
+// Creates CTouchScreenCalibDocument object
+//
+// ---------------------------------------------------------------------------
+CApaDocument* CTouchScreenCalibApplication::CreateDocumentL()
+    {
+    return CTouchScreenCalibDocument::NewL(*this);
+    }
+
+// ===================== OTHER EXPORTED FUNCTIONS ============================
+#include <eikstart.h>
+
+LOCAL_C CApaApplication* NewApplication()
+    {
+    return new CTouchScreenCalibApplication;
+    }
+
+GLDEF_C TInt E32Main()
+    {
+    return EikStart::RunApplication(NewApplication);
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/src/TouchScreenCalibDocument.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Document class of the application.
+*
+*/
+
+
+// SYSTEM INCLUDES
+#include <apgwgnam.h>
+
+// USER INCLUDES
+#include "TouchScreenCalibDocument.h"
+#include "TouchScreenCalibAppUi.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CTouchScreenCalibDocument::~CTouchScreenCalibDocument()
+// ---------------------------------------------------------
+CTouchScreenCalibDocument::~CTouchScreenCalibDocument()
+    {
+    }
+
+// ---------------------------------------------------------
+// CTouchScreenCalibDocument::ConstructL()
+// ---------------------------------------------------------
+void CTouchScreenCalibDocument::ConstructL()
+    {
+    }
+
+// ---------------------------------------------------------
+// CTouchScreenCalibDocument::NewL()
+// ---------------------------------------------------------
+CTouchScreenCalibDocument* CTouchScreenCalibDocument::NewL(
+        CEikApplication& aApp)     // CTouchScreenCalibApp reference
+    {
+    CTouchScreenCalibDocument* self = new (ELeave) CTouchScreenCalibDocument(aApp);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+    
+// ----------------------------------------------------
+// CTouchScreenCalibDocument::CreateAppUiL()
+// ----------------------------------------------------
+CEikAppUi* CTouchScreenCalibDocument::CreateAppUiL()
+    {
+    return new(ELeave) CTouchScreenCalibAppUi;
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibDocument::UpdateTaskNameL()
+// Makes TouchScreenCalib-application hidden in menu shell and fastswap window
+// ----------------------------------------------------
+void CTouchScreenCalibDocument::UpdateTaskNameL( CApaWindowGroupName* aWgName )
+    {
+    CEikDocument::UpdateTaskNameL( aWgName );
+    aWgName->SetHidden( ETrue );
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/src/TouchScreenCalibPubSubObserver.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2007 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class the handles the received indications from the Public and
+*           Subscribe. 
+*
+*/
+
+
+// SYSTEM INCLUDES
+#include <startupdomainpskeys.h>
+#include <ctsydomainpskeys.h>
+
+// USER INCLUDES
+#include "TouchScreenCalibPubSubObserver.h"
+#include "TouchScreenCalibPubSubObserver.h"
+#include "TouchScreenCalibSubscriber.h"
+#include "TouchScreenCalibDefines.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------
+// CTouchScreenCalibPubSubObserver::CTouchScreenCalibPubSubObserver( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi )
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------
+CTouchScreenCalibPubSubObserver::CTouchScreenCalibPubSubObserver( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi ) :
+    iTouchScreenCalibAppUi( aTouchScreenCalibAppUi )
+    {
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibPubSubObserver::ConstructL()
+// ----------------------------------------------------
+void CTouchScreenCalibPubSubObserver::ConstructL()
+    {
+    TRACES("CTouchScreenCalibPubSubObserver::ConstructL()");
+
+    iGlobalSWStateSubscriber = CTouchScreenCalibSubscriber::NewL( *this, 
+                                                     KPSUidStartup, 
+                                                     KPSGlobalSystemState );
+    iGlobalSWStateSubscriber->Subscribe();
+
+    iTsyCallState = CTouchScreenCalibSubscriber::NewL( *this, 
+                                                     KPSUidCtsyCallInformation, 
+                                                     KCTsyCallState );
+    iTsyCallState->Subscribe();
+    
+    TRACES("CTouchScreenCalibPubSubObserver::ConstructL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibPubSubObserver::HandlePropertyChangedL()
+// ----------------------------------------------------------------------------
+void CTouchScreenCalibPubSubObserver::HandlePropertyChangedL( const TUid& aCategory, TUint aKey )
+    {
+    TRACES("CTouchScreenCalibPubSubObserver::HandlePropertyChangedL()");
+    TRACES1("CTouchScreenCalibPubSubObserver::HandlePropertyChangedL(): aKey: %d",aKey );
+
+    if (aCategory == KPSUidStartup && aKey == KPSGlobalSystemState)
+        {
+        TInt eventState;
+        User::LeaveIfError( RProperty::Get ( KPSUidStartup, KPSGlobalSystemState, eventState ) );
+
+        if( eventState == ESwStateCriticalPhaseOK ||
+            eventState == ESwStateEmergencyCallsOnly ||
+            eventState == ESwStateNormalRfOn ||
+            eventState == ESwStateNormalRfOff ||
+            eventState == ESwStateNormalBTSap )
+            {
+            TRACES("CTouchScreenCalibPubSubObserver::HandlePropertyChangedL(): Critical startup phase ready");
+            iTouchScreenCalibAppUi->PrepareToExit();
+            }
+        }
+    else if (aCategory == KPSUidCtsyCallInformation && aKey == KCTsyCallState)
+        {
+        TInt eventState;
+        User::LeaveIfError( RProperty::Get ( KPSUidCtsyCallInformation, KCTsyCallState, eventState ) );
+
+        if( eventState == EPSCTsyCallStateRinging ||
+            eventState == EPSCTsyCallStateDisconnecting)
+            {
+            TRACES("CTouchScreenCalibPubSubObserver::HandlePropertyChangedL(): Call detected");
+            iTouchScreenCalibAppUi->PrepareToExit();
+            }
+        }
+    TRACES("CTouchScreenCalibPubSubObserver::HandlePropertyChangedL(): End");
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibPubSubObserver* CTouchScreenCalibPubSubObserver::NewL( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi )
+// ----------------------------------------------------
+CTouchScreenCalibPubSubObserver* CTouchScreenCalibPubSubObserver::NewL( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi )
+    {
+    TRACES("CTouchScreenCalibPubSubObserver::NewL()");
+    CTouchScreenCalibPubSubObserver* self = new (ELeave) CTouchScreenCalibPubSubObserver( aTouchScreenCalibAppUi );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self
+
+    TRACES("CTouchScreenCalibPubSubObserver::NewL(): End");
+    return self;
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibPubSubObserver::~CTouchScreenCalibPubSubObserver()
+// ----------------------------------------------------
+CTouchScreenCalibPubSubObserver::~CTouchScreenCalibPubSubObserver()
+    {
+    TRACES("CTouchScreenCalibPubSubObserver::~CTouchScreenCalibPubSubObserver()");
+
+    delete iGlobalSWStateSubscriber;
+    delete iTsyCallState;
+    iProperty.Close();
+
+    TRACES("CTouchScreenCalibPubSubObserver::~CTouchScreenCalibPubSubObserver(): End");
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/src/TouchScreenCalibSubscriber.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,120 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CTouchScreenCalibSubscriber implementation.
+ *
+*/
+
+
+// INCLUDES
+#include <e32svr.h>
+#include "TouchScreenCalibAppUi.h"
+#include "TouchScreenCalibSubscriber.h"
+#include "TouchScreenCalibDefines.h"
+
+// CONSTANTS
+
+// ============================= MEMBER FUNCTIONS =============================
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::NewL()
+// ----------------------------------------------------------------------------
+CTouchScreenCalibSubscriber* CTouchScreenCalibSubscriber::NewL( 
+                            MTouchScreenCalibPropertyResponder& aTouchScreenCalibPropertyResponder,
+                            const TUid& aCategory, 
+                            TUint aKey )
+    {
+    CTouchScreenCalibSubscriber* self = new (ELeave) CTouchScreenCalibSubscriber( aTouchScreenCalibPropertyResponder,
+                                                                aCategory, 
+                                                                aKey );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::ConstructL()
+// ----------------------------------------------------------------------------
+void CTouchScreenCalibSubscriber::ConstructL()
+    {
+    CActiveScheduler::Add( this );
+    iProperty.Attach( iCategory, iKey );
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::Subscribe()
+// ----------------------------------------------------------------------------
+void CTouchScreenCalibSubscriber::Subscribe()
+    {
+    TRACES("CTouchScreenCalibSubscriber::Subscribe()");
+    iProperty.Subscribe( iStatus );
+    SetActive();
+    TRACES("CTouchScreenCalibSubscriber::Subscribe(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::CTouchScreenCalibSubscriber()
+// ----------------------------------------------------------------------------
+CTouchScreenCalibSubscriber::CTouchScreenCalibSubscriber( MTouchScreenCalibPropertyResponder& aTouchScreenCalibPropertyResponder, 
+                                        const TUid& aCategory, 
+                                        TUint aKey ) :
+    CActive( EPriorityStandard ),
+    iTouchScreenCalibPropertyResponder( aTouchScreenCalibPropertyResponder ),
+    iCategory( aCategory),
+    iKey( aKey )
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::RunL()
+// ----------------------------------------------------------------------------
+void CTouchScreenCalibSubscriber::RunL()
+    {
+    TRACES("CTouchScreenCalibSubscriber::RunL()");
+    Subscribe();
+    iTouchScreenCalibPropertyResponder.HandlePropertyChangedL( iCategory, iKey );
+    TRACES("CTouchScreenCalibSubscriber::RunL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::DoCancel()
+// ----------------------------------------------------------------------------
+void CTouchScreenCalibSubscriber::DoCancel()
+    {
+    iProperty.Cancel();
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::RunError()
+// ----------------------------------------------------------------------------
+TInt CTouchScreenCalibSubscriber::RunError( TInt aError )
+    {    
+    return aError;
+    }
+
+// ----------------------------------------------------------------------------
+// CTouchScreenCalibSubscriber::~CTouchScreenCalibSubscriber()
+// ----------------------------------------------------------------------------
+CTouchScreenCalibSubscriber::~CTouchScreenCalibSubscriber()
+    {
+    TRACES("CTouchScreenCalibSubscriber::~CTouchScreenCalibSubscriber()");
+    Cancel();
+    iProperty.Close();
+    TRACES("CTouchScreenCalibSubscriber::~CTouchScreenCalibSubscriber(): End");
+    }
+
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/src/TouchScreenCalibView.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,569 @@
+/*
+* Copyright (c) 2006 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class is the container class of the CTouchScreenCalibView.
+*     Is used to show tap target animation.
+*
+*/
+
+
+// SYSTEM INCLUDES
+#include <aknappui.h>
+#include <aknnotewrappers.h>
+#include <barsread.h>
+#include <AknBitmapAnimation.h>
+#include <ConeResLoader.h>
+#include <AknBidiTextUtils.h>
+#include <touchscreencalib_anim.rsg>
+#include <touchscreencalib.rsg>
+#include <touchscreencalib.mbg>
+
+// USER INCLUDES
+#include "TouchScreenCalibView.h"
+#include "TouchScreenCalibDefines.h"
+#include "TouchScreenCalibAppUi.h"
+
+// CONSTANTS
+_LIT( KTargetAnimationResource, "z:TouchScreenCalib_anim.rsc" );
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::ConstructL()
+    {
+    TRACES("CTouchScreenCalibView::ConstructL()");
+
+    CreateWindowL();
+
+    iAnimImageRect.iAnimImageRect1 = iTouchScreenCalibAppUi->GetAnimImageRect(1);
+    iAnimImageRect.iAnimImageRect2 = iTouchScreenCalibAppUi->GetAnimImageRect(2);
+    iAnimImageRect.iAnimImageRect3 = iTouchScreenCalibAppUi->GetAnimImageRect(3);
+    iAnimImageRect.iAnimImageRect4 = iTouchScreenCalibAppUi->GetAnimImageRect(4);
+
+    // Parse filename of bitmaps
+    _LIT( KDirAndFile, "z:TouchScreenCalib.mif" );
+    TParse* fp1 = new(ELeave) TParse(); 
+    fp1->Set(KDirAndFile, &KDC_APP_BITMAP_DIR, NULL);
+    TFileName fileName( fp1->FullName() );
+    TRACES1("CTouchScreenCalibImage::CreateIconL(): Image: %S", &(fp1->FullName()) );
+    delete fp1;
+
+    AknIconUtils::CreateIconL( iBitmap, 
+                               iBitmapMask, 
+                               fileName, 
+                               EMbmTouchscreencalibQgn_graf_screencalib,
+                               EMbmTouchscreencalibQgn_graf_screencalib_mask);
+
+    iAvkonAppUi->StatusPane()->MakeVisible(EFalse);
+
+    TRACES("CTouchScreenCalibView::ConstructL(): Animation loading started");
+    iAnim = CAknBitmapAnimation::NewL();
+    iAnim->SetContainerWindowL( *this );
+    iAnim->SetScaleModeForAnimationFrames(EAspectRatioPreservedAndUnusedSpaceRemoved);
+    TResourceReader rr;
+    RConeResourceLoader loader( *iCoeEnv );
+
+    TParse* fp = new(ELeave) TParse(); 
+    fp->Set(KTargetAnimationResource, &KDC_APP_RESOURCE_DIR, NULL);
+    TRACES1("CTouchScreenCalibView::ConstructL(): Animated target resource path: %S", &fp->FullName());
+    TFileName name( fp->FullName() );
+    delete fp;
+    TInt fileError = loader.Open( name );
+    if ( fileError == KErrNone )
+        {
+        CleanupClosePushL( loader );
+        iCoeEnv->CreateResourceReaderLC(rr, R_SHUTDOWN_ANIM);
+        TRAPD(err, iAnim->ConstructFromResourceL( rr ));
+        if( err == KErrNone )
+            {
+            TResourceReader timeReader;
+            iCoeEnv->CreateResourceReaderLC(timeReader, R_ANIM_DURATION);
+            CleanupStack::PopAndDestroy(); // pop timeReader
+            iAnim->SetPosition(TPoint(0,0));
+            iAnim->SetSize(TSize(0,0));
+            TRACES("CTouchScreenCalibView::ConstructL(): animation succesfully loaded");
+            }
+        else
+            {
+            TRACES("CTouchScreenCalibView::ConstructL(): animation loading failed");
+            }
+        CleanupStack::PopAndDestroy(); //pop rr
+        TRACES("CTouchScreenCalibView::ConstructL(): animation loading ended");
+        CleanupStack::PopAndDestroy(); //pop loader
+        }
+    else
+        {
+        TRACES("CTouchScreenCalibView::ConstructL(): resource file loading failed");
+        }
+
+    SetRect(iAvkonAppUi->ApplicationRect());
+    ActivateL();
+
+    iFont = AknLayoutUtils::FontFromId(EAknLogicalFontSecondaryFont);
+    iText = new( ELeave ) CArrayPtrFlat<HBufC>( 20 );
+
+    TApaTask self(iCoeEnv->WsSession());
+    self.SetWgId(iCoeEnv->RootWin().Identifier());
+    self.BringToForeground(); 
+
+    if (iTouchScreenCalibAppUi->FirstBoot())
+        {
+        Window().SetOrdinalPosition( 0, ECoeWinPriorityAlwaysAtFront + 10000 );
+        }
+    else
+        {
+        Window().SetOrdinalPosition( 0, ECoeWinPriorityHigh + 1 );
+        }
+    iTouchFeedback = MTouchFeedback::Instance();
+
+    TRACES("CTouchScreenCalibView::ConstructL(): ConstructL ended");
+    }
+
+// -----------------------------------------------------------------------------
+// CTouchScreenCalibView::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTouchScreenCalibView* CTouchScreenCalibView::NewL( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi )
+    {
+    TRACES("CTouchScreenCalibView::NewL()");
+    CTouchScreenCalibView* self = new (ELeave) CTouchScreenCalibView( aTouchScreenCalibAppUi );
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CTouchScreenCalibView::CTouchScreenCalibView()
+// ---------------------------------------------------------
+CTouchScreenCalibView::CTouchScreenCalibView( CTouchScreenCalibAppUi* aTouchScreenCalibAppUi ) :
+    iTouchScreenCalibAppUi( aTouchScreenCalibAppUi ),
+    iAnimationShowing( EFalse ),
+    iAnimationCancelled ( EFalse ),
+    iText( NULL ),
+    iCalibrationCompleted( EFalse )
+    {
+    TRACES("CTouchScreenCalibView::CTouchScreenCalibView()");
+    TRACES("CTouchScreenCalibView::CTouchScreenCalibView(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::UpdateL( TAknLayoutText aTextLayout  )
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::UpdateL( TAknLayoutText aTextLayout )
+    {
+    TRACES("CTouchScreenCalibView::UpdateL()");
+
+    TRect rect = iTouchScreenCalibAppUi->GetAnimImageRect();
+
+    SetTextL(aTextLayout);
+    EndAnimation();
+    DrawDeferred();
+
+    TPoint pos = TPoint(rect.iTl.iX, rect.iTl.iY);
+    TSize size = TSize(rect.iBr.iX-rect.iTl.iX, rect.iBr.iY-rect.iTl.iY);
+    iAnim->SetPosition(pos);
+    iAnim->SetSize(size);
+
+    TRAPD(err, iAnim->StartAnimationL());      
+    if ( err != KErrNone )
+        {
+        TRACES("CTouchScreenCalibView::UpdateL(): Starting animation failed");
+        }
+    
+    TRACES("CTouchScreenCalibView::UpdateL(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::DrawEndingBackground()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::DrawEndingBackground()
+    {
+    TRACES("CTouchScreenCalibView::DrawEndingBackground()");
+    iCalibrationCompleted = ETrue;
+    SetRect( iAvkonAppUi->ApplicationRect() );
+    EndAnimation();
+    DrawNow();
+    TRACES("CTouchScreenCalibView::DrawEndingBackground(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::EndTargetAnimation()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::EndTargetAnimation()
+    {
+    TRACES("CTouchScreenCalibView::EndTargetAnimation()");
+    EndAnimation();
+    DrawNow();
+    TRACES("CTouchScreenCalibView::EndTargetAnimation(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::~CTouchScreenCalibView()
+// ---------------------------------------------------------------------------
+CTouchScreenCalibView::~CTouchScreenCalibView()
+    {
+    TRACES("CTouchScreenCalibView::~CTouchScreenCalibView() begin");
+
+    if( iAnim )
+        {
+        if( iAnimationShowing )
+            {
+            iAnim->CancelAnimation();
+            TRACES("CTouchScreenCalibView::~CTouchScreenCalibView() animation cancelled");
+            }
+        }
+    delete iAnim;
+    TRACES("CTouchScreenCalibView::~CTouchScreenCalibView() iAnim deleted");
+
+    if ( iText )
+        {
+        iText->ResetAndDestroy();
+        delete iText;
+        iText = NULL;
+        }
+
+    delete iBitmap;
+    delete iBitmapMask;
+
+    TRACES("CTouchScreenCalibView::~CTouchScreenCalibView() end");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::ComponentControl(TInt aIndex)
+// ---------------------------------------------------------------------------
+CCoeControl* CTouchScreenCalibView::ComponentControl(TInt aIndex) const
+    {
+    switch ( aIndex )
+        {
+        case 0:
+            {
+            return iAnim;
+            }
+        default:
+            {
+            return NULL;
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::CountComponentControls()
+// ---------------------------------------------------------------------------
+TInt CTouchScreenCalibView::CountComponentControls() const
+    {
+    return iAnim ? 1 : 0; // return nbr of controls inside this container
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::Draw(const TRect& aRect) const
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::Draw(const TRect& ) const
+    {
+    TRACES("CTouchScreenCalibView::Draw()");
+    DrawBackground();
+    if (!iCalibrationCompleted)
+        {
+        DrawText();
+        ShowImage(iAnimImageRect.iAnimImageRect1);
+        ShowImage(iAnimImageRect.iAnimImageRect2);
+        ShowImage(iAnimImageRect.iAnimImageRect3);
+        ShowImage(iAnimImageRect.iAnimImageRect4);
+        }
+    TRACES("CTouchScreenCalibView::Draw(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::SizeChanged()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::SizeChanged()
+    {
+    if( iAnim )
+        {
+        iAnim->SetRect(Rect());
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::EndAnimation()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::EndAnimation() 
+    {
+    TRACES("CTouchScreenCalibView::EndAnimation()");
+    iAnim->CancelAnimation();
+    TRACES("CTouchScreenCalibView::EndAnimation(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::HandleControlEventL(...)
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::HandleControlEventL(
+        CCoeControl* ,
+        TCoeEvent )
+    {
+    //pure virtual from MCoeControlObserver
+    TRACES("CTouchScreenCalibView::HandleControlEventL()");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::OfferKeyEventL(...)
+// ---------------------------------------------------------------------------
+TKeyResponse CTouchScreenCalibView::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType)
+    {
+    TRACES("CTouchScreenCalibView::OfferKeyEventL()");
+    iTouchScreenCalibAppUi->HandleKeyL( aKeyEvent, aType );
+    TRACES("CTouchScreenCalibView::OfferKeyEventL(): End: return EKeyWasConsumed");
+    return EKeyWasConsumed;
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibView::HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
+// ----------------------------------------------------
+TKeyResponse CTouchScreenCalibView::HandleKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
+    {
+    TRACES("CTouchScreenCalibView::HandleKeyEventL()");
+    iTouchScreenCalibAppUi->HandleKeyL( aKeyEvent, aType );
+    TRACES("CTouchScreenCalibView::HandleKeyEventL(): End: return EKeyWasConsumed");
+    return EKeyWasConsumed;
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibView::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+// ----------------------------------------------------
+void CTouchScreenCalibView::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+    {
+    TRACES("CTouchScreenCalibView::HandlePointerEventL()");
+    if (aPointerEvent.iType == TPointerEvent::EButton1Up)
+        {
+        TRACES("CTouchScreenCalibView::HandlePointerEventL(): EButton1Up");
+        TRACES1("CTouchScreenCalibView::HandlePointerEventL(): X = %d",aPointerEvent.iPosition.iX);
+        TRACES1("CTouchScreenCalibView::HandlePointerEventL(): Y = %d",aPointerEvent.iPosition.iY);
+
+        TPoint pos;
+
+        pos.iX = aPointerEvent.iPosition.iX;
+        pos.iY = aPointerEvent.iPosition.iY;
+        if (Validate(pos))
+            {
+            iTouchFeedback->InstantFeedback( ETouchFeedbackBasic );
+            iTouchScreenCalibAppUi->HandlePointerL( pos );
+            }
+        }
+    TRACES("CTouchScreenCalibView::HandlePointerEventL(): End --------------- Waiting for next event -------------");
+    }
+
+// ----------------------------------------------------
+// CTouchScreenCalibView::Validate(TPoint aPos)
+// ----------------------------------------------------
+TBool CTouchScreenCalibView::Validate(TPoint aPos)
+    {
+    TRACES("CTouchScreenCalibView::Validate()");
+    TInt retval( EFalse );
+
+    if ((aPos.iX > iTouchScreenCalibAppUi->GetAnimImageRect().iTl.iX) && 
+        (aPos.iX < iTouchScreenCalibAppUi->GetAnimImageRect().iBr.iX) &&
+        (aPos.iY > iTouchScreenCalibAppUi->GetAnimImageRect().iTl.iY) &&
+        (aPos.iY < iTouchScreenCalibAppUi->GetAnimImageRect().iBr.iY))
+        {
+        retval = ETrue;
+        }
+    TRACES1("CTouchScreenCalibView::Validate(): End: Return %d",retval);
+    return retval;
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::DrawBackground() const
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::DrawBackground() const
+    {
+    TRACES("CTouchScreenCalibView::DrawBackground()");
+    CWindowGc& gc = SystemGc();
+    TRect rect = iAvkonAppUi->ApplicationRect();
+    gc.SetPenStyle(CGraphicsContext::ENullPen);
+    gc.SetBrushColor(KRgbWhite);
+    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+    gc.DrawRect(rect);
+    ControlEnv()->WsSession().Flush(); // force draw of the context
+    TRACES("CTouchScreenCalibView::DrawBackground(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTouchScreenCalibView::DrawText()
+// ---------------------------------------------------------------------------
+void CTouchScreenCalibView::DrawText() const
+    {
+    TRACES("CTouchScreenCalibView::DrawText()");
+
+    CWindowGc& gc = SystemGc();
+
+    gc.SetPenStyle(CGraphicsContext::ENullPen);
+
+    gc.UseFont( iFont );
+
+    gc.SetBrushStyle(CGraphicsContext::ENullBrush);
+
+    TPoint position( 0, 0 );
+    TPoint topLeft;
+    position = iTextTopLeft;
+
+    for ( TInt index = 0 ;
+          index < iText->Count();
+          index++, position.iY += iTextBaselineOffset )
+        {
+        HBufC* text = (*iText)[ index ];
+        if ( text )
+            {
+            topLeft = TPoint( position.iX, position.iY - iTextBaselineOffset );
+            gc.SetPenColor(iTextColor);
+            TRACES2("CTouchScreenCalibView::DrawText(): TopLeft: %d, %d", topLeft.iX, topLeft.iY);
+            gc.DrawText( *text,
+                         TRect( topLeft, iTextSize ),
+                         iTextBaselineOffset,
+                         iTextAlignment );
+            }
+        }
+    ControlEnv()->WsSession().Flush(); // force draw of the context
+    gc.DiscardFont();
+    TRACES("CTouchScreenCalibView::DrawText(): End");
+    }
+
+// -----------------------------------------------------------------------------
+// CTouchScreenCalibView::SetTextL(TAknLayoutText aTextLayout)
+// -----------------------------------------------------------------------------
+void CTouchScreenCalibView::SetTextL(TAknLayoutText aTextLayout)
+    {
+    TRACES("CTouchScreenCalibView::SetTextL()");
+
+    TInt textLineWidth;
+
+    TRACES2("CTouchScreenCalibView::SetTextL(): Text rect top: X:%d Y:%d",aTextLayout.TextRect().iTl.iX, aTextLayout.TextRect().iTl.iY);
+    TRACES2("CTouchScreenCalibView::SetTextL(): Text rect:bot: X:%d Y:%d",aTextLayout.TextRect().iBr.iX, aTextLayout.TextRect().iBr.iY);
+
+    textLineWidth = aTextLayout.TextRect().Width();
+
+    iTextTopLeft = TPoint(aTextLayout.TextRect().iTl.iX, aTextLayout.TextRect().iTl.iY);
+
+    iTextBaselineOffset = iFont->HeightInPixels() * 4 / 3;
+
+    iTextSize = TSize(textLineWidth, iTextBaselineOffset + iFont->DescentInPixels());
+            
+    iTextColor = aTextLayout.Color();
+
+    iTextAlignment = CGraphicsContext::ECenter;
+
+    HBufC* mainText1 = StringLoader::LoadLC(R_QTN_TOUCH_SCREEN_CALI_INSTR_GEN, 
+                                            iTouchScreenCalibAppUi->GetCalibrationStep());
+
+    HBufC* mainText2;
+    if (iTouchScreenCalibAppUi->FirstBoot())
+        {
+        mainText2 = CEikonEnv::Static()->AllocReadResourceLC(R_QTN_TOUCH_SCREEN_CALI_INSTR_RES );
+        }
+    else
+        {
+        mainText2 = CEikonEnv::Static()->AllocReadResourceLC(R_QTN_TOUCH_SCREEN_CALI_INSTR_CAN );
+        }
+
+    TBuf<256> text;
+    text.Copy( mainText1->Des() );
+    _LIT(KLineChange, "\n");
+    text.Append(KLineChange);
+    text.Append(mainText2->Des());
+
+    TRACES1("CTouchScreenCalibView::SetTextL(): text: %S",&text);
+
+    CArrayFix<TPtrC>* wrappedArray =
+        new( ELeave ) CArrayFixFlat<TPtrC>( 10 );
+    CleanupStack::PushL( wrappedArray );
+
+    HBufC* dataToDestroy =
+        AknBidiTextUtils::ConvertToVisualAndWrapToArrayL(
+            text, textLineWidth, *iFont, *wrappedArray
+        );
+
+    TInt numLines( wrappedArray->Count() );
+    TRACES1("CTouchScreenCalibView::SetTextL(): Number of lines: %d",numLines );
+
+    if ( iText )
+        {
+        iText->ResetAndDestroy();
+        delete iText;
+        iText = NULL;
+        }
+    iText = new( ELeave ) CArrayPtrFlat<HBufC>( 20 );
+
+    for ( TInt i = 0 ; i < numLines ; i++ )
+        {
+        HBufC* line = (*wrappedArray)[i].AllocLC();
+        TInt lineLength = line->Length();
+        TRACES1("CTouchScreenCalibView::SetTextL(): lineLength: %d",lineLength);        
+        if(!lineLength)
+            {
+            iText->AppendL( NULL );
+            CleanupStack::PopAndDestroy(line);  // line
+            }
+        else
+            {
+            iText->AppendL( line );
+            CleanupStack::Pop(line);  // line
+            }
+        }
+    iText->AppendL( NULL );
+
+    // If the last char was newline, add one extra, since
+    // wrapping automatically removes it.
+    if ( text[ text.Length() - 1 ] == '\n' )
+        {
+        iText->AppendL( NULL );
+        }
+
+    CleanupStack::PopAndDestroy(wrappedArray); // wrappedArray
+    delete dataToDestroy;
+
+    CleanupStack::PopAndDestroy(2); //mainText1, mainText2
+    TRACES("CTouchScreenCalibView::SetTextL(); End");
+    }
+
+// -----------------------------------------------------------------------------
+// CTouchScreenCalibView::ShowImage(TRect aRect)
+// -----------------------------------------------------------------------------
+void CTouchScreenCalibView::ShowImage(TRect aRect) const
+    {
+    TRACES("CTouchScreenCalibView::ShowImage()");
+    CWindowGc& gc = SystemGc();    
+    AknIconUtils::SetSize( iBitmap, aRect.Size(), EAspectRatioPreservedAndUnusedSpaceRemoved );
+    gc.SetPenStyle(CGraphicsContext::ENullPen);
+    gc.SetBrushColor(KRgbRed);
+    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+    gc.DrawRect(aRect);
+    gc.BitBlt( TPoint(aRect.iTl.iX, aRect.iTl.iY), iBitmap ); // CWindowGc member function
+    ControlEnv()->WsSession().Flush(); // force draw of the context
+    TRACES("CTouchScreenCalibView::ShowImage(): End");
+    }
+
+// -----------------------------------------------------------------------------
+// CTouchScreenCalibView::SetWinPriority()
+// -----------------------------------------------------------------------------
+void CTouchScreenCalibView::SetWinPriority(TInt aPriority)
+    {
+    TRACES("CTouchScreenCalibView::SetWinPriority()");
+    Window().SetOrdinalPosition( 0, aPriority );
+    TRACES("CTouchScreenCalibView::SetWinPriority(): End");
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/bwins/tsccustcmdsu.def	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?CmdTSCStartupExtensionNewL@TSCCustCmdFactory@@SAPAVMSsmCustomCommand@@XZ @ 1 NONAME ; class MSsmCustomCommand * TSCCustCmdFactory::CmdTSCStartupExtensionNewL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/eabi/tsccustcmdsu.def	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,7 @@
+EXPORTS
+	_ZN17TSCCustCmdFactory26CmdTSCStartupExtensionNewLEv @ 1 NONAME
+	_ZTI14CTSCSubscriber @ 2 NONAME ; #<TI>#
+	_ZTI18CTSCPubSubObserver @ 3 NONAME ; #<TI>#
+	_ZTV14CTSCSubscriber @ 4 NONAME ; #<VT>#
+	_ZTV18CTSCPubSubObserver @ 5 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/group/tsccustcmds.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2007 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 definition file for project TSCCustCmd
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          tsccustcmds.dll
+TARGETTYPE      DLL
+UID             0x1000008D 0x10283123
+
+CAPABILITY      CAP_GENERAL_DLL
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE          tscstartupextension.cpp
+SOURCE          tsccustcmdfactory.cpp
+SOURCE          tscsubscriber.cpp
+SOURCE          tscpubsubobserver.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../../inc
+
+
+// Default system include paths for middleware layer modules.
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/inc/MTSCPropertyResponder.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Interface of Touch screen calibration property change obsever
+*
+*/
+
+#ifndef MTSCPROPERTYRESPONDER_H
+#define MTSCPROPERTYRESPONDER_H
+
+// INCLUDES
+#include <e32base.h>
+
+class MTSCPropertyResponder
+    {
+public:
+    virtual void HandlePropertyChangedL( const TUid& aCategory, TUint aKey ) = 0;
+    };
+#endif //MTSCPROPERTYRESPONDER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/inc/TSCPubSubObserver.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class the handles the received indications from the Public and
+*           Subscribe.
+*
+*/
+
+#ifndef TSCPUBSUBOBSERVER_H
+#define TSCPUBSUBOBSERVER_H
+
+//  INCLUDES
+#include <e32property.h>
+#include "MTSCPropertyResponder.h"
+#include "tscstartupextension.h"
+
+
+
+// CLASS DECLARATION
+class CTSCStartupExtension;
+class CTSCSubscriber;
+
+class CTSCPubSubObserver : public CBase, public MTSCPropertyResponder
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ constructor.
+        */
+    	CTSCPubSubObserver( CTSCStartupExtension* aTSCStartupExtension );
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTSCPubSubObserver* NewL( CTSCStartupExtension* aTSCStartupExtension );
+        
+        /**
+        * Destructor.
+        */
+        ~CTSCPubSubObserver();
+
+    private:
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        void ConstructL();
+
+        CTSCPubSubObserver();
+
+    protected: // From MTSCPropertyResponder
+
+        void HandlePropertyChangedL( const TUid& aCategory, TUint aKey );
+
+    private:    // Data
+        //reference to application class
+        CTSCStartupExtension *        iTSCStartupExtension; //uses
+
+        RProperty iProperty;
+        CTSCSubscriber*   iTSCSyncSubscriber;
+    };
+
+#endif      // TSCPUBSUBOBSERVER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/inc/tsccustcmdfactory.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 command implementation factory.
+*
+*/
+
+#ifndef TSCCUSTCMDFACTORY_H
+#define TSCCUSTCMDFACTORY_H
+
+#include <e32def.h>
+
+class MSsmCustomCommand;
+
+/**
+* Creates custom command objects.
+*/
+class TSCCustCmdFactory
+    {
+public:
+
+	IMPORT_C static MSsmCustomCommand* CmdTSCStartupExtensionNewL(); 
+    };
+
+#endif // TSCCUSTCMDFACTORY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/inc/tscstartupextension.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTSCStartupExtension class.
+*
+*/
+
+#ifndef TSCSTARTUPEXTENSION_H
+#define TSCSTARTUPEXTENSION_H
+
+#include <e32base.h>
+#include <ssm/ssmcustomcommand.h>
+
+// FORWARD DECLARATIONS
+class CTSCPubSubObserver;
+
+/**
+*/
+NONSHARABLE_CLASS( CTSCStartupExtension )
+  : public CBase,
+    public MSsmCustomCommand
+    {
+public:
+
+    static CTSCStartupExtension * NewL();
+    virtual ~CTSCStartupExtension ();
+
+    void CalibrationDone();
+
+private: // From MSsmCustomCommand
+
+    TInt Initialize( CSsmCustomCommandEnv* aCmdEnv );
+    void Execute( const TDesC8& aParams, TRequestStatus& aStatus );
+    void ExecuteCancel();
+    void Release();
+    void Close();
+
+private:
+
+    /**
+    * First phase constructor.
+    */
+    CTSCStartupExtension ();
+
+private: //data
+
+    CTSCPubSubObserver* iTSCPubSubObserver; //owns
+    
+    TRequestStatus* iStatus;
+    TBool iRequestSent;
+
+    };
+
+#endif // TSCSTARTUPEXTENSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/inc/tscstartupextensiondef.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes some common defines used in the TSCStartupExtension
+*
+*/
+
+#ifndef TSCSTARTUPEXTENSIONDEF_H
+#define TSCSTARTUPEXTENSIONDEF_H
+
+#include <e32debug.h>
+
+//CONSTANTS
+_LIT( KTouchScreenCalibAppName, "TSCStartupExtension" );  
+
+// MACROS
+
+#define PANIC(aPanic) User::Panic( KTouchScreenCalibAppName, aPanic )
+
+#define TRACE_ADDPREFIX(aText) (TPtrC((const TText *)L"TSCStartupExtension: \"" L##aText L"\""))
+
+#ifdef _DEBUG
+#define TRACES(aMsg) RDebug::Print( TRACE_ADDPREFIX(aMsg) )
+#define TRACES1(aFormat,aP1) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1) )
+#define TRACES2(aFormat,aP1,aP2) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2) )
+#define TRACES3(aFormat,aP1,aP2,aP3) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2),(aP3) )
+#else
+#define TRACES(aMsg)
+#define TRACES1(aFormat,aP1)
+#define TRACES2(aFormat,aP1,aP2)
+#define TRACES3(aFormat,aP1,aP2,aP3)
+#endif
+#endif      // TSCSTARTUPEXTENSIONDEF_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/inc/tscsubscriber.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TSC Subscriber (Publish & Subscribe).
+*
+*/
+
+#ifndef TSCPLUGINSUBSCRIBER_H
+#define TSCPLUGINSUBSCRIBER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32property.h>
+#include "MTSCPropertyResponder.h"
+
+// CLASS DECLARATION
+/**
+*  CTSCSubscriber
+*  
+*  @lib   tscstartupextensionplugin
+*  @since 3.2
+*/
+
+class CTSCSubscriber : public CActive
+{
+public:
+    /**
+    * Two-phased constructor.
+    */         
+    static CTSCSubscriber* NewL( MTSCPropertyResponder& aTSCPropertyResponder, 
+                                     const TUid& aCategory, 
+                                     TUint aKey );
+
+    /**
+    * Destructor.
+    */
+     ~CTSCSubscriber();
+
+     void Subscribe();
+
+private:
+     CTSCSubscriber( MTSCPropertyResponder& aTSCPropertyResponder, 
+                         const TUid& aCategory, TUint 
+                         aKey );
+     void ConstructL();
+
+public: // from CActive
+    /**
+    *	@param none
+    *	@return none
+    */    
+    void RunL();
+    
+    /**
+    *	@param aError the error returned
+    *	@return error
+    */
+    TInt RunError( TInt aError );
+
+    /**
+    *	@param none
+    *	@return none
+    */    
+    void DoCancel();
+	
+private: // Methods not implemented
+    CTSCSubscriber( const CTSCSubscriber& );           // Copy constructor
+    CTSCSubscriber& operator=( const CTSCSubscriber& );// Assigment operator
+
+private:
+
+    MTSCPropertyResponder&          iTSCPropertyResponder;
+    RProperty                       iProperty;
+    TUid                            iCategory;
+    TUint                           iKey;
+};
+
+
+#endif // TSCSUBSCRIBER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/src/tsccustcmdfactory.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 command implementation factory.
+*
+*/
+
+#include "tsccustcmdfactory.h"
+#include "tscstartupextension.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+EXPORT_C MSsmCustomCommand* TSCCustCmdFactory::CmdTSCStartupExtensionNewL()
+	{
+	return CTSCStartupExtension::NewL();
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/src/tscpubsubobserver.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class the handles the received indications from the Public and
+*           Subscribe.
+*
+*/
+
+// SYSTEM INCLUDES
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <e32cmn.h>
+#include <touchscprivatepskeys.h>
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <StartupAppInternalPSKeys.h>
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+// USER INCLUDES
+#include "TSCPubSubObserver.h"
+#include "tscsubscriber.h"
+#include "tscstartupextensiondef.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------
+// CTSCPubSubObserver::CTSCPubSubObserver( CTSCStartupExtension* aTSCStartupExtension )
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------
+CTSCPubSubObserver::CTSCPubSubObserver( CTSCStartupExtension* aTSCStartupExtension ) :
+    iTSCStartupExtension( aTSCStartupExtension )
+    {
+    }
+
+// ----------------------------------------------------
+// CTSCPubSubObserver::ConstructL()
+// ----------------------------------------------------
+void CTSCPubSubObserver::ConstructL()
+    {
+    TRACES("CTSCPubSubObserver::ConstructL()");
+
+    iTSCSyncSubscriber = CTSCSubscriber::NewL( *this, 
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+                                                     KPSUidTouchScreenCalibration,
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+                                                     KPSUidStartup,
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION                                                     
+                                                     KPSTouchScreenCalibration );
+    iTSCSyncSubscriber->Subscribe();
+
+    TInt touchScreenCalibrationState;
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+    RProperty::Get( KPSUidTouchScreenCalibration, KPSTouchScreenCalibration, touchScreenCalibrationState );
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+    RProperty::Get( KPSUidStartup, KPSTouchScreenCalibration, touchScreenCalibrationState );
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+    if ( touchScreenCalibrationState == ETouchScreenCalibrationOk )
+        {
+        iTSCStartupExtension->CalibrationDone();
+        }
+
+    TRACES("CTSCPubSubObserver::ConstructL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPubSubObserver::HandlePropertyChangedL()
+// ----------------------------------------------------------------------------
+void CTSCPubSubObserver::HandlePropertyChangedL( const TUid& /*aCategory*/, TUint aKey )
+    {
+    TRACES("CTSCPubSubObserver::HandlePropertyChangedL()");
+    TRACES1("CTSCPubSubObserver::HandlePropertyChangedL(): aKey: %d",aKey );
+
+    if (aKey == KPSTouchScreenCalibration)
+        {
+        TInt state;
+    
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+        RProperty::Get( KPSUidTouchScreenCalibration, KPSTouchScreenCalibration, state );
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+        RProperty::Get( KPSUidStartup, KPSTouchScreenCalibration, state );
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+        if ( state == ETouchScreenCalibrationOk )
+            {
+            iTSCStartupExtension->CalibrationDone();
+            }
+        }
+
+    TRACES("CTSCPubSubObserver::HandlePropertyChangedL(): End");
+    }
+
+// ----------------------------------------------------
+// CTSCPubSubObserver::NewL( CTSCStartupExtension* aTSCStartupExtension )
+// ----------------------------------------------------
+CTSCPubSubObserver* CTSCPubSubObserver::NewL( CTSCStartupExtension* aTSCStartupExtension )
+    {
+    TRACES("CTSCPubSubObserver::NewL()");
+    CTSCPubSubObserver* self = new (ELeave) CTSCPubSubObserver( aTSCStartupExtension );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self
+
+    TRACES("CTSCPubSubObserver::NewL(): End");
+    return self;
+    }
+
+// ----------------------------------------------------
+// CTSCPubSubObserver::~CTSCPubSubObserver()
+// ----------------------------------------------------
+CTSCPubSubObserver::~CTSCPubSubObserver()
+    {
+    TRACES("CTSCPubSubObserver::~CTSCPubSubObserver()");
+
+    delete iTSCSyncSubscriber;
+    iProperty.Close();
+
+    TRACES("CTSCPubSubObserver::~CTSCPubSubObserver(): End");
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/src/tscstartupextension.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTSCStartupExtension class.
+*
+*/
+
+#include "tscstartupextension.h"
+#include "tscstartupextensiondef.h"
+#include "TSCPubSubObserver.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CDiskSpaceReserve::NewL
+//
+// ---------------------------------------------------------------------------
+//
+CTSCStartupExtension * CTSCStartupExtension ::NewL()
+    {
+    TRACES("CTSCStartupExtension :: NewL ()");
+    CTSCStartupExtension * self = new ( ELeave ) CTSCStartupExtension ;
+
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// Destructor
+//
+// ---------------------------------------------------------------------------
+//
+CTSCStartupExtension::~CTSCStartupExtension ()
+    {
+    TRACES("CTSCStartupExtension ::~CTSCStartupExtension ()");
+
+    TRACES("CTSCStartupExtension ::~CTSCStartupExtension () End");
+    }
+
+
+
+// ---------------------------------------------------------------------------
+// First phase constructor
+//
+// ---------------------------------------------------------------------------
+//
+CTSCStartupExtension::CTSCStartupExtension()
+    :iRequestSent(EFalse)
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtension::Initialize
+//
+// ---------------------------------------------------------------------------
+//
+TInt CTSCStartupExtension::Initialize( CSsmCustomCommandEnv* /*aCmdEnv*/ )
+    {
+    TRACES("CTSCStartupExtension::Initialize()");
+    iTSCPubSubObserver = CTSCPubSubObserver::NewL( this );
+    return KErrNone;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtension::Execute
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtension::Execute(
+    const TDesC8& /*aParams*/,
+    TRequestStatus& aStatus )
+    {
+    TRACES("CTSCStartupExtension::ExecuteL()");    
+    aStatus = KRequestPending;
+    iStatus = &aStatus;
+    TRACES("CTSCStartupExtension::ExecuteL(): End");
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtension::ExecuteCancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtension::ExecuteCancel()
+    {
+    // Nothing to do.
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtension::Release
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtension::Release()
+    {
+    delete this;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtension::Close
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtension::Close()
+    {
+    TRACES("CTSCStartupExtension :: Close()");
+    if (iTSCPubSubObserver)
+        {
+        delete iTSCPubSubObserver;
+        iTSCPubSubObserver = NULL;
+        }
+    TRACES("CTSCStartupExtension :: Close() End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtension::CalibrationDone
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtension::CalibrationDone()
+    {
+    TRACES("CTSCStartupExtension::CalibrationDone()");
+    if (!iRequestSent)
+        {
+        TRACES("CTSCStartupExtension::CalibrationDone(): Send complete request");
+        TInt errorCode = KErrNone;    
+        User::RequestComplete( iStatus, errorCode );
+        iRequestSent = ETrue;
+        }
+    TRACES("CTSCStartupExtension::CalibrationDone(): End");
+    }    
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tsccustcmds/src/tscsubscriber.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TSC Subscriber (Publish & Subscribe).
+*
+*/
+
+// INCLUDES
+#include <e32svr.h>
+#include "tscstartupextension.h"
+#include "tscsubscriber.h"
+#include "tscstartupextensiondef.h"
+
+// CONSTANTS
+
+// ============================= MEMBER FUNCTIONS =============================
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::NewL()
+// ----------------------------------------------------------------------------
+CTSCSubscriber* CTSCSubscriber::NewL( 
+                            MTSCPropertyResponder& aTSCPropertyResponder,
+                            const TUid& aCategory, 
+                            TUint aKey )
+    {
+    CTSCSubscriber* self = new (ELeave) CTSCSubscriber( aTSCPropertyResponder,
+                                                        aCategory, 
+                                                        aKey );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::ConstructL()
+// ----------------------------------------------------------------------------
+void CTSCSubscriber::ConstructL()
+    {
+    CActiveScheduler::Add( this );
+    iProperty.Attach( iCategory, iKey );
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::Subscribe()
+// ----------------------------------------------------------------------------
+void CTSCSubscriber::Subscribe()
+    {
+    TRACES("CTSCSubscriber::Subscribe()");
+    iProperty.Subscribe( iStatus );
+    SetActive();
+    TRACES("CTSCSubscriber::Subscribe(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::CTSCSubscriber()
+// ----------------------------------------------------------------------------
+CTSCSubscriber::CTSCSubscriber( MTSCPropertyResponder& aTSCPropertyResponder, 
+                                        const TUid& aCategory, 
+                                        TUint aKey ) :
+    CActive( EPriorityStandard ),
+    iTSCPropertyResponder( aTSCPropertyResponder ),
+    iCategory( aCategory),
+    iKey( aKey )
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::RunL()
+// ----------------------------------------------------------------------------
+void CTSCSubscriber::RunL()
+    {
+    TRACES("CTSCSubscriber::RunL()");
+    Subscribe();
+    iTSCPropertyResponder.HandlePropertyChangedL( iCategory, iKey );
+    TRACES("CTSCSubscriber::RunL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::DoCancel()
+// ----------------------------------------------------------------------------
+void CTSCSubscriber::DoCancel()
+    {
+    iProperty.Cancel();
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::RunError()
+// ----------------------------------------------------------------------------
+TInt CTSCSubscriber::RunError( TInt aError )
+    {    
+    return aError;
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCSubscriber::~CTSCSubscriber()
+// ----------------------------------------------------------------------------
+CTSCSubscriber::~CTSCSubscriber()
+    {
+    TRACES("CTSCSubscriber::~CTSCSubscriber()");
+    Cancel();
+    iProperty.Close();
+    TRACES("CTSCSubscriber::~CTSCSubscriber(): End");
+    }
+
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/data/10283123.rss	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Registry info resource file for TSCStartupExtensionPlugIn
+*  ECOM plugin.
+*
+*/
+
+
+
+//  INCLUDES
+#include "registryinfov2.rh"
+
+//  RESOURCE DEFINITIONS
+// ---------------------------------------------------------
+//
+//   tscstartupextensionplugin_registry_info
+//   Registry info resource.
+//
+// ---------------------------------------------------------
+//
+RESOURCE REGISTRY_INFO tscstartupextensionplugin_registry_info
+    {
+    resource_format_version = RESOURCE_FORMAT_VERSION_2;
+    dll_uid = 0x10283123;
+    interfaces =
+        {
+        INTERFACE_INFO
+            {
+            interface_uid = 0x10205067; // UID of System startup extension plug-in API
+            implementations =
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0x10283124;
+                    version_no = 1;
+                    display_name = "TSCStartupExtensionPlugIn";
+                    default_data = "";
+                    opaque_data = "";
+                    rom_only = 1;
+                    }
+                };
+            }
+        };
+    }
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/group/tscstartupextensionplugin.mmp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2007 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 definition file for project TSCStartupExtensionPlugIn
+*
+*/
+
+
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+TARGET          tscstartupextensionplugin.dll
+CAPABILITY      CAP_ECOM_PLUGIN
+TARGETTYPE      PLUGIN
+UID             0x10009D8D 0x10283123
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE          tscstartupextensionplugin.cpp
+SOURCE          implementationfactory.cpp
+SOURCE          tscpluginsubscriber.cpp
+SOURCE          tscpluginpubsubobserver.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../../inc
+
+SYSTEMINCLUDE   /epoc32/include/ecom
+
+
+START RESOURCE  ../data/10283123.rss
+TARGET          tscstartupextensionplugin.rsc
+END
+
+
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib
+LIBRARY         ecom.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/inc/MTSCPlugInPropertyResponder.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Interface of Touch screen calibration property change obsever
+*
+*/
+
+
+#ifndef MTSCPLUGINPROPERTYRESPONDER_H
+#define MTSCPLUGINPROPERTYRESPONDER_H
+
+// INCLUDES
+#include <e32base.h>
+
+class MTSCPlugInPropertyResponder
+    {
+public:
+    virtual void HandlePropertyChangedL( const TUid& aCategory, TUint aKey ) = 0;
+    };
+#endif //MTSCPLUGINPROPERTYRESPONDER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/inc/TSCPlugInPubSubObserver.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class the handles the received indications from the Public and
+*           Subscribe.
+*
+*/
+
+
+#ifndef TSCPLUGINPUBSUBOBSERVER_H
+#define TSCPLUGINPUBSUBOBSERVER_H
+
+//  INCLUDES
+#include <e32property.h>
+#include "MTSCPlugInPropertyResponder.h"
+#include "tscstartupextensionplugin.h"
+
+
+
+// CLASS DECLARATION
+class CTSCStartupExtensionPlugIn;
+class CTSCPlugInSubscriber;
+
+class CTSCPlugInPubSubObserver : public CBase, public MTSCPlugInPropertyResponder
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ constructor.
+        */
+        CTSCPlugInPubSubObserver( CTSCStartupExtensionPlugIn* aTSCStartupExtensionPlugIn );
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CTSCPlugInPubSubObserver* NewL( CTSCStartupExtensionPlugIn* aTSCStartupExtensionPlugIn );
+        
+        /**
+        * Destructor.
+        */
+        ~CTSCPlugInPubSubObserver();
+
+    private:
+
+        /**
+        * By default EPOC constructor is private.
+        */
+        void ConstructL();
+
+        CTSCPlugInPubSubObserver();
+
+    protected: // From MTSCPlugInPropertyResponder
+
+        void HandlePropertyChangedL( const TUid& aCategory, TUint aKey );
+
+    private:    // Data
+        //reference to application class
+        CTSCStartupExtensionPlugIn*        iTSCStartupExtensionPlugIn; //uses
+
+        RProperty iProperty;
+        CTSCPlugInSubscriber*   iTSCSyncSubscriber;
+    };
+
+#endif      // TSCPLUGINPUBSUBOBSERVER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/inc/tscpluginsubscriber.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TSC Subscriber (Publish & Subscribe).
+*
+*/
+
+
+#ifndef TSCPLUGINSUBSCRIBER_H
+#define TSCPLUGINSUBSCRIBER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <e32property.h>
+#include "MTSCPlugInPropertyResponder.h"
+
+// CLASS DECLARATION
+/**
+*  CTSCPlugInSubscriber
+*  
+*  @lib   tscstartupextensionplugin
+*  @since 3.2
+*/
+
+class CTSCPlugInSubscriber : public CActive
+{
+public:
+    /**
+    * Two-phased constructor.
+    */         
+    static CTSCPlugInSubscriber* NewL( MTSCPlugInPropertyResponder& aTSCPlugInPropertyResponder, 
+                                     const TUid& aCategory, 
+                                     TUint aKey );
+
+    /**
+    * Destructor.
+    */
+     ~CTSCPlugInSubscriber();
+
+     void Subscribe();
+
+private:
+     CTSCPlugInSubscriber( MTSCPlugInPropertyResponder& aTSCPlugInPropertyResponder, 
+                         const TUid& aCategory, TUint 
+                         aKey );
+     void ConstructL();
+
+public: // from CActive
+    /**
+    *	@param none
+    *	@return none
+    */    
+    void RunL();
+    
+    /**
+    *	@param aError the error returned
+    *	@return error
+    */
+    TInt RunError( TInt aError );
+
+    /**
+    *	@param none
+    *	@return none
+    */    
+    void DoCancel();
+	
+private: // Methods not implemented
+    CTSCPlugInSubscriber( const CTSCPlugInSubscriber& );           // Copy constructor
+    CTSCPlugInSubscriber& operator=( const CTSCPlugInSubscriber& );// Assigment operator
+
+private:
+
+    MTSCPlugInPropertyResponder&    iTSCPlugInPropertyResponder;
+    RProperty                       iProperty;
+    TUid                            iCategory;
+    TUint                           iKey;
+};
+
+
+#endif // TSCPLUGINSUBSCRIBER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/inc/tscstartupextensionplugin.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Declaration of CTSCStartupExtensionPlugIn class.
+*
+*/
+
+
+#ifndef TSCSTARTUPEXTENSIONPLUGIN_H
+#define TSCSTARTUPEXTENSIONPLUGIN_H
+
+#include <systemstartupextension.h>
+
+// FORWARD DECLARATIONS
+class CTSCPlugInPubSubObserver;
+
+/**
+ * System Startup Extension plug-in for executing Touch Screen Calibration
+ * during system startup.
+ *
+ *  @lib tscstartupextensionplugin.lib
+ *  @since S60 3.2
+ */
+NONSHARABLE_CLASS( CTSCStartupExtensionPlugIn )
+  : public CSystemStartupExtension
+    {
+
+public:
+
+    static CTSCStartupExtensionPlugIn* NewL( TAny* aConstructionParameters );
+
+    virtual ~CTSCStartupExtensionPlugIn();
+
+    /**
+     * Execute TSC operations depending on parameters.
+     *
+     * @since S60 3.2
+     * @param aStatus The request status to complete after the task has been
+     * finished.
+     */
+    virtual void ExecuteL( TRequestStatus& aStatus, const TDesC& aParams );
+
+    /**
+     * Cancel pending request.
+     *
+     * @since S60 3.2
+     */
+    virtual void Cancel();
+
+    /**
+     *
+     * @since S60 3.2
+     * @param none
+     */
+    void CalibrationDone();
+
+private:
+
+    CTSCStartupExtensionPlugIn( TAny* aConstructionParameters );
+
+    /**
+     * Second phase constructor.
+     *
+     */
+    void ConstructL();
+
+private: //data
+
+    CTSCPlugInPubSubObserver* iTSCPlugInPubSubObserver; //owns
+    
+    TRequestStatus* iStatus;
+    TBool iRequestSent;
+    };
+
+#endif // TSCSTARTUPEXTENSIONPLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/inc/tscstartupextensionplugindef.h	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Includes some common defines used in the TSCStartupExtensionPlugIn
+*
+*/
+
+
+#ifndef TSCSTARTUPEXTENSIONPLUGINDEF_H
+#define TSCSTARTUPEXTENSIONPLUGINDEF_H
+
+#include <e32debug.h>
+
+//CONSTANTS
+_LIT( KTouchScreenCalibAppName, "TSCStartupExtensionPlugIn" );  
+
+// MACROS
+
+#define PANIC(aPanic) User::Panic( KTouchScreenCalibAppName, aPanic )
+
+#define TRACE_ADDPREFIX(aText) (TPtrC((const TText *)L"TSCStartupExtensionPlugIn: \"" L##aText L"\""))
+
+#ifdef _DEBUG
+#define TRACES(aMsg) RDebug::Print( TRACE_ADDPREFIX(aMsg) )
+#define TRACES1(aFormat,aP1) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1) )
+#define TRACES2(aFormat,aP1,aP2) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2) )
+#define TRACES3(aFormat,aP1,aP2,aP3) RDebug::Print( TRACE_ADDPREFIX(aFormat),(aP1),(aP2),(aP3) )
+#else
+#define TRACES(aMsg)
+#define TRACES1(aFormat,aP1)
+#define TRACES2(aFormat,aP1,aP2)
+#define TRACES3(aFormat,aP1,aP2,aP3)
+#endif
+#endif      // TSCSTARTUPEXTENSIONPLUGINDEF_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/src/implementationfactory.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TSCStartupExtensionPlugIn ECOM implementation factory.
+*
+*/
+
+
+#include "tscstartupextensionplugin.h"
+
+#include <implementationproxy.h>
+
+// Define the interface UIDs.
+const TImplementationProxy ImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY( 0x10283124, CTSCStartupExtensionPlugIn::NewL )
+    };
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// ImplementationGroupProxy.
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+    return ImplementationTable;
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/src/tscpluginpubsubobserver.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 2007 - 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies 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 class the handles the received indications from the Public and
+*           Subscribe.
+*
+*/
+
+
+// SYSTEM INCLUDES
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <e32cmn.h>
+#include <touchscprivatepskeys.h>
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+#include <StartupAppInternalPSKeys.h>
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+// USER INCLUDES
+#include "TSCPlugInPubSubObserver.h"
+#include "tscpluginsubscriber.h"
+#include "tscstartupextensionplugindef.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ----------------------------------------------------
+// TSCPlugInPubSubObserver::TSCPlugInPubSubObserver( CTSCStartupExtensionPlugIn* aTSCStartupExtensionPlugIn )
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------
+CTSCPlugInPubSubObserver::CTSCPlugInPubSubObserver( CTSCStartupExtensionPlugIn* aTSCStartupExtensionPlugIn ) :
+    iTSCStartupExtensionPlugIn( aTSCStartupExtensionPlugIn )
+    {
+    }
+
+// ----------------------------------------------------
+// CTSCPlugInPubSubObserver::ConstructL()
+// ----------------------------------------------------
+void CTSCPlugInPubSubObserver::ConstructL()
+    {
+    TRACES("CTSCPlugInPubSubObserver::ConstructL()");
+
+    iTSCSyncSubscriber = CTSCPlugInSubscriber::NewL( *this, 
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+                                                     KPSUidTouchScreenCalibration,
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+                                                     KPSUidStartup,
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION                                                     
+                                                     KPSTouchScreenCalibration );
+    iTSCSyncSubscriber->Subscribe();
+
+    TInt touchScreenCalibrationState;
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+    RProperty::Get( KPSUidTouchScreenCalibration, KPSTouchScreenCalibration, touchScreenCalibrationState );
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+    RProperty::Get( KPSUidStartup, KPSTouchScreenCalibration, touchScreenCalibrationState );
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+    if ( touchScreenCalibrationState == ETouchScreenCalibrationOk )
+        {
+        iTSCStartupExtensionPlugIn->CalibrationDone();
+        }
+
+    TRACES("CTSCPlugInPubSubObserver::ConstructL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInPubSubObserver::HandlePropertyChangedL()
+// ----------------------------------------------------------------------------
+void CTSCPlugInPubSubObserver::HandlePropertyChangedL( const TUid& /*aCategory*/, TUint aKey )
+    {
+    TRACES("CTSCPlugInPubSubObserver::HandlePropertyChangedL()");
+    TRACES1("CTSCPlugInPubSubObserver::HandlePropertyChangedL(): aKey: %d",aKey );
+
+    if (aKey == KPSTouchScreenCalibration)
+        {
+        TInt state;
+    
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+        RProperty::Get( KPSUidTouchScreenCalibration, KPSTouchScreenCalibration, state );
+#else //RD_STARTUP_ANIMATION_CUSTOMIZATION
+        RProperty::Get( KPSUidStartup, KPSTouchScreenCalibration, state );
+#endif //RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+        if ( state == ETouchScreenCalibrationOk )
+            {
+            iTSCStartupExtensionPlugIn->CalibrationDone();
+            }
+        }
+
+    TRACES("CTSCPlugInPubSubObserver::HandlePropertyChangedL(): End");
+    }
+
+// ----------------------------------------------------
+// CTSCPlugInPubSubObserver::NewL( CTSCStartupExtensionPlugIn* aTSCStartupExtensionPlugIn )
+// ----------------------------------------------------
+CTSCPlugInPubSubObserver* CTSCPlugInPubSubObserver::NewL( CTSCStartupExtensionPlugIn* aTSCStartupExtensionPlugIn )
+    {
+    TRACES("CTSCPlugInPubSubObserver::NewL()");
+    CTSCPlugInPubSubObserver* self = new (ELeave) CTSCPlugInPubSubObserver( aTSCStartupExtensionPlugIn );
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); // self
+
+    TRACES("CTSCPlugInPubSubObserver::NewL(): End");
+    return self;
+    }
+
+// ----------------------------------------------------
+// CTSCPlugInPubSubObserver::~CTSCPlugInPubSubObserver()
+// ----------------------------------------------------
+CTSCPlugInPubSubObserver::~CTSCPlugInPubSubObserver()
+    {
+    TRACES("CTSCPlugInPubSubObserver::~CTSCPlugInPubSubObserver()");
+
+    delete iTSCSyncSubscriber;
+    iProperty.Close();
+
+    TRACES("CTSCPlugInPubSubObserver::~CTSCPlugInPubSubObserver(): End");
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/src/tscpluginsubscriber.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,120 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CTSCPlugInSubscriber implementation.
+ *
+*/
+
+
+// INCLUDES
+#include <e32svr.h>
+#include "tscstartupextensionplugin.h"
+#include "tscpluginsubscriber.h"
+#include "tscstartupextensionplugindef.h"
+
+// CONSTANTS
+
+// ============================= MEMBER FUNCTIONS =============================
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::NewL()
+// ----------------------------------------------------------------------------
+CTSCPlugInSubscriber* CTSCPlugInSubscriber::NewL( 
+                            MTSCPlugInPropertyResponder& aTSCPlugInPropertyResponder,
+                            const TUid& aCategory, 
+                            TUint aKey )
+    {
+    CTSCPlugInSubscriber* self = new (ELeave) CTSCPlugInSubscriber( aTSCPlugInPropertyResponder,
+                                                                aCategory, 
+                                                                aKey );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(); //self
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::ConstructL()
+// ----------------------------------------------------------------------------
+void CTSCPlugInSubscriber::ConstructL()
+    {
+    CActiveScheduler::Add( this );
+    iProperty.Attach( iCategory, iKey );
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::Subscribe()
+// ----------------------------------------------------------------------------
+void CTSCPlugInSubscriber::Subscribe()
+    {
+    TRACES("CTSCPlugInSubscriber::Subscribe()");
+    iProperty.Subscribe( iStatus );
+    SetActive();
+    TRACES("CTSCPlugInSubscriber::Subscribe(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::CTSCPlugInSubscriber()
+// ----------------------------------------------------------------------------
+CTSCPlugInSubscriber::CTSCPlugInSubscriber( MTSCPlugInPropertyResponder& aTSCPlugInPropertyResponder, 
+                                        const TUid& aCategory, 
+                                        TUint aKey ) :
+    CActive( EPriorityStandard ),
+    iTSCPlugInPropertyResponder( aTSCPlugInPropertyResponder ),
+    iCategory( aCategory),
+    iKey( aKey )
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::RunL()
+// ----------------------------------------------------------------------------
+void CTSCPlugInSubscriber::RunL()
+    {
+    TRACES("CTSCPlugInSubscriber::RunL()");
+    Subscribe();
+    iTSCPlugInPropertyResponder.HandlePropertyChangedL( iCategory, iKey );
+    TRACES("CTSCPlugInSubscriber::RunL(): End");
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::DoCancel()
+// ----------------------------------------------------------------------------
+void CTSCPlugInSubscriber::DoCancel()
+    {
+    iProperty.Cancel();
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::RunError()
+// ----------------------------------------------------------------------------
+TInt CTSCPlugInSubscriber::RunError( TInt aError )
+    {    
+    return aError;
+    }
+
+// ----------------------------------------------------------------------------
+// CTSCPlugInSubscriber::~CTSCPlugInSubscriber()
+// ----------------------------------------------------------------------------
+CTSCPlugInSubscriber::~CTSCPlugInSubscriber()
+    {
+    TRACES("CTSCPlugInSubscriber::~CTSCPlugInSubscriber()");
+    Cancel();
+    iProperty.Close();
+    TRACES("CTSCPlugInSubscriber::~CTSCPlugInSubscriber(): End");
+    }
+
+// End of File
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswuis/touchscreencalib/tscstartupextensionplugin/src/tscstartupextensionplugin.cpp	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of CTSCStartupExtensionPlugIn class.
+*
+*/
+
+
+#include "tscstartupextensionplugin.h"
+#include "tscstartupextensionplugindef.h"
+#include "TSCPlugInPubSubObserver.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Constructor
+//
+// ---------------------------------------------------------------------------
+//
+CTSCStartupExtensionPlugIn* CTSCStartupExtensionPlugIn::NewL(
+    TAny* aConstructionParameters )
+    {
+    CTSCStartupExtensionPlugIn* self =
+        new( ELeave ) CTSCStartupExtensionPlugIn( aConstructionParameters );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// Destructor
+//
+// ---------------------------------------------------------------------------
+//
+CTSCStartupExtensionPlugIn::~CTSCStartupExtensionPlugIn()
+    {
+    TRACES("CTSCStartupExtensionPlugIn::~CTSCStartupExtensionPlugIn()");
+    if (iTSCPlugInPubSubObserver)
+        {
+        delete iTSCPlugInPubSubObserver;
+        }
+    TRACES("CTSCStartupExtensionPlugIn::~CTSCStartupExtensionPlugIn()");
+    }
+
+
+// ---------------------------------------------------------------------------
+// First phase constructor
+//
+// ---------------------------------------------------------------------------
+//
+CTSCStartupExtensionPlugIn::CTSCStartupExtensionPlugIn(
+    TAny* aConstructionParameters )
+  : CSystemStartupExtension( aConstructionParameters ),
+    iRequestSent(EFalse)
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtensionPlugIn::ConstructL
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtensionPlugIn::ConstructL()
+    {
+    TRACES("CTSCStartupExtensionPlugIn::ConstructL()");
+    iTSCPlugInPubSubObserver = CTSCPlugInPubSubObserver::NewL( this );
+    TRACES("CTSCStartupExtensionPlugIn::ConstructL(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtensionPlugIn::ExecuteL
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtensionPlugIn::ExecuteL(
+    TRequestStatus& aStatus,
+    const TDesC& /*aParams*/ )
+    {
+    TRACES("CTSCStartupExtensionPlugIn::ExecuteL()");    
+    aStatus = KRequestPending;
+    iStatus = &aStatus;
+    TRACES("CTSCStartupExtensionPlugIn::ExecuteL(): End");
+    }
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtensionPlugIn::Cancel
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtensionPlugIn::Cancel()
+    {
+    // Nothing to do.
+    }
+
+// ---------------------------------------------------------------------------
+// CTSCStartupExtensionPlugIn::CalibrationDone
+//
+// ---------------------------------------------------------------------------
+//
+void CTSCStartupExtensionPlugIn::CalibrationDone()
+    {
+    TRACES("CTSCStartupExtensionPlugIn::CalibrationDone()");
+    if (!iRequestSent)
+        {
+        TRACES("CTSCStartupExtensionPlugIn::CalibrationDone(): Send complete request");
+        TInt errorCode = KErrNone;    
+        User::RequestComplete( iStatus, errorCode );
+        iRequestSent = ETrue;
+        }
+    TRACES("CTSCStartupExtensionPlugIn::CalibrationDone(): End");
+    }    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/group/bld.inf	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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: Build information file
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+//#include "../../devmngt_plat/settings_backgroundimage_api/tsrc/group/bld.inf"
+//#include "../../devmngt_plat/settings_framework_api/tsrc/group/bld.inf"
+//#include "../../devmngt_plat/settings_launch_api/tsrc/group/bld.inf"
+//#include "../../devmngt_plat/settings_listbox_api/tsrc/group/bld.inf"
+//#include "../../devmngt_plat/filelist_api/tsrc/group/bld.inf"
+//#include "../../devmngt_plat/profiles_engine_api/tsrc/group/bld.inf"
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/group/copy_binaries_to_sys_dir.mk	Wed Sep 01 12:33:30 2010 +0100
@@ -0,0 +1,41 @@
+#
+# 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: Icons makefile for project settingsuis
+#
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+	del \epoc32\RELEASE\winscw\udeb\Z\sys\bin\MT_CGSLauncher.dll /f
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES : do_nothing
+
+FINAL :
+	echo COPYING
+	copy \epoc32\RELEASE\winscw\udeb\MT_CGSLauncher.dll \epoc32\RELEASE\winscw\udeb\Z\sys\bin /y