# HG changeset patch # User hgs # Date 1285580600 -19800 # Node ID 45459746d5e8febb4d66d023d66678626ab71492 # Parent ccee5c4b0de4afa55d206cc698203fc126710516 201039 diff -r ccee5c4b0de4 -r 45459746d5e8 data/fullscreen.docml --- a/data/fullscreen.docml Mon Sep 20 12:39:08 2010 +0530 +++ b/data/fullscreen.docml Mon Sep 27 15:13:20 2010 +0530 @@ -12,7 +12,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -55,6 +55,7 @@ + @@ -66,7 +67,7 @@ - + @@ -86,6 +87,7 @@ + @@ -97,7 +99,7 @@ - + diff -r ccee5c4b0de4 -r 45459746d5e8 data/fullscreentogridportrait.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/fullscreentogridportrait.fxml Mon Sep 27 15:13:20 2010 +0530 @@ -0,0 +1,21 @@ + + + + +0.4 + + 0 + 1 +1 +1 + + + + + 0.4 + 63.0 + 63.0 + + + + diff -r ccee5c4b0de4 -r 45459746d5e8 photos.qrc --- a/photos.qrc Mon Sep 20 12:39:08 2010 +0530 +++ b/photos.qrc Mon Sep 27 15:13:20 2010 +0530 @@ -16,6 +16,7 @@ data/uphide.fxml data/downshow.fxml data/fullscreentogrid.fxml + data/fullscreentogridportrait.fxml data/gridtofullscreenhide.fxml data/gridtofullscreenshow.fxml data/rotatelandscape.fxml @@ -37,6 +38,6 @@ data/Wait/qgn_graf_ring_wait_08.svg data/Wait/qgn_graf_ring_wait_09.svg data/Wait/qgn_graf_ring_wait_10.svg - data/details.svg + data/details.svg diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/bwins/glxtvoutwrapperu.def --- a/tvout/bwins/glxtvoutwrapperu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/bwins/glxtvoutwrapperu.def Mon Sep 27 15:13:20 2010 +0530 @@ -2,11 +2,10 @@ ?itemNotSupported@GlxTvOutWrapper@@QAEXXZ @ 1 NONAME ; void GlxTvOutWrapper::itemNotSupported(void) ??1GlxTvOutWrapper@@QAE@XZ @ 2 NONAME ; GlxTvOutWrapper::~GlxTvOutWrapper(void) ?activateZoom@GlxTvOutWrapper@@QAEX_N@Z @ 3 NONAME ; void GlxTvOutWrapper::activateZoom(bool) - ??0GlxTvOutWrapper@@QAE@XZ @ 4 NONAME ; GlxTvOutWrapper::GlxTvOutWrapper(void) - ?deactivateZoom@GlxTvOutWrapper@@QAEXXZ @ 5 NONAME ; void GlxTvOutWrapper::deactivateZoom(void) - ?fadeSurface@GlxTvOutWrapper@@QAEX_N@Z @ 6 NONAME ; void GlxTvOutWrapper::fadeSurface(bool) - ?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 7 NONAME ; void GlxTvOutWrapper::setToCloningMode(void) - ?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(void) + ?setModel@GlxTvOutWrapper@@QAEXPAVQAbstractItemModel@@VQSize@@@Z @ 4 NONAME ; void GlxTvOutWrapper::setModel(class QAbstractItemModel *, class QSize) + ??0GlxTvOutWrapper@@QAE@XZ @ 5 NONAME ; GlxTvOutWrapper::GlxTvOutWrapper(void) + ?deactivateZoom@GlxTvOutWrapper@@QAEXXZ @ 6 NONAME ; void GlxTvOutWrapper::deactivateZoom(void) + ?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 7 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(void) + ?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setToCloningMode(void) ?setToNativeMode@GlxTvOutWrapper@@QAEXXZ @ 9 NONAME ; void GlxTvOutWrapper::setToNativeMode(void) - ?setModel@GlxTvOutWrapper@@QAEXPAVQAbstractItemModel@@VQSize@@_N@Z @ 10 NONAME ; void GlxTvOutWrapper::setModel(class QAbstractItemModel *, class QSize, bool) diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/eabi/glxtvoutwrapperu.def --- a/tvout/eabi/glxtvoutwrapperu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/eabi/glxtvoutwrapperu.def Mon Sep 27 15:13:20 2010 +0530 @@ -1,14 +1,13 @@ EXPORTS - _ZN15GlxTvOutWrapper11fadeSurfaceEb @ 1 NONAME - _ZN15GlxTvOutWrapper12activateZoomEb @ 2 NONAME - _ZN15GlxTvOutWrapper14deactivateZoomEv @ 3 NONAME - _ZN15GlxTvOutWrapper14setImagetoHDMIEv @ 4 NONAME - _ZN15GlxTvOutWrapper15setToNativeModeEv @ 5 NONAME - _ZN15GlxTvOutWrapper16itemNotSupportedEv @ 6 NONAME - _ZN15GlxTvOutWrapper16setToCloningModeEv @ 7 NONAME - _ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModel5QSizeb @ 8 NONAME - _ZN15GlxTvOutWrapperC1Ev @ 9 NONAME - _ZN15GlxTvOutWrapperC2Ev @ 10 NONAME - _ZN15GlxTvOutWrapperD1Ev @ 11 NONAME - _ZN15GlxTvOutWrapperD2Ev @ 12 NONAME + _ZN15GlxTvOutWrapper12activateZoomEb @ 1 NONAME + _ZN15GlxTvOutWrapper14deactivateZoomEv @ 2 NONAME + _ZN15GlxTvOutWrapper14setImagetoHDMIEv @ 3 NONAME + _ZN15GlxTvOutWrapper15setToNativeModeEv @ 4 NONAME + _ZN15GlxTvOutWrapper16itemNotSupportedEv @ 5 NONAME + _ZN15GlxTvOutWrapper16setToCloningModeEv @ 6 NONAME + _ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModel5QSize @ 7 NONAME + _ZN15GlxTvOutWrapperC1Ev @ 8 NONAME + _ZN15GlxTvOutWrapperC2Ev @ 9 NONAME + _ZN15GlxTvOutWrapperD1Ev @ 10 NONAME + _ZN15GlxTvOutWrapperD2Ev @ 11 NONAME diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/bwins/glxtvoutu.def --- a/tvout/tvoutengine/bwins/glxtvoutu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/bwins/glxtvoutu.def Mon Sep 27 15:13:20 2010 +0530 @@ -1,17 +1,16 @@ EXPORTS ?ActivateZoom@CGlxHdmiController@@QAEXH@Z @ 1 NONAME ; void CGlxHdmiController::ActivateZoom(int) ?ScreenSizeL@CGlxTv@@QBE?AVTSize@@XZ @ 2 NONAME ; class TSize CGlxTv::ScreenSizeL(void) const - ?NewL@CGlxHdmiController@@SAPAV1@VTRect@@H@Z @ 3 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(class TRect, int) - ?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@PAVCFbsBitmap@@H@Z @ 4 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class CFbsBitmap *, int) - ??1CGlxTv@@UAE@XZ @ 5 NONAME ; CGlxTv::~CGlxTv(void) - ??1CGlxHdmiController@@UAE@XZ @ 6 NONAME ; CGlxHdmiController::~CGlxHdmiController(void) - ?IsWidescreen@CGlxTv@@QBEHXZ @ 7 NONAME ; int CGlxTv::IsWidescreen(void) const - ?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void) - ?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void) - ?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 10 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &) - ?IsConnected@CGlxTv@@QBEHXZ @ 11 NONAME ; int CGlxTv::IsConnected(void) const - ?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 12 NONAME ; void CGlxHdmiController::ItemNotSupported(void) - ?FadeSurface@CGlxHdmiController@@QAEXH@Z @ 13 NONAME ; void CGlxHdmiController::FadeSurface(int) - ?IsHDMIConnected@CGlxTv@@QBEHXZ @ 14 NONAME ; int CGlxTv::IsHDMIConnected(void) const - ?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 15 NONAME ; void CGlxHdmiController::DeactivateZoom(void) + ?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@PAVCFbsBitmap@@H@Z @ 3 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class CFbsBitmap *, int) + ??1CGlxTv@@UAE@XZ @ 4 NONAME ; CGlxTv::~CGlxTv(void) + ??1CGlxHdmiController@@UAE@XZ @ 5 NONAME ; CGlxHdmiController::~CGlxHdmiController(void) + ?IsWidescreen@CGlxTv@@QBEHXZ @ 6 NONAME ; int CGlxTv::IsWidescreen(void) const + ?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 7 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void) + ?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void) + ?IsConnected@CGlxTv@@QBEHXZ @ 9 NONAME ; int CGlxTv::IsConnected(void) const + ?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 10 NONAME ; void CGlxHdmiController::ItemNotSupported(void) + ?NewL@CGlxHdmiController@@SAPAV1@VTRect@@@Z @ 11 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(class TRect) + ?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 12 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &) + ?IsHDMIConnected@CGlxTv@@QBEHXZ @ 13 NONAME ; int CGlxTv::IsHDMIConnected(void) const + ?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 14 NONAME ; void CGlxHdmiController::DeactivateZoom(void) diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/eabi/glxtvoutu.def --- a/tvout/tvoutengine/eabi/glxtvoutu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/eabi/glxtvoutu.def Mon Sep 27 15:13:20 2010 +0530 @@ -1,29 +1,28 @@ EXPORTS - _ZN18CGlxHdmiController11FadeSurfaceEi @ 1 NONAME - _ZN18CGlxHdmiController12ActivateZoomEi @ 2 NONAME - _ZN18CGlxHdmiController14DeactivateZoomEv @ 3 NONAME - _ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME - _ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME - _ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME - _ZN18CGlxHdmiController4NewLE5TRecti @ 7 NONAME - _ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 8 NONAME - _ZN18CGlxHdmiControllerD0Ev @ 9 NONAME - _ZN18CGlxHdmiControllerD1Ev @ 10 NONAME - _ZN18CGlxHdmiControllerD2Ev @ 11 NONAME - _ZN6CGlxTv4NewLER14MGlxTvObserver @ 12 NONAME - _ZN6CGlxTvD0Ev @ 13 NONAME - _ZN6CGlxTvD1Ev @ 14 NONAME - _ZN6CGlxTvD2Ev @ 15 NONAME - _ZNK6CGlxTv11IsConnectedEv @ 16 NONAME - _ZNK6CGlxTv11ScreenSizeLEv @ 17 NONAME - _ZNK6CGlxTv12IsWidescreenEv @ 18 NONAME - _ZNK6CGlxTv15IsHDMIConnectedEv @ 19 NONAME - _ZTI17CGlxHdmiContainer @ 20 NONAME - _ZTI17CGlxHdmiDecoderAO @ 21 NONAME - _ZTI18CGlxHdmiController @ 22 NONAME - _ZTI22CGlxHdmiSurfaceUpdater @ 23 NONAME - _ZTV17CGlxHdmiContainer @ 24 NONAME - _ZTV17CGlxHdmiDecoderAO @ 25 NONAME - _ZTV18CGlxHdmiController @ 26 NONAME - _ZTV22CGlxHdmiSurfaceUpdater @ 27 NONAME + _ZN18CGlxHdmiController12ActivateZoomEi @ 1 NONAME + _ZN18CGlxHdmiController14DeactivateZoomEv @ 2 NONAME + _ZN18CGlxHdmiController16ItemNotSupportedEv @ 3 NONAME + _ZN18CGlxHdmiController18ShiftToCloningModeEv @ 4 NONAME + _ZN18CGlxHdmiController18ShiftToPostingModeEv @ 5 NONAME + _ZN18CGlxHdmiController4NewLE5TRect @ 6 NONAME + _ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 7 NONAME + _ZN18CGlxHdmiControllerD0Ev @ 8 NONAME + _ZN18CGlxHdmiControllerD1Ev @ 9 NONAME + _ZN18CGlxHdmiControllerD2Ev @ 10 NONAME + _ZN6CGlxTv4NewLER14MGlxTvObserver @ 11 NONAME + _ZN6CGlxTvD0Ev @ 12 NONAME + _ZN6CGlxTvD1Ev @ 13 NONAME + _ZN6CGlxTvD2Ev @ 14 NONAME + _ZNK6CGlxTv11IsConnectedEv @ 15 NONAME + _ZNK6CGlxTv11ScreenSizeLEv @ 16 NONAME + _ZNK6CGlxTv12IsWidescreenEv @ 17 NONAME + _ZNK6CGlxTv15IsHDMIConnectedEv @ 18 NONAME + _ZTI17CGlxHdmiContainer @ 19 NONAME + _ZTI17CGlxHdmiDecoderAO @ 20 NONAME + _ZTI18CGlxHdmiController @ 21 NONAME + _ZTI22CGlxHdmiSurfaceUpdater @ 22 NONAME + _ZTV17CGlxHdmiContainer @ 23 NONAME + _ZTV17CGlxHdmiDecoderAO @ 24 NONAME + _ZTV18CGlxHdmiController @ 25 NONAME + _ZTV22CGlxHdmiSurfaceUpdater @ 26 NONAME diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/group/glxtvout.mmp --- a/tvout/tvoutengine/group/glxtvout.mmp Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/group/glxtvout.mmp Mon Sep 27 15:13:20 2010 +0530 @@ -63,7 +63,6 @@ LIBRARY apgrfx.lib // LIBRARY apmime.lib // For ImageViewer mime type extraction LIBRARY glxlogging.lib -LIBRARY alfdecoderserverclient.lib LIBRARY AccPolicy.lib //For RAccessoryConnection status ID's // Other Dependency Libraries diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/inc/glxhdmicontroller.h --- a/tvout/tvoutengine/inc/glxhdmicontroller.h Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/inc/glxhdmicontroller.h Mon Sep 27 15:13:20 2010 +0530 @@ -44,12 +44,10 @@ /** * NewLC * @param aRect rect in which the CCoecontrol actually needs to be constructed - * @param EffectsOn - if the effect should be on, by default it is OFF, - * used only for SLIDESHOW * * @return CGlxHdmiController object. */ - IMPORT_C static CGlxHdmiController* NewL(TRect aRect ,TBool aEfectsOn = EFalse); + IMPORT_C static CGlxHdmiController* NewL(TRect aRect ); /** * Destructor @@ -95,20 +93,12 @@ */ IMPORT_C void ShiftToPostingMode(); - /** - * Fadeing of the Surface - * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) - */ - IMPORT_C void FadeSurface(TBool aFadeInOut); - private:/// class private method /** * Constructor * @param aRect Rect size - * @param aEfectsOn if effects needs to be on(used in Slideshow only) */ - CGlxHdmiController(TRect aRect ,TBool aEfectsOn); + CGlxHdmiController(TRect aRect); /** * ConstructL @@ -160,8 +150,6 @@ TRect iRect; /// Flag to see if Image is supported TBool iIsImageSupported; - /// Flag to set if effects should be on - TBool iEffectsOn; }; #endif /* GLXHDMICONTROLLER_H_ */ diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/inc/glxhdmisurfaceupdater.h --- a/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h Mon Sep 27 15:13:20 2010 +0530 @@ -30,7 +30,6 @@ class CGlxActiveCallBack; class CGlxHdmiDecoderAO; class CImageDecoder; -class CAlfCompositionSource; class TSurfaceConfiguration; class MGlxGenCallback @@ -55,10 +54,9 @@ * @param aFsBitmap Fullscreen bitmap (if FS not available,make sure to send grid or default bitmap * else it would appear white screen on TV ) * @param aCallBack MGlxGenCallback instance - * @param aEffectsOn If Effects should be on */ static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow, const TDesC& aImageFile, - CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack,TBool aEffectsOn); + CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack); /** * Destructor @@ -102,21 +100,13 @@ */ void ShiftToPostingMode(); - /** - * Fadeing of the Surface - * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) - */ - void FadeTheSurface(TBool aFadeInOut); - private: /** * Constructor * @param aWindow RWindow * @param aCallBack MGlxGenCallback instance - * @param aEffectsOn if effects should be on */ - CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack,TBool aEffectsOn); + CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack); /** * ConstructL @@ -236,11 +226,6 @@ */ void InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile); - /** - * Animate untill loop is complete - */ - void Animate(); - private: /// window object RWindow* iWindow; @@ -250,7 +235,6 @@ MGlxGenCallback* iCallBack; /// To store the image uri path HBufC* iImagePath; - TBool iEffectsOn; /// If the Fs thumbnail is to be shown before decoding HD images TBool iShwFsThumbnail; @@ -283,8 +267,6 @@ /// Surface buffer AO CGlxActiveCallBack* iSurfBufferAO; - CAlfCompositionSource* ialfCompositionSurface; - /// Internal Image decoder AO CGlxHdmiDecoderAO* iGlxDecoderAO; /// Image Decoder @@ -295,9 +277,6 @@ TPoint iLeftCornerForZoom; /// Timer for Zoom CPeriodic* iTimer; - /// Timer for Animation - CPeriodic* iAnimTimer; - TInt iAnimCounter; /// Various objects to store sizes and count /// to store the Tv screen size diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/src/glxhdmicontroller.cpp --- a/tvout/tvoutengine/src/glxhdmicontroller.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/src/glxhdmicontroller.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -27,10 +27,10 @@ // ----------------------------------------------------------------------------- // NewLC // ----------------------------------------------------------------------------- -EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TRect aRect ,TBool aEfectsOn) +EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TRect aRect) { TRACER("CGlxHdmiController* CGlxHdmiController::NewL()"); - CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aRect,aEfectsOn); + CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aRect); CleanupStack::PushL(self); self->ConstructL(); CleanupStack::Pop(self); @@ -166,27 +166,13 @@ } } - -// ----------------------------------------------------------------------------- -// FadeSurface -// ----------------------------------------------------------------------------- -EXPORT_C void CGlxHdmiController::FadeSurface(TBool aFadeInOut) - { - TRACER("CGlxHdmiController::FadeSurface()"); - if (iSurfaceUpdater) - { - iSurfaceUpdater->FadeTheSurface(aFadeInOut); - } - } - // ----------------------------------------------------------------------------- // Constructor // ----------------------------------------------------------------------------- -CGlxHdmiController::CGlxHdmiController(TRect aRect,TBool aEffectsOn): +CGlxHdmiController::CGlxHdmiController(TRect aRect): iFsBitmap(NULL), iStoredImagePath(NULL), - iRect(aRect), - iEffectsOn(aEffectsOn) + iRect(aRect) { TRACER("CGlxHdmiController::CGlxHdmiController()"); // Implement nothing here @@ -243,8 +229,7 @@ { TRACER("CGlxHdmiController::CreateSurfaceUpdater()"); iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(iHdmiContainer->GetWindow(), - aImageFile, iFsBitmap,iHdmiContainer, - iEffectsOn); + aImageFile, iFsBitmap,iHdmiContainer); iHdmiContainer->DrawNow(); } diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp --- a/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -15,13 +15,13 @@ * */ +#include #include #include #include #include #include #include -#include "alf/alfcompositionclient.h" #include #include @@ -31,23 +31,16 @@ #include "glxactivecallback.h" #include "glxhdmisurfaceupdater.h" #include "glxactivedecoder.h" -#include const TInt KMulFactorToCreateBitmap = 4; const TInt KZoomDelay = 10000; -const TInt KAnimationTicker = 26000; -const TInt KAnimationTickerFadeIn = 45000; +//const TInt KAnimationTicker = 26000; +//const TInt KAnimationTickerFadeIn = 45000; //100 , is decide for 20 steps of zooming , with each step being 5 pixels. const TInt KMaxZoomLimit = 100; //evey time we zoom , there is a increase in the ht amd width by 10 pixels. const TInt KSingleStepForZoom = 10; -// constants for fade effect -const TInt KFadeSteps = 19; -const TReal32 KFadeEachStep = 0.05f; -const TReal32 KFullTransparent = 0.0f; -const TReal32 KFullOpaque = 1.0f; - _LIT(KMimeJpeg,"image/jpeg"); _LIT(KMimeJpg,"image/jpg"); @@ -56,11 +49,10 @@ // ----------------------------------------------------------------------------- CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL(RWindow* aWindow, const TDesC& aImageFile, CFbsBitmap* aFsBitmap, - MGlxGenCallback* aCallBack, - TBool aEffectsOn) + MGlxGenCallback* aCallBack) { TRACER("CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL()"); - CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aCallBack, aEffectsOn); + CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aCallBack); CleanupStack::PushL(self); self->ConstructL(aFsBitmap,aImageFile); CleanupStack::Pop(self); @@ -74,13 +66,6 @@ { TRACER("CGlxHdmiSurfaceUpdater::~CGlxHdmiSurfaceUpdater()"); ReleaseContent(); - if(iAnimTimer && iAnimTimer->IsActive()) // Check for a CPeriodic Instance - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::~CGlxHdmiSurfaceUpdater() - cancel iAnimTimer"); - iAnimTimer->Cancel(); - } - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::~CGlxHdmiSurfaceUpdater() - deleteing ialfCompositionSurface"); - delete ialfCompositionSurface; if(iWindow) { iWindow->RemoveBackgroundSurface(ETrue); @@ -165,11 +150,9 @@ // CTor // ----------------------------------------------------------------------------- CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow, - MGlxGenCallback* aCallBack,TBool aEffectsOn): - iWindow(aWindow), iCallBack(aCallBack), - iEffectsOn(aEffectsOn), - iShwFsThumbnail(ETrue), iIsNonJpeg(EFalse), - iAnimCounter(0) + MGlxGenCallback* aCallBack): + iWindow(aWindow), iCallBack(aCallBack), + iShwFsThumbnail(ETrue), iIsNonJpeg(EFalse) { TRACER("CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater()"); // Implement nothing here @@ -183,11 +166,6 @@ TRACER("CGlxHdmiSurfaceUpdater::ConstructL()"); // Initiate the HDMI by assigning the necessary values InitiateHdmiL(aFsBitmap,aImageFile); - if (iEffectsOn) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ConstructL() Creating iAnimTimer"); - iAnimTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - } TInt error = iFsSession.Connect (); GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() FsSession Connect error = %d", error); @@ -752,19 +730,6 @@ void CGlxHdmiSurfaceUpdater::ShiftToCloningMode() { TRACER("CGlxHdmiSurfaceUpdater::ShiftToCloningMode()"); - if (iAnimTimer) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToCloningMode() - cancel iAnimTimer"); - iAnimTimer->Cancel(); - delete iAnimTimer; - iAnimTimer = NULL; - } - if (ialfCompositionSurface) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToCloningMode() - deleteing ialfCompositionSurface"); - delete ialfCompositionSurface; - ialfCompositionSurface= NULL; - } if (iWindow) { GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToCloningMode() - window present"); @@ -778,11 +743,6 @@ void CGlxHdmiSurfaceUpdater::ShiftToPostingMode() { TRACER("CGlxHdmiSurfaceUpdater::ShiftToPostingMode()"); - if (iEffectsOn && !iAnimTimer) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() Creating iAnimTimer"); - iAnimTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - } if(iSurfManager) { #ifdef _DEBUG @@ -816,18 +776,6 @@ ProcessTvImage(); // set the surface onto background iWindow->SetBackgroundSurface(iConfig, ETrue); - if (iEffectsOn) - { - //Cancel the Animation timer if any - if(!iAnimTimer->IsActive()) - { - iAnimCounter = 0; - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShowFsThumbnailL() - Cancel iAnimTimer Timer"); - iAnimTimer->Cancel(); - } - - FadeTheSurface(ETrue); - } } // ----------------------------------------------------------------------------- @@ -890,92 +838,3 @@ GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ProcessTvImage() Surfaceupdatesession error %d",err); } } - -// ----------------------------------------------------------------------------- -// FadeTheSurface -// ----------------------------------------------------------------------------- -void CGlxHdmiSurfaceUpdater::FadeTheSurface(TBool aFadeInOut) - { - TRACER("CGlxHdmiSurfaceUpdater::FadeTheSurface()"); - iFadeIn = aFadeInOut; - if (iEffectsOn && !iAnimTimer) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::FadeTheSurface() Creating iAnimTimer"); - iAnimTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - } - if (!ialfCompositionSurface) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShowFsThumbnailL() - Creating alfcompositionsurface"); - ialfCompositionSurface = CAlfCompositionSource::NewL(*iWindow); - } - if(!iAnimTimer->IsActive()) - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::FadeTheSurface() - Start Timer"); - if (iFadeIn) - iAnimTimer->Start(0,KAnimationTickerFadeIn,TCallBack( AnimationTimeOut,this )); - else - { - for (TInt i=0;i<=KFadeSteps;i++) - { - GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::Animate - Fading Out %d",i); - ialfCompositionSurface->SetOpacity(KFullOpaque -(i*KFadeEachStep)); - User::After(KAnimationTicker); - } - } - } - else - { - iAnimCounter = 0; - // this case can be when fast swipe in Slideshow - ialfCompositionSurface->SetOpacity(KFullOpaque); // set the opacity to maximum when fast swipe - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::FadeTheSurface() - cancel iAnimTimer"); - iAnimTimer->Cancel(); - } - } - -// --------------------------------------------------------------------------- -// AnimationTimeOut -// --------------------------------------------------------------------------- -// -TInt CGlxHdmiSurfaceUpdater::AnimationTimeOut(TAny* aSelf) - { - TRACER("CGlxHdmiSurfaceUpdater::AnimationTimeOut"); - if(aSelf) - { - CGlxHdmiSurfaceUpdater* self = static_cast (aSelf); - if (self) - { - self->Animate(); - } - } - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// Animate -// ----------------------------------------------------------------------------- -void CGlxHdmiSurfaceUpdater::Animate() - { - TRACER("CGlxHdmiSurfaceUpdater::Animate"); - iAnimCounter++; - if (!ialfCompositionSurface) - { - // createing alfcompositiosource - ialfCompositionSurface = CAlfCompositionSource::NewL(*iWindow); - } - if (iAnimCounter <=KFadeSteps && iFadeIn) - { - GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::Animate - iAnimCounter=%d",iAnimCounter); - // gaining brightness - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::Animate - Fading In"); - ialfCompositionSurface->SetOpacity( KFullTransparent +(iAnimCounter*KFadeEachStep)); - } - else - { - GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::Animate() - cancel iAnimTimer"); - iAnimCounter = 0; - // end the timer , as animation of fade in/out is complete - iAnimTimer->Cancel(); - } - } - diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutwrapper/inc/glxtvoutwrapper.h --- a/tvout/tvoutwrapper/inc/glxtvoutwrapper.h Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper.h Mon Sep 27 15:13:20 2010 +0530 @@ -60,9 +60,8 @@ * to pass the model * @param Model datamodel * @param screensize the size of the phone screen - * @param aEfectsOn if slideshow effects on tv needs to be on, off by default */ - void setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn = false); + void setModel(QAbstractItemModel* aModel,QSize aScreenSize); /** * Set the image on to HDMI @@ -100,13 +99,6 @@ */ void deactivateZoom(); - /** - * Fadeing of the Surface - * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) - */ - void fadeSurface(bool aFadeInOut); - private: /// Private wrapper handler according to PIMPL pattern GlxTvOutWrapperPrivate* mTvOutWrapperPrivate; diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h --- a/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h Mon Sep 27 15:13:20 2010 +0530 @@ -45,13 +45,11 @@ * @param aTvOutWrapper GlxTvOutWrapper Instance * @param aModel item model * @param aScreenSize screensize of the phone - * @param aEfectsOn to ON the Effects for Slideshow on TV- currently only - * fade in fade out is supported * * @return GlxTvOutWrapperPrivate Instance */ static GlxTvOutWrapperPrivate* Instance(GlxTvOutWrapper* aTvOutWrapper, - QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn); + QAbstractItemModel* aModel,QSize aScreenSize); /** * destructor @@ -116,9 +114,8 @@ /** * constructL() * @param aScreenSize screensize - * @param aEffectsOn to On the Effects of Slideshow - currently only fade in fade out */ - void ConstructL(QSize aScreenSize,bool aEfectsOn); + void ConstructL(QSize aScreenSize); /** * SetNewImage diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutwrapper/src/glxtvoutwrapper.cpp --- a/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -43,11 +43,11 @@ // setModel // and Create the private instance to pass the model // ----------------------------------------------------------------------------- -void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn) +void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,QSize aScreenSize) { if (!mTvOutWrapperPrivate) { - mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aScreenSize,aEfectsOn); + mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aScreenSize); } else { @@ -115,14 +115,4 @@ } } -// ----------------------------------------------------------------------------- -// deactivateZoom -// ----------------------------------------------------------------------------- -void GlxTvOutWrapper::fadeSurface(bool aFadeInOut) - { - if(mTvOutWrapperPrivate){ - mTvOutWrapperPrivate->FadeSurface(aFadeInOut); - } - } - // End of file diff -r ccee5c4b0de4 -r 45459746d5e8 tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp --- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -29,12 +29,12 @@ // Static method to create the private wrapper instance // ----------------------------------------------------------------------------- GlxTvOutWrapperPrivate* GlxTvOutWrapperPrivate::Instance(GlxTvOutWrapper* aTvOutWrapper, - QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn) + QAbstractItemModel* aModel,QSize aScreenSize) { TRACER("GlxTvOutWrapperPrivate::Instance()"); GlxTvOutWrapperPrivate* self = new GlxTvOutWrapperPrivate(aTvOutWrapper,aModel); if (self){ - TRAPD(err,self->ConstructL(aScreenSize,aEfectsOn)); + TRAPD(err,self->ConstructL(aScreenSize)); if(err != KErrNone){ delete self; self = NULL; @@ -47,14 +47,13 @@ // ConstructL // This creates the Connection observer and the Hdmi Controller // ----------------------------------------------------------------------------- -void GlxTvOutWrapperPrivate::ConstructL(QSize aScreenSize,bool aEfectsOn) +void GlxTvOutWrapperPrivate::ConstructL(QSize aScreenSize) { TRACER("GlxTvOutWrapperPrivate::ConstructL()"); iConnectionObserver = CGlxConnectionObserver::NewL(this); if (!iHdmiController) { TRect rect(0,0,aScreenSize.width(),aScreenSize.height()); - iHdmiController = CGlxHdmiController::NewL(rect, - aEfectsOn); + iHdmiController = CGlxHdmiController::NewL(rect); iHdmiConnected = iConnectionObserver->IsHdmiConnected(); } } @@ -227,16 +226,6 @@ } // ----------------------------------------------------------------------------- -// FadeSurface -// ----------------------------------------------------------------------------- -void GlxTvOutWrapperPrivate::FadeSurface(bool aFadeInOut) - { - if(iHdmiController && iHdmiConnected){ - iHdmiController->FadeSurface(aFadeInOut); - } - } - -// ----------------------------------------------------------------------------- // getSubState // ----------------------------------------------------------------------------- int GlxTvOutWrapperPrivate::getSubState() diff -r ccee5c4b0de4 -r 45459746d5e8 ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h --- a/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h Mon Sep 27 15:13:20 2010 +0530 @@ -96,6 +96,8 @@ void CreateMediaListL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType) ; void CreateMediaListAlbumItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType); void executeMpxCommand(bool execute); +protected: + mutable bool iIsCmdActive; private: // Instance of Media List MGlxMediaList* iMediaList; diff -r ccee5c4b0de4 -r 45459746d5e8 ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp --- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -42,7 +42,7 @@ #include GlxMpxCommandHandler::GlxMpxCommandHandler() : - iProgressComplete(EFalse) + iProgressComplete(EFalse),iIsCmdActive(EFalse) { OstTraceFunctionEntry0( GLXMPXCOMMANDHANDLER_GLXMPXCOMMANDHANDLER_ENTRY ); iMediaList = NULL; @@ -67,53 +67,59 @@ Q_UNUSED(indexList); int aHierarchyId = 0; TGlxFilterItemType aFilterType = EGlxFilterImage; + if (!iIsCmdActive) + { + if (collectionId != KGlxAlbumsMediaId) + { + OstTrace0( TRACE_NORMAL, DUP2_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListL" ); + CreateMediaListL(collectionId, aHierarchyId, aFilterType); + } + else + { + OstTrace0( TRACE_NORMAL, DUP3_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListAlbumItemL" ); + //for creating Medial List for Albums Media path Items + CreateMediaListAlbumItemL(collectionId, aHierarchyId, aFilterType); + } - if (collectionId != KGlxAlbumsMediaId) - { - OstTrace0( TRACE_NORMAL, DUP2_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListL" ); - CreateMediaListL(collectionId, aHierarchyId, aFilterType); + TBool consume = ETrue; + iProgressComplete = EFalse; + mProgressDialog = NULL; + //Execute Command + DoExecuteCommandL(commandId, *iMediaList, consume); + mCommandId = commandId; + ConfirmationNoteL(*iMediaList); } - else - { - OstTrace0( TRACE_NORMAL, DUP3_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListAlbumItemL" ); - //for creating Medial List for Albums Media path Items - CreateMediaListAlbumItemL(collectionId, aHierarchyId, aFilterType); - } - - TBool consume = ETrue; - iProgressComplete = EFalse; - mProgressDialog = NULL; - //Execute Command - DoExecuteCommandL(commandId, *iMediaList, consume); - mCommandId = commandId; - ConfirmationNoteL(*iMediaList); OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_EXECUTECOMMAND_EXIT ); } void GlxMpxCommandHandler::executeMpxCommand(bool execute) { - if(execute && !iMediaList->IsCommandActive()) + if(iMediaList) { - TBool consume = ETrue; - CMPXCommand* command = CreateCommandL(mCommandId, *iMediaList, consume); - if (command) + if (execute && !iMediaList->IsCommandActive()) { - command->SetTObjectValueL (KMPXCommandGeneralSessionId, - static_cast (this)); - iMediaList->AddMediaListObserverL(this); - iMediaList->CommandL(*command); - - if(iMediaList->SelectionCount() > 1) + TBool consume = ETrue; + CMPXCommand* command = CreateCommandL(mCommandId, *iMediaList, + consume); + if (command) { - ProgressNoteL(mCommandId); + command->SetTObjectValueL ( + KMPXCommandGeneralSessionId, + static_cast (this)); + iMediaList->AddMediaListObserverL(this); + iMediaList->CommandL(*command); + + if (iMediaList->SelectionCount() > 1) + { + ProgressNoteL(mCommandId); + } } } + else //command cancelled,so unmark all items + { + MGlxMediaList::UnmarkAllL(*iMediaList); + } } - else //command cancelled,so unmark all items - { - MGlxMediaList::UnmarkAllL(*iMediaList); - } - } // --------------------------------------------------------------------------- @@ -295,11 +301,14 @@ CMPXCommand* aCommandResult, TInt aError, MGlxMediaList* aList) { OstTraceFunctionEntry0( GLXMPXCOMMANDHANDLER_HANDLECOMMANDCOMPLETEL_ENTRY ); - MGlxMediaList::UnmarkAllL(*iMediaList); + if(iMediaList) + { + MGlxMediaList::UnmarkAllL(*iMediaList); - DoHandleCommandCompleteL(aSessionId, aCommandResult, aError, aList); - iProgressComplete = ETrue; - TryExitL(aError); + DoHandleCommandCompleteL(aSessionId, aCommandResult, aError, aList); + iProgressComplete = ETrue; + TryExitL(aError); + } OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_HANDLECOMMANDCOMPLETEL_EXIT ); } @@ -349,10 +358,13 @@ { // @todo error received. Close progress note DismissProgressNoteL(); - MGlxMediaList::UnmarkAllL(*iMediaList); - iMediaList->RemoveMediaListObserver(this); - iMediaList->Close(); - iMediaList = NULL; + if(iMediaList) + { + MGlxMediaList::UnmarkAllL(*iMediaList); + iMediaList->RemoveMediaListObserver(this); + iMediaList->Close(); + iMediaList = NULL; + } // handle error HandleErrorL(aErrorCode); } @@ -365,6 +377,7 @@ CompletionNoteL(); iProgressComplete = EFalse; } + iIsCmdActive = EFalse; OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_TRYEXITL_EXIT ); } @@ -418,7 +431,7 @@ void GlxMpxCommandHandler::ConfirmationNoteL(MGlxMediaList& aMediaList) { TInt selectionCount = aMediaList.SelectionCount(); - + iIsCmdActive = ETrue; // If media list is not empty, treat focused item as selected // At this point can assume that the command was disabled // if static items were not supported @@ -509,6 +522,7 @@ { // Cancellation is done. executeMpxCommand(false); + iIsCmdActive = EFalse; } } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -183,10 +183,15 @@ GlxAlbumSelectionPopup popupWidget; QModelIndexList modelList = popupWidget.GetSelectionList(albumMediaModel, &ok); if(ok && modelList.count() == 0) - { + { createNewMedia(); ok = false; - } + } + else if(!ok) + { + // Reset the flag so that next addmedia cmd can be executed + iIsCmdActive = false; + } OstTraceExt2( TRACE_NORMAL, GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL, "GlxCommandHandlerAddToContainer::CreateCommandL;ok=%d;newMedia=%d", ok, mNewMediaAdded ); if (ok || mNewMediaAdded) @@ -220,6 +225,8 @@ } else { + // Reset the flag so that next addmedia cmd can be executed + iIsCmdActive = false; MGlxMediaList::UnmarkAllL(aMediaList); } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -72,7 +72,6 @@ iNewMediaCreationError = KErrNone; if (ok == true) { - TPtrC16 newMediaItemTitleDes = (reinterpret_cast (mediaTitle.utf16())); @@ -86,6 +85,8 @@ } else { + // Reset the flag so that next addmedia cmd can be executed + iIsCmdActive = false; iNewMediaCreationError = KErrCancel; } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -21,6 +21,18 @@ #include const int MAXSTRINGLENGHT = 256; +// this is regexp for valid file/folder name: no \/:*?"<>| and is not totally empty characters. +// file name can not end with "." , but it is not include in this RegExp. It should be checked in Regex_ValidNotEndWithDot +// this expression is composed by two expressions: +// ^.*[^\\s].*$ used to match un-empty string and is not totally empty characters. +// [^\\\\/:*?\"<>|] used to math valid file/folder name +// merge the two regex together: +// valid file/folder name and is not totally empty. +#define Regex_ValidFileFolderName QString( "^[^\\\\/:*?\"<>|]*[^\\\\/:*?\"<>|\\s][^\\\\/:*?\"<>|]*$" ) + +// is not end with dot( trim blank characters in the end first ) +#define Regex_ValidNotEndWithDot QString( "^.*[^\\.\\s][\\s]*$" ) + GlxTextInputDialog::GlxTextInputDialog(bool disableOkForEmptyText) : mDialog ( NULL ), mEventLoop ( 0 ), @@ -70,7 +82,20 @@ void GlxTextInputDialog::textChanged(const QString &text) { - if (text.trimmed().isEmpty()) { + // check if all regExp match, disable primary action if not match + QStringList regExpList = (QStringList() << Regex_ValidFileFolderName << Regex_ValidNotEndWithDot ); + + bool validateResult = true; + foreach( const QString ®ExpString, regExpList ) { + if( !regExpString.isEmpty() ) { + QRegExp regExp( regExpString ); + if( !regExp.exactMatch( text ) ) { + validateResult = false; + } + } + } + + if(!validateResult){ mDialog->actions().first()->setEnabled(false); } else { diff -r ccee5c4b0de4 -r 45459746d5e8 ui/inc/glxicondefs.h --- a/ui/inc/glxicondefs.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/inc/glxicondefs.h Mon Sep 27 15:13:20 2010 +0530 @@ -28,14 +28,14 @@ #define GLXICON_USEIMAGE "qtg_small_ovi" //GRID TOOLBAR -#define GLXICON_ALL "qtg_mono_photos" -#define GLXICON_ALBUMS "qtg_mono_photo_albums" -#define GLXICON_CAMERA "qtg_mono_camera" -#define GLXICON_OVI "qtg_small_ovi" +#define GLXICON_ALL "qtg_mono_photos" +#define GLXICON_ALBUMS "qtg_mono_photo_albums" +#define GLXICON_CAMERA "qtg_mono_camera" +#define GLXICON_OVI "qtg_small_ovi" //ALBUM GRID TOOLBAR -#define GLXICON_ADD "qtg_mono_add_to_video_collection" -#define GLXICON_REMOVE "qtg_mono_remove_from_video_collection" +#define GLXICON_ADD "qtg_mono_add_to_video_collection" +#define GLXICON_REMOVE "qtg_mono_remove_from_video_collection" //CORRUPT ICON #define GLXICON_CORRUPT "qtg_large_corrupted" @@ -44,7 +44,7 @@ #define GLXICON_PLAY "qtg_mono_play" //DEFAULT ICON -#define GLXICON_DEFAULT "qtg_mono_camera" +#define GLXICON_DEFAULT "qtg_mono_photos" #define GLXICON_ADD_TO_FAV "qtg_graf_ratingslider_rated" #define GLXICON_REMOVE_FAV "qtg_graf_ratingslider_unrated" diff -r ccee5c4b0de4 -r 45459746d5e8 ui/inc/glxmodelroles.h --- a/ui/inc/glxmodelroles.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/inc/glxmodelroles.h Mon Sep 27 15:13:20 2010 +0530 @@ -21,34 +21,46 @@ #define GLXMODELROLES_H enum { + //For ItemImageData Function role START GlxHgVisibilityRole = Qt::UserRole + 1, // VisibilityRole For MediaWall , Dont Change This Value - Depedency To HgWidget GlxFsImageRole, //to get the fullscreen image - GlxContextRole, //to get and set the context - GlxFocusIndexRole, //to get and set the selected item index - GlxVisualWindowIndex, //to set the visual window index in media list - GlxUriRole, //to get the URI of the image - GlxDimensionsRole, - GlxSelectedIndexRole, //to get and set the seleceted item list - GlxDateRole, //to get the image created or modified date - GlxFrameCount, //to get the number of frame in an image - GlxSubStateRole, //to publish the sub state of a SM states - GlxHdmiBitmap, //to get the pre decoded thumbnail for HDMI - GlxListItemCount, //to get the number of item in the album list - GlxSystemItemRole, //to get the item is system item or not - GlxFavorites, //to get the image is in favorites folder or not + GlxDefaultImage, GlxQImageSmall, //To Get Grid Thumbnail as QImage GlxQImageLarge, //To Get FullScreen Thumbnail as QImage - GlxDefaultImage, //To Get Default Thumbnail - GlxViewTitle, + GlxHdmiBitmap, //to get the pre decoded thumbnail for HDMI + GlxItemImageDataEnd = 0x100, + //For ItemImageData Function role END + + //For CollectionProperty Function role START + GlxFocusIndexRole, //to get and set the selected item index + GlxSubStateRole, //to publish the sub state of a SM states GlxPopulated, - 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 - GlxTempVisualWindowIndex, //to store the visual index obtained from AM temporarily - GlxImageCorruptRole, //To get the corrupt image status - GlxPaintPageFlag, - GlxImageTitle //to fetch the title of the image + GlxViewTitle, + GlxVisualWindowIndex, //to set the visual window index in media list + GlxPaintPageFlag, + GlxCollectionPropertyEnd = 0x200, + //For CollectionProperty Function role END + + //For ItemProperty Function role START + GlxFrameCount, //to get the number of frame in an image + GlxImageCorruptRole, //To get the corrupt image status + GlxUriRole, //to get the URI of the image + GlxSizeRole, //to get the size of the image + GlxImageTitle, //to fetch the title of the image + GlxDimensionsRole, + GlxDateRole, //to get the image created or modified date + GlxTimeRole, //to get the time image was modified + GlxDescRole, //to get the description of the images + GlxItemPropertyEnd = 0x300, + //For ItemProperty Function role + + GlxContextRole, //to get and set the context + GlxSelectedIndexRole, //to get and set the seleceted item list + GlxListItemCount, //to get the number of item in the album list + GlxSystemItemRole, //to get the item is system item or not + GlxFavorites, //to get the image is in favorites folder or not + GlxRemoveContextRole, //to remove the context + GlxTempVisualWindowIndex, //to store the visual index obtained from AM temporarily }; diff -r ccee5c4b0de4 -r 45459746d5e8 ui/inc/glxuistd.h --- a/ui/inc/glxuistd.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/inc/glxuistd.h Mon Sep 27 15:13:20 2010 +0530 @@ -59,8 +59,7 @@ GlxTBContextGrid, GlxTBContextLsFs, GlxTBContextPtFs, - GlxTBContextNone, - GlxTBContextExternal + GlxTBContextNone }; typedef enum @@ -74,6 +73,7 @@ FADE_EFFECT, GRID_TO_FULLSCREEN, FULLSCREEN_TO_GRID, + FULLSCREEN_TO_GRID_PORTRAIT, FULLSCREEN_TO_DETAIL, DETAIL_TO_FULLSCREEN, GRID_TO_ALBUMLIST, diff -r ccee5c4b0de4 -r 45459746d5e8 ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Mon Sep 27 15:13:20 2010 +0530 @@ -1,19 +1,19 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ /*glxmlwrapper_p.h*/ @@ -40,207 +40,237 @@ 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 + + +/** + * Class Description + * Medialist wrapper private class to acess the media property and thumbnail data + * To use first call GlxMLWrapperPrivate::Instance then set the mode by calling GlxMLWrapperPrivate::SetContextMode() + */ +class GlxMLWrapperPrivate: public QObject, public MGlxTitleFetcherObserver { - + public: - /** + /** * Two-phased constructor. * * @return Pointer to newly created object. NULL if creation fails. Avoiding Leave as would be called by a QT wrapper Class */ - static GlxMLWrapperPrivate* Instance(GlxMLWrapper* aMLWrapper, int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri,GlxFetcherFilterType fetcherFilterType); + static GlxMLWrapperPrivate* Instance( GlxMLWrapper* aMLWrapper, int aCollectionId, + int aHierarchyId, TGlxFilterItemType aFilterType, QString uri, + GlxFetcherFilterType fetcherFilterType ); /** * Destructor. */ - ~GlxMLWrapperPrivate(); + ~GlxMLWrapperPrivate(); /** * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes. */ - void SetContextMode(GlxContextMode aContextMode); - - /* - * For removing the contect used - */ - void RemoveContextMode(GlxContextMode aContextMode); - - /** + void SetContextMode( GlxContextMode aContextMode ); + + /** + * For removing the contect used + */ + void RemoveContextMode( GlxContextMode aContextMode ); + + /** * for retreiving the Media List Count. */ - int GetItemCount(); - /* - * for retrieving the focus Index - */ - int GetFocusIndex() const; - /* - * for setting the focus Index - */ - void SetFocusIndex(int aItemIndex); + int GetItemCount(); + + /** + * for retrieving the focus Index + */ + int GetFocusIndex() const; + + /** + * for setting the focus Index + */ + void SetFocusIndex( int aItemIndex ); - /* - * for setting the focus Index - */ - void SetSelectedIndex(int aItemIndex); + /** + * for setting the focus Index + */ + void SetSelectedIndex( int aItemIndex ); - /* - * for retrieving the visible window Index - */ - int GetVisibleWindowIndex(); - /* - * for setting the visible window Index - */ - void SetVisibleWindowIndex(int aItemIndex); + /** + * for retrieving the visible window Index + */ + int GetVisibleWindowIndex(); + + /** + * for setting the visible window Index + */ + void SetVisibleWindowIndex( int aItemIndex ); + +public: + // From MGlxTitleFetcherObserver + IMPORT_C void HandleTitleAvailableL( const TDesC& aTitle ); public: - // From MGlxTitleFetcherObserver - IMPORT_C void HandleTitleAvailableL(const TDesC& aTitle); - -public: void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList ); void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList*/* aList */); - void HandleAttributesAvailableL( TInt aItemIndex, - const RArray& aAttributes, MGlxMediaList* aList ); - void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, TInt aOldIndex, MGlxMediaList* aList ); - void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList ); + void HandleAttributesAvailableL( TInt aItemIndex, const RArray& aAttributes, + MGlxMediaList* aList ); + void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, TInt aOldIndex, + MGlxMediaList* aList ); + void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList ); void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList ); void HandleError( TInt aError ); - //todo remove comment void HandleCommandCompleteL( CMPXCommand* aCommandResult, TInt aError,MGlxMediaList* aList ); + //todo remove comment void HandleCommandCompleteL( CMPXCommand* aCommandResult, TInt aError,MGlxMediaList* aList ); void HandleMediaL( TInt aListIndex, MGlxMediaList* aList ); void HandleItemModifiedL( const RArray& aItemIndexes, MGlxMediaList* aList ); - void HandlePopulatedL(MGlxMediaList* aList); + void HandlePopulatedL( MGlxMediaList* aList ); public: - /** - * RetrieveItemIcon() - */ - HbIcon* RetrieveItemIcon(int index, GlxTBContextType aTBContextType); - QImage RetrieveItemImage(int index, GlxTBContextType aTBContextType); - QString RetrieveListTitle(int index); - QString RetrieveListDesc(int index); - QString RetrieveListSubTitle(int index); - QString RetrieveItemUri(int index); - QSize RetrieveItemDimension(int index); - int RetrieveItemSize(int index); - QDate RetrieveItemDate(int index); - QTime RetrieveItemTime(int index); - int RetrieveItemFrameCount(int aItemIndex); - CFbsBitmap* RetrieveBitmap(int aItemIndex); - int RetrieveListItemCount( int aItemIndex ); - bool isSystemItem( int aItemIndex ); - /* - *Sets the context for fetcing comments - */ - void SetDescontextL(); - QString RetrieveViewTitle(); - bool IsPopulated(); - bool IsDrmProtected(int index ); - bool IsDrmValid(int index); - void setDrmValid(int index,bool valid); - bool IsCorruptedImage( int aItemIndex ); + /** + * RetrieveItemIcon() - To retreive the full screen and grid thumbnail + */ + HbIcon* RetrieveItemIcon( int index, GlxTBContextType aTBContextType ); + QImage RetrieveItemImage( int index, GlxTBContextType aTBContextType ); + QString RetrieveListTitle( int index ); + QString RetrieveListDesc( int index ); + QString RetrieveListSubTitle( int index ); + QString RetrieveItemUri( int index ); + QSize RetrieveItemDimension( int index ); + int RetrieveItemSize( int index ); + QDate RetrieveItemDate( int index ); + QTime RetrieveItemTime( int index ); + int RetrieveItemFrameCount( int aItemIndex ); + CFbsBitmap* RetrieveBitmap( int aItemIndex ); + int RetrieveListItemCount( int aItemIndex ); + bool isSystemItem( int aItemIndex ); + /* + *Sets the context for fetcing comments + */ + void SetDescontextL(); + QString RetrieveViewTitle(); + bool IsPopulated(); + bool IsDrmProtected( int index ); + bool IsDrmValid( int index ); + void setDrmValid( int index, bool valid ); + bool IsCorruptedImage( int aItemIndex ); private: /** * C++ default constructor. */ - GlxMLWrapperPrivate(GlxMLWrapper* aMLWrapper); + GlxMLWrapperPrivate( GlxMLWrapper* aMLWrapper ); /** * By default Symbian 2nd phase constructor is private. */ - void ConstructL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri=NULL,GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone); - /** + void ConstructL( int aCollectionId, + int aHierarchyId, + TGlxFilterItemType aFilterType, + QString uri = NULL, + GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone ); + /** * Create an instance of Media List. * * @leave with error code if creation fails. */ - void CreateMediaListL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone); - void CreateMediaListAlbumItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,GlxFetcherFilterType fetcherFilterType); - void CreateMediaListFavoritesItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri); - void SetThumbnailContextL(GlxContextMode aContextMode); - void SetListContextL(GlxContextMode aContextMode); - void SetFavouriteContextL(); - void CreateGridContextL(); - void CreateLsFsContextL(); - void CreatePtFsContextL(); - void RemoveGridContext(); - void RemoveLsFsContext(); - void RemovePtFsContext(); - void RemoveListContext(); - void RemoveFavouriteContext(); - void RemoveDescContext(); - //for the attribute filtering - TInt CheckTBAttributesPresenceandSanity(TInt aItemIndex, - const RArray& aAttributes, TMPXAttribute aThumbnailAttribute ); - void CheckGridTBAttribute(TInt aItemIndex, const RArray& aAttributes); - void CheckPtFsTBAttribute(TInt aItemIndex, const RArray& aAttributes); - void CheckLsFsTBAttribute(TInt aItemIndex, const RArray& aAttributes); - void CheckListAttributes(TInt aItemIndex, const RArray& aAttributes); - /* - * to check the attributes returned for details view is present - */ - void CheckDetailsAttributes(TInt aItemIndex, const RArray& aAttributes); - /* - * convert the CFbsbitmap to HbIcon - */ - HbIcon *convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap); - /* - * convert the CFbsbitmap to HbIcon and scale down upto itemWidth and itemHeight - */ - HbIcon * convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight); + void CreateMediaListL( int aCollectionId, + int aHierarchyId, + TGlxFilterItemType aFilterType, + GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone ); + + void CreateMediaListAlbumItemL( int aCollectionId, + int aHierarchyId, + TGlxFilterItemType aFilterType, GlxFetcherFilterType fetcherFilterType ); + + void CreateMediaListFavoritesItemL( int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType, QString uri ); + void SetThumbnailContextL( GlxContextMode aContextMode ); + void SetListContextL( GlxContextMode aContextMode ); + void SetFavouriteContextL(); + void CreateGridContextL(); + void CreateLsFsContextL(); + void CreatePtFsContextL(); + void RemoveGridContext(); + void RemoveLsFsContext(); + void RemovePtFsContext(); + void RemoveListContext(); + void RemoveFavouriteContext(); + void RemoveDescContext(); + //for the attribute filtering + TInt CheckTBAttributesPresenceandSanity( TInt aItemIndex, const RArray& aAttributes, TMPXAttribute aThumbnailAttribute ); + void CheckGridTBAttribute( TInt aItemIndex, const RArray& aAttributes ); + void CheckPtFsTBAttribute( TInt aItemIndex, const RArray& aAttributes ); + void CheckLsFsTBAttribute( TInt aItemIndex, const RArray& aAttributes ); + void CheckListAttributes( TInt aItemIndex, const RArray& aAttributes ); + /* + * to check the attributes returned for details view is present + */ + void CheckDetailsAttributes( TInt aItemIndex, const RArray& aAttributes ); + + /** + * convertFBSBitmapToHbIcon() - convert the CFbsbitmap to HbIcon + * @param - bitmap of media + * @return - Hbicon of the modia. + */ + HbIcon *convertFBSBitmapToHbIcon( CFbsBitmap* aBitmap ); + + /* + * convertFBSBitmapToHbIcon() - convert the CFbsbitmap to HbIcon and scale down upto itemWidth and itemHeight + * @param - bitmap of media + * @param - expected HbIcon width + * @param - expected HbIcon height + * @param - aspect ratio parameter in the case of scaling the thumbnail + * @return - Hbicon of the modia. + */ + HbIcon * convertFBSBitmapToHbIcon( CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight, Qt::AspectRatioMode aspectRatio = Qt::KeepAspectRatio ); private: // Instance of Media List MGlxMediaList* iMediaList; - //observer for ML - CGlxMLGenericObserver* iMLGenericObserver; - GlxContextMode iContextMode; - //Parent QT based Wrapper - GlxMLWrapper* iMLWrapper; - //contexts - // Thumbnail context - CGlxThumbnailContext* iGridThumbnailContext; + //observer for ML + CGlxMLGenericObserver* iMLGenericObserver; + GlxContextMode iContextMode; + //Parent QT based Wrapper + GlxMLWrapper* iMLWrapper; + //contexts + // Thumbnail context + CGlxThumbnailContext* iGridThumbnailContext; - // FS related thumbnail contexts - CGlxDefaultThumbnailContext* iPtFsThumbnailContext; - CGlxDefaultThumbnailContext* iLsFsThumbnailContext; - CGlxDefaultThumbnailContext* iFocusFsThumbnailContext; - CGlxDefaultThumbnailContext* iFocusGridThumbnailContext; + // FS related thumbnail contexts + CGlxDefaultThumbnailContext* iPtFsThumbnailContext; + CGlxDefaultThumbnailContext* iLsFsThumbnailContext; + CGlxDefaultThumbnailContext* iFocusFsThumbnailContext; + CGlxDefaultThumbnailContext* iFocusGridThumbnailContext; - //List related contexts - // Fetch context for retrieving title attribute + //List related contexts + // Fetch context for retrieving title attribute CGlxDefaultListAttributeContext* iTitleAttributeContext; // Fetch context for retrieving subtitle CGlxDefaultListAttributeContext* iSubtitleAttributeContext; //to find if the image is in favorites or not - CGlxDefaultAttributeContext *iFavouriteContext; - - //To fetch the details + CGlxDefaultAttributeContext *iFavouriteContext; + + //To fetch the details CGlxDefaultAttributeContext *iDescContext; - + CGlxThumbnailContext* iListThumbnailContext; // for thumbnail context TGlxFromVisibleIndexOutwardListIterator iThumbnailIterator; - // Iterators for Grid and FS + // Iterators for Grid and FS TGlxScrollingDirectionIterator iBlockyIterator; TGlxFromManualIndexBlockyIterator iBlockyIteratorForFilmStrip; - //Variables for checking the active contexts - //todo merge all these variables into 1 and have bitwise operation on them - TBool iGridContextActivated; - TBool iLsFsContextActivated; - TBool iPtFsContextActivated; - TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails - TBool iPtListContextActivated; - TBool iDetailsContextActivated; //this is to fetch the comments attributes - TBool iSelectionListContextActivated; - CGlxTitleFetcher* iTitleFetcher; - QImage iCorruptImage; - QString iViewTitle; - CGlxDRMUtility * iDrmUtility; + //Variables for checking the active contexts + //todo merge all these variables into 1 and have bitwise operation on them + TBool iGridContextActivated; + TBool iLsFsContextActivated; + TBool iPtFsContextActivated; + TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails + TBool iPtListContextActivated; + TBool iDetailsContextActivated; //this is to fetch the comments attributes + TBool iSelectionListContextActivated; + CGlxTitleFetcher* iTitleFetcher; + QImage iCorruptImage; + QString iViewTitle; + CGlxDRMUtility * iDrmUtility; }; #endif //GLXMLWRAPPER_P_H diff -r ccee5c4b0de4 -r 45459746d5e8 ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -53,10 +53,17 @@ const TInt KTBAttributeUnavailable(0); const TInt KTBAttributeCorrupt(-1); const TInt KListDataWindowSize(10); +//for grid thumbnail const TInt KGridTNWIdth (127); const TInt KGridTNHeight (110); const TInt KGridTNPTWIdth (119); const TInt KGridTNPTHeight (103); +//for image strip thumbnail +const TInt KImageStripLSTNWIdth (95); +const TInt KImageStripLSTNHeight (83); +const TInt KImageStripPTTNWIdth (89); +const TInt KImageStripPTTNHeight (78); + const TInt KFullScreenTNLSWidth (640); const TInt KFullScreenTNLSHeight (360); const TInt KFullScreenTNPTWidth (360); @@ -689,7 +696,7 @@ { TInt itemHeight = 0; TInt itemWidth = 0; - switch (aTBContextType) { + switch ( aTBContextType ) { case GlxTBContextGrid: { itemHeight = KGridTNHeight; itemWidth = KGridTNWIdth; @@ -720,10 +727,16 @@ if ( value && value->iBitmap != NULL ) { if( aTBContextType == GlxTBContextGrid ) { - GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d",aItemIndex); + GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d",aItemIndex ); if ( iContextMode == GlxContextPtGrid ) { - return convertFBSBitmapToHbIcon( value->iBitmap , KGridTNPTWIdth, KGridTNPTHeight); + return convertFBSBitmapToHbIcon( value->iBitmap , KGridTNPTWIdth, KGridTNPTHeight ); + } + else if ( iContextMode == GlxContextLsFs ) { + return convertFBSBitmapToHbIcon( value->iBitmap , KImageStripLSTNWIdth, KImageStripLSTNHeight, Qt::IgnoreAspectRatio ); + } + else if ( iContextMode == GlxContextPtFs ) { + return convertFBSBitmapToHbIcon( value->iBitmap , KImageStripPTTNWIdth, KImageStripPTTNHeight, Qt::IgnoreAspectRatio ); } else { return convertFBSBitmapToHbIcon( value->iBitmap ); @@ -744,72 +757,63 @@ return NULL; } -QImage GlxMLWrapperPrivate::RetrieveItemImage(int aItemIndex, GlxTBContextType aTBContextType) - { +QImage GlxMLWrapperPrivate::RetrieveItemImage( int aItemIndex, GlxTBContextType aTBContextType ) +{ TInt itemHeight = 0; TInt itemWidth = 0; - switch (aTBContextType) - { - case GlxTBContextGrid: - { - itemHeight = KGridTNHeight; - itemWidth = KGridTNWIdth; - } - break; - case GlxTBContextPtFs: - { - itemHeight = KFullScreenTNPTHeight; - itemWidth = KFullScreenTNPTWidth; - } - break; - case GlxTBContextLsFs: - { - itemHeight = KFullScreenTNLSHeight; - itemWidth = KFullScreenTNLSWidth; - } - break; - } + switch ( aTBContextType ) { + case GlxTBContextGrid: + itemHeight = KGridTNHeight; + itemWidth = KGridTNWIdth; + break; + + case GlxTBContextPtFs: + itemHeight = KFullScreenTNPTHeight; + itemWidth = KFullScreenTNPTWidth; + break; + + case GlxTBContextLsFs: + itemHeight = KFullScreenTNLSHeight; + itemWidth = KFullScreenTNLSWidth; + break; + } + const TGlxMedia& item = iMediaList->Item( aItemIndex ); - TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, - GlxFullThumbnailAttributeId( ETrue,itemWidth,itemHeight ) ); - const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( - thumbnailAttribute ); - TInt tnError = GlxErrorManager::HasAttributeErrorL( - item.Properties(), KGlxMediaIdThumbnail ); - TSize iconSize(itemWidth, itemHeight); + TMPXAttribute thumbnailAttribute( KGlxMediaIdThumbnail, GlxFullThumbnailAttributeId( ETrue, itemWidth, itemHeight ) ); + const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute ); + TInt tnError = GlxErrorManager::HasAttributeErrorL( item.Properties(), KGlxMediaIdThumbnail ); - if (value && value->iBitmap != NULL) - { + if ( value && value->iBitmap != NULL ) { value->iBitmap->LockHeap(); TUint32 *tempData = value->iBitmap->DataAddress(); - uchar *data = (uchar *)(tempData); - int bytesPerLine = value->iBitmap->ScanLineLength(value->iBitmap->SizeInPixels().iWidth , value->iBitmap->DisplayMode()); - QImage image = QImage(data, value->iBitmap->SizeInPixels().iWidth, value->iBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16).convertToFormat(QImage::Format_ARGB32_Premultiplied); + uchar *data = (uchar *) ( tempData ); + int bytesPerLine = value->iBitmap->ScanLineLength( value->iBitmap->SizeInPixels().iWidth, value->iBitmap->DisplayMode() ); + QImage image = QImage( data, + value->iBitmap->SizeInPixels().iWidth, + value->iBitmap->SizeInPixels().iHeight, + bytesPerLine, + QImage::Format_RGB16 ).convertToFormat( QImage::Format_ARGB32_Premultiplied ); value->iBitmap->UnlockHeap(); return image; - } - else if( tnError == KErrCANoRights) - { + } + else if ( tnError == KErrCANoRights ) { //handle DRM case - } - else if( tnError ) - { - if(iCorruptImage.isNull()) - { - HbIcon *icon = new HbIcon(GLXICON_CORRUPT); - if(!icon->isNull()) - { + } + else if ( tnError ) { + if ( iCorruptImage.isNull() ) { + HbIcon *icon = new HbIcon( GLXICON_CORRUPT ); + if ( !icon->isNull() ) { // this image Creation is Slow. // But what to do, Q class's Does not undersatnd our Localised File names iCorruptImage = icon->pixmap().toImage(); - } + } delete icon; - } + } return iCorruptImage; - } + } - return QImage(); - } + return QImage(); +} // --------------------------------------------------------------------------- // RetrieveListTitle // --------------------------------------------------------------------------- @@ -1026,7 +1030,7 @@ return defaultBitmap; } } -} + } // --------------------------------------------------------------------------- // HandleItemAddedL @@ -1340,7 +1344,7 @@ return targetIcon; } -HbIcon * GlxMLWrapperPrivate::convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight) +HbIcon * GlxMLWrapperPrivate::convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight, Qt::AspectRatioMode aspectRatio ) { GLX_LOG_INFO1("### GlxMLWrapperPrivate::convertFBSBitmapToHbIcon 1 %d", 0); @@ -1353,7 +1357,7 @@ QPixmap pixmap = QPixmap::fromImage(image); if ( aBitmap->SizeInPixels().iWidth > itemWidth || aBitmap->SizeInPixels().iHeight > itemHeight ) { - pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio ); + pixmap = pixmap.scaled( itemWidth, itemHeight, aspectRatio ); } aBitmap->UnlockHeap(); diff -r ccee5c4b0de4 -r 45459746d5e8 ui/uiengine/model/bwins/glxmediamodelu.def --- a/ui/uiengine/model/bwins/glxmediamodelu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/uiengine/model/bwins/glxmediamodelu.def Mon Sep 27 15:13:20 2010 +0530 @@ -5,41 +5,44 @@ ?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void) ?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 5 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType) ?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 6 NONAME ; void * GlxMediaModel::qt_metacast(char const *) - ?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 7 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const - ?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &) - ?itemUpdated@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 9 NONAME ; void GlxMediaModel::itemUpdated(int, enum GlxTBContextType) - ?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 10 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &) - ?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 11 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode) - ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int) - ?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject - ?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 14 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const - ??_EGlxMediaModel@@UAE@I@Z @ 15 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int) - ?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 16 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const - ?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 17 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const - ?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int) - ?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 19 NONAME ; void GlxMediaModel::itemCorrupted(int) - ?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 20 NONAME ; void GlxMediaModel::addExternalItems(class QList *) - ?modelpopulated@GlxMediaModel@@QAEXXZ @ 21 NONAME ; void GlxMediaModel::modelpopulated(void) - ?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 22 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const - ?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxMediaModel::tr(char const *, char const *) - ?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 24 NONAME ; void GlxMediaModel::itemsRemoved(int, int) - ?thumbnailPopulatedCheck@GlxMediaModel@@AAEXH@Z @ 25 NONAME ; void GlxMediaModel::thumbnailPopulatedCheck(int) - ?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 26 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const - ?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 27 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const - ??1GlxMediaModel@@UAE@XZ @ 28 NONAME ; GlxMediaModel::~GlxMediaModel(void) - ?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?updateDetailsView@GlxMediaModel@@IAEXXZ @ 30 NONAME ; void GlxMediaModel::updateDetailsView(void) - ?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 31 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString) - ?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 32 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int) - ?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 33 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const - ?clearExternalItems@GlxMediaModel@@QAEXXZ @ 34 NONAME ; void GlxMediaModel::clearExternalItems(void) - ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *) - ?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 36 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const - ?populated@GlxMediaModel@@IAEXXZ @ 37 NONAME ; void GlxMediaModel::populated(void) - ??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 38 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &) - ?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 39 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode) - ?updateDetailItems@GlxMediaModel@@QAEXXZ @ 40 NONAME ; void GlxMediaModel::updateDetailItems(void) - ?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 41 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const - ?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 42 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const - ?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 43 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString) + ?getFullScreenImage@GlxMediaModel@@ABE?AVQImage@@H@Z @ 7 NONAME ; class QImage GlxMediaModel::getFullScreenImage(int) const + ?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 8 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const + ?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 9 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &) + ?itemUpdated@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 10 NONAME ; void GlxMediaModel::itemUpdated(int, enum GlxTBContextType) + ?getFullScreenIcon@GlxMediaModel@@ABE?AVHbIcon@@H@Z @ 11 NONAME ; class HbIcon GlxMediaModel::getFullScreenIcon(int) const + ?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 12 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &) + ?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 13 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode) + ?itemProperty@GlxMediaModel@@QBE?AVQVariant@@ABVQModelIndex@@H@Z @ 14 NONAME ; class QVariant GlxMediaModel::itemProperty(class QModelIndex const &, int) const + ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int) + ?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject + ?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 17 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const + ??_EGlxMediaModel@@UAE@I@Z @ 18 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int) + ?collectionProperty@GlxMediaModel@@QBE?AVQVariant@@H@Z @ 19 NONAME ; class QVariant GlxMediaModel::collectionProperty(int) const + ?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 20 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const + ?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 21 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const + ?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int) + ?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 23 NONAME ; void GlxMediaModel::itemCorrupted(int) + ?modelpopulated@GlxMediaModel@@QAEXXZ @ 24 NONAME ; void GlxMediaModel::modelpopulated(void) + ?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 25 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const + ?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 26 NONAME ; class QString GlxMediaModel::tr(char const *, char const *) + ?thumbnailPopulatedCheck@GlxMediaModel@@AAEXH@Z @ 27 NONAME ; void GlxMediaModel::thumbnailPopulatedCheck(int) + ?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 28 NONAME ; void GlxMediaModel::itemsRemoved(int, int) + ?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 29 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const + ?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 30 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const + ??1GlxMediaModel@@UAE@XZ @ 31 NONAME ; GlxMediaModel::~GlxMediaModel(void) + ?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 32 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?updateDetailsView@GlxMediaModel@@IAEXXZ @ 33 NONAME ; void GlxMediaModel::updateDetailsView(void) + ?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 34 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString) + ?itemImageData@GlxMediaModel@@QBE?AVQVariant@@ABVQModelIndex@@H@Z @ 35 NONAME ; class QVariant GlxMediaModel::itemImageData(class QModelIndex const &, int) const + ?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 36 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int) + ?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 37 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const + ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *) + ?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 39 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const + ?populated@GlxMediaModel@@IAEXXZ @ 40 NONAME ; void GlxMediaModel::populated(void) + ?gridToFullscreenIcon@GlxMediaModel@@ABE?AVHbIcon@@PAV2@H@Z @ 41 NONAME ; class HbIcon GlxMediaModel::gridToFullscreenIcon(class HbIcon *, int) const + ??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 42 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &) + ?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 43 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode) + ?updateDetailItems@GlxMediaModel@@QAEXXZ @ 44 NONAME ; void GlxMediaModel::updateDetailItems(void) + ?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 45 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const + ?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 46 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString) diff -r ccee5c4b0de4 -r 45459746d5e8 ui/uiengine/model/eabi/glxmediamodelu.def --- a/ui/uiengine/model/eabi/glxmediamodelu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/uiengine/model/eabi/glxmediamodelu.def Mon Sep 27 15:13:20 2010 +0530 @@ -9,37 +9,40 @@ _ZN13GlxMediaModel14modelpopulatedEv @ 8 NONAME _ZN13GlxMediaModel14setContextModeE14GlxContextMode @ 9 NONAME _ZN13GlxMediaModel14updateItemIconEiP6HbIcon16GlxTBContextType @ 10 NONAME - _ZN13GlxMediaModel16addExternalItemsEP5QListI18GlxInterfaceParamsE @ 11 NONAME - _ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 12 NONAME - _ZN13GlxMediaModel16staticMetaObjectE @ 13 NONAME DATA 16 - _ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 14 NONAME - _ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 15 NONAME - _ZN13GlxMediaModel17updateDetailItemsEv @ 16 NONAME - _ZN13GlxMediaModel17updateDetailsViewEv @ 17 NONAME - _ZN13GlxMediaModel18clearExternalItemsEv @ 18 NONAME - _ZN13GlxMediaModel18thumbnailPopulatedEv @ 19 NONAME - _ZN13GlxMediaModel19albumTitleAvailableE7QString @ 20 NONAME - _ZN13GlxMediaModel19getStaticMetaObjectEv @ 21 NONAME - _ZN13GlxMediaModel23thumbnailPopulatedCheckEi @ 22 NONAME - _ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 23 NONAME - _ZN13GlxMediaModel9populatedEv @ 24 NONAME - _ZN13GlxMediaModelC1ER12GlxModelParm @ 25 NONAME - _ZN13GlxMediaModelC2ER12GlxModelParm @ 26 NONAME - _ZN13GlxMediaModelD0Ev @ 27 NONAME - _ZN13GlxMediaModelD1Ev @ 28 NONAME - _ZN13GlxMediaModelD2Ev @ 29 NONAME - _ZNK13GlxMediaModel10metaObjectEv @ 30 NONAME - _ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 31 NONAME - _ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 32 NONAME - _ZNK13GlxMediaModel13getFocusIndexEv @ 33 NONAME - _ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 34 NONAME + _ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 11 NONAME + _ZN13GlxMediaModel16staticMetaObjectE @ 12 NONAME DATA 16 + _ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 13 NONAME + _ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 14 NONAME + _ZN13GlxMediaModel17updateDetailItemsEv @ 15 NONAME + _ZN13GlxMediaModel17updateDetailsViewEv @ 16 NONAME + _ZN13GlxMediaModel18thumbnailPopulatedEv @ 17 NONAME + _ZN13GlxMediaModel19albumTitleAvailableE7QString @ 18 NONAME + _ZN13GlxMediaModel19getStaticMetaObjectEv @ 19 NONAME + _ZN13GlxMediaModel23thumbnailPopulatedCheckEi @ 20 NONAME + _ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 21 NONAME + _ZN13GlxMediaModel9populatedEv @ 22 NONAME + _ZN13GlxMediaModelC1ER12GlxModelParm @ 23 NONAME + _ZN13GlxMediaModelC2ER12GlxModelParm @ 24 NONAME + _ZN13GlxMediaModelD0Ev @ 25 NONAME + _ZN13GlxMediaModelD1Ev @ 26 NONAME + _ZN13GlxMediaModelD2Ev @ 27 NONAME + _ZNK13GlxMediaModel10metaObjectEv @ 28 NONAME + _ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 29 NONAME + _ZNK13GlxMediaModel12itemPropertyERK11QModelIndexi @ 30 NONAME + _ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 31 NONAME + _ZNK13GlxMediaModel13getFocusIndexEv @ 32 NONAME + _ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 33 NONAME + _ZNK13GlxMediaModel13itemImageDataERK11QModelIndexi @ 34 NONAME _ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 35 NONAME - _ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 36 NONAME - _ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 37 NONAME - _ZNK13GlxMediaModel4dataERK11QModelIndexi @ 38 NONAME - _ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 39 NONAME - _ZNK13GlxMediaModel6parentERK11QModelIndex @ 40 NONAME - _ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 41 NONAME - _ZTI13GlxMediaModel @ 42 NONAME - _ZTV13GlxMediaModel @ 43 NONAME + _ZNK13GlxMediaModel17getFullScreenIconEi @ 36 NONAME + _ZNK13GlxMediaModel18collectionPropertyEi @ 37 NONAME + _ZNK13GlxMediaModel18getFullScreenImageEi @ 38 NONAME + _ZNK13GlxMediaModel20gridToFullscreenIconEP6HbIconi @ 39 NONAME + _ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 40 NONAME + _ZNK13GlxMediaModel4dataERK11QModelIndexi @ 41 NONAME + _ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 42 NONAME + _ZNK13GlxMediaModel6parentERK11QModelIndex @ 43 NONAME + _ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 44 NONAME + _ZTI13GlxMediaModel @ 45 NONAME + _ZTV13GlxMediaModel @ 46 NONAME diff -r ccee5c4b0de4 -r 45459746d5e8 ui/uiengine/model/mediamodel/inc/glxmediamodel.h --- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Mon Sep 27 15:13:20 2010 +0530 @@ -42,6 +42,8 @@ class GLX_MEDIAMODEL_EXPORT GlxMediaModel : public QAbstractItemModel { Q_OBJECT +friend class TestGlxMediaModel; + public : /** * Constructor @@ -72,6 +74,10 @@ */ QModelIndex parent( const QModelIndex &child ) const; + QVariant itemImageData( const QModelIndex &index, int role ) const; + QVariant collectionProperty( int role ) const; + QVariant itemProperty( const QModelIndex &index, int role ) const; + /** * data() - return the data of corresponding role. * @param - model index of interested item. @@ -94,16 +100,7 @@ */ QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const; - /** - * addExternalItems() - for setting external image data to the model. - */ - void addExternalItems( GlxExternalData* externalItems ); - /** - * clearExternalItems() - for removing all external image data from the model. - */ - void clearExternalItems(); - signals : /** * albumTitleAvailable() - emit this signal when album title is available. @@ -150,17 +147,15 @@ * @param - media list context type * @return - return the hbicon of the item */ - HbIcon* GetFsIconItem( int itemIndex,GlxTBContextType tbContextType )const; + HbIcon* GetFsIconItem( int itemIndex, GlxTBContextType tbContextType )const; + + HbIcon gridToFullscreenIcon( HbIcon * icon, int itemIndex ) const; + + HbIcon getFullScreenIcon( int itemIndex ) const; + + QImage getFullScreenImage( int itemIndex ) const; /** - * GetExternalIconItem() - To fetch the grid size thumbnail of external item. - * @param - item index - * @param - media list context type - * @return - return the hbicon of the item - */ - HbIcon* GetExternalIconItem( int itemIndex,GlxTBContextType tbContextType )const; - - /** * setContextMode() - for setting the attribute context mode will be used mainly for * retreiving thumbnail of different sizes. */ @@ -258,23 +253,18 @@ void updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ); private: - GlxMLWrapper* mMLWrapper; - QCache itemIconCache; - QCache itemFsIconCache; - HbIcon* m_DefaultIcon; - HbIcon* m_CorruptIcon; - - GlxContextMode mContextMode; - //for external data to be populated by model - GlxExternalData* mExternalItems; - QCache itemExternalIconCache; - int externalDataCount; - int mFocusIndex; - int mSubState; - GlxDRMUtilityWrapper* mDRMUtilityWrapper; - int mTempVisibleWindowIndex; - bool thumbnailPopulatedFlag; - bool mPaintPage; + GlxMLWrapper* mMLWrapper; + QCache itemIconCache; + QCache itemFsIconCache; + HbIcon* m_DefaultIcon; + HbIcon* m_CorruptIcon; + GlxContextMode mContextMode; + int mFocusIndex; + int mSubState; + GlxDRMUtilityWrapper* mDRMUtilityWrapper; + int mTempVisibleWindowIndex; + bool thumbnailPopulatedFlag; + bool mPaintPage; }; diff -r ccee5c4b0de4 -r 45459746d5e8 ui/uiengine/model/mediamodel/src/glxmediamodel.cpp --- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -1,21 +1,19 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 -* -*/ - - + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies 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 #include @@ -39,136 +37,105 @@ #define DELTA_IMAGE 5 #define INITIAL_POPULATE_IMAGE_COUNT 30 -GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm) +GlxMediaModel::GlxMediaModel( GlxModelParm & modelParm ) { - qDebug("GlxMediaModel::GlxMediaModel"); - - thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true; - mPaintPage = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? true : false; - mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,modelParm.filterType(),NULL,modelParm.fetcherFiterType()); - mMLWrapper->setContextMode( modelParm.contextMode() ); - mContextMode = modelParm.contextMode( ) ; - mDRMUtilityWrapper = new GlxDRMUtilityWrapper(); - - int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated(int, GlxTBContextType))); - qDebug("updateItem() connection status %d", err); - err = connect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int))); - qDebug("itemCorrupted() connection status %d", err); - err = connect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int))); - qDebug("updateItem() connection status %d", err); - err = connect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); - qDebug("updateItem() connection status %d", err); - err = connect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType))); - qDebug("iconAvailable() connection status %d", err); - err = connect( mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString))); - qDebug("updateAlbumTitle() connection status %d", err); - err = connect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated())); - err = connect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems())); - - itemIconCache.setMaxCost(20); //Changed While Doing Media Wall - itemFsIconCache.setMaxCost(5); - itemExternalIconCache.setMaxCost(0); - - m_DefaultIcon = new HbIcon( GLXICON_DEFAULT ); - m_CorruptIcon = new HbIcon( GLXICON_CORRUPT ); - mExternalItems = NULL; - externalDataCount = 0; - mFocusIndex = -1; - mSubState = -1; - mTempVisibleWindowIndex = 0; + qDebug( "GlxMediaModel::GlxMediaModel" ); + + thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid + ? false : true; + mPaintPage = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? true : false; + mMLWrapper = new GlxMLWrapper( modelParm.collection(), 0, modelParm.filterType(), NULL, + modelParm.fetcherFiterType() ); + mMLWrapper->setContextMode( modelParm.contextMode() ); + mContextMode = modelParm.contextMode(); + mDRMUtilityWrapper = new GlxDRMUtilityWrapper(); + + int err = connect( mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, + SLOT(itemUpdated(int, GlxTBContextType)) ); + qDebug( "updateItem() connection status %d", err ); + err = connect( mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int)) ); + qDebug( "itemCorrupted() connection status %d", err ); + err = connect( mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)) ); + qDebug( "updateItem() connection status %d", err ); + err = connect( mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)) ); + qDebug( "updateItem() connection status %d", err ); + err = connect( this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, + SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType)) ); + qDebug( "iconAvailable() connection status %d", err ); + err = connect( mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, + SLOT(albumTitleUpdated(QString)) ); + qDebug( "updateAlbumTitle() connection status %d", err ); + err = connect( mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated()) ); + err = connect( mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems()) ); + + itemIconCache.setMaxCost( 20 ); //Changed While Doing Media Wall + itemFsIconCache.setMaxCost( 5 ); + + m_DefaultIcon = new HbIcon( GLXICON_DEFAULT ); + m_CorruptIcon = new HbIcon( GLXICON_CORRUPT ); + mFocusIndex = -1; + mSubState = -1; + mTempVisibleWindowIndex = 0; } GlxMediaModel::~GlxMediaModel() { //itemadded.clear(); - qDebug("GlxMediaModel::~GlxMediaModel"); - itemIconCache.clear(); - itemFsIconCache.clear(); - delete m_DefaultIcon; - m_DefaultIcon = NULL; - delete m_CorruptIcon; - m_CorruptIcon = NULL; - clearExternalItems(); + qDebug( "GlxMediaModel::~GlxMediaModel" ); + itemIconCache.clear(); + itemFsIconCache.clear(); + delete m_DefaultIcon; + m_DefaultIcon = NULL; + delete m_CorruptIcon; + m_CorruptIcon = NULL; delete mMLWrapper; - delete mDRMUtilityWrapper; + delete mDRMUtilityWrapper; } //------------------------------------------------------------------------------------------------------------ //setContextMode //------------------------------------------------------------------------------------------------------------ -void GlxMediaModel::setContextMode(GlxContextMode contextMode) +void GlxMediaModel::setContextMode( GlxContextMode contextMode ) { - if(contextMode == GlxContextComment) - { - mMLWrapper->setContextMode(contextMode); + if ( contextMode == GlxContextComment ) { + mMLWrapper->setContextMode( contextMode ); + } + else { + if ( mContextMode != contextMode ) { + + itemFsIconCache.clear(); + mMLWrapper->setContextMode( contextMode ); + mContextMode = contextMode; + if ( mContextMode == GlxContextLsGrid || mContextMode == GlxContextPtGrid ) { + itemIconCache.clear(); + //emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) ); // Not Needed for HgWidget + } } - else - { - if(mContextMode != contextMode) { - - itemFsIconCache.clear(); - mMLWrapper->setContextMode(contextMode); - mContextMode = contextMode; - if ( mContextMode == GlxContextLsGrid || mContextMode == GlxContextPtGrid ) { - itemIconCache.clear(); - //emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) ); // Not Needed for HgWidget - } - } - } + } } //------------------------------------------------------------------------------------------------------------ //removeContextMode //------------------------------------------------------------------------------------------------------------ -void GlxMediaModel::removeContextMode(GlxContextMode contextMode) - { - mMLWrapper->removeContextMode(contextMode); - } - -//to add external data to the model -void GlxMediaModel::addExternalItems(GlxExternalData* externalItems) +void GlxMediaModel::removeContextMode( GlxContextMode contextMode ) { - externalDataCount = externalItems->count(); - beginInsertRows(QModelIndex(), 0, externalDataCount); - mExternalItems = externalItems; - itemExternalIconCache.setMaxCost(15); - endInsertRows(); - setFocusIndex(index(0,0)); + mMLWrapper->removeContextMode( contextMode ); } - -/* -*for removing all external image data from the model. -*/ -void GlxMediaModel::clearExternalItems() +int GlxMediaModel::rowCount( const QModelIndex &parent ) const { - if(externalDataCount) { - beginRemoveRows(QModelIndex(), 0, externalDataCount); - if(mExternalItems) { - delete mExternalItems; - mExternalItems = NULL; - externalDataCount = 0; - } - itemExternalIconCache.clear(); - endRemoveRows(); - } - + Q_UNUSED(parent); + qDebug( "GlxMediaModel::rowCount %d", mMLWrapper->getItemCount() ); + return mMLWrapper->getItemCount(); } -int GlxMediaModel::rowCount(const QModelIndex &parent ) const -{ - Q_UNUSED(parent); - qDebug("GlxMediaModel::rowCount %d", mMLWrapper->getItemCount()); - return (mMLWrapper->getItemCount() + externalDataCount); -} - -int GlxMediaModel::columnCount(const QModelIndex &parent ) const +int GlxMediaModel::columnCount( const QModelIndex &parent ) const { Q_UNUSED(parent); return 1; } -QModelIndex GlxMediaModel::parent(const QModelIndex &child) const +QModelIndex GlxMediaModel::parent( const QModelIndex &child ) const { Q_UNUSED(child); @@ -177,268 +144,298 @@ } -//todo refactor this whole function ... too many return statements are not good -QVariant GlxMediaModel::data( const QModelIndex &index, int role ) const +QVariant GlxMediaModel::itemImageData( const QModelIndex &index, int role ) const { - if (role == GlxViewTitle) { - return mMLWrapper->retrieveViewTitle(); - } + HbIcon* itemIcon = NULL; + QImage itemImage; + int itemIndex = index.row(); - if(role == GlxPopulated) { - return mMLWrapper->IsPopulated(); - } - - if ( role == GlxSubStateRole ) { - return mSubState; + if ( role == Qt::DisplayRole ) { + return QVariant(); } if ( role == GlxHgVisibilityRole ) { return TRUE; } - - if ( role == Qt::DisplayRole ) { + + if ( role == GlxDefaultImage ) { + // this image Creation is Slow. But what to do, Q class's Does not undersatnd our Localised File names + return m_DefaultIcon->pixmap().toImage().convertToFormat( QImage::Format_ARGB32_Premultiplied ); + } + + qDebug( "GlxMediaModel::data buffer concept index %d role %d", index.row(), role ); + if ( ( !index.isValid() ) || ( index.row() >= rowCount() ) ) { return QVariant(); } - - if (role == GlxPaintPageFlag) { - return mPaintPage; - } - - if ( role == GlxDefaultImage ) { - if(!m_DefaultIcon->isNull()) { - // this image Creation is Slow. - // But what to do, Q class's Does not undersatnd our Localised File names - return m_DefaultIcon->pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied); - } - else { - return QImage(); - } - } - HbIcon* itemIcon = NULL; - QImage itemImage; - int itemIndex = index.row(); - qDebug("GlxMediaModel::data buffer concept index %d role %d", index.row(), role); - if ((!index.isValid()) || (index.row() > rowCount()-1)) { - return QVariant(); - } - - //retrieve Data from Media List + //retrieve Data from Media List if ( role == Qt::DecorationRole ) { - itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid); - if( itemIcon == NULL || itemIcon->isNull() ) { + itemIcon = GetGridIconItem( itemIndex, GlxTBContextGrid ); + if ( itemIcon == NULL || itemIcon->isNull() ) { itemIcon = getCorruptDefaultIcon( index ); } return *itemIcon; } - - if (role == GlxQImageSmall) { - return mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid); + + if ( role == GlxQImageSmall ) { + return mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextGrid ); } - if (role == GlxFsImageRole){ - if(mContextMode == GlxContextLsFs){ - itemIcon = GetFsIconItem(itemIndex,GlxTBContextLsFs); - } - else if (mContextMode == GlxContextPtFs){ - itemIcon = GetFsIconItem(itemIndex,GlxTBContextPtFs); - } - - if ( itemIcon == NULL ) { - HbIcon* tempIcon = GetGridIconItem( itemIndex, GlxTBContextGrid ); - if (tempIcon && !tempIcon->isNull()) { - qDebug("GlxMediaModel::scaling thumbnail"); - QPixmap tempPixmap = tempIcon->qicon().pixmap(128, 128); - QSize itemSize = mMLWrapper->retrieveItemDimension(itemIndex); - QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 ); - if( !( ( itemSize.width() < sz.width() ) && ( itemSize.height() < sz.height() ) ) ) { - itemSize.scale(sz, Qt::KeepAspectRatio); - } - tempPixmap = tempPixmap.scaled(itemSize, Qt::IgnoreAspectRatio ); - HbIcon tmp = HbIcon( QIcon(tempPixmap)) ; - if(!tmp.isNull()){ - return tmp; - } - } - } - - if ( itemIcon == NULL || itemIcon->isNull() ) { - itemIcon = getCorruptDefaultIcon( index ) ; - } - return *itemIcon; + if ( role == GlxFsImageRole ) { + return getFullScreenIcon( itemIndex ); } - - if (role == GlxQImageLarge) { - if(mContextMode == GlxContextLsFs) { - itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextLsFs); - } - else { - itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextPtFs); - } - if(!itemImage.isNull()) { - return itemImage; - } - else { - itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid); - if (!itemImage.isNull()) { - QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 ); - itemImage = itemImage.scaled(sz,Qt::KeepAspectRatio); - } - return itemImage; - } + + if ( role == GlxQImageLarge ) { + return getFullScreenImage( itemIndex ); } - if (role == GlxVisualWindowIndex) { - return mMLWrapper->getVisibleWindowIndex(); - } - + if ( role == GlxHdmiBitmap ) { + return mMLWrapper->RetrieveBitmap( itemIndex ); + } + + return QVariant(); +} + +QVariant GlxMediaModel::collectionProperty( int role ) const +{ QModelIndex idx; if ( GlxFocusIndexRole == role ) { idx = getFocusIndex(); return idx.row(); } - if(role == GlxUriRole) { - return (mMLWrapper->retrieveItemUri(itemIndex)); + if ( role == GlxSubStateRole ) { + return mSubState; + } + + if ( role == GlxPopulated ) { + return mMLWrapper->IsPopulated(); } - if (role == GlxImageTitle) { - return mMLWrapper->retrieveListTitle(itemIndex); + if ( role == GlxViewTitle ) { + return mMLWrapper->retrieveViewTitle(); + } + + if ( role == GlxVisualWindowIndex ) { + return mMLWrapper->getVisibleWindowIndex(); } - - if(role == GlxDimensionsRole) { - return (mMLWrapper->retrieveItemDimension(itemIndex)); + + if ( role == GlxPaintPageFlag ) { + return mPaintPage; } - if(role == GlxDateRole ) { - return (mMLWrapper->retrieveItemDate(itemIndex)); + return QVariant(); +} + +QVariant GlxMediaModel::itemProperty( const QModelIndex &index, int role ) const +{ + if ( ( !index.isValid() ) || ( index.row() >= rowCount() ) ) { + return QVariant(); } - if (role == GlxFrameCount) { - return (mMLWrapper->retrieveItemFrameCount(itemIndex)); - } - - if (role == GlxHdmiBitmap) { - return mMLWrapper->RetrieveBitmap(itemIndex); + int itemIndex = index.row(); + + if ( role == GlxFrameCount ) { + return ( mMLWrapper->retrieveItemFrameCount( itemIndex ) ); } if ( role == GlxImageCorruptRole ) { return mMLWrapper->isCorruptedImage( itemIndex ); } + + if ( role == GlxUriRole ) { + return ( mMLWrapper->retrieveItemUri( itemIndex ) ); + } - if (role == GlxTimeRole) { - return mMLWrapper->retrieveItemTime(itemIndex); + if ( role == GlxSizeRole ) { + return mMLWrapper->retrieveItemSize( itemIndex ); + } + + if ( role == GlxImageTitle ) { + return mMLWrapper->retrieveListTitle( itemIndex ); + } + + if ( role == GlxDimensionsRole ) { + return ( mMLWrapper->retrieveItemDimension( itemIndex ) ); + } + + if ( role == GlxDateRole ) { + return ( mMLWrapper->retrieveItemDate( itemIndex ) ); + } + + if ( role == GlxTimeRole ) { + return mMLWrapper->retrieveItemTime( itemIndex ); } - - if (role == GlxSizeRole) { - return mMLWrapper->retrieveItemSize(itemIndex); - } + + if ( role == GlxDescRole ) { + return mMLWrapper->retrieveListDesc( itemIndex ); + } + + return QVariant(); - if (role == GlxDescRole) { - return mMLWrapper->retrieveListDesc(itemIndex); - } +} + +QVariant GlxMediaModel::data( const QModelIndex &index, int role ) const +{ + if ( role < GlxItemImageDataEnd ) { + return itemImageData( index, role ); + } + + if ( role < GlxCollectionPropertyEnd ) { + return collectionProperty( role ); + } + + if ( role < GlxItemPropertyEnd ) { + return itemProperty( index, role); + } + return QVariant(); } //GetGridIconItem -HbIcon* GlxMediaModel::GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const +HbIcon* GlxMediaModel::GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const { - HbIcon* itemIcon = itemIconCache[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, GlxTBContextGrid); - } - itemIcon = itemIconCache[itemIndex]; - } - return itemIcon; + HbIcon* itemIcon = itemIconCache[ 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, GlxTBContextGrid ); + } + itemIcon = itemIconCache[ itemIndex ]; + } + return itemIcon; } -HbIcon* GlxMediaModel::GetFsIconItem(int itemIndex, GlxTBContextType tbContextType) const +HbIcon* GlxMediaModel::GetFsIconItem( int itemIndex, GlxTBContextType tbContextType ) const { - HbIcon* itemIcon = NULL; //Initialize icon from the Cache will be NULL if Item not present + 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) - { + 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; + if ( itemIndex == mFocusIndex ) { + mDRMUtilityWrapper->ShowRightsInfo( imagePath ); } - else - { + return itemIcon; + } + else { //consumeDrmRights(imagePath); - mDRMUtilityWrapper->ConsumeRights(imagePath); - bool rightValid = mDRMUtilityWrapper->ItemRightsValidityCheck(imagePath,true); - mMLWrapper->setDrmValid(itemIndex,rightValid); - } + 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 ); } - 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); - } - itemIcon = itemFsIconCache[itemIndex]; - } - return itemIcon; + itemIcon = itemFsIconCache[ itemIndex ]; + } + return itemIcon; +} +HbIcon GlxMediaModel::gridToFullscreenIcon( HbIcon * icon, int itemIndex ) const +{ + qDebug( "GlxMediaModel::gridToFullscreenIcon" ); + QPixmap tempPixmap = icon->qicon().pixmap( 128, 128 ); + QSize itemSize = mMLWrapper->retrieveItemDimension( itemIndex ); + QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize( 640, 360 ) : QSize( 360, 640 ); + if ( !( ( itemSize.width() < sz.width() ) && ( itemSize.height() < sz.height() ) ) ) { + itemSize.scale( sz, Qt::KeepAspectRatio ); + } + tempPixmap = tempPixmap.scaled( itemSize, Qt::IgnoreAspectRatio ); + return HbIcon( QIcon( tempPixmap ) ); } -HbIcon* GlxMediaModel::GetExternalIconItem(int itemIndex,GlxTBContextType tbContextType) const +HbIcon GlxMediaModel::getFullScreenIcon( int itemIndex ) const { - //todo add asserts here as the cache and the array is not preinitialized - HbIcon* itemIcon = itemExternalIconCache[itemIndex]; //Initialize icon from the Cache will be NULL if Item not present - if (!itemIcon) { - QPixmap* itemPixmap = mExternalItems->at(itemIndex).image; - itemIcon = new HbIcon(QIcon(*itemPixmap)); - emit iconAvailable(itemIndex,itemIcon, tbContextType); - } - return itemIcon; + HbIcon* itemIcon = NULL; + if ( mContextMode == GlxContextLsFs ) { + itemIcon = GetFsIconItem( itemIndex, GlxTBContextLsFs ); + } + else if ( mContextMode == GlxContextPtFs ) { + itemIcon = GetFsIconItem( itemIndex, GlxTBContextPtFs ); + } + + if ( itemIcon == NULL ) { + HbIcon* tempIcon = GetGridIconItem( itemIndex, GlxTBContextGrid ); + if ( tempIcon && !tempIcon->isNull() ) { + HbIcon tmp = gridToFullscreenIcon( tempIcon, itemIndex ); + if ( !tmp.isNull() ) { + return tmp; + } + } + } + + if ( itemIcon == NULL || itemIcon->isNull() ) { + itemIcon = getCorruptDefaultIcon( index( itemIndex, 0 ) ); + } + return *itemIcon; } - -void GlxMediaModel::itemUpdated(int mlIndex,GlxTBContextType tbContextType ) +QImage GlxMediaModel::getFullScreenImage( int itemIndex ) const { - qDebug("GlxMediaModel::itemUpdated %d", mlIndex); - //clear the grid and FS cache if they have any icons with them for that index - if( tbContextType == GlxTBContextGrid ) { - if ( !thumbnailPopulatedFlag ) { - thumbnailPopulatedCheck( mlIndex ); - } - itemIconCache.remove(mlIndex); - } - if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs) { - itemFsIconCache.remove(mlIndex); - } - emit dataChanged( index( mlIndex , 0 ), index( mlIndex, 0 ) ); + QImage itemImage; + if ( mContextMode == GlxContextLsFs ) { + itemImage = mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextLsFs ); + } + else { + itemImage = mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextPtFs ); + } + if ( !itemImage.isNull() ) { + return itemImage; + } + else { + itemImage = mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextGrid ); + if ( !itemImage.isNull() ) { + QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize( 640, 360 ) : QSize( 360, 640 ); + itemImage = itemImage.scaled( sz, Qt::KeepAspectRatio ); + } + return itemImage; + } } -void GlxMediaModel::itemCorrupted(int itemIndex) +void GlxMediaModel::itemUpdated( int mlIndex, GlxTBContextType tbContextType ) { - qDebug("GlxMediaModel::itemCorrupted %d", itemIndex); + qDebug( "GlxMediaModel::itemUpdated %d", mlIndex ); + //clear the grid and FS cache if they have any icons with them for that index + if ( tbContextType == GlxTBContextGrid ) { + if ( !thumbnailPopulatedFlag ) { + thumbnailPopulatedCheck( mlIndex ); + } + itemIconCache.remove( mlIndex ); + } + if ( tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs ) { + itemFsIconCache.remove( mlIndex ); + } + emit dataChanged( index( mlIndex, 0 ), index( mlIndex, 0 ) ); +} + +void GlxMediaModel::itemCorrupted( int itemIndex ) +{ + qDebug( "GlxMediaModel::itemCorrupted %d", itemIndex ); if ( !thumbnailPopulatedFlag ) { - thumbnailPopulatedCheck( itemIndex ); + thumbnailPopulatedCheck( itemIndex ); } - emit dataChanged( index( itemIndex , 0 ), index( itemIndex, 0 ) ); + emit dataChanged( index( itemIndex, 0 ), index( itemIndex, 0 ) ); } void GlxMediaModel::modelpopulated() { - if ( mTempVisibleWindowIndex!=-1) { + if ( mTempVisibleWindowIndex != -1 ) { //Set the visible Window index only ff the index stored in the activity manager is not out of range - if( rowCount() > mTempVisibleWindowIndex && mTempVisibleWindowIndex > 0 ) { - mMLWrapper->setVisibleWindowIndex(mTempVisibleWindowIndex); + if ( rowCount() > mTempVisibleWindowIndex && mTempVisibleWindowIndex > 0 ) { + mMLWrapper->setVisibleWindowIndex( mTempVisibleWindowIndex ); } else { - mMLWrapper->setVisibleWindowIndex(0); + mMLWrapper->setVisibleWindowIndex( 0 ); } mTempVisibleWindowIndex = -1; } @@ -450,197 +447,174 @@ //------------------------------------------------------------------------------------------------------------ void GlxMediaModel::updateDetailItems() { - qDebug("GlxMediaModel::updateDetailItems"); + qDebug( "GlxMediaModel::updateDetailItems" ); emit updateDetailsView(); } -void GlxMediaModel::itemsAdded(int startIndex, int endIndex) +void GlxMediaModel::itemsAdded( int startIndex, int endIndex ) { - qDebug("GlxMediaModel::itemsAdded %d %d", startIndex, endIndex); - mFocusIndex = -1; - //emit rowsAboutToBeInserted(index(startIndex,0), startIndex, endIndex ); - beginInsertRows(QModelIndex(), startIndex+externalDataCount, endIndex+externalDataCount); - //itemadded.insert(startIndex,(endIndex - startIndex),NULL ); - itemIconCache.clear(); - itemFsIconCache.clear(); + qDebug( "GlxMediaModel::itemsAdded %d %d", startIndex, endIndex ); + mFocusIndex = -1; + beginInsertRows( QModelIndex(), startIndex, endIndex ); + itemIconCache.clear(); + itemFsIconCache.clear(); endInsertRows(); - //emit rowsInserted(index(startIndex,0), startIndex, endIndex ); - } -void GlxMediaModel::itemsRemoved(int startIndex, int endIndex) +void GlxMediaModel::itemsRemoved( int startIndex, int endIndex ) { - qDebug("GlxMediaModel::itemsRemoved %d %d", startIndex, endIndex); - mFocusIndex = -1; - //emit rowsAboutToBeRemoved(index(startIndex,0), startIndex, endIndex ); - beginRemoveRows(QModelIndex(), startIndex+externalDataCount, endIndex+externalDataCount); - //itemadded.remove(startIndex,(endIndex - startIndex) ); - itemIconCache.clear(); - itemFsIconCache.clear(); - endRemoveRows(); - //emit rowsRemoved(index(startIndex,0), startIndex, endIndex ); - + qDebug( "GlxMediaModel::itemsRemoved %d %d", startIndex, endIndex ); + mFocusIndex = -1; + beginRemoveRows( QModelIndex(), startIndex, endIndex ); + itemIconCache.clear(); + itemFsIconCache.clear(); + endRemoveRows(); +} + +void GlxMediaModel::updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ) +{ + qDebug( "GlxMediaModel::updateItemIcon %d", itemIndex ); + if ( tbContextType == GlxTBContextGrid ) { + itemIconCache.insert( itemIndex, itemIcon ); + } + else if ( tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs ) { + itemFsIconCache.insert( itemIndex, itemIcon ); + } } -void GlxMediaModel::updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) +void GlxMediaModel::albumTitleUpdated( QString aTitle ) { - qDebug("GlxMediaModel::updateItemIcon %d", itemIndex); - if(tbContextType == GlxTBContextGrid){ - itemIconCache.insert(itemIndex, itemIcon); - } - else if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs){ - itemFsIconCache.insert(itemIndex, itemIcon); - } - else if (tbContextType == GlxTBContextExternal){ - itemExternalIconCache.insert(itemIndex, itemIcon); - } -} - -void GlxMediaModel::albumTitleUpdated(QString aTitle) -{ - emit albumTitleAvailable(aTitle); + emit albumTitleAvailable( aTitle ); } -void GlxMediaModel::setFocusIndex(const QModelIndex &index) +void GlxMediaModel::setFocusIndex( const QModelIndex &index ) { - qDebug("GlxMediaModel::setFocusIndex%d", index.row()); - int itemIndex = index.row(); - int mlIndex = -1; - if(itemIndex >=externalDataCount) - { - mlIndex = itemIndex - externalDataCount; - mMLWrapper->setFocusIndex(mlIndex); - mFocusIndex = -1; - } - else{ - 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 { + qDebug( "GlxMediaModel::setFocusIndex%d", index.row() ); + + int itemIndex = index.row(); + if ( itemIndex < rowCount() && itemIndex >= 0 ) { + mMLWrapper->setFocusIndex( itemIndex ); + mFocusIndex = itemIndex; + } + else if ( rowCount() > 0 ){ + + mMLWrapper->setFocusIndex( 0 ); + mFocusIndex = itemIndex = 0; + } + + if ( mSubState != IMAGEVIEWER_S ) { + if ( mMLWrapper->IsDrmProtected( itemIndex ) && ( !mMLWrapper->IsDrmValid( itemIndex ) ) ) { + QString imagePath = mMLWrapper->retrieveItemUri( itemIndex ); + 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); - } + QString imagePath = QString::fromUtf16( title.Ptr(), title.Length() ); + mDRMUtilityWrapper->ShowRightsInfo( imagePath ); + } } QModelIndex GlxMediaModel::getFocusIndex() const { - int itemIndex = 0; - //return index(itemIndex+externalDataCount,0); - if(mFocusIndex == -1){ - int mlIndex = mMLWrapper->getFocusIndex(); - itemIndex = mlIndex + externalDataCount; - } - else { - itemIndex = mFocusIndex; - } - return index(itemIndex,0); + int itemIndex = mFocusIndex; + if ( mFocusIndex == -1 ) { + itemIndex = mMLWrapper->getFocusIndex(); + } + + return index( itemIndex, 0 ); } -void GlxMediaModel::setSelectedIndex(const QModelIndex &index) +void GlxMediaModel::setSelectedIndex( const QModelIndex &index ) { int itemIndex = index.row(); - qDebug("GlxMediaModel::setSelectedIndex()%d", itemIndex); - mMLWrapper->setSelectedIndex(itemIndex); + qDebug( "GlxMediaModel::setSelectedIndex()%d", itemIndex ); + mMLWrapper->setSelectedIndex( itemIndex ); } HbIcon * GlxMediaModel::getCorruptDefaultIcon( const QModelIndex &index ) const { if ( mMLWrapper->isCorruptedImage( index.row() ) ) { - return m_CorruptIcon ; + return m_CorruptIcon; } - return m_DefaultIcon ; + return m_DefaultIcon; } void GlxMediaModel::thumbnailPopulatedCheck( int index ) { - int count = rowCount() - DELTA_IMAGE ; - int maxRange = INITIAL_POPULATE_IMAGE_COUNT + DELTA_IMAGE ; - if ( index >= count || ( index >= INITIAL_POPULATE_IMAGE_COUNT && index < maxRange ) ) { + int count = rowCount() - DELTA_IMAGE; + int maxRange = INITIAL_POPULATE_IMAGE_COUNT + DELTA_IMAGE; + if ( index >= count || ( index >= INITIAL_POPULATE_IMAGE_COUNT && index < maxRange ) ) { thumbnailPopulatedFlag = TRUE; emit thumbnailPopulated(); } } -bool GlxMediaModel::setData ( const QModelIndex & idx, const QVariant & value, int role ) +bool GlxMediaModel::setData( const QModelIndex & idx, const QVariant & value, int role ) { Q_UNUSED( idx ) - + if ( GlxContextRole == role ) { - if ( value.isValid() && value.canConvert () ) { - setContextMode( (GlxContextMode) value.value () ); + if ( value.isValid() && value.canConvert () ) { + setContextMode( (GlxContextMode) value.value () ); return TRUE; } } - + if ( GlxRemoveContextRole == role ) { - if ( value.isValid() && value.canConvert () ) { - removeContextMode( (GlxContextMode) value.value () ); - return TRUE; - } - } - - - if ( GlxFocusIndexRole == role ) { - if ( value.isValid() && value.canConvert () ) { - setFocusIndex( index( value.value (), 0) ); + if ( value.isValid() && value.canConvert () ) { + removeContextMode( (GlxContextMode) value.value () ); return TRUE; } } - + + if ( GlxFocusIndexRole == role ) { + if ( value.isValid() && value.canConvert () ) { + setFocusIndex( index( value.value (), 0 ) ); + return TRUE; + } + } + if ( GlxVisualWindowIndex == role ) { - if ( value.isValid() && value.canConvert () ) { - mMLWrapper->setVisibleWindowIndex( value.value () ); + if ( value.isValid() && value.canConvert () ) { + mMLWrapper->setVisibleWindowIndex( value.value () ); return TRUE; } } if ( GlxSelectedIndexRole == role ) { - qDebug("GlxMediaModel::setData::GlxSelectedIndexRole()::BEFORE%d", idx.row()); - if ( value.isValid() && value.canConvert () ) { - qDebug("GlxMediaModel::setData()::GlxSelectedIndexRole%d", idx.row()); - setSelectedIndex( index( value.value (), 0) ); + qDebug( "GlxMediaModel::setData::GlxSelectedIndexRole()::BEFORE%d", idx.row() ); + if ( value.isValid() && value.canConvert () ) { + qDebug( "GlxMediaModel::setData()::GlxSelectedIndexRole%d", idx.row() ); + setSelectedIndex( index( value.value (), 0 ) ); return TRUE; } } - - if ( role == GlxSubStateRole && value.isValid() && value.canConvert ()) { - mSubState = value.value () ; + + if ( role == GlxSubStateRole && value.isValid() && value.canConvert () ) { + mSubState = value.value (); return TRUE; } if ( GlxTempVisualWindowIndex == role ) { - if ( value.isValid() && value.canConvert () ) { - mTempVisibleWindowIndex = value.value (); + if ( value.isValid() && value.canConvert () ) { + mTempVisibleWindowIndex = value.value (); return TRUE; - } + } } return FALSE; } -QModelIndex GlxMediaModel::index(int row, int column, const QModelIndex &parent) const +QModelIndex GlxMediaModel::index( int row, int column, const QModelIndex &parent ) const { Q_UNUSED(parent) - qDebug("GlxMediaModel::index row %d column %d", row, column); - - if ( ( row < 0 ) - || ( row >= rowCount() ) - || ( column < 0 ) - || ( column >= columnCount() ) ) { + qDebug( "GlxMediaModel::index row %d column %d", row, column ); + + if ( ( row < 0 ) || ( row >= rowCount() ) || ( column < 0 ) || ( column >= columnCount() ) ) { return QModelIndex(); } - - return QAbstractItemModel::createIndex(row, column); + + return QAbstractItemModel::createIndex( row, column ); } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp --- a/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -16,10 +16,12 @@ */ +#include +#include -#include -#include -#include +#include "glxfullscreenstate.h" +#include "glxstatemanager.h" +#include "glxcommandhandlers.hrh" GlxFullScreenState::GlxFullScreenState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_FULLSCREENVIEW_ID, preState) { @@ -63,7 +65,8 @@ } else if ( dir == BACKWARD_DIR ) { if ( preState->compare( GLX_GRIDVIEW_ID ) ) { - effect = FULLSCREEN_TO_GRID; + HbMainWindow *window = hbInstance->allMainWindows().first(); + effect = window->orientation() == Qt::Vertical ? FULLSCREEN_TO_GRID_PORTRAIT : FULLSCREEN_TO_GRID ; viewEffect = LAUNCH_VIEW; } } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/viewmanagement/statehandler/src/glxstatemanager.cpp --- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -751,27 +751,6 @@ id = EGlxCmdHandled; } break; - - case EGlxCmdDelete : - { - GlxExternalData* externalItems = GlxExternalUtility::instance()->getExternalData(); - if(externalItems){ - QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) { - int selIndex = variant.value(); - int externalDataCount = externalItems->count(); - if(selIndex < externalDataCount){ - GlxInterfaceParams tmp = externalItems->value(selIndex); - tmp.isSelected = true; - externalItems->replace(selIndex,tmp); - emit externalCommand(EGlxPluginCmdDelete); - return; - } - } - } - mActionHandler->handleAction(id,mCollectionId); - } - break; case EGlxCmdMarkAll : case EGlxCmdUnMarkAll : @@ -841,8 +820,4 @@ { qDebug("GlxStateManager::cleanupExternal"); mViewManager->deactivateCurrentView(); - GlxMediaModel *glxModel = dynamic_cast(mCurrentModel); - if(glxModel) { - glxModel->clearExternalItems(); - } } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/views/fullscreenview/inc/glxfullscreenview.h --- a/ui/views/fullscreenview/inc/glxfullscreenview.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/views/fullscreenview/inc/glxfullscreenview.h Mon Sep 27 15:13:20 2010 +0530 @@ -65,6 +65,15 @@ ~GlxFullScreenView(); /** + * initializeView() - Initialize the coverflow and partially creates the coverflow with one image + * to make the widget light weight in order to make transition smooth + * and also loads the widgets. + * @param - pointer of model to retreive the view releted data + * @parm - previous view pointer to get the staus of fullscreen mode of the view + */ + void initializeView( QAbstractItemModel *model, GlxView *preView ); + + /** * activate() * ///From GlxView */ @@ -75,15 +84,6 @@ * ///From GlxView */ void deActivate(); - - /** - * initializeView() - Initialize the coverflow and partially creates the coverflow with one image - * to make the widget light weight in order to make transition smooth - * and also loads the widgets. - * @param - pointer of model to retreive the view releted data - * @parm - previous view pointer to get the staus of fullscreen mode of the view - */ - void initializeView( QAbstractItemModel *model, GlxView *preView ); /** * resetView() - resets the view, with just one icon being present in the widget @@ -122,11 +122,6 @@ void orientationChanged( Qt::Orientation ); /** - * activateUI() - To show the ui content like status bar, toolbar, and imzge strip. - */ - void activateUI(); - - /** * hideUi() - To hide the ui content like status bar, toolbar, and imzge strip. */ void hideUi(); @@ -170,11 +165,6 @@ void released(const QModelIndex &index ); /** - * setVisvalWindowIndex() - Set the viisual window index of medialist. - */ - void setVisvalWindowIndex(); - - /** * coverFlowEventHandle() - Handle the event generated by cover flow. * @param - cover flow event type */ @@ -205,8 +195,7 @@ void zoomOrientChangeAnimFinished( const HbEffect::EffectStatus status ); /** - * effectFinished - call back when ui on\off effect has finished - * @param - staus of effect + * handleToolBarAction() - call back to handle fullscreen tool bar action */ void handleToolBarAction(); @@ -239,6 +228,11 @@ void setLayout(); /** + * activateUI() - To show the ui content like status bar, toolbar, and imzge strip. + */ + void activateUI(); + + /** * addConnection() - Add the call back of the widgets. */ void addConnection(); @@ -254,6 +248,12 @@ void setImageStripModel(); /** + * setHdmiModel() - set the image strip model. + * @param - model + */ + void setHdmiModel( QAbstractItemModel *model ); + + /** * loadFullScreenToolBar() - load the fullscreen tool bar from the docml. */ void loadFullScreenToolBar(); @@ -267,6 +267,11 @@ void addToolBarAction( int commandId, const QString &iconName, const QString &name) ; /** + * setVisvalWindowIndex() - Set the viisual window index of medialist. + */ + void setVisvalWindowIndex(); + + /** * initAnimationItem() - Initialise the custom animation item. */ void initAnimationItem(); @@ -296,12 +301,6 @@ */ int getSubState(); - /** - * setHdmiModel() - set the image strip model. - * @param - model - */ - void setHdmiModel( QAbstractItemModel *model ); - private: QAbstractItemModel *mModel; //no ownership HbMainWindow *mWindow; //no ownership diff -r ccee5c4b0de4 -r 45459746d5e8 ui/views/fullscreenview/src/glxfullscreenview.cpp --- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -82,15 +82,44 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); } +GlxFullScreenView::~GlxFullScreenView() +{ + OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY ); + + cleanUp(); + for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { + delete mIconItems[ i ] ; + } + delete mBackGroundItem; + delete mImageStrip; + delete mFullScreenToolBar; + delete mCoverFlow; + delete mZoomWidget; + + if( mDocLoader != NULL ) { + mDocLoader->reset(); + delete mDocLoader; + } + + HbEffect::remove( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) ); + HbEffect::remove( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) ); + HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) ); + HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.fxml" ), QString( "SelectShow" ) ); + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) ); + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) ); + + OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); +} + void GlxFullScreenView::initializeView( QAbstractItemModel *model, GlxView *preView ) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INITIALIZEVIEW_ENTRY ); // if animations is on, then Set the image to HDMI here - if (!mTvOutWrapper){ + if ( !mTvOutWrapper ){ mTvOutWrapper = new GlxTvOutWrapper(); } - setHdmiModel(model); + setHdmiModel( model ); loadWidgets(); /* @@ -114,104 +143,44 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT ); } -void GlxFullScreenView::loadWidgets() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY ); - - mCoverFlow = qobject_cast (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW)); - - mZoomWidget = qobject_cast (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET)); - mZoomWidget->connectDecodeRequestToPinchEvent(); - mCoverFlow->setMultitouchFilter(mZoomWidget); - - //initialise the cover flow for basic connections and the rest - mCoverFlow->setCoverFlow(); - 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" ) ); // To distinguish in CSS file - mImageStrip->setEnabledAnimations( HbAbstractItemView::None ); - mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff ); - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT ); -} - -void GlxFullScreenView::loadFullScreenToolBar() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_ENTRY ); - - //The fullscreen tool bar is delted when ever the view is deactivated - //so load the docml once again and retreive the object - bool loaded =true; - mDocLoader->load(GLXFULLSCREENDOCMLPATH,&loaded); - loadViewSection(); - - mFullScreenToolBar = qobject_cast (mDocLoader->findObject(QString("toolBar"))); - mFullScreenToolBar->clearActions(); - - 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 ); -} - -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 ); //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); + mWindow->viewport()->setAttribute( Qt::WA_AcceptTouchEvents, true ); + mWindow->viewport()->grabGesture( Qt::PinchGesture ); + + QCoreApplication::instance()->installEventFilter( this ); if( !mCoverFlow ) { loadWidgets(); //retrives the widgets } //Loads the widgets corresponding to the orientation. loadViewSection(); - + HbView::HbViewFlags flags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent); setViewFlags(flags); - - // In case of fetcher don't hide status pane and title bar + + // In case of fetcher don't hide status pane and title bar if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))) { setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden ); - mUiOff = true; - } - else - { - HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT); + mUiOff = true; + } + else { + HbAction* selectAction = new HbAction( GLX_BUTTON_SELECT ); selectAction->setObjectName( "FS Select" ); - connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect())); + connect( selectAction, SIGNAL( triggered() ), this, SLOT( handleFSSelect() ) ); HbToolBar* toolBar = new HbToolBar(); toolBar->setOrientation( Qt::Horizontal ); - toolBar->setVisible(true); - toolBar->addAction(selectAction); - setToolBar(toolBar); - } + toolBar->setVisible( true ); + toolBar->addAction( selectAction ); + setToolBar( toolBar ); + } mUiOffTimer = new QTimer(); mUiOffTimer->stop(); - mCoverFlow->setUiOn(FALSE); + mCoverFlow->setUiOn( FALSE ); addConnection(); setLayout(); @@ -223,26 +192,23 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT ); } -void GlxFullScreenView::handleFSSelect() -{ - emit actionTriggered( EGlxCmdFetcherSelect ); -} - -void GlxFullScreenView::loadViewSection() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY ); +void GlxFullScreenView::deActivate() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_DEACTIVATE_ENTRY ); + + cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view + //Clean up the rest of the resources allocated + cleanUp(); + QCoreApplication::instance()->removeEventFilter( this ); + //deletes the iconitems in the coverflow + mCoverFlow->ClearCoverFlow(); - bool loaded =true; - if( mWindow->orientation() == Qt::Horizontal ) { - //Load the Landscape section for Horizontal - mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENLSSECTION,&loaded); - } - else{ - //Load the Portrait section for Horizontal - mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENPTSECTION,&loaded); - } - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADVIEWSECTION_EXIT ); + //the coverflow is not deleted as it is loaded by document loader + //the coverflow is initialised to null + //to just reset to the initial state + mCoverFlow = NULL; + mWindow->setAutomaticOrientationEffectEnabled( true ); + OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT ); } void GlxFullScreenView::resetView() @@ -259,23 +225,42 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_RESETVIEW_EXIT ); } -void GlxFullScreenView::deActivate() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_DEACTIVATE_ENTRY ); +void GlxFullScreenView::setModel( QAbstractItemModel *model ) +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODEL_ENTRY ); + OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel ); - cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view - //Clean up the rest of the resources allocated - cleanUp(); - QCoreApplication::instance()->removeEventFilter(this); - //deletes the iconitems in the coverflow - mCoverFlow->ClearCoverFlow(); + mModel = model; + setModelContext(); + setHdmiModel( mModel ); + mZoomWidget->setModel( mModel ); + mCoverFlow->setModel( mModel ); + setImageStripModel(); + if( getSubState() == IMAGEVIEWER_S ) { + setTitle(GLX_IMAGE_VIEWER); + } + else if(getSubState() == FETCHER_S){ //do not hide UI in case of fetcher + disconnect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) ); + } + OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT ); +} - //the coverflow is not deleted as it is loaded by document loader - //the coverflow is initialised to null - //to just reset to the initial state - mCoverFlow = NULL; - mWindow->setAutomaticOrientationEffectEnabled( true ); - OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT ); +void GlxFullScreenView::setModelContext() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODELCONTEXT_ENTRY ); + + if ( mModel && mWindow ) { + if ( mWindow->orientation() == Qt::Horizontal ) { + WRITE_TIMESTAMP("set the fullscreen landscape context") + mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); + } + else { + WRITE_TIMESTAMP("set the fullscreen portrait context") + mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); + } + } + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODELCONTEXT_EXIT ); } void GlxFullScreenView::cleanUp() @@ -321,52 +306,6 @@ return NULL; } -void GlxFullScreenView::setModel( QAbstractItemModel *model ) -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODEL_ENTRY ); - OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel ); - - mModel = model; - setModelContext(); - setHdmiModel(mModel); - mZoomWidget->setModel(mModel); - mCoverFlow->setModel(mModel); - setImageStripModel(); - if(getSubState() == IMAGEVIEWER_S) { - setTitle(GLX_IMAGE_VIEWER); - } - else if(getSubState() == FETCHER_S){ //do not zoom in case of fetcher - disconnect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) ); - } - OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT ); -} - -void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model) -{ - if (mTvOutWrapper) { - mTvOutWrapper->setModel(model, screenSize()); - mTvOutWrapper->setImagetoHDMI(); // for the first image on screen - } -} - -void GlxFullScreenView::setModelContext() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODELCONTEXT_ENTRY ); - - if ( mModel && mWindow ) { - if ( mWindow->orientation() == Qt::Horizontal ) { - WRITE_TIMESTAMP("set the fullscreen landscape context") - mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); - } - else { - WRITE_TIMESTAMP("set the fullscreen portrait context") - mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); - } - } - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODELCONTEXT_EXIT ); -} - void GlxFullScreenView::orientationChanged(Qt::Orientation orient) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_ENTRY ); @@ -390,42 +329,6 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT ); } -void GlxFullScreenView::activateUI() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY ); - - if ( mUiOff && getSubState() != FETCHER_S ){ - if( !mFullScreenToolBar ) { - loadFullScreenToolBar(); - } - mUiOff = FALSE; - - QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) { - mImageStrip->setCurrentIndex ( mModel->index( variant.value(), 0) ); - mImageStrip->scrollTo( mModel->index( variant.value(), 0), HbGridView::PositionAtTop ); - } - - setItemVisible( Hb::AllItems, TRUE ); - setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden ); - - if ( mImageStrip && getSubState() != IMAGEVIEWER_S) { - mImageStrip->show(); - HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" ); - } - else if( getSubState() == IMAGEVIEWER_S){ - setTitle(GLX_IMAGE_VIEWER); - } - mFullScreenToolBar->setOpacity( 1 ); - mFullScreenToolBar->show(); - } - else { - hideUi(); - } - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATEUI_EXIT ); -} - void GlxFullScreenView::hideUi() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HIDEUI_ENTRY ); @@ -452,7 +355,7 @@ OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_HIDEUI_EXIT ); } -void GlxFullScreenView::changeSelectedIndex(const QModelIndex &index) +void GlxFullScreenView::changeSelectedIndex( const QModelIndex &index ) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_ENTRY ); @@ -481,7 +384,7 @@ OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_EXIT ); } -void GlxFullScreenView::indexChanged(const QModelIndex &index) +void GlxFullScreenView::indexChanged( const QModelIndex &index ) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INDEXCHANGED_ENTRY ); @@ -494,12 +397,11 @@ if (mTvOutWrapper){ // for the indexchnaged through filmstrip mTvOutWrapper->setImagetoHDMI(); - } - //disable the animation for the time being + } imageSelectionAnimation( index ); mModel->setData( index, index.row(), GlxFocusIndexRole ); - mZoomWidget->indexChanged(index.row()); + mZoomWidget->indexChanged( index.row() ); mZoomWidget->setVisible( false ); OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_INDEXCHANGED_EXIT ); @@ -554,26 +456,6 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_RELEASED_EXIT ); } -void GlxFullScreenView::setVisvalWindowIndex() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_ENTRY ); - - QList< HbAbstractViewItem * > visibleItemList = mImageStrip->visibleItems(); - if ( visibleItemList.count() <= 0 ) - return ; - - HbAbstractViewItem *item = visibleItemList.at(0); - if ( item == NULL ) - return ; - - if ( item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() ) - return ; - - mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex); - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_EXIT ); -} - void GlxFullScreenView::coverFlowEventHandle( GlxCoverFlowEvent e ) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_COVERFLOWEVENTHANDLE_ENTRY ); @@ -621,15 +503,16 @@ return ; } + mImageStrip->resetTransform(); if ( mUiOff ) { mUiOffTimer->stop(); - mCoverFlow->setUiOn(FALSE); + mCoverFlow->setUiOn( FALSE ); mImageStrip->hide(); setItemVisible( Hb::AllItems, FALSE ); } else { - mUiOffTimer->start(KUiOffTime); - mCoverFlow->setUiOn(TRUE); + mUiOffTimer->start( KUiOffTime ); + mCoverFlow->setUiOn( TRUE ); } OstTraceFunctionExit0( GLXFULLSCREENVIEW_EFFECTFINISHED_EXIT ); @@ -670,6 +553,84 @@ mZoomWidget->resetTransform(); } +void GlxFullScreenView::handleToolBarAction() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_ENTRY ); + + HbAction *action = qobject_cast(sender()); + qint32 commandId = action->data().toInt(); + emit actionTriggered( commandId ); + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_EXIT ); +} + +void GlxFullScreenView::handleFSSelect() +{ + emit actionTriggered( EGlxCmdFetcherSelect ); +} + +bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev) +{ + GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type()); + if ( ev->type() == QEvent::ApplicationActivate && mTvOutWrapper) { + GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi"); + mTvOutWrapper->setToNativeMode(); + } + if (ev->type() == QEvent::ApplicationDeactivate) + { + if(mZoomWidget) { + mZoomWidget->forceZoomToBackground(); + } + if (mTvOutWrapper) { + GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi"); + mTvOutWrapper->setToCloningMode(); + } + } + return HbView::eventFilter(obj,ev); +} + +void GlxFullScreenView::loadWidgets() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY ); + + mCoverFlow = qobject_cast (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW)); + + mZoomWidget = qobject_cast (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET)); + mZoomWidget->connectDecodeRequestToPinchEvent(); + mCoverFlow->setMultitouchFilter(mZoomWidget); + + //initialise the cover flow for basic connections and the rest + mCoverFlow->setCoverFlow(); + 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" ) ); // To distinguish in CSS file + mImageStrip->setEnabledAnimations( HbAbstractItemView::None ); + //mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff ); + mImageStrip->setItemPixmapCacheEnabled( true ); + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT ); +} + +void GlxFullScreenView::loadViewSection() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY ); + + bool loaded =true; + if( mWindow->orientation() == Qt::Horizontal ) { + //Load the Landscape section for Horizontal + mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENLSSECTION,&loaded); + } + else{ + //Load the Portrait section for Horizontal + mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENPTSECTION,&loaded); + } + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADVIEWSECTION_EXIT ); +} + void GlxFullScreenView::setLayout() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY ); @@ -682,6 +643,42 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETLAYOUT_EXIT ); } +void GlxFullScreenView::activateUI() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY ); + + if ( mUiOff && getSubState() != FETCHER_S ){ + if( !mFullScreenToolBar ) { + loadFullScreenToolBar(); + } + mUiOff = FALSE; + + QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); + if ( variant.isValid() && variant.canConvert () ) { + mImageStrip->setCurrentIndex ( mModel->index( variant.value(), 0) ); + mImageStrip->scrollTo( mModel->index( variant.value(), 0), HbGridView::PositionAtTop ); + } + + setItemVisible( Hb::AllItems, TRUE ); + setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden ); + + if ( mImageStrip && getSubState() != IMAGEVIEWER_S) { + mImageStrip->show(); + HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" ); + } + else if( getSubState() == IMAGEVIEWER_S){ + setTitle(GLX_IMAGE_VIEWER); + } + mFullScreenToolBar->setOpacity( 1 ); + mFullScreenToolBar->show(); + } + else { + hideUi(); + } + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATEUI_EXIT ); +} + void GlxFullScreenView::addConnection() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ADDCONNECTION_ENTRY ); @@ -763,33 +760,67 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETIMAGESTRIPMODEL_EXIT ); } -GlxFullScreenView::~GlxFullScreenView() +void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model) { - OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY ); + if (mTvOutWrapper) { + mTvOutWrapper->setModel(model, screenSize()); + mTvOutWrapper->setImagetoHDMI(); // for the first image on screen + } +} + +void GlxFullScreenView::loadFullScreenToolBar() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_ENTRY ); - cleanUp(); - for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { - delete mIconItems[ i ] ; - } - delete mBackGroundItem; - delete mImageStrip; - delete mFullScreenToolBar; - delete mCoverFlow; - delete mZoomWidget; + //The fullscreen tool bar is delted when ever the view is deactivated + //so load the docml once again and retreive the object + bool loaded =true; + mDocLoader->load(GLXFULLSCREENDOCMLPATH,&loaded); + loadViewSection(); - if(mDocLoader != NULL) { - mDocLoader->reset(); - delete mDocLoader; - } + mFullScreenToolBar = qobject_cast (mDocLoader->findObject(QString("toolBar"))); + mFullScreenToolBar->clearActions(); - HbEffect::remove( QString("HbGridView"), QString(":/data/transitionup.fxml"), QString( "TapShow" )); - HbEffect::remove( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" )); - HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) ); - HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.fxml" ), QString( "SelectShow" ) ); - HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) ); - HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) ); - - OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); + 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 ); +} + +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::setVisvalWindowIndex() +{ + OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_ENTRY ); + + QList< HbAbstractViewItem * > visibleItemList = mImageStrip->visibleItems(); + if ( visibleItemList.count() <= 0 ) + return ; + + HbAbstractViewItem *item = visibleItemList.at(0); + if ( item == NULL ) + return ; + + if ( item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() ) + return ; + + mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex); + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_EXIT ); } void GlxFullScreenView::initAnimationItem() @@ -871,17 +902,6 @@ HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "zoomOrientChangeAnimFinished" ); } } - -void GlxFullScreenView::handleToolBarAction() -{ - OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_ENTRY ); - - HbAction *action = qobject_cast(sender()); - qint32 commandId = action->data().toInt(); - emit actionTriggered( commandId ); - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_EXIT ); -} int GlxFullScreenView::getSubState() { @@ -896,23 +916,3 @@ return substate; } -bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev) -{ - GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type()); - if ( ev->type() == QEvent::ApplicationActivate && mTvOutWrapper) { - GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi"); - mTvOutWrapper->setToNativeMode(); - } - if (ev->type() == QEvent::ApplicationDeactivate) - { - if(mZoomWidget) { - mZoomWidget->forceZoomToBackground(); - } - if (mTvOutWrapper) { - GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi"); - mTvOutWrapper->setToCloningMode(); - } - } - return HbView::eventFilter(obj,ev); -} - diff -r ccee5c4b0de4 -r 45459746d5e8 ui/views/gridview/src/glxgridview.cpp --- a/ui/views/gridview/src/glxgridview.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/views/gridview/src/glxgridview.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -97,6 +97,7 @@ mTotalImagesCount->setObjectName( "Count" ); mTotalImagesCount->hide(); } + mWidget->resetTransform(); OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT ); } @@ -243,8 +244,7 @@ OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" ); mWidget->setSelectionMode(HgWidget::MultiSelection); - if (mMarkingWidget == NULL) - { + if (mMarkingWidget == NULL) { mMarkingWidget = new HbWidget(this); mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0); mMarkingWidget->setLayout(mMarkContainer); @@ -262,13 +262,12 @@ mMarkContainer->addItem(mMarkCheckBox); mMarkContainer->addItem(mMarkCountLabel); - } - - hideorshowitems(mWindow->orientation()); + } - connect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) ); - connect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int))); + hideorshowitems( mWindow->orientation() ); + connect( mWidget->selectionModel() , SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) ); + connect( mMarkCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( stateChanged( int ) )); } void GlxGridView::disableMarking() @@ -305,9 +304,26 @@ { int count = mModel->rowCount(); QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes(); - int markItemCount = indexList.count(); - QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count); - mMarkCountLabel->setPlainText( text ); + int markItemCount = indexList.count(); + QString text = HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count); + mMarkCountLabel->setPlainText(text); + + //Block The signals generated by the CheckBox + //if we dont block the signals , then when we call setCheckState to selected and unselect the CheckBox + //it causes state change signal to emit which will cause either mark all or un mark all of teh images. + mMarkCheckBox->blockSignals(TRUE); + if (markItemCount != count && mMarkCheckBox->checkState() == Qt::Checked) { + //if the mark all option was checked and then the user un marks an slected item + //Then we have to un check the Mark All check Box + mMarkCheckBox->setCheckState(Qt::Unchecked); + } + else if (markItemCount == count) { + //if all the images are selected/marked Indiduvally + //Then the the Mark All check Box has to checked/Selected + mMarkCheckBox->setCheckState(Qt::Checked); + } + //UnBlock The signals generated by the CheckBox + mMarkCheckBox->blockSignals(FALSE); } void GlxGridView::showItemCount() @@ -332,9 +348,10 @@ if (mAlbumNameHeading) { mAlbumNameHeading->hide(); } - mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); + text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); mTotalImagesCount->setHeading ( text ); + mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); mTotalImagesCount->show(); } else if ( getSubState() == ALBUM_ITEM_S ) { @@ -397,18 +414,18 @@ //If fetcher service set only title text if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem)) - { - mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24)); + { mAlbumNameHeading->setHeading(aTitle); + mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24)); mAlbumNameHeading->show(); } else { //handle album tiltle and count display logic here if (isItemVisible(Hb::TitleBarItem)) { - mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24)); - QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count); + QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count); mAlbumNameHeading->setHeading(text); + mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height()/24)); mAlbumNameHeading->show(); } } @@ -512,50 +529,47 @@ OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY ); int selIndex = -1; - if ( transitionEffect == FULLSCREEN_TO_GRID ) { + if ( transitionEffect == FULLSCREEN_TO_GRID || transitionEffect == FULLSCREEN_TO_GRID_PORTRAIT ) { return mWidget; } - if ( transitionEffect == GRID_TO_FULLSCREEN ) - { - QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) - { - selIndex = variant.value(); - } - else - { + if ( transitionEffect == GRID_TO_FULLSCREEN ) { + QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole ); + if ( variant.isValid() && variant.canConvert () ) { + selIndex = variant.value (); + } + else { return mWidget; - } - QVariant variantimage = mModel->data(mModel->index(selIndex,0),Qt::DecorationRole); - if ( variantimage.isValid() && variantimage.canConvert () ) - { + } + QVariant variantimage = mModel->data( mModel->index( selIndex, 0 ), Qt::DecorationRole ); + if ( variantimage.isValid() && variantimage.canConvert () ) { QPolygonF poly; - if (mModelWrapper && !mWidget->getItemOutline(mModelWrapper->index(selIndex,0), poly)) - { + if ( mModelWrapper && !mWidget->getItemOutline( mModelWrapper->index( selIndex, 0 ), poly ) ) { return mWidget; - } + } QRectF itemRect = poly.boundingRect(); - mIconItem->setSize(QSize(120,120)); - HbIcon tempIcon = variantimage.value(); - QPixmap tempPixmap = tempIcon.qicon().pixmap(120, 120); - QSize sz = QSize ( 120, 120); - tempPixmap = tempPixmap.scaled(sz, Qt::IgnoreAspectRatio ); - HbIcon tmp = HbIcon( QIcon(tempPixmap)) ; - mIconItem->setIcon(tmp); - mIconItem->setPos(itemRect.topLeft()); - mIconItem->setZValue(mIconItem->zValue() + 20); + mIconItem->setSize( QSize( 120, 120 ) ); + HbIcon tempIcon = variantimage.value (); + QPixmap tempPixmap = tempIcon.qicon().pixmap( 120, 120 ); + QSize sz = QSize( 120, 120 ); + tempPixmap = tempPixmap.scaled( sz, Qt::IgnoreAspectRatio ); + HbIcon tmp = HbIcon( QIcon( tempPixmap ) ); + mIconItem->setIcon( tmp ); + mIconItem->setPos( itemRect.topLeft() ); + mIconItem->setZValue( mIconItem->zValue() + 20 ); mIconItem->show(); - return mIconItem; + if ( mToolBar ) { + mToolBar->setZValue( mIconItem->zValue() - 5 ); } - else - { + return mIconItem; + } + else { return mWidget; - } } + } - if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ){ + if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ) { return mWidget; } OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT ); @@ -638,10 +652,8 @@ mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72)); mMarkSelectHeading->show(); - mMarkingWidget->show(); - - showMarkedItemCount(); - + mMarkingWidget->show(); + showMarkedItemCount(); } } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/views/slideshowview/src/glxslideshowview.cpp --- a/ui/views/slideshowview/src/glxslideshowview.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/views/slideshowview/src/glxslideshowview.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -122,7 +122,7 @@ mSlideShowWidget->setModel(mModel); if (mTvOutWrapper){ - mTvOutWrapper->setModel(mModel, screenSize(), true); + mTvOutWrapper->setModel(mModel, screenSize()); mTvOutWrapper->setImagetoHDMI(); } } @@ -180,9 +180,6 @@ break; case EFFECT_STARTED: - if (mTvOutWrapper){ - mTvOutWrapper->fadeSurface(false); - } break; default : diff -r ccee5c4b0de4 -r 45459746d5e8 ui/viewutilities/effectengine/src/glxeffectengine.cpp --- a/ui/viewutilities/effectengine/src/glxeffectengine.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/viewutilities/effectengine/src/glxeffectengine.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -30,20 +30,20 @@ mTransitionEffect( NO_EFFECT ), mEffectResolver( NULL ) { - qDebug("GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()"); + qDebug( "GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()" ); mTransitionEffectList.clear(); } GlxEffectEngine::~GlxEffectEngine() { - qDebug("GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()"); + qDebug( "GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()" ); delete mEffectResolver; mEffectResolver = NULL; cleanTransitionEfffect(); } -void GlxEffectEngine::registerEffect(const QString &itemType) +void GlxEffectEngine::registerEffect( const QString &itemType ) { GlxSettingInterface *settingObj = GlxSettingInterface::instance(); // NO ownership if ( mEffectResolver == NULL ) { @@ -54,56 +54,56 @@ QList effectPathList = mEffectPlugin->effectFileList(); - qDebug("GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16()); + qDebug( "GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16() ); for ( int i = 0; i < effectPathList.count() ; ++i ) { - HbEffect::add(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i)); + HbEffect::add( itemType, effectPathList.at( i ), QString( "Click%1" ).arg( i ) ); } } -void GlxEffectEngine::deRegisterEffect(const QString &itemType) +void GlxEffectEngine::deRegisterEffect( const QString &itemType ) { - qDebug("GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16()); + qDebug( "GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16() ); QList effectPathList = mEffectPlugin->effectFileList(); for ( int i = 0; i < effectPathList.count() ; ++i ) { - HbEffect::remove(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i)); + HbEffect::remove( itemType, effectPathList.at( i ), QString( "Click%1" ).arg( i ) ); } mEffectPlugin = NULL; } void GlxEffectEngine::registerTransitionEffect() { - qDebug("GlxSlideShowEffectEngine::registerTransitionEffect()"); + qDebug( "GlxSlideShowEffectEngine::registerTransitionEffect()" ); initTransitionEffect(); } void GlxEffectEngine::deregistertransitionEffect() { - qDebug("GlxSlideShowEffectEngine::deregisterTransitionEffect()"); + qDebug( "GlxSlideShowEffectEngine::deregisterTransitionEffect()" ); cleanTransitionEfffect(); } -void GlxEffectEngine::runEffect(QGraphicsItem * item, const QString & itemType ) +void GlxEffectEngine::runEffect( QGraphicsItem * item, const QString & itemType ) { - qDebug("GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16()); - HbEffect::start(item, itemType, QString( "Click1" ), this, "slideShowEffectFinished"); + qDebug( "GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16() ); + HbEffect::start( item, itemType, QString( "Click1" ), this, "slideShowEffectFinished" ); ++mNbrEffectRunning; } -void GlxEffectEngine::runEffect(QList< QGraphicsItem * > & items, const QString & itemType ) +void GlxEffectEngine::runEffect( QList< QGraphicsItem * > & items, const QString & itemType ) { - qDebug("GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16()); + qDebug( "GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16() ); mEffectPlugin->setUpItems(items); for ( int i = 0; i < items.count() ; ++i ) { - if ( mEffectPlugin->isAnimationLater(i) == FALSE ) { - HbEffect::start(items.at(i), itemType, QString( "Click%1").arg(i), this, "slideShowEffectFinished"); + if ( mEffectPlugin->isAnimationLater( i ) == FALSE ) { + HbEffect::start( items.at( i ), itemType, QString( "Click%1" ).arg( i ), this, "slideShowEffectFinished" ); } ++mNbrEffectRunning; } } -void GlxEffectEngine::runEffect(QList< QGraphicsItem * > & items, GlxEffect transitionEffect) +void GlxEffectEngine::runEffect( QList< QGraphicsItem * > & items, GlxEffect transitionEffect ) { - qDebug("GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect); + qDebug( "GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect ); GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect ); @@ -116,32 +116,32 @@ ++mNbrEffectRunning; if ( ( i == effectSetting->count() -1) && effectSetting->isTransitionLater() ) { - effectSetting->setAnimationItem( items.at(i) ); - items.at(i)->hide(); + effectSetting->setAnimationItem( items.at( i ) ); + items.at( i )->hide(); } else { - HbEffect::start(items.at(i), effectSetting->itemType().at(i), effectSetting->eventType().at(i), this, "transitionEffectFinished"); + HbEffect::start( items.at( i ), effectSetting->itemType().at( i ), effectSetting->eventType().at( i ), this, "transitionEffectFinished" ); } } } -void GlxEffectEngine::cancelEffect(QGraphicsItem * item) +void GlxEffectEngine::cancelEffect( QGraphicsItem * item ) { if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) { HbEffect::cancel( item, QString( "Click1" ) ); } } -void GlxEffectEngine::cancelEffect(const QList< QGraphicsItem * > & items) +void GlxEffectEngine::cancelEffect( const QList< QGraphicsItem * > & items ) { for ( int i = 0; i < items.count() ; ++i ) { - if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) { - HbEffect::cancel( items.at(i), QString( "Click%1").arg(i) ); + if ( HbEffect::effectRunning( items.at( i ), QString( "Click%1" ).arg( i ) ) ) { + HbEffect::cancel( items.at( i ), QString( "Click%1" ).arg( i ) ); } } } -void GlxEffectEngine::cancelEffect(QList< QGraphicsItem * > & items, GlxEffect transitionEffect) +void GlxEffectEngine::cancelEffect( QList< QGraphicsItem * > & items, GlxEffect transitionEffect ) { GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect ); @@ -150,11 +150,11 @@ } for ( int i = 0; i < effectSetting->count() ; ++i) { - HbEffect::cancel(items.at(i), effectSetting->eventType().at(i) ); + HbEffect::cancel(items.at( i ), effectSetting->eventType().at( i ) ); } } -bool GlxEffectEngine::isEffectRuning(QGraphicsItem * item) +bool GlxEffectEngine::isEffectRuning( QGraphicsItem * item ) { if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) { return true; @@ -162,10 +162,10 @@ return false; } -bool GlxEffectEngine::isEffectRuning(const QList< QGraphicsItem * > & items) +bool GlxEffectEngine::isEffectRuning( const QList< QGraphicsItem * > & items ) { for ( int i = 0; i < items.count() ; ++i ) { - if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) { + if ( HbEffect::effectRunning( items.at( i ), QString( "Click%1" ).arg( i ) ) ) { return true; } } @@ -175,12 +175,12 @@ void GlxEffectEngine::slideShowEffectFinished( const HbEffect::EffectStatus &status ) { Q_UNUSED( status ) - qDebug("GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning); + qDebug( "GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning); --mNbrEffectRunning; if ( mEffectPlugin->isAnimationLater( mNbrEffectRunning) ) { - HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1").arg(mNbrEffectRunning), this, "slideShowEffectFinished"); + HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1" ).arg(mNbrEffectRunning), this, "slideShowEffectFinished" ); } if (mNbrEffectRunning == 0) { @@ -191,14 +191,14 @@ void GlxEffectEngine::transitionEffectFinished( const HbEffect::EffectStatus &status ) { Q_UNUSED( status ) - qDebug("GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason); + qDebug( "GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason); --mNbrEffectRunning; if ( mNbrEffectRunning == 1 ) { GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( mTransitionEffect ); if ( effectSetting->isTransitionLater() ){ effectSetting->animationItem()->show(); - HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at(1), effectSetting->eventType().at(1), this, "transitionEffectFinished"); + HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at( 1 ), effectSetting->eventType().at( 1 ), this, "transitionEffectFinished" ); mTransitionEffect = NO_EFFECT; } } @@ -212,46 +212,52 @@ { GlxTransitionEffectSetting *effectSetting = NULL; - effectSetting = new GlxTransitionEffectSetting(GRID_TO_FULLSCREEN); + effectSetting = new GlxTransitionEffectSetting( GRID_TO_FULLSCREEN ); for ( int i = 0; i < effectSetting->count(); ++i ) { - HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; } - mTransitionEffectList[GRID_TO_FULLSCREEN] = effectSetting; + mTransitionEffectList[ GRID_TO_FULLSCREEN ] = effectSetting; effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID ); for ( int i = 0; i < effectSetting->count(); ++i ) { - HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; } - mTransitionEffectList[FULLSCREEN_TO_GRID] = effectSetting; + mTransitionEffectList[ FULLSCREEN_TO_GRID ] = effectSetting; + + effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID_PORTRAIT ); + for ( int i = 0; i < effectSetting->count(); ++i ) { + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; + } + mTransitionEffectList[ FULLSCREEN_TO_GRID_PORTRAIT ] = effectSetting; effectSetting = new GlxTransitionEffectSetting( GRID_TO_ALBUMLIST ); for ( int i = 0; i < effectSetting->count(); ++i ) { - HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; } - mTransitionEffectList[GRID_TO_ALBUMLIST] = effectSetting; + mTransitionEffectList[ GRID_TO_ALBUMLIST ] = effectSetting; effectSetting = new GlxTransitionEffectSetting( ALBUMLIST_TO_GRID ); for ( int i = 0; i < effectSetting->count(); ++i ) { - HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; } - mTransitionEffectList[ALBUMLIST_TO_GRID] = effectSetting; + mTransitionEffectList[ ALBUMLIST_TO_GRID ] = effectSetting; effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_DETAIL ); for ( int i = 0; i < effectSetting->count(); ++i ) { - HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; } - mTransitionEffectList[FULLSCREEN_TO_DETAIL] = effectSetting; + mTransitionEffectList[ FULLSCREEN_TO_DETAIL ] = effectSetting; effectSetting = new GlxTransitionEffectSetting( DETAIL_TO_FULLSCREEN ); for ( int i = 0; i < effectSetting->count(); ++i ) { - HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; + HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; } - mTransitionEffectList[DETAIL_TO_FULLSCREEN] = effectSetting; + mTransitionEffectList[ DETAIL_TO_FULLSCREEN ] = effectSetting; } void GlxEffectEngine::cleanTransitionEfffect() { - qDebug("GlxSlideShowEffectEngine::cleanTrnastionEfffect()"); + qDebug( "GlxSlideShowEffectEngine::cleanTrnastionEfffect()" ); QHashIterator iter( mTransitionEffectList ); @@ -259,7 +265,7 @@ iter.next(); GlxTransitionEffectSetting *list = iter.value(); for ( int i = 0; i < list->count(); ++i ) { - HbEffect::remove( list->itemType().at(i), list->effectFileList().at(i), list->eventType().at(i)) ; + HbEffect::remove( list->itemType().at( i ), list->effectFileList().at( i ), list->eventType().at( i ) ) ; } delete list; } diff -r ccee5c4b0de4 -r 45459746d5e8 ui/viewutilities/effectengine/src/glxtransitioneffect.cpp --- a/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -21,7 +21,7 @@ GlxTransitionEffectSetting::GlxTransitionEffectSetting(GlxEffect effect): mEffect(effect), mTransitionLater(false), mItem(0) { - qDebug("GlxTransitionEffectSetting::GlxTransitionEffectSetting() effect id %d ", effect); + qDebug( "GlxTransitionEffectSetting::GlxTransitionEffectSetting() effect id %d ", effect ); mEffectFileList.clear(); mItemType.clear(); mEventType.clear(); @@ -30,64 +30,70 @@ void GlxTransitionEffectSetting::init() { - qDebug("GlxTransitionEffectSetting::init() effect id %d ", mEffect); + qDebug( "GlxTransitionEffectSetting::init() effect id %d ", mEffect ); switch( mEffect ) { case GRID_TO_FULLSCREEN : - mEffectFileList.append( QString(":/data/gridtofullscreenhide.fxml")); - mItemType.append( QString("HbGridViewItem") ); - mEventType.append(QString("click1") ); + mEffectFileList.append( QString( ":/data/gridtofullscreenhide.fxml" ) ); + mItemType.append( QString( "HbGridViewItem" ) ); + mEventType.append(QString( "gridtofshide" ) ); - mEffectFileList.append( QString(":/data/gridtofullscreenshow.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click2") ); + mEffectFileList.append( QString( ":/data/gridtofullscreenshow.fxml" ) ); + mItemType.append( QString( "HbView" ) ); + mEventType.append(QString( "gridtofsshow" ) ); break; case FULLSCREEN_TO_GRID : - mEffectFileList.append( QString(":/data/fullscreentogrid.fxml")); - mItemType.append( QString("HbGridView") ); - mEventType.append(QString("click3") ); + mEffectFileList.append( QString( ":/data/fullscreentogrid.fxml" ) ); + mItemType.append( QString( "HbGridView" ) ); + mEventType.append(QString( "fstogrid" ) ); break; + case FULLSCREEN_TO_GRID_PORTRAIT : + mEffectFileList.append( QString( ":/data/fullscreentogridportrait.fxml" ) ); + mItemType.append( QString( "HbGridView" ) ); + mEventType.append( QString( "fstogridpt" ) ); + break; + case GRID_TO_ALBUMLIST: mEffectFileList.append( QString( "view_hide_normal" ) ); mItemType.append( QString( "HbView" ) ); - mEventType.append(QString( "click4" ) ); + mEventType.append( QString( "gridtolisthide" ) ); mEffectFileList.append( QString( "view_show_normal" ) ); mItemType.append( QString( "HbListView" ) ); - mEventType.append( QString( "click5" ) ); + mEventType.append( QString( "gridtolistshow" ) ); break; case ALBUMLIST_TO_GRID: mEffectFileList.append( QString( "view_hide_back" ) ); mItemType.append( QString( "HbListView" ) ); - mEventType.append( QString( "click6" ) ); + mEventType.append( QString( "listtogridhide" ) ); mEffectFileList.append( QString( "view_show_back" ) ); mItemType.append( QString( "HbView" ) ); - mEventType.append( QString( "click7" ) ); + mEventType.append( QString( "listtogridshow" ) ); break; case FULLSCREEN_TO_DETAIL : mEffectFileList.append( QString( "view_hide_normal_alt" ) ); mItemType.append( QString( "HbView" ) ); - mEventType.append( QString( "click8" ) ); + mEventType.append( QString( "fstodetailhide" ) ); mEffectFileList.append( QString( "view_show_normal_alt" ) ); mItemType.append( QString( "HbView" ) ); - mEventType.append(QString( "click9" ) ); + mEventType.append(QString( "fstodetailshow" ) ); mTransitionLater = true; break; case DETAIL_TO_FULLSCREEN : mEffectFileList.append( "view_hide_back_alt" ); mItemType.append( QString( "HbView" ) ); - mEventType.append( QString( "click10" ) ); + mEventType.append( QString( "detailtofshide" ) ); mEffectFileList.append( "view_show_back_alt" ); mItemType.append( QString( "HbView" ) ); - mEventType.append( QString( "click11" ) ); + mEventType.append( QString( "detailtofsshow" ) ); mTransitionLater = true; break; @@ -98,7 +104,7 @@ GlxTransitionEffectSetting::~GlxTransitionEffectSetting() { - qDebug("GlxTransitionEffectSetting::~GlxTransitionEffectSetting() effect id %d ", mEffect); + qDebug( "GlxTransitionEffectSetting::~GlxTransitionEffectSetting() effect id %d ", mEffect ); mEffectFileList.clear(); mItemType.clear(); mEventType.clear(); diff -r ccee5c4b0de4 -r 45459746d5e8 ui/widgets/bwins/glxzoomwidgetu.def --- a/ui/widgets/bwins/glxzoomwidgetu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/widgets/bwins/glxzoomwidgetu.def Mon Sep 27 15:13:20 2010 +0530 @@ -1,47 +1,49 @@ EXPORTS ?dataChanged@GlxZoomWidget@@IAEXVQModelIndex@@0@Z @ 1 NONAME ; void GlxZoomWidget::dataChanged(class QModelIndex, class QModelIndex) ?limitRequiredSize@GlxZoomWidget@@AAEXAAVQSizeF@@@Z @ 2 NONAME ; void GlxZoomWidget::limitRequiredSize(class QSizeF &) - ?cleanUp@GlxZoomWidget@@QAEXXZ @ 3 NONAME ; void GlxZoomWidget::cleanUp(void) - ?setMinMaxZValue@GlxZoomWidget@@QAEXHH@Z @ 4 NONAME ; void GlxZoomWidget::setMinMaxZValue(int, int) - ?sendDecodeRequest@GlxZoomWidget@@QAEXH@Z @ 5 NONAME ; void GlxZoomWidget::sendDecodeRequest(int) - ??0GlxZoomWidget@@QAE@PAVQGraphicsItem@@@Z @ 6 NONAME ; GlxZoomWidget::GlxZoomWidget(class QGraphicsItem *) - ?qt_metacast@GlxZoomWidget@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxZoomWidget::qt_metacast(char const *) - ?staticMetaObject@GlxZoomWidget@@2UQMetaObject@@B @ 8 NONAME ; struct QMetaObject const GlxZoomWidget::staticMetaObject - ?tr@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *, int) - ?sceneEvent@GlxZoomWidget@@MAE_NPAVQEvent@@@Z @ 10 NONAME ; bool GlxZoomWidget::sceneEvent(class QEvent *) - ?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void) - ?resetDecoder@GlxZoomWidget@@AAEXXZ @ 12 NONAME ; void GlxZoomWidget::resetDecoder(void) - ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *) - ?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 14 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void) - ?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 15 NONAME ; void GlxZoomWidget::animateDoubleTap(void) - ?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 16 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *) - ?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 17 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void) - ?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 18 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *) - ?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 19 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF) - ?activate@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::activate(void) - ?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 21 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void) - ?indexChanged@GlxZoomWidget@@QAEXH@Z @ 22 NONAME ; void GlxZoomWidget::indexChanged(int) - ?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 23 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF) - ?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void) - ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 25 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) - ?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 26 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void) - ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) - ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 28 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) - ?indexChanged@GlxZoomWidget@@QAEXXZ @ 29 NONAME ; void GlxZoomWidget::indexChanged(void) - ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 30 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) - ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 31 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) - ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 32 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) - ?stepZoom@GlxZoomWidget@@IAEXXZ @ 33 NONAME ; void GlxZoomWidget::stepZoom(void) - ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 34 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const - ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 35 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) - ??_EGlxZoomWidget@@UAE@I@Z @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) - ??1GlxZoomWidget@@UAE@XZ @ 37 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) - ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 38 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) - ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 39 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) - ?setZoomParams@GlxZoomWidget@@AAEXXZ @ 40 NONAME ; void GlxZoomWidget::setZoomParams(void) - ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 41 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) - ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 42 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) - ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 43 NONAME ; void GlxZoomWidget::modelDestroyed(void) - ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) - ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) + ?springEffectAtMin@GlxZoomWidget@@AAEXXZ @ 3 NONAME ; void GlxZoomWidget::springEffectAtMin(void) + ?cleanUp@GlxZoomWidget@@QAEXXZ @ 4 NONAME ; void GlxZoomWidget::cleanUp(void) + ?setMinMaxZValue@GlxZoomWidget@@QAEXHH@Z @ 5 NONAME ; void GlxZoomWidget::setMinMaxZValue(int, int) + ?sendDecodeRequest@GlxZoomWidget@@QAEXH@Z @ 6 NONAME ; void GlxZoomWidget::sendDecodeRequest(int) + ??0GlxZoomWidget@@QAE@PAVQGraphicsItem@@@Z @ 7 NONAME ; GlxZoomWidget::GlxZoomWidget(class QGraphicsItem *) + ?qt_metacast@GlxZoomWidget@@UAEPAXPBD@Z @ 8 NONAME ; void * GlxZoomWidget::qt_metacast(char const *) + ?staticMetaObject@GlxZoomWidget@@2UQMetaObject@@B @ 9 NONAME ; struct QMetaObject const GlxZoomWidget::staticMetaObject + ?tr@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *, int) + ?sceneEvent@GlxZoomWidget@@MAE_NPAVQEvent@@@Z @ 11 NONAME ; bool GlxZoomWidget::sceneEvent(class QEvent *) + ?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 12 NONAME ; void GlxZoomWidget::forceZoomToBackground(void) + ?resetDecoder@GlxZoomWidget@@AAEXXZ @ 13 NONAME ; void GlxZoomWidget::resetDecoder(void) + ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *) + ?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 15 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void) + ?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 16 NONAME ; void GlxZoomWidget::animateDoubleTap(void) + ?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 17 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *) + ?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 18 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void) + ?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 19 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *) + ?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 20 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF) + ?activate@GlxZoomWidget@@QAEXXZ @ 21 NONAME ; void GlxZoomWidget::activate(void) + ?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 22 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void) + ?indexChanged@GlxZoomWidget@@QAEXH@Z @ 23 NONAME ; void GlxZoomWidget::indexChanged(int) + ?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 24 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF) + ?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void) + ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 26 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) + ?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 27 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void) + ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 29 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) + ?springEffectAtMax@GlxZoomWidget@@AAEXXZ @ 30 NONAME ; void GlxZoomWidget::springEffectAtMax(void) + ?indexChanged@GlxZoomWidget@@QAEXXZ @ 31 NONAME ; void GlxZoomWidget::indexChanged(void) + ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 32 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) + ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 33 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) + ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 34 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) + ?stepZoom@GlxZoomWidget@@IAEXXZ @ 35 NONAME ; void GlxZoomWidget::stepZoom(void) + ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const + ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 37 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) + ??_EGlxZoomWidget@@UAE@I@Z @ 38 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) + ??1GlxZoomWidget@@UAE@XZ @ 39 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) + ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 40 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) + ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 41 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) + ?setZoomParams@GlxZoomWidget@@AAEXXZ @ 42 NONAME ; void GlxZoomWidget::setZoomParams(void) + ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 43 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) + ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 44 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) + ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 45 NONAME ; void GlxZoomWidget::modelDestroyed(void) + ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) + ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) diff -r ccee5c4b0de4 -r 45459746d5e8 ui/widgets/eabi/glxzoomwidgetu.def --- a/ui/widgets/eabi/glxzoomwidgetu.def Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/widgets/eabi/glxzoomwidgetu.def Mon Sep 27 15:13:20 2010 +0530 @@ -19,35 +19,37 @@ _ZN13GlxZoomWidget16staticMetaObjectE @ 18 NONAME DATA 16 _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 19 NONAME _ZN13GlxZoomWidget17sendDecodeRequestEi @ 20 NONAME - _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 21 NONAME - _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 22 NONAME - _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 23 NONAME - _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 24 NONAME - _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 25 NONAME - _ZN13GlxZoomWidget21decodedImageAvailableEv @ 26 NONAME - _ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 27 NONAME - _ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 28 NONAME - _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 29 NONAME - _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 30 NONAME - _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 31 NONAME - _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 32 NONAME - _ZN13GlxZoomWidget7cleanUpEv @ 33 NONAME - _ZN13GlxZoomWidget8activateEv @ 34 NONAME - _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 35 NONAME - _ZN13GlxZoomWidget8stepZoomEv @ 36 NONAME - _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 37 NONAME - _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 38 NONAME - _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 39 NONAME - _ZN13GlxZoomWidgetD0Ev @ 40 NONAME - _ZN13GlxZoomWidgetD1Ev @ 41 NONAME - _ZN13GlxZoomWidgetD2Ev @ 42 NONAME - _ZNK13GlxZoomWidget10metaObjectEv @ 43 NONAME - _ZTI13GlxZoomWidget @ 44 NONAME - _ZTV13GlxZoomWidget @ 45 NONAME - _ZThn16_N13GlxZoomWidgetD0Ev @ 46 NONAME - _ZThn16_N13GlxZoomWidgetD1Ev @ 47 NONAME - _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 48 NONAME - _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 49 NONAME - _ZThn8_N13GlxZoomWidgetD0Ev @ 50 NONAME - _ZThn8_N13GlxZoomWidgetD1Ev @ 51 NONAME + _ZN13GlxZoomWidget17springEffectAtMaxEv @ 21 NONAME + _ZN13GlxZoomWidget17springEffectAtMinEv @ 22 NONAME + _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 23 NONAME + _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 24 NONAME + _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 25 NONAME + _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 26 NONAME + _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 27 NONAME + _ZN13GlxZoomWidget21decodedImageAvailableEv @ 28 NONAME + _ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 29 NONAME + _ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 30 NONAME + _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 31 NONAME + _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 32 NONAME + _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 33 NONAME + _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 34 NONAME + _ZN13GlxZoomWidget7cleanUpEv @ 35 NONAME + _ZN13GlxZoomWidget8activateEv @ 36 NONAME + _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 37 NONAME + _ZN13GlxZoomWidget8stepZoomEv @ 38 NONAME + _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 39 NONAME + _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 40 NONAME + _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 41 NONAME + _ZN13GlxZoomWidgetD0Ev @ 42 NONAME + _ZN13GlxZoomWidgetD1Ev @ 43 NONAME + _ZN13GlxZoomWidgetD2Ev @ 44 NONAME + _ZNK13GlxZoomWidget10metaObjectEv @ 45 NONAME + _ZTI13GlxZoomWidget @ 46 NONAME + _ZTV13GlxZoomWidget @ 47 NONAME + _ZThn16_N13GlxZoomWidgetD0Ev @ 48 NONAME + _ZThn16_N13GlxZoomWidgetD1Ev @ 49 NONAME + _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 50 NONAME + _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 51 NONAME + _ZThn8_N13GlxZoomWidgetD0Ev @ 52 NONAME + _ZThn8_N13GlxZoomWidgetD1Ev @ 53 NONAME diff -r ccee5c4b0de4 -r 45459746d5e8 ui/widgets/glxzoomwidget/inc/glxzoomwidget.h --- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Mon Sep 27 15:13:20 2010 +0530 @@ -81,6 +81,8 @@ void modelDestroyed(); private: + void springEffectAtMin(); + void springEffectAtMax(); bool executeGestureEvent(QGraphicsItem *source,QGestureEvent *event); //Responsible for changing the transforms of the widget wrt the ZF and center //Also adjusts the ZF, center and final size so as to respect the boundaries @@ -155,5 +157,6 @@ QSizeF minitSize; //counter to track the double tap animation steps int mdoubletapSteps; + bool mDoubleTap; }; #endif //GLXZOOMWIDGET_H diff -r ccee5c4b0de4 -r 45459746d5e8 ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp --- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Mon Sep 20 12:39:08 2010 +0530 +++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Mon Sep 27 15:13:20 2010 +0530 @@ -29,6 +29,8 @@ const int NOOFSTEPSZI = 24; const int NOOFSTEPSZO = 18; const float MAXDTZOOMIN = 3.5; +const int NO_OF_STEPS_FOR_SPRINGBACK_AT_MAX = 12; +const int NO_OF_STEPS_FOR_SPRINGBACK_AT_MIN = 5; GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), mModel(NULL), mMinZValue(MINZVALUE), @@ -62,6 +64,7 @@ //AA: signal and slot to perform double tap animation //after every step redraw, signal is emitted to perform the next step connect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap() ), Qt::QueuedConnection ); + mDoubleTap = false; } GlxZoomWidget::~GlxZoomWidget() @@ -144,6 +147,7 @@ resetDecoder(); } mZoomItem->setPixmap(QPixmap()); + mBlackBackgroundItem->setParentItem(this); } void GlxZoomWidget::activate() @@ -238,26 +242,26 @@ if (pinchG->state() == Qt::GestureFinished) { //For giving a spring effect when user has zoomed more than normal. - if(mStepCurrentSize.width() > mMaxScaleDecSize.width()) { - //scale the image to limited size - qreal value = mMaxScaleDecSize.width()/mCurrentSize.width(); - QPointF center(mWindowSize.width()/2, mWindowSize.height()/2); - QPointF sceneGestureCenter = source->sceneTransform().map(center); - zoomImage(value, sceneGestureCenter); - } - mPinchGestureOngoing = false; - //finalize the transforms to the geometry else panning will not work - finalizeWidgetTransform(); + mPinchGestureOngoing = false; + //scale the image to limited size + if(mCurrentSize.width() > mMaxScaleDecSize.width() ) + { + QPointF center(mWindowSize.width()/2, mWindowSize.height()/2); + m_AnimRefPoint = source->sceneTransform().map(center); + springEffectAtMax(); + return true; + } -//push the Zoom widget to background when zoomed image size nears FS image - if(mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3) { - mBlackBackgroundItem->hide(); - //push the widget back to background - setZValue(mMinZValue); - mZoomOngoing = false; - emit zoomWidgetMovedBackground(mFocusIndex); + if(mCurrentSize.width() < mMinDecScaleSize.width()) + { + QPointF center(mWindowSize.width()/2, mWindowSize.height()/2); + m_AnimRefPoint = source->sceneTransform().map(center); + springEffectAtMin(); + return true; //do not reset the transform here as it will then zoom-in the widget to decoded image size - } + } + //finalize the transforms to the geometry else panning will not work + finalizeWidgetTransform(); } //gesture accepted return true; @@ -269,6 +273,38 @@ return true; } +void GlxZoomWidget::springEffectAtMax() +{ + //set the no. of steps for double tap animation + mdoubletapSteps = NO_OF_STEPS_FOR_SPRINGBACK_AT_MAX; + //initiale variable for double tap animation + mIncSF = 1; + + //For giving a spring effect when user has zoomed out more than normal. + //Zoom out to mMaxScaleDecSize from the currentsize + m_FinalAnimatedScaleFactor = mMaxScaleDecSize.width()/mCurrentSize.width(); + //calculate the step increment SF for each step + msfInc = (1 - m_FinalAnimatedScaleFactor)/(mdoubletapSteps); + //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor + minitSize = mCurrentSize; + animateDoubleTap(); +} + +void GlxZoomWidget::springEffectAtMin() +{ + + m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width(); + //set the no. of steps for double tap animation + mdoubletapSteps = NO_OF_STEPS_FOR_SPRINGBACK_AT_MIN; + //initiale variable for double tap animation + mIncSF = 1; + //SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor] + msfInc = (m_FinalAnimatedScaleFactor-1)/mdoubletapSteps; + //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor + minitSize = mCurrentSize; + animateDoubleTap(); + +} void GlxZoomWidget::zoomImage(qreal zoomFactor, QPointF center) { @@ -297,8 +333,8 @@ if(requiredSize.width() > mMaxScaleSize.width() ) { requiredSize = mMaxScaleSize ; } - else if(requiredSize.width() < mMinDecScaleSize.width() ) { - requiredSize = mMinDecScaleSize ; + else if(requiredSize.width() < mMinScaleSize.width() ) { + requiredSize = mMinScaleSize ; } @@ -579,6 +615,7 @@ void GlxZoomWidget::animateDoubleTap() { + mDoubleTap = true; //calculate increamental scale factor based on the step and then calculate the applicable scale factor this step //increamental SF works on the ImageSize when double tap started, applicable(required) SF calculates the delate SF if(m_FinalAnimatedScaleFactor > 1) { @@ -609,15 +646,24 @@ void GlxZoomWidget::animationTimeLineFinished() { finalizeWidgetTransform(); -//push the Zoom widget to background when zoomed image size nears FS image - if(mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3) { + //push the Zoom widget to background when zoomed image size nears FS image + if(mDoubleTap && (mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3)) { mBlackBackgroundItem->hide(); //push the widget back to background setZValue(mMinZValue); mZoomOngoing = false; emit zoomWidgetMovedBackground(mFocusIndex); //do not reset the transform here as it will then zoom-in the widget to decoded image size - } + mDoubleTap = false; + } + if(mCurrentSize.width() == mMinDecScaleSize.width()) { + mBlackBackgroundItem->hide(); + //push the widget back to background + setZValue(mMinZValue); + mZoomOngoing = false; + emit zoomWidgetMovedBackground(mFocusIndex); + + } }