# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1278414976 -10800 # Node ID f291796e213da13c11c6ac82e78d302413e881c0 # Parent d0b4e67b3a60618d07bceb3d74ae8c40ea0e01b4 Revision: 201025 Kit: 2010127 diff -r d0b4e67b3a60 -r f291796e213d commonui/group/glxcommonui.mmp --- a/commonui/group/glxcommonui.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonui/group/glxcommonui.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -64,6 +64,7 @@ LIBRARY cfservices.lib // for CCFContextObject #endif +SMPSAFE //EXPORTUNFROZEN // End of file diff -r d0b4e67b3a60 -r f291796e213d commonui/test/group/t_glxresolutionutilitiy.mmp --- a/commonui/test/group/t_glxresolutionutilitiy.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonui/test/group/t_glxresolutionutilitiy.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -65,5 +65,5 @@ #ifndef WINSCW EPOCALLOWDLLDATA #endif - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonui/test/group/t_glxzoomstatepublisher.mmp --- a/commonui/test/group/t_glxzoomstatepublisher.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonui/test/group/t_glxzoomstatepublisher.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -61,4 +61,5 @@ LIBRARY cfservices.lib // for CCFContextObject EXPORTUNFROZEN +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/bwins/glxcommonu.def --- a/commonutilities/common/bwins/glxcommonu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/bwins/glxcommonu.def Tue Jul 06 14:16:16 2010 +0300 @@ -45,4 +45,5 @@ ?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 44 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void) ?CreateCameraAlbumExclusionFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 45 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateCameraAlbumExclusionFilterL(void) ?NewL@CGlxTNMonitor@@SAPAV1@PAVMGlxTNObserver@@@Z @ 46 NONAME ; class CGlxTNMonitor * CGlxTNMonitor::NewL(class MGlxTNObserver *) + ?CreateExcludeDrmImageTypeFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterItemType@@@Z @ 47 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateExcludeDrmImageTypeFilterL(enum TGlxFilterItemType) diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/cenrep/20007193.txt Binary file commonutilities/common/cenrep/20007193.txt has changed diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/cenrep/20007194.txt Binary file commonutilities/common/cenrep/20007194.txt has changed diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/eabi/glxcommonu.def --- a/commonutilities/common/eabi/glxcommonu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/eabi/glxcommonu.def Tue Jul 06 14:16:16 2010 +0300 @@ -48,4 +48,5 @@ _ZN13CGlxTNMonitor4NewLEP14MGlxTNObserver @ 47 NONAME _ZTI13CGlxTNMonitor @ 48 NONAME _ZTV13CGlxTNMonitor @ 49 NONAME + _ZN17TGlxFilterFactory32CreateExcludeDrmImageTypeFilterLE18TGlxFilterItemType @ 50 NONAME diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/group/bld.inf --- a/commonutilities/common/group/bld.inf Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/group/bld.inf Tue Jul 06 14:16:16 2010 +0300 @@ -45,8 +45,9 @@ ../cenrep/200009EE_orientation_portrait_landscape.txt /epoc32/data/z/private/10202be9/200009EE.txt // for emulator ../cenrep/200009EE_orientation_portrait_landscape.txt /epoc32/release/winscw/udeb/z/private/10202be9/200009EE.txt - //slideshow settings cenrep initialisation file + //photos & ci_photos cenrep initialisation file ../cenrep/20007194.txt z:/private/10202be9/20007194.txt + ../cenrep/20007193.txt z:/private/10202be9/20007193.txt #endif @@ -55,8 +56,12 @@ ../../../conf/gallery.confml CONFML_EXPORT_PATH(gallery.confml,customsw) ../../../conf/gallery_200009EE.crml CRML_EXPORT_PATH(gallery_200009EE.crml,customsw) -../../../conf/slideshowsettings.confml CONFML_EXPORT_PATH(slideshowsettings.confml,customsw) -../../../conf/slideshowsettings_20007194.crml CRML_EXPORT_PATH(slideshowsettings_20007194.crml,customsw) +../../../conf/photos.confml CONFML_EXPORT_PATH(photos.confml,customsw) +../../../conf/photos_20007194.crml CRML_EXPORT_PATH(photos_20007194.crml,customsw) + +../../../conf/ci_photos.confml CONFML_EXPORT_PATH(ci_photos.confml,customsw) +../../../conf/ci_photos_20007193.crml CRML_EXPORT_PATH(ci_photos_20007193.crml,customsw) + ../../../data/photos.docml z:/resource/hb/splashml/photos.docml ../../../data/photos.splashml z:/resource/hb/splashml/photos.splashml PRJ_MMPFILES diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/group/glxcommon.mmp --- a/commonutilities/common/group/glxcommon.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/group/glxcommon.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -60,4 +60,5 @@ LIBRARY mpxcommon.lib LIBRARY flogger.lib +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/inc/glxfilterfactory.h --- a/commonutilities/common/inc/glxfilterfactory.h Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/inc/glxfilterfactory.h Tue Jul 06 14:16:16 2010 +0300 @@ -54,7 +54,14 @@ * @return a filter object with array elements set specifying the filter type (Images or Video) */ IMPORT_C static CMPXFilter* CreateItemTypeFilterL(TGlxFilterItemType aItemType); - + /** + * Creates a URI filter, Used to specify 1 particular item (no wild cards allowed). + * + * @param TGlxMediaGeneralCategory ( EMPXImage ) + * @return a filter object with array non drm images + */ + IMPORT_C static CMPXFilter* TGlxFilterFactory::CreateExcludeDrmImageTypeFilterL(TGlxFilterItemType aFilterType); + /** * Creates a URI filter, Used to specify 1 particular item (no wild cards allowed). * diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/src/glxfilterfactory.cpp --- a/commonutilities/common/src/glxfilterfactory.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/src/glxfilterfactory.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -29,7 +29,19 @@ filterProperties.iItemType = aItemType; return CreateCombinedFilterL(filterProperties); } - + +// --------------------------------------------------------------------------- +// Creates a eclude drm image filter object +// --------------------------------------------------------------------------- +// +EXPORT_C CMPXFilter* TGlxFilterFactory::CreateExcludeDrmImageTypeFilterL(TGlxFilterItemType aFilterType) + { + TGlxFilterProperties filterProperties; + filterProperties.iItemType = EGlxFilterImage; + filterProperties.iNoDRM = ETrue; + return CreateCombinedFilterL(filterProperties); + } + // --------------------------------------------------------------------------- // Creates a URI filter object // --------------------------------------------------------------------------- diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/test/group/T_CGlxSettingsModel.mmp --- a/commonutilities/common/test/group/T_CGlxSettingsModel.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/test/group/T_CGlxSettingsModel.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -43,5 +43,5 @@ LIBRARY centralrepository.lib // For central repository LIBRARY eunit.lib LIBRARY euser.lib - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/test/group/t_tcommandfactory.mmp --- a/commonutilities/common/test/group/t_tcommandfactory.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/test/group/t_tcommandfactory.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -58,5 +58,5 @@ LIBRARY ecom.lib LIBRARY lbs.lib LIBRARY mpxcommon.lib - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/test/group/t_tcommandparser.mmp --- a/commonutilities/common/test/group/t_tcommandparser.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/test/group/t_tcommandparser.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -57,5 +57,5 @@ LIBRARY ecom.lib LIBRARY lbs.lib LIBRARY mpxcommon.lib - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonutilities/common/test/group/ut_cglxsingletonstore.mmp --- a/commonutilities/common/test/group/ut_cglxsingletonstore.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/common/test/group/ut_cglxsingletonstore.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -48,5 +48,5 @@ LIBRARY euser.lib LIBRARY lbs.lib LIBRARY mpxcommon.lib - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d commonutilities/externalutility/externalutility.pro --- a/commonutilities/externalutility/externalutility.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/externalutility/externalutility.pro Tue Jul 06 14:16:16 2010 +0300 @@ -26,7 +26,8 @@ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE TARGET.UID3 = 0x20007192 TARGET.EPOCALLOWDLLDATA = 1 -TARGET.CAPABILITY = ALL -TCB +TARGET.CAPABILITY = ALL -TCB +MMP_RULES += SMPSAFE } exportfile = "inc/glxexternalutility.h APP_LAYER_PLATFORM_EXPORT_PATH(glxexternalutility.h)" BLD_INF_RULES.prj_exports += exportfile diff -r d0b4e67b3a60 -r f291796e213d commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro --- a/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -34,6 +34,7 @@ TARGET.UID3 = 0x2000718D TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } diff -r d0b4e67b3a60 -r f291796e213d commonutilities/imageviewer/group/glximageviewermanager.mmp --- a/commonutilities/imageviewer/group/glximageviewermanager.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/commonutilities/imageviewer/group/glximageviewermanager.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -43,4 +43,6 @@ LIBRARY flogger.lib // For Logging Tracer LIBRARY glxcommon.lib // CGlxSingetonStore +SMPSAFE + //EXPORTUNFROZEN \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d conf/ci_photos.confml Binary file conf/ci_photos.confml has changed diff -r d0b4e67b3a60 -r f291796e213d conf/ci_photos_20007193.crml Binary file conf/ci_photos_20007193.crml has changed diff -r d0b4e67b3a60 -r f291796e213d conf/photos.confml Binary file conf/photos.confml has changed diff -r d0b4e67b3a60 -r f291796e213d conf/photos_20007194.crml Binary file conf/photos_20007194.crml has changed diff -r d0b4e67b3a60 -r f291796e213d conf/slideshowsettings.confml Binary file conf/slideshowsettings.confml has changed diff -r d0b4e67b3a60 -r f291796e213d conf/slideshowsettings_20007194.crml Binary file conf/slideshowsettings_20007194.crml has changed diff -r d0b4e67b3a60 -r f291796e213d data/downshow.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/downshow.fxml Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,22 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.8 + 45.0 + 0.0 + + 1.0 + 1.0 + + + 0.8 + 0.0 + 1.0 + + 1 + + \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d data/fadein.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/fadein.fxml Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,13 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.8 + 0.0 + 1.0 + + + \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d data/fullscreen.docml --- a/data/fullscreen.docml Wed Jun 23 18:12:48 2010 +0300 +++ b/data/fullscreen.docml Tue Jul 06 14:16:16 2010 +0300 @@ -1,5 +1,5 @@ - + @@ -22,17 +22,16 @@ + - - - - + + + - - + @@ -49,20 +48,20 @@ - + - + - +
- - - + + + @@ -75,7 +74,7 @@ - + @@ -85,15 +84,15 @@
- - - - + + + + @@ -115,7 +114,7 @@
- + diff -r d0b4e67b3a60 -r f291796e213d data/helix.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/helix.fxml Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,32 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.8 + 0.0 + 90.0 + 180.0 + 270.0 + + 0.5 + 0.5 + 1 + + + 0.8 + 1.0 + 0.0 + + 0.5 + 0.5 + + + 0.8 + 1.0 + 0.0 + + + \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d data/photos.docml --- a/data/photos.docml Wed Jun 23 18:12:48 2010 +0300 +++ b/data/photos.docml Tue Jul 06 14:16:16 2010 +0300 @@ -1,14 +1,14 @@ - - + + - + @@ -25,23 +25,29 @@ - - - - - - -
+
+ + + + + + + + + + + +
+ - @@ -49,10 +55,8 @@ - - - - + +
diff -r d0b4e67b3a60 -r f291796e213d data/slideshow.docml --- a/data/slideshow.docml Wed Jun 23 18:12:48 2010 +0300 +++ b/data/slideshow.docml Tue Jul 06 14:16:16 2010 +0300 @@ -1,5 +1,5 @@ - + @@ -10,9 +10,9 @@ - + - + @@ -26,12 +26,12 @@ - + - + - + diff -r d0b4e67b3a60 -r f291796e213d data/uphide.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/uphide.fxml Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,21 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.8 + 1.0 + 0.0 + + + + 0.8 + 0.0 + -45.0 + + 0.0 + 1.0 + + \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d data/zoomin.fxml --- a/data/zoomin.fxml Wed Jun 23 18:12:48 2010 +0300 +++ b/data/zoomin.fxml Tue Jul 06 14:16:16 2010 +0300 @@ -5,7 +5,7 @@ - 0.6 + 0.8 1.0 0.1 @@ -13,13 +13,13 @@ 0.5 - 0.6 + 0.8 1.0 0.1 - 0.6 + 0.8 1.0 0.0 diff -r d0b4e67b3a60 -r f291796e213d data/zoomout.fxml --- a/data/zoomout.fxml Wed Jun 23 18:12:48 2010 +0300 +++ b/data/zoomout.fxml Tue Jul 06 14:16:16 2010 +0300 @@ -5,7 +5,7 @@ - 0.6 + 0.8 0.1 1.0 @@ -13,13 +13,13 @@ 0.5 - 0.6 + 0.8 0.1 1.0 - 0.6 + 0.8 0.0 1.0 diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/manager/group/glxdatasourcemanager.mmp --- a/engine/collectionframework/datasource/manager/group/glxdatasourcemanager.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/manager/group/glxdatasourcemanager.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -66,5 +66,6 @@ LIBRARY flogger.lib LIBRARY HbCore.lib +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/manager/test/group/t_cglxcommandrequest.mmp --- a/engine/collectionframework/datasource/manager/test/group/t_cglxcommandrequest.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/manager/test/group/t_cglxcommandrequest.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -56,6 +56,6 @@ // Libraries required by the tested code LIBRARY ecom.lib LIBRARY mpxcommon.lib - +SMPSAFE //deffile ../bwins/t_cglxcommandrequest.def // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/manager/test/group/t_cglxgetrequest.mmp --- a/engine/collectionframework/datasource/manager/test/group/t_cglxgetrequest.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/manager/test/group/t_cglxgetrequest.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -56,6 +56,6 @@ // Libraries required by the tested code LIBRARY ecom.lib LIBRARY mpxcommon.lib - +SMPSAFE //deffile ../bwins/t_cglxgetrequest.def // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/manager/test/group/t_cglxidlistrequest.mmp --- a/engine/collectionframework/datasource/manager/test/group/t_cglxidlistrequest.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/manager/test/group/t_cglxidlistrequest.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -58,6 +58,6 @@ LIBRARY ecom.lib LIBRARY mpxcommon.lib - +SMPSAFE //deffile ../bwins/t_cglxidlistrequest.def // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/manager/test/group/t_cglxthumbnailrequest.mmp --- a/engine/collectionframework/datasource/manager/test/group/t_cglxthumbnailrequest.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/manager/test/group/t_cglxthumbnailrequest.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -58,6 +58,6 @@ // Libraries required by the tested code LIBRARY ecom.lib LIBRARY mpxcommon.lib - +SMPSAFE deffile ../bwins/t_cglxthumbnailrequest.def // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/plugins/glxdatasourcemde/group/glxdatasourcemde.mmp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/group/glxdatasourcemde.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde/group/glxdatasourcemde.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -82,4 +82,5 @@ LIBRARY iclextjpegapi.lib LIBRARY imageconversion.lib +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/group/glxdatasourcemde.mmp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/group/glxdatasourcemde.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/group/glxdatasourcemde.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -96,4 +96,5 @@ LIBRARY imageconversion.lib LIBRARY harvesterclient.lib +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -375,6 +375,10 @@ { __ASSERT_DEBUG((EGlxFilterImage == aFilterProperties.iItemType), Panic( EGlxPanicIllegalArgument)); + + CMdEPropertyDef& drmProperty = DataSource()->ImageDef().GetPropertyDefL(MdeConstants::MediaObject::KDRMProperty); + CMdEPropertyCondition& drmPropertyCondition = aLogicCondition.AddPropertyConditionL(drmProperty); + drmPropertyCondition.SetNegate(ETrue); } if( aFilterProperties.iPath ) // If this is set. Then we need to filter on the Ids it supplies diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/Test/albumcollectionplugin/group/glxalbumcollectionplugin.mmp --- a/engine/collectionframework/plugins/Test/albumcollectionplugin/group/glxalbumcollectionplugin.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/Test/albumcollectionplugin/group/glxalbumcollectionplugin.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -59,5 +59,5 @@ LIBRARY mpxcommon.lib LIBRARY glxthumbnailcreator.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/Test/glxmedialiststestcollectionplugin/group/glxmedialiststestcollectionplugin.mmp --- a/engine/collectionframework/plugins/Test/glxmedialiststestcollectionplugin/group/glxmedialiststestcollectionplugin.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/Test/glxmedialiststestcollectionplugin/group/glxmedialiststestcollectionplugin.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -59,4 +59,5 @@ LIBRARY glxthumbnailcreator.lib +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/Test/glxtestcollectionplugin/group/glxtestcollectionplugin.mmp --- a/engine/collectionframework/plugins/Test/glxtestcollectionplugin/group/glxtestcollectionplugin.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/Test/glxtestcollectionplugin/group/glxtestcollectionplugin.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -63,5 +63,5 @@ LIBRARY glxthumbnailcreator.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/Test/testtagcollectionplugin/group/glxtagcollectionplugin.mmp --- a/engine/collectionframework/plugins/Test/testtagcollectionplugin/group/glxtagcollectionplugin.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/Test/testtagcollectionplugin/group/glxtagcollectionplugin.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -66,5 +66,5 @@ LIBRARY glxthumbnailcreator.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp --- a/engine/collectionframework/plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -69,5 +69,5 @@ LIBRARY glxdatasourcemanager.lib LIBRARY mpxcommon.lib LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionpluginalbums/src/glxcollectionpluginalbums.cpp --- a/engine/collectionframework/plugins/glxcollectionpluginalbums/src/glxcollectionpluginalbums.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionpluginalbums/src/glxcollectionpluginalbums.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -45,6 +45,8 @@ #include #include +#include "glxsymbianlocalisationstrings.h" + // CONSTANTS const TInt KFavoriteAlbumId = 1 ; const TInt KCapturedAlbumId = 2 ; @@ -214,7 +216,8 @@ { if(0 == usageCount) { - tempTitle = LoadLocalizedStringLC(KResourceFile, R_ALBUM_ITEM_SUB_TITLE_EMPTY); + tempTitle = LoadLocalizedStringLC(KNoImages); + // Set the title in the response. aResponse->SetTextValueL(attr, *tempTitle); @@ -276,14 +279,12 @@ { if( TGlxMediaId(KCapturedAlbumId) == aMediaId ) { - _LIT(KCameraText,"txt_photos_dblist_my_camera"); HBufC* title = LoadLocalizedStringLC(KCameraText); aResponse->SetTextValueL(attr, *title); CleanupStack::PopAndDestroy(title); } else if (TGlxMediaId(KFavoriteAlbumId) == aMediaId ) { - _LIT(KMyFavText,"txt_photos_dblist_my_favorites"); HBufC* title = LoadLocalizedStringLC(KMyFavText); aResponse->SetTextValueL(attr, *title); CleanupStack::PopAndDestroy(title); diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp --- a/engine/collectionframework/plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -72,5 +72,5 @@ LIBRARY mpxcommon.lib LIBRARY glxcommon.lib LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp --- a/engine/collectionframework/plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -74,5 +74,5 @@ LIBRARY mpxcommon.lib LIBRARY glxcommon.lib LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp --- a/engine/collectionframework/plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -75,5 +75,5 @@ LIBRARY mpxcommon.lib LIBRARY glxcommon.lib LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionpluginimageviewer/group/glxcollectionpluginimageviewer.mmp --- a/engine/collectionframework/plugins/glxcollectionpluginimageviewer/group/glxcollectionpluginimageviewer.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionpluginimageviewer/group/glxcollectionpluginimageviewer.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -68,5 +68,5 @@ LIBRARY glxdatasourcemanager.lib LIBRARY mpxcommon.lib LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp --- a/engine/collectionframework/plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -73,5 +73,5 @@ LIBRARY glxcommon.lib LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/tagcollectionplugin/group/glxcollectionplugintags.mmp --- a/engine/collectionframework/plugins/tagcollectionplugin/group/glxcollectionplugintags.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/tagcollectionplugin/group/glxcollectionplugintags.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -74,5 +74,5 @@ LIBRARY glxdatasourcemanager.lib //DataSource Request LIBRARY glxcommon.lib //Filters LIBRARY flogger.lib - +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/plugins/tagcollectionplugin/test/ut_cglxcollectionplugintags.mmp --- a/engine/collectionframework/plugins/tagcollectionplugin/test/ut_cglxcollectionplugintags.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/plugins/tagcollectionplugin/test/ut_cglxcollectionplugintags.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -62,5 +62,5 @@ LIBRARY glxdatasourcemanager.lib //DataSource Request LIBRARY glxcommon.lib //Filters - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/group/glxthumbnailcreator.mmp --- a/engine/collectionframework/thumbnailcreator/group/glxthumbnailcreator.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/group/glxthumbnailcreator.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -89,4 +89,5 @@ LIBRARY tneengine.lib #endif +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/test/group/ut_cglxtndeletethumbnailstask.mmp --- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtndeletethumbnailstask.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtndeletethumbnailstask.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -48,5 +48,5 @@ LIBRARY EUnit.lib LIBRARY EUnitUtil.lib LIBRARY euser.lib - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnfilteravailabletask.mmp --- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnfilteravailabletask.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnfilteravailabletask.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -49,5 +49,5 @@ LIBRARY EUnitUtil.lib LIBRARY euser.lib - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/test/group/ut_cglxtngeneratethumbnailtask.mmp --- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtngeneratethumbnailtask.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtngeneratethumbnailtask.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -72,5 +72,5 @@ #else LIBRARY tneengine.lib #endif - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnquickthumbnailtask.mmp --- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnquickthumbnailtask.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnquickthumbnailtask.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -73,5 +73,5 @@ #else LIBRARY tneengine.lib #endif - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnzoomedimagetask.mmp --- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnzoomedimagetask.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnzoomedimagetask.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -63,5 +63,5 @@ LIBRARY ecom.lib LIBRARY flogger.lib // for logging to file - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.mmp --- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -59,3 +59,4 @@ LIBRARY MdEClient.lib LIBRARY flogger.lib // For Logging Tracer +SMPSAFE diff -r d0b4e67b3a60 -r f291796e213d gallery/sis/photos.pkg --- a/gallery/sis/photos.pkg Wed Jun 23 18:12:48 2010 +0300 +++ b/gallery/sis/photos.pkg Tue Jul 06 14:16:16 2010 +0300 @@ -99,6 +99,7 @@ "\epoc32\release\armv5\urel\glxviewmanager.dll" -"!:\sys\bin\glxviewmanager.dll" ;qt dlls +"\epoc32\release\armv5\urel\glxdrmutilitywrapper.dll" -"!:\sys\bin\glxdrmutilitywrapper.dll" "\epoc32\release\armv5\urel\glxexternalutility.dll" -"!:\sys\bin\glxexternalutility.dll" "\epoc32\release\armv5\urel\glximagedecoderwrapper.dll" -"!:\sys\bin\glximagedecoderwrapper.dll" "\epoc32\release\armv5\urel\glxtvoutwrapper.dll" -"!:\sys\bin\glxtvoutwrapper.dll" @@ -110,13 +111,18 @@ "\epoc32\release\armv5\urel\glxloggerqt.dll" -"!:\sys\bin\glxloggerqt.dll" "\epoc32\release\armv5\urel\glxviews.dll" -"!:\sys\bin\glxviews.dll" "\epoc32\release\armv5\urel\glxviewutilities.dll" -"!:\sys\bin\glxviewutilities.dll" -"\epoc32\release\armv5\urel\glxzoomwidget.dll" -"!:\sys\bin\glxzoomwidget.dll" +"\epoc32\release\armv5\urel\glxzoomwidget.dll" -"!:\sys\bin\glxzoomwidget.dll" +"\epoc32\release\armv5\urel\detailsnamelabel.dll" -"!:\sys\bin\detailsnamelabel.dll" +"\epoc32\release\armv5\urel\detailsnamelabelplugin.dll" -"!:\sys\bin\detailsnamelabelplugin.dll" +"\epoc32\release\armv5\urel\detailsdescriptionedit.dll" -"!:\sys\bin\detailsdescriptionedit.dll" +"\epoc32\release\armv5\urel\detailsdescriptioneditplugin.dll" -"!:\sys\bin\detailsdescriptioneditplugin.dll" ;translations "\epoc32\data\z\resource\qt\translations\photos_en.qm" -"!:\resource\qt\translations\photos.qm" ;cenrep "\epoc32\data\Z\private\10202BE9\20007194.txt" -"!:\private\10202BE9\20007194.txt" +"\epoc32\data\Z\private\10202BE9\20007193.txt" -"!:\private\10202BE9\20007193.txt" ;splash screen "\epoc32\data\z\resource\hb\splashml\photos.splashml" -"!:\resource\hb\splashml\photos.splashml" diff -r d0b4e67b3a60 -r f291796e213d gallery/sis/photos_stub.pkg --- a/gallery/sis/photos_stub.pkg Wed Jun 23 18:12:48 2010 +0300 +++ b/gallery/sis/photos_stub.pkg Tue Jul 06 14:16:16 2010 +0300 @@ -88,6 +88,7 @@ "" - "z:\sys\bin\glxviewmanager.dll" ; qt dlls +"" - "z:\sys\bin\glxdrmutilitywrapper.dll" "" - "z:\sys\bin\glxexternalutility.dll" "" - "z:\sys\bin\glximagedecoderwrapper.dll" "" - "z:\sys\bin\glxloggerqt.dll" @@ -100,8 +101,13 @@ "" - "z:\sys\bin\glxviews.dll" "" - "z:\sys\bin\glxviewutilities.dll" "" - "z:\sys\bin\glxzoomwidget.dll" +"" - "z:\sys\bin\detailsnamelabel.dll" +"" - "z:\sys\bin\detailsnamelabelplugin.dll" +"" - "z:\sys\bin\detailsdescriptionedit.dll" +"" - "z:\sys\bin\detailsdescriptioneditplugin.dll" "" - "z:\private\10202BE9\20007194.txt" +"" - "z:\private\10202BE9\20007193.txt" "" - "z:\resource\qt\translations\photos.qm" diff -r d0b4e67b3a60 -r f291796e213d gallery/sis/photos_stub.sis Binary file gallery/sis/photos_stub.sis has changed diff -r d0b4e67b3a60 -r f291796e213d inc/glxlocalisationstrings.h --- a/inc/glxlocalisationstrings.h Wed Jun 23 18:12:48 2010 +0300 +++ b/inc/glxlocalisationstrings.h Tue Jul 06 14:16:16 2010 +0300 @@ -75,13 +75,14 @@ // #define GLX_MENU_RENAME hbTrId("txt_common_menu_rename_item") +#define GLX_DIALOG_NAME_PROMPT hbTrId("txt_photos_title_enter_name") +#define GLX_DIALOG_ALBUM_NAME_DEFAULT hbTrId("txt_photos_dialog_enter_name_entry_album") +#define GLX_DIALOG_DELETE_ONE_ITEM hbTrId("txt_photos_info_deleting_1") //TITLE RELATED and DEFAULT STRINGS #define GLX_CAPTION hbTrId("txt_short_caption_photos") #define GLX_TITLE hbTrId("txt_photos_title_photos") -#define GLX_CAMERA "txt_photos_dblist_my_camera" -#define GLX_MYFAV "txt_photos_dblist_my_favorites" #define GLX_PLACES "txt_photos_dblist_places_ln" #define GLX_ITEMS_CAMERA "txt_photos_dblist_val_ln_items" #define GLX_ITEMS_MYFAV "txt_photos_subtitle_ln_items" diff -r d0b4e67b3a60 -r f291796e213d inc/glxsymbianlocalisationstrings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/glxsymbianlocalisationstrings.h Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,26 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Localisation strings +* +*/ + +#ifndef GLXSYMBIANLOCALISATIONSTRINGS_H_ +#define GLXSYMBIANLOCALISATIONSTRINGS_H_ + +//SYMBIAN RELATED LOCALISATION STRINGS +_LIT(KNoImages,"txt_photos_grid_no_images"); +_LIT(KCameraText,"txt_photos_dblist_my_camera"); +_LIT(KMyFavText,"txt_photos_dblist_my_favorites"); + +#endif /* GLXSYMBIANLOCALISATIONSTRINGS_H_*/ \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d loggers/loggerqt/loggerqt.pro --- a/loggers/loggerqt/loggerqt.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/loggers/loggerqt/loggerqt.pro Tue Jul 06 14:16:16 2010 +0300 @@ -30,7 +30,8 @@ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE TARGET.UID3 = 0x20000A15 TARGET.EPOCALLOWDLLDATA = 1 -TARGET.CAPABILITY = ALL -TCB \ +TARGET.CAPABILITY = ALL -TCB +MMP_RULES += SMPSAFE } diff -r d0b4e67b3a60 -r f291796e213d loggers/logging/app/group/glxloggingapp.mmp --- a/loggers/logging/app/group/glxloggingapp.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/loggers/logging/app/group/glxloggingapp.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -70,3 +70,5 @@ TARGETPATH /resource/apps LANGUAGE_IDS END + +SMPSAFE \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d loggers/logging/client/group/glxlogging.mmp --- a/loggers/logging/client/group/glxlogging.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/loggers/logging/client/group/glxlogging.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -44,3 +44,5 @@ #ifndef WINSCW EPOCALLOWDLLDATA #endif + +SMPSAFE \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d loggers/logging/client/test/group/t_glxlogging.mmp --- a/loggers/logging/client/test/group/t_glxlogging.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/loggers/logging/client/test/group/t_glxlogging.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -55,5 +55,5 @@ #ifndef WINSCW EPOCALLOWDLLDATA #endif - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d main/glxaiwservicehandler.cpp --- a/main/glxaiwservicehandler.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/main/glxaiwservicehandler.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -42,6 +43,7 @@ #include #include "glxlocalisationstrings.h" #include +#include #define IMAGE_FETCHER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageFetch") #define IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME QLatin1String("photos.Image") @@ -77,6 +79,8 @@ } else if( 0 == currentInterfaceName.compare(QLatin1String("com.nokia.symbian.IFileView"))) { + viewport()->setAttribute(Qt::WA_AcceptTouchEvents); + viewport()->grabGesture(Qt::PinchGesture); mImageViewerService = new GlxImageViewerService(this); } @@ -194,15 +198,16 @@ } void GlxAiwServiceHandler::itemSpecificMenuTriggered(qint32 viewId,QPointF pos) - { +{ mFetcherContextMenu = new HbMenu(); HbAction *action = mFetcherContextMenu->addAction(GLX_MENU_OPEN); + action->setObjectName( "Menu Open" ); connect(action, SIGNAL(triggered()), this, SLOT(openFSView())); connect(this, SIGNAL(aboutToChangeOrientation ()), mFetcherContextMenu, SLOT(close())); connect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); mFetcherContextMenu->setPreferredPos( pos ); mFetcherContextMenu->show(); - } +} void GlxAiwServiceHandler::closeContextMenu() { @@ -221,6 +226,8 @@ mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); } HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT); + selectAction->setObjectName( "FS Select" ); + connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect())); HbToolBar* toolBar = new HbToolBar(); toolBar->setOrientation( Qt::Horizontal ); @@ -546,6 +553,20 @@ bool GlxImageViewerService::view(QString file) { + XQApplicationManager appmgr; + QFile tempfile(file); + QVariantList attrValues; + QList attrNames; + attrNames.append(XQApplicationManager::IsProtected); + bool ok = appmgr.getDrmAttributes(tempfile, attrNames, attrValues); + if(attrValues.at(0).toBool()){ + HbNotificationDialog::launchDialog("NOT SUPPORTED"); + connect(this, SIGNAL(returnValueDelivered()), mServiceApp, + SLOT(handleAnswerDelivered())); + complete(true); + return false; + } + XQRequestInfo info = requestInfo(); mAsyncRequest = !info.isSynchronous(); if (!mImageViewerInstance) diff -r d0b4e67b3a60 -r f291796e213d main/main.cpp --- a/main/main.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/main/main.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -27,7 +27,8 @@ #include "glxstatemanager.h" #include "glxaiwservicehandler.h" #include "glxapplication.h" - +#include "glxlocalisationstrings.h" +#include "hbsplashscreen.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "mainTraces.h" @@ -42,7 +43,7 @@ OstTraceExt3( TRACE_NORMAL, DUP1__MAIN, "::main Time at Launch HHMMSS =%d::%d::%d", localTime.hour(), localTime.minute(), localTime.second() ); - GlxApplication app(argc, argv); + GlxApplication app(argc, argv, Hb::NoSplash); bool loaded(false); QTranslator translator; QString path = "Z:/resource/qt/translations/"; @@ -58,8 +59,9 @@ OstTraceEventStart0( EVENT_DUP1__MAIN_START, "launch" ); if(!XQServiceUtil::isService()){ + HbSplashScreen::start(); stateMgr = new GlxStateManager(); - app.setApplicationName("Photos"); + app.setApplicationName(GLX_TITLE); stateMgr->launchApplication(); } else { diff -r d0b4e67b3a60 -r f291796e213d main/main.pro --- a/main/main.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/main/main.pro Tue Jul 06 14:16:16 2010 +0300 @@ -46,6 +46,7 @@ 41943040 TARGET.CAPABILITY = ALL \ -TCB + MMP_RULES += SMPSAFE } LIBS += -lglxstatehandler.dll \ diff -r d0b4e67b3a60 -r f291796e213d photos.qrc --- a/photos.qrc Wed Jun 23 18:12:48 2010 +0300 +++ b/photos.qrc Tue Jul 06 14:16:16 2010 +0300 @@ -10,7 +10,11 @@ data/zoomin.fxml data/zoomout.fxml data/view_flip_hide.fxml - data/view_flip_show.fxml + data/view_flip_show.fxml + data/helix.fxml + data/fadein.fxml + data/uphide.fxml + data/downshow.fxml data/fullscreentogrid.fxml data/gridtofullscreenhide.fxml data/gridtofullscreenshow.fxml diff -r d0b4e67b3a60 -r f291796e213d rom/photos.iby --- a/rom/photos.iby Wed Jun 23 18:12:48 2010 +0300 +++ b/rom/photos.iby Tue Jul 06 14:16:16 2010 +0300 @@ -66,6 +66,7 @@ file=ABI_DIR/BUILD_DIR/glxviewmanager.dll SHARED_LIB_DIR/glxviewmanager.dll //qt +file=ABI_DIR/BUILD_DIR/glxdrmutilitywrapper.dll SHARED_LIB_DIR/glxdrmutilitywrapper.dll file=ABI_DIR/BUILD_DIR/glxexternalutility.dll SHARED_LIB_DIR/glxexternalutility.dll file=ABI_DIR/BUILD_DIR/glximagedecoderwrapper.dll SHARED_LIB_DIR/glximagedecoderwrapper.dll file=ABI_DIR/BUILD_DIR/glxloggerqt.dll SHARED_LIB_DIR/glxloggerqt.dll @@ -88,6 +89,7 @@ data=/epoc32/data/z/private/10003a3f/import/apps/photos_reg.rsc private/10003a3f/import/apps/photos_reg.rsc data=DATAZ_/APP_RESOURCE_DIR/photos.mif APP_RESOURCE_DIR/photos.mif data=/epoc32/data/Z/private/10202BE9/20007194.txt private/10202BE9/20007194.txt +data=/epoc32/data/Z/private/10202BE9/20007193.txt private/10202BE9/20007193.txt data=/epoc32/data/z/system/install/photos_stub.sis /system/install/photos_stub.sis data=ZRESOURCE/hb/splashml/photos.splashml RESOURCE_FILES_DIR/hb/splashml/photos.splashml diff -r d0b4e67b3a60 -r f291796e213d tsrc/unittest/unittest_imagedecoderwrapper/unittest_imagedecoderwrapper.pro --- a/tsrc/unittest/unittest_imagedecoderwrapper/unittest_imagedecoderwrapper.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/tsrc/unittest/unittest_imagedecoderwrapper/unittest_imagedecoderwrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -38,6 +38,7 @@ TARGET.CAPABILITY = ALL -TCB TARGET.EPOCHEAPSIZE = 0x20000 0x1600000 TARGET.UID3 = 0x20000A05 + MMP_RULES += SMPSAFE } #BLD_INF_RULES.prj_exports += "../../../gallery/data/Battle.jpg c:/data/images/Battle.jpg" diff -r d0b4e67b3a60 -r f291796e213d tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.pro --- a/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -43,4 +43,5 @@ TARGET.CAPABILITY = ALL -TCB TARGET.EPOCHEAPSIZE = 0x20000 0x1600000 TARGET.UID3 = 0x20000A0E + MMP_RULES += SMPSAFE } \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d tsrc/unittest/unittest_statehandler/unittest_statehandler.pro --- a/tsrc/unittest/unittest_statehandler/unittest_statehandler.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/tsrc/unittest/unittest_statehandler/unittest_statehandler.pro Tue Jul 06 14:16:16 2010 +0300 @@ -35,6 +35,7 @@ TARGET.CAPABILITY = ALL -TCB TARGET.EPOCHEAPSIZE = 0x20000 0x1600000 TARGET.UID3 = 0x2000A773 + MMP_RULES += SMPSAFE } LIBS += -lflogger.dll diff -r d0b4e67b3a60 -r f291796e213d tvout/tvoutengine/group/glxtvout.mmp --- a/tvout/tvoutengine/group/glxtvout.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/tvout/tvoutengine/group/glxtvout.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -70,4 +70,6 @@ #ifdef __MARM LIBRARY GSServerEngine.lib // FOr AspectRatio #endif + +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp --- a/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -886,7 +886,7 @@ iSurfBufferAO->iStatus = KRequestPending; iSurfBufferAO->SetActive(); iSurfUpdateSession.NotifyWhenAvailable(iSurfBufferAO->iStatus); - TInt err = iSurfUpdateSession.SubmitUpdate(1, iSurfId, 0, NULL); + TInt err = iSurfUpdateSession.SubmitUpdate(KAllScreens, iSurfId, 0, NULL); GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ProcessTvImage() Surfaceupdatesession error %d",err); } } diff -r d0b4e67b3a60 -r f291796e213d tvout/tvoutwrapper/tvoutwrapper.pro --- a/tvout/tvoutwrapper/tvoutwrapper.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/tvout/tvoutwrapper/tvoutwrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -33,6 +33,7 @@ TARGET.UID3 = 0x2000A772 TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } # Input HEADERS += inc/glxtvoutwrapper.h \ diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/bwins/glxcommoncommandhandlersu.def --- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Tue Jul 06 14:16:16 2010 +0300 @@ -1,73 +1,81 @@ EXPORTS - ??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 1 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int) - ?iSelectionCount@GlxCommandHandlerAddToContainer@@0HA @ 2 NONAME ; int GlxCommandHandlerAddToContainer::iSelectionCount - ?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 3 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>) - ?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *) - ?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 5 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const - ??0GlxCommandHandlerRename@@QAE@XZ @ 6 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void) - ??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 7 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void) - ?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void) - ?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 9 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short) - ?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 10 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const - ??_EGlxCommandHandlerSend@@UAE@I@Z @ 11 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int) - ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *) - ?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 13 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int) - ?HandleErrorL@GlxCommandHandlerComment@@EAEXH@Z @ 14 NONAME ; void GlxCommandHandlerComment::HandleErrorL(int) - ?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 15 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const - ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 16 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int) - ?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 17 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &) - ?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 18 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const - ?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const - ?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 20 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 21 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 22 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const - ?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 23 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *) - ??0GlxCommandHandlerComment@@QAE@XZ @ 24 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void) - ?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 25 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const - ??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 26 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void) - ?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 27 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *) - ??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 28 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void) - ?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 29 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *) - ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 30 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *) - ?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 31 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const - ?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 32 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void) - ??_EGlxCommandHandlerComment@@UAE@I@Z @ 33 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int) - ??1GlxCommandHandlerRotate@@UAE@XZ @ 34 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void) - ?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 35 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const - ??1GlxCommandHandlerNewMedia@@UAE@XZ @ 36 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void) - ??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 37 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int) - ?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 38 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const - ??_EGlxCommandHandlerDelete@@UAE@I@Z @ 39 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int) - ?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const - ?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 41 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const - ?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 42 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject - ?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 43 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void) - ??0GlxCommandHandlerDelete@@QAE@XZ @ 44 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void) - ??1GlxCommandHandlerRename@@UAE@XZ @ 45 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void) - ??0GlxCommandHandlerSend@@QAE@XZ @ 46 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void) - ?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 47 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int) - ??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 48 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void) - ??_EGlxCommandHandlerRename@@UAE@I@Z @ 49 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int) - ?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 50 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const - ?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 51 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) - ??_EGlxCommandHandlerRotate@@UAE@I@Z @ 52 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int) - ?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 53 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const - ??1GlxCommandHandlerComment@@UAE@XZ @ 54 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void) - ??1GlxCommandHandlerSend@@UAE@XZ @ 55 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void) - ?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 56 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const - ??0GlxCommandHandlerNewMedia@@QAE@XZ @ 57 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void) - ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 58 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int) - ?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 59 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList) const - ??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 60 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int) - ?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 61 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const - ?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 62 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &) - ?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 63 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 64 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 65 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const - ?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 66 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 67 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short) - ?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 68 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>) - ??1GlxCommandHandlerDelete@@UAE@XZ @ 69 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void) - ?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 70 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const - ??0GlxCommandHandlerRotate@@QAE@XZ @ 71 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void) + ?doHandleUserAction@GlxCommandHandlerRotateImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 1 NONAME ; void GlxCommandHandlerRotateImage::doHandleUserAction(class GlxMediaModel *, class QList) const + ??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 2 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int) + ?iSelectionCount@GlxCommandHandlerAddToContainer@@0HA @ 3 NONAME ; int GlxCommandHandlerAddToContainer::iSelectionCount + ?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 4 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>) + ?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *) + ?doHandleUserAction@GlxCommandHandlerCropImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 6 NONAME ; void GlxCommandHandlerCropImage::doHandleUserAction(class GlxMediaModel *, class QList) const + ?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 7 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const + ??0GlxCommandHandlerRename@@QAE@XZ @ 8 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void) + ??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 9 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void) + ?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void) + ?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 11 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short) + ?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 12 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const + ??_EGlxCommandHandlerSend@@UAE@I@Z @ 13 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int) + ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *) + ?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 15 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int) + ??1GlxCommandHandlerCropImage@@UAE@XZ @ 16 NONAME ; GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage(void) + ?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 17 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const + ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int) + ?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &) + ?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const + ?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const + ?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 22 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 23 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 24 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const + ?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 25 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *) + ??0GlxCommandHandlerComment@@QAE@XZ @ 26 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void) + ?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 27 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const + ??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 28 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void) + ?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 29 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *) + ??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 30 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void) + ?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 31 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *) + ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 32 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *) + ?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 33 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const + ?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 34 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void) + ??_EGlxCommandHandlerComment@@UAE@I@Z @ 35 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int) + ??1GlxCommandHandlerRotate@@UAE@XZ @ 36 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void) + ?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 37 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const + ??1GlxCommandHandlerNewMedia@@UAE@XZ @ 38 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void) + ??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 39 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int) + ?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const + ??_EGlxCommandHandlerDelete@@UAE@I@Z @ 41 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int) + ?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 42 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const + ?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 43 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const + ?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject + ?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 45 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void) + ??0GlxCommandHandlerDelete@@QAE@XZ @ 46 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void) + ??1GlxCommandHandlerRename@@UAE@XZ @ 47 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void) + ??0GlxCommandHandlerSend@@QAE@XZ @ 48 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void) + ?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 49 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int) + ??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 50 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void) + ??_EGlxCommandHandlerRename@@UAE@I@Z @ 51 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int) + ?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 52 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const + ?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 53 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) + ??1GlxCommandHandlerRotateImage@@UAE@XZ @ 54 NONAME ; GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage(void) + ??0GlxCommandHandlerRotateImage@@QAE@XZ @ 55 NONAME ; GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage(void) + ??_EGlxCommandHandlerRotate@@UAE@I@Z @ 56 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int) + ??_EGlxCommandHandlerCropImage@@UAE@I@Z @ 57 NONAME ; GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage(unsigned int) + ?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const + ??1GlxCommandHandlerComment@@UAE@XZ @ 59 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void) + ??1GlxCommandHandlerSend@@UAE@XZ @ 60 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void) + ?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 61 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const + ??0GlxCommandHandlerNewMedia@@QAE@XZ @ 62 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void) + ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int) + ?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 64 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList) const + ??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 65 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int) + ?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 66 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const + ?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 67 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &) + ?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 68 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 69 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 70 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const + ?executeCommand@GlxCommandHandlerRotateImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 71 NONAME ; void GlxCommandHandlerRotateImage::executeCommand(int, int, class QList) + ??_EGlxCommandHandlerRotateImage@@UAE@I@Z @ 72 NONAME ; GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage(unsigned int) + ?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 73 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 74 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short) + ?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 75 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>) + ??1GlxCommandHandlerDelete@@UAE@XZ @ 76 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void) + ?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 77 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const + ??0GlxCommandHandlerCropImage@@QAE@XZ @ 78 NONAME ; GlxCommandHandlerCropImage::GlxCommandHandlerCropImage(void) + ??0GlxCommandHandlerRotate@@QAE@XZ @ 79 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void) diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro --- a/ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro Tue Jul 06 14:16:16 2010 +0300 @@ -45,6 +45,7 @@ TARGET.UID3 = 0x20000A11 TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp --- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -64,6 +64,7 @@ void GlxMpxCommandHandler::executeCommand(int commandId, int collectionId,QList indexList) { OstTraceFunctionEntry0( GLXMPXCOMMANDHANDLER_EXECUTECOMMAND_ENTRY ); + Q_UNUSED(indexList); int aHierarchyId = 0; TGlxFilterItemType aFilterType = EGlxFilterImage; @@ -349,7 +350,8 @@ // @todo error received. Close progress note DismissProgressNoteL(); iMediaList->RemoveMediaListObserver(this); - + iMediaList->Close(); + iMediaList = NULL; // handle error HandleErrorL(aErrorCode); } @@ -357,6 +359,8 @@ { DismissProgressNoteL(); iMediaList->RemoveMediaListObserver(this); + iMediaList->Close(); + iMediaList = NULL; CompletionNoteL(); iProgressComplete = EFalse; } @@ -478,7 +482,8 @@ // noteText has a place for a title string in it const TDesC& itemName = media->ValueText(KMPXMediaGeneralTitle); QString qtItemName = QString::fromUtf16(itemName.Ptr(),itemName.Length()); - qtText.append(QString("%1").arg(qtItemName)); + QString localisedString = qtText.arg(qtItemName); + qtText = localisedString; } // (else) If error, assume confirmed anyway CleanupStack::PopAndDestroy(attributeContext); diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro --- a/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Tue Jul 06 14:16:16 2010 +0300 @@ -40,6 +40,7 @@ TARGET.UID3 = 0x20000A0D TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } LIBS += -lglxcommandhandlerbase.dll \ @@ -54,7 +55,11 @@ -lfbscli.dll \ -lbafl.dll \ -lefsrv.dll \ - -lcaf.dll + -lcaf.dll \ + -lxqservice.dll \ + -lxqserviceutil.dll \ + -lglxmediamodel.dll + # Input HEADERS += inc/glxcommandhandlerdelete.h @@ -66,7 +71,8 @@ HEADERS += inc/glxcommandhandlerrename.h HEADERS += inc/glxcommondialogs.h HEADERS += inc/glxcommandhandlercomment.h - +HEADERS += inc/glxcommandhandlercropimage.h +HEADERS += inc/glxcommandhandlerrotateimage.h SOURCES += src/glxcommandhandlerdelete.cpp SOURCES += src/glxcommandhandleraddtocontainer.cpp @@ -77,6 +83,8 @@ SOURCES += src/glxcommandhandlerrename.cpp SOURCES += src/glxcommondialogs.cpp SOURCES += src/glxcommandhandlercomment.cpp +SOURCES += src/glxcommandhandlercropimage.cpp +SOURCES += src/glxcommandhandlerrotateimage.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercomment.h --- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercomment.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercomment.h Tue Jul 06 14:16:16 2010 +0300 @@ -36,7 +36,7 @@ private: QString CompletionTextL() const; QString GetName(MGlxMediaList& aMediaList) const; - void HandleErrorL(TInt aErrorCode); + }; #endif // GLXCOMMANDHANDLERCOMMENT_H diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef GLXCOMMANDHANDLERCROPIMAGE_H_ +#define GLXCOMMANDHANDLERCROPIMAGE_H_ + + +#include "glxmodelcommandhandler.h" +#include // for XQApplicationManager + +#ifdef BUILD_COMMONCOMMANDHANDLERS +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT +#else +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT +#endif + +//Forward Declaration +class XQAiwRequest; + +class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerCropImage : public GlxModelCommandHandler +{ + +public: + GlxCommandHandlerCropImage(); + ~GlxCommandHandlerCropImage(); + void doHandleUserAction(GlxMediaModel* model,QList indexList) const ; + +private: + mutable XQAiwRequest* mReq; + mutable XQApplicationManager mAppmgr; +}; + + +#endif /* GLXCOMMANDHANDLERCROPIMAGE_H_ */ diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies 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 GLXCOMMANDHANDLERROTATEIMAGE_H_ +#define GLXCOMMANDHANDLERROTATEIMAGE_H_ + + +#include +#include // for XQApplicationManager + +#ifdef BUILD_COMMONCOMMANDHANDLERS +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT +#else +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT +#endif + +//Forward Declaration +class XQAiwRequest; + +class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerRotateImage : public GlxModelCommandHandler +{ + +public: + GlxCommandHandlerRotateImage(); + ~GlxCommandHandlerRotateImage(); + void executeCommand(int commandId,int collectionId, QList indexList = QList() ); + void doHandleUserAction(GlxMediaModel* model,QList indexList) const ; + +private: + XQAiwRequest* mReq; + XQApplicationManager mAppmgr; +}; + + +#endif /* GLXCOMMANDHANDLERROTATEIMAGE_H_ */ diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -88,9 +88,11 @@ connect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) ); HbAction *primary = new HbAction( "New" ); + primary->setObjectName( "Cmd New" ); popup.addAction( primary ) ; HbAction *secondary = new HbAction( GLX_BUTTON_CANCEL ); + secondary->setObjectName( "Cmd Cancel" ); popup.addAction( secondary ); popup.setContentWidget( listview ); //ownership transfer diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -147,15 +147,4 @@ return title; } -void GlxCommandHandlerComment::HandleErrorL(TInt aErrorCode) - { - if(aErrorCode == KErrAlreadyExists) - { - HbMessageBox::warning("Name Already Exist!!!", new HbLabel( - "Rename")); - } - else{ - GlxMpxCommandHandler::HandleErrorL(aErrorCode); - } - } diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,77 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies 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 "glxcommandhandlercropimage.h" + +#include +#include +#include +#include +#include +#include +#include + + +GlxCommandHandlerCropImage::GlxCommandHandlerCropImage() : mReq(NULL) + { + //Nothing to do here for now + } + +GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage() + { + delete mReq; + mReq = NULL; + } + +void GlxCommandHandlerCropImage::doHandleUserAction(GlxMediaModel* model, + QList /*indexList*/) const + { + const QString interface = QLatin1String("com.nokia.symbian.imageeditor"); + const QString operation = QLatin1String("view(QString,int)"); + const QString service = QLatin1String("PhotoEditor"); + + if(mReq == NULL) + { + //Connect to service provider + mReq = mAppmgr.create(service, interface, operation, true); + mReq->setEmbedded(true); + mReq->setSynchronous(true); + } + + if(mReq == NULL) + { + qDebug("QtSamplePhotos::launchPhotoEditor request not Created"); + return; + } + + //Get the file path for the item selected + QString imagePath = (model->data(model->index(model->data(model->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); + + QList args; + args << imagePath; + args << EEditorHighwayFreeCrop; + mReq->setArguments(args); + + // Send the request + bool res = mReq->send(); + if (!res) + { + // Request failed. + qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send"); + } + + } diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -15,10 +15,13 @@ * */ +#include "glxlocalisationstrings.h" + #include #include #include #include + #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxcommandhandlerdeleteTraces.h" @@ -71,7 +74,8 @@ } else { - retString = QString("Delete "); + + retString = GLX_DIALOG_DELETE_ONE_ITEM ; } return retString; } diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -28,6 +28,8 @@ #include #include #include + +#include "glxlocalisationstrings.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxcommandhandlernewmediaTraces.h" @@ -61,12 +63,11 @@ CMPXCollectionPath* path = aMediaList.PathLC(NGlxListDefs::EPathParent); CMPXCommand* command = NULL; - QString title("NEW MEDIA"); - QString mainPane = GenerateNewMediaItemTitleL("Album",aMediaList); + QString mainPane = GenerateNewMediaItemTitleL(GLX_DIALOG_ALBUM_NAME_DEFAULT,aMediaList); bool ok = false; QString mediaTitle = NULL; GlxTextInputDialog* dlg = new GlxTextInputDialog(); - mediaTitle = dlg->getText(title, mainPane, &ok); + mediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok); delete dlg; iNewMediaCreationError = KErrNone; if (ok == true) diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -26,6 +26,7 @@ #include #include #include +#include "glxlocalisationstrings.h" GlxCommandHandlerRename::GlxCommandHandlerRename() { @@ -43,11 +44,10 @@ CMPXCommand* command = NULL; QString mainPane = GetName(aMediaList); - QString title("Rename"); QString mediaTitle = NULL; bool ok = false; GlxTextInputDialog* dlg = new GlxTextInputDialog(); - mediaTitle = dlg->getText(title, mainPane, &ok); + mediaTitle = dlg->getText(GLX_DIALOG_NAME_PROMPT, mainPane, &ok); delete dlg; if(ok == true) diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,91 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#include +#include +#include "glxcommandhandlerrotateimage.h" +#include +#include +#include +#include +#include + +GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage() : mReq(NULL) + { + //Nothing to do here + } + +GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage() + { + delete mReq; + mReq = NULL; + } + +void GlxCommandHandlerRotateImage::executeCommand(int commandId,int collectionId, QList /*indexList*/) +//void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* model,QList indexList) const + { + const QString service = QLatin1String("PhotoEditor"); + const QString interface = QLatin1String("com.nokia.symbian.imageeditor"); + const QString operation = QLatin1String("view(QString,int)"); + + //Connect to service provider + if(mReq == NULL) + { + mReq = mAppmgr.create(service, interface, operation, true); + mReq->setEmbedded(true); + mReq->setSynchronous(true); + } + + if(mReq == NULL) + { + return; + } + + GlxModelParm modelParm (collectionId, 0); + GlxMediaModel* mediaModel = new GlxMediaModel (modelParm); + + //Get the file path for the item selected + QString imagePath = (mediaModel->data(mediaModel->index(mediaModel->data(mediaModel->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); + delete mediaModel; + + QList args; + args << imagePath; + if(EGlxCmdRotateImgCW == commandId) + { + args << EEditorHighwayRotateCW; + } + else // if(EGlxCmdRotateImgCCW == aCommandId) + { + args << EEditorHighwayRotateCCW; + } + mReq->setArguments(args); + + // Send the request + bool res = mReq->send(); + if (!res) + { + // Request failed. + qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send"); + } + } + +void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* /*model*/,QList /*indexList*/) const + { + //Dummy, to keepup with compiler errore + } diff -r d0b4e67b3a60 -r f291796e213d ui/commandhandlers/eabi/glxcommoncommandhandlersu.def --- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Tue Jul 06 14:16:16 2010 +0300 @@ -27,77 +27,93 @@ _ZN23GlxCommandHandlerRotateD0Ev @ 26 NONAME _ZN23GlxCommandHandlerRotateD1Ev @ 27 NONAME _ZN23GlxCommandHandlerRotateD2Ev @ 28 NONAME - _ZN24GlxCommandHandlerComment12HandleErrorLEi @ 29 NONAME - _ZN24GlxCommandHandlerCommentC1Ev @ 30 NONAME - _ZN24GlxCommandHandlerCommentC2Ev @ 31 NONAME - _ZN24GlxCommandHandlerCommentD0Ev @ 32 NONAME - _ZN24GlxCommandHandlerCommentD1Ev @ 33 NONAME - _ZN24GlxCommandHandlerCommentD2Ev @ 34 NONAME - _ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 35 NONAME - _ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 36 NONAME - _ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 37 NONAME - _ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 38 NONAME - _ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 39 NONAME - _ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 40 NONAME DATA 16 - _ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 41 NONAME - _ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 42 NONAME - _ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 43 NONAME - _ZN25GlxCommandHandlerNewMediaC1Ev @ 44 NONAME - _ZN25GlxCommandHandlerNewMediaC2Ev @ 45 NONAME - _ZN25GlxCommandHandlerNewMediaD0Ev @ 46 NONAME - _ZN25GlxCommandHandlerNewMediaD1Ev @ 47 NONAME - _ZN25GlxCommandHandlerNewMediaD2Ev @ 48 NONAME - _ZN27GlxCommandHandlerRemoveFromC1Ev @ 49 NONAME - _ZN27GlxCommandHandlerRemoveFromC2Ev @ 50 NONAME - _ZN27GlxCommandHandlerRemoveFromD0Ev @ 51 NONAME - _ZN27GlxCommandHandlerRemoveFromD1Ev @ 52 NONAME - _ZN27GlxCommandHandlerRemoveFromD2Ev @ 53 NONAME - _ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 54 NONAME DATA 4 - _ZN31GlxCommandHandlerAddToContainerC1Ev @ 55 NONAME - _ZN31GlxCommandHandlerAddToContainerC2Ev @ 56 NONAME - _ZN31GlxCommandHandlerAddToContainerD0Ev @ 57 NONAME - _ZN31GlxCommandHandlerAddToContainerD1Ev @ 58 NONAME - _ZN31GlxCommandHandlerAddToContainerD2Ev @ 59 NONAME - _ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 60 NONAME - _ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 61 NONAME - _ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 62 NONAME - _ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 63 NONAME - _ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 64 NONAME - _ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 65 NONAME - _ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 66 NONAME - _ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 67 NONAME - _ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 68 NONAME - _ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME - _ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 70 NONAME - _ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 71 NONAME - _ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 72 NONAME - _ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 73 NONAME - _ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 74 NONAME - _ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 75 NONAME - _ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 76 NONAME - _ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 77 NONAME - _ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME - _ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 79 NONAME - _ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 80 NONAME - _ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 81 NONAME - _ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 82 NONAME - _ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 83 NONAME - _ZTI21GlxCommandHandlerSend @ 84 NONAME - _ZTI23GlxCommandHandlerDelete @ 85 NONAME - _ZTI23GlxCommandHandlerRename @ 86 NONAME - _ZTI23GlxCommandHandlerRotate @ 87 NONAME - _ZTI24GlxCommandHandlerComment @ 88 NONAME - _ZTI25GlxCommandHandlerNewMedia @ 89 NONAME - _ZTI27GlxCommandHandlerRemoveFrom @ 90 NONAME - _ZTI31GlxCommandHandlerAddToContainer @ 91 NONAME - _ZTV21GlxCommandHandlerSend @ 92 NONAME - _ZTV23GlxCommandHandlerDelete @ 93 NONAME - _ZTV23GlxCommandHandlerRename @ 94 NONAME - _ZTV23GlxCommandHandlerRotate @ 95 NONAME - _ZTV24GlxCommandHandlerComment @ 96 NONAME - _ZTV25GlxCommandHandlerNewMedia @ 97 NONAME - _ZTV27GlxCommandHandlerRemoveFrom @ 98 NONAME - _ZTV31GlxCommandHandlerAddToContainer @ 99 NONAME - _ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 100 NONAME - _ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 101 NONAME + _ZN24GlxCommandHandlerCommentC1Ev @ 29 NONAME + _ZN24GlxCommandHandlerCommentC2Ev @ 30 NONAME + _ZN24GlxCommandHandlerCommentD0Ev @ 31 NONAME + _ZN24GlxCommandHandlerCommentD1Ev @ 32 NONAME + _ZN24GlxCommandHandlerCommentD2Ev @ 33 NONAME + _ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 34 NONAME + _ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 35 NONAME + _ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 36 NONAME + _ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 37 NONAME + _ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 38 NONAME + _ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 39 NONAME DATA 16 + _ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 40 NONAME + _ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 41 NONAME + _ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 42 NONAME + _ZN25GlxCommandHandlerNewMediaC1Ev @ 43 NONAME + _ZN25GlxCommandHandlerNewMediaC2Ev @ 44 NONAME + _ZN25GlxCommandHandlerNewMediaD0Ev @ 45 NONAME + _ZN25GlxCommandHandlerNewMediaD1Ev @ 46 NONAME + _ZN25GlxCommandHandlerNewMediaD2Ev @ 47 NONAME + _ZN26GlxCommandHandlerCropImageC1Ev @ 48 NONAME + _ZN26GlxCommandHandlerCropImageC2Ev @ 49 NONAME + _ZN26GlxCommandHandlerCropImageD0Ev @ 50 NONAME + _ZN26GlxCommandHandlerCropImageD1Ev @ 51 NONAME + _ZN26GlxCommandHandlerCropImageD2Ev @ 52 NONAME + _ZN27GlxCommandHandlerRemoveFromC1Ev @ 53 NONAME + _ZN27GlxCommandHandlerRemoveFromC2Ev @ 54 NONAME + _ZN27GlxCommandHandlerRemoveFromD0Ev @ 55 NONAME + _ZN27GlxCommandHandlerRemoveFromD1Ev @ 56 NONAME + _ZN27GlxCommandHandlerRemoveFromD2Ev @ 57 NONAME + _ZN28GlxCommandHandlerRotateImage14executeCommandEii5QListI11QModelIndexE @ 58 NONAME + _ZN28GlxCommandHandlerRotateImageC1Ev @ 59 NONAME + _ZN28GlxCommandHandlerRotateImageC2Ev @ 60 NONAME + _ZN28GlxCommandHandlerRotateImageD0Ev @ 61 NONAME + _ZN28GlxCommandHandlerRotateImageD1Ev @ 62 NONAME + _ZN28GlxCommandHandlerRotateImageD2Ev @ 63 NONAME + _ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 64 NONAME DATA 4 + _ZN31GlxCommandHandlerAddToContainerC1Ev @ 65 NONAME + _ZN31GlxCommandHandlerAddToContainerC2Ev @ 66 NONAME + _ZN31GlxCommandHandlerAddToContainerD0Ev @ 67 NONAME + _ZN31GlxCommandHandlerAddToContainerD1Ev @ 68 NONAME + _ZN31GlxCommandHandlerAddToContainerD2Ev @ 69 NONAME + _ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 70 NONAME + _ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 71 NONAME + _ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME + _ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 73 NONAME + _ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 74 NONAME + _ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 75 NONAME + _ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 76 NONAME + _ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 77 NONAME + _ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME + _ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 79 NONAME + _ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 80 NONAME + _ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 81 NONAME + _ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 82 NONAME + _ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 83 NONAME + _ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 84 NONAME + _ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 85 NONAME + _ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 86 NONAME + _ZNK26GlxCommandHandlerCropImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 87 NONAME + _ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 88 NONAME + _ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 89 NONAME + _ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 90 NONAME + _ZNK28GlxCommandHandlerRotateImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 91 NONAME + _ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 92 NONAME + _ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 93 NONAME + _ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 94 NONAME + _ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 95 NONAME + _ZTI21GlxCommandHandlerSend @ 96 NONAME + _ZTI23GlxCommandHandlerDelete @ 97 NONAME + _ZTI23GlxCommandHandlerRename @ 98 NONAME + _ZTI23GlxCommandHandlerRotate @ 99 NONAME + _ZTI24GlxCommandHandlerComment @ 100 NONAME + _ZTI25GlxCommandHandlerNewMedia @ 101 NONAME + _ZTI26GlxCommandHandlerCropImage @ 102 NONAME + _ZTI27GlxCommandHandlerRemoveFrom @ 103 NONAME + _ZTI28GlxCommandHandlerRotateImage @ 104 NONAME + _ZTI31GlxCommandHandlerAddToContainer @ 105 NONAME + _ZTV21GlxCommandHandlerSend @ 106 NONAME + _ZTV23GlxCommandHandlerDelete @ 107 NONAME + _ZTV23GlxCommandHandlerRename @ 108 NONAME + _ZTV23GlxCommandHandlerRotate @ 109 NONAME + _ZTV24GlxCommandHandlerComment @ 110 NONAME + _ZTV25GlxCommandHandlerNewMedia @ 111 NONAME + _ZTV26GlxCommandHandlerCropImage @ 112 NONAME + _ZTV27GlxCommandHandlerRemoveFrom @ 113 NONAME + _ZTV28GlxCommandHandlerRotateImage @ 114 NONAME + _ZTV31GlxCommandHandlerAddToContainer @ 115 NONAME + _ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 116 NONAME + _ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 117 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro --- a/ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro Tue Jul 06 14:16:16 2010 +0300 @@ -46,6 +46,7 @@ TARGET.UID3 = 0x200071B9 TARGET.EPOCALLOWDLLDATA = 1 TARGET.CAPABILITY = CAP_GENERAL_DLL + MMP_RULES += SMPSAFE LIBS += -lbafl } diff -r d0b4e67b3a60 -r f291796e213d ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro --- a/ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro Tue Jul 06 14:16:16 2010 +0300 @@ -49,6 +49,8 @@ TARGET.UID3 = 0x2000A774 TARGET.EPOCALLOWDLLDATA=1 TARGET.CAPABILITY = CAP_GENERAL_DLL + MMP_RULES += SMPSAFE + LIBS += \ -ldetailsdescriptionedit.dll diff -r d0b4e67b3a60 -r f291796e213d ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro --- a/ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro Tue Jul 06 14:16:16 2010 +0300 @@ -45,6 +45,8 @@ TARGET.UID3 = 0x2000A7BC TARGET.EPOCALLOWDLLDATA = 1 TARGET.CAPABILITY = CAP_GENERAL_DLL + MMP_RULES += SMPSAFE + LIBS += -lbafl } diff -r d0b4e67b3a60 -r f291796e213d ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro --- a/ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro Tue Jul 06 14:16:16 2010 +0300 @@ -49,6 +49,8 @@ TARGET.UID3 = 0x200071B7 TARGET.EPOCALLOWDLLDATA=1 TARGET.CAPABILITY = CAP_GENERAL_DLL + MMP_RULES += SMPSAFE + LIBS += \ -ldetailsnamelabel.dll diff -r d0b4e67b3a60 -r f291796e213d ui/inc/glxcommandhandlers.hrh --- a/ui/inc/glxcommandhandlers.hrh Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/inc/glxcommandhandlers.hrh Tue Jul 06 14:16:16 2010 +0300 @@ -116,6 +116,9 @@ EGlxCmdContextRename, EGlxCmdSetupItem, EGlxCmdComment, + EGlxCmdRotateImgCW, + EGlxCmdRotateImgCCW, + EGlxCmdRotateImgCrop, EGlxCmdAiwBase = 0x6000 }; diff -r d0b4e67b3a60 -r f291796e213d ui/inc/glxmodelroles.h --- a/ui/inc/glxmodelroles.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/inc/glxmodelroles.h Tue Jul 06 14:16:16 2010 +0300 @@ -44,7 +44,8 @@ GlxTimeRole, //to get the time image was modified GlxSizeRole, //to get the size of the image GlxDescRole, //to get the description of the images - GlxRemoveContextRole //to remove the context + GlxRemoveContextRole, //to remove the context + GlxTempVisualWindowIndex //to store the visual index obtained from AM temporarily }; diff -r d0b4e67b3a60 -r f291796e213d ui/inc/glxuistd.h --- a/ui/inc/glxuistd.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/inc/glxuistd.h Tue Jul 06 14:16:16 2010 +0300 @@ -60,6 +60,7 @@ FLIP_EFFECT, SMOOTH_FADE, ZOOM_TO_FACE, + HELIX_EFFECT, TRANSITION_EFFECT, FADE_EFFECT, GRID_TO_FULLSCREEN, @@ -128,5 +129,9 @@ // video playback view UID const TInt KGlxVideoPlaybackviewPlugin = 0x2000A7B3; +//Constants for ci_photos.confml +const TUint32 KGlxCi_UidGallery = 0x20007193; +const TInt KGlxOperatorLink = 0x1; +const TInt KGlxOvi = 0x2; #endif // GLXUISTD_H diff -r d0b4e67b3a60 -r f291796e213d ui/inc/glxviewids.h --- a/ui/inc/glxviewids.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/inc/glxviewids.h Tue Jul 06 14:16:16 2010 +0300 @@ -28,26 +28,42 @@ #define GLX_SLIDESHOWSETTINGSVIEW_ID 0x12121217 +/* + * For the non ui component, only sub state is expose in the model + * so it is required to have unique substrate of states + * Add the new sub state in between NO and Max + * and take care uniqueness of all these substrate + */ typedef enum { - NO_GRID_S, + NO_GRID_S = 0, ALL_ITEM_S, - ALBUM_ITEM_S, + ALBUM_ITEM_S, + MAX_GRID_S } GridState; typedef enum { - NO_FULLSCREEN_S, + NO_FULLSCREEN_S = MAX_GRID_S + 1, EXTERNAL_S, IMAGEVIEWER_S, - FETCHER_S + FETCHER_S, + MAX_FULLSCREEN_S } FullScreenState; typedef enum { - NO_SLIDESHOW_S, + NO_SLIDESHOW_S = MAX_FULLSCREEN_S + 1, SLIDESHOW_GRID_ITEM_S, SLIDESHOW_ALBUM_ITEM_S, + MAX_SLIDESHOW_S } SlideShowState; +typedef enum +{ + NO_DETAIL_S = MAX_SLIDESHOW_S + 1, + IMAGEVIEWER_DETAIL_S, + MAX_DETAIL_S +} DetailState; + #endif /* GLXVIEWIDS_H */ diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/bwins/glxdrmutilitywrapperu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/bwins/glxdrmutilitywrapperu.def Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,7 @@ +EXPORTS + ??1GlxDRMUtilityWrapper@@QAE@XZ @ 1 NONAME ; GlxDRMUtilityWrapper::~GlxDRMUtilityWrapper(void) + ?ItemRightsValidityCheck@GlxDRMUtilityWrapper@@QAE_NVQString@@_N@Z @ 2 NONAME ; bool GlxDRMUtilityWrapper::ItemRightsValidityCheck(class QString, bool) + ??0GlxDRMUtilityWrapper@@QAE@XZ @ 3 NONAME ; GlxDRMUtilityWrapper::GlxDRMUtilityWrapper(void) + ?ConsumeRights@GlxDRMUtilityWrapper@@QAE_NVQString@@@Z @ 4 NONAME ; bool GlxDRMUtilityWrapper::ConsumeRights(class QString) + ?ShowRightsInfo@GlxDRMUtilityWrapper@@QAEXVQString@@@Z @ 5 NONAME ; void GlxDRMUtilityWrapper::ShowRightsInfo(class QString) + diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/bwins/glxmedialistwrapperu.def --- a/ui/uiengine/bwins/glxmedialistwrapperu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/bwins/glxmedialistwrapperu.def Tue Jul 06 14:16:16 2010 +0300 @@ -54,4 +54,7 @@ ?removeContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 53 NONAME ; void GlxMLWrapper::removeContextMode(enum GlxContextMode) ?updateDetails@GlxMLWrapper@@IAEXXZ @ 54 NONAME ; void GlxMLWrapper::updateDetails(void) ?handleDetailsItemAvailable@GlxMLWrapper@@QAEXH@Z @ 55 NONAME ; void GlxMLWrapper::handleDetailsItemAvailable(int) + ?setDrmValid@GlxMLWrapper@@QAEXH_N@Z @ 56 NONAME ; void GlxMLWrapper::setDrmValid(int, bool) + ?IsDrmProtected@GlxMLWrapper@@QAE_NH@Z @ 57 NONAME ; bool GlxMLWrapper::IsDrmProtected(int) + ?IsDrmValid@GlxMLWrapper@@QAE_NH@Z @ 58 NONAME ; bool GlxMLWrapper::IsDrmValid(int) diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutility/bwins/glxdrmutilityu.def --- a/ui/uiengine/drmutility/bwins/glxdrmutilityu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/drmutility/bwins/glxdrmutilityu.def Tue Jul 06 14:16:16 2010 +0300 @@ -1,15 +1,21 @@ EXPORTS - ?CanSetAsAutomatedL@CGlxDRMUtility@@QAEHABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 1 NONAME ; int CGlxDRMUtility::CanSetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) - ?CanShowInfoOnlineL@CGlxDRMUtility@@QAEHAAVTDesC16@@@Z @ 2 NONAME ; int CGlxDRMUtility::CanShowInfoOnlineL(class TDesC16 &) - ?CheckDisplayRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 3 NONAME ; int CGlxDRMUtility::CheckDisplayRightsL(class TDesC16 const &, int) - ?CheckOpenRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 4 NONAME ; int CGlxDRMUtility::CheckOpenRightsL(class TDesC16 const &, int) - ?Close@CGlxDRMUtility@@QAEXXZ @ 5 NONAME ; void CGlxDRMUtility::Close(void) - ?ConsumeRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 6 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class TDesC16 const &) - ?DRMThumbnailSize@CGlxDRMUtility@@QAE?AVTSize@@AAV2@@Z @ 7 NONAME ; class TSize CGlxDRMUtility::DRMThumbnailSize(class TSize &) - ?InstanceL@CGlxDRMUtility@@SAPAV1@XZ @ 8 NONAME ; class CGlxDRMUtility * CGlxDRMUtility::InstanceL(void) - ?IsForwardLockedL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 9 NONAME ; int CGlxDRMUtility::IsForwardLockedL(class TDesC16 const &) - ?SetAsAutomatedL@CGlxDRMUtility@@QAEXABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 10 NONAME ; void CGlxDRMUtility::SetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) - ?ShowDRMDetailsPaneL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 11 NONAME ; void CGlxDRMUtility::ShowDRMDetailsPaneL(class TDesC16 const &) - ?ShowInfoOnlineL@CGlxDRMUtility@@QAEXAAVTDesC16@@@Z @ 12 NONAME ; void CGlxDRMUtility::ShowInfoOnlineL(class TDesC16 &) - ?ShowRightsInfoL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 13 NONAME ; void CGlxDRMUtility::ShowRightsInfoL(class TDesC16 const &) + ?InstanceL@CGlxDRMUtility@@SAPAV1@XZ @ 1 NONAME ; class CGlxDRMUtility * CGlxDRMUtility::InstanceL(void) + ?ShowDRMDetailsPaneL@CGlxDRMUtility@@QAEXAAVRFile@@@Z @ 2 NONAME ; void CGlxDRMUtility::ShowDRMDetailsPaneL(class RFile &) + ?ShowRightsInfoL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 3 NONAME ; void CGlxDRMUtility::ShowRightsInfoL(class TDesC16 const &) + ?DRMThumbnailSize@CGlxDRMUtility@@QAE?AVTSize@@AAV2@@Z @ 4 NONAME ; class TSize CGlxDRMUtility::DRMThumbnailSize(class TSize &) + ?ItemRightsValidityCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 5 NONAME ; int CGlxDRMUtility::ItemRightsValidityCheckL(class TDesC16 const &, int) + ?ClearLastConsumedItemUriL@CGlxDRMUtility@@QAEXXZ @ 6 NONAME ; void CGlxDRMUtility::ClearLastConsumedItemUriL(void) + ?DisplayItemRightsCheckL@CGlxDRMUtility@@QAEHAAVRFile@@H@Z @ 7 NONAME ; int CGlxDRMUtility::DisplayItemRightsCheckL(class RFile &, int) + ?ShowRightsInfoL@CGlxDRMUtility@@QAEXAAVRFile@@@Z @ 8 NONAME ; void CGlxDRMUtility::ShowRightsInfoL(class RFile &) + ?CanShowInfoOnlineL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 9 NONAME ; int CGlxDRMUtility::CanShowInfoOnlineL(class TDesC16 const &) + ?Close@CGlxDRMUtility@@QAEXXZ @ 10 NONAME ; void CGlxDRMUtility::Close(void) + ?SetAsAutomatedL@CGlxDRMUtility@@QAEXABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 11 NONAME ; void CGlxDRMUtility::SetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) + ?CanSetAsAutomatedL@CGlxDRMUtility@@QAEHABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 12 NONAME ; int CGlxDRMUtility::CanSetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType) + ?ConsumeRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 13 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class TDesC16 const &) + ?IsForwardLockedL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 14 NONAME ; int CGlxDRMUtility::IsForwardLockedL(class TDesC16 const &) + ?DisplayItemRightsCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 15 NONAME ; int CGlxDRMUtility::DisplayItemRightsCheckL(class TDesC16 const &, int) + ?ItemRightsValidityCheckL@CGlxDRMUtility@@QAEHAAVRFile@@H@Z @ 16 NONAME ; int CGlxDRMUtility::ItemRightsValidityCheckL(class RFile &, int) + ?ShowDRMDetailsPaneL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 17 NONAME ; void CGlxDRMUtility::ShowDRMDetailsPaneL(class TDesC16 const &) + ?ShowInfoOnlineL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 18 NONAME ; void CGlxDRMUtility::ShowInfoOnlineL(class TDesC16 const &) + ?ConsumeRightsL@CGlxDRMUtility@@QAEHAAVRFile@@@Z @ 19 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class RFile &) diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutility/eabi/glxdrmutilityu.def --- a/ui/uiengine/drmutility/eabi/glxdrmutilityu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/drmutility/eabi/glxdrmutilityu.def Tue Jul 06 14:16:16 2010 +0300 @@ -1,15 +1,21 @@ EXPORTS - _ZN14CGlxDRMUtility14ConsumeRightsLERK7TDesC16 @ 1 NONAME - _ZN14CGlxDRMUtility15SetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 2 NONAME - _ZN14CGlxDRMUtility15ShowInfoOnlineLER7TDesC16 @ 3 NONAME - _ZN14CGlxDRMUtility15ShowRightsInfoLERK7TDesC16 @ 4 NONAME - _ZN14CGlxDRMUtility16CheckOpenRightsLERK7TDesC16i @ 5 NONAME - _ZN14CGlxDRMUtility16DRMThumbnailSizeER5TSize @ 6 NONAME - _ZN14CGlxDRMUtility16IsForwardLockedLERK7TDesC16 @ 7 NONAME - _ZN14CGlxDRMUtility18CanSetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 8 NONAME - _ZN14CGlxDRMUtility18CanShowInfoOnlineLER7TDesC16 @ 9 NONAME - _ZN14CGlxDRMUtility19CheckDisplayRightsLERK7TDesC16i @ 10 NONAME - _ZN14CGlxDRMUtility19ShowDRMDetailsPaneLERK7TDesC16 @ 11 NONAME - _ZN14CGlxDRMUtility5CloseEv @ 12 NONAME - _ZN14CGlxDRMUtility9InstanceLEv @ 13 NONAME + _ZN14CGlxDRMUtility14ConsumeRightsLER5RFile @ 1 NONAME + _ZN14CGlxDRMUtility14ConsumeRightsLERK7TDesC16 @ 2 NONAME + _ZN14CGlxDRMUtility15SetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 3 NONAME + _ZN14CGlxDRMUtility15ShowInfoOnlineLERK7TDesC16 @ 4 NONAME + _ZN14CGlxDRMUtility15ShowRightsInfoLER5RFile @ 5 NONAME + _ZN14CGlxDRMUtility15ShowRightsInfoLERK7TDesC16 @ 6 NONAME + _ZN14CGlxDRMUtility16DRMThumbnailSizeER5TSize @ 7 NONAME + _ZN14CGlxDRMUtility16IsForwardLockedLERK7TDesC16 @ 8 NONAME + _ZN14CGlxDRMUtility18CanSetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 9 NONAME + _ZN14CGlxDRMUtility18CanShowInfoOnlineLERK7TDesC16 @ 10 NONAME + _ZN14CGlxDRMUtility19ShowDRMDetailsPaneLER5RFile @ 11 NONAME + _ZN14CGlxDRMUtility19ShowDRMDetailsPaneLERK7TDesC16 @ 12 NONAME + _ZN14CGlxDRMUtility23DisplayItemRightsCheckLER5RFilei @ 13 NONAME + _ZN14CGlxDRMUtility23DisplayItemRightsCheckLERK7TDesC16i @ 14 NONAME + _ZN14CGlxDRMUtility24ItemRightsValidityCheckLER5RFilei @ 15 NONAME + _ZN14CGlxDRMUtility24ItemRightsValidityCheckLERK7TDesC16i @ 16 NONAME + _ZN14CGlxDRMUtility25ClearLastConsumedItemUriLEv @ 17 NONAME + _ZN14CGlxDRMUtility5CloseEv @ 18 NONAME + _ZN14CGlxDRMUtility9InstanceLEv @ 19 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutility/group/glxdrmutility.mmp --- a/ui/uiengine/drmutility/group/glxdrmutility.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/drmutility/group/glxdrmutility.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -44,4 +44,5 @@ LIBRARY caf.lib LIBRARY cafutils.lib +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutility/inc/glxdrmutility.h --- a/ui/uiengine/drmutility/inc/glxdrmutility.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/drmutility/inc/glxdrmutility.h Tue Jul 06 14:16:16 2010 +0300 @@ -11,7 +11,7 @@ * * Contributors: * -* Description: DRM utility implementation +* Description: DRM utility implementation * */ @@ -28,7 +28,7 @@ // INCLUDES #include - +#include // FORWARD DECLARATIONS class CDRMHelper; @@ -82,23 +82,47 @@ /** * Check whether DRM rights are valid for specified item - * + * is called before right is consumed and for all items (focused or unfocused). + * * @param aUri URI of the media item. * @param aCheckViewRights, check view rights if true, play if false * @return ETrue if valid rights exist for the media item. */ - IMPORT_C TBool CheckOpenRightsL(const TDesC& aUri, TBool aCheckViewRights); + IMPORT_C TBool ItemRightsValidityCheckL(const TDesC& aUri, TBool aCheckViewRights); + + /** + * Check whether DRM rights are valid for specified item + * is called before right is consumed and for all items (focused or unfocused). + * + * @param filehandle of the media item. + * @param aCheckViewRights, check view rights if true, play if false + * @return ETrue if valid rights exist for the media item. + */ + IMPORT_C TBool ItemRightsValidityCheckL(RFile& aFileHandle, TBool aCheckViewRights); /** * Check whether DRM rights are valid for specified item * If the rights were just consumed, then allow to display * Otherwise, obtain current rights - * + * is called after right is consumed and for only focused/displayed item. + * * @param aUri URI of the media item. * @param aCheckViewRights, check view rights if true, play if false * @return ETrue if valid rights exist for the media item. */ - IMPORT_C TBool CheckDisplayRightsL(const TDesC& aUri, TBool aCheckViewRights); + IMPORT_C TBool DisplayItemRightsCheckL(const TDesC& aUri, TBool aCheckViewRights); + + /** + * Check whether DRM rights are valid for specified item + * If the rights were just consumed, then allow to display + * Otherwise, obtain current rights + * is called after right is consumed and for only focused/displayed item. + * + * @param filehandle of the media item. + * @param aCheckViewRights, check view rights if true, play if false + * @return ETrue if valid rights exist for the media item. + */ + IMPORT_C TBool DisplayItemRightsCheckL(RFile& aFileHandle, TBool aCheckViewRights); /** * Consume rights for specified item @@ -109,7 +133,19 @@ */ IMPORT_C TBool ConsumeRightsL(const TDesC& aUri); - + /** + * Consume rights for specified item + * Caches item so that a client has right to display the item + * + * @param Filehandle for item + * @return ETrue to no error in rights consumption + */ + IMPORT_C TBool ConsumeRightsL(RFile& aFileHandle); + + /** + * Clears Last Consumed Uri + */ + IMPORT_C void ClearLastConsumedItemUriL(); /** * Test whether a media item is OMA DRM 2.0 protected and has an associated @@ -117,13 +153,13 @@ * @param aUri URI of the media item. * @return ETrue if it does. */ - IMPORT_C TBool CanShowInfoOnlineL(TDesC& aUri); + IMPORT_C TBool CanShowInfoOnlineL(const TDesC& aUri); /** * Open the associated info URL for a media item in the browser. * @param aUri URI of the media item. */ - IMPORT_C void ShowInfoOnlineL(TDesC& aUri); + IMPORT_C void ShowInfoOnlineL(const TDesC& aUri); /** * Test whether a media item can be set as automated content. * @@ -147,6 +183,12 @@ IMPORT_C void ShowDRMDetailsPaneL(const TDesC& aUri); /** + * Show DRM details for specified item. + * @param Filehandle of the media item. + */ + IMPORT_C void ShowDRMDetailsPaneL(RFile& aFileHandle); + + /** * Ask DRM manager if file is forward locked */ IMPORT_C TBool IsForwardLockedL(const TDesC& aUri); @@ -158,6 +200,12 @@ IMPORT_C void ShowRightsInfoL(const TDesC& aUri); /** + * Show rights info + * @param filehandle of the media item. + */ + IMPORT_C void ShowRightsInfoL(RFile& aFileHandle); + + /** * Get size of thumbnail to be requested for DRM invalid item * @param aSize size of image * @return suggested thumbnail size (1/4 of original size) diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutility/src/glxdrmutility.cpp --- a/ui/uiengine/drmutility/src/glxdrmutility.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/drmutility/src/glxdrmutility.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -34,6 +34,7 @@ #include #include #include +#include "glxtracer.h" const TInt KGlxDRMThumbnailHeight = 120; const TInt KGlxDRMThumbnailWidth = 90; @@ -63,9 +64,10 @@ //============================================================================ EXPORT_C CGlxDRMUtility* CGlxDRMUtility::InstanceL() { + TRACER("CGlxDRMUtility::InstanceL()"); CGlxDrmTls* tls = reinterpret_cast(Dll::Tls()); - if(tls==NULL) + if ( !tls ) { CGlxDRMUtility* drmutil = new(ELeave)CGlxDRMUtility(); CleanupStack::PushL(drmutil); @@ -88,9 +90,10 @@ //============================================================================ EXPORT_C void CGlxDRMUtility::Close() { + TRACER("CGlxDRMUtility::Close()"); CGlxDrmTls* tls = reinterpret_cast(Dll::Tls()); - if (tls != NULL) + if ( tls ) { tls->iRefCount--; @@ -110,23 +113,34 @@ //============================================================================ CGlxDRMUtility::~CGlxDRMUtility() { + TRACER("CGlxDRMUtility::~CGlxDRMUtility()"); delete iCManager; delete iDrmHelper; delete iLastConsumedItemUri; } //============================================================================ -// CheckOpenRightsL -//============================================================================ -EXPORT_C TBool CGlxDRMUtility::CheckOpenRightsL( const TDesC& aUri, +// ItemRightsValidityCheckL +// for checking DRM rights validity for item. +// is called before right is consumed and for all items (focused or unfocused). +//============================================================================ +EXPORT_C TBool CGlxDRMUtility::ItemRightsValidityCheckL( const TDesC& aUri, TBool aCheckViewRights ) { - // When checking current rights for a URI, clear stored URI - TPtr ptr = iLastConsumedItemUri->Des(); - ptr.Zero(); - iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( 0 ); + TRACER("CGlxDRMUtility::ItemRightsValidityCheckL()"); + // When checking current rights for a URI - TBool rightsValid = EFalse; + //Allow to Open if rights for a URI was just consumed (i.e. same as stored URI) + if ( iLastConsumedItemUri->Length() > 0 ) + { + if ( aUri.CompareF( *iLastConsumedItemUri ) == 0 ) + { + return ETrue; + } + } + + //Else for uri of non-focused uri, just check validity rights + TInt rightsValid = 0; TVirtualPathPtr path( aUri, KDefaultContentObject() ); ContentAccess::TAttribute attr = @@ -139,11 +153,31 @@ } //============================================================================ -// CheckDisplayRightsL -//============================================================================ -EXPORT_C TBool CGlxDRMUtility::CheckDisplayRightsL( const TDesC& aUri, +// ItemRightsValidityCheckL +// for checking DRM rights validity for item. +// is called before right is consumed and for all items (focused or unfocused). +//============================================================================ +EXPORT_C TBool CGlxDRMUtility::ItemRightsValidityCheckL( RFile& aFileHandle, + TBool /*aCheckViewRights*/ ) + { + TRACER("CGlxDRMUtility::ItemRightsValidityCheckL()"); + TBool rightsValid = EFalse; + + ContentAccess::CContent* content = ContentAccess::CContent::NewLC( aFileHandle ); + content->GetAttribute( ContentAccess::ECanView, rightsValid ); + CleanupStack::PopAndDestroy( content ); + return rightsValid; + } + +//============================================================================ +// DisplayItemRightsCheckL +// is called after right is consumed and for only focused/displayed item. +//============================================================================ +EXPORT_C TBool CGlxDRMUtility::DisplayItemRightsCheckL( const TDesC& aUri, TBool aCheckViewRights ) { + TRACER("CGlxDRMUtility::DisplayItemRightsCheckL()"); + // Allow to display if rights for a URI was just consumed (i.e. same as stored URI) if ( iLastConsumedItemUri->Length() > 0 ) { @@ -153,32 +187,48 @@ } } - // Otherwise, check current rights for the URI - return CheckOpenRightsL( aUri, aCheckViewRights ); + //Clear the stored uri since focus has changed + ClearLastConsumedItemUriL(); + + // Otherwise, check current rights for the URI of newly focused item + return ItemRightsValidityCheckL( aUri, aCheckViewRights ); } //============================================================================ +// DisplayItemRightsCheckL +// is called after right is consumed and for only focused/displayed item. +//============================================================================ +EXPORT_C TBool CGlxDRMUtility::DisplayItemRightsCheckL( RFile& aFileHandle, + TBool aCheckViewRights ) + { + TRACER("CGlxDRMUtility::DisplayItemRightsCheckL()"); + // Otherwise, check current rights for the URI of newly focused item + return ItemRightsValidityCheckL( aFileHandle, aCheckViewRights ); + } + + +//============================================================================ // ConsumeRightsL //============================================================================ EXPORT_C TBool CGlxDRMUtility::ConsumeRightsL(const TDesC& aUri) { + TRACER("CGlxDRMUtility::ConsumeRightsL()"); TVirtualPathPtr path( aUri, KDefaultContentObject() ); // Create a CData object to read the content // Tell the agent we are planning to display the content CData* data = CData::NewLC(path, ContentAccess::EView, EContentShareReadOnly); - // When consuming rights for a URI, clear stored URI - TPtr oldPtr = iLastConsumedItemUri->Des(); - oldPtr.Zero(); - iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( aUri.Length() ); + //When consuming rights for a URI, clear stored URI + ClearLastConsumedItemUriL(); // Execute the intent, tell the agent that we plan to display the content // It is at this point that any stateful rights will be decremented TInt err = data->ExecuteIntent(ContentAccess::EView); if ( err == KErrNone ) { - // Update stored URI + //Update stored URI + iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( aUri.Length() ); TPtr newPtr = iLastConsumedItemUri->Des(); newPtr.Copy( aUri ); } @@ -188,16 +238,41 @@ return (err == KErrNone); } + +//============================================================================ +// ConsumeRightsL +//============================================================================ +EXPORT_C TBool CGlxDRMUtility::ConsumeRightsL(RFile& aFileHandle) + { + TRACER("CGlxDRMUtility::ConsumeRightsL(RFile& aFileHandle)"); + CData* data = CData::NewLC( aFileHandle, KDefaultContentObject(), EPeek ); + TInt err = data->ExecuteIntent(ContentAccess::EView); + CleanupStack::PopAndDestroy( data ); + return (err == KErrNone); + } + +//============================================================================ +//Clears Last Consumed Uri +//============================================================================ +EXPORT_C void CGlxDRMUtility::ClearLastConsumedItemUriL() + { + //clears the stored uri + TPtr ptr = iLastConsumedItemUri->Des(); + ptr.Zero(); + iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( 0 ); + } + //============================================================================ // Test whether a media item is OMA DRM 2.0 protected and has an associated // info URL. //============================================================================ -EXPORT_C TBool CGlxDRMUtility::CanShowInfoOnlineL(TDesC& aUri) +EXPORT_C TBool CGlxDRMUtility::CanShowInfoOnlineL(const TDesC& aUri) { + TRACER("CGlxDRMUtility::CanShowInfoOnlineL()"); TBool canShowInfoOnline = EFalse; HBufC8* urlBuf = NULL; - canShowInfoOnline = iDrmHelper->HasInfoUrlL(aUri, urlBuf); + canShowInfoOnline = iDrmHelper->HasInfoUrlL( const_cast(aUri) , urlBuf); // discard buf we don't need it delete urlBuf; @@ -208,9 +283,10 @@ //============================================================================ // Open the associated info URL for a media item in the browser. //============================================================================ -EXPORT_C void CGlxDRMUtility::ShowInfoOnlineL(TDesC& aUri) +EXPORT_C void CGlxDRMUtility::ShowInfoOnlineL(const TDesC& aUri) { - iDrmHelper->OpenInfoUrlL(aUri); + TRACER("CGlxDRMUtility::ShowInfoOnlineL()"); + iDrmHelper->OpenInfoUrlL( const_cast(aUri) ); } //============================================================================ @@ -219,6 +295,7 @@ EXPORT_C TBool CGlxDRMUtility::CanSetAsAutomatedL(const TDesC& aUri, TGlxDrmAutomatedType aType) { + TRACER("CGlxDRMUtility::CanSetAsAutomatedL()"); TBool canSetAutomated = EFalse; switch(aType) { @@ -240,6 +317,7 @@ EXPORT_C void CGlxDRMUtility::SetAsAutomatedL(const TDesC& aUri, TGlxDrmAutomatedType aType) { + TRACER("CGlxDRMUtility::SetAsAutomatedL()"); switch(aType) { case EGlxDrmAutomatedTypeWallpaper: @@ -266,8 +344,9 @@ //============================================================================ EXPORT_C void CGlxDRMUtility::ShowDRMDetailsPaneL( const TDesC& aUri ) { + TRACER("CGlxDRMUtility::ShowDRMDetailsPaneL()"); TRAPD( err, iDrmHelper->LaunchDetailsViewEmbeddedL( aUri ) ); - // if no rights ask user to re-activate? + // if no rights ask user to re-activate if( err == KErrCANoRights ) { HBufC* buf = aUri.AllocLC(); @@ -278,10 +357,26 @@ } //============================================================================ +// ShowDRMDetailsPane +//============================================================================ +EXPORT_C void CGlxDRMUtility::ShowDRMDetailsPaneL(RFile& aFileHandle) + { + TRACER("CGlxDRMUtility::ShowDRMDetailsPaneL()"); + TRAPD( err, iDrmHelper->LaunchDetailsViewEmbeddedL( aFileHandle ) ); + // if no rights ask user to re-activate + if( err == KErrCANoRights ) + { + //need to check if we need to handle. + } + + } + +//============================================================================ // IsForwardLockedL //============================================================================ EXPORT_C TBool CGlxDRMUtility::IsForwardLockedL(const TDesC& aUri) { + TRACER("CGlxDRMUtility::IsForwardLockedL()"); TBool forwardLocked = EFalse; TVirtualPathPtr path( aUri, KDefaultContentObject() ); @@ -296,14 +391,25 @@ //============================================================================ EXPORT_C void CGlxDRMUtility::ShowRightsInfoL(const TDesC& aUri) { + TRACER("CGlxDRMUtility::ShowRightsInfoL()"); iDrmHelper->CheckRightsAmountL( aUri ); } //============================================================================ +// ShowRightsInfoL +//============================================================================ +EXPORT_C void CGlxDRMUtility::ShowRightsInfoL(RFile& aFileHandle) + { + TRACER("CGlxDRMUtility::ShowRightsInfoL(aFileHandle)"); + iDrmHelper->CheckRightsAmountL( aFileHandle ); + } + +//============================================================================ // Return size for DRM thumbnail request. //============================================================================ EXPORT_C TSize CGlxDRMUtility::DRMThumbnailSize(TSize& aSize) { + TRACER("CGlxDRMUtility::DRMThumbnailSize()"); TSize thumbnailSize(KGlxDRMThumbnailWidth, KGlxDRMThumbnailHeight); if((aSize.iWidth*aSize.iHeight)/4 < @@ -321,7 +427,7 @@ */ CGlxDRMUtility::CGlxDRMUtility() { - + TRACER("CGlxDRMUtility::CGlxDRMUtility()"); } /** @@ -329,6 +435,7 @@ */ void CGlxDRMUtility::ConstructL() { + TRACER("CGlxDRMUtility::ConstructL()"); iCManager = ContentAccess::CManager::NewL(); iDrmHelper = CDRMHelper::NewL(); iLastConsumedItemUri = HBufC::NewL(0); diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutilitywrapper/drmutilitywrapper.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/drmutilitywrapper/drmutilitywrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,55 @@ +#/* +#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +#* All rights reserved. +#* This component and the accompanying materials are made available +#* under the terms of "Eclipse Public License v1.0" +#* which accompanies 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 wrapper for DRM utility +#* +#*/ +TEMPLATE = lib +TARGET = glxdrmutilitywrapper +DEPENDPATH += . inc src +INCLUDEPATH += . ../../inc \ + ../../../inc \ + ../drmutility/inc \ + ./inc + +CONFIG += hb +LIBS += -lglxdrmutility.dll \ + -lglxlogging.dll \ + +DEFINES += BUILD_DRMUTILITYWRAPPER + +symbian: { +INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE +TARGET.UID3 = 0x2000A7BC +TARGET.CAPABILITY = ALL -TCB +TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE + +} +# Input +HEADERS += inc/glxdrmutilitywrapper.h \ + inc/glxdrmutilitywrapper_p.h + +SOURCES += src/glxdrmutilitywrapper.cpp \ + src/glxdrmutilitywrapper_p.cpp + +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxdrmutilitywrapper.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxdrmutilitywrapper.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutilitywrapper/inc/glxdrmutilitywrapper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/drmutilitywrapper/inc/glxdrmutilitywrapper.h Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef GLXDRMUTILITYWRAPPER_H +#define GLXDRMUTILITYWRAPPER_H + +#include +// forward decleration +class GlxDRMUtilityWrapperPrivate; + +#ifdef BUILD_DRMUTILITYWRAPPER +#define GLX_DRMUTILITYWRAPPER_EXPORT Q_DECL_EXPORT +#else +#define GLX_DRMUTILITYWRAPPER_EXPORT Q_DECL_IMPORT +#endif + +class GLX_DRMUTILITYWRAPPER_EXPORT GlxDRMUtilityWrapper +{ +public: + /* + * Constructor + */ + GlxDRMUtilityWrapper(); + + /* + * Destructor + */ + ~GlxDRMUtilityWrapper(); + + bool ItemRightsValidityCheck(QString aUri, bool aCheckViewRights); + bool ConsumeRights(QString aUri); + void ShowRightsInfo(QString aUri); + +private: + GlxDRMUtilityWrapperPrivate* mDRMUtilityWrapperPrivate; +}; + +#endif //GLXDRMUTILITYWRAPPER_H +// End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutilitywrapper/inc/glxdrmutilitywrapper_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/drmutilitywrapper/inc/glxdrmutilitywrapper_p.h Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,178 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef GLXDRMUTILITYWRAPPERPRIVATE_H +#define GLXDRMUTILITYWRAPPERPRIVATE_H + + +// forward decleration +class GlxDRMUtilityWrapper; +class CGlxDRMUtility; +class QString; + +class GlxDRMUtilityWrapperPrivate +{ +public: + /* + * Constructor + */ + GlxDRMUtilityWrapperPrivate(GlxDRMUtilityWrapper* DRMUtilityWrapper); + + /* + * Destructor + */ + ~GlxDRMUtilityWrapperPrivate(); + + /** + * Check whether DRM rights are valid for specified item + * is called before right is consumed and for all items (focused or unfocused). + * + * @param aUri URI of the media item. + * @param aCheckViewRights, check view rights if true, play if false + * @return ETrue if valid rights exist for the media item. + */ + bool ItemRightsValidityCheck(QString aUri, bool aCheckViewRights); + +// /** +// * Check whether DRM rights are valid for specified item +// * is called before right is consumed and for all items (focused or unfocused). +// * +// * @param filehandle of the media item. +// * @param aCheckViewRights, check view rights if true, play if false +// * @return ETrue if valid rights exist for the media item. +// */ +// bool ItemRightsValidityCheckL(RFile& aFileHandle, TBool aCheckViewRights); +// +// /** +// * Check whether DRM rights are valid for specified item +// * If the rights were just consumed, then allow to display +// * Otherwise, obtain current rights +// * is called after right is consumed and for only focused/displayed item. +// * +// * @param aUri URI of the media item. +// * @param aCheckViewRights, check view rights if true, play if false +// * @return ETrue if valid rights exist for the media item. +// */ +// bool DisplayItemRightsCheckL(const TDesC& aUri, TBool aCheckViewRights); +// +// /** +// * Check whether DRM rights are valid for specified item +// * If the rights were just consumed, then allow to display +// * Otherwise, obtain current rights +// * is called after right is consumed and for only focused/displayed item. +// * +// * @param filehandle of the media item. +// * @param aCheckViewRights, check view rights if true, play if false +// * @return ETrue if valid rights exist for the media item. +// */ +// bool DisplayItemRightsCheckL(RFile& aFileHandle, TBool aCheckViewRights); +// + /** + * Consume rights for specified item + * Caches item so that a client has right to display the item + * + * @param aUri URI for item + * @return ETrue to no error in rights consumption + */ + bool ConsumeRights(QString aUri); +// +// /** +// * Consume rights for specified item +// * Caches item so that a client has right to display the item +// * +// * @param Filehandle for item +// * @return ETrue to no error in rights consumption +// */ +// bool ConsumeRightsL(RFile& aFileHandle); +// +// /** +// * Clears Last Consumed Uri +// */ +// void ClearLastConsumedItemUriL(); +// +// /** +// * Test whether a media item is OMA DRM 2.0 protected and has an associated +// * info URL. +// * @param aUri URI of the media item. +// * @return ETrue if it does. +// */ +// bool CanShowInfoOnlineL(const TDesC& aUri); +// +// /** +// * Open the associated info URL for a media item in the browser. +// * @param aUri URI of the media item. +// */ +// void ShowInfoOnlineL(const TDesC& aUri); +// +// /** +// * Test whether a media item can be set as automated content. * +// * @param aUri URI of the media item. +// * @param aType Automated content type, eg. wallpaper. +// * @return ETrue if it can. +// */ +// bool CanSetAsAutomatedL(const TDesC& aUri, TGlxDrmAutomatedType aType); +// +// /** +// * Set a media item as automated content. +// * @param aUri URI of the media item. +// * @param aType Automated content type, eg. wallpaper. +// */ +// void SetAsAutomatedL(const TDesC& aUri, TGlxDrmAutomatedType aType); +// +// /** +// * Show DRM details for specified item. +// * @param aUri URI of the media item. +// */ +// void ShowDRMDetailsPaneL(const TDesC& aUri); +// +// /** +// * Show DRM details for specified item. +// * @param Filehandle of the media item. +// */ +// void ShowDRMDetailsPaneL(RFile& aFileHandle); +// +// /** +// * Ask DRM manager if file is forward locked +// */ +// bool IsForwardLockedL(const TDesC& aUri); +// + /** + * Show rights info + * @param aUri URI of the media item. + */ + void ShowRightsInfo(QString aUri); + +// /** +// * Show rights info +// * @param filehandle of the media item. +// */ +// void ShowRightsInfoL(RFile& aFileHandle); +// +// /** +// * Get size of thumbnail to be requested for DRM invalid item +// * @param aSize size of image +// * @return suggested thumbnail size (1/4 of original size) +// */ +// TSize DRMThumbnailSize(TSize& aSize); + +private: + GlxDRMUtilityWrapper* iDRMUtilityWrapper; + CGlxDRMUtility* iDRMUtility; +}; + +#endif //GLXDRMUTILITYWRAPPERPRIVATE_H +// End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutilitywrapper/src/glxdrmutilitywrapper.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/drmutilitywrapper/src/glxdrmutilitywrapper.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies 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"glxdrmutilitywrapper_p.h" +#include"glxdrmutilitywrapper.h" + +GlxDRMUtilityWrapper::GlxDRMUtilityWrapper() + { + mDRMUtilityWrapperPrivate = new GlxDRMUtilityWrapperPrivate(this); + } +GlxDRMUtilityWrapper::~GlxDRMUtilityWrapper() + { + delete mDRMUtilityWrapperPrivate; + } +bool GlxDRMUtilityWrapper::ItemRightsValidityCheck(QString aUri, bool aCheckViewRights) + { + bool ret = mDRMUtilityWrapperPrivate->ItemRightsValidityCheck(aUri,aCheckViewRights); + return ret; + } + +bool GlxDRMUtilityWrapper::ConsumeRights(QString aUri) + { + bool ret = mDRMUtilityWrapperPrivate->ConsumeRights(aUri); + return ret; + } + +void GlxDRMUtilityWrapper::ShowRightsInfo(QString aUri) + { + mDRMUtilityWrapperPrivate->ShowRightsInfo(aUri); + } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/drmutilitywrapper/src/glxdrmutilitywrapper_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/drmutilitywrapper/src/glxdrmutilitywrapper_p.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,197 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies 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"glxdrmutilitywrapper_p.h" +#include"glxdrmutility.h" + +#include +#include + +GlxDRMUtilityWrapperPrivate::GlxDRMUtilityWrapperPrivate(GlxDRMUtilityWrapper* DRMUtilityWrapper) + { + iDRMUtilityWrapper = DRMUtilityWrapper; + iDRMUtility = CGlxDRMUtility::InstanceL(); + } +/* + * Destructor + */ +GlxDRMUtilityWrapperPrivate::~GlxDRMUtilityWrapperPrivate() + { + if(iDRMUtility) + { + iDRMUtility->Close(); + } + } + +/** + * Check whether DRM rights are valid for specified item + * is called before right is consumed and for all items (focused or unfocused). + */ +bool GlxDRMUtilityWrapperPrivate::ItemRightsValidityCheck(QString aUri, bool aCheckViewRights) + { + QString filepath(QDir::toNativeSeparators(aUri)); + TPtrC16 str(reinterpret_cast (filepath.utf16())); + HBufC* uri = str.Alloc(); + TBool checkViewRight = aCheckViewRights?ETrue:EFalse; + bool ret = iDRMUtility->ItemRightsValidityCheckL(*uri,checkViewRight); + return ret; + } + +///** +// * Check whether DRM rights are valid for specified item +// * is called before right is consumed and for all items (focused or unfocused). +// */ +//bool GlxDRMUtilityWrapperPrivate::ItemRightsValidityCheckL(RFile& aFileHandle, TBool aCheckViewRights) +// { +// +// } +// +///** +// * Check whether DRM rights are valid for specified item +// * If the rights were just consumed, then allow to display +// * Otherwise, obtain current rights +// * is called after right is consumed and for only focused/displayed item. +// */ +//bool GlxDRMUtilityWrapperPrivate::DisplayItemRightsCheckL(const TDesC& aUri, TBool aCheckViewRights) +// { +// +// } +// +///** +// * Check whether DRM rights are valid for specified item +// * If the rights were just consumed, then allow to display +// * Otherwise, obtain current rights +// * is called after right is consumed and for only focused/displayed item. +// */ +//bool GlxDRMUtilityWrapperPrivate::DisplayItemRightsCheckL(RFile& aFileHandle, TBool aCheckViewRights) +// { +// +// } +// +/** + * Consume rights for specified item + * Caches item so that a client has right to display the item + */ +bool GlxDRMUtilityWrapperPrivate::ConsumeRights(QString aUri) + { + QString filepath(QDir::toNativeSeparators(aUri)); + TPtrC16 str(reinterpret_cast (filepath.utf16())); + HBufC* uri = str.Alloc(); + bool ret = iDRMUtility->ConsumeRightsL(*uri); + return ret; + } +// +///** +// * Consume rights for specified item +// * Caches item so that a client has right to display the item +// */ +//bool GlxDRMUtilityWrapperPrivate::ConsumeRightsL(RFile& aFileHandle) +// { +// +// } +// +///** +// * Clears Last Consumed Uri +// */ +//void GlxDRMUtilityWrapperPrivate::ClearLastConsumedItemUriL() +// { +// +// } +// +///** +// * Test whether a media item is OMA DRM 2.0 protected and has an associated +// * info URL. +// */ +//bool GlxDRMUtilityWrapperPrivate::CanShowInfoOnlineL(const TDesC& aUri) +// { +// +// } +// +///** +// * Open the associated info URL for a media item in the browser. +// */ +//void GlxDRMUtilityWrapperPrivate::ShowInfoOnlineL(const TDesC& aUri) +// { +// +// } +// +///** +// * Test whether a media item can be set as automated content. * +// */ +//bool GlxDRMUtilityWrapperPrivate::CanSetAsAutomatedL(const TDesC& aUri, TGlxDrmAutomatedType aType) +// { +// +// } +// +///** +// * Set a media item as automated content. +// */ +//void GlxDRMUtilityWrapperPrivate::SetAsAutomatedL(const TDesC& aUri, TGlxDrmAutomatedType aType) +// { +// +// } +// +///** +// * Show DRM details for specified item. +// */ +//void GlxDRMUtilityWrapperPrivate::ShowDRMDetailsPaneL(const TDesC& aUri) +// { +// +// } +// +///** +// * Show DRM details for specified item. +// */ +//void GlxDRMUtilityWrapperPrivate::ShowDRMDetailsPaneL(RFile& aFileHandle) +// { +// +// } +// +///** +// * Ask DRM manager if file is forward locked +// */ +//bool GlxDRMUtilityWrapperPrivate::IsForwardLockedL(const TDesC& aUri) +// { +// +// } +// +/** + * Show rights info + */ +void GlxDRMUtilityWrapperPrivate::ShowRightsInfo(QString aUri) + { + QString filepath(QDir::toNativeSeparators(aUri)); + TPtrC16 str(reinterpret_cast (filepath.utf16())); + HBufC* uri = str.Alloc(); + iDRMUtility->ShowRightsInfoL(*uri); + } + +///** +// * Show rights info +// */ +//void GlxDRMUtilityWrapperPrivate::ShowRightsInfoL(RFile& aFileHandle) +// { +// +// } +// +///** +// * Get size of thumbnail to be requested for DRM invalid item +// */ +//TSize GlxDRMUtilityWrapperPrivate::DRMThumbnailSize(TSize& aSize) +// { +// +// } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/eabi/glxdrmutilitywrapperu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/uiengine/eabi/glxdrmutilitywrapperu.def Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,9 @@ +EXPORTS + _ZN20GlxDRMUtilityWrapper23ItemRightsValidityCheckE7QStringb @ 1 NONAME + _ZN20GlxDRMUtilityWrapperC1Ev @ 2 NONAME + _ZN20GlxDRMUtilityWrapperC2Ev @ 3 NONAME + _ZN20GlxDRMUtilityWrapperD1Ev @ 4 NONAME + _ZN20GlxDRMUtilityWrapperD2Ev @ 5 NONAME + _ZN20GlxDRMUtilityWrapper13ConsumeRightsE7QString @ 6 NONAME + _ZN20GlxDRMUtilityWrapper14ShowRightsInfoE7QString @ 7 NONAME + diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/eabi/glxmedialistwrapperu.def --- a/ui/uiengine/eabi/glxmedialistwrapperu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/eabi/glxmedialistwrapperu.def Tue Jul 06 14:16:16 2010 +0300 @@ -51,4 +51,7 @@ _ZN12GlxMLWrapper17removeContextModeE14GlxContextMode @ 50 NONAME _ZN12GlxMLWrapper13updateDetailsEv @ 51 NONAME _ZN12GlxMLWrapper26handleDetailsItemAvailableEi @ 52 NONAME + _ZN12GlxMLWrapper10IsDrmValidEi @ 53 NONAME + _ZN12GlxMLWrapper11setDrmValidEib @ 54 NONAME + _ZN12GlxMLWrapper14IsDrmProtectedEi @ 55 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/group/glxmedialists.mmp --- a/ui/uiengine/medialists/group/glxmedialists.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/group/glxmedialists.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -103,5 +103,6 @@ LIBRARY bitgdi.lib #endif +SMPSAFE // End of File diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/src/glxmedia.cpp --- a/ui/uiengine/medialists/src/glxmedia.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/src/glxmedia.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -273,7 +273,7 @@ { TRACER("TGlxMedia::IsDrmProtected"); - TBool isDrmProtected = ETrue; + TBool isDrmProtected = EFalse; if ( iItem ) { // ignore return value. Failure leaves isDrmProtected unchanged as ETrue diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/src/glxthumbnailcontext.cpp --- a/ui/uiengine/medialists/src/glxthumbnailcontext.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/src/glxthumbnailcontext.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -590,7 +590,7 @@ const TDesC& uri = item.Uri(); if ( uri.Length() && cat != EMPXNoCategory ) { - valid = iDrmUtility->CheckOpenRightsL( uri, ( cat == EMPXImage ) ); + valid = iDrmUtility->ItemRightsValidityCheckL( uri, ( cat == EMPXImage ) ); CGlxMedia* properties = const_cast(item.Properties()); if( valid ) { diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_cglxcache.mmp --- a/ui/uiengine/medialists/test/group/t_cglxcache.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_cglxcache.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -78,5 +78,5 @@ LIBRARY glxlogging.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_cglxfetcherrorarray.mmp --- a/ui/uiengine/medialists/test/group/t_cglxfetcherrorarray.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_cglxfetcherrorarray.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -51,5 +51,5 @@ LIBRARY mpxcommon.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_cglxgarbagecollector.mmp --- a/ui/uiengine/medialists/test/group/t_cglxgarbagecollector.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_cglxgarbagecollector.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -78,5 +78,5 @@ LIBRARY glxlogging.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_cglxmedia.mmp --- a/ui/uiengine/medialists/test/group/t_cglxmedia.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_cglxmedia.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -54,5 +54,5 @@ LIBRARY glxlogging.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_glxfromfocusoutwarditerator.mmp --- a/ui/uiengine/medialists/test/group/t_glxfromfocusoutwarditerator.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_glxfromfocusoutwarditerator.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -44,5 +44,5 @@ LIBRARY lbs.lib // TCoordinate EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_glxlistwindow.mmp --- a/ui/uiengine/medialists/test/group/t_glxlistwindow.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_glxlistwindow.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -55,4 +55,5 @@ // Libraries required by the tested code EXPORTUNFROZEN +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/t_tglxexclusioniterator.mmp --- a/ui/uiengine/medialists/test/group/t_tglxexclusioniterator.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/t_tglxexclusioniterator.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -49,5 +49,5 @@ //LIBRARY glxmedialists.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_cglxattributecontext.mmp --- a/ui/uiengine/medialists/test/group/ut_cglxattributecontext.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_cglxattributecontext.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -87,5 +87,5 @@ LIBRARY lbs.lib // TCoordinate EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_cglxitemlist.mmp --- a/ui/uiengine/medialists/test/group/ut_cglxitemlist.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_cglxitemlist.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -67,5 +67,5 @@ LIBRARY Lbs.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_cglxmedialist.mmp --- a/ui/uiengine/medialists/test/group/ut_cglxmedialist.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_cglxmedialist.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -79,4 +79,5 @@ LIBRARY lbs.lib // TCoordinate EXPORTUNFROZEN +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_cglxnavigablelist.mmp --- a/ui/uiengine/medialists/test/group/ut_cglxnavigablelist.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_cglxnavigablelist.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -70,4 +70,5 @@ LIBRARY Lbs.lib EXPORTUNFROZEN +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_cglxstaticitemlist.mmp --- a/ui/uiengine/medialists/test/group/ut_cglxstaticitemlist.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_cglxstaticitemlist.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -68,5 +68,5 @@ LIBRARY mpxcommon.lib EXPORTUNFROZEN - +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_glxerrormanager.mmp --- a/ui/uiengine/medialists/test/group/ut_glxerrormanager.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_glxerrormanager.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -86,4 +86,5 @@ LIBRARY lbs.lib // TCoordinate EXPORTUNFROZEN +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/group/ut_tglxselectioniterator.mmp --- a/ui/uiengine/medialists/test/group/ut_tglxselectioniterator.mmp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/group/ut_tglxselectioniterator.mmp Tue Jul 06 14:16:16 2010 +0300 @@ -44,5 +44,6 @@ LIBRARY mpxcommon.lib EXPORTUNFROZEN +SMPSAFE // End of file diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/ut_cglxattributecontext/ut_cglxattributecontext.cpp --- a/ui/uiengine/medialists/test/ut_cglxattributecontext/ut_cglxattributecontext.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/ut_cglxattributecontext/ut_cglxattributecontext.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -45,7 +45,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool) +TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool) { return ETrue; } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/ut_cglxmedialist/ut_cglxmedialist.cpp --- a/ui/uiengine/medialists/test/ut_cglxmedialist/ut_cglxmedialist.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/ut_cglxmedialist/ut_cglxmedialist.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -51,7 +51,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool) +TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool) { return ETrue; } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialists/test/ut_glxerrormanager/ut_glxerrormanager.cpp --- a/ui/uiengine/medialists/test/ut_glxerrormanager/ut_glxerrormanager.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialists/test/ut_glxerrormanager/ut_glxerrormanager.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -47,7 +47,7 @@ delete this; } -TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool) +TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool) { return ETrue; } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialistwrapper/inc/glxmlwrapper.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Tue Jul 06 14:16:16 2010 +0300 @@ -113,6 +113,10 @@ QString retrieveViewTitle(); void handlepopulated(); bool IsPopulated(); + bool IsDrmProtected(int index = -1); + bool IsDrmValid(int index); + void setDrmValid(int index,bool valid); + /* * retriveBitmap helps to retrive the bitmap * @param1 index diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Tue Jul 06 14:16:16 2010 +0300 @@ -39,6 +39,7 @@ class CGlxDefaultThumbnailContext; class CGlxDefaultListAttributeContext; class CGlxTitleFetcher; +class CGlxDRMUtility; //to use first call GlxMLWrapperPrivate::Instance then set the mode by calling GlxMLWrapperPrivate::SetContextMode() //CLASS Declaration class GlxMLWrapperPrivate : public QObject,public MGlxTitleFetcherObserver @@ -134,7 +135,9 @@ void SetDescontextL(); QString RetrieveViewTitle(); bool IsPopulated(); - + bool IsDrmProtected(int index ); + bool IsDrmValid(int index); + void setDrmValid(int index,bool valid); private: /** @@ -237,6 +240,6 @@ CGlxTitleFetcher* iTitleFetcher; QImage iCorruptImage; QString iViewTitle; - + CGlxDRMUtility * iDrmUtility; }; #endif //GLXMLWRAPPER_P_H diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialistwrapper/medialistwrapper.pro --- a/ui/uiengine/medialistwrapper/medialistwrapper.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialistwrapper/medialistwrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -42,6 +42,8 @@ TARGET.UID3 = 0x20000A0B TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE + } # Input HEADERS += inc/glxmlgenericobserver.h inc/glxmlwrapper.h inc/glxmlwrapper_p.h inc/glxattributeretriever.h inc/glxtitlefetcher.h diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -178,6 +178,20 @@ return mMLWrapperPrivate->IsPopulated(); } +bool GlxMLWrapper::IsDrmProtected(int index) + { + return mMLWrapperPrivate->IsDrmProtected(index); + } +bool GlxMLWrapper::IsDrmValid(int index) + { + return mMLWrapperPrivate->IsDrmValid(index); + } + +void GlxMLWrapper::setDrmValid(int index,bool valid) + { + mMLWrapperPrivate->setDrmValid(index,valid); + } + QVariant GlxMLWrapper::RetrieveBitmap(int index) { QVariant var; diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -45,6 +45,8 @@ //#define GLXPERFORMANCE_LOG #include #include "glxtitlefetcher.h" +#include"glxdrmutility.h" + //constant declaration const TInt KTBAttributeAvailable(1); const TInt KTBAttributeUnavailable(0); @@ -131,6 +133,7 @@ } iMLGenericObserver = CGlxMLGenericObserver::NewL(*iMediaList,this); iBlockyIteratorForFilmStrip.SetRangeOffsets(0,0); + iDrmUtility = CGlxDRMUtility::InstanceL(); } // --------------------------------------------------------------------------- @@ -140,6 +143,10 @@ GlxMLWrapperPrivate::~GlxMLWrapperPrivate() { TRACER("GlxMLWrapperPrivate::~GlxMLWrapperPrivate"); + if ( iDrmUtility ) + { + iDrmUtility->Close(); + } RemoveGridContext(); RemovePtFsContext(); RemoveLsFsContext(); @@ -590,7 +597,12 @@ filter = TGlxFilterFactory::CreateCameraAlbumExclusionFilterL(); CleanupStack::PushL(filter); } - else + else if(EGlxFilterImage == aFilterType) + { + filter = TGlxFilterFactory::CreateExcludeDrmImageTypeFilterL(aFilterType); + CleanupStack::PushL(filter); + } + else { filter = TGlxFilterFactory::CreateItemTypeFilterL(aFilterType); //todo take actual filter type CleanupStack::PushL(filter); @@ -1368,7 +1380,6 @@ { iViewTitle = QString::fromUtf16(aTitle.Ptr(), aTitle.Length()); iMLWrapper->handleTitleAvailable(iViewTitle); - RDebug::Print(_L("GlxPhotos: GlxMLWrapperPrivate : TITLE =-%S"),&aTitle); } QString GlxMLWrapperPrivate::RetrieveViewTitle() @@ -1407,3 +1418,65 @@ iDetailsContextActivated = EFalse; } } + +bool GlxMLWrapperPrivate::IsDrmProtected(int index) + { + TInt itemIndex = index; + if(-1 == itemIndex) + { + itemIndex = iMediaList->FocusIndex(); + } + const TGlxMedia& media = iMediaList->Item(itemIndex); + return media.IsDrmProtected(); + } + +bool GlxMLWrapperPrivate::IsDrmValid(int index) + { + TInt itemIndex = index; + if(-1 == itemIndex) + { + itemIndex = iMediaList->FocusIndex(); + } + + const TGlxMedia& media = iMediaList->Item(itemIndex); + TGlxMediaGeneralRightsValidity isValid = EGlxDrmRightsValidityUnknown; + TBool ret = media.GetDrmValidity(isValid); + if(ret && EGlxDrmRightsValidityUnknown == isValid ) + { + // check rights + TMPXGeneralCategory cat = media.Category(); + const TDesC& uri = media.Uri(); + if ( uri.Length() && cat != EMPXNoCategory ) + { + TBool valid = iDrmUtility->ItemRightsValidityCheckL( uri, ( cat == EMPXImage ) ); + CGlxMedia* properties = const_cast(media.Properties()); + if( valid ) + { + + isValid = EGlxDrmRightsValid; + } + else + { + + isValid = EGlxDrmRightsInvalid; + } + properties->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid, isValid); + } + } + return ( EGlxDrmRightsValid == isValid ); + } + +void GlxMLWrapperPrivate::setDrmValid(int index,bool valid) + { + const TGlxMedia& media = iMediaList->Item(index); + CGlxMedia* properties = const_cast(media.Properties()); + if(valid) + { + properties->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid, EGlxDrmRightsValid); + } + else + { + properties->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid, EGlxDrmRightsInvalid); + } + } + diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/medialistwrapper/src/glxtitlefetcher.cpp --- a/ui/uiengine/medialistwrapper/src/glxtitlefetcher.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxtitlefetcher.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -59,8 +59,10 @@ // this path iPath->Back(); - if( iPath->Levels() < 0 ) + if( iPath->Levels() <= 0 ) { + //For This Level, Opening a collection is nothing but open EGlxCollectionPluginShowInMainListView + //We dont need this in 10.1 return; } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/bwins/glxlistmodelu.def --- a/ui/uiengine/model/bwins/glxlistmodelu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/bwins/glxlistmodelu.def Tue Jul 06 14:16:16 2010 +0300 @@ -27,4 +27,6 @@ ?data@GlxAlbumModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 26 NONAME ; class QVariant GlxAlbumModel::data(class QModelIndex const &, int) const ?metaObject@GlxAlbumModel@@UBEPBUQMetaObject@@XZ @ 27 NONAME ; struct QMetaObject const * GlxAlbumModel::metaObject(void) const ?setData@GlxAlbumModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxAlbumModel::setData(class QModelIndex const &, class QVariant const &, int) + ?listPopulated@GlxAlbumModel@@IAEXXZ @ 29 NONAME ; void GlxAlbumModel::listPopulated(void) + ?modelPopulated@GlxAlbumModel@@QAEXXZ @ 30 NONAME ; void GlxAlbumModel::modelPopulated(void) diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/eabi/glxlistmodelu.def --- a/ui/uiengine/model/eabi/glxlistmodelu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/eabi/glxlistmodelu.def Tue Jul 06 14:16:16 2010 +0300 @@ -27,4 +27,6 @@ _ZNK13GlxAlbumModel8rowCountERK11QModelIndex @ 26 NONAME _ZTI13GlxAlbumModel @ 27 NONAME _ZTV13GlxAlbumModel @ 28 NONAME + _ZN13GlxAlbumModel13listPopulatedEv @ 29 NONAME + _ZN13GlxAlbumModel14modelPopulatedEv @ 30 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/favmediamodel/favmediamodel.pro --- a/ui/uiengine/model/favmediamodel/favmediamodel.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/favmediamodel/favmediamodel.pro Tue Jul 06 14:16:16 2010 +0300 @@ -35,6 +35,8 @@ TARGET.UID3 = 0x20000A06 TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE + } # Input HEADERS += inc/glxfavmediamodel.h diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/listmodel/inc/glxalbummodel.h --- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h Tue Jul 06 14:16:16 2010 +0300 @@ -67,10 +67,12 @@ signals : void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const; + void listPopulated(); public slots: void itemUpdated1(int mlIndex, GlxTBContextType tbContextType); void itemsAdded(int startIndex, int endIndex); void itemsRemoved(int startIndex, int endIndex); + void modelPopulated(); protected: private slots: @@ -80,6 +82,7 @@ GlxContextMode mContextMode; HbIcon* mDefaultIcon; QCache itemIconCache; + int mTempVisibleWindowIndex; }; #endif /* GLXALBUMMODEL_H */ diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/listmodel/listmodel.pro --- a/ui/uiengine/model/listmodel/listmodel.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/listmodel/listmodel.pro Tue Jul 06 14:16:16 2010 +0300 @@ -32,6 +32,7 @@ TARGET.UID3 = 0x20000A0A TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } # Input HEADERS += inc/glxalbummodel.h diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/listmodel/src/glxalbummodel.cpp --- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -48,8 +48,11 @@ qDebug("insertItems() connection status %d", err); err = connect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); qDebug("removeItems() connection status %d", err); + err = connect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelPopulated())); + qDebug("populated() connection status %d", err); err = connect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType))); qDebug("iconAvailable() connection status %d", err); + mTempVisibleWindowIndex = 0; itemIconCache.setMaxCost(50); } @@ -62,6 +65,7 @@ err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int))); err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); err = disconnect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType))); + err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelPopulated())); delete mMLWrapper; mMLWrapper = NULL; itemIconCache.clear(); @@ -149,6 +153,8 @@ case GlxSystemItemRole : return mMLWrapper->isSystemItem( getFocusIndex().row() ); + case GlxVisualWindowIndex : + return mMLWrapper->getVisibleWindowIndex(); default : return QVariant(); @@ -186,6 +192,12 @@ return TRUE; } } + if ( GlxTempVisualWindowIndex == role ) { + if ( value.isValid() && value.canConvert () ) { + mTempVisibleWindowIndex = value.value (); + return TRUE; + } + } return FALSE; } @@ -232,6 +244,14 @@ return index(mMLWrapper->getFocusIndex(), 0); } +void GlxAlbumModel::modelPopulated() +{ + if ( mTempVisibleWindowIndex!=-1) { + mMLWrapper->setVisibleWindowIndex(mTempVisibleWindowIndex); + mTempVisibleWindowIndex = -1; + emit listPopulated(); + } +} void GlxAlbumModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType ) { Q_UNUSED(tbContextType); diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/mediamodel/inc/glxmediamodel.h --- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Tue Jul 06 14:16:16 2010 +0300 @@ -35,6 +35,7 @@ class HbIcon; class GlxModelParm; class GlxMLWrapper; +class GlxDRMUtilityWrapper; #include #include @@ -119,6 +120,8 @@ int externalDataCount; int mFocusIndex; int mSubState; + GlxDRMUtilityWrapper* mDRMUtilityWrapper; + int mTempVisibleWindowIndex; }; diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/mediamodel/mediamodel.pro --- a/ui/uiengine/model/mediamodel/mediamodel.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/mediamodel/mediamodel.pro Tue Jul 06 14:16:16 2010 +0300 @@ -20,12 +20,15 @@ INCLUDEPATH += . ../../../inc \ ../../../../inc \ ../../../../loggers\loggerqt\inc \ - ../../medialistwrapper/inc + ../../medialistwrapper/inc \ + ../../drmutilitywrapper/inc CONFIG += hb LIBS += -lglxmedialistwrapper.dll \ - -lglxloggerqt.dll + -lglxdrmutilitywrapper.dll \ + -lglxloggerqt.dll \ + -lglximageviewermanager.dll DEFINES += BUILD_MEDIAMODEL @@ -35,6 +38,7 @@ TARGET.UID3 = 0x20000A08 TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } # Input HEADERS += inc/glxmediamodel.h diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/mediamodel/src/glxmediamodel.cpp --- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -24,13 +24,16 @@ #include #include #include +#include"glxdrmutilitywrapper.h" #include +#include //#define GLXPERFORMANCE_LOG #include #include "glxicondefs.h" //Contains the icon names/Ids +#include GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm) { @@ -39,7 +42,7 @@ mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage); mMLWrapper->setContextMode( modelParm.contextMode() ); mContextMode = modelParm.contextMode( ) ; - + mDRMUtilityWrapper = new GlxDRMUtilityWrapper(); int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); qDebug("updateItem() connection status %d", err); err = connect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int))); @@ -65,6 +68,7 @@ externalDataCount = 0; mFocusIndex = -1; mSubState = -1; + mTempVisibleWindowIndex = 0; } GlxMediaModel::~GlxMediaModel() @@ -85,7 +89,7 @@ err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated())); err = disconnect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems())); delete mMLWrapper; - + delete mDRMUtilityWrapper; } //------------------------------------------------------------------------------------------------------------ @@ -360,8 +364,30 @@ HbIcon* GlxMediaModel::GetFsIconItem(int itemIndex, GlxTBContextType tbContextType) const { - HbIcon* itemIcon = itemFsIconCache[itemIndex]; //Initialize icon from the Cache will be NULL if Item not present - if (!itemIcon) { + HbIcon* itemIcon = NULL; //Initialize icon from the Cache will be NULL if Item not present + + bool drmProtected = mMLWrapper->IsDrmProtected(itemIndex); + if(drmProtected) + { + QString imagePath = mMLWrapper->retrieveItemUri(itemIndex); + bool rightValid = mMLWrapper->IsDrmValid(itemIndex); + if(!rightValid) + { + //show error note here + if(itemIndex == mFocusIndex ) + mDRMUtilityWrapper->ShowRightsInfo(imagePath); + return itemIcon; + } + else + { + //consumeDrmRights(imagePath); + mDRMUtilityWrapper->ConsumeRights(imagePath); + bool rightValid = mDRMUtilityWrapper->ItemRightsValidityCheck(imagePath,true); + mMLWrapper->setDrmValid(itemIndex,rightValid); + } + } + itemIcon = itemFsIconCache[itemIndex]; //Initialize icon from the Cache will be NULL if Item not present + if (!itemIcon) { itemIcon = mMLWrapper->retrieveItemIcon(itemIndex, tbContextType); if(itemIcon){ emit iconAvailable(itemIndex,itemIcon, tbContextType); @@ -407,6 +433,10 @@ void GlxMediaModel::modelpopulated() { + if ( mTempVisibleWindowIndex!=-1) { + mMLWrapper->setVisibleWindowIndex(mTempVisibleWindowIndex); + mTempVisibleWindowIndex = -1; + } emit populated(); } @@ -470,10 +500,10 @@ { qDebug("GlxMediaModel::setFocusIndex%d", index.row()); int itemIndex = index.row(); - + int mlIndex = -1; if(itemIndex >=externalDataCount) { - int mlIndex = itemIndex - externalDataCount; + mlIndex = itemIndex - externalDataCount; mMLWrapper->setFocusIndex(mlIndex); mFocusIndex = -1; } @@ -481,10 +511,22 @@ mFocusIndex = itemIndex; if(rowCount() > externalDataCount) { mMLWrapper->setFocusIndex(0); + mlIndex = 0; } } - + if(mSubState != IMAGEVIEWER_S ){ + if( mMLWrapper->IsDrmProtected(mlIndex) && (!mMLWrapper->IsDrmValid(mlIndex)) ) + { + QString imagePath = mMLWrapper->retrieveItemUri(mlIndex); + mDRMUtilityWrapper->ShowRightsInfo(imagePath); + } + }else { + CGlxImageViewerManager* CGlxImageViewerManager = CGlxImageViewerManager::InstanceL(); + const TDesC& title = CGlxImageViewerManager->ImageUri()->Des(); + QString imagePath = QString::fromUtf16(title.Ptr(),title.Length()); + mDRMUtilityWrapper->ShowRightsInfo(imagePath); + } } QModelIndex GlxMediaModel::getFocusIndex() const @@ -554,6 +596,12 @@ mSubState = value.value () ; return TRUE; } + if ( GlxTempVisualWindowIndex == role ) { + if ( value.isValid() && value.canConvert () ) { + mTempVisibleWindowIndex = value.value (); + return TRUE; + } + } return FALSE; } diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/model/modelwrapper/modelwrapper.pro --- a/ui/uiengine/model/modelwrapper/modelwrapper.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/model/modelwrapper/modelwrapper.pro Tue Jul 06 14:16:16 2010 +0300 @@ -30,6 +30,7 @@ TARGET.UID3 = 0x2000718C TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } # Input HEADERS += inc/glxmodelwrapper.h diff -r d0b4e67b3a60 -r f291796e213d ui/uiengine/uiengine.pro --- a/ui/uiengine/uiengine.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/uiengine/uiengine.pro Tue Jul 06 14:16:16 2010 +0300 @@ -16,5 +16,6 @@ #*/ TEMPLATE = subdirs CONFIG += ordered -SUBDIRS = medialistwrapper \ +SUBDIRS = drmutilitywrapper \ + medialistwrapper \ model diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/bwins/glxstatehandleru.def --- a/ui/viewmanagement/bwins/glxstatehandleru.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/bwins/glxstatehandleru.def Tue Jul 06 14:16:16 2010 +0300 @@ -37,4 +37,6 @@ ?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 36 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *) ?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 37 NONAME ; void GlxStateManager::vanishProgressDialog(void) ?launchProgressDialog@GlxStateManager@@AAEXXZ @ 38 NONAME ; void GlxStateManager::launchProgressDialog(void) + ?saveData@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::saveData(void) + ?launchActivity@GlxStateManager@@AAE_NXZ @ 40 NONAME ; bool GlxStateManager::launchActivity(void) diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/bwins/glxviewmanageru.def --- a/ui/viewmanagement/bwins/glxviewmanageru.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/bwins/glxviewmanageru.def Tue Jul 06 14:16:16 2010 +0300 @@ -47,4 +47,6 @@ ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int) ?activateView@GlxViewManager@@AAEXXZ @ 47 NONAME ; void GlxViewManager::activateView(void) ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 48 NONAME ; void GlxViewManager::hideProgressDialog(void) + ?applicationReady@GlxViewManager@@IAEXXZ @ 49 NONAME ; void GlxViewManager::applicationReady(void) + ?handleReadyView@GlxViewManager@@QAEXXZ @ 50 NONAME ; void GlxViewManager::handleReadyView(void) diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/eabi/glxstatehandleru.def --- a/ui/viewmanagement/eabi/glxstatehandleru.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/eabi/glxstatehandleru.def Tue Jul 06 14:16:16 2010 +0300 @@ -37,4 +37,6 @@ _ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 36 NONAME _ZN15GlxStateManager20launchProgressDialogEv @ 37 NONAME _ZN15GlxStateManager20vanishProgressDialogEv @ 38 NONAME + _ZN15GlxStateManager14launchActivityEv @ 39 NONAME + _ZN15GlxStateManager8saveDataEv @ 40 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/eabi/glxviewmanageru.def --- a/ui/viewmanagement/eabi/glxviewmanageru.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/eabi/glxviewmanageru.def Tue Jul 06 14:16:16 2010 +0300 @@ -47,4 +47,6 @@ _ZTI14GlxViewManager @ 46 NONAME _ZTV14GlxViewManager @ 47 NONAME _ZN14GlxViewManager18hideProgressDialogEv @ 48 NONAME + _ZN14GlxViewManager15handleReadyViewEv @ 49 NONAME + _ZN14GlxViewManager16applicationReadyEv @ 50 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/statehandler/inc/glxstatemanager.h --- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h Tue Jul 06 14:16:16 2010 +0300 @@ -24,6 +24,7 @@ #include #include #include +#include class GlxState; class GlxViewManager; @@ -118,6 +119,7 @@ * call back function to monitor the change in thumbnail manager */ void updateTNProgress( int count); + void saveData(); public : /* @@ -198,6 +200,11 @@ */ void exitApplication(); + /*Launch Application as an acitivyt. + * Return Value @0 : If launching an activity fails + * @1 : If launch activity passes + */ + bool launchActivity(); private: GlxViewManager *mViewManager; GlxMediaModel *mAllMediaModel; // for all grid @@ -210,6 +217,7 @@ GlxTNObserver *mTNObserver; int mCollectionId; bool isProgressbarRunning; + QMap mSaveActivity; }; diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp --- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include #include @@ -56,7 +58,12 @@ case EGlxCmdComment: cmdHandler = new GlxCommandHandlerComment(); break; - + case EGlxCmdRotateImgCW: + case EGlxCmdRotateImgCCW: + cmdHandler = new GlxCommandHandlerRotateImage(); + break; + case EGlxCmdRotateImgCrop: cmdHandler = new GlxCommandHandlerCropImage(); + break; default: break; } diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/statehandler/src/glxstatemanager.cpp --- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -22,6 +22,8 @@ #include #include #include +#include +#include //user includes #include "glxstatemanager.h" @@ -67,10 +69,12 @@ mViewManager = new GlxViewManager(); } mTNObserver = new GlxTNObserver(); + mSaveActivity.clear(); connect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ), Qt::QueuedConnection ); connect ( mViewManager, SIGNAL(actionTriggered( qint32 )), this, SLOT(actionTriggered( qint32 )), Qt::QueuedConnection ); connect ( mTNObserver, SIGNAL( leftTNCount( int ) ), this, SLOT( updateTNProgress( int ) ) ); + connect ( qobject_cast(qApp), SIGNAL (aboutToQuit()), this, SLOT(saveData())); //TO:DO TBD through exception when it is null } @@ -121,12 +125,18 @@ void GlxStateManager::launchApplication() { qDebug("GlxStateManager::launchApplication"); - + bool activitySuccess = false; //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S) + HbApplication* app = qobject_cast(qApp); + if(app->activateReason() == Hb::ActivationReasonActivity) { + activitySuccess = launchActivity(); + } + if( !activitySuccess ) { mCurrentState = createState( GLX_GRIDVIEW_ID ); mCurrentState->setState( ALL_ITEM_S ); - - if ( mTNObserver->getTNLeftCount() > 0 ) { + + int leftCount = mTNObserver->getTNLeftCount() ; + if ( leftCount > 0 ) { mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); launchProgressDialog(); } @@ -136,6 +146,41 @@ } mTNObserver->startTNObserving() ; + } + //Remove the previous activity + HbActivityManager* activityManager = app->activityManager(); + bool ok = activityManager->removeActivity("PhotosMainView"); + if ( !ok ) + { + qDebug("launchapplication::Remove activity failed" ); + } +} +bool GlxStateManager::launchActivity() +{ + HbApplication* app = qobject_cast(qApp); + bool ok = app->activityManager()->waitActivity(); + if ( !ok ) + { + qDebug("subscribing to activity manager failed" ); + //return false; TBD: waitActivity is always returning false. Could be some issue with AM. + } + QVariant data = app->activityManager()->activityData( "PhotosMainView" ); + QByteArray serializedModel = data.toByteArray(); + QDataStream stream(&serializedModel, QIODevice::ReadOnly); + //Fetch the data from the activity Manager + QMap fetchActivity; + stream >> fetchActivity; + qint32 stateId = fetchActivity.value("ID"); + mCurrentState = createState(stateId); + mCurrentState->setState( fetchActivity.value("InternalState") ); + createModel( stateId); + /*Model might not be populated yet to set the visibleWindowIndex right away. + *So, let us store the visible index as a temporary Variable, so that visible Window Index + *is set once the model is populated. + */ + mCurrentModel->setData(QModelIndex(), fetchActivity.value("VisibleIndex") , GlxTempVisualWindowIndex ); + mViewManager->launchApplication(stateId, mCurrentModel); + return true; } void GlxStateManager::launchFromExternal() @@ -171,10 +216,12 @@ void GlxStateManager::updateTNProgress( int count) { TRACER("GlxStateManager::updateTNProgress() "); - // this is case when progress bar is not showing - // in the case of rename of an image or capture the single item - // it is also launching the progress bar, to avoid this scenario add the check of count more than 5 - if ( mCurrentModel && count > 5 ) { +// mCurrentModel ------------this is case when progress bar is not showing +// count > 5 ----------------in the case of rename of an image or capture the single item +// it is also launching the progress bar, to avoid this scenario add the check of count more than 5 +// count == KErrNotReady ----A case when memory card is inserted but it is not harvest so it is given an error +// In that case also user should be block to browse the images + if ( mCurrentModel && ( count > 5 ) ) { goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ) ; cleanAllModel(); launchProgressDialog(); @@ -189,9 +236,46 @@ else { mViewManager->updateProgressDialog( count ); } + } +} + +void GlxStateManager::saveData() +{ + if( (mCurrentState->id() == GLX_GRIDVIEW_ID && mCurrentState->state() == ALL_ITEM_S) || mCurrentState->id() == GLX_LISTVIEW_ID ) { + mSaveActivity.insert("ID",mCurrentState->id()); + mSaveActivity.insert("InternalState",mCurrentState->state()); + + //Store the visual Index + if(mCurrentModel) + { + QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex ); + if ( variant.isValid() && variant.canConvert () ) { + mSaveActivity.insert("VisibleIndex",variant.value()); + } + } + else + mSaveActivity.insert("VisibleIndex",0); + + HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + + //Take a screenshot + QVariantHash metadata; + HbMainWindow *window = hbInstance->allMainWindows().first(); + metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect())); + + QByteArray serializedModel; + QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append); + stream << mSaveActivity; + //Add the activity + bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata); + if ( !ok ) + { + qDebug("SaveData::Add activity failed" ); } + } } + void GlxStateManager::nextState(qint32 state, int internalState) { qDebug("GlxStateManager::nextState next state = %u", state); @@ -226,7 +310,7 @@ if ( mCurrentState->previousState() == NULL ) { //In the case only one state in stack then exit from the application exitApplication() ; - mCurrentState = NULL; + return ; } else { //effect parameter should be set here other wise there is no way to know from where it come from @@ -618,13 +702,11 @@ void GlxStateManager::exitApplication() { - if ( mCurrentState->id( ) == GLX_FULLSCREENVIEW_ID && mCurrentState->state() == EXTERNAL_S ) { - emit externalCommand(EGlxPluginCmdBack); - } - else { + + //To:Do memory cleanup QApplication::quit(); - } + } GlxStateManager::~GlxStateManager() @@ -638,6 +720,7 @@ disconnect ( mViewManager, SIGNAL(externalCommand(int )), this, SIGNAL(externalCommand(int )) ); disconnect ( mTNObserver, SIGNAL( leftTNCount( int ) ), this, SLOT( updateTNProgress( int ) ) ); disconnect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ) ); + disconnect ( qobject_cast(qApp), SIGNAL (aboutToQuit()), this, SLOT(saveData())); delete mTNObserver; delete mViewManager; diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/statehandler/statehandler.pro --- a/ui/viewmanagement/statehandler/statehandler.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/statehandler/statehandler.pro Tue Jul 06 14:16:16 2010 +0300 @@ -40,6 +40,7 @@ TARGET.UID3 = 0x20000A07 TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } LIBS += -lglxviewmanager.dll \ diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/viewmanager/inc/glxviewmanager.h --- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Tue Jul 06 14:16:16 2010 +0300 @@ -105,6 +105,7 @@ */ void actionTriggered(qint32 id); void externalCommand(int cmdId); + void applicationReady(); public slots: /* @@ -146,6 +147,7 @@ */ void itemSpecificMenuTriggered(qint32,QPointF ); + void handleReadyView(); protected: private slots: @@ -205,7 +207,6 @@ QList mMarkingActionList; //marking mode tool bar action list HbToolBar *mViewToolBar; //view tool bar HbToolBar *mMarkingToolBar; //marking mode tool bar - HbMenu *mMenu; GlxView *mView; QAbstractItemModel *mModel; //no ownership QItemSelectionModel * mSelectionModel; diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/viewmanager/src/glxmenumanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -20,7 +20,8 @@ #include #include #include - +#include +#include //user include #include "glxviewids.h" #include "glxmenumanager.h" @@ -29,7 +30,6 @@ #include "glxlocalisationstrings.h" - GlxMenuManager::GlxMenuManager(HbMainWindow* mainWindow) : mModel( 0), mMainWindow( mainWindow ), @@ -48,11 +48,13 @@ action = menu->addAction(GLX_OPTION_MARK_ALL); action->setData(EGlxCmdMarkAll); + action->setObjectName( "Menu MarkAll" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = menu->addAction(GLX_OPTION_UN_MARK_ALL); action->setDisabled(true); //Dim UnMarkAll when no images are marked action->setData(EGlxCmdUnMarkAll); + action->setObjectName( "Menu UnMarkAll" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } @@ -61,11 +63,12 @@ QList actionList = menu->actions(); for ( int i = 0 ; i < actionList.count(); i++) { if(actionList.at(i)->data()==EGlxCmdUnMarkAll) { - actionList.at(i)->setDisabled(disable); - break; + actionList.at(i)->setDisabled(disable); + break; } } } + void GlxMenuManager::addMenu(qint32 viewId, HbMenu* menu) { switch(viewId) { @@ -108,29 +111,39 @@ { qDebug()<<"GlxMenuManager::CreateGridMenu"; HbAction *action = NULL; + menu->setObjectName( "GridMenu" ); action = menu->addAction(GLX_OPTION_SHARE); action->setData(EGlxCmdSend); + action->setObjectName( "GridMenu Send" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); mSubMenu = menu->addMenu(GLX_OPTION_SLIDESHOW); + mSubMenu->setObjectName( "GridMenu SlideShow" ); + action = mSubMenu->addAction(GLX_OPTION_SS_PLAY); action->setData(EGlxCmdFirstSlideshow); + action->setObjectName( "GridMenu Play" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = mSubMenu->addAction(GLX_OPTION_SS_SETTINGS); action->setData(EGlxCmdSlideshowSettings); + action->setObjectName( "GridMenu Setting" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action = menu->addAction(GLX_OPTION_ADD_TO_ALBUM); action->setData(EGlxCmdAddToAlbum); + action->setObjectName( "GridMenu AddToAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = menu->addAction(GLX_OPTION_REMOVE_FROM_ALBUM); action->setData(EGlxCmdRemoveFrom); + action->setObjectName( "GridMenu RemoveAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = menu->addAction(GLX_OPTION_DELETE); action->setData(EGlxCmdDelete); + action->setObjectName( "GridMenu Delete" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } @@ -138,9 +151,11 @@ { qDebug()<<"GlxMenuManager::CreateListMenu"; HbAction *action = NULL; + menu->setObjectName( "Listmenu" ); action = menu->addAction(GLX_OPTION_NEW_ALBUM); action->setData(EGlxCmdAddMedia); + action->setObjectName( "ListMenu NewAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } @@ -148,21 +163,47 @@ { qDebug()<<"GlxMenuManager::CreateFullscreenMenu"; HbAction *action = NULL; + menu->setObjectName( "FSMenu" ); action = menu->addAction(GLX_OPTION_SHARE); action->setData(EGlxCmdSend); + action->setObjectName( "FSMenu Share" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); mSubMenu = menu->addMenu(GLX_OPTION_SLIDESHOW); - action = mSubMenu->addAction(GLX_OPTION_SS_PLAY); + mSubMenu->setObjectName( "FSMenu SlideShow" ); + + action = mSubMenu->addAction(GLX_OPTION_SS_PLAY); action->setData(EGlxCmdSelectSlideshow); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action->setObjectName( "FSMenu Play" ); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action = mSubMenu->addAction(GLX_OPTION_SS_SETTINGS); action->setData(EGlxCmdSlideshowSettings); + action->setObjectName( "FSMenu Setting" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); +#ifndef __WINSCW__ + CFeatureDiscovery* featManager = CFeatureDiscovery::NewL(); + if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor)) + { + mSubMenu = menu->addMenu(QString("Rotate")); + action = mSubMenu->addAction(QString("90 CW")); + action->setData(EGlxCmdRotateImgCW); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action = mSubMenu->addAction(QString("90 CCW")); + action->setData(EGlxCmdRotateImgCCW); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + + action = menu->addAction(QString("Crop")); + action->setData(EGlxCmdRotateImgCrop); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + } + delete featManager; +#endif //__WINSCW__ action = menu->addAction(GLX_OPTION_ADD_TO_ALBUM); action->setData(EGlxCmdAddToAlbum); + action->setObjectName( "FSMenu AddToAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } @@ -249,30 +290,36 @@ { qDebug("GlxMenuManager::showContextMenu " ); mContextMenu = new HbMenu(); + mContextMenu->setObjectName( "ContextMenu" ); HbAction *action = NULL; switch ( viewId ) { case GLX_GRIDVIEW_ID : action = mContextMenu->addAction(GLX_MENU_SHARE); action->setData(EGlxCmdContextSend); + action->setObjectName( "CM Send" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = mContextMenu->addAction(GLX_MENU_SLIDESHOW); action->setData(EGlxCmdSelectSlideshow); + action->setObjectName( "CM SlideShow" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); if ( viewSubState() == ALBUM_ITEM_S ) { - action = mContextMenu->addAction(GLX_OPTION_REMOVE_FROM_ALBUM); - action->setData(EGlxCmdContextRemoveFrom); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action = mContextMenu->addAction(GLX_OPTION_REMOVE_FROM_ALBUM); + action->setData(EGlxCmdContextRemoveFrom); + action->setObjectName( "CM RemoveAlbum" ); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } action = mContextMenu->addAction(GLX_MENU_ADD_TO_ALBUM); action->setData(EGlxCmdContextAddToAlbum); + action->setObjectName( "CM AddToAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = mContextMenu->addAction(GLX_MENU_DELETE); action->setData(EGlxCmdContextDelete); + action->setObjectName( "CM Delete" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); break; @@ -286,6 +333,7 @@ if ( count ) { action = mContextMenu->addAction(GLX_MENU_SLIDESHOW); action->setData(EGlxCmdAlbumSlideShow); + action->setObjectName( "CM Album SlideShow" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } @@ -293,10 +341,12 @@ if ( variant.isValid() && variant.canConvert () && ( variant.value() == false ) ) { action = mContextMenu->addAction(GLX_MENU_RENAME); action->setData(EGlxCmdContextRename); + action->setObjectName( "CM Rename" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); action = mContextMenu->addAction(GLX_MENU_DELETE); action->setData(EGlxCmdContextAlbumDelete); + action->setObjectName( "CM Album Delete" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } } diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/viewmanager/src/glxviewmanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -38,6 +38,8 @@ #include #include #include +#include +#include GlxViewManager::GlxViewManager() @@ -46,7 +48,6 @@ mEffectEngine( NULL ), mViewToolBar( NULL ), mMarkingToolBar( NULL ), - mMenu( NULL ), mSelectionModel ( NULL ), mProgressDialog( NULL ) { @@ -56,6 +57,7 @@ mMainWindow = GlxExternalUtility::instance()->getMainWindow(); if(mMainWindow == NULL) { mMainWindow = new HbMainWindow(); + connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() )); } //Without this Zoom Does not work @@ -66,6 +68,12 @@ } HbStyleLoader::registerFilePath(":/data/photos.css"); } +void GlxViewManager::handleReadyView() +{ + emit actionTriggered( EGlxCmdSetupItem ); + emit applicationReady(); + disconnect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() )); +} void GlxViewManager::setupItems( ) { @@ -123,7 +131,8 @@ //create the back soft key action and set the data mBackAction = new HbAction(Hb::BackNaviAction, this); mBackAction->setData(EGlxCmdBack); - mView->setNavigationAction(mBackAction); + mBackAction->setObjectName( "App Back" ); + mView->setNavigationAction( mBackAction ); } Qt::Orientation GlxViewManager::orientation() const @@ -206,7 +215,10 @@ void GlxViewManager::launchProgressDialog( int maxValue ) { if ( maxValue <= 0 ) { - return; + // TNM return the some error code ( negative value ) until it populated the count + // To show progress dialog 10 is chossen + maxValue = 10; + } if ( mProgressDialog == NULL ) { mProgressDialog = new HbProgressDialog( HbProgressDialog::ProgressDialog ); @@ -226,7 +238,7 @@ mMainWindow->lower(); } -void GlxViewManager::updateProgressDialog( int currentValue) +void GlxViewManager::updateProgressDialog( int currentValue ) { static int i = 0; HbIcon icon; @@ -273,10 +285,18 @@ mProgressDialog->setMaximum( currentValue ); max = currentValue ; } - int value = max - currentValue; - mProgressDialog->setProgressValue( value ); + mProgressDialog->setIcon(icon); - mProgressDialog->setText( QString( " %1 / %2").arg( value ).arg( max ) ); + + if ( currentValue < 0 ) { + mProgressDialog->setText( QString( "Refreshing" ) ); //To:Do string will change later + mProgressDialog->setProgressValue( 0 ); + } + else { + int value = max - currentValue; + mProgressDialog->setProgressValue( value ); + mProgressDialog->setText( QString( " %1 " ).arg( currentValue ) ); + } } } @@ -334,21 +354,12 @@ GlxView *view = findView ( viewId ); qDebug("GlxViewManager::enterMarkingMode view ID %d", viewId); - //In the case of first time create the marking mode menu( Mark All, Un Mark All ) - if( mMenu == NULL ) { - mMenu = new HbMenu(); - mMenuManager->createMarkingModeMenu(mMenu); - } - if ( mMarkingToolBar == NULL) { createMarkingModeToolBar(); //Marking mode tool bar is different from normal mode tool bar } if ( view ) { view->enableMarking(); - HbMenu *menu = view->takeMenu(); //Take the owner ship of current menu - view->setMenu(mMenu); //Set the marking mode menu - mMenu = menu; view->takeToolBar(); view->addToolBar(mMarkingToolBar); mSelectionModel = view->getSelectionModel(); @@ -367,9 +378,6 @@ qDebug("GlxViewManager::exitMarkingMode view ID %d", viewId); if ( view ) { view->disableMarking(); - HbMenu *menu = view->takeMenu(); //Take the owner ship of current menu - view->setMenu(mMenu); //Set the view menu option - mMenu = menu; view->takeToolBar(); view->addToolBar(mViewToolBar); if(mSelectionModel) @@ -426,7 +434,9 @@ if ( mMenuManager ) { mMenuManager->addMenu( id, view->menu()); } - view->setNavigationAction(mBackAction); + if ( mBackAction ) { + view->setNavigationAction( mBackAction ); + } } return view; } @@ -501,30 +511,63 @@ mActionList.clear(); //create the All tool bar button action - HbAction* allAction = new HbAction(this); - allAction->setData(EGlxCmdAllGridOpen); - mActionList.append(allAction); - allAction->setIcon(HbIcon(GLXICON_ALL)) ; + HbAction* allAction = new HbAction( this ); + allAction->setData( EGlxCmdAllGridOpen ); + mActionList.append( allAction ); + allAction->setIcon( HbIcon( GLXICON_ALL ) ) ; + allAction->setObjectName( "All Action" ); //create the Album tool bar button action - HbAction* albumAction = new HbAction(this); - albumAction->setData(EGlxCmdAlbumListOpen); - mActionList.append(albumAction); - albumAction->setIcon(HbIcon(GLXICON_ALBUMS)) ; + HbAction* albumAction = new HbAction( this ); + albumAction->setData( EGlxCmdAlbumListOpen ); + mActionList.append( albumAction ); + albumAction->setIcon( HbIcon( GLXICON_ALBUMS ) ) ; + albumAction->setObjectName( "Album Action" ); //create the album tool bar button action - HbAction* cameraAction = new HbAction(this); - cameraAction->setData(EGlxCmdCameraOpen); - mActionList.append(cameraAction); - cameraAction->setIcon(HbIcon(GLXICON_CAMERA)) ; + HbAction* cameraAction = new HbAction( this ); + cameraAction->setData( EGlxCmdCameraOpen ); + mActionList.append( cameraAction ); + cameraAction->setIcon( HbIcon( GLXICON_CAMERA ) ) ; + cameraAction->setObjectName( "Camera Action" ); + + //Configure the 4 th Action in the tool bar + XQSettingsManager *ciSettingsManager = NULL; + ciSettingsManager = new XQSettingsManager(this); + + + XQSettingsKey* operatorLinkCenrepKey = NULL; + operatorLinkCenrepKey = new XQSettingsKey(XQSettingsKey::TargetCentralRepository, + KGlxCi_UidGallery, KGlxOperatorLink); + QVariant value = ciSettingsManager->readItemValue(*operatorLinkCenrepKey); - //create the ovi tool bar button action - HbAction* oviAction = new HbAction(this); - oviAction->setData(EGlxCmdOviOpen); - mActionList.append(oviAction); - oviAction->setIcon(HbIcon(GLXICON_OVI)) ; + switch(value.toInt()) { + case KGlxOvi: + { + XQSettingsKey* oviCenrepKey = NULL; + oviCenrepKey = new XQSettingsKey(XQSettingsKey::TargetCentralRepository, + KGlxCi_UidGallery, KGlxOvi); + QVariant Ovivalue = ciSettingsManager->readItemValue(*oviCenrepKey, XQSettingsManager::TypeString); + HbAction* configurableAction = new HbAction(this); + configurableAction->setData(EGlxCmdOviOpen); + mActionList.append(configurableAction); + + if ( Ovivalue.isValid() && Ovivalue.canConvert() ) { + configurableAction->setIcon( HbIcon( Ovivalue.toString() ) ); + } + delete oviCenrepKey; + } + break; + + default: + qDebug("GlxViewManager::Configurable Action is empty " ); + break; + } + + delete operatorLinkCenrepKey; + delete ciSettingsManager; } void GlxViewManager::createMarkingModeActions() @@ -534,6 +577,7 @@ //create the ok tool bar button action HbAction* selectAction = new HbAction(GLX_BUTTON_OK, this); selectAction->setData(EGlxCmdSelect); + selectAction->setObjectName( "Select Action" ); mMarkingActionList.append(selectAction); connect( selectAction, SIGNAL(triggered( )), this, SLOT(handleAction( )), Qt::QueuedConnection ); mMarkingToolBar->addAction( selectAction ); @@ -541,6 +585,7 @@ //create the cancel tool bar button action HbAction* cancelAction = new HbAction(GLX_BUTTON_CANCEL, this); cancelAction->setData(EGlxCmdCancel); + cancelAction->setObjectName( "Cancel Action" ); mMarkingActionList.append(cancelAction); connect( cancelAction, SIGNAL(triggered( )), this, SLOT(handleAction( )), Qt::QueuedConnection ); mMarkingToolBar->addAction( cancelAction ); @@ -639,20 +684,21 @@ HbStyleLoader::unregisterFilePath(":/data/photos.css"); removeConnection(); + delete mMenuManager; - qDebug("GlxViewManager::~GlxViewManager deleted menu manager"); + qDebug("GlxViewManager::~GlxViewManager deleted menu manager"); + delete mViewToolBar; + delete mMarkingToolBar; + qDebug("GlxViewManager::~GlxViewManager deleted toolbar"); while( mViewList.isEmpty( ) == FALSE){ delete mViewList.takeLast() ; } - qDebug("GlxViewManager::~GlxViewManager view deleted"); - + qDebug("GlxViewManager::~GlxViewManager view deleted"); delete mBackAction; - delete mViewToolBar; - delete mMarkingToolBar; - delete mMenu; delete mProgressDialog; + if ( mEffectEngine ) { mEffectEngine->deregistertransitionEffect(); delete mEffectEngine; diff -r d0b4e67b3a60 -r f291796e213d ui/viewmanagement/viewmanager/viewmanager.pro --- a/ui/viewmanagement/viewmanager/viewmanager.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewmanagement/viewmanager/viewmanager.pro Tue Jul 06 14:16:16 2010 +0300 @@ -31,8 +31,9 @@ LIBS += -lglxexternalutility.dll \ -lglxviews.dll \ -lglxloggerqt.dll \ - -lglxviewutilities.dll - + -lglxviewutilities.dll \ + -lfeatdiscovery.dll \ + -lxqsettingsmanager DEFINES += BUILD_VIEWMANAGER symbian: { @@ -40,6 +41,7 @@ TARGET.UID3 = 0x20000A03 TARGET.CAPABILITY = ALL -TCB TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } # Input HEADERS += inc/glxviewmanager.h \ diff -r d0b4e67b3a60 -r f291796e213d ui/viewplugins/externalviewplugin/externalviewplugin.pro --- a/ui/viewplugins/externalviewplugin/externalviewplugin.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewplugins/externalviewplugin/externalviewplugin.pro Tue Jul 06 14:16:16 2010 +0300 @@ -53,4 +53,5 @@ isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 20480 \ 41943040 TARGET.CAPABILITY = ALL -TCB + MMP_RULES += SMPSAFE } \ No newline at end of file diff -r d0b4e67b3a60 -r f291796e213d ui/views/detailsview/inc/glxdetailscustomwidgets.h --- a/ui/views/detailsview/inc/glxdetailscustomwidgets.h Wed Jun 23 18:12:48 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: ?Description -* -*/ - -#ifndef GLXDETAILSCUSTOMWIDGETS_H -#define GLXDETAILSCUSTOMWIDGETS_H - -#include -#include - - -class HbIconItem; -class HbLabel; -class HbDataFormModelItem; -enum - { - ImageNameItem = HbDataFormModelItem::CustomItemEnd +1, - DateLabelItem, - LocationTagItem, - DurationItem, - ShareWithItem, - FaceTagItem, - CommentsItem - - }; - -class GlxDetailsCustomWidgets: public HbDataFormViewItem -{ - Q_OBJECT - -public: - GlxDetailsCustomWidgets(QGraphicsItem *parent); - ~GlxDetailsCustomWidgets(); - virtual HbAbstractViewItem* createItem(); - bool canSetModelIndex(const QModelIndex &index) const; - -protected: - virtual HbWidget* createCustomWidget(); - -private: - HbLabel *mLabel; -}; - -#endif // GLXDETAILSCUSTOMWIDGETS_H diff -r d0b4e67b3a60 -r f291796e213d ui/views/detailsview/src/glxdetailsview.cpp --- a/ui/views/detailsview/src/glxdetailsview.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/detailsview/src/glxdetailsview.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -72,7 +72,7 @@ GlxDetailsView::GlxDetailsView(HbMainWindow *window) : GlxView(GLX_DETAILSVIEW_ID), mDetailsIcon(NULL), mFavIcon(NULL), mModel( NULL), mFavModel(NULL), mWindow(window), - mSelIndex(0),mDescriptions(NULL),mDateLabel(NULL),mSizeLabel(NULL),mTimeLabel(NULL) + mSelIndex(0),mDocLoader(NULL),mImageName(NULL),mDescriptions(NULL),mDateLabel(NULL),mSizeLabel(NULL),mTimeLabel(NULL) { GLX_LOG_INFO("GlxDetailsView::GlxDetailsView"); OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY ); @@ -125,7 +125,7 @@ OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY ); bool loaded = false; - if(mDocLoader) + if(!mDocLoader) { mDocLoader = new GlxDetailsViewDocLoader(); } diff -r d0b4e67b3a60 -r f291796e213d ui/views/fullscreenview/inc/glxcoverflow.h --- a/ui/views/fullscreenview/inc/glxcoverflow.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/fullscreenview/inc/glxcoverflow.h Tue Jul 06 14:16:16 2010 +0300 @@ -22,15 +22,15 @@ #define NBR_ICON_ITEM 5 -#include #include +#include //forward declaration class HbIconItem; class HbMainWindow; class QAbstractItemModel; +class QGestureEvent; -class QGestureEvent; typedef enum { NO_MOVE, @@ -81,14 +81,13 @@ void dataChanged(QModelIndex startIndex, QModelIndex endIndex); void rowsInserted(const QModelIndex &parent, int start, int end); void rowsRemoved(const QModelIndex &parent, int start, int end); + void modelDestroyed(); void autoLeftMove(); void autoRightMove(); protected: void gestureEvent(QGestureEvent *event); - void move(int value); - void setRows() ; void setStripLen(); int calculateIndex(int index); @@ -96,15 +95,53 @@ void loadIconItems (); void updateIconItem (qint16 selIndex, qint16 selIconIndex, qint16 deltaX); - //clear all the model connection + /* + * In the case of animated image, it will play the animation for focus image + */ + void playAnimation(); + + /* + * To stop the animation + */ + void stopAnimation(); + + /* + * clear all the model connection + */ void clearCurrentModel(); - //add the connection to the model + + /* + * add the connection to the model + */ void initializeNewModel(); - //reset all the data of cover flow + + /* + * reset all the data of cover flow + */ void resetCoverFlow(); int getSubState(); void timerEvent(QTimerEvent *event); + /* + * To get the focus index + */ + int getFocusIndex( ); + + /* + * To get the full screen icon of the image + */ + HbIcon getIcon( int index ); + + /* + * To get the URI of the image + */ + QString getUri( int index ); + + /* + * To get the GIF file info of the image + */ + bool isAnimatedImage( int index ); + private: HbIconItem *mIconItem[NBR_ICON_ITEM]; //at most contain only five item qint16 mSelItemIndex; // current full screen index diff -r d0b4e67b3a60 -r f291796e213d ui/views/fullscreenview/inc/glxfullscreenview.h --- a/ui/views/fullscreenview/inc/glxfullscreenview.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/fullscreenview/inc/glxfullscreenview.h Tue Jul 06 14:16:16 2010 +0300 @@ -106,9 +106,10 @@ void setImageStripModel(); void loadFullScreenToolBar(); - void imageSelectionAnimation(const QModelIndex &index); + void addToolBarAction( int commandId, const QString &iconName, const QString &name) ; + void imageSelectionAnimation( const QModelIndex &index ); int getSubState(); - void setHdmiModel(QAbstractItemModel *model); + void setHdmiModel( QAbstractItemModel *model ); private: QAbstractItemModel *mModel; //no ownership HbMainWindow *mWindow; //no ownership @@ -118,11 +119,6 @@ HbIconItem *mIconItem ; //temporary item for play the image strip select animation GlxTvOutWrapper *mTvOutWrapper; HbToolBar *mFullScreenToolBar; //Fullscreen Toolbar - HbAction *mFlipAction; //Action : it starts activates the details view - HbAction *mSendAction; - HbAction *mDeleteAction; - HbAction *mUseImageAction; - //for Zoom GlxZoomWidget *mZoomWidget; HbDocumentLoader *mDocLoader; diff -r d0b4e67b3a60 -r f291796e213d ui/views/fullscreenview/src/glxcoverflow.cpp --- a/ui/views/fullscreenview/src/glxcoverflow.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/fullscreenview/src/glxcoverflow.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -23,6 +23,7 @@ #include #include #include +#include //User Includes #include @@ -70,7 +71,9 @@ mIconItem[i]->setBrush( QBrush( Qt::black ) ); mIconItem[i]->setSize( QSize( 0, 0 ) ); mIconItem[i]->setAlignment( Qt::AlignCenter ); + mIconItem[i]->setObjectName( QString( "Cover%1" ).arg( i ) ); } + mUiOn = FALSE; mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA; } @@ -187,17 +190,13 @@ int index = 0; for (int i = 0; i < NBR_ICON_ITEM ; i++) { - index = calculateIndex( mSelIndex + i - 2); + index = calculateIndex( mSelIndex + i - 2 ); if ( index == startIndex.row() ) { index = ( mSelItemIndex + i - 2 + NBR_ICON_ITEM ) % NBR_ICON_ITEM; qDebug("GlxCoverFlow::dataChanged index = %d mSelItemIndex = %d ", index, mSelItemIndex ); - - QVariant variant = mModel->data( startIndex, GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItem[index]->setIcon ( variant.value() ) ; - } - else { - mIconItem[index]->setIcon( HbIcon() ); + mIconItem[ index ]->setIcon( getIcon( startIndex.row() ) ); + if ( index == mSelItemIndex ) { + playAnimation( ); } } } @@ -229,7 +228,10 @@ } } - +void GlxCoverFlow::modelDestroyed() +{ + mModel = NULL ; +} void GlxCoverFlow::autoLeftMove() { @@ -267,12 +269,14 @@ } int selIndex = mCurrentPos / width ; if ( mRows == 1 || selIndex != mSelIndex ) { + stopAnimation(); mSelIndex = selIndex; mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM; selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM; updateIconItem( mSelIndex + 2, selIndex, width * 2 ) ; + playAnimation(); if(!mZoomOn) { - emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ; + emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ; } } mMoveDir = NO_MOVE; @@ -321,12 +325,14 @@ } int selIndex = mCurrentPos / width ; if ( mRows == 1 || selIndex != mSelIndex ) { + stopAnimation(); mSelIndex = selIndex; mSelItemIndex = ( mSelItemIndex == 0 ) ? NBR_ICON_ITEM -1 : --mSelItemIndex; selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM; updateIconItem( mSelIndex - 2, selIndex, - width * 2 ) ; + playAnimation(); if(!mZoomOn) { - emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ; + emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ; } } mMoveDir = NO_MOVE; @@ -395,71 +401,67 @@ { qDebug("GlxCoverFlow::loadIconItems "); int index = 0; - QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) { - mSelIndex = variant.value(); - } - + stopAnimation(); + mSelIndex = getFocusIndex(); + qDebug("GlxCoverFlow::loadIconItems index = %d, width = %d", mSelIndex, size().width() ); for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) { - index = calculateIndex ( mSelIndex - 2 + i) ; - QVariant variant = mModel->data( mModel->index(index, 0), GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItem[i]->setIcon ( variant.value() ) ; - } - else { - mIconItem[i]->setIcon( HbIcon() ); - } + index = calculateIndex ( mSelIndex - 2 + i) ; + mIconItem[i]->setIcon( getIcon( index ) ); mIconItem[i]->setSize ( mItemSize ); mIconItem[i]->setPos ( QPointF ( (i - 2) * mItemSize.width(), 0) ); } mSelItemIndex = 2; mCurrentPos = mItemSize.width() * mSelIndex; + playAnimation(); +} + +void GlxCoverFlow::playAnimation() +{ + if ( isAnimatedImage( mSelIndex ) ) { + mIconItem[ mSelItemIndex ]->setIcon( HbIcon( getUri( mSelIndex ) ) ); + mIconItem[ mSelItemIndex ]->animator().startAnimation(); + } +} + +void GlxCoverFlow::stopAnimation() +{ + mIconItem[ mSelItemIndex ]->animator().stopAnimation(); } void GlxCoverFlow::updateIconItem (qint16 selIndex, qint16 selItemIndex, qint16 posX) { qDebug("GlxCoverFlow::updateIconItem selIndex = %d, selIconIndex = %d posX = %d", selIndex, selItemIndex, posX ); - mIconItem[selItemIndex]->setPos(QPointF(posX, 0)); selIndex = calculateIndex( selIndex ); - - QVariant variant = mModel->data( mModel->index(selIndex, 0), GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItem[selItemIndex]->setIcon ( variant.value() ) ; - } - else { - mIconItem[selItemIndex]->setIcon( HbIcon() ); - } - mIconItem[selItemIndex]->setSize ( mItemSize ); + mIconItem[ selItemIndex ]->setPos( QPointF( posX, 0 ) ); + mIconItem[ selItemIndex ]->setIcon( getIcon( selIndex ) ); + mIconItem[ selItemIndex ]->setSize ( mItemSize ); } - void GlxCoverFlow::clearCurrentModel() { qDebug("GlxCoverFlow::clearCurrentModel "); if ( mModel ) { - disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); - disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int))); - disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int))); + disconnect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) ); + disconnect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( rowsInserted( QModelIndex, int, int ) ) ); + disconnect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int) ), this, SLOT( rowsRemoved( QModelIndex, int, int ) ) ); + disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); mModel = NULL ; - } -/* - disconnect(mModel, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); - disconnect(mModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int))); -*/ + } } void GlxCoverFlow::initializeNewModel() { qDebug("GlxCoverFlow::initializeNewModel" ); if ( mModel ) { - connect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); - connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int))); - connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int))); - } + connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) ); + connect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( rowsInserted( QModelIndex, int, int ) ) ); + connect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int) ), this, SLOT( rowsRemoved( QModelIndex, int, int ) ) ); + connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); + } } void GlxCoverFlow::resetCoverFlow() @@ -488,28 +490,21 @@ { qDebug("GlxCoverFlow::resetpartiallyCreated"); mIconItem[2]->setSize ( itemSize ); - mIconItem[2]->setPos ( QPointF ( 0, 0) ); - - QVariant variant = model->data( model->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) { - mSelIndex = variant.value(); - qDebug("GlxCoverFlow::partiallyCreated index mSelIndex=%d",mSelIndex); - } - - variant = model->data( model->index(mSelIndex, 0), GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItem[2]->setIcon ( variant.value() ) ; - } + mIconItem[2]->setPos ( QPointF ( 0, 0) ); + mModel = model ; + mSelIndex = getFocusIndex(); + mIconItem[2]->setIcon( getIcon( mSelIndex ) ) ; + mModel = NULL; } GlxCoverFlow::~GlxCoverFlow() { qDebug("GlxCoverFlow::~GlxCoverFlow model " ); + ClearCoverFlow(); disconnect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ) ); disconnect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ) ); } - void GlxCoverFlow::ClearCoverFlow() { qDebug("GlxCoverFlow::ClearCoverFlow " ); @@ -535,14 +530,15 @@ void GlxCoverFlow::zoomStarted(int index) { Q_UNUSED(index) + stopAnimation(); mZoomOn = true; } void GlxCoverFlow::zoomFinished(int index) { mZoomOn = false; + playAnimation(); indexChanged(index); - } void GlxCoverFlow::timerEvent(QTimerEvent *event) @@ -553,4 +549,41 @@ mTimerId = 0; emit coverFlowEvent( TAP_EVENT ); } -} \ No newline at end of file +} + +int GlxCoverFlow::getFocusIndex( ) +{ + QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole ) ; + if ( variant.isValid() && variant.canConvert< int > () ) { + return variant.value< int > (); + } + return -1; +} + +HbIcon GlxCoverFlow::getIcon( int index ) +{ + QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFsImageRole ); + if ( variant.isValid() && variant.canConvert< HbIcon > () ) { + return variant.value () ; + } + return HbIcon() ; +} + +QString GlxCoverFlow::getUri( int index ) +{ + QVariant variant = mModel->data( mModel->index( index, 0 ), GlxUriRole ); + if ( variant.isValid() && variant.canConvert< QString > () ){ + return variant.value< QString > () ; + } + return QString(); +} + +bool GlxCoverFlow::isAnimatedImage( int index ) +{ + int frameCount = 0; + QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFrameCount ); + if ( variant.isValid() && variant.canConvert< int > () ) { + frameCount = variant.value< int > () ; + } + return frameCount > 1 ? true : false ; +} diff -r d0b4e67b3a60 -r f291796e213d ui/views/fullscreenview/src/glxfullscreenview.cpp --- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -63,10 +63,6 @@ mIconItem(NULL), mTvOutWrapper(NULL), mFullScreenToolBar(NULL), - mFlipAction(NULL), - mSendAction(NULL), - mDeleteAction(NULL), - mUseImageAction(NULL), mZoomWidget(NULL) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY ); @@ -89,14 +85,11 @@ mTvOutWrapper = new GlxTvOutWrapper(); } setHdmiModel(model); - - //Load/Retrieve the Widgets loadWidgets(); - //Initialize the coverflow and partially creates the coverflow with one image - // to make the widget light weight in order to make - // transition smooth - mCoverFlow->partiallyCreate( model, screenSize()); + // Initialize the coverflow and partially creates the coverflow with one image + // to make the widget light weight in order to make transition smooth + mCoverFlow->partiallyCreate( model, screenSize() ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT ); } @@ -104,24 +97,22 @@ void GlxFullScreenView::loadWidgets() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY ); - - //Load the Coverflow and image strip widget + mCoverFlow = qobject_cast (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW)); - - mZoomWidget = qobject_cast (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET)); - mZoomWidget->connectDecodeRequestToPinchEvent(); - mCoverFlow->setMultitouchFilter(mZoomWidget); + + mZoomWidget = qobject_cast (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET)); + mZoomWidget->connectDecodeRequestToPinchEvent(); + mCoverFlow->setMultitouchFilter(mZoomWidget); + //initialise the cover flow for basic connections and the rest mCoverFlow->setCoverFlow(); - - //Load the IMAGE STRIP & FULLSCREEN TOOLBAR[PUSH BUTTON] - mImageStrip = qobject_cast (mDocLoader->findWidget(GLXFULLSCREEN_FILMSTRIP)); + mImageStrip = qobject_cast (mDocLoader->findWidget(GLXFULLSCREEN_FILMSTRIP)); //When the widget is loaded/retreived the widgets are shown by default. //@to do : hide the widgets by default in docml mImageStrip->hide(); - mImageStrip->setLayoutName( QString( "ImageStrip" ) ); - mImageStrip->setEnabledAnimations(HbAbstractItemView::None); + mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file + mImageStrip->setEnabledAnimations( HbAbstractItemView::None ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT ); } @@ -138,66 +129,46 @@ mFullScreenToolBar = qobject_cast (mDocLoader->findObject(QString("toolBar"))); mFullScreenToolBar->clearActions(); - - //create Flip tool bar button action - mFlipAction = new HbAction(this); - mFlipAction->setData(EGlxCmdDetailsOpen); - mFlipAction->setIcon(HbIcon(GLXICON_FLIP)); - mFullScreenToolBar->addAction( mFlipAction); - - //create Send tool bar button action - mSendAction = new HbAction(this); - mSendAction->setData(EGlxCmdSend); - mSendAction->setIcon(HbIcon(GLXICON_SEND)); - mFullScreenToolBar->addAction( mSendAction); + + addToolBarAction( EGlxCmdDetailsOpen, GLXICON_FLIP, "Flip Action" ); //create Flip tool bar button action + addToolBarAction( EGlxCmdSend, GLXICON_SEND, "Send Action" ); //create Send tool bar button action + if( getSubState() != IMAGEVIEWER_S ) { + addToolBarAction( EGlxCmdDelete, GLXICON_DELETE, "Delete Action" ); //create Delete tool bar button action + } + else { + addToolBarAction( EGlxCmdHandled, GLXICON_USEIMAGE, "Use Action" ); //create Use Image tool bar button action + } + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_EXIT ); +} - //create Delete tool bar button action - mDeleteAction = new HbAction(this); - mDeleteAction->setData(EGlxCmdDelete); - mDeleteAction->setIcon(HbIcon(GLXICON_DELETE)); - - //create Use Image tool bar button action - mUseImageAction = new HbAction(this); - //mUseImageAction->setData(EGlxCmdDelete); - mUseImageAction->setIcon(HbIcon(GLXICON_USEIMAGE)); - if(getSubState() != IMAGEVIEWER_S){ - mFullScreenToolBar->addAction( mDeleteAction); - }else{ - mFullScreenToolBar->addAction( mUseImageAction); - } - - - connect(mFlipAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - connect(mSendAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - connect(mDeleteAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - connect(mUseImageAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_EXIT ); +void GlxFullScreenView::addToolBarAction( int commandId, const QString &iconName, const QString &name ) +{ + HbAction *action = new HbAction( this ); + action->setData( commandId ); + action->setIcon( HbIcon( iconName ) ); + action->setObjectName( name ); + mFullScreenToolBar->addAction( action); + connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); } void GlxFullScreenView::activate() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATE_ENTRY ); - - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); - //To:Do remove it later, currently it is solving the problem of status bar is not - //visible when tap on the screen first time - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); - //for zoom might not be required after wk15 release mWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents,true); mWindow->viewport()->grabGesture(Qt::PinchGesture); QCoreApplication::instance()->installEventFilter(this); - if(!mCoverFlow){ + if( !mCoverFlow ) { loadWidgets(); //retrives the widgets } - //Loads the widgets corresponding to the orientation. - loadViewSection(); + loadViewSection(); + + setStatusBarVisible(FALSE); + setTitleBarVisible(FALSE); mUiOffTimer = new QTimer(); mUiOff = true; @@ -282,6 +253,7 @@ delete mTvOutWrapper; mTvOutWrapper = NULL; } + if(mZoomWidget) { mZoomWidget->cleanUp(); @@ -369,7 +341,7 @@ OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY ); if ( mUiOff && getSubState() != FETCHER_S){ - if(!mFullScreenToolBar) { + if( !mFullScreenToolBar ) { loadFullScreenToolBar(); } mUiOff = FALSE; @@ -384,7 +356,6 @@ setStatusBarVisible(TRUE); setTitleBarVisible(TRUE); - if ( mImageStrip && getSubState() != IMAGEVIEWER_S) { mImageStrip->show(); HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" ); @@ -438,6 +409,10 @@ // for the image changed on deletion mTvOutWrapper->setImagetoHDMI(); } + if (mZoomWidget){ + // for the image changed on deletion + mZoomWidget->indexChanged(); + } return; } @@ -672,22 +647,7 @@ disconnect(mUiOffTimer, SIGNAL(timeout()), this, SLOT(hideUi())); } - if(mFlipAction) { - disconnect(mFlipAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - } - - if(mSendAction) { - disconnect(mSendAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - } - - if(mDeleteAction) { - disconnect(mDeleteAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - } - - if(mUseImageAction) { - disconnect(mUseImageAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); - } - if(mCoverFlow && mZoomWidget) { + if( mCoverFlow && mZoomWidget ) { disconnect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) ); disconnect(mZoomWidget,SIGNAL( zoomWidgetMovedBackground(int) ), mCoverFlow, SLOT( zoomFinished(int) ) ); } @@ -774,10 +734,13 @@ int GlxFullScreenView::getSubState() { - int substate = NO_FULLSCREEN_S; - QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); - if ( variant.isValid() && variant.canConvert () ) { - substate = variant.value(); + int substate = NO_FULLSCREEN_S; + + if ( mModel ) { + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + substate = variant.value(); + } } return substate; } diff -r d0b4e67b3a60 -r f291796e213d ui/views/gridview/inc/glxgridview.h --- a/ui/views/gridview/inc/glxgridview.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/gridview/inc/glxgridview.h Tue Jul 06 14:16:16 2010 +0300 @@ -70,7 +70,7 @@ void populated(); protected : - QVariant itemChange (GraphicsItemChange change, const QVariant &value) ; + private slots: void indicateLongPress(const QModelIndex& index, QPointF coords); diff -r d0b4e67b3a60 -r f291796e213d ui/views/gridview/src/glxgridview.cpp --- a/ui/views/gridview/src/glxgridview.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/gridview/src/glxgridview.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -72,18 +72,11 @@ void GlxGridView::activate() { OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY ); - if(mUiOnButton == NULL) { - mUiOnButton = new HbPushButton(this); - connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool))); - mUiOnButton->setGeometry(QRectF(590,0,40,40)); - mUiOnButton->setZValue(1); - mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON)); - mUiOnButton->hide(); - } loadGridView(); connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection); if(mCountItem == NULL) { mCountItem = new HbLabel(this); + mCountItem->setObjectName( "Count" ); HbFrameItem *frame = new HbFrameItem(this); //graphics for mCountItem frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -205,6 +198,7 @@ mWidget->setSelectionMode(HgWidget::MultiSelection); if (mMainLabel == NULL) { mMainLabel = new HbLabel("Select Photos", this); + mMainLabel->setObjectName( "Select Photos"); HbFrameItem *frame1 = new HbFrameItem(this); //graphics for mMainLabel frame1->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame1->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -213,6 +207,7 @@ } if (mMarkCheckBox == NULL) { mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this); + mMarkCheckBox->setObjectName( "CheckB MarkAll" ); HbFrameItem *frame2 = new HbFrameItem(this); //graphics for mMarkCheckBox frame2->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame2->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -221,6 +216,7 @@ } if (mCountLabel == NULL) { mCountLabel = new HbLabel(this); + mCountLabel->setObjectName( "MarkCount" ); HbFrameItem *frame3 = new HbFrameItem(this); //graphics for mCountLabel frame3->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame3->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -345,9 +341,6 @@ showAlbumTitle(variant.toString()); } } - else if(XQServiceUtil::isService()){ - showAlbumTitle(GLX_FETCHER_TITLE); - } } } } @@ -361,6 +354,7 @@ : QSize( deviceSize.height(), deviceSize.width() ) ; if(mAlbumName == NULL) { mAlbumName = new HbLabel(this); + mAlbumName->setObjectName( "Album Name" ); HbFrameItem *frame = new HbFrameItem(this); //graphics for mAlbumName frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -414,12 +408,14 @@ displayText.append(GLX_GRID_OPEN_CAMERA); } mZeroItemLabel = new HbLabel(displayText, this); + mZeroItemLabel->setObjectName( "No Image" ); } mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32)); mZeroItemLabel->setAlignment(Qt::AlignHCenter); mZeroItemLabel->show(); if (mCameraButton == NULL) { mCameraButton = new HbPushButton(this); + mCameraButton->setObjectName( "Camera Button" ); mCameraButton->setIcon(HbIcon(GLXICON_CAMERA)); mCameraButton->hide(); connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool))); @@ -433,6 +429,12 @@ void GlxGridView::populated() { + QVariant variant = mModelWrapper->data(mModelWrapper->index(0,0), GlxVisualWindowIndex ); + int visualIndex = 0; + if ( variant.isValid() && variant.canConvert () ) { + visualIndex = variant.value(); + } + mWidget->scrollTo(mModelWrapper->index(visualIndex,0)); showItemCount(); } @@ -523,6 +525,7 @@ mWindow->viewport()->grabGesture(Qt::TapGesture); mWindow->viewport()->grabGesture(Qt::TapAndHoldGesture); mWidget = new HgGrid(orient); + mWidget->setObjectName( "Media Wall" ); mWidget->setLongPressEnabled(true); mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide); setWidget( mWidget ); @@ -542,14 +545,16 @@ if( orient == Qt::Horizontal ) { setItemVisible(Hb::AllItems, FALSE) ; setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); - //To:Do remove it later, currently it is solving the problem of status bar is not - //visible when tap on the screen first time - setItemVisible(Hb::AllItems, FALSE) ; - setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); - showItemCount(); - if (mUiOnButton) { - mUiOnButton->show(); + showItemCount(); + if(mUiOnButton == NULL) { + mUiOnButton = new HbPushButton(this); + connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool))); + mUiOnButton->setGeometry(QRectF(590,0,40,40)); + mUiOnButton->setZValue(1); + mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON)); + mUiOnButton->setObjectName( "UiOn Button" ); } + mUiOnButton->show(); } else { showHbItems(); @@ -593,16 +598,6 @@ } } -QVariant GlxGridView::itemChange (GraphicsItemChange change, const QVariant &value) - { - OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" ); - static bool isEmit = true; - if ( isEmit && change == QGraphicsItem::ItemVisibleHasChanged && value.toBool() ) { - emit actionTriggered( EGlxCmdSetupItem ); - isEmit = false; - } - return HbWidget::itemChange(change, value); - } void GlxGridView::addViewConnection() { diff -r d0b4e67b3a60 -r f291796e213d ui/views/listview/inc/glxlistview.h --- a/ui/views/listview/inc/glxlistview.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/listview/inc/glxlistview.h Tue Jul 06 14:16:16 2010 +0300 @@ -43,6 +43,7 @@ public slots: void itemSelected(const QModelIndex & index); + void populated(); private slots: void indicateLongPress( HbAbstractViewItem *item, QPointF coords ); diff -r d0b4e67b3a60 -r f291796e213d ui/views/listview/src/glxlistview.cpp --- a/ui/views/listview/src/glxlistview.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/listview/src/glxlistview.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -63,8 +63,12 @@ void GlxListView::setModel(QAbstractItemModel *model) { qDebug("GlxListView::setModel()"); + if ( mModel ) { + disconnect(mModel, SIGNAL(listPopulated()), this, SLOT( populated())); + } mModel = model ; mListView->setModel(mModel); + connect(mModel, SIGNAL(listPopulated()), this, SLOT( populated())); } void GlxListView::addToolBar( HbToolBar *toolBar ) @@ -180,6 +184,17 @@ } } +void GlxListView::populated() +{ + QVariant variant = mModel->data(mModel->index(0,0), GlxVisualWindowIndex ); + int visualIndex = 0; + if ( variant.isValid() && variant.canConvert () ) + { + visualIndex = variant.value(); + } + //Scroll To the Visible Index as mentioned in the AM. + mListView->scrollTo(mModel->index(visualIndex, 0), HbAbstractItemView::PositionAtTop ); +} void GlxListView::itemSelected(const QModelIndex & index) { qDebug("GlxListView::itemSelected() index = %d", index.row() ); diff -r d0b4e67b3a60 -r f291796e213d ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp --- a/ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -71,24 +71,29 @@ if ( mContextlabel == NULL ) { mContextlabel = new HbLabel( GLX_MENU_SLIDESHOW, this ); + mContextlabel->setObjectName( "SlideShow" ); } if ( mEffectlabel == NULL ) { mEffectlabel = new HbLabel( GLX_LABEL_TRANSITION_EFFECT, this ); + mEffectlabel->setObjectName( "Effect" ); } if ( mEffect == NULL ) { mEffect = new HbComboBox(this); QStringList effectList = mSettings->slideShowEffectList(); - mEffect->addItems( effectList ); + mEffect->addItems( effectList ); + mEffect->setObjectName( "Effect List" ); } if ( mDelaylabel == NULL ) { mDelaylabel = new HbLabel( GLX_LABEL_TRANSITION_DELAY, this ); + mDelaylabel->setObjectName( "Delay" ); } if ( mDelay == NULL ) { mDelay = new HbComboBox(this); + mDelay->setObjectName( "Delay List" ); QStringList delayList; delayList << GLX_VAL_SLOW << GLX_VAL_MEDIUM << GLX_VAL_FAST ; mDelay->addItems( delayList ); diff -r d0b4e67b3a60 -r f291796e213d ui/views/slideshowview/src/glxslideshowview.cpp --- a/ui/views/slideshowview/src/glxslideshowview.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/slideshowview/src/glxslideshowview.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -64,7 +64,7 @@ void GlxSlideShowView::activate() { TRACER("GlxSlideShowView::activate()"); - mWindow->setOrientation(Qt::Horizontal, true); // Actually it is animation false, Hack for Bug in Media wall -todo- need to Address this ASAP + mWindow->setOrientation(Qt::Horizontal, false); //finds the widgets from the docml loadObjects(); @@ -83,7 +83,7 @@ void GlxSlideShowView::deActivate() { TRACER("GlxSlideShowView::deActivate()"); - mWindow->unsetOrientation(true); // Actually it is animation false, Hack for Bug in Media wall -todo- need to Address this ASAP + mWindow->unsetOrientation(false); setStatusBarVisible(TRUE); setTitleBarVisible(TRUE); diff -r d0b4e67b3a60 -r f291796e213d ui/views/slideshowview/src/glxslideshowwidget.cpp --- a/ui/views/slideshowview/src/glxslideshowwidget.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -72,9 +72,10 @@ mIsPause = false; for ( int i = 0; i < NBR_ITEM ; i++) { - mIconItems[i] = new HbIconItem( this ); - mIconItems[i]->setBrush( QBrush( Qt::black ) ); + mIconItems[i] = new HbIconItem(this); + mIconItems[i]->setBrush(QBrush(Qt::black)); mIconItems[i]->setAlignment( Qt::AlignCenter ); + mIconItems[i]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) ); } mSlideTimer = new QTimer(); diff -r d0b4e67b3a60 -r f291796e213d ui/views/viewbase/inc/glxview.h --- a/ui/views/viewbase/inc/glxview.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/viewbase/inc/glxview.h Tue Jul 06 14:16:16 2010 +0300 @@ -60,6 +60,7 @@ void actionTriggered(qint32 id); void itemSpecificMenuTriggered(qint32,QPointF ); void gridItemSelected(const QModelIndex &); + private : qint32 mId; diff -r d0b4e67b3a60 -r f291796e213d ui/views/views.pro --- a/ui/views/views.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/views/views.pro Tue Jul 06 14:16:16 2010 +0300 @@ -63,6 +63,7 @@ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE TARGET.EPOCALLOWDLLDATA = 1 TARGET.CAPABILITY = ALL -TCB +MMP_RULES += SMPSAFE } # Input diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/effectplugin/inc/glxflipeffectplugin.h --- a/ui/viewutilities/effectplugin/inc/glxflipeffectplugin.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewutilities/effectplugin/inc/glxflipeffectplugin.h Tue Jul 06 14:16:16 2010 +0300 @@ -45,23 +45,12 @@ void setUpItems( QList< QGraphicsItem * > & items ); /* - * second animation will be run later - */ - bool isAnimationLater(int index) ; - - /* - * return the second animation object to play the flip show animation - */ - QGraphicsItem * animationItem() ; - - /* * get the name of the effect, use to shown in the slide show setting view */ - static QString effectName() { return QString ("Flip") ; } + static QString effectName(); private : QList mEffectFileList; - QGraphicsItem *mItem; }; #endif /*GLXFLIPEFFECTPLUGIN_H*/ diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/effectplugin/inc/glxhelixeffectplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewutilities/effectplugin/inc/glxhelixeffectplugin.h Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,57 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + +#ifndef GLXHELIXEFFECTPLUGIN_H +#define GLXHELIXEFFECTPLUGIN_H + +#include "glxeffectpluginbase.h" + +class QString ; + +class GlxHelixEffectPlugin : public GlxEffectPluginBase +{ +public : + /* + * Constructor + */ + GlxHelixEffectPlugin(); + + /* + * Destructor + */ + ~GlxHelixEffectPlugin(); + + /* + * return the fade in and fade out fxml file list + */ + QList effectFileList() { return mEffectFileList ; } + + /* + * setup the item postion and set the mItem value + */ + void setUpItems( QList< QGraphicsItem * > & items ); + + /* + * get the name of the effect, use to shown in the slide show setting view + */ + static QString effectName(); + +private : + QList mEffectFileList; +}; + +#endif /* GLXHELIXEFFECTPLUGIN_H */ diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/effectplugin/src/glxeffectpluginresolver.cpp --- a/ui/viewutilities/effectplugin/src/glxeffectpluginresolver.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewutilities/effectplugin/src/glxeffectpluginresolver.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -22,6 +22,7 @@ #include "glxfadeeffectplugin.h" #include "glxflipeffectplugin.h" #include "glxzoominoutplugin.h" +#include "glxhelixeffectplugin.h" GlxEffectPluginResolver::GlxEffectPluginResolver() { @@ -30,6 +31,7 @@ QString GlxEffectPluginResolver::effectName( int effectId ) { + qDebug( " GlxEffectPluginResolver::effectName %d ", effectId ); switch ( effectId ) { case FLIP_EFFECT : return GlxFlipEffectPlugin::effectName(); @@ -38,7 +40,10 @@ return GlxFadeEffectPlugin::effectName() ; case ZOOM_TO_FACE : - return GlxZoomInOutEffectPlugin::effectName(); //To:Do temp remove once plugin is ready + return GlxZoomInOutEffectPlugin::effectName(); + + case HELIX_EFFECT : + return GlxHelixEffectPlugin::effectName(); default : return GlxFadeEffectPlugin::effectName() ; @@ -47,6 +52,7 @@ GlxEffectPluginBase *GlxEffectPluginResolver::effectPlugin( int effectId ) { + qDebug( " GlxEffectPluginResolver::effectPlugin %d ", effectId ); GlxEffectPluginBase * effectPlugin = mEffectPluginList.value( ( GlxEffect )effectId ); if ( effectPlugin ) { return effectPlugin ; @@ -63,6 +69,11 @@ mEffectPluginList[ ZOOM_TO_FACE ] = effectPlugin ; break ; + case HELIX_EFFECT : + effectPlugin = new GlxHelixEffectPlugin() ; + mEffectPluginList[ HELIX_EFFECT ] = effectPlugin ; + break ; + case SMOOTH_FADE : default : effectPlugin = mEffectPluginList.value( SMOOTH_FADE ); diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp --- a/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -21,33 +21,22 @@ GlxFlipEffectPlugin::GlxFlipEffectPlugin() : GlxEffectPluginBase( FLIP_EFFECT ) { - mEffectFileList.append(QString(":/data/view_flip_hide.fxml")); - mEffectFileList.append(QString(":/data/view_flip_show.fxml")); + mEffectFileList.append(QString(":/data/uphide.fxml")); + mEffectFileList.append(QString(":/data/downshow.fxml")); } void GlxFlipEffectPlugin::setUpItems( QList< QGraphicsItem * > & items ) { if ( items.count() < 2 ) return; - - mItem = items.at(1); - mItem->hide(); - mItem->setPos(0,0); + items.at(0)->setPos(0,0); + items.at(1)->setPos(0,0); } -bool GlxFlipEffectPlugin::isAnimationLater(int index) -{ - if ( index == 1) { - return true; - } - return false; -} - -QGraphicsItem * GlxFlipEffectPlugin::animationItem() +QString GlxFlipEffectPlugin::effectName() { - mItem->show(); - return mItem ; + return ( "FLip" ) ; } GlxFlipEffectPlugin::~GlxFlipEffectPlugin() diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + + +#include "glxhelixeffectplugin.h" +#include "glxuistd.h" +#include "glxlocalisationstrings.h" + +GlxHelixEffectPlugin::GlxHelixEffectPlugin() : GlxEffectPluginBase( HELIX_EFFECT ) +{ + mEffectFileList.append(QString(":/data/helix.fxml")); + mEffectFileList.append(QString(":/data/fadein.fxml")); +} + +void GlxHelixEffectPlugin::setUpItems( QList< QGraphicsItem * > & items ) +{ + if ( items.count() < 2 ) + return; + + items.at(0)->setPos(0,0); + items.at(1)->setPos(0,0); +} + +QString GlxHelixEffectPlugin::effectName() +{ + return ( "Helix" ) ; +} + +GlxHelixEffectPlugin::~GlxHelixEffectPlugin() +{ + mEffectFileList.clear(); +} + diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/settingutility/inc/glxsetting.h --- a/ui/viewutilities/settingutility/inc/glxsetting.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewutilities/settingutility/inc/glxsetting.h Tue Jul 06 14:16:16 2010 +0300 @@ -25,7 +25,7 @@ class XQSettingsManager; class QStringList; -#define NBR_SLIDESHOW_EFFECT 3 +#define NBR_SLIDESHOW_EFFECT 4 /* * This class is used for read and write the photos application related setting from the centrep. diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/settingutility/src/glxsetting.cpp --- a/ui/viewutilities/settingutility/src/glxsetting.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewutilities/settingutility/src/glxsetting.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -29,7 +29,7 @@ const TUint32 KGlxSlow = 0x3; const TUint32 KGlxMeduim = 0x4; const TUint32 KGlxFast = 0x5; -const TUint32 KGlxSlideShowEffect[ ] = { 0x6, 0x7, 0x8 }; +const TUint32 KGlxSlideShowEffect[ ] = { 0x6, 0x7, 0x8, 0x9 }; const TUint32 KCRUidGallery = 0x20007194; GlxSetting GlxSetting::mObj ; diff -r d0b4e67b3a60 -r f291796e213d ui/viewutilities/viewutilities.pro --- a/ui/viewutilities/viewutilities.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/viewutilities/viewutilities.pro Tue Jul 06 14:16:16 2010 +0300 @@ -35,6 +35,7 @@ INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE TARGET.EPOCALLOWDLLDATA = 1 TARGET.CAPABILITY = ALL -TCB +MMP_RULES += SMPSAFE } # Input @@ -44,6 +45,7 @@ effectplugin/inc/glxfadeeffectplugin.h \ effectplugin/inc/glxflipeffectplugin.h \ effectplugin/inc/glxzoominoutplugin.h \ + effectplugin/inc/glxhelixeffectplugin.h \ effectplugin/inc/glxeffectpluginresolver.h \ effectengine/inc/glxtransitioneffect.h \ effectengine/inc/glxeffectengine.h @@ -53,6 +55,7 @@ effectplugin/src/glxfadeeffectplugin.cpp \ effectplugin/src/glxflipeffectplugin.cpp \ effectplugin/src/glxzoominoutplugin.cpp \ + effectplugin/src/glxhelixeffectplugin.cpp \ effectplugin/src/glxeffectpluginresolver.cpp \ effectengine/src/glxtransitioneffect.cpp \ effectengine/src/glxeffectengine.cpp diff -r d0b4e67b3a60 -r f291796e213d ui/widgets/bwins/glxzoomwidgetu.def --- a/ui/widgets/bwins/glxzoomwidgetu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/widgets/bwins/glxzoomwidgetu.def Tue Jul 06 14:16:16 2010 +0300 @@ -23,18 +23,20 @@ ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 22 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 23 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 24 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) - ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 25 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) - ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 26 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) - ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 27 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const - ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 28 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) - ??_EGlxZoomWidget@@UAE@I@Z @ 29 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) - ??1GlxZoomWidget@@UAE@XZ @ 30 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) - ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 31 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) - ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 32 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) - ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 33 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) - ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 34 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) - ?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 35 NONAME ; void GlxZoomWidget::animationFrameChanged(int) - ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 36 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) - ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) - ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 38 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) + ?indexChanged@GlxZoomWidget@@QAEXXZ @ 25 NONAME ; void GlxZoomWidget::indexChanged(void) + ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 26 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) + ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 27 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) + ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 28 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) + ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 29 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const + ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 30 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) + ??_EGlxZoomWidget@@UAE@I@Z @ 31 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) + ??1GlxZoomWidget@@UAE@XZ @ 32 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) + ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 33 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) + ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 34 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) + ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 35 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) + ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 36 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) + ?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 37 NONAME ; void GlxZoomWidget::animationFrameChanged(int) + ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) + ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 39 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) + ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 40 NONAME ; void GlxZoomWidget::modelDestroyed(void) diff -r d0b4e67b3a60 -r f291796e213d ui/widgets/eabi/glxzoomwidgetu.def --- a/ui/widgets/eabi/glxzoomwidgetu.def Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/widgets/eabi/glxzoomwidgetu.def Tue Jul 06 14:16:16 2010 +0300 @@ -1,46 +1,48 @@ EXPORTS _ZN13GlxZoomWidget10sceneEventEP6QEvent @ 1 NONAME - _ZN13GlxZoomWidget11dataChangedE11QModelIndexS0_ @ 2 NONAME - _ZN13GlxZoomWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME - _ZN13GlxZoomWidget11qt_metacastEPKc @ 4 NONAME - _ZN13GlxZoomWidget12indexChangedEi @ 5 NONAME - _ZN13GlxZoomWidget13animateZoomInE7QPointF @ 6 NONAME - _ZN13GlxZoomWidget13setWindowSizeE5QSize @ 7 NONAME - _ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 8 NONAME - _ZN13GlxZoomWidget15getFocusedImageEv @ 9 NONAME - _ZN13GlxZoomWidget15setMinMaxZValueEii @ 10 NONAME - _ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 11 NONAME - _ZN13GlxZoomWidget16staticMetaObjectE @ 12 NONAME DATA 16 - _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 13 NONAME - _ZN13GlxZoomWidget17sendDecodeRequestEi @ 14 NONAME - _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 15 NONAME - _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 16 NONAME - _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 17 NONAME - _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 18 NONAME - _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 19 NONAME - _ZN13GlxZoomWidget21animationFrameChangedEi @ 20 NONAME - _ZN13GlxZoomWidget21decodedImageAvailableEv @ 21 NONAME - _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 22 NONAME - _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 23 NONAME - _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 24 NONAME - _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 25 NONAME - _ZN13GlxZoomWidget7cleanUpEv @ 26 NONAME - _ZN13GlxZoomWidget8activateEv @ 27 NONAME - _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 28 NONAME - _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 29 NONAME - _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 30 NONAME - _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 31 NONAME - _ZN13GlxZoomWidgetD0Ev @ 32 NONAME - _ZN13GlxZoomWidgetD1Ev @ 33 NONAME - _ZN13GlxZoomWidgetD2Ev @ 34 NONAME - _ZNK13GlxZoomWidget10metaObjectEv @ 35 NONAME - _ZTI13GlxZoomWidget @ 36 NONAME - _ZTV13GlxZoomWidget @ 37 NONAME - _ZThn16_N13GlxZoomWidgetD0Ev @ 38 NONAME - _ZThn16_N13GlxZoomWidgetD1Ev @ 39 NONAME - _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 40 NONAME - _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 41 NONAME - _ZThn8_N13GlxZoomWidgetD0Ev @ 42 NONAME - _ZThn8_N13GlxZoomWidgetD1Ev @ 43 NONAME - _ZN13GlxZoomWidget10timerEventEP11QTimerEvent @ 44 NONAME + _ZN13GlxZoomWidget10timerEventEP11QTimerEvent @ 2 NONAME + _ZN13GlxZoomWidget11dataChangedE11QModelIndexS0_ @ 3 NONAME + _ZN13GlxZoomWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 4 NONAME + _ZN13GlxZoomWidget11qt_metacastEPKc @ 5 NONAME + _ZN13GlxZoomWidget12indexChangedEi @ 6 NONAME + _ZN13GlxZoomWidget12indexChangedEv @ 7 NONAME + _ZN13GlxZoomWidget13animateZoomInE7QPointF @ 8 NONAME + _ZN13GlxZoomWidget13setWindowSizeE5QSize @ 9 NONAME + _ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 10 NONAME + _ZN13GlxZoomWidget15getFocusedImageEv @ 11 NONAME + _ZN13GlxZoomWidget15setMinMaxZValueEii @ 12 NONAME + _ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 13 NONAME + _ZN13GlxZoomWidget16staticMetaObjectE @ 14 NONAME DATA 16 + _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 15 NONAME + _ZN13GlxZoomWidget17sendDecodeRequestEi @ 16 NONAME + _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 17 NONAME + _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 18 NONAME + _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 19 NONAME + _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 20 NONAME + _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 21 NONAME + _ZN13GlxZoomWidget21animationFrameChangedEi @ 22 NONAME + _ZN13GlxZoomWidget21decodedImageAvailableEv @ 23 NONAME + _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 24 NONAME + _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 25 NONAME + _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 26 NONAME + _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 27 NONAME + _ZN13GlxZoomWidget7cleanUpEv @ 28 NONAME + _ZN13GlxZoomWidget8activateEv @ 29 NONAME + _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 30 NONAME + _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 31 NONAME + _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 32 NONAME + _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 33 NONAME + _ZN13GlxZoomWidgetD0Ev @ 34 NONAME + _ZN13GlxZoomWidgetD1Ev @ 35 NONAME + _ZN13GlxZoomWidgetD2Ev @ 36 NONAME + _ZNK13GlxZoomWidget10metaObjectEv @ 37 NONAME + _ZTI13GlxZoomWidget @ 38 NONAME + _ZTV13GlxZoomWidget @ 39 NONAME + _ZThn16_N13GlxZoomWidgetD0Ev @ 40 NONAME + _ZThn16_N13GlxZoomWidgetD1Ev @ 41 NONAME + _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 42 NONAME + _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 43 NONAME + _ZThn8_N13GlxZoomWidgetD0Ev @ 44 NONAME + _ZThn8_N13GlxZoomWidgetD1Ev @ 45 NONAME + _ZN13GlxZoomWidget14modelDestroyedEv @ 46 NONAME diff -r d0b4e67b3a60 -r f291796e213d ui/widgets/glxzoomwidget/glxzoomwidget.pro --- a/ui/widgets/glxzoomwidget/glxzoomwidget.pro Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/widgets/glxzoomwidget/glxzoomwidget.pro Tue Jul 06 14:16:16 2010 +0300 @@ -37,7 +37,8 @@ TARGET.UID3 = 0x200104E4 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE TARGET.EPOCALLOWDLLDATA = 1 -TARGET.CAPABILITY = ALL -TCB +TARGET.CAPABILITY = ALL -TCB +MMP_RULES += SMPSAFE } exportfile = "inc/glxzoomwidget.h APP_LAYER_PLATFORM_EXPORT_PATH(glxzoomwidget.h)" diff -r d0b4e67b3a60 -r f291796e213d ui/widgets/glxzoomwidget/inc/glxzoomwidget.h --- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Tue Jul 06 14:16:16 2010 +0300 @@ -48,7 +48,12 @@ void activate(); void setMinMaxZValue(int minZvalue, int maxZvalue); void connectDecodeRequestToPinchEvent(); - + + /* + * This is an overloaded function when an index is changes due to deletion + */ + void indexChanged(); + signals: void pinchGestureReceived(int index); void zoomWidgetMovedBackground(int index); @@ -70,7 +75,7 @@ void timerEvent(QTimerEvent *event); protected slots: void dataChanged(QModelIndex startIndex, QModelIndex endIndex); - + void modelDestroyed(); private: bool executeGestureEvent(QGraphicsItem *source,QGestureEvent *event); diff -r d0b4e67b3a60 -r f291796e213d ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp --- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Wed Jun 23 18:12:48 2010 +0300 +++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Tue Jul 06 14:16:16 2010 +0300 @@ -74,6 +74,7 @@ mModel = model; retreiveFocusedImage(); //Update mZoomItem with focused Image connect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); + connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); } } @@ -99,6 +100,7 @@ { if(mModel) { disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); + disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); mModel = NULL; } if(mImageDecoder) { @@ -385,6 +387,16 @@ } } +void GlxZoomWidget::modelDestroyed() +{ + mModel = NULL ; +} + +void GlxZoomWidget::indexChanged() + { + retreiveFocusedImage(); + } + void GlxZoomWidget::decodedImageAvailable() { //new bitmap with better resolution is available