# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282114133 -10800 # Node ID fb37077c270f906aa627f979f66ba6cd7bab7a1d # Parent f291796e213da13c11c6ac82e78d302413e881c0 Revision: 201031 Kit: 201033 diff -r f291796e213d -r fb37077c270f commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro --- a/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Wed Aug 18 09:48:53 2010 +0300 @@ -26,7 +26,9 @@ -lbitmaptransforms.dll \ -liclextjpegapi.dll \ -lfbscli.dll \ - -lefsrv.dll + -lefsrv.dll \ + -lapmime.dll \ + -lapgrfx.dll DEFINES += BUILD_IMAGEWRAPPER symbian: { diff -r f291796e213d -r fb37077c270f commonutilities/imagedecoderwrapper/inc/glximagedecoder.h --- a/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h Tue Jul 06 14:16:16 2010 +0300 +++ b/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h Wed Aug 18 09:48:53 2010 +0300 @@ -26,6 +26,9 @@ class CImageDecoder; class CFbsBitmap; const TReal KTargetSize = 1000000; +//if any image is converted to Pixmap with an dimension > 2048 +//the conversion will fail +const TInt KMaxDimensionLimit = 2000; class CGlxImageDecoder : public CActive { public: @@ -50,6 +53,19 @@ * */ void ConstructL(GlxImageDecoderWrapper* decoderWrapper); + /* + * Checks if the mimetype needs recalculations + * @returnType false if jpeg + * true otheriwise + */ + TBool DoesMimeTypeNeedsRecalculateL(QString aSourceFileName); + + /* + * Does the recalculation and returns back the correct size + * @returntype Size of the decoded bitmap + */ + TSize ReCalculateSizeL(QString aSourceFileName, TSize aDestSize); + private: GlxImageDecoderWrapper* iDecoderWrapper; /*Specifies the Decoder */ diff -r f291796e213d -r fb37077c270f commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp --- a/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -22,7 +22,10 @@ #include #include // For CExtJpegDecoder #include +#include +_LIT(KMimeJpeg,"image/jpeg"); +_LIT(KMimeJpg,"image/jpg"); // --------------------------------------------------------------------------- // Two-phased constructor. @@ -90,15 +93,15 @@ iImageDecoder = NULL; } TRAPD( err, iImageDecoder = CExtJpegDecoder::FileNewL( - CExtJpegDecoder::EHwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ) ); + CExtJpegDecoder::EHwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAlwaysThread ) ); if ( KErrNone != err ) { TRAP(err,iImageDecoder = CExtJpegDecoder::FileNewL( - CExtJpegDecoder::ESwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ) ); + CExtJpegDecoder::ESwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAlwaysThread ) ); if ( KErrNone != err ) { // Not a JPEG - use standard decoder - iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ); + iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionAlwaysThread ); } } TSize imageSize = iImageDecoder->FrameInfo().iOverallSizeInPixels; @@ -116,6 +119,15 @@ decodeSize = TSize(imageSize.iWidth * compressionFactor, imageSize.iHeight * compressionFactor); } + //if an image is converted to Pixmap with any of its dimension > 2048 + //the conversion will fail so limiting dimensions to 2000 + //on 2048 there is a buffer corruption so display image is distorted + if(decodeSize.iWidth > KMaxDimensionLimit ||decodeSize.iHeight > KMaxDimensionLimit) + { + QSize finalSize(decodeSize.iWidth, decodeSize.iHeight); + finalSize.scale(KMaxDimensionLimit, KMaxDimensionLimit, Qt::KeepAspectRatio); + decodeSize = TSize(finalSize.width(), finalSize.height()); + } //clear the existing Bitmap if(iBitmap) { @@ -126,12 +138,56 @@ if(!iBitmap) { iBitmap = new (ELeave) CFbsBitmap(); - iBitmap->Create( decodeSize,EColor64K); + decodeSize = ReCalculateSizeL(aSourceFileName, decodeSize); + iBitmap->Create( decodeSize,EColor16MU); iImageDecoder->Convert( &iStatus, *iBitmap ); SetActive(); } return QSizeF(decodeSize.iWidth,decodeSize.iHeight) ; } + +// ----------------------------------------------------------------------------- +// DoesMimeTypeNeedsRecalculateL() +// ----------------------------------------------------------------------------- +// +TBool CGlxImageDecoder::DoesMimeTypeNeedsRecalculateL(QString aSourceFileName){ + RApaLsSession session; + TDataType mimeType; + TUid uid; + + User::LeaveIfError( session.Connect() ); + CleanupClosePushL( session ); + TPtrC16 sourceFileName(reinterpret_cast(aSourceFileName.utf16())); + User::LeaveIfError( session.AppForDocument( sourceFileName, uid, mimeType ) ); + CleanupStack::PopAndDestroy(&session); + + if (mimeType.Des().Compare(KMimeJpeg)==0 || + mimeType.Des().Compare(KMimeJpg)==0){ + return EFalse; + } + else{ + return ETrue; + } + } + +// ----------------------------------------------------------------------------- +// ReCalculateSize +// ----------------------------------------------------------------------------- +TSize CGlxImageDecoder::ReCalculateSizeL(QString aSourceFileName, TSize aDestSize){ + if(DoesMimeTypeNeedsRecalculateL(aSourceFileName)){ + TSize fullFrameSize = iImageDecoder->FrameInfo().iOverallSizeInPixels; + // calculate the reduction factor on what size we need + TInt reductionFactor = iImageDecoder->ReductionFactor(fullFrameSize, aDestSize); + // get the reduced size onto destination size + TSize destSize; + User::LeaveIfError(iImageDecoder->ReducedSize(fullFrameSize, reductionFactor, destSize)); + return destSize; + } + else{ + return aDestSize; + } + } + // --------------------------------------------------------------------------- // RunL // --------------------------------------------------------------------------- @@ -176,49 +232,7 @@ { if(iBitmap) { - //convert the bitmap to pixmap - iBitmap->LockHeap(); - TUint32 *tempData = iBitmap->DataAddress(); - uchar *data = (uchar *)(tempData); - int bytesPerLine = iBitmap->ScanLineLength(iBitmap->SizeInPixels().iWidth , iBitmap->DisplayMode()); - QImage::Format format; - switch(iBitmap->DisplayMode()) { - case EGray2: - format = QImage::Format_MonoLSB; - break; - case EColor256: - case EGray256: - format = QImage::Format_Indexed8; - break; - case EColor4K: - format = QImage::Format_RGB444; - break; - case EColor64K: - format = QImage::Format_RGB16; - break; - case EColor16M: - format = QImage::Format_RGB666; - break; - case EColor16MU: - format = QImage::Format_RGB32; - break; - case EColor16MA: - format = QImage::Format_ARGB32; - break; -#if !defined(__SERIES60_31__) && !defined(__S60_32__) - case EColor16MAP: - format = QImage::Format_ARGB32_Premultiplied; - break; -#endif - default: - format = QImage::Format_Invalid; - break; - } - //QImage share the memory occupied by data - QImage image(data, iBitmap->SizeInPixels().iWidth, iBitmap->SizeInPixels().iHeight, bytesPerLine, format); - iDecodedPixmap = QPixmap::fromImage(image); - iBitmap->UnlockHeap(); - //clean the bitmap as it is not required anymore + iDecodedPixmap = QPixmap::fromSymbianCFbsBitmap(iBitmap); delete iBitmap; iBitmap = NULL; } diff -r f291796e213d -r fb37077c270f data/Image1.jpg Binary file data/Image1.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image10.jpg Binary file data/Image10.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image2.jpg Binary file data/Image2.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image3.jpg Binary file data/Image3.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image4.jpg Binary file data/Image4.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image5.jpg Binary file data/Image5.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image6.jpg Binary file data/Image6.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image7.jpg Binary file data/Image7.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image8.jpg Binary file data/Image8.jpg has changed diff -r f291796e213d -r fb37077c270f data/Image9.jpg Binary file data/Image9.jpg has changed diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_01.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_01.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_02.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_02.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_03.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_03.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_04.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_04.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_05.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_05.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_06.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_06.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_07.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_07.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_08.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_08.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_09.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_09.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/Wait/qgn_graf_ring_wait_10.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/Wait/qgn_graf_ring_wait_10.svg Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f291796e213d -r fb37077c270f data/albumlisttogrid.fxml --- a/data/albumlisttogrid.fxml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - - - -0.3 - - 0 - 1 -1 -1 - - - - diff -r f291796e213d -r fb37077c270f data/albumlisttogridshow.fxml --- a/data/albumlisttogridshow.fxml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ - - - - -0.3 - -0 -0.25 -1 - - - - diff -r f291796e213d -r fb37077c270f data/detailsview.docml --- a/data/detailsview.docml Tue Jul 06 14:16:16 2010 +0300 +++ b/data/detailsview.docml Wed Aug 18 09:48:53 2010 +0300 @@ -2,323 +2,215 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + + + + + + + + - - + + + + + + + + +
- - - - + + - + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + - - - + - - - - - + + + + + + + + - + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + + + + +
- - - - + + + + + + + + + + + + + + + - + + - - - + + + + + + + + + + + + - - + + + + + + + + - + - - - + + + + - - + + + + - - - - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + + + + +
- + diff -r f291796e213d -r fb37077c270f data/fullscreen.docml --- a/data/fullscreen.docml Tue Jul 06 14:16:16 2010 +0300 +++ b/data/fullscreen.docml Wed Aug 18 09:48:53 2010 +0300 @@ -4,9 +4,6 @@ - - - @@ -22,9 +19,10 @@ - + + @@ -52,7 +50,6 @@ -
diff -r f291796e213d -r fb37077c270f data/grid.docml --- a/data/grid.docml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - -
- - - - - -
diff -r f291796e213d -r fb37077c270f data/gridtoalbumlist.fxml --- a/data/gridtoalbumlist.fxml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - - - -0.3 - - 0 - 1 -1 -1 - - - - diff -r f291796e213d -r fb37077c270f data/gridtoalbumlisthide.fxml --- a/data/gridtoalbumlisthide.fxml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ - - - - -0.3 - -1.0 -0.25 -0 - - - - diff -r f291796e213d -r fb37077c270f data/photos.css --- a/data/photos.css Tue Jul 06 14:16:16 2010 +0300 +++ b/data/photos.css Wed Aug 18 09:48:53 2010 +0300 @@ -50,16 +50,8 @@ } HbListViewItem::selection-icon{ - fixed-height: var(hb-param-graphic-size-primary-medium); - fixed-width: var(hb-param-graphic-size-primary-medium); -} - -HbListViewItem::multiselection-toucharea{ + fixed-height: 0.0un; fixed-width: 0.0un; } -HbListViewItem::icon-1{ - fixed-height: var(hb-param-graphic-size-function); - fixed-width: var(hb-param-margin-view-bottom); -} diff -r f291796e213d -r fb37077c270f data/photos.docml --- a/data/photos.docml Tue Jul 06 14:16:16 2010 +0300 +++ b/data/photos.docml Wed Aug 18 09:48:53 2010 +0300 @@ -35,28 +35,17 @@
-
+ + + + - - - - - - - - - - - - - - - +
diff -r f291796e213d -r fb37077c270f data/rotatefslandscape.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotatefslandscape.fxml Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,17 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + -60 + 0 + + 0.5 + 0.5 + + + + \ No newline at end of file diff -r f291796e213d -r fb37077c270f data/rotatefsprotrait.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotatefsprotrait.fxml Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,16 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + 60 + 0 + + 0.5 + 0.5 + + + \ No newline at end of file diff -r f291796e213d -r fb37077c270f data/rotatelandscape.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotatelandscape.fxml Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,16 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + 30 + 90 + + 0.5 + 0.5 + + + \ No newline at end of file diff -r f291796e213d -r fb37077c270f data/rotateprotrait.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotateprotrait.fxml Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,16 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + -30 + -90 + + 0.5 + 0.5 + + + \ No newline at end of file diff -r f291796e213d -r fb37077c270f data/transitiondown.fxml --- a/data/transitiondown.fxml Tue Jul 06 14:16:16 2010 +0300 +++ b/data/transitiondown.fxml Wed Aug 18 09:48:53 2010 +0300 @@ -2,7 +2,7 @@ -0.4 +0.3 0 1 diff -r f291796e213d -r fb37077c270f data/transitionup.fxml --- a/data/transitionup.fxml Tue Jul 06 14:16:16 2010 +0300 +++ b/data/transitionup.fxml Wed Aug 18 09:48:53 2010 +0300 @@ -2,7 +2,7 @@ -0.4 +0.3 0 1 diff -r f291796e213d -r fb37077c270f data/view_flip_hide.fxml --- a/data/view_flip_hide.fxml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ - - - - - - -0.3 - -0 --90 - - -0.5 - - -0.5 - - -0 - - -1 - - -0 - - - - - - diff -r f291796e213d -r fb37077c270f data/view_flip_show.fxml --- a/data/view_flip_show.fxml Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ - - - - - - -0.3 - -90 -0 - - -0.5 - - -0.5 - - -0 - - -1 - - -0 - - - - - diff -r f291796e213d -r fb37077c270f engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -624,8 +624,17 @@ case CGlxDataSource::EContainerTypeAlbum: case CGlxDataSource::EContainerTypeTag: { - TUint32 countTypeIndex = aContainer->UsageCount(); - aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex); + // for 10.1 we need just images - so just getting images inside an album will do + TGlxFilterProperties filterProperties = iFilterProperties; + filterProperties.iItemType = EGlxFilterImage; + filterProperties.iNoDRM = ETrue; + + QueueObjectQueryL(aContainer->Def(), ETrue, EAttributeQuery, + EQueryResultModeCount, TGlxMediaId(aContainer->Id()), + request->Attributes()[i], aEntry, filterProperties); + + //TUint32 countTypeIndex = aContainer->UsageCount(); + //aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex); break; } case CGlxDataSource::EContainerTypeMonth: diff -r f291796e213d -r fb37077c270f engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -594,6 +594,9 @@ iFilterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate; iFilterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate; iFilterProperties.iLastCaptureDate = ETrue; + // for 10.1 we need first image thumbnail which is not DRM + iFilterProperties.iNoDRM = ETrue; + iFilterProperties.iItemType = EGlxFilterImage; if( CGlxDataSource::EContainerTypeMonth == containerType ) { diff -r f291796e213d -r fb37077c270f gallery/sis/photos.pkg --- a/gallery/sis/photos.pkg Tue Jul 06 14:16:16 2010 +0300 +++ b/gallery/sis/photos.pkg Wed Aug 18 09:48:53 2010 +0300 @@ -43,7 +43,6 @@ "\epoc32\release\armv5\urel\photos.exe" - "!:\sys\bin\photos.exe" "\epoc32\data\z\resource\apps\photos.rsc" - "!:\resource\apps\photos.rsc" "\epoc32\data\z\private\10003a3f\import\apps\photos_reg.rsc" - "!:\private\10003a3f\import\apps\photos_reg.rsc" -"\epoc32\data\z\resource\apps\photos.mif" - "!:\resource\apps\photos.mif" ; -------- files -------- "\epoc32\release\armv5\urel\glxcommonui.dll" -"!:\sys\bin\glxcommonui.dll" @@ -112,10 +111,9 @@ "\epoc32\release\armv5\urel\glxviews.dll" -"!:\sys\bin\glxviews.dll" "\epoc32\release\armv5\urel\glxviewutilities.dll" -"!:\sys\bin\glxviewutilities.dll" "\epoc32\release\armv5\urel\glxzoomwidget.dll" -"!:\sys\bin\glxzoomwidget.dll" -"\epoc32\release\armv5\urel\detailsnamelabel.dll" -"!:\sys\bin\detailsnamelabel.dll" -"\epoc32\release\armv5\urel\detailsnamelabelplugin.dll" -"!:\sys\bin\detailsnamelabelplugin.dll" -"\epoc32\release\armv5\urel\detailsdescriptionedit.dll" -"!:\sys\bin\detailsdescriptionedit.dll" -"\epoc32\release\armv5\urel\detailsdescriptioneditplugin.dll" -"!:\sys\bin\detailsdescriptioneditplugin.dll" +"\epoc32\release\armv5\urel\glxdetailscustomwidgets.dll" -"!:\sys\bin\glxdetailscustomwidgets.dll" +"\epoc32\release\armv5\urel\glxdetailscustomplugin.dll" -"!:\sys\bin\glxdetailscustomplugin.dll" + ;translations "\epoc32\data\z\resource\qt\translations\photos_en.qm" -"!:\resource\qt\translations\photos.qm" diff -r f291796e213d -r fb37077c270f gallery/sis/photos_stub.pkg --- a/gallery/sis/photos_stub.pkg Tue Jul 06 14:16:16 2010 +0300 +++ b/gallery/sis/photos_stub.pkg Wed Aug 18 09:48:53 2010 +0300 @@ -31,7 +31,6 @@ "" - "z:\sys\bin\photos.exe" "" - "z:\private\10003a3f\import\apps\photos_reg.rsc" "" - "z:\resource\apps\photos.rsc" -"" - "z:\resource\apps\photos.mif" ; -------- files -------- ; engines @@ -101,10 +100,9 @@ "" - "z:\sys\bin\glxviews.dll" "" - "z:\sys\bin\glxviewutilities.dll" "" - "z:\sys\bin\glxzoomwidget.dll" -"" - "z:\sys\bin\detailsnamelabel.dll" -"" - "z:\sys\bin\detailsnamelabelplugin.dll" -"" - "z:\sys\bin\detailsdescriptionedit.dll" -"" - "z:\sys\bin\detailsdescriptioneditplugin.dll" +"" - "z:\sys\bin\glxdetailscustomwidgets.dll" +"" - "z:\sys\bin\glxdetailscustomplugin.dll" + "" - "z:\private\10202BE9\20007194.txt" "" - "z:\private\10202BE9\20007193.txt" diff -r f291796e213d -r fb37077c270f gallery/sis/photos_stub.sis Binary file gallery/sis/photos_stub.sis has changed diff -r f291796e213d -r fb37077c270f inc/glxlocalisationstrings.h --- a/inc/glxlocalisationstrings.h Tue Jul 06 14:16:16 2010 +0300 +++ b/inc/glxlocalisationstrings.h Wed Aug 18 09:48:53 2010 +0300 @@ -20,7 +20,10 @@ #include "hbglobal.h" -//OPTIONS MENU +//-------------------------------------------------------------------------------------------------------// +//-----------------------------START OF OPTIONS LOCALISATION STRING---------------------------------- +//-------------------------------------------------------------------------------------------------------// + //Options list item #define GLX_OPTION_SHARE hbTrId("txt_photos_opt_share") @@ -56,7 +59,21 @@ // #define GLX_OPTION_NEW_ALBUM hbTrId("txt_photos_opt_new_album") -//CONTEXT MENU +//3D effect option to allow user to enable and disable 3D Grid Effect. +//Submenu option for 3D effect option +//Off sub menu option for 3D effect option +#define GLX_GRID_OPT_ON hbTrId("txt_photos_opt_view_sub_on") + +#define GLX_GRID_OPT_OFF hbTrId("txt_photos_opt_sub_off") + +#define GLX_GRID_OPT_EFFECT hbTrId("txt_photos_opt_3d_effect") + + +//-----------------------------END OF OPTIONS LOCALISATION STRING---------------------------------------- + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------START OF MENU LOCALISATION STRING---------------------------------------- +//-------------------------------------------------------------------------------------------------------// //context menu item share , invoke share UI #define GLX_MENU_SHARE hbTrId("txt_photos_menu_share") @@ -75,27 +92,122 @@ // #define GLX_MENU_RENAME hbTrId("txt_common_menu_rename_item") -#define GLX_DIALOG_NAME_PROMPT hbTrId("txt_photos_title_enter_name") +#define GLX_MENU_OPEN hbTrId("txt_common_menu_open") + +//Full Screen Menu +#define GLX_MENU_USE_IMAGE hbTrId("txt_photos_opt_use_image") +#define GLX_MENU_SET_WALLPAPER hbTrId("txt_photos_opt_sub_wallpaper") +#define GLX_MENU_ROTATE hbTrId("txt_photos_opt_rotate") +#define GLX_MENU_90_CW hbTrId("txt_photos_opt_sub_90cw") +#define GLX_MENU_90_CCW hbTrId("txt_photos_opt_rotate_sub_90ccw") +#define GLX_MENU_CROP hbTrId("txt_photos_opt_crop") + +//-----------------------------END OF MENU LOCALISATION STRING------------------------------------------- + + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------VIEW SPECIFIC LOCALISATION STRING----------------------------------------- +//-------------------------------------------------------------------------------------------------------// + +//*******************************GRID VIEW*********************************************** + +//sub heading lable for mark mode. +#define GLX_SELECT_IMAGES hbTrId("txt_photos_subhead_select_images") + +//for single item selection +#define GLX_SELECT_IMAGE hbTrId("txt_photos_subhead_select_image") + +//Label field in all grid view to display no of items plus album name in case of album grid view. whre %1 is album name and %L2 is no of images in the album. +#define GLX_ALBUM_NAME_COUNT_LABEL "txt_photos_subhead_1_l2" -#define GLX_DIALOG_ALBUM_NAME_DEFAULT hbTrId("txt_photos_dialog_enter_name_entry_album") -#define GLX_DIALOG_DELETE_ONE_ITEM hbTrId("txt_photos_info_deleting_1") -//TITLE RELATED and DEFAULT STRINGS +//to show the total image count in grid view +#define GLX_GRID_VIEW_COUNT_LABEL "txt_photos_subtitle_ln_images" + +//mark all label to be shown in marking mode view +#define GLX_LABEL_MARK_ALL hbTrId("txt_photos_list_mark_all") + + +//mark all label to be shown in marking mode view +#define GLX_LABEL_MARK_COUNT hbTrId("txt_photos_list_lnln") + +//*******************************DETAILS VIEW********************************************** + +//Description field +#define GLX_DETAILS_DESCRIPTION hbTrId("txt_photos_formlabel_description") +//Details view "Date" Label to show the captured date of the image, where %1 is the date +#define GLX_DETAILS_DATE "txt_photos_list_date_1" + +//Details view "time" Label to show the captured time of the image , where %1 is the time +#define GLX_DETAILS_TIME "txt_photos_list_time_1" + +//%ln is the size specfied in KiloBytes unit +//%ln is the size specfied in MegaBytes unit +//%ln is the size specfied in GigaBytes unit +#define GLX_DETAILS_SIZE_KB "txt_photos_list_ln_kb" +#define GLX_DETAILS_SIZE_MB "txt_photos_list_ln_mb" +#define GLX_DETAILS_SIZE_GB "txt_photos_list_ln_gb" +#define GLX_DETAILS_SIZE_BYTES "txt_photos_list_sizeln_bytes" + -#define GLX_CAPTION hbTrId("txt_short_caption_photos") -#define GLX_TITLE hbTrId("txt_photos_title_photos") -#define GLX_PLACES "txt_photos_dblist_places_ln" -#define GLX_ITEMS_CAMERA "txt_photos_dblist_val_ln_items" -#define GLX_ITEMS_MYFAV "txt_photos_subtitle_ln_items" -#define GLX_SUBTITLE_CAM_GRIDVIEW hbTrId("txt_photos_subtitle_my_camera") -#define GLX_SUBTITLE_MYFAV_GRIDVIEW hbTrId("txt_photos_subtitle_my_favorites") -#define GLX_SUBTITLE_NOITEMS hbTrId("txt_photos_subtitle_no_image_or_videos_to_display") -#define GLX_FETCHER_TITLE QString("Select Image") -#define GLX_GRID_NO_IMAGE QString("(No Images)\n") -#define GLX_GRID_OPEN_CAMERA QString("To capture images Open") -//VIEW RELATED STRINGS AND COMMON DIALOGS +//*******************************SLIDESHOW VIEW/SETTINGS VIEW******************************* + +#define GLX_LABEL_TRANSITION_EFFECT hbTrId("txt_photos_setlabel_transistion_effect") +#define GLX_VAL_SMOOTH_FADE hbTrId("txt_photos_setlabel_transistion_effect_val_smooth") +#define GLX_EFFECTS_FLIP hbTrId("txt_photos_setlabel_transistion_effect_val_flip_in") +#define GLX_EFFECTS_ZOOMIN_ZOOMOUT hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_in") +#define GLX_EFFECTS_ZOOM_AND_PAN hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_an") + +#define GLX_LABEL_TRANSITION_DELAY hbTrId("txt_photos_setlabel_transistion_delay") +#define GLX_VAL_SLOW hbTrId("txt_photos_setlabel_transistion_delay_val_slow") +#define GLX_VAL_MEDIUM hbTrId("txt_photos_setlabel_transistion_delay_val_medium") +#define GLX_VAL_FAST hbTrId("txt_photos_setlabel_transistion_delay_val_fast") + +#define GLX_UNABLE_PLAY_SLIDESHOW hbTrId("txt_photos_info_unable_to_play_slideshow") +#define GLX_NOIMAGE_PLAY_SLIDESHOW hbTrId( "txt_photos_info_no_images_to_play_slideshow" ) + +//-----------------------------END OF VIEW SPECIFIC LOCALISATION STRING---------------------------------- + + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------DIALOG/INFO LOCALISATION STRING----------------------------------------- +//-------------------------------------------------------------------------------------------------------// + +//Wait note. Displayed when something is being deleted. +//Delete multiple images confirmation dialog +//Deleting... +//Delete selected items? +#define GLX_DELETE_PROGRESS hbTrId("txt_common_info_deleting") -//comments lable for photos flip view -#define GLX_DETAILS_DESCRIPTION hbTrId("txt_photos_formlabel_description") +#define GLX_MULTIPLE_DELETE hbTrId("txt_photos_info_delete_selected_items") + +// progressing not to be shown while removing selected images from an album +#define GLX_REMOVE_IMAGES hbTrId("txt_photos_info_removing_images") + +#define GLX_DIALOG_NAME_PROMPT hbTrId("txt_photos_title_enter_name") + +#define GLX_DIALOG_ALBUM_NAME_DEFAULT hbTrId("txt_photos_dialog_enter_name_entry_album") + +#define GLX_DIALOG_DELETE_ONE_ITEM hbTrId("txt_photos_info_deleting_1") + +//Name already in use alert when user tries to name/reanme the album with an already existing album name +#define GLX_NAME_ALREADY_EXIST hbTrId("txt_photos_dpopinfo_name_1_already_in_use") + +#define GLX_PROCESSING hbTrId( "txt_common_info_processing" ) + +#define GLX_ADDING_IMAGES hbTrId( "txt_photos_info_adding_images" ) + +#define GLX_IMAGES_ADDED "txt_photos_dpopinfo_images_added_to_1" + +#define GLX_REFRESHING hbTrId("txt_photos_info_refreshing_your_media") + +//favorite album name for select album popup +#define GLX_ALBUM_FAV hbTrId("txt_photos_list_favorite") + +//-----------------------------END OF DIALOG/INFO LOCALISATION STRING---------------------------------- + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------BUTTON LOCALISATION STRING----------------------------------------- +//-------------------------------------------------------------------------------------------------------// //Button. Note! Use this text ID only if there are max. two buttons in the dialog. //When this button is pressed, the focused item or operation will be selected or accepted. @@ -107,16 +219,23 @@ #define GLX_BUTTON_SELECT hbTrId("txt_common_button_select") -#define GLX_MENU_OPEN hbTrId("txt_common_menu_open") - #define GLX_BUTTON_HIDE hbTrId("txt_common_button_hide") -#define GLX_LABEL_TRANSITION_EFFECT hbTrId("txt_photos_setlabel_transistion_effect") -#define GLX_VAL_SMOOTH_FADE hbTrId("txt_photos_setlabel_transistion_effect_val_smooth") +#define GLX_BUTTON_NEW hbTrId("txt_photos_button_new") + +//-----------------------------END OF BUTTON LOCALISATION STRING---------------------------------- + +//TITLE RELATED and DEFAULT STRINGS -#define GLX_LABEL_TRANSITION_DELAY hbTrId("txt_photos_setlabel_transistion_delay") -#define GLX_VAL_SLOW hbTrId("txt_photos_setlabel_transistion_delay_val_slow") -#define GLX_VAL_MEDIUM hbTrId("txt_photos_setlabel_transistion_delay_val_medium") -#define GLX_VAL_FAST hbTrId("txt_photos_setlabel_transistion_delay_val_fast") +#define GLX_CAPTION hbTrId("txt_short_caption_photos") +#define GLX_TITLE hbTrId("txt_photos_title_photos") +#define GLX_PLACES "txt_photos_dblist_places_ln" +#define GLX_ITEMS_CAMERA "txt_photos_dblist_val_ln_items" +#define GLX_ITEMS_MYFAV "txt_photos_subtitle_ln_items" +#define GLX_SUBTITLE_CAM_GRIDVIEW hbTrId("txt_photos_subtitle_my_camera") +#define GLX_SUBTITLE_MYFAV_GRIDVIEW hbTrId("txt_photos_subtitle_my_favorites") +#define GLX_GRID_NO_IMAGE hbTrId("txt_photos_info_no_content") +#define GLX_ALBUM_SELECTION_TITLE hbTrId("txt_photos_dialog_select_album") +#define GLX_IMAGE_VIEWER hbTrId("txt_photos_title_image_viewer") #endif /* GLXLOCALISATIONSTRINGS_H_ */ diff -r f291796e213d -r fb37077c270f inc/glxlog.h --- a/inc/glxlog.h Tue Jul 06 14:16:16 2010 +0300 +++ b/inc/glxlog.h Wed Aug 18 09:48:53 2010 +0300 @@ -70,7 +70,7 @@ #else // put full file paths off for __FILE__ macro to make the log entries shorter #pragma fullpath_file off*/ - #define GLX_DEBUG_STR( cat, str ) __FILE__ "(%d) : " ##cat " : " ##str + #define GLX_DEBUG_STR( cat, str ) __FILE__ "(%d) : " cat " : " str // #endif /** diff -r f291796e213d -r fb37077c270f main/glxaiwservicehandler.cpp --- a/main/glxaiwservicehandler.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/main/glxaiwservicehandler.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -19,8 +19,6 @@ #include #include #include -#include -#include #include #include @@ -28,22 +26,16 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include + +#include #include -#include -#include -#include #include #include #include #include "glxlocalisationstrings.h" -#include -#include #define IMAGE_FETCHER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageFetch") #define IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME QLatin1String("photos.Image") @@ -57,11 +49,7 @@ // GlxAiwServiceHandler::GlxAiwServiceHandler() : HbMainWindow(), - mModel(NULL), - mView(NULL), mStateMgr(NULL), - mFSView(NULL), - mFetcherContextMenu(NULL), mFetcherService(NULL), mNSDIService(NULL), mDSDIService(NULL), @@ -101,15 +89,7 @@ // GlxAiwServiceHandler::~GlxAiwServiceHandler() { - HbStyleLoader::unregisterFilePath(":/data/photos.css"); - if (mView) - { - removeView(mView); - } delete mStateMgr; - delete mView; - delete mFSView; - delete mModel; delete mFetcherService; delete mNSDIService; delete mDSDIService; @@ -126,17 +106,17 @@ // itemSelected() // ---------------------------------------------------------------------------- // -void GlxAiwServiceHandler::itemSelected(const QModelIndex & index) +void GlxAiwServiceHandler::itemSelected(const QModelIndex & index,QAbstractItemModel & model) { qDebug() << "GlxFetcher::itemSelected"; - if (mFetcherService && mFetcherService->isActive()) { qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()"; - QVariant variant = mModel->data(index, GlxUriRole); + QVariant variant = model.data(index, GlxUriRole); if (variant.isValid()) { QString itemPath = variant.value (); + qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()::PATH = " << itemPath; QStringList list = (QStringList() << itemPath); mFetcherService->complete(list); } @@ -145,7 +125,7 @@ else if (mNSDIService && mNSDIService->isActive()) { qDebug() << "GlxFetcher::itemSelected mNSDIService->isActive()"; - QVariant variant = mModel->data(index, GlxUriRole); + QVariant variant = model.data(index, GlxUriRole); if (variant.isValid()) { QString itemPath = variant.value (); @@ -157,7 +137,7 @@ else if (mDSDIService && mDSDIService->isActive()) { qDebug() << "GlxFetcher::itemSelected mDSDIService->isActive()"; - QVariant variant = mModel->data(index, GlxUriRole); + QVariant variant = model.data(index, GlxUriRole); if (variant.isValid()) { QString itemPath = variant.value (); @@ -168,96 +148,29 @@ } - void GlxAiwServiceHandler::launchFetcher(QString viewTitle) { qDebug() << "GlxAiwServiceHandler::launchFetcher START"; qApp->setApplicationName(viewTitle); - HbStyleLoader::registerFilePath(":/data/photos.css"); - GlxModelParm modelParm(KGlxCollectionPluginAllImplementationUid, 0); - mModel = new GlxMediaModel(modelParm); - if ( this->orientation() == Qt::Horizontal ) { - mModel->setData(QModelIndex(), (int)GlxContextLsGrid, GlxContextRole ); - } - else { - mModel->setData(QModelIndex(), (int)GlxContextPtGrid, GlxContextRole ); - } + mUtil = GlxExternalUtility::instance(); + mUtil->setMainWindow(this); - mView = GlxViewsFactory::createView(GLX_GRIDVIEW_ID, this); - mView->activate(); - mView->setModel(mModel); - addView(mView); - connect(mView, SIGNAL(gridItemSelected(const QModelIndex &)), this, - SLOT( itemSelected(const QModelIndex &))); - - connect ( mView, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ), - this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ), - Qt::QueuedConnection ); - qDebug() << "GlxAiwServiceHandler::launchFetcher END"; + mStateMgr = new GlxStateManager(); + int err = connect(mStateMgr, SIGNAL(gridItemSelected(const QModelIndex &,QAbstractItemModel &)), this, + SLOT( itemSelected(const QModelIndex &,QAbstractItemModel &))); + qDebug() << "GlxAiwServiceHandler::launchFetcher err = "<< err; + + mStateMgr->launchFetcher(); + return; } -void GlxAiwServiceHandler::itemSpecificMenuTriggered(qint32 viewId,QPointF pos) -{ - mFetcherContextMenu = new HbMenu(); - HbAction *action = mFetcherContextMenu->addAction(GLX_MENU_OPEN); - action->setObjectName( "Menu Open" ); - connect(action, SIGNAL(triggered()), this, SLOT(openFSView())); - connect(this, SIGNAL(aboutToChangeOrientation ()), mFetcherContextMenu, SLOT(close())); - connect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); - mFetcherContextMenu->setPreferredPos( pos ); - mFetcherContextMenu->show(); -} - -void GlxAiwServiceHandler::closeContextMenu() +void GlxAiwServiceHandler::launchImageViewer(QString viewTitle) { - disconnect( this, SIGNAL( aboutToChangeOrientation () ), mFetcherContextMenu, SLOT( close() ) ); - disconnect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); - mFetcherContextMenu->deleteLater(); - mFetcherContextMenu = NULL; - } - -void GlxAiwServiceHandler::openFSView() - { - if ( this->orientation() == Qt::Horizontal ) { - mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); - } - else { - mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); - } - HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT); - selectAction->setObjectName( "FS Select" ); - - connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect())); - HbToolBar* toolBar = new HbToolBar(); - toolBar->setOrientation( Qt::Horizontal ); - toolBar->setVisible(true); - toolBar->addAction(selectAction); - - mModel->setData( QModelIndex(), FETCHER_S, GlxSubStateRole ); - mFSView = GlxViewsFactory::createView(GLX_FULLSCREENVIEW_ID, this); - //ownership transfered to view - mFSView->setToolBar(toolBar); - mFSView->activate(); - mFSView->setModel(mModel); - addView(mFSView); - setCurrentView(mFSView,false); - } + qApp->setApplicationName(viewTitle); + mUtil = GlxExternalUtility::instance(); + mUtil->setMainWindow(this); - -void GlxAiwServiceHandler::handleFSSelect() - { - QModelIndex selectedIndex = mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value(),0); - itemSelected(selectedIndex); - } - -void GlxAiwServiceHandler::launchImageViewer() - { - qApp->setApplicationName("Image Viewer"); - GlxExternalUtility* util = GlxExternalUtility::instance(); - util->setMainWindow(this); - delete mStateMgr; - mStateMgr = NULL; mStateMgr = new GlxStateManager(); mStateMgr->launchFromExternal(); if (mImageViewerService && mImageViewerService->asyncRequest()) @@ -288,6 +201,7 @@ // GlxGetImageService::~GlxGetImageService() { + qDebug() << "GlxGetImageService::~GlxGetImageService()"; } // ---------------------------------------------------------------------------- @@ -340,10 +254,7 @@ void GlxGetImageService::fetch() { mImageRequestIndex = setCurrentRequestAsync(); - QString title = requestInfo().info("WindowTitle").toString(); - if(title.isNull()){ - title = QString("Image Fetcher"); - } + QString title = GLX_TITLE; mServiceApp->launchFetcher(title); } @@ -433,10 +344,7 @@ { qDebug() << "GlxGetImageServiceNSDI::fetch START"; mImageRequestIndex = setCurrentRequestAsync(); - QString title = requestInfo().info("WindowTitle").toString(); - if(title.isNull()){ - title = QString("Image Fetcher"); - } + QString title = GLX_TITLE; mServiceApp->launchFetcher(title); qDebug() << "GlxGetImageServiceNSDI::fetch END"; } @@ -516,10 +424,7 @@ Q_UNUSED(filter) Q_UNUSED(flag) mImageRequestIndex = setCurrentRequestAsync(); - QString title = requestInfo().info("WindowTitle").toString(); - if(title.isNull()){ - title = QString("Image Fetcher"); - } + QString title = GLX_TITLE; mServiceApp->launchFetcher(title); } @@ -582,7 +487,13 @@ { mAsyncReqId = setCurrentRequestAsync(); } - mServiceApp->launchImageViewer(); + + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title =GLX_IMAGE_VIEWER; + } + + mServiceApp->launchImageViewer(title); return true; } @@ -599,7 +510,13 @@ mImageViewerInstance->SetImageFileHandleL(file); sf.close(); } - mServiceApp->launchImageViewer(); + + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title = GLX_IMAGE_VIEWER; + } + + mServiceApp->launchImageViewer(title); mAsyncRequest = !XQServiceUtil::isEmbedded(); if (mAsyncRequest) diff -r f291796e213d -r fb37077c270f main/glxaiwservicehandler.h --- a/main/glxaiwservicehandler.h Tue Jul 06 14:16:16 2010 +0300 +++ b/main/glxaiwservicehandler.h Wed Aug 18 09:48:53 2010 +0300 @@ -22,23 +22,20 @@ #include #include #include +#include +#include //FORWARD CLASS DECLARATION -class GlxView; -class HbPushButton; -class HbMenu; -class QGraphicsGridLayout; class GlxGetImageService; -class GlxMediaModel; -class QModelIndex; class GlxImageViewerService; class GlxStateManager; class CGlxImageViewerManager; class GlxGetImageServiceNSDI; class GlxGetImageServiceDSDI; +class GlxExternalUtility; /** - * GlxAiwServiceHandler + * This is qthigway service handler class for all services provide by photos. * */ class GlxAiwServiceHandler: public HbMainWindow @@ -54,57 +51,103 @@ * Destructor. */ ~GlxAiwServiceHandler(); + + /** + * launch image fetcher view + * @param viewTitle title for image fetcher + */ void launchFetcher(QString viewTitle); - void launchImageViewer(); + + /** + * launch image viewer + * @param viewTitle title for image fetcher + */ + void launchImageViewer(QString viewTitle); + public slots: - void itemSelected(const QModelIndex & index); + /** + * This slot is called when image to be returned to fetcher + * client is selected + * @param index index of the selected image + * @param model model for the current view where image is selected + */ + void itemSelected(const QModelIndex & index,QAbstractItemModel & model); + + /** + * This slot is called when service client is closed + * + */ void handleClientDisconnect(); - void itemSpecificMenuTriggered(qint32,QPointF ); - void openFSView(); - void handleFSSelect(); - void closeContextMenu(); private: - GlxMediaModel *mModel; - GlxView* mView; + /// state manager for the services GlxStateManager *mStateMgr; - GlxView* mFSView; - HbMenu *mFetcherContextMenu; - + /// image fetcher service provider GlxGetImageService* mFetcherService; + /// image fetcher service provider with new service name and depricated interface name GlxGetImageServiceNSDI* mNSDIService; + /// image fetcher service provider with depricated name and depricated inaterface name GlxGetImageServiceDSDI* mDSDIService; GlxImageViewerService* mImageViewerService; + GlxExternalUtility *mUtil; }; /** - * GlxGetImageService + * GlxGetImageService : Image fetcher service provider * */ class GlxGetImageService : public XQServiceProvider { Q_OBJECT public: + /** + * Constructor + */ GlxGetImageService( GlxAiwServiceHandler *parent = 0 ); + + /** + * Destructor. + */ ~GlxGetImageService(); + + /** + * check if service is active + */ bool isActive(); + + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void complete( QStringList filesList); -public slots://for QTHighway to notify provider about request +public slots: + /** + * slot for qthighway to notify provider about request + */ void fetch(); -public slots://for provider to notify client + /** + * slot for service provider to notify client about error + */ void fetchFailed( int errorCode ); private: + /** + * called to complete qthighway service + * @param fileList list of Uri to be returned to client + */ void doComplete( QStringList filesList); private: + /// current service request id int mImageRequestIndex; + /// service handler for all photos services GlxAiwServiceHandler* mServiceApp; }; /** + * Class Description * GlxGetImageServiceDSDI * Service provide for new service and depricated interface */ @@ -112,23 +155,54 @@ { Q_OBJECT public: + /** + * Constructor + */ GlxGetImageServiceNSDI( GlxAiwServiceHandler *parent = 0 ); + /** + * Destructor. + */ ~GlxGetImageServiceNSDI(); + + /** + * check if service is active + */ bool isActive(); + + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void complete( QStringList filesList); -public slots://for QTHighway to notify provider about request +public slots: + /** + * slot for qthighway to notify provider about request + */ void fetch( QVariantMap filter , QVariant flag ); + + /** + * slot for qthighway to notify provider about request + */ void fetch(); -public slots://for provider to notify client +public slots: + /** + * slot for service provider to notify client about error + */ void fetchFailed( int errorCode ); private: + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void doComplete( QStringList filesList); private: + /// current service request id int mImageRequestIndex; + /// service handler for all photos services GlxAiwServiceHandler* mServiceApp; }; @@ -140,45 +214,101 @@ { Q_OBJECT public: + /** + * Constructor + */ GlxGetImageServiceDSDI( GlxAiwServiceHandler *parent = 0 ); + /** + * Destructor. + */ ~GlxGetImageServiceDSDI(); + + /** + * check if service is active + */ bool isActive(); + + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void complete( QStringList filesList); -public slots://for QTHighway to notify provider about request +public slots: + /** + * slot for qthighway to notify provider about request + */ void fetch( QVariantMap filter, QVariant flag); -public slots://for provider to notify client +public slots: + /** + * slot for service provider to notify client about error + */ void fetchFailed( int errorCode ); private: + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void doComplete( QStringList filesList); private: + /// current service request id int mImageRequestIndex; + /// service handler for all photos services GlxAiwServiceHandler* mServiceApp; }; - +/** + * Image viewer service provider + */ class GlxImageViewerService : public XQServiceProvider { Q_OBJECT - public: - GlxImageViewerService( GlxAiwServiceHandler *parent = 0 ); - ~GlxImageViewerService(); - void complete(bool ok); +public: + /** + * Constructor + */ + GlxImageViewerService( GlxAiwServiceHandler *parent = 0 ); + + /** + * Destructor. + */ + ~GlxImageViewerService(); + + /** + * compete request + * @param ok true id success else false + */ + void complete(bool ok); - public slots: - bool view(QString file); - bool view(XQSharableFile file); - bool asyncRequest() {return mAsyncRequest;} + /** + * check if request is aSync + * @return true if async else false + */ + bool asyncRequest() {return mAsyncRequest;} + +public slots: + /** + * slot for qthighway to notify provider about request + */ + bool view(QString file); - private: - GlxAiwServiceHandler* mServiceApp; - int mAsyncReqId; - bool mRetValue; - bool mAsyncRequest; - CGlxImageViewerManager* mImageViewerInstance; + /** + * slot for qthighway to notify provider about request + */ + bool view(XQSharableFile file); + +private: + /// service handler for all photos services + GlxAiwServiceHandler* mServiceApp; + /// current request id + int mAsyncReqId; + bool mRetValue; + bool mAsyncRequest; + /// image viewer manager instance to get info regarding file + CGlxImageViewerManager* mImageViewerInstance; }; diff -r f291796e213d -r fb37077c270f photos.qrc --- a/photos.qrc Tue Jul 06 14:16:16 2010 +0300 +++ b/photos.qrc Wed Aug 18 09:48:53 2010 +0300 @@ -9,8 +9,6 @@ data/opacity_deactivate.fxml data/zoomin.fxml data/zoomout.fxml - data/view_flip_hide.fxml - data/view_flip_show.fxml data/helix.fxml data/fadein.fxml data/uphide.fxml @@ -18,25 +16,24 @@ data/fullscreentogrid.fxml data/gridtofullscreenhide.fxml data/gridtofullscreenshow.fxml - data/gridtoalbumlist.fxml - data/gridtoalbumlisthide.fxml - data/albumlisttogrid.fxml - data/albumlisttogridshow.fxml + data/rotatelandscape.fxml + data/rotateprotrait.fxml + data/rotatefslandscape.fxml + data/rotatefsprotrait.fxml data/photos.css - data/grid.docml data/listview.docml data/fullscreen.docml data/slideshow.docml - data/detailsview.docml - data/Image1.jpg - data/Image2.jpg - data/Image3.jpg - data/Image4.jpg - data/Image5.jpg - data/Image6.jpg - data/Image7.jpg - data/Image8.jpg - data/Image9.jpg - data/Image10.jpg + data/detailsview.docml + data/Wait/qgn_graf_ring_wait_01.svg + data/Wait/qgn_graf_ring_wait_02.svg + data/Wait/qgn_graf_ring_wait_03.svg + data/Wait/qgn_graf_ring_wait_04.svg + data/Wait/qgn_graf_ring_wait_05.svg + data/Wait/qgn_graf_ring_wait_06.svg + data/Wait/qgn_graf_ring_wait_07.svg + data/Wait/qgn_graf_ring_wait_08.svg + data/Wait/qgn_graf_ring_wait_09.svg + data/Wait/qgn_graf_ring_wait_10.svg diff -r f291796e213d -r fb37077c270f rom/photos.iby --- a/rom/photos.iby Tue Jul 06 14:16:16 2010 +0300 +++ b/rom/photos.iby Wed Aug 18 09:48:53 2010 +0300 @@ -79,15 +79,13 @@ file=ABI_DIR/BUILD_DIR/glxviews.dll SHARED_LIB_DIR/glxviews.dll file=ABI_DIR/BUILD_DIR/glxviewutilities.dll SHARED_LIB_DIR/glxviewutilities.dll file=ABI_DIR/BUILD_DIR/glxzoomwidget.dll SHARED_LIB_DIR/glxzoomwidget.dll -file=ABI_DIR/BUILD_DIR/detailsnamelabel.dll SHARED_LIB_DIR/detailsnamelabel.dll -file=ABI_DIR/BUILD_DIR/detailsnamelabelplugin.dll SHARED_LIB_DIR/detailsnamelabelplugin.dll -file=ABI_DIR/BUILD_DIR/detailsdescriptionedit.dll SHARED_LIB_DIR/detailsdescriptionedit.dll -file=ABI_DIR/BUILD_DIR/detailsdescriptioneditplugin.dll SHARED_LIB_DIR/detailsdescriptioneditplugin.dll +file=ABI_DIR/BUILD_DIR/glxdetailscustomwidgets.dll SHARED_LIB_DIR/glxdetailscustomwidgets.dll +file=ABI_DIR/BUILD_DIR/glxdetailscustomplugin.dll SHARED_LIB_DIR/glxdetailscustomplugin.dll + S60_APP_EXE(photos) data=/epoc32/data/z/private/10003a3f/import/apps/photos_reg.rsc private/10003a3f/import/apps/photos_reg.rsc -data=DATAZ_/APP_RESOURCE_DIR/photos.mif APP_RESOURCE_DIR/photos.mif data=/epoc32/data/Z/private/10202BE9/20007194.txt private/10202BE9/20007194.txt data=/epoc32/data/Z/private/10202BE9/20007193.txt private/10202BE9/20007193.txt data=/epoc32/data/z/system/install/photos_stub.sis /system/install/photos_stub.sis diff -r f291796e213d -r fb37077c270f tvout/bwins/glxtvoutwrapperu.def --- a/tvout/bwins/glxtvoutwrapperu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/bwins/glxtvoutwrapperu.def Wed Aug 18 09:48:53 2010 +0300 @@ -5,8 +5,8 @@ ??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) - ?setModel@GlxTvOutWrapper@@QAEXPAVQAbstractItemModel@@_N@Z @ 7 NONAME ; void GlxTvOutWrapper::setModel(class QAbstractItemModel *, bool) - ?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setToCloningMode(void) - ?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 9 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(void) - ?setToNativeMode@GlxTvOutWrapper@@QAEXXZ @ 10 NONAME ; void GlxTvOutWrapper::setToNativeMode(void) + ?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 7 NONAME ; void GlxTvOutWrapper::setToCloningMode(void) + ?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(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 f291796e213d -r fb37077c270f tvout/eabi/glxtvoutwrapperu.def --- a/tvout/eabi/glxtvoutwrapperu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/eabi/glxtvoutwrapperu.def Wed Aug 18 09:48:53 2010 +0300 @@ -6,7 +6,7 @@ _ZN15GlxTvOutWrapper15setToNativeModeEv @ 5 NONAME _ZN15GlxTvOutWrapper16itemNotSupportedEv @ 6 NONAME _ZN15GlxTvOutWrapper16setToCloningModeEv @ 7 NONAME - _ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModelb @ 8 NONAME + _ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModel5QSizeb @ 8 NONAME _ZN15GlxTvOutWrapperC1Ev @ 9 NONAME _ZN15GlxTvOutWrapperC2Ev @ 10 NONAME _ZN15GlxTvOutWrapperD1Ev @ 11 NONAME diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/bwins/glxtvoutu.def --- a/tvout/tvoutengine/bwins/glxtvoutu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/bwins/glxtvoutu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,16 +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@H@Z @ 3 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(int) + ?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) - ?IsConnected@CGlxTv@@QBEHXZ @ 10 NONAME ; int CGlxTv::IsConnected(void) const - ?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 11 NONAME ; void CGlxHdmiController::ItemNotSupported(void) - ?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 12 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &) + ?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) diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/eabi/glxtvoutu.def --- a/tvout/tvoutengine/eabi/glxtvoutu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/eabi/glxtvoutu.def Wed Aug 18 09:48:53 2010 +0300 @@ -5,7 +5,7 @@ _ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME _ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME _ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME - _ZN18CGlxHdmiController4NewLEi @ 7 NONAME + _ZN18CGlxHdmiController4NewLE5TRecti @ 7 NONAME _ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 8 NONAME _ZN18CGlxHdmiControllerD0Ev @ 9 NONAME _ZN18CGlxHdmiControllerD1Ev @ 10 NONAME diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/group/glxtvout.mmp --- a/tvout/tvoutengine/group/glxtvout.mmp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/group/glxtvout.mmp Wed Aug 18 09:48:53 2010 +0300 @@ -53,7 +53,6 @@ LIBRARY cone.lib // for CCoeEnv LIBRARY centralrepository.lib // for Central Repository LIBRARY accclient.lib // for RAccessoryServer -LIBRARY alfclient.lib // For Alfred Hitchcock framework LIBRARY fbscli.lib LIBRARY gdi.lib LIBRARY surfaceupdateclient.lib // surface update client @@ -61,11 +60,12 @@ LIBRARY imageconversion.lib // ICL LIBRARY efsrv.lib LIBRARY bitgdi.lib -LIBRARY apgrfx.lib // +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 +LIBRARY alfdecoderserverclient.lib +LIBRARY AccPolicy.lib //For RAccessoryConnection status ID's + // Other Dependency Libraries #ifdef __MARM LIBRARY GSServerEngine.lib // FOr AspectRatio diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxactivecallback.h --- a/tvout/tvoutengine/inc/glxactivecallback.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxactivecallback.h Wed Aug 18 09:48:53 2010 +0300 @@ -11,7 +11,7 @@ * * Contributors: * -* Description: Handles & propogates UI state change notifications. +* Description: * */ @@ -31,12 +31,12 @@ iCallBack(aCallBack) {}; CGlxActiveCallBack(); - public: // Functions from base classes + public: /// Functions CActive void SetActive() { CActive::SetActive();}; void RunL() { iCallBack.CallBack();}; void DoCancel() {}; - private: // Data + private: /// Data TCallBack iCallBack; }; diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxactivedecoder.h --- a/tvout/tvoutengine/inc/glxactivedecoder.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxactivedecoder.h Wed Aug 18 09:48:53 2010 +0300 @@ -11,7 +11,7 @@ * * Contributors: * -* Description: +* Description: This is the decoder class used to decode Images to HDMI quality. * */ @@ -24,44 +24,55 @@ #include #include "glxhdmisurfaceupdater.h" +// Fwd decleration class CImageDecoder; -// CLASS DECLARATION + +/** + * Class Description + * This is the decoder class used to decode Images to HDMI quality. + * + * Clients should create an instance of this class from CGlxHdmiSurfaceUpdater , with an + * instance of it and call ConvertImageL() with approprriate parameters + */ class CGlxHdmiDecoderAO : public CActive { public: - /* + + /** * NewL() - * @Param1 CGlxHdmiSurfaceUpdater + * @param CGlxHdmiSurfaceUpdater + * @return CGlxHdmiDecoderAO object */ static CGlxHdmiDecoderAO* NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater); - /* + /** * Destructor */ ~CGlxHdmiDecoderAO(); - /* + /** * ConvertImageL() * This calls the asyncronous service request to ICL convert - * @param1 - Destination Bitmap - * @param2 - Image decoder + * @param - Destination Bitmap + * @param - Image decoder */ void ConvertImageL(CFbsBitmap& iBitmap,CImageDecoder* aDecoder); -protected: - // from CActive +protected:/// from CActive void RunL(); void DoCancel(); private: - /* + /** * Constructor */ CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater); private: - CGlxHdmiSurfaceUpdater* iHdmiSurfaceUpdater; // not owned + /// not owned + CGlxHdmiSurfaceUpdater* iHdmiSurfaceUpdater; + /// Image decoder instance CImageDecoder* iDecoder; }; diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxhdmicontainer.h --- a/tvout/tvoutengine/inc/glxhdmicontainer.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxhdmicontainer.h Wed Aug 18 09:48:53 2010 +0300 @@ -21,6 +21,11 @@ #include #include "glxhdmisurfaceupdater.h" +/** + * Class Description + * A class that creates a CCoeControl window for Screen 1 with screendevice + * used + */ class CGlxHdmiContainer : public CCoeControl, public MGlxGenCallback { public: diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxhdmicontroller.h --- a/tvout/tvoutengine/inc/glxhdmicontroller.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxhdmicontroller.h Wed Aug 18 09:48:53 2010 +0300 @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available @@ -11,119 +11,157 @@ * * Contributors: * -* Description: Handles & propogates UI state change notifications. +* Description: Creates the HDMI engine and provides functionality +* for all its usage and needs through simple API's * */ + #ifndef GLXHDMICONTROLLER_H_ #define GLXHDMICONTROLLER_H_ // Internal includes - class CGlxHdmiContainer; class CGlxHdmiSurfaceUpdater; -/* - * This class will be called from FS and Slideshow for its requirements - */ +/** + * Class Description + * This is the entry point of the HDMI engine. + * It Promisses to provide all HDMI functionality with simple API calls. + * + * To Show an image on TV, create an instance of this object and call + * CGlxHdmiController::SetImageL() with appropriate parameters. + * + * To Shift from native to clone and vice versa, use ShiftToPostingMode() and + * ShiftToCloningMode() respectively + * + * For Not supported items, make sure to call ItemNotSupported() API + */ + class CGlxHdmiController : public CBase { public: - /* + /** * NewLC - * @param1 - Image file path default to NULL + * @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(TBool aEfectsOn = EFalse); + IMPORT_C static CGlxHdmiController* NewL(TRect aRect ,TBool aEfectsOn = EFalse); - /* + /** * Destructor */ IMPORT_C ~CGlxHdmiController(); - /* + /** * Update Image - * @param1 - Image file path + * @param aImageFile file path + * @param aFsBitmap Fullscreen bitmap, make sure to send a grid bitmap if FS bitmap not present + * @param aStore An internal parameter to store the image path or not, clients neednot use this. */ IMPORT_C void SetImageL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap = NULL, TBool aStore = ETrue); - /* + /** * To intimate that the item is not supported. */ IMPORT_C void ItemNotSupported(); - /* + /** * Activating zoom in posting mode + * @param aAutoZoomOut if it should auto zoom out */ IMPORT_C void ActivateZoom(TBool aAutoZoomOut); - /* + + /** * Deactivating zoom in posting mode */ IMPORT_C void DeactivateZoom(); - /* + /** * ShiftToCloningMode + * Shifts the TV UI to cloning mode if it is posting + * else does nothing */ IMPORT_C void ShiftToCloningMode(); - /* + /** * ShiftToPostingMode + * Shifts the TV UI to posting mode if cloning mode, + * else does nothing */ IMPORT_C void ShiftToPostingMode(); - /* + /** * Fadeing of the Surface - * @param1 ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) + * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness ) + * EFalse - FadeOut ( as in loosing brightness ) */ IMPORT_C void FadeSurface(TBool aFadeInOut); -private: - /* +private:/// class private method + /** * Constructor + * @param aRect Rect size + * @param aEfectsOn if effects needs to be on(used in Slideshow only) */ - CGlxHdmiController(TBool aEfectsOn); + CGlxHdmiController(TRect aRect ,TBool aEfectsOn); - /* + /** * ConstructL */ void ConstructL(); - /* + /** * Create the Hdmi Container */ void CreateHdmiContainerL(); - /* + /** * Create surface updater and update background surface - * @param1 - Image file + * @param aImageFile Image file */ void CreateSurfaceUpdaterL(const TDesC& aImageFile); - /* + /** * To Destroy the surface updater if present */ void DestroySurfaceUpdater(); - /* + /** * Detroy the container */ void DestroyContainer(); - /* + /** * Stores the Image File name - * @param1 - Image file + * @param aImageFile Image file path + * @param aFsBitmap Fullscreen Bitmap */ void StoreImageInfoL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap); private: - CFbsBitmap* iFsBitmap; - HBufC* iStoredImagePath; - + /// Fullscreen Bitmap + CFbsBitmap* iFsBitmap; + /** + * Stored image path + */ + HBufC* iStoredImagePath; + /** + * Hdmi container + */ CGlxHdmiContainer* iHdmiContainer; + /// Surface updater instance CGlxHdmiSurfaceUpdater* iSurfaceUpdater; - TBool iIsImageSupported; // Flag to see if Image is supported - TBool iEffectsOn; + /// Rect + 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 f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxhdmisurfaceupdater.h --- a/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h Wed Aug 18 09:48:53 2010 +0300 @@ -39,229 +39,288 @@ virtual void DoGenCallback() = 0; }; +/** + * Class Description + * This is the main class which processes images to the surface + * + */ + class CGlxHdmiSurfaceUpdater: public CBase { public: - /* + /** * NewL + * @param aWindow RWindow + * @param aImageFile Image File path + * @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); - /* + /** * Destructor */ ~CGlxHdmiSurfaceUpdater(); public: - /* + /** * This is to cancel the active object from decoding */ void HandleRunL(TRequestStatus& aStatus); - /* + /** * This updates the new image. + * @param aImageFile image path + * @param aFsBitmap Fullscreen Bitmap + * + * NOTE : if FS not available,make sure to send grid or default bitmap + * else it would appear white screen on TV */ void UpdateNewImageL(const TDesC& aImageFile,CFbsBitmap* aFsBitmap); - /* + /** * Activate Zoom + * @param aAutoZoomOut if it should auto zoom out */ void ActivateZoom(TBool aAutoZoomOut); - /* + + /** * Deactivate Zoom */ void DeactivateZoom(); - /* - ShiftToCloningMOde + /** + * ShiftToCloningMOde */ void ShiftToCloningMode(); - /* - ShiftToPostingMode + /** + * ShiftToPostingMode */ void ShiftToPostingMode(); - /* + /** * Fadeing of the Surface - * @param1 ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) + * @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); - /* - * ConstructL() + /** + * ConstructL + * @param aFsBitmap Fullscreen Bitmap + * @param aImageFile image file path */ void ConstructL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile); - /* + /** * Create a New surface with given size */ void CreateSurfaceL(); - /* - * @param1 size + + /** + * MapSurfaceL */ void MapSurfaceL(); - /* + /** * This fundtion wont be called , could be used if double buffering is planned in future * to start the second decoder AO and update the surface with a new session. */ static TInt SurfBuffer0Ready(TAny* aObject); - /* + /** * Call a refresh on the screen */ void Refresh(); - /* + /** * Dump the buffer on to the surface stride */ void SwapBuffers(); - /* + /** * Release contents */ void ReleaseContent(); - /* + /** * Create bitmap */ void CreateBitmapL(); - /* + /** * Create an image decoder with given file - * @param1 - Image file */ void CreateImageDecoderL(); - /* + /** * Creating all enablers for HDMI - * @param1 if creating a surface is required, - * by default it is not required + * @param aCreateSurface if creating a surface is required, + * by default it is not required */ void CreateHdmiL(TBool aCreateSurface = ETrue); - /* + /** * Zoom in our out depending on parameter + * @param aZoom if should be zoomed */ void Zoom(TBool aZoom); - /* + /** * This if for zoom timer timeout */ static TInt TimeOut(TAny* aSelf); - /* + /** * Animation time out timer */ static TInt AnimationTimeOut(TAny* aSelf); - /* + /** * ModifySurface positions of the surface to be displayed on screen */ void ModifySurfacePostion(); - /* + /** * Process the image for TV */ void ProcessTvImage(); - /* + /** * Shows the FS thumbnail first before showing * Decoded HD image */ void ShowFsThumbnailL(); - /* + /** * Recalculate the size for png/bmp as decoder fails to * decode for desired size + * @return the Size of the desired image supported by the decoder */ TSize ReCalculateSizeL(); - /* + /** * If the image format is non jpeg, then we need to calculate as per * reduction factor and reduced size as what the decoder is going to return us * This function returns if that needs to be done. + * + * @return check the image mime type and return True if the recaulation of size needs + * to be done else return false */ TBool DoesMimeTypeNeedsRecalculateL(); - /* + /** * If the image format is non jpeg, then we need to scale the bitmap after it is - * decoded, as the return value would not fit the screen + * decoded, as the return value would not fit the screen + * @param */ void ScaleDecodedBitmapL(TInt aBitmapIndex); - /* + /** * InitiateHDMI + * @param aFsBitmap Fullscreen Bitmap + * @param aImageFile Image path */ void InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile); - /* + /** * Animate untill loop is complete */ void Animate(); private: - RWindow* iWindow; // window object - CFbsBitmap* iFsBitmap; // FS bitmap - MGlxGenCallback* iCallBack; // callback to the HdmiContainer window - HBufC* iImagePath; // To store the image uri path + /// window object + RWindow* iWindow; + /// FS bitmap + CFbsBitmap* iFsBitmap; + /// callback to the HdmiContainer window + MGlxGenCallback* iCallBack; + /// To store the image uri path + HBufC* iImagePath; TBool iEffectsOn; - TBool iShwFsThumbnail; // If the Fs thumbnail is to be shown before decoding HD images - TBool iIsNonJpeg; // If the item is non jpeg - TBool iFadeIn; // If FadeIn or Out for only SLideshow animation + /// If the Fs thumbnail is to be shown before decoding HD images + TBool iShwFsThumbnail; + /// If the item is non jpeg + TBool iIsNonJpeg; + /// If FadeIn or Out for only SLideshow animation + TBool iFadeIn; - // GCE Surface + /// GCE Surface RSurfaceUpdateSession iSurfUpdateSession; - TSurfaceId iSurfId; // TSurfaceId - RSurfaceManager* iSurfManager; // RSurfaceManager - RChunk* iSurfChunk; // RChunk - TInt iSurfaceStride; // surface stride - TSurfaceConfiguration iConfig; // surface configuration for zoom + /// TSurfaceId + TSurfaceId iSurfId; + /// RSurfaceManager + RSurfaceManager* iSurfManager; + /// RChunk + RChunk* iSurfChunk; + /// surface stride + TInt iSurfaceStride; + /// surface configuration for zoom + TSurfaceConfiguration iConfig; - CFbsBitmap* iDecodedBitmap[3]; // Array of Decoded bitmaps of the focussed image - // 1 - contains FS/Grid Thumbnail, 2- HD image, - // (optional)3-Scaled png/bmp images + /** Array of Decoded bitmaps of the focussed image + * 1 - contains FS/Grid Thumbnail, 2- HD image, + * (optional)3-Scaled png/bmp images + */ + CFbsBitmap* iDecodedBitmap[3]; - void* iSurfBuffer; // Surface buffer - CGlxActiveCallBack* iSurfBufferAO; // Surface buffer AO + /// Surface buffer + void* iSurfBuffer; + /// Surface buffer AO + CGlxActiveCallBack* iSurfBufferAO; CAlfCompositionSource* ialfCompositionSurface; - //ICL - CGlxHdmiDecoderAO* iGlxDecoderAO; // Internal Image decoder AO - CImageDecoder* iImageDecoder; // Image Decoder - RFs iFsSession; // RFs + /// Internal Image decoder AO + CGlxHdmiDecoderAO* iGlxDecoderAO; + /// Image Decoder + CImageDecoder* iImageDecoder; + /// RFs + RFs iFsSession; - TPoint iLeftCornerForZoom; // - CPeriodic* iTimer; // Timer for Zoom - CPeriodic* iAnimTimer; // Timer for Animation + TPoint iLeftCornerForZoom; + /// Timer for Zoom + CPeriodic* iTimer; + /// Timer for Animation + CPeriodic* iAnimTimer; TInt iAnimCounter; - // Various objects to store sizes and count - TSize iTvScreenSize; // to store the Tv screen size - TSize iTargetBitmapSize; // To Store the target bitmap size to display(as per Aspect Ratio) + /// Various objects to store sizes and count + /// to store the Tv screen size + TSize iTvScreenSize; + /// To Store the target bitmap size to display(as per Aspect Ratio) + TSize iTargetBitmapSize; - // Various flags to store values - TBool iZoom; // Is zoomed - TBool iBitmapReady; // If the bitmap is decoded and ready - TBool iAutoZoomOut; // If the UI has asked for auto zoomout - TBool iSurfSessionConnected; // If surface session is connected + /// Various flags to store values + /// Is zoomed + TBool iZoom; + /// If the bitmap is decoded and ready + TBool iBitmapReady; + /// If the UI has asked for auto zoomout + TBool iAutoZoomOut; + /// If surface session is connected + TBool iSurfSessionConnected; + /// If it is set to shift to cloning mode TBool iShiftToCloning; #ifdef _DEBUG TTime iStartTime; TTime iStopTime; #endif - // The bitmap index in the array of bitmaps + /// The bitmap index in the array of bitmaps enum { EFSBitmapIndex = 0, EJpgDecodedBitmapIndex, diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxtv.h --- a/tvout/tvoutengine/inc/glxtv.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxtv.h Wed Aug 18 09:48:53 2010 +0300 @@ -68,7 +68,6 @@ /** * Class Description * A class that handles and propagates UI change notifications - * @author Loughlin */ NONSHARABLE_CLASS (CGlxTv) : public CBase, public MGlxWindowVisibilityObserver, @@ -94,12 +93,12 @@ */ CGlxTv(MGlxTvObserver& aTvObserver); - /* + /** * Symbian second stage construction */ void ConstructL(); -public: // class public method +public: /// class public method /** * Get the current screen size @@ -158,30 +157,30 @@ void StopMonitoringEnvironment(); private: // class member data - // Not Owned: The TV out observer + /// Not Owned: The TV out observer MGlxTvObserver& iTvObserver; - // Owned: The Window visibility monitor + /// Owned: The Window visibility monitor CGlxWindowVisibilityMonitor* iWindowVisibilityMonitor; - // Owned: The TV connection monitor + /// Owned: The TV connection monitor CGlxTvConnectionMonitor* iTvConnectionMonitor; - // Size of the TV Out display size + /// Size of the TV Out display size TSize iSzInPixels; - // Owned: The central repository where TV display ratio is held. + /// Owned: The central repository where TV display ratio is held. CRepository* iCenRep; - // The implementation of the class, hidden from clients + /// The implementation of the class, hidden from clients class CGlxTvOutCenRepMonitor; - // Owned: Monitoring class for Tv Ratio Values + /// Owned: Monitoring class for Tv Ratio Values CGlxTvOutCenRepMonitor* iTvDisplayAspectRatioMonitor; - // The TV aspect ratio + /// The TV aspect ratio TInt iAspectRatio; }; -#endif // __GLXTV_H__ \ No newline at end of file +#endif // __GLXTV_H__ diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxtvconnectionmonitor.h --- a/tvout/tvoutengine/inc/glxtvconnectionmonitor.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxtvconnectionmonitor.h Wed Aug 18 09:48:53 2010 +0300 @@ -16,11 +16,6 @@ */ - -/** - * @internal reviewed 24/08/2007 by D Holland - */ - #ifndef __GLX_WNDWCONNECTION_MONITOR_H__ #define __GLX_WNDWCONNECTION_MONITOR_H__ @@ -40,7 +35,6 @@ /** * Class Description * An Active object derived class is used to monitor the TV out connection - * @author Loughlin */ NONSHARABLE_CLASS(CGlxTvConnectionMonitor) : public CActive { @@ -65,20 +59,20 @@ CGlxTvConnectionMonitor( MGlxTvConnectionObserver& aConnectionObserver); - /* + /** * Symbian second stage construction */ void ConstructL(); public: // class member functions - /* + /** * Provides the caller with the current TV connetion state * @return The TV connection state */ TBool IsConnected() const; - /* + /** * Provides the caller with the current HDMI connetion state * @return The HDMI connection state */ @@ -120,30 +114,30 @@ private: // class member data - // Not owned: TV connection observer + /// Not owned: TV connection observer MGlxTvConnectionObserver& iConnectionObserver; - // TVout The Connection state + /// TVout The Connection state TBool iIsTvOutConnected; - // TVout The Connection state + /// TVout The Connection state TBool iIsHDMIConnected; - // Headset The Connection state + /// Headset The Connection state TBool iIsHeadSetConnected; - // The (external device) Accessory Server + /// The (external device) Accessory Server RAccessoryServer iTvAccServer; - // Accessory mode + /// Accessory mode RAccessoryMode iTvAccMode; - // Accessory Connection - details the type of accessory + /// Accessory Connection - details the type of accessory RAccessoryConnection iTvAccCon; - //Class gives Generic ID + ///Class gives Generic ID TAccPolGenericIDArray iCurrentAccArray; }; -#endif // __GLX_WNDWCONNECTION_MONITOR_H__ \ No newline at end of file +#endif // __GLX_WNDWCONNECTION_MONITOR_H__ diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/inc/glxwindowvisibilitymonitor.h --- a/tvout/tvoutengine/inc/glxwindowvisibilitymonitor.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/inc/glxwindowvisibilitymonitor.h Wed Aug 18 09:48:53 2010 +0300 @@ -16,11 +16,6 @@ */ - -/** - * @internal reviewed 24/08/2007 by D Holland - */ - #ifndef __GLXWINVISIBILITYMONITOR_H__ #define __GLXWINVISIBILITYMONITOR_H__ @@ -33,12 +28,10 @@ class MGlxWindowVisibilityObserver; - /** * Class Description * An Active object derived class is used to monitor the visibility of the * TV out window. - * @author Loughlin */ NONSHARABLE_CLASS(CGlxWindowVisibilityMonitor) : public CBase, public MAknWsEventObserver @@ -74,9 +67,9 @@ */ void ConstructL(); -public: // class member functions +public: /// class member functions - /* + /** * Provides the caller with the current visible state * @return ETrue if the window is visible or false otherwise */ @@ -86,14 +79,14 @@ void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination ); -private: // class member data - // Not ownded: The Akn event monitor +private: /// class member data + /// Not ownded: The Akn event monitor CAknWsEventMonitor* iAknEventMonitor; - // Not owned: Window visibility observer + /// Not owned: Window visibility observer MGlxWindowVisibilityObserver& iVisibilityObserver; - // The visible state + /// The visible state TBool iIsVisible; }; diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/src/glxhdmicontroller.cpp --- a/tvout/tvoutengine/src/glxhdmicontroller.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/src/glxhdmicontroller.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -16,7 +16,6 @@ */ #include -#include #include #include @@ -28,10 +27,10 @@ // ----------------------------------------------------------------------------- // NewLC // ----------------------------------------------------------------------------- -EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TBool aEfectsOn) +EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TRect aRect ,TBool aEfectsOn) { TRACER("CGlxHdmiController* CGlxHdmiController::NewL()"); - CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aEfectsOn); + CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aRect,aEfectsOn); CleanupStack::PushL(self); self->ConstructL(); CleanupStack::Pop(self); @@ -183,9 +182,10 @@ // ----------------------------------------------------------------------------- // Constructor // ----------------------------------------------------------------------------- -CGlxHdmiController::CGlxHdmiController(TBool aEffectsOn): +CGlxHdmiController::CGlxHdmiController(TRect aRect,TBool aEffectsOn): iFsBitmap(NULL), iStoredImagePath(NULL), + iRect(aRect), iEffectsOn(aEffectsOn) { TRACER("CGlxHdmiController::CGlxHdmiController()"); @@ -233,8 +233,7 @@ void CGlxHdmiController::CreateHdmiContainerL() { TRACER("CGlxHdmiController::CreateHdmiContainer()"); - TRect rect = AlfUtil::ScreenSize(); - iHdmiContainer = CGlxHdmiContainer::NewL(rect); + iHdmiContainer = CGlxHdmiContainer::NewL(iRect); } // ----------------------------------------------------------------------------- diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp --- a/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -595,7 +595,7 @@ TRACER("CGlxHdmiController::CreateImageDecoderL()"); // Create a decoder for the image in the named file TRAPD(error,iImageDecoder = CImageDecoder::FileNewL(iFsSession, - iImagePath->Des(), CImageDecoder::EOptionNone, KNullUid)); + iImagePath->Des(), CImageDecoder::EOptionAlwaysThread, KNullUid)); GLX_LOG_INFO1("CreateImageDecoderL CImageDecoder:FileNewL error %d",error); User::LeaveIfError(error); } diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/src/glxtvconnectionmonitor.cpp --- a/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -21,16 +21,15 @@ #include "glxtvconnectionmonitor.h" // EXTERNAL INCLUDES +#include +#include // INTERNAL INCLUDES - #include #include - #include #include "glxtv.h" -#include -#include + //----------------------------------------------------------------------------- // Return new object //----------------------------------------------------------------------------- diff -r f291796e213d -r fb37077c270f tvout/tvoutengine/src/glxwindowvisibilitymonitor.cpp --- a/tvout/tvoutengine/src/glxwindowvisibilitymonitor.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutengine/src/glxwindowvisibilitymonitor.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -17,10 +17,6 @@ -/** - * @internal reviewed 24/08/2007 by D Holland - */ - // CLASS HEADER #include "glxwindowvisibilitymonitor.h" diff -r f291796e213d -r fb37077c270f tvout/tvoutwrapper/inc/glxtvconnectionobserver.h --- a/tvout/tvoutwrapper/inc/glxtvconnectionobserver.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutwrapper/inc/glxtvconnectionobserver.h Wed Aug 18 09:48:53 2010 +0300 @@ -25,41 +25,52 @@ class CGlxTv; class GlxTvOutWrapperPrivate; +/** + * Class Description This class basically obseves the connection changes + * + * Client shouldnt access this directly, meant to be used from GlxTvOutWrapperPrivate only + * + */ + class CGlxConnectionObserver : public CBase, public MGlxTvObserver { public: - /* + /** * NewL() + * @param aTvWrapperPrivate GlxTvOutWrapperPrivate instance */ static CGlxConnectionObserver* NewL(GlxTvOutWrapperPrivate* aTvWrapperPrivate); - /* + /** * destructor */ ~CGlxConnectionObserver(); - /* + /** * IsHdmiConnected() */ TBool IsHdmiConnected(); private: - /* + /** * ConstructL */ void ConstructL(); - /* + /** * constructor + * @param aTvWrapperPrivate GlxTvOutWrapperPrivate Instance */ CGlxConnectionObserver(GlxTvOutWrapperPrivate* aTvWrapperPrivate); -private:// From MGlxTvObserver +private:/// @see MGlxTvObserver void HandleTvStatusChangedL ( TTvChangeType aChangeType ); private: + /// TvOut instance CGlxTv* iGlxTvOut; + /// wrapper private instance GlxTvOutWrapperPrivate* iTvWrapperPrivate; }; #endif // GLXTVCONNECTIONOBSERVER_H diff -r f291796e213d -r fb37077c270f tvout/tvoutwrapper/inc/glxtvoutwrapper.h --- a/tvout/tvoutwrapper/inc/glxtvoutwrapper.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper.h Wed Aug 18 09:48:53 2010 +0300 @@ -19,6 +19,7 @@ #define GLXTVOUTWRAPPER_H #include +#include // forward decleration class GlxTvOutWrapperPrivate; @@ -29,70 +30,85 @@ #define GLX_TVOUTWRAPPER_EXPORT Q_DECL_IMPORT #endif +/** + * Class Description This is Wrapper entry point for Qt based classes for HDMI + * + * Client needs to create an instance of this class and setModel() + * + * To Shift from native to clone and vice versa, use setToNativeMode() and + * setToCloningMode() respectively + * + * For Not supported items, make sure to call itemNotSupported() API + */ + class GLX_TVOUTWRAPPER_EXPORT GlxTvOutWrapper { public: - /* + /** * Constructor */ GlxTvOutWrapper(); - /* + /** * Destructor */ ~GlxTvOutWrapper(); - /* + /** * Setting the model * This also creates the private instance of the wrapper * 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,bool aEfectsOn = false); + void setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn = false); - /* + /** * Set the image on to HDMI */ void setImagetoHDMI(); - /* + /** * Sets HDMI to cloning mode */ void setToCloningMode(); - /* + /** * Sets HDMI to Native posting mode */ void setToNativeMode(); - /* + /** * views should call this if for any item it doesnt want to move to * HDMI posting mode */ void itemNotSupported(); - /* + /** * Activate zoom in posting mode * This can be called if the zoom animation in HDMI(bounce back effect) * needs to be shown - * @param1 - send true if want to auto zoom out on animation effect + * @param autoZoomOut send true if want to auto zoom out on animation effect */ void activateZoom(bool autoZoomOut); - /* + /** * Deactivate zoom in posting mode. * This can be called when zoom animation needs to bounce back. * Note : This function is not required if bounce back effect finishes automatically */ void deactivateZoom(); - /* + /** * Fadeing of the Surface - * @param1 ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) + * @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 f291796e213d -r fb37077c270f tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h --- a/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h Wed Aug 18 09:48:53 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include class GlxTvOutWrapper; class CGlxConnectionObserver; @@ -29,88 +30,104 @@ // Converting the QVariant to CFbsBitmap* Q_DECLARE_METATYPE(CFbsBitmap*) +/** + * Class Description This is Private Wrapper class for HDMI + * + * Client shouldnt access this directly, instead access through GlxTvOutWrapper + * + */ + class GlxTvOutWrapperPrivate { public: - /* + /** * Static method to create an instance - * @param3 - to On the Effects of Slideshow - currently only fade in fade out + * @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,bool aEfectsOn); + QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn); - /* + /** * destructor */ ~GlxTvOutWrapperPrivate(); - /* + /** * HandleConnectionChange - * @param1 true if connected, false if disconnected + * @param aConnected true if connected, false if disconnected * Note this is only being done for HDMI as there is no * implementation for Analog TV. */ void HandleConnectionChange(bool aConnected); - /* - * SetImagetoHDMI() + /** + * SetImagetoHDMI */ void SetImagetoHDMI(); - /* + /** * Sets HDMI to cloning mode */ void SetToCloningMode(); - /* + /** * Sets HDMI to Native posting mode */ void SetToNativeMode(); - /* + /** * views should call this if for any item it doesnt want to move to * HDMI posting mode */ void ItemNotSupported(); - /* + /** * Activate zoom in posting mode */ void ActivateZoom(bool autoZoomOut); - /* + /** * Deactivate zoom in posting mode. */ void DeactivateZoom(); - /* + /** * Fadeing of the Surface - * @param1 ETrue - FadeIn ( as in gaining brightness ) - * EFalse - FadeOut ( as in loosing brightness ) + * @param aFadeInOut - ETrue - FadeIn ( as in gaining brightness ) + * EFalse - FadeOut ( as in loosing brightness ) */ void FadeSurface(bool aFadeInOut); private: - /* + /** * constructor + * @param tvoutwrapper GlxTvOutWrapper instance + * @param model QAbstractItemModel instance */ GlxTvOutWrapperPrivate(GlxTvOutWrapper* aTvOutWrapper, QAbstractItemModel* aModel); - /* + /** * constructL() - * @param1 - to On the Effects of Slideshow - currently only fade in fade out + * @param aScreenSize screensize + * @param aEffectsOn to On the Effects of Slideshow - currently only fade in fade out */ - void ConstructL(bool aEfectsOn); + void ConstructL(QSize aScreenSize,bool aEfectsOn); - /* + /** * SetNewImage * Get the uri and bmp from the media model * and pass it to HDMI controller */ void SetNewImage(); - /* + /** * getsubstate */ int getSubState(); diff -r f291796e213d -r fb37077c270f tvout/tvoutwrapper/src/glxtvoutwrapper.cpp --- a/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -43,11 +43,11 @@ // setModel // and Create the private instance to pass the model // ----------------------------------------------------------------------------- -void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,bool aEfectsOn) +void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn) { if (!mTvOutWrapperPrivate) { - mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aEfectsOn); + mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aScreenSize,aEfectsOn); } else { diff -r f291796e213d -r fb37077c270f tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp --- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -29,12 +29,12 @@ // Static method to create the private wrapper instance // ----------------------------------------------------------------------------- GlxTvOutWrapperPrivate* GlxTvOutWrapperPrivate::Instance(GlxTvOutWrapper* aTvOutWrapper, - QAbstractItemModel* aModel,bool aEfectsOn) + QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn) { TRACER("GlxTvOutWrapperPrivate::Instance()"); GlxTvOutWrapperPrivate* self = new GlxTvOutWrapperPrivate(aTvOutWrapper,aModel); if (self){ - TRAPD(err,self->ConstructL(aEfectsOn)); + TRAPD(err,self->ConstructL(aScreenSize,aEfectsOn)); if(err != KErrNone){ delete self; self = NULL; @@ -47,12 +47,14 @@ // ConstructL // This creates the Connection observer and the Hdmi Controller // ----------------------------------------------------------------------------- -void GlxTvOutWrapperPrivate::ConstructL(bool aEfectsOn) +void GlxTvOutWrapperPrivate::ConstructL(QSize aScreenSize,bool aEfectsOn) { TRACER("GlxTvOutWrapperPrivate::ConstructL()"); iConnectionObserver = CGlxConnectionObserver::NewL(this); if (!iHdmiController) { - iHdmiController = CGlxHdmiController::NewL(aEfectsOn); + TRect rect(0,0,aScreenSize.width(),aScreenSize.height()); + iHdmiController = CGlxHdmiController::NewL(rect, + aEfectsOn); iHdmiConnected = iConnectionObserver->IsHdmiConnected(); } } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/bwins/glxcommoncommandhandlersu.def --- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,81 +1,76 @@ EXPORTS - ?doHandleUserAction@GlxCommandHandlerRotateImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 1 NONAME ; void GlxCommandHandlerRotateImage::doHandleUserAction(class GlxMediaModel *, class QList) const - ??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 2 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int) - ?iSelectionCount@GlxCommandHandlerAddToContainer@@0HA @ 3 NONAME ; int GlxCommandHandlerAddToContainer::iSelectionCount - ?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 4 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>) - ?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *) - ?doHandleUserAction@GlxCommandHandlerCropImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 6 NONAME ; void GlxCommandHandlerCropImage::doHandleUserAction(class GlxMediaModel *, class QList) const - ?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 7 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const - ??0GlxCommandHandlerRename@@QAE@XZ @ 8 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void) - ??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 9 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void) - ?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void) - ?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 11 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short) - ?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 12 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const - ??_EGlxCommandHandlerSend@@UAE@I@Z @ 13 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int) - ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *) - ?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 15 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int) - ??1GlxCommandHandlerCropImage@@UAE@XZ @ 16 NONAME ; GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage(void) - ?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 17 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const - ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int) - ?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &) - ?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const - ?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const - ?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 22 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 23 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 24 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const - ?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 25 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *) - ??0GlxCommandHandlerComment@@QAE@XZ @ 26 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void) - ?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 27 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const - ??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 28 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void) - ?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 29 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *) - ??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 30 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void) - ?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 31 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *) - ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 32 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *) - ?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 33 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const - ?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 34 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void) - ??_EGlxCommandHandlerComment@@UAE@I@Z @ 35 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int) - ??1GlxCommandHandlerRotate@@UAE@XZ @ 36 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void) - ?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 37 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const - ??1GlxCommandHandlerNewMedia@@UAE@XZ @ 38 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void) - ??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 39 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int) - ?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const - ??_EGlxCommandHandlerDelete@@UAE@I@Z @ 41 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int) - ?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 42 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const - ?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 43 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const - ?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject - ?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 45 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void) - ??0GlxCommandHandlerDelete@@QAE@XZ @ 46 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void) - ??1GlxCommandHandlerRename@@UAE@XZ @ 47 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void) - ??0GlxCommandHandlerSend@@QAE@XZ @ 48 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void) - ?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 49 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int) - ??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 50 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void) - ??_EGlxCommandHandlerRename@@UAE@I@Z @ 51 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int) - ?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 52 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const - ?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 53 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) - ??1GlxCommandHandlerRotateImage@@UAE@XZ @ 54 NONAME ; GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage(void) - ??0GlxCommandHandlerRotateImage@@QAE@XZ @ 55 NONAME ; GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage(void) - ??_EGlxCommandHandlerRotate@@UAE@I@Z @ 56 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int) - ??_EGlxCommandHandlerCropImage@@UAE@I@Z @ 57 NONAME ; GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage(unsigned int) - ?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const - ??1GlxCommandHandlerComment@@UAE@XZ @ 59 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void) - ??1GlxCommandHandlerSend@@UAE@XZ @ 60 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void) - ?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 61 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const - ??0GlxCommandHandlerNewMedia@@QAE@XZ @ 62 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void) - ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int) - ?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 64 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList) const - ??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 65 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int) - ?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 66 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const - ?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 67 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &) - ?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 68 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 69 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 70 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const - ?executeCommand@GlxCommandHandlerRotateImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 71 NONAME ; void GlxCommandHandlerRotateImage::executeCommand(int, int, class QList) - ??_EGlxCommandHandlerRotateImage@@UAE@I@Z @ 72 NONAME ; GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage(unsigned int) - ?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 73 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 74 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short) - ?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 75 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>) - ??1GlxCommandHandlerDelete@@UAE@XZ @ 76 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void) - ?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 77 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const - ??0GlxCommandHandlerCropImage@@QAE@XZ @ 78 NONAME ; GlxCommandHandlerCropImage::GlxCommandHandlerCropImage(void) - ??0GlxCommandHandlerRotate@@QAE@XZ @ 79 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void) + ??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 1 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int) + ?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 2 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>) + ?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *) + ?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 4 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const + ??0GlxCommandHandlerRename@@QAE@XZ @ 5 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void) + ??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 6 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void) + ?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void) + ?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 8 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short) + ?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 9 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const + ??_EGlxCommandHandlerSend@@UAE@I@Z @ 10 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int) + ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *) + ?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 12 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int) + ?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 13 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const + ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 14 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int) + ?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 15 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &) + ?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 16 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const + ?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const + ?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const + ?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *) + ??0GlxCommandHandlerComment@@QAE@XZ @ 22 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void) + ?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 23 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const + ??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 24 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void) + ??_EGlxCommandHandlerEditImage@@UAE@I@Z @ 25 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(unsigned int) + ?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 26 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *) + ??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 27 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void) + ?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 28 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *) + ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *) + ?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 30 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const + ?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 31 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void) + ??_EGlxCommandHandlerComment@@UAE@I@Z @ 32 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int) + ??1GlxCommandHandlerRotate@@UAE@XZ @ 33 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void) + ?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 34 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const + ??1GlxCommandHandlerNewMedia@@UAE@XZ @ 35 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void) + ??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 36 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int) + ?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 37 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const + ??_EGlxCommandHandlerDelete@@UAE@I@Z @ 38 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int) + ?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 39 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const + ?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const + ?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 41 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject + ?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 42 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void) + ??0GlxCommandHandlerDelete@@QAE@XZ @ 43 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void) + ??1GlxCommandHandlerRename@@UAE@XZ @ 44 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void) + ??0GlxCommandHandlerSend@@QAE@XZ @ 45 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void) + ?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 46 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int) + ??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 47 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void) + ??_EGlxCommandHandlerRename@@UAE@I@Z @ 48 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int) + ?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 49 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const + ?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 50 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) + ?doHandleUserAction@GlxCommandHandlerEditImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 51 NONAME ; void GlxCommandHandlerEditImage::doHandleUserAction(class GlxMediaModel *, class QList) const + ??_EGlxCommandHandlerRotate@@UAE@I@Z @ 52 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int) + ?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@AAVQString@@@Z @ 53 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &, class QString &) + ?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 54 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const + ??1GlxCommandHandlerComment@@UAE@XZ @ 55 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void) + ??0GlxCommandHandlerEditImage@@QAE@XZ @ 56 NONAME ; GlxCommandHandlerEditImage::GlxCommandHandlerEditImage(void) + ??1GlxCommandHandlerSend@@UAE@XZ @ 57 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void) + ?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const + ??0GlxCommandHandlerNewMedia@@QAE@XZ @ 59 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void) + ?executeCommand@GlxCommandHandlerEditImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 60 NONAME ; void GlxCommandHandlerEditImage::executeCommand(int, int, class QList) + ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 61 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int) + ?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 62 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList) const + ??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 63 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int) + ?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 64 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const + ?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 65 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 66 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 67 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const + ?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 68 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const + ??1GlxCommandHandlerEditImage@@UAE@XZ @ 69 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(void) + ?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 70 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short) + ?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 71 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>) + ??1GlxCommandHandlerDelete@@UAE@XZ @ 72 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void) + ?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 73 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const + ??0GlxCommandHandlerRotate@@QAE@XZ @ 74 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void) diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h --- a/ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h Wed Aug 18 09:48:53 2010 +0300 @@ -19,6 +19,7 @@ #define GLXCOMMANDHANDLER_H #include +#include #ifdef BUILD_COMMANDHANDLERBASE #define GLX_COMMANDHANDLERBASE_EXPORT Q_DECL_EXPORT @@ -26,7 +27,6 @@ #define GLX_COMMANDHANDLERBASE_EXPORT Q_DECL_IMPORT #endif -class QModelIndex; class GLX_COMMANDHANDLERBASE_EXPORT GlxCommandHandler : public QObject { public: diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp --- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -487,7 +487,7 @@ } // (else) If error, assume confirmed anyway CleanupStack::PopAndDestroy(attributeContext); - HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*))); + HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)),HbMessageBox::Ok | HbMessageBox::Cancel); } else{ executeMpxCommand(true); @@ -499,7 +499,7 @@ QString qtText = ConfirmationTextL(true); if(!qtText.isEmpty ()) { - HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*))); + HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)),HbMessageBox::Ok |HbMessageBox::Cancel); } else{ executeMpxCommand(true); diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro --- a/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Wed Aug 18 09:48:53 2010 +0300 @@ -71,8 +71,8 @@ HEADERS += inc/glxcommandhandlerrename.h HEADERS += inc/glxcommondialogs.h HEADERS += inc/glxcommandhandlercomment.h -HEADERS += inc/glxcommandhandlercropimage.h -HEADERS += inc/glxcommandhandlerrotateimage.h +HEADERS += inc/glxcommandhandlereditimage.h + SOURCES += src/glxcommandhandlerdelete.cpp SOURCES += src/glxcommandhandleraddtocontainer.cpp @@ -83,8 +83,8 @@ SOURCES += src/glxcommandhandlerrename.cpp SOURCES += src/glxcommondialogs.cpp SOURCES += src/glxcommandhandlercomment.cpp -SOURCES += src/glxcommandhandlercropimage.cpp -SOURCES += src/glxcommandhandlerrotateimage.cpp +SOURCES += src/glxcommandhandlereditimage.cpp + DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h --- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h Wed Aug 18 09:48:53 2010 +0300 @@ -33,7 +33,6 @@ class QGraphicsGridLayout; class GlxAlbumModel; class QGraphicsItem; -class HbDialog; class QItemSelectionModel; class QEventLoop; @@ -51,9 +50,9 @@ void createNewMedia() const; private: - static TInt iSelectionCount; mutable bool mNewMediaAdded ; mutable CMPXCollectionPath* mTargetContainers ; + mutable QString mAlbumName; }; class GlxAlbumSelectionPopup: public QObject @@ -66,11 +65,9 @@ QModelIndexList GetSelectionList(GlxAlbumModel *model,bool *ok = 0) ; private slots: - void changeButtonText(); void dialogClosed( HbAction *action ) ; private : - HbDialog* mPopupDlg; QItemSelectionModel * mSelectionModel; //no owner ship QEventLoop *mEventLoop; bool mResult; diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h --- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef GLXCOMMANDHANDLERCROPIMAGE_H_ -#define GLXCOMMANDHANDLERCROPIMAGE_H_ - - -#include "glxmodelcommandhandler.h" -#include // for XQApplicationManager - -#ifdef BUILD_COMMONCOMMANDHANDLERS -#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT -#else -#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT -#endif - -//Forward Declaration -class XQAiwRequest; - -class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerCropImage : public GlxModelCommandHandler -{ - -public: - GlxCommandHandlerCropImage(); - ~GlxCommandHandlerCropImage(); - void doHandleUserAction(GlxMediaModel* model,QList indexList) const ; - -private: - mutable XQAiwRequest* mReq; - mutable XQApplicationManager mAppmgr; -}; - - -#endif /* GLXCOMMANDHANDLERCROPIMAGE_H_ */ diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,59 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef GlxCommandHandlerEditImage_H_ +#define GlxCommandHandlerEditImage_H_ + + +#include +#include // for XQApplicationManager + +#ifdef BUILD_COMMONCOMMANDHANDLERS +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT +#else +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT +#endif + +//Forward Declaration +class XQAiwRequest; + +class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerEditImage : public GlxModelCommandHandler +{ + Q_OBJECT + +public: + GlxCommandHandlerEditImage(); + ~GlxCommandHandlerEditImage(); + void executeCommand(int commandId,int collectionId, QList indexList = QList() ); + void doHandleUserAction(GlxMediaModel* model,QList indexList) const ; + +public slots: + void handleOk(const QVariant& result); + void handleError(int errorCode, const QString& errorMessage); + void storeItems(const QModelIndex &parent, int start, int end); + +private: + void clearMediaModel(); + +private: + XQAiwRequest* mReq; + XQApplicationManager mAppmgr; + GlxMediaModel* mMediaModel; +}; + + +#endif /* GlxCommandHandlerEditImage_H_ */ diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h --- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h Wed Aug 18 09:48:53 2010 +0300 @@ -36,7 +36,7 @@ GlxCommandHandlerNewMedia(); ~GlxCommandHandlerNewMedia(); - TInt ExecuteLD(TGlxMediaId& aNewMediaId); + TInt ExecuteLD(TGlxMediaId& aNewMediaId,QString& aTitle); private: QString CompletionTextL() const; diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h --- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef GLXCOMMANDHANDLERROTATEIMAGE_H_ -#define GLXCOMMANDHANDLERROTATEIMAGE_H_ - - -#include -#include // for XQApplicationManager - -#ifdef BUILD_COMMONCOMMANDHANDLERS -#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT -#else -#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT -#endif - -//Forward Declaration -class XQAiwRequest; - -class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerRotateImage : public GlxModelCommandHandler -{ - -public: - GlxCommandHandlerRotateImage(); - ~GlxCommandHandlerRotateImage(); - void executeCommand(int commandId,int collectionId, QList indexList = QList() ); - void doHandleUserAction(GlxMediaModel* model,QList indexList) const ; - -private: - XQAiwRequest* mReq; - XQApplicationManager mAppmgr; -}; - - -#endif /* GLXCOMMANDHANDLERROTATEIMAGE_H_ */ diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -35,7 +35,8 @@ #include #include #include -#include +#include + #include #include @@ -47,14 +48,10 @@ #endif -TInt GlxCommandHandlerAddToContainer::iSelectionCount = 0; - const TInt KSelectionPopupListHierarchy = 5; -const TInt KListPrefferedHeight = 400; GlxAlbumSelectionPopup::GlxAlbumSelectionPopup() - : mPopupDlg( 0 ), - mSelectionModel( 0 ), + : mSelectionModel( 0 ), mEventLoop( 0 ), mResult( false ) { @@ -66,71 +63,44 @@ QModelIndexList GlxAlbumSelectionPopup::GetSelectionList(GlxAlbumModel *model, bool *ok) { - // Create a popup - HbDialog popup; + HbSelectionDialog *dlg = new HbSelectionDialog; + dlg->setHeadingWidget(new HbLabel(GLX_ALBUM_SELECTION_TITLE)); + dlg->setSelectionMode(HbAbstractItemView::SingleSelection); + dlg->setModel(model); + dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->clearActions(); + HbAction *action; + action= new HbAction(GLX_BUTTON_NEW); + action->setObjectName( "ch_new_album_button" ); + dlg->addAction(action); + action= new HbAction(GLX_BUTTON_CANCEL); + action->setObjectName( "ch_cancel_album_button" ); + dlg->addAction(action); + dlg->open(this, SLOT(dialogClosed(HbAction*))); + QEventLoop eventLoop; mEventLoop = &eventLoop; - - popup.setPreferredHeight( KListPrefferedHeight ); - // Set dismiss policy that determines what tap events will cause the popup - // to be dismissed - popup.setDismissPolicy(HbDialog::NoDismiss); - - // Set timeout to zero to wait user to either click Ok or Cancel - popup.setTimeout(HbDialog::NoTimeout); - popup.setHeadingWidget( new HbLabel("Select Album") ); - - mPopupDlg = &popup; - HbListView *listview = new HbListView(); - listview->setSelectionMode(HbAbstractItemView::MultiSelection); - listview->setModel(model); - mSelectionModel = listview->selectionModel() ; - connect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) ); - - HbAction *primary = new HbAction( "New" ); - primary->setObjectName( "Cmd New" ); - popup.addAction( primary ) ; - - HbAction *secondary = new HbAction( GLX_BUTTON_CANCEL ); - secondary->setObjectName( "Cmd Cancel" ); - popup.addAction( secondary ); - - popup.setContentWidget( listview ); //ownership transfer - listview->show(); - - popup.open( this, SLOT( dialogClosed( HbAction* ) ) ); + eventLoop.exec( ); mEventLoop = 0 ; if ( ok ) { *ok = mResult ; } - QModelIndexList selectedIndexes = mSelectionModel->selectedIndexes(); - disconnect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) ); - delete primary; - delete secondary; + QModelIndexList selectedIndexes = dlg->selectedModelIndexes(); return selectedIndexes; } -void GlxAlbumSelectionPopup::changeButtonText() -{ - if ( mSelectionModel->selectedIndexes().count() ) { - mPopupDlg->actions().first()->setText( GLX_BUTTON_OK ); - } - else { - mPopupDlg->actions().first()->setText("New"); - } -} - void GlxAlbumSelectionPopup::dialogClosed(HbAction *action) { - HbDialog *dlg = static_cast(sender()); - if( action == dlg->actions().first() ) { - mResult = true ; + HbSelectionDialog *dlg = (HbSelectionDialog*)(sender()); + + if( action == dlg->actions().at(1) ) { + mResult = false ; } else { - mResult = false ; + mResult = true ; } if ( mEventLoop && mEventLoop->isRunning( ) ) { mEventLoop->exit( 0 ); @@ -138,7 +108,7 @@ } GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer() : - mNewMediaAdded(false) + mNewMediaAdded(false),mAlbumName(QString()) { OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_GLXCOMMANDHANDLERADDTOCONTAINER_ENTRY ); mTargetContainers = NULL; @@ -156,11 +126,11 @@ MGlxMediaList& aMediaList, TBool& /*aConsume*/) const { OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL_ENTRY ); - iSelectionCount = 0; CMPXCommand* command = NULL; - + mAlbumName.clear(); if(aCommandId == EGlxCmdAddToFav) { + mAlbumName = GLX_ALBUM_FAV; CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL(); CleanupStack::PushL(targetCollection); // The target collection has to be appeneded with the albums plugin id @@ -235,6 +205,10 @@ delete mTargetContainers; mTargetContainers = NULL; mTargetContainers = targetContainers; + + const TGlxMedia& item = targetMediaList->Item(targetMediaList->SelectedItemIndex(0)); + const TDesC& title = item.Title(); + mAlbumName = QString::fromUtf16(title.Ptr(),title.Length()); } command = TGlxCommandFactory::AddToContainerCommandLC(*sourceItems, @@ -262,14 +236,14 @@ GlxCommandHandlerNewMedia* commandHandlerNewMedia = new GlxCommandHandlerNewMedia(); TGlxMediaId newMediaId; - TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId); + QString newTitle; + TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle); while (error == KErrAlreadyExists) { - HbMessageBox::warning("Name Already Exist!!!", new HbLabel( - "New Album")); + HbMessageBox::warning(GLX_NAME_ALREADY_EXIST); error = KErrNone; - error = commandHandlerNewMedia->ExecuteLD(newMediaId); + error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle); } if (error == KErrNone) @@ -282,6 +256,7 @@ delete mTargetContainers; mTargetContainers = NULL; mTargetContainers = path; + mAlbumName = newTitle; mNewMediaAdded = true; } OstTraceFunctionExit0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATENEWMEDIA_EXIT ); @@ -289,10 +264,13 @@ QString GlxCommandHandlerAddToContainer::CompletionTextL() const { - return QString(); + if(!mAlbumName.isNull()){ + return (hbTrId(GLX_IMAGES_ADDED).arg(mAlbumName)); + } + return QString(); } QString GlxCommandHandlerAddToContainer::ProgressTextL() const { - return QString("Adding album..."); + return GLX_ADDING_IMAGES; } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#include "glxcommandhandlercropimage.h" - -#include -#include -#include -#include -#include -#include -#include - - -GlxCommandHandlerCropImage::GlxCommandHandlerCropImage() : mReq(NULL) - { - //Nothing to do here for now - } - -GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage() - { - delete mReq; - mReq = NULL; - } - -void GlxCommandHandlerCropImage::doHandleUserAction(GlxMediaModel* model, - QList /*indexList*/) const - { - const QString interface = QLatin1String("com.nokia.symbian.imageeditor"); - const QString operation = QLatin1String("view(QString,int)"); - const QString service = QLatin1String("PhotoEditor"); - - if(mReq == NULL) - { - //Connect to service provider - mReq = mAppmgr.create(service, interface, operation, true); - mReq->setEmbedded(true); - mReq->setSynchronous(true); - } - - if(mReq == NULL) - { - qDebug("QtSamplePhotos::launchPhotoEditor request not Created"); - return; - } - - //Get the file path for the item selected - QString imagePath = (model->data(model->index(model->data(model->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); - - QList args; - args << imagePath; - args << EEditorHighwayFreeCrop; - mReq->setArguments(args); - - // Send the request - bool res = mReq->send(); - if (!res) - { - // Request failed. - qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send"); - } - - } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -62,7 +62,7 @@ QString GlxCommandHandlerDelete::ProgressTextL() const { - return QString("Deleting..."); + return (GLX_DELETE_PROGRESS); } QString GlxCommandHandlerDelete::ConfirmationTextL(bool multiSelection ) const @@ -70,7 +70,7 @@ QString retString; if(multiSelection) { - retString = QString("Delete selected images"); + retString = GLX_MULTIPLE_DELETE; } else { diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,156 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Handles command related to mediaeditors in fullscreen +* for image Rotate, Crop & Set as Wallpaper +* +*/ + + + +#include + + +#ifdef FF_IMAGE_EDITOR + #include +#endif //FF_IMAGE_EDITOR + +#include "glxcommandhandlereditimage.h" +#include +#include +#include +#include +#include + +GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() : + mReq(NULL), mMediaModel(NULL) + { + //Nothing to do here + } + +GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage() + { + delete mReq; + mReq = NULL; + clearMediaModel(); + } + +void GlxCommandHandlerEditImage::executeCommand(int commandId, + int collectionId, QList /*indexList*/) + { + const QString service = QLatin1String("PhotoEditor"); + const QString interface = QLatin1String("com.nokia.symbian.imageeditor"); + const QString operation = QLatin1String("view(QString,int)"); + + //Connect to service provider + if(mReq == NULL) + { + mReq = mAppmgr.create(service, interface, operation, true); + mReq->setEmbedded(true); + mReq->setSynchronous(false); + } + + if(mReq == NULL) + { + return; + } + + connect(mReq, SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&))); + connect(mReq, SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&))); + + GlxModelParm modelParm(collectionId, 0); + clearMediaModel(); + mMediaModel = new GlxMediaModel(modelParm); + if (!mMediaModel) + { + return; + } + + connect( mMediaModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( storeItems( QModelIndex, int, int ) ) ); + + //Get the file path for the item selected + QString imagePath = (mMediaModel->data( + mMediaModel->index(mMediaModel->data(mMediaModel->index(0, 0), + GlxFocusIndexRole).value (), 0), GlxUriRole)).value< + QString> (); + //delete mediaModel; + + QList args; + args << imagePath; +#ifdef FF_IMAGE_EDITOR + if(EGlxCmdSetWallpaper == commandId) + { + args << EEditorHighwayWallpaperCrop; + } + else if(EGlxCmdRotateImgCrop == commandId) + { + args << EEditorHighwayFreeCrop; + } + else if(EGlxCmdRotateImgCW == commandId) + { + args << EEditorHighwayRotateCW; + } + else // if(EGlxCmdRotateImgCCW == aCommandId) + + { + args << EEditorHighwayRotateCCW; + } + mReq->setArguments(args); +#endif //FF_IMAGE_EDITOR + // Send the request + bool res = mReq->send(); + if (!res) + { + // Request failed. + } + } + +void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/, + QList /*indexList*/) const + { + //Dummy, to keepup with compiler error + } + +void GlxCommandHandlerEditImage::handleOk(const QVariant& result) + { + //Nothing to do for - Needs further implementation to refine setting + //default image in fullscreen view + } + +void GlxCommandHandlerEditImage::handleError(int errorCode, + const QString& errorMessage) + { + clearMediaModel(); + } + +void GlxCommandHandlerEditImage::storeItems(const QModelIndex &parent, + int aStartRow, int aEndRow) + { + //This implementation assumes that we will be getting only one new + //image creation notification. Needs refined implementation + if (mMediaModel) + { + QModelIndex modelIndex = mMediaModel->index(aStartRow, 0); + mMediaModel->setData(modelIndex, modelIndex.row(), GlxFocusIndexRole); + } + } + +void GlxCommandHandlerEditImage::clearMediaModel() + { + if (mMediaModel) + { + disconnect(mMediaModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(storeItems(QModelIndex,int,int))); + delete mMediaModel; + mMediaModel = NULL; + } + } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -95,7 +95,7 @@ } -TInt GlxCommandHandlerNewMedia::ExecuteLD(TGlxMediaId& aNewMediaId) +TInt GlxCommandHandlerNewMedia::ExecuteLD(TGlxMediaId& aNewMediaId,QString& aTitle) { OstTraceFunctionEntry0( GLXCOMMANDHANDLERNEWMEDIA_EXECUTELD_ENTRY ); GlxMpxCommandHandler::executeCommand(EGlxCmdAddMedia, KGlxCollectionPluginAlbumsImplementationUid); @@ -108,6 +108,7 @@ if (iNewMediaCreationError == KErrNone) { aNewMediaId = iNewMediaId; + aTitle = QString::fromUtf16(iNewMediaItemTitle->Des().Ptr(),iNewMediaItemTitle->Length()); } } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include "glxlocalisationstrings.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxcommandhandlerremovefromTraces.h" @@ -74,5 +75,5 @@ QString GlxCommandHandlerRemoveFrom::ProgressTextL() const { - return QString("Removing..."); + return GLX_REMOVE_IMAGES; } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -#include -#include -#include "glxcommandhandlerrotateimage.h" -#include -#include -#include -#include -#include - -GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage() : mReq(NULL) - { - //Nothing to do here - } - -GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage() - { - delete mReq; - mReq = NULL; - } - -void GlxCommandHandlerRotateImage::executeCommand(int commandId,int collectionId, QList /*indexList*/) -//void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* model,QList indexList) const - { - const QString service = QLatin1String("PhotoEditor"); - const QString interface = QLatin1String("com.nokia.symbian.imageeditor"); - const QString operation = QLatin1String("view(QString,int)"); - - //Connect to service provider - if(mReq == NULL) - { - mReq = mAppmgr.create(service, interface, operation, true); - mReq->setEmbedded(true); - mReq->setSynchronous(true); - } - - if(mReq == NULL) - { - return; - } - - GlxModelParm modelParm (collectionId, 0); - GlxMediaModel* mediaModel = new GlxMediaModel (modelParm); - - //Get the file path for the item selected - QString imagePath = (mediaModel->data(mediaModel->index(mediaModel->data(mediaModel->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); - delete mediaModel; - - QList args; - args << imagePath; - if(EGlxCmdRotateImgCW == commandId) - { - args << EEditorHighwayRotateCW; - } - else // if(EGlxCmdRotateImgCCW == aCommandId) - { - args << EEditorHighwayRotateCCW; - } - mReq->setArguments(args); - - // Send the request - bool res = mReq->send(); - if (!res) - { - // Request failed. - qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send"); - } - } - -void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* /*model*/,QList /*indexList*/) const - { - //Dummy, to keepup with compiler errore - } diff -r f291796e213d -r fb37077c270f ui/commandhandlers/eabi/glxcommoncommandhandlersu.def --- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Wed Aug 18 09:48:53 2010 +0300 @@ -40,80 +40,71 @@ _ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 39 NONAME DATA 16 _ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 40 NONAME _ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 41 NONAME - _ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 42 NONAME + _ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaIdR7QString @ 42 NONAME _ZN25GlxCommandHandlerNewMediaC1Ev @ 43 NONAME _ZN25GlxCommandHandlerNewMediaC2Ev @ 44 NONAME _ZN25GlxCommandHandlerNewMediaD0Ev @ 45 NONAME _ZN25GlxCommandHandlerNewMediaD1Ev @ 46 NONAME _ZN25GlxCommandHandlerNewMediaD2Ev @ 47 NONAME - _ZN26GlxCommandHandlerCropImageC1Ev @ 48 NONAME - _ZN26GlxCommandHandlerCropImageC2Ev @ 49 NONAME - _ZN26GlxCommandHandlerCropImageD0Ev @ 50 NONAME - _ZN26GlxCommandHandlerCropImageD1Ev @ 51 NONAME - _ZN26GlxCommandHandlerCropImageD2Ev @ 52 NONAME - _ZN27GlxCommandHandlerRemoveFromC1Ev @ 53 NONAME - _ZN27GlxCommandHandlerRemoveFromC2Ev @ 54 NONAME - _ZN27GlxCommandHandlerRemoveFromD0Ev @ 55 NONAME - _ZN27GlxCommandHandlerRemoveFromD1Ev @ 56 NONAME - _ZN27GlxCommandHandlerRemoveFromD2Ev @ 57 NONAME - _ZN28GlxCommandHandlerRotateImage14executeCommandEii5QListI11QModelIndexE @ 58 NONAME - _ZN28GlxCommandHandlerRotateImageC1Ev @ 59 NONAME - _ZN28GlxCommandHandlerRotateImageC2Ev @ 60 NONAME - _ZN28GlxCommandHandlerRotateImageD0Ev @ 61 NONAME - _ZN28GlxCommandHandlerRotateImageD1Ev @ 62 NONAME - _ZN28GlxCommandHandlerRotateImageD2Ev @ 63 NONAME - _ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 64 NONAME DATA 4 - _ZN31GlxCommandHandlerAddToContainerC1Ev @ 65 NONAME - _ZN31GlxCommandHandlerAddToContainerC2Ev @ 66 NONAME - _ZN31GlxCommandHandlerAddToContainerD0Ev @ 67 NONAME - _ZN31GlxCommandHandlerAddToContainerD1Ev @ 68 NONAME - _ZN31GlxCommandHandlerAddToContainerD2Ev @ 69 NONAME - _ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 70 NONAME - _ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 71 NONAME - _ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME - _ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 73 NONAME - _ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 74 NONAME - _ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 75 NONAME - _ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 76 NONAME - _ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 77 NONAME - _ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME - _ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 79 NONAME - _ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 80 NONAME - _ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 81 NONAME - _ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 82 NONAME - _ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 83 NONAME - _ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 84 NONAME - _ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 85 NONAME - _ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 86 NONAME - _ZNK26GlxCommandHandlerCropImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 87 NONAME - _ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 88 NONAME - _ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 89 NONAME - _ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 90 NONAME - _ZNK28GlxCommandHandlerRotateImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 91 NONAME - _ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 92 NONAME - _ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 93 NONAME - _ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 94 NONAME - _ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 95 NONAME - _ZTI21GlxCommandHandlerSend @ 96 NONAME - _ZTI23GlxCommandHandlerDelete @ 97 NONAME - _ZTI23GlxCommandHandlerRename @ 98 NONAME - _ZTI23GlxCommandHandlerRotate @ 99 NONAME - _ZTI24GlxCommandHandlerComment @ 100 NONAME - _ZTI25GlxCommandHandlerNewMedia @ 101 NONAME - _ZTI26GlxCommandHandlerCropImage @ 102 NONAME - _ZTI27GlxCommandHandlerRemoveFrom @ 103 NONAME - _ZTI28GlxCommandHandlerRotateImage @ 104 NONAME - _ZTI31GlxCommandHandlerAddToContainer @ 105 NONAME - _ZTV21GlxCommandHandlerSend @ 106 NONAME - _ZTV23GlxCommandHandlerDelete @ 107 NONAME - _ZTV23GlxCommandHandlerRename @ 108 NONAME - _ZTV23GlxCommandHandlerRotate @ 109 NONAME - _ZTV24GlxCommandHandlerComment @ 110 NONAME - _ZTV25GlxCommandHandlerNewMedia @ 111 NONAME - _ZTV26GlxCommandHandlerCropImage @ 112 NONAME - _ZTV27GlxCommandHandlerRemoveFrom @ 113 NONAME - _ZTV28GlxCommandHandlerRotateImage @ 114 NONAME - _ZTV31GlxCommandHandlerAddToContainer @ 115 NONAME - _ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 116 NONAME - _ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 117 NONAME + _ZN26GlxCommandHandlerEditImage14executeCommandEii5QListI11QModelIndexE @ 48 NONAME + _ZN26GlxCommandHandlerEditImageC1Ev @ 49 NONAME + _ZN26GlxCommandHandlerEditImageC2Ev @ 50 NONAME + _ZN26GlxCommandHandlerEditImageD0Ev @ 51 NONAME + _ZN26GlxCommandHandlerEditImageD1Ev @ 52 NONAME + _ZN26GlxCommandHandlerEditImageD2Ev @ 53 NONAME + _ZN27GlxCommandHandlerRemoveFromC1Ev @ 54 NONAME + _ZN27GlxCommandHandlerRemoveFromC2Ev @ 55 NONAME + _ZN27GlxCommandHandlerRemoveFromD0Ev @ 56 NONAME + _ZN27GlxCommandHandlerRemoveFromD1Ev @ 57 NONAME + _ZN27GlxCommandHandlerRemoveFromD2Ev @ 58 NONAME + _ZN31GlxCommandHandlerAddToContainerC1Ev @ 59 NONAME + _ZN31GlxCommandHandlerAddToContainerC2Ev @ 60 NONAME + _ZN31GlxCommandHandlerAddToContainerD0Ev @ 61 NONAME + _ZN31GlxCommandHandlerAddToContainerD1Ev @ 62 NONAME + _ZN31GlxCommandHandlerAddToContainerD2Ev @ 63 NONAME + _ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 64 NONAME + _ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 65 NONAME + _ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 66 NONAME + _ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 67 NONAME + _ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 68 NONAME + _ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME + _ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 70 NONAME + _ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 71 NONAME + _ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME + _ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 73 NONAME + _ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 74 NONAME + _ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 75 NONAME + _ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 76 NONAME + _ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 77 NONAME + _ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME + _ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 79 NONAME + _ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 80 NONAME + _ZNK26GlxCommandHandlerEditImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 81 NONAME + _ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 82 NONAME + _ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 83 NONAME + _ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 84 NONAME + _ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 85 NONAME + _ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 86 NONAME + _ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 87 NONAME + _ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 88 NONAME + _ZTI21GlxCommandHandlerSend @ 89 NONAME + _ZTI23GlxCommandHandlerDelete @ 90 NONAME + _ZTI23GlxCommandHandlerRename @ 91 NONAME + _ZTI23GlxCommandHandlerRotate @ 92 NONAME + _ZTI24GlxCommandHandlerComment @ 93 NONAME + _ZTI25GlxCommandHandlerNewMedia @ 94 NONAME + _ZTI26GlxCommandHandlerEditImage @ 95 NONAME + _ZTI27GlxCommandHandlerRemoveFrom @ 96 NONAME + _ZTI31GlxCommandHandlerAddToContainer @ 97 NONAME + _ZTV21GlxCommandHandlerSend @ 98 NONAME + _ZTV23GlxCommandHandlerDelete @ 99 NONAME + _ZTV23GlxCommandHandlerRename @ 100 NONAME + _ZTV23GlxCommandHandlerRotate @ 101 NONAME + _ZTV24GlxCommandHandlerComment @ 102 NONAME + _ZTV25GlxCommandHandlerNewMedia @ 103 NONAME + _ZTV26GlxCommandHandlerEditImage @ 104 NONAME + _ZTV27GlxCommandHandlerRemoveFrom @ 105 NONAME + _ZTV31GlxCommandHandlerAddToContainer @ 106 NONAME + _ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 107 NONAME + _ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 108 NONAME diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/bwins/detailsdescriptioneditu.def --- a/ui/detailscustomwidget/bwins/detailsdescriptioneditu.def Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -EXPORTS - ?qt_metacall@GlxDetailsDescriptionEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1 NONAME ; int GlxDetailsDescriptionEdit::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacast@GlxDetailsDescriptionEdit@@UAEPAXPBD@Z @ 2 NONAME ; void * GlxDetailsDescriptionEdit::qt_metacast(char const *) - ??1GlxDetailsDescriptionEdit@@UAE@XZ @ 3 NONAME ; GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit(void) - ?staticMetaObject@GlxDetailsDescriptionEdit@@2UQMetaObject@@B @ 4 NONAME ; struct QMetaObject const GlxDetailsDescriptionEdit::staticMetaObject - ??0GlxDetailsDescriptionEdit@@QAE@PAVQGraphicsItem@@@Z @ 5 NONAME ; GlxDetailsDescriptionEdit::GlxDetailsDescriptionEdit(class QGraphicsItem *) - ?tr@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString GlxDetailsDescriptionEdit::tr(char const *, char const *, int) - ??_EGlxDetailsDescriptionEdit@@UAE@I@Z @ 7 NONAME ; GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit(unsigned int) - ?labelPressed@GlxDetailsDescriptionEdit@@IAEXXZ @ 8 NONAME ; void GlxDetailsDescriptionEdit::labelPressed(void) - ?metaObject@GlxDetailsDescriptionEdit@@UBEPBUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const * GlxDetailsDescriptionEdit::metaObject(void) const - ?focusInEvent@GlxDetailsDescriptionEdit@@MAEXPAVQFocusEvent@@@Z @ 10 NONAME ; void GlxDetailsDescriptionEdit::focusInEvent(class QFocusEvent *) - ?trUtf8@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString GlxDetailsDescriptionEdit::trUtf8(char const *, char const *, int) - ?focusOutEvent@GlxDetailsDescriptionEdit@@MAEXPAVQFocusEvent@@@Z @ 12 NONAME ; void GlxDetailsDescriptionEdit::focusOutEvent(class QFocusEvent *) - ?tr@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxDetailsDescriptionEdit::tr(char const *, char const *) - ?getStaticMetaObject@GlxDetailsDescriptionEdit@@SAABUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const & GlxDetailsDescriptionEdit::getStaticMetaObject(void) - ?setItemText@GlxDetailsDescriptionEdit@@QAEXABVQString@@@Z @ 15 NONAME ; void GlxDetailsDescriptionEdit::setItemText(class QString const &) - ?trUtf8@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString GlxDetailsDescriptionEdit::trUtf8(char const *, char const *) - diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/bwins/detailsnamelabelu.def --- a/ui/detailscustomwidget/bwins/detailsnamelabelu.def Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -EXPORTS - ??_EGlxDetailsNameLabel@@UAE@I@Z @ 1 NONAME ; GlxDetailsNameLabel::~GlxDetailsNameLabel(unsigned int) - ??1GlxDetailsNameLabel@@UAE@XZ @ 2 NONAME ; GlxDetailsNameLabel::~GlxDetailsNameLabel(void) - ?tr@GlxDetailsNameLabel@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString GlxDetailsNameLabel::tr(char const *, char const *) - ?mousePressEvent@GlxDetailsNameLabel@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4 NONAME ; void GlxDetailsNameLabel::mousePressEvent(class QGraphicsSceneMouseEvent *) - ?metaObject@GlxDetailsNameLabel@@UBEPBUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const * GlxDetailsNameLabel::metaObject(void) const - ?getStaticMetaObject@GlxDetailsNameLabel@@SAABUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const & GlxDetailsNameLabel::getStaticMetaObject(void) - ?staticMetaObject@GlxDetailsNameLabel@@2UQMetaObject@@B @ 7 NONAME ; struct QMetaObject const GlxDetailsNameLabel::staticMetaObject - ?qt_metacall@GlxDetailsNameLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8 NONAME ; int GlxDetailsNameLabel::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0GlxDetailsNameLabel@@QAE@PAVQGraphicsItem@@@Z @ 9 NONAME ; GlxDetailsNameLabel::GlxDetailsNameLabel(class QGraphicsItem *) - ?labelPressed@GlxDetailsNameLabel@@IAEXXZ @ 10 NONAME ; void GlxDetailsNameLabel::labelPressed(void) - ?setItemText@GlxDetailsNameLabel@@QAEXABVQString@@@Z @ 11 NONAME ; void GlxDetailsNameLabel::setItemText(class QString const &) - ?mouseReleaseEvent@GlxDetailsNameLabel@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 12 NONAME ; void GlxDetailsNameLabel::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) - ?trUtf8@GlxDetailsNameLabel@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxDetailsNameLabel::trUtf8(char const *, char const *, int) - ?trUtf8@GlxDetailsNameLabel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxDetailsNameLabel::trUtf8(char const *, char const *) - ?tr@GlxDetailsNameLabel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxDetailsNameLabel::tr(char const *, char const *, int) - ?qt_metacast@GlxDetailsNameLabel@@UAEPAXPBD@Z @ 16 NONAME ; void * GlxDetailsNameLabel::qt_metacast(char const *) - diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,34 @@ +EXPORTS + ?focusInEvent@GlxDetailsTextEdit@@MAEXPAVQFocusEvent@@@Z @ 1 NONAME ; void GlxDetailsTextEdit::focusInEvent(class QFocusEvent *) + ??1GlxDetailsIcon@@UAE@XZ @ 2 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(void) + ??1GlxDetailsTextEdit@@UAE@XZ @ 3 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(void) + ?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *, int) + ?labelPressed@GlxDetailsTextEdit@@IAEXXZ @ 5 NONAME ; void GlxDetailsTextEdit::labelPressed(void) + ?qt_metacall@GlxDetailsIcon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6 NONAME ; int GlxDetailsIcon::qt_metacall(enum QMetaObject::Call, int, void * *) + ?metaObject@GlxDetailsIcon@@UBEPBUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const * GlxDetailsIcon::metaObject(void) const + ?tr@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 8 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *, int) + ?staticMetaObject@GlxDetailsIcon@@2UQMetaObject@@B @ 9 NONAME ; struct QMetaObject const GlxDetailsIcon::staticMetaObject + ??_EGlxDetailsTextEdit@@UAE@I@Z @ 10 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(unsigned int) + ?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *) + ?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *) + ?getStaticMetaObject@GlxDetailsTextEdit@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & GlxDetailsTextEdit::getStaticMetaObject(void) + ?updateFavourites@GlxDetailsIcon@@IAEXXZ @ 14 NONAME ; void GlxDetailsIcon::updateFavourites(void) + ?mousePressEvent@GlxDetailsIcon@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 15 NONAME ; void GlxDetailsIcon::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?staticMetaObject@GlxDetailsTextEdit@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const GlxDetailsTextEdit::staticMetaObject + ?setItemText@GlxDetailsTextEdit@@QAEXABVQString@@@Z @ 17 NONAME ; void GlxDetailsTextEdit::setItemText(class QString const &) + ?tr@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *) + ?getStaticMetaObject@GlxDetailsIcon@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & GlxDetailsIcon::getStaticMetaObject(void) + ?qt_metacall@GlxDetailsTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 20 NONAME ; int GlxDetailsTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 21 NONAME ; class QString GlxDetailsTextEdit::trUtf8(char const *, char const *, int) + ?mouseReleaseEvent@GlxDetailsIcon@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 22 NONAME ; void GlxDetailsIcon::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?qt_metacast@GlxDetailsIcon@@UAEPAXPBD@Z @ 23 NONAME ; void * GlxDetailsIcon::qt_metacast(char const *) + ??_EGlxDetailsIcon@@UAE@I@Z @ 24 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(unsigned int) + ?trUtf8@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString GlxDetailsTextEdit::trUtf8(char const *, char const *) + ?metaObject@GlxDetailsTextEdit@@UBEPBUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const * GlxDetailsTextEdit::metaObject(void) const + ?qt_metacast@GlxDetailsTextEdit@@UAEPAXPBD@Z @ 27 NONAME ; void * GlxDetailsTextEdit::qt_metacast(char const *) + ?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 28 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *, int) + ??0GlxDetailsIcon@@QAE@PAVQGraphicsItem@@@Z @ 29 NONAME ; GlxDetailsIcon::GlxDetailsIcon(class QGraphicsItem *) + ?focusOutEvent@GlxDetailsTextEdit@@MAEXPAVQFocusEvent@@@Z @ 30 NONAME ; void GlxDetailsTextEdit::focusOutEvent(class QFocusEvent *) + ??0GlxDetailsTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 31 NONAME ; GlxDetailsTextEdit::GlxDetailsTextEdit(class QGraphicsItem *) + ?setItemIcon@GlxDetailsIcon@@QAEXABVHbIcon@@@Z @ 32 NONAME ; void GlxDetailsIcon::setItemIcon(class HbIcon const &) + diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomplugin/detailscustomplugin.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomplugin/detailscustomplugin.pro Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,68 @@ +#/* +#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +#* All rights reserved. +#* This component and the accompanying materials are made available +#* under the terms of "Eclipse Public License v1.0" +#* which accompanies this distribution, and is available +#* at the URL "http://www.eclipse.org/legal/epl-v10.html". +#* +#* Initial Contributors: +#* Nokia Corporation - initial contribution. +#* +#* Contributors: +#* +#* Description: +#* +#*/ + +TEMPLATE = lib +TARGET = glxdetailscustomplugin + +win32{ +CONFIG(release, debug|release){ + TARGET = glxdetailscustomplugin + } else { + TARGET = glxdetailscustomplugind + } +} + +CONFIG += hb plugin + +win32{ +CONFIG(release, debug|release){ + DESTDIR = ../release # for easy plugin loading + LIBS += -L../release -lglxdetailscustomwidgets + } else { + DESTDIR = ../debug # for easy plugin loading + LIBS += -L../debug -lglxdetailscustomwidgetsd + } +} + +SOURCES += \ + main.cpp + +INCLUDEPATH += \ + ../detailscustomwidgets + +symbian: { + TARGET.UID3 = 0x200071B7 + TARGET.EPOCALLOWDLLDATA=1 + TARGET.CAPABILITY = CAP_GENERAL_DLL + MMP_RULES += SMPSAFE + + + LIBS += \ + -lglxdetailscustomwidgets.dll + + pluginstub.sources = glxdetailscustomplugin.dll + pluginstub.path = /resource/plugins + DEPLOYMENT += pluginstub + DESTDIR = $$HB_PLUGINS_DIR +} + +!local { + target.path = $$HB_PLUGINS_DIR + INSTALLS += target +} + +# End of file --Don't remove this. diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomplugin/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomplugin/main.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Details custom widgets plugin + * + */ + +#include "glxdetailstextedit.h" +#include "glxdetailsicon.h" + +#include +#include + +class GlxDetailsCustomPlugin : public HbDocumentLoaderPlugin +{ +public: + QObject *createObject(const QString& type, const QString &name); + QList supportedObjects(); +}; +Q_EXPORT_PLUGIN(GlxDetailsCustomPlugin) + +QObject *GlxDetailsCustomPlugin::createObject(const QString& type, const QString &name ) +{ + + if( type == GlxDetailsTextEdit::staticMetaObject.className() ) { + QObject *object = new GlxDetailsTextEdit(); + object->setObjectName(name); + return object; + } + + if( type == GlxDetailsIcon::staticMetaObject.className() ) { + QObject *object = new GlxDetailsIcon(); + object->setObjectName(name); + return object; + } + + return 0; +} + +QList GlxDetailsCustomPlugin::supportedObjects() +{ + QList result; + result.append( &GlxDetailsTextEdit::staticMetaObject ); + result.append( &GlxDetailsIcon::staticMetaObject ); + return result; +} + +// end of file + diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomwidget.pro --- a/ui/detailscustomwidget/detailscustomwidget.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/detailscustomwidget/detailscustomwidget.pro Wed Aug 18 09:48:53 2010 +0300 @@ -17,8 +17,7 @@ TEMPLATE = subdirs -SUBDIRS += detailsnamelabel -SUBDIRS += detailsnamelabelplugin -SUBDIRS += detailsdescriptionedit -SUBDIRS += detailsdescriptioneditplugin + +SUBDIRS += detailscustomwidgets +SUBDIRS += detailscustomplugin CONFIG += ordered \ No newline at end of file diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomwidgets/detailscustomwidgets.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomwidgets/detailscustomwidgets.pro Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,65 @@ +#/* +#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +#* All rights reserved. +#* This component and the accompanying materials are made available +#* under the terms of "Eclipse Public License v1.0" +#* which accompanies this distribution, and is available +#* at the URL "http://www.eclipse.org/legal/epl-v10.html". +#* +#* Initial Contributors: +#* Nokia Corporation - initial contribution. +#* +#* Contributors: +#* +#* Description: +#* +#*/ + +TEMPLATE = lib +TARGET = glxdetailscustomwidgets +CONFIG += hb +DEFINES += BUILD_DETAILSCUSTOM + +win32{ +CONFIG(release, debug|release){ + TARGET = glxdetailscustomwidgets + DESTDIR = ../release # for easy plugin loading +}else{ + TARGET = glxdetailscustomwidgetsd + DESTDIR = ../debug # for easy plugin loading + } +} + +DEPENDPATH += ./inc \ + ./src + +INCLUDEPATH += ./inc + +SOURCES += \ + glxdetailsicon.cpp \ + glxdetailstextedit.cpp + +HEADERS += \ + glxdetailsicon.h \ + glxdetailstextedit.h + + +symbian { + TARGET.UID3 = 0x2000A7BC + TARGET.EPOCALLOWDLLDATA = 1 + TARGET.CAPABILITY = CAP_GENERAL_DLL + MMP_RULES += SMPSAFE + + LIBS += -lbafl +} + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxdetailscustomwidgets.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxdetailscustomwidgets.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + +# End of file --Don't remove this diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,75 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + + +#include +#include +#include "glxdetailsicon.h" +#include +#include + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//mousePressEvent +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsIcon::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_UNUSED(event) +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//clearCurrentModel +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsIcon::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) +{ + Q_UNUSED(event) + emit updateFavourites(); +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//GlxDetailsIcon +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsIcon::GlxDetailsIcon(QGraphicsItem *parent) : HbWidget(parent) +{ + mFavIcon = new HbIconItem(this); + //add the layout to the icon or else the icon is not showed. + HbStackedLayout *stackedLayout = new HbStackedLayout; + stackedLayout->addItem( mFavIcon ); + setLayout( stackedLayout ); + + mFavIcon->setOpacity(0.7); + HbFrameItem* frame = new HbFrameItem(this); + frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); + frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); + frame->graphicsItem()->setOpacity(0.1); + setBackgroundItem(frame->graphicsItem(),-1); +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//~GlxDetailsIcon +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsIcon::~GlxDetailsIcon() +{ + delete mFavIcon; + mFavIcon = NULL; +} +//-------------------------------------------------------------------------------------------------------------------------------------------- +//setItemIcon +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsIcon::setItemIcon(const HbIcon &icon) +{ + mFavIcon->setIcon(icon); +} diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.h Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,57 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + +#ifndef GLXDETAILSICON_H +#define GLXDETAILSICON_H + +#include + + +#ifdef BUILD_DETAILSCUSTOM +#define MY_EXPORT Q_DECL_EXPORT +#else +#define MY_EXPORT Q_DECL_IMPORT +#endif + +class HbIconItem; +class HbIcon; + +class MY_EXPORT GlxDetailsIcon : public HbWidget +{ + Q_OBJECT + +public: + GlxDetailsIcon(QGraphicsItem *parent = NULL); + ~GlxDetailsIcon(); + + /* + * Sets the Icon of Favourite IconItem. + */ + void setItemIcon(const HbIcon &icon); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent (QGraphicsSceneMouseEvent *event); + +signals : + void updateFavourites(); + +private: + HbIconItem *mFavIcon; +}; + +#endif // GLXDETAILSICON_H diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,74 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This is custom widget for details view in photos for displaying the description of image . +* +*/ + + + +#include "glxdetailstextedit.h" +#include +#include + + + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//focusInEvent +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsTextEdit::focusInEvent (QFocusEvent *event) + { + if(event->reason() == Qt::MouseFocusReason ) + { + event->setAccepted(TRUE); + emit labelPressed(); + } + + } + + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//focusOutEvent +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsTextEdit::focusOutEvent (QFocusEvent *event) + { + event->setAccepted(TRUE); + } + + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//GlxDetailsTextEdit +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsTextEdit::GlxDetailsTextEdit(QGraphicsItem *parent) : HbTextEdit( parent ) +{ + setAlignment(Qt::AlignLeft); + mDesc = new HbEditorInterface(this); + mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus); +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//~GlxDetailsTextEdit +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsTextEdit::~GlxDetailsTextEdit() +{ + delete mDesc; + mDesc = NULL; +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//setItemText +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsTextEdit::setItemText( const QString &text ) +{ + setPlainText( text ); +} diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This is custom widget for details view in photos for displaying the description of image . +* +*/ + +#ifndef GlXDETAILSDESCEDIT_H +#define GlXDETAILSDESCEDIT_H + +#include + +#ifdef BUILD_DETAILSCUSTOM +#define MY_EXPORT Q_DECL_EXPORT +#else +#define MY_EXPORT Q_DECL_IMPORT +#endif + +class HbEditorInterface; +class MY_EXPORT GlxDetailsTextEdit : public HbTextEdit +{ + Q_OBJECT + +public: + GlxDetailsTextEdit(QGraphicsItem *parent = NULL); + ~GlxDetailsTextEdit(); + void setItemText( const QString &text ); + +protected: + void focusInEvent (QFocusEvent *event) ; + void focusOutEvent (QFocusEvent *event) ; + + +signals : + void labelPressed(); +private: + HbEditorInterface *mDesc; +}; + +#endif // GlXDETAILSDESCEDIT_H diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro --- a/ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -#/* -#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -#* All rights reserved. -#* This component and the accompanying materials are made available -#* under the terms of "Eclipse Public License v1.0" -#* which accompanies this distribution, and is available -#* at the URL "http://www.eclipse.org/legal/epl-v10.html". -#* -#* Initial Contributors: -#* Nokia Corporation - initial contribution. -#* -#* Contributors: -#* -#* Description: -#* -#*/ - - -TEMPLATE = lib -TARGET = detailsdescriptionedit -CONFIG += hb -DEFINES += BUILD_DESCEDIT - -win32{ -CONFIG(release, debug|release){ - TARGET = detailsdescriptionedit - DESTDIR = ../release # for easy plugin loading -}else{ - TARGET = detailsdescriptioneditd - DESTDIR = ../debug # for easy plugin loading - } -} - -DEPENDPATH += ./inc \ - ./src - -INCLUDEPATH += ./inc - -SOURCES += \ - glxdetailsdescriptionedit.cpp - -HEADERS += \ - glxdetailsdescriptionedit.h - -symbian { - TARGET.UID3 = 0x200071B9 - TARGET.EPOCALLOWDLLDATA = 1 - TARGET.CAPABILITY = CAP_GENERAL_DLL - MMP_RULES += SMPSAFE - LIBS += -lbafl -} - -defBlock = \ -"$${LITERAL_HASH}if defined(EABI)" \ -"DEFFILE ../eabi/detailsdescriptionedit.def" \ - "$${LITERAL_HASH}else" \ - "DEFFILE ../bwins/detailsdescriptionedit.def" \ - "$${LITERAL_HASH}endif" - -MMP_RULES += defBlock -# End of file --Don't remove this diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsdescriptionedit/inc/glxdetailsdescriptionedit.h --- a/ui/detailscustomwidget/detailsdescriptionedit/inc/glxdetailsdescriptionedit.h Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This is custom widget for details view in photos for displaying the description of image . -* -*/ - -#ifndef GlXDETAILSDESCEDIT_H -#define GlXDETAILSDESCEDIT_H - -#include - -#ifdef BUILD_DESCEDIT -#define MY_EXPORT Q_DECL_EXPORT -#else -#define MY_EXPORT Q_DECL_IMPORT -#endif - -class HbEditorInterface; -class MY_EXPORT GlxDetailsDescriptionEdit : public HbTextEdit -{ - Q_OBJECT - -public: - GlxDetailsDescriptionEdit(QGraphicsItem *parent = NULL); - ~GlxDetailsDescriptionEdit(); - void setItemText( const QString &text ); - -protected: - void focusInEvent (QFocusEvent *event) ; - void focusOutEvent (QFocusEvent *event) ; - - -signals : - void labelPressed(); -private: - HbEditorInterface *mDesc; -}; - -#endif // GlXDETAILSDESCEDIT_H diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsdescriptionedit/src/glxdetailsdescriptionedit.cpp --- a/ui/detailscustomwidget/detailsdescriptionedit/src/glxdetailsdescriptionedit.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This is custom widget for details view in photos for displaying the description of image . -* -*/ - - - -#include "glxdetailsdescriptionedit.h" -#include -#include - - - -void GlxDetailsDescriptionEdit::focusInEvent (QFocusEvent *event) - { - if(event->reason() == Qt::MouseFocusReason ) - { - event->setAccepted(TRUE); - emit labelPressed(); - } - - } -void GlxDetailsDescriptionEdit::focusOutEvent (QFocusEvent *event) - { - event->setAccepted(TRUE); - } - - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//GlxDetailsDescLabel -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsDescriptionEdit::GlxDetailsDescriptionEdit(QGraphicsItem *parent) : HbTextEdit( parent ) -{ - setAlignment(Qt::AlignLeft); - mDesc = new HbEditorInterface(this); - mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//~GlxDetailsDescLabel -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit() -{ - delete mDesc; - mDesc = NULL; -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setItemText -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsDescriptionEdit::setItemText( const QString &text ) -{ - setPlainText( text ); -} diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro --- a/ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -#/* -#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -#* All rights reserved. -#* This component and the accompanying materials are made available -#* under the terms of "Eclipse Public License v1.0" -#* which accompanies this distribution, and is available -#* at the URL "http://www.eclipse.org/legal/epl-v10.html". -#* -#* Initial Contributors: -#* Nokia Corporation - initial contribution. -#* -#* Contributors: -#* -#* Description: -#* -#*/ - -TEMPLATE = lib -TARGET = detailsdescriptioneditplugin - -win32{ -CONFIG(release, debug|release){ - TARGET = detailsdescriptioneditplugin - } else { - TARGET = detailsdescriptioneditplugind - } -} - -CONFIG += hb plugin - -win32{ -CONFIG(release, debug|release){ - DESTDIR = ../release # for easy plugin loading - LIBS += -L../release -ldetailsdescriptionedit - } else { - DESTDIR = ../debug # for easy plugin loading - LIBS += -L../debug -ldetailsdescriptioneditd - } -} - -SOURCES += \ - main.cpp - -INCLUDEPATH += \ - ../detailsdescriptionedit \ - ../detailsdescriptionedit/inc - -symbian: { - TARGET.UID3 = 0x2000A774 - TARGET.EPOCALLOWDLLDATA=1 - TARGET.CAPABILITY = CAP_GENERAL_DLL - MMP_RULES += SMPSAFE - - - LIBS += \ - -ldetailsdescriptionedit.dll - - pluginstub.sources = detailsdescriptioneditplugin.dll - pluginstub.path = /resource/plugins - DEPLOYMENT += pluginstub - DESTDIR = $$HB_PLUGINS_DIR -} - -!local { - target.path = $$HB_PLUGINS_DIR - INSTALLS += target -} - -# End of file --Don't remove this. diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsdescriptioneditplugin/main.cpp --- a/ui/detailscustomwidget/detailsdescriptioneditplugin/main.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: ?? -* -*/ - - -#include "glxdetailsdescriptionedit.h" -#include -#include - -class GlxDetailsDescriptionEditPlugin : public HbDocumentLoaderPlugin -{ -public: - QObject *createObject(const QString& type, const QString &name); - QList supportedObjects(); -}; -Q_EXPORT_PLUGIN(GlxDetailsDescriptionEditPlugin) - -QObject *GlxDetailsDescriptionEditPlugin::createObject(const QString& type, const QString &name ) -{ - if( type == GlxDetailsDescriptionEdit::staticMetaObject.className() ) { - QObject *object = new GlxDetailsDescriptionEdit(); - object->setObjectName(name); - return object; - } - return 0; -} - -QList GlxDetailsDescriptionEditPlugin::supportedObjects() -{ - QList result; - result.append( &GlxDetailsDescriptionEdit::staticMetaObject ); - return result; -} - -// end of file - diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro --- a/ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -#/* -#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -#* All rights reserved. -#* This component and the accompanying materials are made available -#* under the terms of "Eclipse Public License v1.0" -#* which accompanies this distribution, and is available -#* at the URL "http://www.eclipse.org/legal/epl-v10.html". -#* -#* Initial Contributors: -#* Nokia Corporation - initial contribution. -#* -#* Contributors: -#* -#* Description: -#* -#*/ - -TEMPLATE = lib -TARGET = detailsnamelabel -CONFIG += hb -DEFINES += BUILD_NAMELABEL - -win32{ -CONFIG(release, debug|release){ - TARGET = detailsnamelabel - DESTDIR = ../release # for easy plugin loading -}else{ - TARGET = detailsnamelabeld - DESTDIR = ../debug # for easy plugin loading - } -} - -DEPENDPATH += ./inc \ - ./src - -INCLUDEPATH += ./inc - -SOURCES += \ - glxdetailsnamelabel.cpp - -HEADERS += \ - glxdetailsnamelabel.h - -symbian { - TARGET.UID3 = 0x2000A7BC - TARGET.EPOCALLOWDLLDATA = 1 - TARGET.CAPABILITY = CAP_GENERAL_DLL - MMP_RULES += SMPSAFE - - LIBS += -lbafl -} - -defBlock = \ -"$${LITERAL_HASH}if defined(EABI)" \ -"DEFFILE ../eabi/detailsnamelabel.def" \ - "$${LITERAL_HASH}else" \ - "DEFFILE ../bwins/detailsnamelabel.def" \ - "$${LITERAL_HASH}endif" - -MMP_RULES += defBlock - -# End of file --Don't remove this diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsnamelabel/inc/glxdetailsnamelabel.h --- a/ui/detailscustomwidget/detailsnamelabel/inc/glxdetailsnamelabel.h Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: ?Description -* -*/ - -#ifndef GlXDETAILSNAMELABEL_H -#define GlXDETAILSNAMELABEL_H - -#include - -#ifdef BUILD_NAMELABEL -#define MY_EXPORT Q_DECL_EXPORT -#else -#define MY_EXPORT Q_DECL_IMPORT -#endif - - -class MY_EXPORT GlxDetailsNameLabel : public HbLabel -{ - Q_OBJECT - -public: - GlxDetailsNameLabel(QGraphicsItem *parent = NULL); - ~GlxDetailsNameLabel(); - void setItemText( const QString &text ); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent (QGraphicsSceneMouseEvent *event); - -signals : - void labelPressed(); - -}; - -#endif // GlXDETAILSNAMELABEL_H diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsnamelabel/src/glxdetailsnamelabel.cpp --- a/ui/detailscustomwidget/detailsnamelabel/src/glxdetailsnamelabel.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 "glxdetailsnamelabel.h" -#include -#include - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//mousePressEvent -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsNameLabel::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_UNUSED(event) -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//mouseReleaseEvent -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsNameLabel::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) -{ - qDebug("GlxDetailsNameLabel::mouseReleaseEvent"); - Q_UNUSED(event) - emit labelPressed(); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//GlxDetailsNameLabel -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsNameLabel::GlxDetailsNameLabel(QGraphicsItem *parent) : HbLabel( parent ) -{ - qDebug("GlxDetailsNameLabel::GlxDetailsNameLabel"); - setTextWrapping(Hb::TextWordWrap); - setAlignment(Qt::AlignHCenter); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//~GlxDetailsCustomLabel -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsNameLabel::~GlxDetailsNameLabel() -{ - -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setItemText -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsNameLabel::setItemText( const QString &text ) -{ - qDebug("GlxDetailsNameLabel::setItemText"); - setHtml(text); -} diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro --- a/ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -#/* -#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -#* All rights reserved. -#* This component and the accompanying materials are made available -#* under the terms of "Eclipse Public License v1.0" -#* which accompanies this distribution, and is available -#* at the URL "http://www.eclipse.org/legal/epl-v10.html". -#* -#* Initial Contributors: -#* Nokia Corporation - initial contribution. -#* -#* Contributors: -#* -#* Description: -#* -#*/ - -TEMPLATE = lib -TARGET = detailsnamelabelplugin - -win32{ -CONFIG(release, debug|release){ - TARGET = detailsnamelabelplugin - } else { - TARGET = detailsnamelabelplugind - } -} - -CONFIG += hb plugin - -win32{ -CONFIG(release, debug|release){ - DESTDIR = ../release # for easy plugin loading - LIBS += -L../release -ldetailsnamelabel - } else { - DESTDIR = ../debug # for easy plugin loading - LIBS += -L../debug -ldetailsnamelabeld - } -} - -SOURCES += \ - main.cpp - -INCLUDEPATH += \ - ../detailsnamelabel \ - ../detailsnamelabel/inc - -symbian: { - TARGET.UID3 = 0x200071B7 - TARGET.EPOCALLOWDLLDATA=1 - TARGET.CAPABILITY = CAP_GENERAL_DLL - MMP_RULES += SMPSAFE - - - LIBS += \ - -ldetailsnamelabel.dll - - pluginstub.sources = detailsnamelabelplugin.dll - pluginstub.path = /resource/plugins - DEPLOYMENT += pluginstub - DESTDIR = $$HB_PLUGINS_DIR -} - -!local { - target.path = $$HB_PLUGINS_DIR - INSTALLS += target -} - -# End of file --Don't remove this. diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/detailsnamelabelplugin/main.cpp --- a/ui/detailscustomwidget/detailsnamelabelplugin/main.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: ?Description -* -*/ - - -#include "glxdetailsnamelabel.h" -#include -#include -#include - -class GlxDetailsNameLabelPlugin : public HbDocumentLoaderPlugin -{ -public: - QObject *createObject(const QString& type, const QString &name); - QList supportedObjects(); -}; -Q_EXPORT_PLUGIN(GlxDetailsNameLabelPlugin) - -QObject *GlxDetailsNameLabelPlugin::createObject(const QString& type, const QString &name ) -{ - qDebug("GlxDetailsNameLabelPlugin::createObject"); - if( type == GlxDetailsNameLabel::staticMetaObject.className() ) { - - qDebug("GlxDetailsNameLabelPlugin::createObject created"); - QObject *object = new GlxDetailsNameLabel(); - object->setObjectName(name); - return object; - } - return 0; -} - -QList GlxDetailsNameLabelPlugin::supportedObjects() -{ - qDebug("GlxDetailsNameLabelPlugin::supportedObjects"); - QList result; - result.append( &GlxDetailsNameLabel::staticMetaObject ); - return result; -} - -// end of file - diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/eabi/detailsdescriptioneditu.def --- a/ui/detailscustomwidget/eabi/detailsdescriptioneditu.def Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -EXPORTS - _ZN25GlxDetailsDescriptionEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME - _ZN25GlxDetailsDescriptionEdit11qt_metacastEPKc @ 2 NONAME - _ZN25GlxDetailsDescriptionEdit11setItemTextERK7QString @ 3 NONAME - _ZN25GlxDetailsDescriptionEdit12focusInEventEP11QFocusEvent @ 4 NONAME - _ZN25GlxDetailsDescriptionEdit12labelPressedEv @ 5 NONAME - _ZN25GlxDetailsDescriptionEdit13focusOutEventEP11QFocusEvent @ 6 NONAME - _ZN25GlxDetailsDescriptionEdit16staticMetaObjectE @ 7 NONAME DATA 16 - _ZN25GlxDetailsDescriptionEdit19getStaticMetaObjectEv @ 8 NONAME - _ZN25GlxDetailsDescriptionEditC1EP13QGraphicsItem @ 9 NONAME - _ZN25GlxDetailsDescriptionEditC2EP13QGraphicsItem @ 10 NONAME - _ZN25GlxDetailsDescriptionEditD0Ev @ 11 NONAME - _ZN25GlxDetailsDescriptionEditD1Ev @ 12 NONAME - _ZN25GlxDetailsDescriptionEditD2Ev @ 13 NONAME - _ZNK25GlxDetailsDescriptionEdit10metaObjectEv @ 14 NONAME - _ZTI25GlxDetailsDescriptionEdit @ 15 NONAME - _ZTV25GlxDetailsDescriptionEdit @ 16 NONAME - _ZThn16_N25GlxDetailsDescriptionEditD0Ev @ 17 NONAME - _ZThn16_N25GlxDetailsDescriptionEditD1Ev @ 18 NONAME - _ZThn8_N25GlxDetailsDescriptionEdit12focusInEventEP11QFocusEvent @ 19 NONAME - _ZThn8_N25GlxDetailsDescriptionEdit13focusOutEventEP11QFocusEvent @ 20 NONAME - _ZThn8_N25GlxDetailsDescriptionEditD0Ev @ 21 NONAME - _ZThn8_N25GlxDetailsDescriptionEditD1Ev @ 22 NONAME - diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/eabi/detailsnamelabelu.def --- a/ui/detailscustomwidget/eabi/detailsnamelabelu.def Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -EXPORTS - _ZN19GlxDetailsNameLabel11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME - _ZN19GlxDetailsNameLabel11qt_metacastEPKc @ 2 NONAME - _ZN19GlxDetailsNameLabel11setItemTextERK7QString @ 3 NONAME - _ZN19GlxDetailsNameLabel12labelPressedEv @ 4 NONAME - _ZN19GlxDetailsNameLabel15mousePressEventEP24QGraphicsSceneMouseEvent @ 5 NONAME - _ZN19GlxDetailsNameLabel16staticMetaObjectE @ 6 NONAME DATA 16 - _ZN19GlxDetailsNameLabel17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 7 NONAME - _ZN19GlxDetailsNameLabel19getStaticMetaObjectEv @ 8 NONAME - _ZN19GlxDetailsNameLabelC1EP13QGraphicsItem @ 9 NONAME - _ZN19GlxDetailsNameLabelC2EP13QGraphicsItem @ 10 NONAME - _ZN19GlxDetailsNameLabelD0Ev @ 11 NONAME - _ZN19GlxDetailsNameLabelD1Ev @ 12 NONAME - _ZN19GlxDetailsNameLabelD2Ev @ 13 NONAME - _ZNK19GlxDetailsNameLabel10metaObjectEv @ 14 NONAME - _ZTI19GlxDetailsNameLabel @ 15 NONAME - _ZTV19GlxDetailsNameLabel @ 16 NONAME - _ZThn16_N19GlxDetailsNameLabelD0Ev @ 17 NONAME - _ZThn16_N19GlxDetailsNameLabelD1Ev @ 18 NONAME - _ZThn8_N19GlxDetailsNameLabel15mousePressEventEP24QGraphicsSceneMouseEvent @ 19 NONAME - _ZThn8_N19GlxDetailsNameLabel17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 20 NONAME - _ZThn8_N19GlxDetailsNameLabelD0Ev @ 21 NONAME - _ZThn8_N19GlxDetailsNameLabelD1Ev @ 22 NONAME - diff -r f291796e213d -r fb37077c270f ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,46 @@ +EXPORTS + _ZN14GlxDetailsIcon11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN14GlxDetailsIcon11qt_metacastEPKc @ 2 NONAME + _ZN14GlxDetailsIcon11setItemIconERK6HbIcon @ 3 NONAME + _ZN14GlxDetailsIcon15mousePressEventEP24QGraphicsSceneMouseEvent @ 4 NONAME + _ZN14GlxDetailsIcon16staticMetaObjectE @ 5 NONAME DATA 16 + _ZN14GlxDetailsIcon16updateFavouritesEv @ 6 NONAME + _ZN14GlxDetailsIcon17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 7 NONAME + _ZN14GlxDetailsIcon19getStaticMetaObjectEv @ 8 NONAME + _ZN14GlxDetailsIconC1EP13QGraphicsItem @ 9 NONAME + _ZN14GlxDetailsIconC2EP13QGraphicsItem @ 10 NONAME + _ZN14GlxDetailsIconD0Ev @ 11 NONAME + _ZN14GlxDetailsIconD1Ev @ 12 NONAME + _ZN14GlxDetailsIconD2Ev @ 13 NONAME + _ZN18GlxDetailsTextEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 14 NONAME + _ZN18GlxDetailsTextEdit11qt_metacastEPKc @ 15 NONAME + _ZN18GlxDetailsTextEdit11setItemTextERK7QString @ 16 NONAME + _ZN18GlxDetailsTextEdit12focusInEventEP11QFocusEvent @ 17 NONAME + _ZN18GlxDetailsTextEdit12labelPressedEv @ 18 NONAME + _ZN18GlxDetailsTextEdit13focusOutEventEP11QFocusEvent @ 19 NONAME + _ZN18GlxDetailsTextEdit16staticMetaObjectE @ 20 NONAME DATA 16 + _ZN18GlxDetailsTextEdit19getStaticMetaObjectEv @ 21 NONAME + _ZN18GlxDetailsTextEditC1EP13QGraphicsItem @ 22 NONAME + _ZN18GlxDetailsTextEditC2EP13QGraphicsItem @ 23 NONAME + _ZN18GlxDetailsTextEditD0Ev @ 24 NONAME + _ZN18GlxDetailsTextEditD1Ev @ 25 NONAME + _ZN18GlxDetailsTextEditD2Ev @ 26 NONAME + _ZNK14GlxDetailsIcon10metaObjectEv @ 27 NONAME + _ZNK18GlxDetailsTextEdit10metaObjectEv @ 28 NONAME + _ZTI14GlxDetailsIcon @ 29 NONAME + _ZTI18GlxDetailsTextEdit @ 30 NONAME + _ZTV14GlxDetailsIcon @ 31 NONAME + _ZTV18GlxDetailsTextEdit @ 32 NONAME + _ZThn16_N14GlxDetailsIconD0Ev @ 33 NONAME + _ZThn16_N14GlxDetailsIconD1Ev @ 34 NONAME + _ZThn16_N18GlxDetailsTextEditD0Ev @ 35 NONAME + _ZThn16_N18GlxDetailsTextEditD1Ev @ 36 NONAME + _ZThn8_N14GlxDetailsIcon15mousePressEventEP24QGraphicsSceneMouseEvent @ 37 NONAME + _ZThn8_N14GlxDetailsIcon17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 38 NONAME + _ZThn8_N14GlxDetailsIconD0Ev @ 39 NONAME + _ZThn8_N14GlxDetailsIconD1Ev @ 40 NONAME + _ZThn8_N18GlxDetailsTextEdit12focusInEventEP11QFocusEvent @ 41 NONAME + _ZThn8_N18GlxDetailsTextEdit13focusOutEventEP11QFocusEvent @ 42 NONAME + _ZThn8_N18GlxDetailsTextEditD0Ev @ 43 NONAME + _ZThn8_N18GlxDetailsTextEditD1Ev @ 44 NONAME + diff -r f291796e213d -r fb37077c270f ui/inc/glxcommandhandlers.hrh --- a/ui/inc/glxcommandhandlers.hrh Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/inc/glxcommandhandlers.hrh Wed Aug 18 09:48:53 2010 +0300 @@ -96,14 +96,19 @@ EGlxCmdShowImages, EGlxCmdShowVideos, EGlxCmdAllGridOpen, + EGlxCmdFetcherAllGridOpen, //open fetcher grid in all collection EGlxCmdFullScreenOpen, + EGlxCmdFetcherFullScreenOpen, //open fetcher in fullscreen EGlxCmdAlbumGridOpen, + EGlxCmdFetcherAlbumGridOpen, //open fetcher album grid EGlxCmdAlbumListOpen, + EGlxCmdFetcherAlbumListOpen, //open fetcher album list EGlxCmdCameraOpen, EGlxCmdDetailsOpen, EGlxCmdEmptyData, EGlxCmdOviOpen, EGlxCmdBack, + EGlxCmdSlideShowBack, EGlxCmdSelect, EGlxCmdCancel, EGlxCmdMarkAll, @@ -119,6 +124,11 @@ EGlxCmdRotateImgCW, EGlxCmdRotateImgCCW, EGlxCmdRotateImgCrop, + EGlxCmd3DEffectOn, + EGlxCmd3DEffectOff, + EGlxCmdSetWallpaper, + EGlxCmdPlayBackAnim, + EGlxCmdFetcherSelect, EGlxCmdAiwBase = 0x6000 }; diff -r f291796e213d -r fb37077c270f ui/inc/glxmodelroles.h --- a/ui/inc/glxmodelroles.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/inc/glxmodelroles.h Wed Aug 18 09:48:53 2010 +0300 @@ -45,7 +45,8 @@ 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 + GlxTempVisualWindowIndex, //to store the visual index obtained from AM temporarily + GlxImageCorruptRole //To get the corrupt image status }; diff -r f291796e213d -r fb37077c270f ui/inc/glxviewids.h --- a/ui/inc/glxviewids.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/inc/glxviewids.h Wed Aug 18 09:48:53 2010 +0300 @@ -38,13 +38,17 @@ { NO_GRID_S = 0, ALL_ITEM_S, - ALBUM_ITEM_S, + ALBUM_ITEM_S, + FETCHER_ITEM_S, // all grid fetcher + FETCHER_ALBUM_ITEM_S, //album grid getcher MAX_GRID_S } GridState; typedef enum { NO_FULLSCREEN_S = MAX_GRID_S + 1, + ALL_FULLSCREEN_S, + ALBUM_FULLSCREEN_S, EXTERNAL_S, IMAGEVIEWER_S, FETCHER_S, @@ -65,5 +69,10 @@ IMAGEVIEWER_DETAIL_S, MAX_DETAIL_S } DetailState; - +typedef enum +{ + NO_LIST_S = MAX_DETAIL_S+1, + FETCHER_ALBUM_S, // album list fetcher + MAX_LIST_S +} ListState; #endif /* GLXVIEWIDS_H */ diff -r f291796e213d -r fb37077c270f ui/uiengine/bwins/glxmedialistwrapperu.def --- a/ui/uiengine/bwins/glxmedialistwrapperu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/bwins/glxmedialistwrapperu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,60 +1,61 @@ EXPORTS ?retrieveItemUri@GlxMLWrapper@@QAE?AVQString@@H@Z @ 1 NONAME ; class QString GlxMLWrapper::retrieveItemUri(int) ?handlepopulated@GlxMLWrapper@@QAEXXZ @ 2 NONAME ; void GlxMLWrapper::handlepopulated(void) - ?itemCorrupted@GlxMLWrapper@@IAEXH@Z @ 3 NONAME ; void GlxMLWrapper::itemCorrupted(int) - ?populated@GlxMLWrapper@@IAEXXZ @ 4 NONAME ; void GlxMLWrapper::populated(void) - ?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *, int) - ?handleGeneralError@GlxMLWrapper@@QAEXH@Z @ 6 NONAME ; void GlxMLWrapper::handleGeneralError(int) - ?updateItem@GlxMLWrapper@@IAEXHW4GlxTBContextType@@@Z @ 7 NONAME ; void GlxMLWrapper::updateItem(int, enum GlxTBContextType) - ?removeItems@GlxMLWrapper@@IAEXHH@Z @ 8 NONAME ; void GlxMLWrapper::removeItems(int, int) - ?IsPopulated@GlxMLWrapper@@QAE_NXZ @ 9 NONAME ; bool GlxMLWrapper::IsPopulated(void) - ?getItemCount@GlxMLWrapper@@QAEHXZ @ 10 NONAME ; int GlxMLWrapper::getItemCount(void) - ?getVisibleWindowIndex@GlxMLWrapper@@QAEHXZ @ 11 NONAME ; int GlxMLWrapper::getVisibleWindowIndex(void) - ?setFocusIndex@GlxMLWrapper@@QAEXH@Z @ 12 NONAME ; void GlxMLWrapper::setFocusIndex(int) - ?retrieveItemDate@GlxMLWrapper@@QAE?AVQDate@@H@Z @ 13 NONAME ; class QDate GlxMLWrapper::retrieveItemDate(int) - ?qt_metacall@GlxMLWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 14 NONAME ; int GlxMLWrapper::qt_metacall(enum QMetaObject::Call, int, void * *) - ?retrieveItemFrameCount@GlxMLWrapper@@QAEHH@Z @ 15 NONAME ; int GlxMLWrapper::retrieveItemFrameCount(int) - ?retrieveListTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 16 NONAME ; class QString GlxMLWrapper::retrieveListTitle(int) - ?retrieveListItemCount@GlxMLWrapper@@QAEHH@Z @ 17 NONAME ; int GlxMLWrapper::retrieveListItemCount(int) - ?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *) - ?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 19 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int) - ?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void) - ?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 21 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int) - ?updateAlbumTitle@GlxMLWrapper@@IAEXVQString@@@Z @ 22 NONAME ; void GlxMLWrapper::updateAlbumTitle(class QString) - ?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 23 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject - ?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 24 NONAME ; void GlxMLWrapper::handleListItemAvailable(int) - ?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *) - ?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 26 NONAME ; void GlxMLWrapper::itemsRemoved(int, int) - ?handleTitleAvailable@GlxMLWrapper@@QAEXVQString@@@Z @ 27 NONAME ; void GlxMLWrapper::handleTitleAvailable(class QString) - ?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const - ?insertItems@GlxMLWrapper@@IAEXHH@Z @ 29 NONAME ; void GlxMLWrapper::insertItems(int, int) - ?isSystemItem@GlxMLWrapper@@QAE_NH@Z @ 30 NONAME ; bool GlxMLWrapper::isSystemItem(int) - ?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 31 NONAME ; int GlxMLWrapper::getFocusIndex(void) const - ?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 32 NONAME ; void GlxMLWrapper::handleIconCorrupt(int) - ?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 33 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int) - ?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 34 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int) - ?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 35 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType) - ?retrieveViewTitle@GlxMLWrapper@@QAE?AVQString@@XZ @ 36 NONAME ; class QString GlxMLWrapper::retrieveViewTitle(void) - ?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int) - ?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 38 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode) - ??_EGlxMLWrapper@@UAE@I@Z @ 39 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int) - ??1GlxMLWrapper@@UAE@XZ @ 40 NONAME ; GlxMLWrapper::~GlxMLWrapper(void) - ?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 41 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int) - ??1CGlxTitleFetcher@@UAE@XZ @ 42 NONAME ; CGlxTitleFetcher::~CGlxTitleFetcher(void) - ?HandleTitleAvailableL@GlxMLWrapperPrivate@@UAEXABVTDesC16@@@Z @ 43 NONAME ; void GlxMLWrapperPrivate::HandleTitleAvailableL(class TDesC16 const &) - ?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 44 NONAME ; void * GlxMLWrapper::qt_metacast(char const *) - ?retrieveItemImage@GlxMLWrapper@@QAE?AVQImage@@HW4GlxTBContextType@@@Z @ 45 NONAME ; class QImage GlxMLWrapper::retrieveItemImage(int, enum GlxTBContextType) - ?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 46 NONAME ; void GlxMLWrapper::setSelectedIndex(int) - ??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 47 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString) - ?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 48 NONAME ; void GlxMLWrapper::itemsAdded(int, int) - ?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 49 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType) - ?retrieveItemSize@GlxMLWrapper@@QAEHH@Z @ 50 NONAME ; int GlxMLWrapper::retrieveItemSize(int) - ?retrieveItemTime@GlxMLWrapper@@QAE?AVQTime@@H@Z @ 51 NONAME ; class QTime GlxMLWrapper::retrieveItemTime(int) - ?retrieveListDesc@GlxMLWrapper@@QAE?AVQString@@H@Z @ 52 NONAME ; class QString GlxMLWrapper::retrieveListDesc(int) - ?removeContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 53 NONAME ; void GlxMLWrapper::removeContextMode(enum GlxContextMode) - ?updateDetails@GlxMLWrapper@@IAEXXZ @ 54 NONAME ; void GlxMLWrapper::updateDetails(void) - ?handleDetailsItemAvailable@GlxMLWrapper@@QAEXH@Z @ 55 NONAME ; void GlxMLWrapper::handleDetailsItemAvailable(int) - ?setDrmValid@GlxMLWrapper@@QAEXH_N@Z @ 56 NONAME ; void GlxMLWrapper::setDrmValid(int, bool) - ?IsDrmProtected@GlxMLWrapper@@QAE_NH@Z @ 57 NONAME ; bool GlxMLWrapper::IsDrmProtected(int) - ?IsDrmValid@GlxMLWrapper@@QAE_NH@Z @ 58 NONAME ; bool GlxMLWrapper::IsDrmValid(int) + ?removeContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 3 NONAME ; void GlxMLWrapper::removeContextMode(enum GlxContextMode) + ?itemCorrupted@GlxMLWrapper@@IAEXH@Z @ 4 NONAME ; void GlxMLWrapper::itemCorrupted(int) + ?populated@GlxMLWrapper@@IAEXXZ @ 5 NONAME ; void GlxMLWrapper::populated(void) + ?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *, int) + ?retrieveItemSize@GlxMLWrapper@@QAEHH@Z @ 7 NONAME ; int GlxMLWrapper::retrieveItemSize(int) + ?handleGeneralError@GlxMLWrapper@@QAEXH@Z @ 8 NONAME ; void GlxMLWrapper::handleGeneralError(int) + ?setDrmValid@GlxMLWrapper@@QAEXH_N@Z @ 9 NONAME ; void GlxMLWrapper::setDrmValid(int, bool) + ?updateItem@GlxMLWrapper@@IAEXHW4GlxTBContextType@@@Z @ 10 NONAME ; void GlxMLWrapper::updateItem(int, enum GlxTBContextType) + ?removeItems@GlxMLWrapper@@IAEXHH@Z @ 11 NONAME ; void GlxMLWrapper::removeItems(int, int) + ?IsPopulated@GlxMLWrapper@@QAE_NXZ @ 12 NONAME ; bool GlxMLWrapper::IsPopulated(void) + ?getItemCount@GlxMLWrapper@@QAEHXZ @ 13 NONAME ; int GlxMLWrapper::getItemCount(void) + ?getVisibleWindowIndex@GlxMLWrapper@@QAEHXZ @ 14 NONAME ; int GlxMLWrapper::getVisibleWindowIndex(void) + ?setFocusIndex@GlxMLWrapper@@QAEXH@Z @ 15 NONAME ; void GlxMLWrapper::setFocusIndex(int) + ?retrieveItemDate@GlxMLWrapper@@QAE?AVQDate@@H@Z @ 16 NONAME ; class QDate GlxMLWrapper::retrieveItemDate(int) + ?qt_metacall@GlxMLWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 17 NONAME ; int GlxMLWrapper::qt_metacall(enum QMetaObject::Call, int, void * *) + ?updateDetails@GlxMLWrapper@@IAEXXZ @ 18 NONAME ; void GlxMLWrapper::updateDetails(void) + ?retrieveItemFrameCount@GlxMLWrapper@@QAEHH@Z @ 19 NONAME ; int GlxMLWrapper::retrieveItemFrameCount(int) + ?retrieveListTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 20 NONAME ; class QString GlxMLWrapper::retrieveListTitle(int) + ?IsDrmProtected@GlxMLWrapper@@QAE_NH@Z @ 21 NONAME ; bool GlxMLWrapper::IsDrmProtected(int) + ?retrieveListItemCount@GlxMLWrapper@@QAEHH@Z @ 22 NONAME ; int GlxMLWrapper::retrieveListItemCount(int) + ?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *) + ?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 24 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int) + ?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void) + ?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 26 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int) + ?updateAlbumTitle@GlxMLWrapper@@IAEXVQString@@@Z @ 27 NONAME ; void GlxMLWrapper::updateAlbumTitle(class QString) + ?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 28 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject + ?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 29 NONAME ; void GlxMLWrapper::handleListItemAvailable(int) + ?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 30 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *) + ?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 31 NONAME ; void GlxMLWrapper::itemsRemoved(int, int) + ?handleTitleAvailable@GlxMLWrapper@@QAEXVQString@@@Z @ 32 NONAME ; void GlxMLWrapper::handleTitleAvailable(class QString) + ?retrieveItemTime@GlxMLWrapper@@QAE?AVQTime@@H@Z @ 33 NONAME ; class QTime GlxMLWrapper::retrieveItemTime(int) + ?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 34 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const + ?insertItems@GlxMLWrapper@@IAEXHH@Z @ 35 NONAME ; void GlxMLWrapper::insertItems(int, int) + ?isCorruptedImage@GlxMLWrapper@@QAE_NH@Z @ 36 NONAME ; bool GlxMLWrapper::isCorruptedImage(int) + ?isSystemItem@GlxMLWrapper@@QAE_NH@Z @ 37 NONAME ; bool GlxMLWrapper::isSystemItem(int) + ?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 38 NONAME ; int GlxMLWrapper::getFocusIndex(void) const + ?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 39 NONAME ; void GlxMLWrapper::handleIconCorrupt(int) + ?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 40 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int) + ?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 41 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int) + ?handleDetailsItemAvailable@GlxMLWrapper@@QAEXH@Z @ 42 NONAME ; void GlxMLWrapper::handleDetailsItemAvailable(int) + ?retrieveListDesc@GlxMLWrapper@@QAE?AVQString@@H@Z @ 43 NONAME ; class QString GlxMLWrapper::retrieveListDesc(int) + ?IsDrmValid@GlxMLWrapper@@QAE_NH@Z @ 44 NONAME ; bool GlxMLWrapper::IsDrmValid(int) + ?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 45 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType) + ?retrieveViewTitle@GlxMLWrapper@@QAE?AVQString@@XZ @ 46 NONAME ; class QString GlxMLWrapper::retrieveViewTitle(void) + ?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int) + ?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 48 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode) + ??_EGlxMLWrapper@@UAE@I@Z @ 49 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int) + ??1GlxMLWrapper@@UAE@XZ @ 50 NONAME ; GlxMLWrapper::~GlxMLWrapper(void) + ?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 51 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int) + ??1CGlxTitleFetcher@@UAE@XZ @ 52 NONAME ; CGlxTitleFetcher::~CGlxTitleFetcher(void) + ?HandleTitleAvailableL@GlxMLWrapperPrivate@@UAEXABVTDesC16@@@Z @ 53 NONAME ; void GlxMLWrapperPrivate::HandleTitleAvailableL(class TDesC16 const &) + ?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 54 NONAME ; void * GlxMLWrapper::qt_metacast(char const *) + ?retrieveItemImage@GlxMLWrapper@@QAE?AVQImage@@HW4GlxTBContextType@@@Z @ 55 NONAME ; class QImage GlxMLWrapper::retrieveItemImage(int, enum GlxTBContextType) + ?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 56 NONAME ; void GlxMLWrapper::setSelectedIndex(int) + ??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 57 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString) + ?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 58 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType) + ?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 59 NONAME ; void GlxMLWrapper::itemsAdded(int, int) diff -r f291796e213d -r fb37077c270f ui/uiengine/eabi/glxmedialistwrapperu.def --- a/ui/uiengine/eabi/glxmedialistwrapperu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/eabi/glxmedialistwrapperu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,57 +1,58 @@ EXPORTS - _ZN12GlxMLWrapper10itemsAddedEii @ 1 NONAME - _ZN12GlxMLWrapper10updateItemEi16GlxTBContextType @ 2 NONAME - _ZN12GlxMLWrapper11IsPopulatedEv @ 3 NONAME - _ZN12GlxMLWrapper11insertItemsEii @ 4 NONAME - _ZN12GlxMLWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME - _ZN12GlxMLWrapper11qt_metacastEPKc @ 6 NONAME - _ZN12GlxMLWrapper11removeItemsEii @ 7 NONAME - _ZN12GlxMLWrapper12getItemCountEv @ 8 NONAME - _ZN12GlxMLWrapper12isSystemItemEi @ 9 NONAME - _ZN12GlxMLWrapper12itemsRemovedEii @ 10 NONAME - _ZN12GlxMLWrapper13itemCorruptedEi @ 11 NONAME - _ZN12GlxMLWrapper13setFocusIndexEi @ 12 NONAME - _ZN12GlxMLWrapper14RetrieveBitmapEi @ 13 NONAME - _ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 14 NONAME - _ZN12GlxMLWrapper15handlepopulatedEv @ 15 NONAME - _ZN12GlxMLWrapper15retrieveItemUriEi @ 16 NONAME - _ZN12GlxMLWrapper16retrieveItemDateEi @ 17 NONAME - _ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 18 NONAME - _ZN12GlxMLWrapper16setSelectedIndexEi @ 19 NONAME - _ZN12GlxMLWrapper16staticMetaObjectE @ 20 NONAME DATA 16 - _ZN12GlxMLWrapper16updateAlbumTitleE7QString @ 21 NONAME - _ZN12GlxMLWrapper17handleIconCorruptEi @ 22 NONAME - _ZN12GlxMLWrapper17retrieveItemImageEi16GlxTBContextType @ 23 NONAME - _ZN12GlxMLWrapper17retrieveListTitleEi @ 24 NONAME - _ZN12GlxMLWrapper17retrieveViewTitleEv @ 25 NONAME - _ZN12GlxMLWrapper18handleGeneralErrorEi @ 26 NONAME - _ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 27 NONAME - _ZN12GlxMLWrapper19getStaticMetaObjectEv @ 28 NONAME - _ZN12GlxMLWrapper20handleTitleAvailableE7QString @ 29 NONAME - _ZN12GlxMLWrapper20retrieveListSubTitleEi @ 30 NONAME - _ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 31 NONAME - _ZN12GlxMLWrapper21retrieveItemDimensionEi @ 32 NONAME - _ZN12GlxMLWrapper21retrieveListItemCountEi @ 33 NONAME - _ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 34 NONAME - _ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 35 NONAME - _ZN12GlxMLWrapper23handleListItemAvailableEi @ 36 NONAME - _ZN12GlxMLWrapper9populatedEv @ 37 NONAME - _ZN12GlxMLWrapperC1Eii18TGlxFilterItemType7QString @ 38 NONAME - _ZN12GlxMLWrapperC2Eii18TGlxFilterItemType7QString @ 39 NONAME - _ZN12GlxMLWrapperD0Ev @ 40 NONAME - _ZN12GlxMLWrapperD1Ev @ 41 NONAME - _ZN12GlxMLWrapperD2Ev @ 42 NONAME - _ZNK12GlxMLWrapper10metaObjectEv @ 43 NONAME - _ZNK12GlxMLWrapper13getFocusIndexEv @ 44 NONAME - _ZTI12GlxMLWrapper @ 45 NONAME - _ZTV12GlxMLWrapper @ 46 NONAME - _ZN12GlxMLWrapper16retrieveItemSizeEi @ 47 NONAME - _ZN12GlxMLWrapper16retrieveItemTimeEi @ 48 NONAME - _ZN12GlxMLWrapper16retrieveListDescEi @ 49 NONAME - _ZN12GlxMLWrapper17removeContextModeE14GlxContextMode @ 50 NONAME - _ZN12GlxMLWrapper13updateDetailsEv @ 51 NONAME - _ZN12GlxMLWrapper26handleDetailsItemAvailableEi @ 52 NONAME - _ZN12GlxMLWrapper10IsDrmValidEi @ 53 NONAME - _ZN12GlxMLWrapper11setDrmValidEib @ 54 NONAME - _ZN12GlxMLWrapper14IsDrmProtectedEi @ 55 NONAME + _ZN12GlxMLWrapper10IsDrmValidEi @ 1 NONAME + _ZN12GlxMLWrapper10itemsAddedEii @ 2 NONAME + _ZN12GlxMLWrapper10updateItemEi16GlxTBContextType @ 3 NONAME + _ZN12GlxMLWrapper11IsPopulatedEv @ 4 NONAME + _ZN12GlxMLWrapper11insertItemsEii @ 5 NONAME + _ZN12GlxMLWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME + _ZN12GlxMLWrapper11qt_metacastEPKc @ 7 NONAME + _ZN12GlxMLWrapper11removeItemsEii @ 8 NONAME + _ZN12GlxMLWrapper11setDrmValidEib @ 9 NONAME + _ZN12GlxMLWrapper12getItemCountEv @ 10 NONAME + _ZN12GlxMLWrapper12isSystemItemEi @ 11 NONAME + _ZN12GlxMLWrapper12itemsRemovedEii @ 12 NONAME + _ZN12GlxMLWrapper13itemCorruptedEi @ 13 NONAME + _ZN12GlxMLWrapper13setFocusIndexEi @ 14 NONAME + _ZN12GlxMLWrapper13updateDetailsEv @ 15 NONAME + _ZN12GlxMLWrapper14IsDrmProtectedEi @ 16 NONAME + _ZN12GlxMLWrapper14RetrieveBitmapEi @ 17 NONAME + _ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 18 NONAME + _ZN12GlxMLWrapper15handlepopulatedEv @ 19 NONAME + _ZN12GlxMLWrapper15retrieveItemUriEi @ 20 NONAME + _ZN12GlxMLWrapper16isCorruptedImageEi @ 21 NONAME + _ZN12GlxMLWrapper16retrieveItemDateEi @ 22 NONAME + _ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 23 NONAME + _ZN12GlxMLWrapper16retrieveItemSizeEi @ 24 NONAME + _ZN12GlxMLWrapper16retrieveItemTimeEi @ 25 NONAME + _ZN12GlxMLWrapper16retrieveListDescEi @ 26 NONAME + _ZN12GlxMLWrapper16setSelectedIndexEi @ 27 NONAME + _ZN12GlxMLWrapper16staticMetaObjectE @ 28 NONAME DATA 16 + _ZN12GlxMLWrapper16updateAlbumTitleE7QString @ 29 NONAME + _ZN12GlxMLWrapper17handleIconCorruptEi @ 30 NONAME + _ZN12GlxMLWrapper17removeContextModeE14GlxContextMode @ 31 NONAME + _ZN12GlxMLWrapper17retrieveItemImageEi16GlxTBContextType @ 32 NONAME + _ZN12GlxMLWrapper17retrieveListTitleEi @ 33 NONAME + _ZN12GlxMLWrapper17retrieveViewTitleEv @ 34 NONAME + _ZN12GlxMLWrapper18handleGeneralErrorEi @ 35 NONAME + _ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 36 NONAME + _ZN12GlxMLWrapper19getStaticMetaObjectEv @ 37 NONAME + _ZN12GlxMLWrapper20handleTitleAvailableE7QString @ 38 NONAME + _ZN12GlxMLWrapper20retrieveListSubTitleEi @ 39 NONAME + _ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 40 NONAME + _ZN12GlxMLWrapper21retrieveItemDimensionEi @ 41 NONAME + _ZN12GlxMLWrapper21retrieveListItemCountEi @ 42 NONAME + _ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 43 NONAME + _ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 44 NONAME + _ZN12GlxMLWrapper23handleListItemAvailableEi @ 45 NONAME + _ZN12GlxMLWrapper26handleDetailsItemAvailableEi @ 46 NONAME + _ZN12GlxMLWrapper9populatedEv @ 47 NONAME + _ZN12GlxMLWrapperC1Eii18TGlxFilterItemType7QString @ 48 NONAME + _ZN12GlxMLWrapperC2Eii18TGlxFilterItemType7QString @ 49 NONAME + _ZN12GlxMLWrapperD0Ev @ 50 NONAME + _ZN12GlxMLWrapperD1Ev @ 51 NONAME + _ZN12GlxMLWrapperD2Ev @ 52 NONAME + _ZNK12GlxMLWrapper10metaObjectEv @ 53 NONAME + _ZNK12GlxMLWrapper13getFocusIndexEv @ 54 NONAME + _ZTI12GlxMLWrapper @ 55 NONAME + _ZTV12GlxMLWrapper @ 56 NONAME diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/bwins/glxmedialistsu.def --- a/ui/uiengine/medialists/bwins/glxmedialistsu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/bwins/glxmedialistsu.def Wed Aug 18 09:48:53 2010 +0300 @@ -10,109 +10,109 @@ ??0TGlxWindowIterator@@QAE@ABV0@@Z @ 9 NONAME ; TGlxWindowIterator::TGlxWindowIterator(class TGlxWindowIterator const &) ?NewL@CGlxDefaultAttributeContext@@SAPAV1@XZ @ 10 NONAME ; class CGlxDefaultAttributeContext * CGlxDefaultAttributeContext::NewL(void) ?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 11 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int) - ?GetSize@TGlxMedia@@QBEHAAH@Z @ 12 NONAME ; int TGlxMedia::GetSize(int &) const - ??ETGlxWindowIterator@@QAEHH@Z @ 13 NONAME ; int TGlxWindowIterator::operator++(int) - ?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 14 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const - ?NewL@CGlxDefaultListAttributeContext@@SAPAV1@XZ @ 15 NONAME ; class CGlxDefaultListAttributeContext * CGlxDefaultListAttributeContext::NewL(void) - ?InstanceL@MGlxCache@@SAPAV1@XZ @ 16 NONAME ; class MGlxCache * MGlxCache::InstanceL(void) - ?Reset@CGlxMedia@@QAEXXZ @ 17 NONAME ; void CGlxMedia::Reset(void) - ?AddObjects@CGlxListWindow@@QAEXHHHH@Z @ 18 NONAME ; void CGlxListWindow::AddObjects(int, int, int, int) - ??0CGlxThumbnailContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 19 NONAME ; CGlxThumbnailContext::CGlxThumbnailContext(class MGlxMediaListIterator *) - ?SetRangeOffsetsL@CGlxListWindow@@QAEXHHHH@Z @ 20 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int, int, int) - ??0TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 21 NONAME ; TGlxFromFocusOutwardBlockyIterator::TGlxFromFocusOutwardBlockyIterator(void) - ?UnmarkAllL@MGlxMediaList@@SAXAAV1@@Z @ 22 NONAME ; void MGlxMediaList::UnmarkAllL(class MGlxMediaList &) - ?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 23 NONAME ; class TGlxId TGlxMedia::IdSpaceId(void) const - ??1TGlxSelectionIterator@@QAE@XZ @ 24 NONAME ; TGlxSelectionIterator::~TGlxSelectionIterator(void) - ?SetGranularity@CGlxAttributeContext@@QAEXI@Z @ 25 NONAME ; void CGlxAttributeContext::SetGranularity(unsigned int) - ??0TGlxSelectionIterator@@QAE@XZ @ 26 NONAME ; TGlxSelectionIterator::TGlxSelectionIterator(void) - ??0TGlxFromFocusOutwardIterator@@QAE@XZ @ 27 NONAME ; TGlxFromFocusOutwardIterator::TGlxFromFocusOutwardIterator(void) - ?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 28 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const - ??1TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 29 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::~TGlxFromManualIndexOutwardBlockyIterator(void) - ?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 30 NONAME ; int TGlxMedia::GetFrameCount(int &) const - ??0TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 31 NONAME ; TGlxFromManualIndexBlockyIterator::TGlxFromManualIndexBlockyIterator(void) - ?SetRangeOffsets@TGlxFromIndexOutwardBlockyIterator@@QAEXHH@Z @ 32 NONAME ; void TGlxFromIndexOutwardBlockyIterator::SetRangeOffsets(int, int) - ?SetFocusIndex@CGlxListWindow@@QAEXH@Z @ 33 NONAME ; void CGlxListWindow::SetFocusIndex(int) - ??1TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 34 NONAME ; TGlxFromFocusOutwardBlockyIterator::~TGlxFromFocusOutwardBlockyIterator(void) - ??1CGlxDefaultThumbnailContext@@UAE@XZ @ 35 NONAME ; CGlxDefaultThumbnailContext::~CGlxDefaultThumbnailContext(void) - ?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 36 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &) - ??0TGlxFromIndexOutwardBlockyIterator@@QAE@ABVMGlxIndex@0@@Z @ 37 NONAME ; TGlxFromIndexOutwardBlockyIterator::TGlxFromIndexOutwardBlockyIterator(class TGlxFromIndexOutwardBlockyIterator::MGlxIndex const &) - ?ConstructL@CGlxListWindow@@QAEXXZ @ 38 NONAME ; void CGlxListWindow::ConstructL(void) - ?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 39 NONAME ; void TGlxSequentialIterator::SetRange(int) - ??1TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 40 NONAME ; TGlxFromVisibleIndexOutwardListIterator::~TGlxFromVisibleIndexOutwardListIterator(void) - ?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 41 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const - ??0TGlxScrollingDirectionIterator@@QAE@XZ @ 42 NONAME ; TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator(void) - ?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 43 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int) - ?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 44 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int) - ?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 45 NONAME ; void CGlxMedia::HandleModified(class RArray const &) - ?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 46 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const - ?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 47 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const - ?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 48 NONAME ; void TGlxSelectionIterator::SetRange(int) - ?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 49 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const - ?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 50 NONAME ; int TGlxMedia::GetDate(class TTime &) const - ?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 51 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const - ?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 52 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &) - ?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 53 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int) - ?IsStatic@TGlxMedia@@QBEHXZ @ 54 NONAME ; int TGlxMedia::IsStatic(void) const - ??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 55 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &) - ?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 56 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int) - ??1CGlxDefaultAttributeContext@@UAE@XZ @ 57 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void) - ?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 58 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const - ??1TGlxFirstThenLastIterator@@QAE@XZ @ 59 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void) - ?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 60 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const - ??ETGlxSelectionIterator@@UAEHH@Z @ 61 NONAME ; int TGlxSelectionIterator::operator++(int) - ?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 62 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &) - ?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 63 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int) - ?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 64 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const - ?GetDuration@TGlxMedia@@QBEHAAM@Z @ 65 NONAME ; int TGlxMedia::GetDuration(float &) const - ?SetRangeOffsets@TGlxScrollingDirectionIterator@@QAEXHH@Z @ 66 NONAME ; void TGlxScrollingDirectionIterator::SetRangeOffsets(int, int) - ?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 67 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &) - ?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 68 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId const &, class CMPXMedia *) - ?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 69 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *) - ?RemoveObjects@CGlxListWindow@@QAEXHHHH@Z @ 70 NONAME ; void CGlxListWindow::RemoveObjects(int, int, int, int) - ?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 71 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const - ?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 72 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const - ??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 73 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *) - ?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 74 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const - ?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 75 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const - ?AddObjects@CGlxListWindow@@QAEXHH@Z @ 76 NONAME ; void CGlxListWindow::AddObjects(int, int) - ?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 77 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const - ?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 78 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &) - ??0TGlxSequentialIterator@@QAE@XZ @ 79 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void) - ?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 80 NONAME ; int CGlxAttributeContext::AttributeCount(void) - ?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 81 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const - ?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 82 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const - ?SetFocusIndex@CGlxListWindow@@QAEXHH@Z @ 83 NONAME ; void CGlxListWindow::SetFocusIndex(int, int) - ?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 84 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType) - ?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 85 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const - ??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 86 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &) - ?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 87 NONAME ; void TGlxMedia::DeleteLocationAttribute(void) - ?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 88 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const - ??1CGlxMedia@@UAE@XZ @ 89 NONAME ; CGlxMedia::~CGlxMedia(void) - ?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 90 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const - ?IsDrmProtected@TGlxMedia@@QBEHXZ @ 91 NONAME ; int TGlxMedia::IsDrmProtected(void) const - ??1CGlxThumbnailContext@@UAE@XZ @ 92 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void) - ?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 93 NONAME ; int TGlxMedia::GetDrmProtected(int &) const - ?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 94 NONAME ; int TGlxMedia::GetSystemItem(int &) const - ?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 95 NONAME ; void CGlxListWindow::RemoveObjects(int, int) - ?Close@TGlxFetchContextRemover@@QAEXXZ @ 96 NONAME ; void TGlxFetchContextRemover::Close(void) - ?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 97 NONAME ; class CBase const * CGlxListWindow::At(int) const - ?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 98 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int) - ?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 99 NONAME ; class CBase * CGlxListWindow::At(int) - ??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void) - ?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 101 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &) - ??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 102 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void) - ?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 103 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int) - ??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 104 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void) - ?Cleanup@CGlxListWindow@@QAEXXZ @ 105 NONAME ; void CGlxListWindow::Cleanup(void) - ??1TGlxScrollingDirectionIterator@@QAE@XZ @ 106 NONAME ; TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator(void) - ??1TGlxExclusionIterator@@QAE@XZ @ 107 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void) - ??1CGlxDefaultListAttributeContext@@UAE@XZ @ 108 NONAME ; CGlxDefaultListAttributeContext::~CGlxDefaultListAttributeContext(void) - ??1TGlxFetchContextRemover@@QAE@XZ @ 109 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void) - ?SetRangeOffsets@TGlxFromVisibleIndexOutwardListIterator@@QAEXHH@Z @ 110 NONAME ; void TGlxFromVisibleIndexOutwardListIterator::SetRangeOffsets(int, int) - ?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 111 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int) + ??ETGlxWindowIterator@@QAEHH@Z @ 12 NONAME ; int TGlxWindowIterator::operator++(int) + ?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 13 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const + ?NewL@CGlxDefaultListAttributeContext@@SAPAV1@XZ @ 14 NONAME ; class CGlxDefaultListAttributeContext * CGlxDefaultListAttributeContext::NewL(void) + ?InstanceL@MGlxCache@@SAPAV1@XZ @ 15 NONAME ; class MGlxCache * MGlxCache::InstanceL(void) + ?Reset@CGlxMedia@@QAEXXZ @ 16 NONAME ; void CGlxMedia::Reset(void) + ??0CGlxThumbnailContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 17 NONAME ; CGlxThumbnailContext::CGlxThumbnailContext(class MGlxMediaListIterator *) + ?SetRangeOffsetsL@CGlxListWindow@@QAEXHHHH@Z @ 18 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int, int, int) + ??0TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 19 NONAME ; TGlxFromFocusOutwardBlockyIterator::TGlxFromFocusOutwardBlockyIterator(void) + ?UnmarkAllL@MGlxMediaList@@SAXAAV1@@Z @ 20 NONAME ; void MGlxMediaList::UnmarkAllL(class MGlxMediaList &) + ?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 21 NONAME ; class TGlxId TGlxMedia::IdSpaceId(void) const + ??1TGlxSelectionIterator@@QAE@XZ @ 22 NONAME ; TGlxSelectionIterator::~TGlxSelectionIterator(void) + ?SetGranularity@CGlxAttributeContext@@QAEXI@Z @ 23 NONAME ; void CGlxAttributeContext::SetGranularity(unsigned int) + ??0TGlxSelectionIterator@@QAE@XZ @ 24 NONAME ; TGlxSelectionIterator::TGlxSelectionIterator(void) + ??0TGlxFromFocusOutwardIterator@@QAE@XZ @ 25 NONAME ; TGlxFromFocusOutwardIterator::TGlxFromFocusOutwardIterator(void) + ?AddObjectsL@CGlxListWindow@@QAEXHH@Z @ 26 NONAME ; void CGlxListWindow::AddObjectsL(int, int) + ?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 27 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const + ??1TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 28 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::~TGlxFromManualIndexOutwardBlockyIterator(void) + ?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetFrameCount(int &) const + ??0TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 30 NONAME ; TGlxFromManualIndexBlockyIterator::TGlxFromManualIndexBlockyIterator(void) + ?SetRangeOffsets@TGlxFromIndexOutwardBlockyIterator@@QAEXHH@Z @ 31 NONAME ; void TGlxFromIndexOutwardBlockyIterator::SetRangeOffsets(int, int) + ??1TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 32 NONAME ; TGlxFromFocusOutwardBlockyIterator::~TGlxFromFocusOutwardBlockyIterator(void) + ??1CGlxDefaultThumbnailContext@@UAE@XZ @ 33 NONAME ; CGlxDefaultThumbnailContext::~CGlxDefaultThumbnailContext(void) + ?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 34 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &) + ??0TGlxFromIndexOutwardBlockyIterator@@QAE@ABVMGlxIndex@0@@Z @ 35 NONAME ; TGlxFromIndexOutwardBlockyIterator::TGlxFromIndexOutwardBlockyIterator(class TGlxFromIndexOutwardBlockyIterator::MGlxIndex const &) + ?ConstructL@CGlxListWindow@@QAEXXZ @ 36 NONAME ; void CGlxListWindow::ConstructL(void) + ?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 37 NONAME ; void TGlxSequentialIterator::SetRange(int) + ??1TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 38 NONAME ; TGlxFromVisibleIndexOutwardListIterator::~TGlxFromVisibleIndexOutwardListIterator(void) + ?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 39 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const + ??0TGlxScrollingDirectionIterator@@QAE@XZ @ 40 NONAME ; TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator(void) + ?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 41 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int) + ?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 42 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int) + ?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 43 NONAME ; void CGlxMedia::HandleModified(class RArray const &) + ?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 44 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const + ?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 45 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const + ?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 46 NONAME ; void TGlxSelectionIterator::SetRange(int) + ?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 47 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const + ?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 48 NONAME ; int TGlxMedia::GetDate(class TTime &) const + ?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 49 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const + ?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 50 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &) + ?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 51 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int) + ?RemoveObjectsL@CGlxListWindow@@QAEXHH@Z @ 52 NONAME ; void CGlxListWindow::RemoveObjectsL(int, int) + ?IsStatic@TGlxMedia@@QBEHXZ @ 53 NONAME ; int TGlxMedia::IsStatic(void) const + ??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 54 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &) + ?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 55 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int) + ??1CGlxDefaultAttributeContext@@UAE@XZ @ 56 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void) + ?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 57 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const + ??1TGlxFirstThenLastIterator@@QAE@XZ @ 58 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void) + ?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 59 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const + ??ETGlxSelectionIterator@@UAEHH@Z @ 60 NONAME ; int TGlxSelectionIterator::operator++(int) + ?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 61 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &) + ?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 62 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int) + ?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 63 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const + ?GetDuration@TGlxMedia@@QBEHAAM@Z @ 64 NONAME ; int TGlxMedia::GetDuration(float &) const + ?SetRangeOffsets@TGlxScrollingDirectionIterator@@QAEXHH@Z @ 65 NONAME ; void TGlxScrollingDirectionIterator::SetRangeOffsets(int, int) + ?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 66 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &) + ?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 67 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId const &, class CMPXMedia *) + ?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 68 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *) + ?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 69 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const + ?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 70 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const + ??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 71 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *) + ?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 72 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const + ?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 73 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const + ?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 74 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const + ?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 75 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &) + ??0TGlxSequentialIterator@@QAE@XZ @ 76 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void) + ?SetFocusIndexL@CGlxListWindow@@QAEXHH@Z @ 77 NONAME ; void CGlxListWindow::SetFocusIndexL(int, int) + ?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 78 NONAME ; int CGlxAttributeContext::AttributeCount(void) + ?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 79 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const + ?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 80 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const + ?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 81 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType) + ?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 82 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const + ??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 83 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &) + ?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 84 NONAME ; void TGlxMedia::DeleteLocationAttribute(void) + ?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 85 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const + ??1CGlxMedia@@UAE@XZ @ 86 NONAME ; CGlxMedia::~CGlxMedia(void) + ?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 87 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const + ?IsDrmProtected@TGlxMedia@@QBEHXZ @ 88 NONAME ; int TGlxMedia::IsDrmProtected(void) const + ?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 89 NONAME ; int TGlxMedia::GetSystemItem(int &) const + ??1CGlxThumbnailContext@@UAE@XZ @ 90 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void) + ?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 91 NONAME ; int TGlxMedia::GetDrmProtected(int &) const + ?Close@TGlxFetchContextRemover@@QAEXXZ @ 92 NONAME ; void TGlxFetchContextRemover::Close(void) + ?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 93 NONAME ; class CBase const * CGlxListWindow::At(int) const + ?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 94 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int) + ?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 95 NONAME ; class CBase * CGlxListWindow::At(int) + ??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 96 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void) + ?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 97 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &) + ??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 98 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void) + ?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 99 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int) + ??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void) + ?GetSize@TGlxMedia@@QBEHAAI@Z @ 101 NONAME ; int TGlxMedia::GetSize(unsigned int &) const + ??1TGlxScrollingDirectionIterator@@QAE@XZ @ 102 NONAME ; TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator(void) + ?SetFocusIndexL@CGlxListWindow@@QAEXH@Z @ 103 NONAME ; void CGlxListWindow::SetFocusIndexL(int) + ??1TGlxExclusionIterator@@QAE@XZ @ 104 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void) + ??1CGlxDefaultListAttributeContext@@UAE@XZ @ 105 NONAME ; CGlxDefaultListAttributeContext::~CGlxDefaultListAttributeContext(void) + ??1TGlxFetchContextRemover@@QAE@XZ @ 106 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void) + ?RemoveObjectsL@CGlxListWindow@@QAEXHHHH@Z @ 107 NONAME ; void CGlxListWindow::RemoveObjectsL(int, int, int, int) + ?CleanupL@CGlxListWindow@@QAEXXZ @ 108 NONAME ; void CGlxListWindow::CleanupL(void) + ?SetRangeOffsets@TGlxFromVisibleIndexOutwardListIterator@@QAEXHH@Z @ 109 NONAME ; void TGlxFromVisibleIndexOutwardListIterator::SetRangeOffsets(int, int) + ?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 110 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int) + ?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 111 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const ??0TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 112 NONAME ; TGlxFromVisibleIndexOutwardListIterator::TGlxFromVisibleIndexOutwardListIterator(void) ??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 113 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId const &, class TGlxMediaId) - ?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 114 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const + ?AddObjectsL@CGlxListWindow@@QAEXHHHH@Z @ 114 NONAME ; void CGlxListWindow::AddObjectsL(int, int, int, int) ?MatchById@TGlxMedia@@SAHABV1@0@Z @ 115 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &) ?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 116 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int) ?SetRangeOffsets@CGlxDefaultListAttributeContext@@QAEXHH@Z @ 117 NONAME ; void CGlxDefaultListAttributeContext::SetRangeOffsets(int, int) diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/eabi/glxmedialistsu.def --- a/ui/uiengine/medialists/eabi/glxmedialistsu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/eabi/glxmedialistsu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,17 +1,17 @@ EXPORTS _ZN13MGlxMediaList10UnmarkAllLERS_ @ 1 NONAME _ZN13MGlxMediaList9InstanceLERK18CMPXCollectionPathRK6TGlxIdI19TGlxIdHierarchyBaseEP9CMPXMedia @ 2 NONAME - _ZN14CGlxListWindow10AddObjectsEii @ 3 NONAME - _ZN14CGlxListWindow10AddObjectsEiiii @ 4 NONAME - _ZN14CGlxListWindow10ConstructLEv @ 5 NONAME - _ZN14CGlxListWindow13RemoveObjectsEii @ 6 NONAME - _ZN14CGlxListWindow13RemoveObjectsEiiii @ 7 NONAME - _ZN14CGlxListWindow13SetFocusIndexEi @ 8 NONAME - _ZN14CGlxListWindow13SetFocusIndexEii @ 9 NONAME + _ZN14CGlxListWindow10ConstructLEv @ 3 NONAME + _ZN14CGlxListWindow11AddObjectsLEii @ 4 NONAME + _ZN14CGlxListWindow11AddObjectsLEiiii @ 5 NONAME + _ZN14CGlxListWindow14RemoveObjectsLEii @ 6 NONAME + _ZN14CGlxListWindow14RemoveObjectsLEiiii @ 7 NONAME + _ZN14CGlxListWindow14SetFocusIndexLEi @ 8 NONAME + _ZN14CGlxListWindow14SetFocusIndexLEii @ 9 NONAME _ZN14CGlxListWindow16SetRangeOffsetsLEii @ 10 NONAME _ZN14CGlxListWindow16SetRangeOffsetsLEiiii @ 11 NONAME _ZN14CGlxListWindow2AtEi @ 12 NONAME - _ZN14CGlxListWindow7CleanupEv @ 13 NONAME + _ZN14CGlxListWindow8CleanupLEv @ 13 NONAME _ZN14CGlxListWindowC1ER23MGlxWindowObjectFactory @ 14 NONAME _ZN14CGlxListWindowC2ER23MGlxWindowObjectFactory @ 15 NONAME _ZN14CGlxListWindowD0Ev @ 16 NONAME @@ -133,80 +133,85 @@ _ZN9MGlxCache9InstanceLEv @ 132 NONAME _ZN9TGlxMedia23DeleteLocationAttributeEv @ 133 NONAME _ZN9TGlxMedia9MatchByIdERKS_S1_ @ 134 NONAME - _ZNK14CGlxListWindow2AtEi @ 135 NONAME - _ZNK14CGlxListWindow8IteratorEv @ 136 NONAME - _ZNK21TGlxSelectionIterator7InRangeEi @ 137 NONAME - _ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 138 NONAME - _ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 139 NONAME - _ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 140 NONAME - _ZNK9TGlxMedia11GetDurationERf @ 141 NONAME - _ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 142 NONAME - _ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 143 NONAME - _ZNK9TGlxMedia13GetDimensionsER5TSize @ 144 NONAME - _ZNK9TGlxMedia13GetFrameCountERi @ 145 NONAME - _ZNK9TGlxMedia13GetSystemItemERi @ 146 NONAME - _ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 147 NONAME - _ZNK9TGlxMedia14IsDrmProtectedEv @ 148 NONAME - _ZNK9TGlxMedia15GetDrmProtectedERi @ 149 NONAME - _ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 150 NONAME - _ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 151 NONAME - _ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 152 NONAME - _ZNK9TGlxMedia20GetStaticItemCommandERi @ 153 NONAME - _ZNK9TGlxMedia21GetContainedItemCountERi @ 154 NONAME - _ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 155 NONAME - _ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 156 NONAME - _ZNK9TGlxMedia3UriEv @ 157 NONAME - _ZNK9TGlxMedia5TitleEv @ 158 NONAME - _ZNK9TGlxMedia7CommentEv @ 159 NONAME - _ZNK9TGlxMedia7GetDateER5TTime @ 160 NONAME - _ZNK9TGlxMedia7GetSizeERi @ 161 NONAME - _ZNK9TGlxMedia8CategoryEv @ 162 NONAME - _ZNK9TGlxMedia8IsStaticEv @ 163 NONAME - _ZNK9TGlxMedia8MimeTypeEv @ 164 NONAME - _ZNK9TGlxMedia8SubTitleEv @ 165 NONAME - _ZNK9TGlxMedia9IdSpaceIdEv @ 166 NONAME - _ZTI13CGlxMediaList @ 167 NONAME - _ZTI14CGlxListWindow @ 168 NONAME - _ZTI15CGlxImageReader @ 169 NONAME - _ZTI16CGlxCacheManager @ 170 NONAME - _ZTI20CGlxAttributeContext @ 171 NONAME - _ZTI20CGlxGarbageCollector @ 172 NONAME - _ZTI20CGlxThumbnailContext @ 173 NONAME - _ZTI21TGlxExclusionIterator @ 174 NONAME - _ZTI21TGlxSelectionIterator @ 175 NONAME - _ZTI22TGlxSequentialIterator @ 176 NONAME - _ZTI22TGlxSpecificIdIterator @ 177 NONAME - _ZTI25TGlxFirstThenLastIterator @ 178 NONAME - _ZTI27CGlxDefaultAttributeContext @ 179 NONAME - _ZTI27CGlxDefaultThumbnailContext @ 180 NONAME - _ZTI28TGlxFromFocusOutwardIterator @ 181 NONAME - _ZTI30TGlxScrollingDirectionIterator @ 182 NONAME - _ZTI31CGlxDefaultListAttributeContext @ 183 NONAME - _ZTI33TGlxFromManualIndexBlockyIterator @ 184 NONAME - _ZTI34TGlxFromFocusOutwardBlockyIterator @ 185 NONAME - _ZTI34TGlxFromIndexOutwardBlockyIterator @ 186 NONAME - _ZTI39TGlxFromVisibleIndexOutwardListIterator @ 187 NONAME - _ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 188 NONAME - _ZTV13CGlxMediaList @ 189 NONAME - _ZTV14CGlxListWindow @ 190 NONAME - _ZTV15CGlxImageReader @ 191 NONAME - _ZTV16CGlxCacheManager @ 192 NONAME - _ZTV20CGlxAttributeContext @ 193 NONAME - _ZTV20CGlxGarbageCollector @ 194 NONAME - _ZTV20CGlxThumbnailContext @ 195 NONAME - _ZTV21TGlxExclusionIterator @ 196 NONAME - _ZTV21TGlxSelectionIterator @ 197 NONAME - _ZTV22TGlxSequentialIterator @ 198 NONAME - _ZTV22TGlxSpecificIdIterator @ 199 NONAME - _ZTV25TGlxFirstThenLastIterator @ 200 NONAME - _ZTV27CGlxDefaultAttributeContext @ 201 NONAME - _ZTV27CGlxDefaultThumbnailContext @ 202 NONAME - _ZTV28TGlxFromFocusOutwardIterator @ 203 NONAME - _ZTV30TGlxScrollingDirectionIterator @ 204 NONAME - _ZTV31CGlxDefaultListAttributeContext @ 205 NONAME - _ZTV33TGlxFromManualIndexBlockyIterator @ 206 NONAME - _ZTV34TGlxFromFocusOutwardBlockyIterator @ 207 NONAME - _ZTV34TGlxFromIndexOutwardBlockyIterator @ 208 NONAME - _ZTV39TGlxFromVisibleIndexOutwardListIterator @ 209 NONAME - _ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 210 NONAME + _ZNK12CGlxItemList18__DbgTestInvariantEv @ 135 NONAME + _ZNK14CGlxListWindow18__DbgTestInvariantEv @ 136 NONAME + _ZNK14CGlxListWindow2AtEi @ 137 NONAME + _ZNK14CGlxListWindow8IteratorEv @ 138 NONAME + _ZNK17CGlxNavigableList18__DbgTestInvariantEv @ 139 NONAME + _ZNK18CGlxStaticItemList18__DbgTestInvariantEv @ 140 NONAME + _ZNK21TGlxSelectionIterator7InRangeEi @ 141 NONAME + _ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 142 NONAME + _ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 143 NONAME + _ZNK9CGlxMedia18__DbgTestInvariantEv @ 144 NONAME + _ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 145 NONAME + _ZNK9TGlxMedia11GetDurationERf @ 146 NONAME + _ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 147 NONAME + _ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 148 NONAME + _ZNK9TGlxMedia13GetDimensionsER5TSize @ 149 NONAME + _ZNK9TGlxMedia13GetFrameCountERi @ 150 NONAME + _ZNK9TGlxMedia13GetSystemItemERi @ 151 NONAME + _ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 152 NONAME + _ZNK9TGlxMedia14IsDrmProtectedEv @ 153 NONAME + _ZNK9TGlxMedia15GetDrmProtectedERi @ 154 NONAME + _ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 155 NONAME + _ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 156 NONAME + _ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 157 NONAME + _ZNK9TGlxMedia20GetStaticItemCommandERi @ 158 NONAME + _ZNK9TGlxMedia21GetContainedItemCountERi @ 159 NONAME + _ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 160 NONAME + _ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 161 NONAME + _ZNK9TGlxMedia3UriEv @ 162 NONAME + _ZNK9TGlxMedia5TitleEv @ 163 NONAME + _ZNK9TGlxMedia7CommentEv @ 164 NONAME + _ZNK9TGlxMedia7GetDateER5TTime @ 165 NONAME + _ZNK9TGlxMedia7GetSizeERj @ 166 NONAME + _ZNK9TGlxMedia8CategoryEv @ 167 NONAME + _ZNK9TGlxMedia8IsStaticEv @ 168 NONAME + _ZNK9TGlxMedia8MimeTypeEv @ 169 NONAME + _ZNK9TGlxMedia8SubTitleEv @ 170 NONAME + _ZNK9TGlxMedia9IdSpaceIdEv @ 171 NONAME + _ZTI13CGlxMediaList @ 172 NONAME + _ZTI14CGlxListWindow @ 173 NONAME + _ZTI15CGlxImageReader @ 174 NONAME + _ZTI16CGlxCacheManager @ 175 NONAME + _ZTI20CGlxAttributeContext @ 176 NONAME + _ZTI20CGlxGarbageCollector @ 177 NONAME + _ZTI20CGlxThumbnailContext @ 178 NONAME + _ZTI21TGlxExclusionIterator @ 179 NONAME + _ZTI21TGlxSelectionIterator @ 180 NONAME + _ZTI22TGlxSequentialIterator @ 181 NONAME + _ZTI22TGlxSpecificIdIterator @ 182 NONAME + _ZTI25TGlxFirstThenLastIterator @ 183 NONAME + _ZTI27CGlxDefaultAttributeContext @ 184 NONAME + _ZTI27CGlxDefaultThumbnailContext @ 185 NONAME + _ZTI28TGlxFromFocusOutwardIterator @ 186 NONAME + _ZTI30TGlxScrollingDirectionIterator @ 187 NONAME + _ZTI31CGlxDefaultListAttributeContext @ 188 NONAME + _ZTI33TGlxFromManualIndexBlockyIterator @ 189 NONAME + _ZTI34TGlxFromFocusOutwardBlockyIterator @ 190 NONAME + _ZTI34TGlxFromIndexOutwardBlockyIterator @ 191 NONAME + _ZTI39TGlxFromVisibleIndexOutwardListIterator @ 192 NONAME + _ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 193 NONAME + _ZTV13CGlxMediaList @ 194 NONAME + _ZTV14CGlxListWindow @ 195 NONAME + _ZTV15CGlxImageReader @ 196 NONAME + _ZTV16CGlxCacheManager @ 197 NONAME + _ZTV20CGlxAttributeContext @ 198 NONAME + _ZTV20CGlxGarbageCollector @ 199 NONAME + _ZTV20CGlxThumbnailContext @ 200 NONAME + _ZTV21TGlxExclusionIterator @ 201 NONAME + _ZTV21TGlxSelectionIterator @ 202 NONAME + _ZTV22TGlxSequentialIterator @ 203 NONAME + _ZTV22TGlxSpecificIdIterator @ 204 NONAME + _ZTV25TGlxFirstThenLastIterator @ 205 NONAME + _ZTV27CGlxDefaultAttributeContext @ 206 NONAME + _ZTV27CGlxDefaultThumbnailContext @ 207 NONAME + _ZTV28TGlxFromFocusOutwardIterator @ 208 NONAME + _ZTV30TGlxScrollingDirectionIterator @ 209 NONAME + _ZTV31CGlxDefaultListAttributeContext @ 210 NONAME + _ZTV33TGlxFromManualIndexBlockyIterator @ 211 NONAME + _ZTV34TGlxFromFocusOutwardBlockyIterator @ 212 NONAME + _ZTV34TGlxFromIndexOutwardBlockyIterator @ 213 NONAME + _ZTV39TGlxFromVisibleIndexOutwardListIterator @ 214 NONAME + _ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 215 NONAME diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/inc/glxlistwindow.h --- a/ui/uiengine/medialists/inc/glxlistwindow.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/inc/glxlistwindow.h Wed Aug 18 09:48:53 2010 +0300 @@ -108,7 +108,7 @@ * classes implement MGlxWindowObjectFactory, since vtable would not * be valid in the destructor */ - IMPORT_C void Cleanup(); + IMPORT_C void CleanupL(); /** * Updates range offset. The range is the span of indexes that defined @@ -128,16 +128,16 @@ * Sets the focus. * @param aFocusIndex index of the object to be focused in the list */ - /* @todo depricated */ IMPORT_C void SetFocusIndex( TInt aFocusIndex ); - IMPORT_C void SetFocusIndex( TInt aFocusIndex, TInt aTotalSize ); + /* @todo depricated */ IMPORT_C void SetFocusIndexL( TInt aFocusIndex ); + IMPORT_C void SetFocusIndexL( TInt aFocusIndex, TInt aTotalSize ); /** * Adds objects to the list. Updates window if necessary. * The function assumes that the underlying data structure has * already changed. */ - /* @todo depricated */ IMPORT_C void AddObjects( TInt aFirstNewIndex, TInt aLastNewIndex ); - IMPORT_C void AddObjects( TInt aFocusIndex, TInt aTotalSize, + /* @todo depricated */ IMPORT_C void AddObjectsL( TInt aFirstNewIndex, TInt aLastNewIndex ); + IMPORT_C void AddObjectsL( TInt aFocusIndex, TInt aTotalSize, TInt aFirstNewIndex, TInt aLastNewIndex ); /** @@ -145,8 +145,8 @@ * The function assumes that the underlying data structure has * already changed. */ - /* @todo depricated */ IMPORT_C void RemoveObjects( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ); - IMPORT_C void RemoveObjects( TInt aFocusIndex, TInt aTotalSize, + /* @todo depricated */ IMPORT_C void RemoveObjectsL( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ); + IMPORT_C void RemoveObjectsL( TInt aFocusIndex, TInt aTotalSize, TInt aFirstRemovedIndex, TInt aLastRemovedIndex ); /** @@ -192,9 +192,9 @@ }; /** Update the window based on the change */ - void Update( const TChange& aChange ); + void UpdateL( const TChange& aChange ); /** Move objects from main window to working window, or object pool if not needed */ - void PopulateExistingAndUnuseOld( const TChange& aChange ); + void PopulateExistingAndUnuseOldL( const TChange& aChange ); /** Populate main window with items from object pool */ void PopulateNew(); /** Make working window the main window and vice versa */ diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/inc/glxmedia.h --- a/ui/uiengine/medialists/inc/glxmedia.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/inc/glxmedia.h Wed Aug 18 09:48:53 2010 +0300 @@ -128,7 +128,7 @@ * @return EFalse if unable to get size - aSize is unchanged. * ETrue if size successfully put in aSize. */ - IMPORT_C TBool GetSize(TInt& aSize) const; + IMPORT_C TBool GetSize(TUint& aSize) const; /** * Get the duration associated with the media. diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/inc/glxmedialist.h --- a/ui/uiengine/medialists/inc/glxmedialist.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/inc/glxmedialist.h Wed Aug 18 09:48:53 2010 +0300 @@ -99,7 +99,10 @@ * @param aAttributes attributes to request for the items * @param aDetailedSpecs attribute specifications */ - void AttributeRequestL(RArray& aItemIndexes, RArray& aItemIds, RArray& aAttributes, CMPXAttributeSpecs*& aDetailedSpecs) const; + void AttributeRequestL(RArray& aItemIndexes, + RArray& aItemIds, + RArray& aAttributes, + CMPXAttributeSpecs*& aDetailedSpecs) const; /** * Ordering function for attributes diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxattributecontext.cpp --- a/ui/uiengine/medialists/src/glxattributecontext.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxattributecontext.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -236,12 +236,14 @@ return; } + CleanupClosePushL(aAttributes); // Just list all attributes specified for this context TInt count = iAttributes.Count(); for (TInt i = 0; i < count; i++) { aAttributes.AppendL(iAttributes[i]); } + CleanupStack::Pop(&aAttributes); } // ----------------------------------------------------------------------------- @@ -343,7 +345,7 @@ const TMPXAttribute& aAttribute) const { TRACER("CGlxAttributeContext::AddItemAttributeL"); - + CleanupClosePushL(aAttributes); TIdentityRelation match(&TMPXAttribute::Match); TInt index = aAttributes.Find(aAttribute, match); @@ -351,6 +353,7 @@ { aAttributes.AppendL(aAttribute); } + CleanupStack::Pop(&aAttributes); } // ----------------------------------------------------------------------------- diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxcache.cpp --- a/ui/uiengine/medialists/src/glxcache.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxcache.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -241,6 +241,7 @@ RArray& aNewAttributes) { TRACER("CGlxCache::CopyNewAndModifiedL"); + CleanupClosePushL(aNewAttributes); /// @todo This is all temporary until global chunk based CMPXMedia is available TInt count = aSource.Count(); @@ -305,11 +306,14 @@ } else if (attrib == KGlxMediaGeneralLastModifiedDate) { - aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL(attrib)); + TTime modified = aSource.ValueTObjectL(attrib); + TTimeIntervalSeconds utcOffset = User::UTCOffset(); + modified += utcOffset; + aTarget.SetTObjectValueL(attrib, modified); } else if (attrib == KMPXMediaGeneralSize) { - aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL(attrib)); + aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL(attrib)); } else if (attrib == KMPXMediaColDetailSpaceId) { @@ -373,6 +377,7 @@ } } } + CleanupStack::Pop(&aNewAttributes); } // ----------------------------------------------------------------------------- diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxcachemanager.cpp --- a/ui/uiengine/medialists/src/glxcachemanager.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxcachemanager.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -348,7 +348,7 @@ TInt userCount = item->UserCount(); for ( TInt userIndex = 0; userIndex < userCount; userIndex++ ) { - users.InsertInAddressOrder( &item->User( userIndex ) ); + users.InsertInAddressOrderL( &item->User( userIndex ) ); } } @@ -661,7 +661,9 @@ iThumbnailRequestIds.AppendL(TLoadingTN(iTnEngine->GetThumbnailL(itemId.Value()), spaceId, tnSize, itemId)); #else CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(item.Uri(), 0); - iThumbnailRequestIds.AppendL(TLoadingTN(iTnEngine->GetThumbnailL(*source), spaceId, tnSize, itemId)); + iThumbnailRequestIds.AppendL(TLoadingTN( + iTnEngine->GetThumbnailL(*source), + spaceId, tnSize, itemId)); CleanupStack::PopAndDestroy(source); #endif } @@ -738,7 +740,7 @@ RFile64& imageHandle = imageVwrMgr->ImageFileHandle(); if ( &imageHandle != NULL ) { - fileName.Append(imageHandle.FullName(fileName)); + imageHandle.FullName(fileName); } else { @@ -933,10 +935,7 @@ if(errInImage == KErrNone) { //need to fetch the original file dimensions - if(errInImage == KErrNone) - { dimensions = iReader->GetDimensions(); - } iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions); } else diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxgarbagecollector.cpp --- a/ui/uiengine/medialists/src/glxgarbagecollector.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxgarbagecollector.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -163,6 +163,7 @@ // void CGlxGarbageCollector::FlushPagesL(TInt aCount) { + TRACER("CGlxGarbageCollector::FlushPagesL"); TBool reachedEnd = CleanupCaches(aCount); if ( reachedEnd ) diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxitemlist.cpp --- a/ui/uiengine/medialists/src/glxitemlist.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxitemlist.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -538,7 +538,7 @@ // --------------------------------------------------------------------------- // Test invariant // --------------------------------------------------------------------------- -void CGlxItemList::__DbgTestInvariant() const +EXPORT_C void CGlxItemList::__DbgTestInvariant() const { #ifdef _DEBUG diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxlistwindow.cpp --- a/ui/uiengine/medialists/src/glxlistwindow.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxlistwindow.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -52,7 +52,7 @@ } /** Preparet the window to accept items */ - void Initialize( const CGlxListWindow::TRange& aRange, TInt aTotalSize ) + void InitializeL( const CGlxListWindow::TRange& aRange, TInt aTotalSize ) { __TEST_INVARIANT; @@ -68,7 +68,7 @@ for ( TInt i = iObjects.Count(); i < aRange.iLength; i++ ) { // Append cannot fail since reservation has been made - ( void ) iObjects.Append( NULL ); + ( void ) iObjects.AppendL( NULL ); } // remove unnecessary pointers @@ -276,12 +276,12 @@ // Cleans up remaining objects in the window // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxListWindow::Cleanup() +EXPORT_C void CGlxListWindow::CleanupL() { - TRACER("CGlxListWindow::Cleanup"); + TRACER("CGlxListWindow::CleanupL"); // make the window empty. this will clean up all remaining objects. - Update( TChange( KErrNotFound, 0, EChangeObjectsRemoved, 0, iWindow->TotalSize() - 1 ) ); + UpdateL( TChange( KErrNotFound, 0, EChangeObjectsRemoved, 0, iWindow->TotalSize() - 1 ) ); } // ----------------------------------------------------------------------------- @@ -326,10 +326,10 @@ for ( TInt i = iWindow->Size() + iUnusedObjects.Count(); i < maxObjectCount; i++ ) { // cannot fail since reservation made above - ( void ) iUnusedObjects.Append( iObjectFactory.CreateObjectL() ); + ( void )iUnusedObjects.AppendL( iObjectFactory.CreateObjectL() ); } - Update( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) ); + UpdateL( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) ); } // ----------------------------------------------------------------------------- @@ -347,27 +347,27 @@ // SetFocusIndexL // ----------------------------------------------------------------------------- // DEPRICATED -EXPORT_C void CGlxListWindow::SetFocusIndex( TInt aFocusIndex ) +EXPORT_C void CGlxListWindow::SetFocusIndexL( TInt aFocusIndex ) { - TRACER("CGlxListWindow::SetFocusIndex"); + TRACER("CGlxListWindow::SetFocusIndexL"); - SetFocusIndex( aFocusIndex, iWindow->TotalSize() ); + SetFocusIndexL( aFocusIndex, iWindow->TotalSize() ); } // ----------------------------------------------------------------------------- // SetFocusIndexL // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxListWindow::SetFocusIndex( TInt aFocusIndex, TInt aTotalSize ) +EXPORT_C void CGlxListWindow::SetFocusIndexL( TInt aFocusIndex, TInt aTotalSize ) { - TRACER("CGlxListWindow::SetFocusIndex"); + TRACER("CGlxListWindow::SetFocusIndexL"); __ASSERT_DEBUG( ( 0 <= aFocusIndex && aFocusIndex < aTotalSize ) || ( KErrNotFound == aFocusIndex && 0 == aTotalSize ), Panic( EGlxPanicIllegalArgument ) ); __TEST_INVARIANT; - Update( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) ); + UpdateL( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) ); __TEST_INVARIANT; } @@ -376,9 +376,9 @@ // AddObjects // ----------------------------------------------------------------------------- // DEPRICATED -EXPORT_C void CGlxListWindow::AddObjects( TInt aFirstNewIndex, TInt aLastNewIndex ) +EXPORT_C void CGlxListWindow::AddObjectsL( TInt aFirstNewIndex, TInt aLastNewIndex ) { - TRACER("CGlxListWindow::AddObjects"); + TRACER("CGlxListWindow::AddObjectsL"); TInt newItemCount = aLastNewIndex - aFirstNewIndex + 1; TInt newTotalSize = iWindow->TotalSize() + newItemCount; @@ -398,17 +398,17 @@ newFocusIndex += newItemCount; } - AddObjects( newFocusIndex, newTotalSize, aFirstNewIndex, aLastNewIndex ); + AddObjectsL( newFocusIndex, newTotalSize, aFirstNewIndex, aLastNewIndex ); } // ----------------------------------------------------------------------------- // AddObjects // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxListWindow::AddObjects( TInt aFocusIndex, +EXPORT_C void CGlxListWindow::AddObjectsL( TInt aFocusIndex, TInt aTotalSize, TInt aFirstNewIndex, TInt aLastNewIndex ) { - TRACER("CGlxListWindow::AddObjects"); + TRACER("CGlxListWindow::AddObjectsL"); __ASSERT_DEBUG( 0 <= aFirstNewIndex && aFirstNewIndex <= aLastNewIndex && aLastNewIndex < aTotalSize && @@ -416,7 +416,7 @@ Panic( EGlxPanicIllegalArgument ) ); __TEST_INVARIANT; - Update( TChange( aFocusIndex, aTotalSize, EChangeObjectsAdded, + UpdateL( TChange( aFocusIndex, aTotalSize, EChangeObjectsAdded, aFirstNewIndex, aLastNewIndex ) ); __TEST_INVARIANT; @@ -426,9 +426,9 @@ // RemoveObjects // ----------------------------------------------------------------------------- // DEPRICATED -EXPORT_C void CGlxListWindow::RemoveObjects( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ) +EXPORT_C void CGlxListWindow::RemoveObjectsL( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ) { - TRACER("CGlxListWindow::RemoveObjects"); + TRACER("CGlxListWindow::RemoveObjectsL"); TInt itemsRemovedCount = aLastRemovedIndex - aFirstRemovedIndex + 1; TInt newTotalSize = iWindow->TotalSize() - itemsRemovedCount; @@ -461,17 +461,17 @@ } } - RemoveObjects( newFocusIndex, newTotalSize, aFirstRemovedIndex, aLastRemovedIndex ); + RemoveObjectsL( newFocusIndex, newTotalSize, aFirstRemovedIndex, aLastRemovedIndex ); } // ----------------------------------------------------------------------------- // RemoveObjects // ----------------------------------------------------------------------------- // -EXPORT_C void CGlxListWindow::RemoveObjects( TInt aFocusIndex, +EXPORT_C void CGlxListWindow::RemoveObjectsL( TInt aFocusIndex, TInt aTotalSize, TInt aFirstRemovedIndex, TInt aLastRemovedIndex ) { - TRACER("CGlxListWindow::RemoveObjects"); + TRACER("CGlxListWindow::RemoveObjectsL"); __ASSERT_DEBUG( 0 <= aFirstRemovedIndex && aFirstRemovedIndex <= aLastRemovedIndex && ( ( 0 <= aFocusIndex && aFocusIndex < aTotalSize ) || @@ -479,7 +479,7 @@ Panic( EGlxPanicIllegalArgument ) ); __TEST_INVARIANT; - Update( TChange( aFocusIndex, aTotalSize, EChangeObjectsRemoved, + UpdateL( TChange( aFocusIndex, aTotalSize, EChangeObjectsRemoved, aFirstRemovedIndex, aLastRemovedIndex ) ); __TEST_INVARIANT; @@ -489,9 +489,9 @@ // Update // ----------------------------------------------------------------------------- // -void CGlxListWindow::Update( const TChange& aChange ) +void CGlxListWindow::UpdateL( const TChange& aChange ) { - TRACER("CGlxListWindow::Update"); + TRACER("CGlxListWindow::UpdateL"); // (in a list of: |abcdefghijklm| // iWindow: |----efghi----| @@ -500,14 +500,14 @@ // is shorter than max window length) // Prepare the working window to accept objects - iWorkingWindow->Initialize( Range( aChange ), aChange.iNewTotalSize ); + iWorkingWindow->InitializeL( Range( aChange ), aChange.iNewTotalSize ); // iWindow: |----efghi----| // iWorkingWindow: |------00000--| // iUnusedObjects: XXX // move unused objects to pool, and reusable objects to working window - PopulateExistingAndUnuseOld( aChange ); + PopulateExistingAndUnuseOldL( aChange ); // iWindow: |----efghi----| // iWorkingWindow: |------ghi00--| @@ -537,9 +537,9 @@ // PopulateExistingAndUnuseOld // ----------------------------------------------------------------------------- // -void CGlxListWindow::PopulateExistingAndUnuseOld( const TChange& aChange ) +void CGlxListWindow::PopulateExistingAndUnuseOldL( const TChange& aChange ) { - TRACER("CGlxListWindow::PopulateExistingAndUnuseOld"); + TRACER("CGlxListWindow::PopulateExistingAndUnuseOldL"); // move objects that are needed after the change into the working window, // and objects that are not needed into the object pool @@ -563,7 +563,7 @@ iObjectFactory.CleanupObject( index, *( *iWindow )[ index ] ); // add the object to the unused objects pool // cannot fail since reservation made - ( void ) iUnusedObjects.Append( ( *iWindow )[ index ] ); + ( void )iUnusedObjects.AppendL( ( *iWindow )[ index ] ); } // clear the pointer in the existing window. it is not strictly necessary @@ -732,7 +732,7 @@ // --------------------------------------------------------------------------- // Test invariant // --------------------------------------------------------------------------- -void CGlxListWindow::__DbgTestInvariant() const +EXPORT_C void CGlxListWindow::__DbgTestInvariant() const { TRACER("CGlxListWindow::__DbgTestInvariant"); diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxmedia.cpp --- a/ui/uiengine/medialists/src/glxmedia.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxmedia.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -153,7 +153,7 @@ // ----------------------------------------------------------------------------- // Gets the (file) size // ----------------------------------------------------------------------------- -EXPORT_C TBool TGlxMedia::GetSize(TInt& aSize) const +EXPORT_C TBool TGlxMedia::GetSize(TUint& aSize) const { TRACER("TGlxMedia::GetSize"); @@ -580,7 +580,7 @@ __DEBUG_ONLY( _iUserReservationCount-- ); - iUsers.Append( TMediaUser( &aUser, aIndex ) ); // Ignore error, cannot fail since reservation made + iUsers.AppendL( TMediaUser( &aUser, aIndex ) ); // Ignore error, cannot fail since reservation made } // ----------------------------------------------------------------------------- @@ -984,7 +984,7 @@ // --------------------------------------------------------------------------- // Test invariant // --------------------------------------------------------------------------- -void CGlxMedia::__DbgTestInvariant() const +EXPORT_C void CGlxMedia::__DbgTestInvariant() const { TRACER("CGlxMedia::__DbgTestInvariant"); diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxmedialist.cpp --- a/ui/uiengine/medialists/src/glxmedialist.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxmedialist.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -39,6 +39,16 @@ #include "mglxmedialistobserver.h" #include "glxmediastaticitemdefs.h" +/** + * Min & Max wait interval for a modify event, in microseconds + * This is to allow thumbnail manager to procees the event first. + */ +const TInt KModifyEventMinWaitInterval = 2000000; +const TInt KModifyEventMaxWaitInterval = 3000000; +/** + * Maximum items count for minimum wait interval. + */ +const TInt KMaxItemsCount = 500; namespace NGlxMediaList { /** @@ -1327,7 +1337,7 @@ for (TInt level = 0; level < levels; level++) { TGlxMediaId id(aPath.Id(level)); - iPath.Append(id); + iPath.AppendL(id); } @@ -1530,6 +1540,28 @@ } CleanupStack::PopAndDestroy(&itemIndices); + RPointerArray& mediaLists = iMediaListArray->Array(); + TInt listCount = mediaLists.Count(); + GLX_DEBUG2("ML:HandleItemModifiedL listCount=%d", listCount); + if (listCount > 0) + { + CGlxMediaList* mediaList = mediaLists[listCount-1]; + if (mediaList == this) + { + GLX_DEBUG3("ML:HandleItemModifiedL(wait) listCount=%d, Id=%d", + listCount, id.Value()); + TTimeIntervalMicroSeconds32 timeout; + timeout = (mediaList->Count() > KMaxItemsCount ? + KModifyEventMaxWaitInterval : KModifyEventMinWaitInterval ); + RTimer timer; + CleanupClosePushL(timer); + TRequestStatus status; + timer.CreateLocal(); + timer.After(status, timeout); + User::WaitForRequest(status); + CleanupStack::PopAndDestroy(&timer); + } + } } } @@ -1757,6 +1789,7 @@ TRACER("CGlxMediaList::UpdateMedia"); TInt count = iItemList->Count(); + GLX_DEBUG2("CGlxMediaList::UpdateMedia() count=%d", count); for (TInt i = 0; i < count; ++i) { TGlxMedia& item = iItemList->Item( i ); @@ -1859,15 +1892,8 @@ { TRACER("CGlxMediaList::CancelPreviousRequests"); - TInt focusIndex = FocusIndex(); - if(focusIndex >= KErrNone) - { - if(!Item(focusIndex).Properties()) - { // If media is NULL, cancel the previous pending request. // Place a new request for the item in focus, to fetch the media attributes iManager->CancelPreviousRequest(); } - } - } diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxnavigablelist.cpp --- a/ui/uiengine/medialists/src/glxnavigablelist.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxnavigablelist.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -561,6 +561,7 @@ { TRACER( "CGlxNavigableList::SelectionL"); + CleanupClosePushL(aItemIds); aItemIds.Reset(); // Reserve full required space to avoid reallocations during loop @@ -571,6 +572,7 @@ { aItemIds.AppendL( iItemList->Item( iSelectedItemIndices[ i ] ).Id() ); } + CleanupStack::Pop(&aItemIds); } // ----------------------------------------------------------------------------- @@ -924,7 +926,7 @@ // --------------------------------------------------------------------------- // Test invariant // --------------------------------------------------------------------------- -void CGlxNavigableList::__DbgTestInvariant() const +EXPORT_C void CGlxNavigableList::__DbgTestInvariant() const { TRACER( "CGlxNavigableList::__DbgTestInvariant"); diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxstaticitemlist.cpp --- a/ui/uiengine/medialists/src/glxstaticitemlist.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxstaticitemlist.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -720,7 +720,7 @@ // --------------------------------------------------------------------------- // Test invariant // --------------------------------------------------------------------------- -void CGlxStaticItemList::__DbgTestInvariant() const +EXPORT_C void CGlxStaticItemList::__DbgTestInvariant() const { TRACER( "CGlxStaticItemList::__DbgTestInvariant"); diff -r f291796e213d -r fb37077c270f ui/uiengine/medialists/src/glxthumbnailcontext.cpp --- a/ui/uiengine/medialists/src/glxthumbnailcontext.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialists/src/glxthumbnailcontext.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -32,7 +32,6 @@ #include "glxmedialist.h" #include "glxerrormanager.h" #include "glxthumbnailutility.h" -//#include "mglxcache.h" #include "glxlistutils.h" /** @@ -80,10 +79,7 @@ void CGlxThumbnailContext::ConstructL() { TRACER( "CGlxThumbnailContext::ConstructL"); - - //iCache = MGlxCache::InstanceL(); iResolutionUtility = CGlxResolutionUtility::InstanceL(); - // iResolutionUtility->AddObserverL( *this ); iDrmUtility = CGlxDRMUtility::InstanceL(); @@ -130,16 +126,9 @@ iSpecs.Close(); - if ( iResolutionUtility ) - { - // iResolutionUtility->RemoveObserver( *this ); - iResolutionUtility->Close(); - } + - /*if ( iCache ) - { - iCache->Close(); - }*/ + } // ----------------------------------------------------------------------------- @@ -363,17 +352,7 @@ return requestCount; } -// ----------------------------------------------------------------------------- -// HandleResolutionChanged -// ----------------------------------------------------------------------------- -// -/*void CGlxThumbnailContext::HandleResolutionChangedL() - { - TRACER( "CGlxThumbnailContext::HandleResolutionChanged"); - - // Ask cache manager to refresh, to fetch thumbnails in new size - iCache->RefreshL(); - }*/ + // ----------------------------------------------------------------------------- // SelectItemL diff -r f291796e213d -r fb37077c270f ui/uiengine/medialistwrapper/inc/glxmlwrapper.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Wed Aug 18 09:48:53 2010 +0300 @@ -134,6 +134,7 @@ bool isSystemItem( int aItemIndex ); void handleTitleAvailable(QString aTitle); + bool isCorruptedImage( int index ); signals: void updateItem(int index, GlxTBContextType tbContextType); void insertItems(int startIndex,int endIndex); diff -r f291796e213d -r fb37077c270f ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Wed Aug 18 09:48:53 2010 +0300 @@ -138,6 +138,7 @@ bool IsDrmProtected(int index ); bool IsDrmValid(int index); void setDrmValid(int index,bool valid); + bool IsCorruptedImage( int aItemIndex ); private: /** diff -r f291796e213d -r fb37077c270f ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -308,7 +308,7 @@ // void GlxMLWrapper::handleDetailsItemAvailable(int itemIndex) { - + Q_UNUSED( itemIndex ) emit updateDetails(); } @@ -330,3 +330,7 @@ emit updateAlbumTitle(aTitle); } +bool GlxMLWrapper::isCorruptedImage( int index ) +{ + return mMLWrapperPrivate->IsCorruptedImage( index ); +} diff -r f291796e213d -r fb37077c270f ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -41,6 +41,7 @@ #include "glxmlgenericobserver.h" #include "glxattributeretriever.h" #include "glxicondefs.h" //Contains the icon names/Ids +#include "glxerrors.h" //#define GLXPERFORMANCE_LOG #include @@ -94,8 +95,8 @@ iLsFsContextActivated(EFalse), iPtFsContextActivated(EFalse), iPtListContextActivated(EFalse), - iSelectionListContextActivated(EFalse), - iDetailsContextActivated(EFalse) + iDetailsContextActivated(EFalse), + iSelectionListContextActivated(EFalse) { TRACER("GlxMLWrapperPrivate::GlxMLWrapperPrivate"); iGridThumbnailContext = NULL; @@ -700,12 +701,8 @@ { GLX_LOG_INFO1("### GlxMLWrapperPrivate::HandleAttributesAvailableL GetIconInfo-Index is %d",aItemIndex); }*/ - else if( tnError == KErrCANoRights) { //handle DRM case - } - else if( tnError ) { - return (new HbIcon(GLXICON_CORRUPT)); - } + GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d and have returned empty icon",aItemIndex); return NULL; @@ -884,7 +881,7 @@ int GlxMLWrapperPrivate::RetrieveItemSize(int aItemIndex) { const TGlxMedia& item = iMediaList->Item( aItemIndex ); - int itemSize ; + TUint itemSize ; item.GetSize(itemSize); return itemSize; } @@ -1187,7 +1184,7 @@ void GlxMLWrapperPrivate::CheckDetailsAttributes(TInt aItemIndex, const RArray& aAttributes) { qDebug("GlxMLWrapperPrivate::CheckDetailsAttributes"); - TBool attribPresent = EFalse; + TMPXAttribute titleAttrib(KMPXMediaGeneralComment); TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); @@ -1196,7 +1193,7 @@ if (KErrNotFound != aAttributes.Find(titleAttrib, match)) { qDebug("GlxMLWrapperPrivate::CheckDetailsAttributes TRUE"); - attribPresent = ETrue; + iMLWrapper->handleDetailsItemAvailable(aItemIndex); GLX_LOG_INFO1("### GlxMLWrapperPrivate::CheckDetailsAttributes title present %d",aItemIndex); } @@ -1319,9 +1316,8 @@ QImage image(data, aBitmap->SizeInPixels().iWidth, aBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16); 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, Qt::KeepAspectRatio ); + aBitmap->UnlockHeap(); HbIcon* targetIcon = new HbIcon( QIcon( pixmap ) ); @@ -1480,3 +1476,19 @@ } } +bool GlxMLWrapperPrivate::IsCorruptedImage( int aItemIndex ) +{ + const TGlxMedia& item = iMediaList->Item( aItemIndex ); + qDebug("GlxMLWrapperPrivate::IsCorruptedImage item property %u ", item.Properties() ); + TInt tnError = GlxErrorManager::HasAttributeErrorL( item.Properties(), KGlxMediaIdThumbnail ); + qDebug("GlxMLWrapperPrivate::IsCorruptedImage index %d error %d ", aItemIndex, tnError); + if ( KErrNone == tnError + || KErrNotSupported == tnError + || KErrCANoRights == tnError + || KErrGlxEmptyContainer == tnError ) { + return false ; + } + else { + return true ; + } +} diff -r f291796e213d -r fb37077c270f ui/uiengine/model/bwins/glxlistmodelu.def --- a/ui/uiengine/model/bwins/glxlistmodelu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/bwins/glxlistmodelu.def Wed Aug 18 09:48:53 2010 +0300 @@ -29,4 +29,5 @@ ?setData@GlxAlbumModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxAlbumModel::setData(class QModelIndex const &, class QVariant const &, int) ?listPopulated@GlxAlbumModel@@IAEXXZ @ 29 NONAME ; void GlxAlbumModel::listPopulated(void) ?modelPopulated@GlxAlbumModel@@QAEXXZ @ 30 NONAME ; void GlxAlbumModel::modelPopulated(void) + ?getCorruptDefaultIcon@GlxAlbumModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 31 NONAME ; class HbIcon * GlxAlbumModel::getCorruptDefaultIcon(class QModelIndex const &) const diff -r f291796e213d -r fb37077c270f ui/uiengine/model/bwins/glxmediamodelu.def --- a/ui/uiengine/model/bwins/glxmediamodelu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/bwins/glxmediamodelu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,42 +1,45 @@ EXPORTS - ?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const - ?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 2 NONAME ; void GlxMediaModel::itemsAdded(int, int) - ?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void) - ?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 4 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType) - ?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 5 NONAME ; void * GlxMediaModel::qt_metacast(char const *) - ?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 6 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const - ?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 7 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &) - ?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &) - ?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 9 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode) - ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int) - ?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject - ?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 12 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const - ??_EGlxMediaModel@@UAE@I@Z @ 13 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int) - ?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 14 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const - ?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int) - ?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 16 NONAME ; void GlxMediaModel::itemCorrupted(int) - ?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 17 NONAME ; void GlxMediaModel::addExternalItems(class QList *) - ?modelpopulated@GlxMediaModel@@QAEXXZ @ 18 NONAME ; void GlxMediaModel::modelpopulated(void) - ?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 19 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const - ?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString GlxMediaModel::tr(char const *, char const *) - ?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 21 NONAME ; void GlxMediaModel::itemsRemoved(int, int) - ?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 22 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const - ?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 23 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const - ??1GlxMediaModel@@UAE@XZ @ 24 NONAME ; GlxMediaModel::~GlxMediaModel(void) - ?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 26 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString) - ?itemUpdated1@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 27 NONAME ; void GlxMediaModel::itemUpdated1(int, enum GlxTBContextType) - ?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int) - ?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 29 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const - ?clearExternalItems@GlxMediaModel@@QAEXXZ @ 30 NONAME ; void GlxMediaModel::clearExternalItems(void) - ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *) - ?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 32 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const - ?populated@GlxMediaModel@@IAEXXZ @ 33 NONAME ; void GlxMediaModel::populated(void) - ??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 34 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &) - ?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 35 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const - ?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 36 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const - ?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 37 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString) - ?updateDetailsView@GlxMediaModel@@IAEXXZ @ 38 NONAME ; void GlxMediaModel::updateDetailsView(void) + ?thumbnailPopulated@GlxMediaModel@@IAEXXZ @ 1 NONAME ; void GlxMediaModel::thumbnailPopulated(void) + ?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const + ?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 3 NONAME ; void GlxMediaModel::itemsAdded(int, int) + ?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) diff -r f291796e213d -r fb37077c270f ui/uiengine/model/eabi/glxlistmodelu.def --- a/ui/uiengine/model/eabi/glxlistmodelu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/eabi/glxlistmodelu.def Wed Aug 18 09:48:53 2010 +0300 @@ -29,4 +29,5 @@ _ZTV13GlxAlbumModel @ 28 NONAME _ZN13GlxAlbumModel13listPopulatedEv @ 29 NONAME _ZN13GlxAlbumModel14modelPopulatedEv @ 30 NONAME + _ZNK13GlxAlbumModel21getCorruptDefaultIconERK11QModelIndex @ 31 NONAME diff -r f291796e213d -r fb37077c270f ui/uiengine/model/eabi/glxmediamodelu.def --- a/ui/uiengine/model/eabi/glxmediamodelu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/eabi/glxmediamodelu.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,8 +1,8 @@ EXPORTS _ZN13GlxMediaModel10itemsAddedEii @ 1 NONAME - _ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME - _ZN13GlxMediaModel11qt_metacastEPKc @ 3 NONAME - _ZN13GlxMediaModel12itemUpdated1Ei16GlxTBContextType @ 4 NONAME + _ZN13GlxMediaModel11itemUpdatedEi16GlxTBContextType @ 2 NONAME + _ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME + _ZN13GlxMediaModel11qt_metacastEPKc @ 4 NONAME _ZN13GlxMediaModel12itemsRemovedEii @ 5 NONAME _ZN13GlxMediaModel13itemCorruptedEi @ 6 NONAME _ZN13GlxMediaModel13setFocusIndexERK11QModelIndex @ 7 NONAME @@ -13,30 +13,33 @@ _ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 12 NONAME _ZN13GlxMediaModel16staticMetaObjectE @ 13 NONAME DATA 16 _ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 14 NONAME - _ZN13GlxMediaModel18clearExternalItemsEv @ 15 NONAME - _ZN13GlxMediaModel19albumTitleAvailableE7QString @ 16 NONAME - _ZN13GlxMediaModel19getStaticMetaObjectEv @ 17 NONAME - _ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 18 NONAME - _ZN13GlxMediaModel9populatedEv @ 19 NONAME - _ZN13GlxMediaModelC1ER12GlxModelParm @ 20 NONAME - _ZN13GlxMediaModelC2ER12GlxModelParm @ 21 NONAME - _ZN13GlxMediaModelD0Ev @ 22 NONAME - _ZN13GlxMediaModelD1Ev @ 23 NONAME - _ZN13GlxMediaModelD2Ev @ 24 NONAME - _ZNK13GlxMediaModel10metaObjectEv @ 25 NONAME - _ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 26 NONAME - _ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 27 NONAME - _ZNK13GlxMediaModel13getFocusIndexEv @ 28 NONAME - _ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 29 NONAME - _ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 30 NONAME - _ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 31 NONAME - _ZNK13GlxMediaModel4dataERK11QModelIndexi @ 32 NONAME - _ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 33 NONAME - _ZNK13GlxMediaModel6parentERK11QModelIndex @ 34 NONAME - _ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 35 NONAME - _ZTI13GlxMediaModel @ 36 NONAME - _ZTV13GlxMediaModel @ 37 NONAME - _ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 38 NONAME - _ZN13GlxMediaModel17updateDetailItemsEv @ 39 NONAME - _ZN13GlxMediaModel17updateDetailsViewEv @ 40 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 + _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 diff -r f291796e213d -r fb37077c270f ui/uiengine/model/listmodel/inc/glxalbummodel.h --- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h Wed Aug 18 09:48:53 2010 +0300 @@ -64,6 +64,7 @@ void setSelectedIndex(const QModelIndex &index); QModelIndex getFocusIndex() const; HbIcon* GetPreviewIconItem(int itemIndex, GlxTBContextType tbContextType) const; + HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const; signals : void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const; @@ -83,6 +84,8 @@ HbIcon* mDefaultIcon; QCache itemIconCache; int mTempVisibleWindowIndex; + HbIcon* m_CorruptIcon; + int mSubState; }; #endif /* GLXALBUMMODEL_H */ diff -r f291796e213d -r fb37077c270f ui/uiengine/model/listmodel/src/glxalbummodel.cpp --- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -25,14 +25,10 @@ #include "glxicondefs.h" //Contains the icon names/Ids -const QColor KListOddRowColor(211, 211, 211, 127); -const QColor KListEvenRowColor(255, 250, 250, 127); - - GlxAlbumModel::GlxAlbumModel(GlxModelParm & modelParm):mContextMode(GlxContextInvalid) { qDebug("GlxAlbumModel::GlxAlbumModel()"); - + mSubState = -1; mMLWrapper = new GlxMLWrapper(modelParm.collection(),modelParm.depth(),modelParm.filterType()); // mMLWrapper->setContextMode(GlxContextPtList); // mContextMode = GlxContextPtList; @@ -41,6 +37,7 @@ //todo get this Default icon from some generic path and not directly. mDefaultIcon = new HbIcon(GLXICON_DEFAULT); + m_CorruptIcon = new HbIcon( GLXICON_CORRUPT ); int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); qDebug("updateItem() connection status %d", err); @@ -61,6 +58,7 @@ qDebug("GlxAlbumModel::~GlxAlbumModel()"); delete mDefaultIcon; mDefaultIcon = NULL; + delete m_CorruptIcon; int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int))); err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); @@ -103,6 +101,10 @@ HbIcon* itemIcon = NULL; QModelIndex idx; + if ( role == GlxSubStateRole ){ + return mSubState; + } + if ( (!index.isValid()) || (rowIndex >= rowCount()) ) { return QVariant(); } @@ -117,7 +119,7 @@ case Qt::DecorationRole : if(mContextMode == GlxContextSelectionList){ - return HbIcon(); + return QVariant(); } else { @@ -128,21 +130,10 @@ } else { qDebug("GlxAlbumModel::data, Item inValid"); - itemIcon = mDefaultIcon; + itemIcon = getCorruptDefaultIcon( index ) ;; return *itemIcon; } } - case Qt::BackgroundRole: - { - if (rowIndex % 2 == 0) - { - return QBrush(KListEvenRowColor); - } - else - { - return QBrush(KListOddRowColor); - } - } case GlxFocusIndexRole : idx = getFocusIndex(); @@ -160,6 +151,13 @@ return QVariant(); } } +HbIcon * GlxAlbumModel::getCorruptDefaultIcon( const QModelIndex &index ) const +{ + if ( mMLWrapper->isCorruptedImage( index.row() ) ) { + return m_CorruptIcon ; + } + return mDefaultIcon ; +} bool GlxAlbumModel::setData ( const QModelIndex & idx, const QVariant & value, int role ) { @@ -171,6 +169,11 @@ return TRUE; } } + + if ( role == GlxSubStateRole && value.isValid() && value.canConvert ()) { + mSubState = value.value () ; + return TRUE; + } if ( GlxFocusIndexRole == role ) { if ( value.isValid() && value.canConvert () ) { @@ -247,11 +250,18 @@ void GlxAlbumModel::modelPopulated() { 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); + } + else { + mMLWrapper->setVisibleWindowIndex(0); + } mTempVisibleWindowIndex = -1; + } emit listPopulated(); } -} + void GlxAlbumModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType ) { Q_UNUSED(tbContextType); @@ -265,6 +275,7 @@ { qDebug("GlxAlbumModel::itemsAdded %d %d", startIndex, endIndex); beginInsertRows(QModelIndex(), startIndex, endIndex); + itemIconCache.clear(); endInsertRows(); } @@ -272,6 +283,7 @@ { qDebug("GlxAlbumModel::itemsRemoved %d %d", startIndex, endIndex); beginRemoveRows(QModelIndex(), startIndex, endIndex); + itemIconCache.clear(); endRemoveRows(); //emit rowsRemoved(index(startIndex,0), startIndex, endIndex ); diff -r f291796e213d -r fb37077c270f ui/uiengine/model/mediamodel/inc/glxmediamodel.h --- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Wed Aug 18 09:48:53 2010 +0300 @@ -43,76 +43,227 @@ { Q_OBJECT public : - - GlxMediaModel(GlxModelParm & modelParm); - ~GlxMediaModel(); - int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - QModelIndex parent(const QModelIndex &child) const; - QVariant data(const QModelIndex &index, int role) const; - bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole); - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; + /** + * Constructor + * @param - model parm struct collectionID, depth, filter, context mode etc + */ + GlxMediaModel( GlxModelParm & modelParm ); - /* - *for setting external image data to the model. + /** + * Destructor + */ + ~GlxMediaModel(); + + /** + * rowCount() - return the number of rows in the model. + * @param - parent model index, not used + */ + int rowCount( const QModelIndex &parent = QModelIndex() ) const; + + /** + * columnCount() - return 1 + * @param - parent model index, not used + */ + int columnCount( const QModelIndex &parent = QModelIndex() ) const; + + /** + * parent() - return the model index of the child. + * It always return invalid model index since no there is no parent + */ + QModelIndex parent( const QModelIndex &child ) const; + + /** + * data() - return the data of corresponding role. + * @param - model index of interested item. + * @param - role of corresponding data. + */ + QVariant data( const QModelIndex &index, int role ) const; + + /** + * setData() - to set the data for corresponding item and role. + * @param - model index of interested item. + * @param - data of the item + * @param - role of corresponding data. + */ + bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ); + + /** + * index - create a new model index for an item. + * @param - row index of the item. + * @param - column index of the item, it is always one. + */ + QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const; + + /** + * addExternalItems() - for setting external image data to the model. */ - void addExternalItems(GlxExternalData* externalItems); - /* - *for removing all external image data from the model. - */ + void addExternalItems( GlxExternalData* externalItems ); + + /** + * clearExternalItems() - for removing all external image data from the model. + */ void clearExternalItems(); - /* - * for checking if the item is editab - */ signals : - void albumTitleAvailable(QString aTitle); + /** + * albumTitleAvailable() - emit this signal when album title is available. + * @parma - album title + */ + void albumTitleAvailable( QString aTitle ); + + /** + * populated() - emit this signal once medialist is populated + */ void populated(); + + /** + * thumbnailPopulated() - emit the signal once some initial page of thumbnail are loaded + * into cache. + */ + void thumbnailPopulated(); + + /** + * iconAvailable() - emit the signal to update the icon in the cache. + * @param - item index + * @param - HbIcon + * @param - media list context type + */ + void iconAvailable( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ) const; + + /** + * updateDetailsView() - emit the signal to update the details view + */ + void updateDetailsView(); private: - HbIcon* GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const; - HbIcon* GetFsIconItem(int itemIndex,GlxTBContextType tbContextType)const; - HbIcon* GetExternalIconItem(int itemIndex,GlxTBContextType tbContextType)const; -/** - * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes. - */ - void setContextMode(GlxContextMode contextMode); - /* - *Removes the context + /** + * GetGridIconItem() - To fetch the grid size thumbnail + * @param - item index + * @param - media list context type + * @return - return the hbicon of the item + */ + HbIcon* GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const; + + /** + * GetFsIconItem() - To fetch the full screen size thumbnail + * @param - item index + * @param - media list context type + * @return - return the hbicon of the item + */ + HbIcon* GetFsIconItem( int itemIndex,GlxTBContextType tbContextType )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. + */ + void setContextMode( GlxContextMode contextMode ); + + /** + *removeContextMode() - Removes the context */ - void removeContextMode(GlxContextMode contextMode); - void setFocusIndex(const QModelIndex &index); + void removeContextMode( GlxContextMode contextMode ); + + /** + * setFocusIndex() - To set the focus index in medialist + * @param - selected item index( focus index ) + */ + void setFocusIndex( const QModelIndex &index ); + + /** + * getFocusIndex() - Retrun the focus index from the medialist. + * @return - focus index. + */ QModelIndex getFocusIndex() const; - void setSelectedIndex(const QModelIndex &index); - + + /** + * setSelectedIndex() - To make the item as seleted in media list to perform some coomand. + * @param - selected item index + */ + void setSelectedIndex( const QModelIndex &index ); - -signals : - void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const; - /* - *signal to update the details view - */ - void updateDetailsView(); + /** + * getCorruptDefaultIcon() - IT will return the corrupt icon if item is corrupted else return the + * default item. + * @param - item index + */ + HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const; + + /** + * thumbnailPopulatedCheck() - To check the some initial page of item is loaded into cache or not + * @param - loaded thumbnail image index in cache. + */ + void thumbnailPopulatedCheck( int index ); + public slots: - void itemUpdated1(int mlIndex, GlxTBContextType tbContextType); - void itemsAdded(int startIndex, int endIndex); - void itemsRemoved(int startIndex, int endIndex); - void itemCorrupted(int itemIndex); - void albumTitleUpdated(QString aTitle); + /** + * itemUpdated() - call back fuction, when thumbnail is added into cache. + * It remove the icon from the local cache and emit the signal of data change. + * @param - item index + * @param - media list context type + */ + void itemUpdated( int mlIndex, GlxTBContextType tbContextType ); + + /** + * itemsAdded() - call back function when new items are added into collection. + * @param - start index of the newly added item + * @param - end endex of the newlyadd item + */ + void itemsAdded( int startIndex, int endIndex ); + + /** + * itemsRemoved() - call back function when some item are removed from the collection. + * @param - start index of the remove items + * @param - end endex of the remove items + */ + void itemsRemoved( int startIndex, int endIndex ); + + /** + * itemCorrupted() - call back function, when a item is corrupted. + * @param - index of the corrupt item + */ + void itemCorrupted( int itemIndex ); + + /** + * albumTitleUpdated() - call back function, when a album collection title is available. + * @param - title of the album. + */ + void albumTitleUpdated( QString aTitle ); + + /** + * modelpopulated() - callback function, when meida list item is populated. + * It set the visual window index and emit the signal to view about it. + */ void modelpopulated(); - /* - *Emits signal to update the details view + + /** + * updateDetailItems() - Emits signal to update the details view */ void updateDetailItems(); -protected: private slots: - void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType); + /** + * updateItemIcon() - update the icon into local cache. + * @param - item index + * @param - HbIcon + * @param - media list context type + */ + 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; @@ -122,6 +273,7 @@ int mSubState; GlxDRMUtilityWrapper* mDRMUtilityWrapper; int mTempVisibleWindowIndex; + bool thumbnailPopulatedFlag; }; diff -r f291796e213d -r fb37077c270f ui/uiengine/model/mediamodel/src/glxmediamodel.cpp --- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -33,17 +33,23 @@ #include #include "glxicondefs.h" //Contains the icon names/Ids -#include +#include "glxcollectionpluginall.hrh" +#include "glxviewids.h" + +#define DELTA_IMAGE 5 +#define INITIAL_POPULATE_IMAGE_COUNT 30 GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm) { qDebug("GlxMediaModel::GlxMediaModel"); + thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true; mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage); mMLWrapper->setContextMode( modelParm.contextMode() ); mContextMode = modelParm.contextMode( ) ; mDRMUtilityWrapper = new GlxDRMUtilityWrapper(); - int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); + + 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); @@ -62,8 +68,8 @@ itemFsIconCache.setMaxCost(5); itemExternalIconCache.setMaxCost(0); - //todo get this Default icon from some generic path and not directly. - m_DefaultIcon = new HbIcon(GLXICON_DEFAULT); + m_DefaultIcon = new HbIcon( GLXICON_DEFAULT ); + m_CorruptIcon = new HbIcon( GLXICON_CORRUPT ); mExternalItems = NULL; externalDataCount = 0; mFocusIndex = -1; @@ -79,15 +85,9 @@ itemFsIconCache.clear(); delete m_DefaultIcon; m_DefaultIcon = NULL; + delete m_CorruptIcon; + m_CorruptIcon = NULL; clearExternalItems(); - int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); - err = disconnect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int))); - err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int))); - err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); - err = disconnect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType))); - err = disconnect(mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString))); - err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated())); - err = disconnect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems())); delete mMLWrapper; delete mDRMUtilityWrapper; } @@ -177,12 +177,11 @@ //todo refactor this whole function ... too many return statements are not good -QVariant GlxMediaModel::data(const QModelIndex &index, int role) const +QVariant GlxMediaModel::data( const QModelIndex &index, int role ) const { - if (role == GlxViewTitle) - { + if (role == GlxViewTitle) { return mMLWrapper->retrieveViewTitle(); - } + } if(role == GlxPopulated) { return mMLWrapper->IsPopulated(); @@ -204,12 +203,11 @@ 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); - } + return m_DefaultIcon->pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied); + } else { return QImage(); - } - + } } HbIcon* itemIcon = NULL; @@ -220,31 +218,18 @@ return QVariant(); } -//external data are always placed at the beginning of the Media List -//Check if the index can be mapped to the external data -//if not then map the index to Ml Index - if(itemIndex < externalDataCount) { - if(role == Qt::DecorationRole || role == GlxFsImageRole){ - return *(GetExternalIconItem(itemIndex,GlxTBContextExternal)); - } - } - else { - itemIndex -= externalDataCount; - } - -//retrieve Data from Media List - if (role == Qt::DecorationRole) { + //retrieve Data from Media List + if ( role == Qt::DecorationRole ) { itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid); - if(itemIcon == NULL || itemIcon->isNull() ){ - itemIcon = m_DefaultIcon; + if( itemIcon == NULL || itemIcon->isNull() ) { + itemIcon = getCorruptDefaultIcon( index ); } return *itemIcon; } - if (role == GlxQImageSmall) - { + if (role == GlxQImageSmall) { return mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid); - } + } if (role == GlxFsImageRole){ if(mContextMode == GlxContextLsFs){ @@ -254,14 +239,17 @@ itemIcon = GetFsIconItem(itemIndex,GlxTBContextPtFs); } - if ( itemIcon == NULL) { - //itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid); + 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 ); - tempPixmap = tempPixmap.scaled(sz, Qt::KeepAspectRatio ); + 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; @@ -270,79 +258,76 @@ } if ( itemIcon == NULL || itemIcon->isNull() ) { - itemIcon = m_DefaultIcon; + itemIcon = getCorruptDefaultIcon( index ) ; } return *itemIcon; } - if (role == GlxQImageLarge) - { - if(mContextMode == GlxContextLsFs) - { + if (role == GlxQImageLarge) { + if(mContextMode == GlxContextLsFs) { itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextLsFs); - } - else - { + } + else { itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextPtFs); - } - if(!itemImage.isNull()) - { + } + if(!itemImage.isNull()) { return itemImage; - } - else - { + } + else { itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid); - if (!itemImage.isNull()) - { + if (!itemImage.isNull()) { QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 ); itemImage = itemImage.scaled(sz,Qt::KeepAspectRatio); - } - return itemImage; } + return itemImage; } + } - if (role == GlxVisualWindowIndex) - { + if (role == GlxVisualWindowIndex) { return mMLWrapper->getVisibleWindowIndex(); - } + } QModelIndex idx; if ( GlxFocusIndexRole == role ) { idx = getFocusIndex(); return idx.row(); } + if(role == GlxUriRole) { return (mMLWrapper->retrieveItemUri(itemIndex)); } + if(role == GlxDimensionsRole) { return (mMLWrapper->retrieveItemDimension(itemIndex)); } if(role == GlxDateRole ) { - qDebug("GlxMediaModel::data GlxDateRole "); return (mMLWrapper->retrieveItemDate(itemIndex)); } if (role == GlxFrameCount) { - qDebug("GlxMediaModel:: GlxFrameCount "); - return (mMLWrapper->retrieveItemFrameCount(itemIndex)); + return (mMLWrapper->retrieveItemFrameCount(itemIndex)); } if (role == GlxHdmiBitmap) { return mMLWrapper->RetrieveBitmap(itemIndex); } + + if ( role == GlxImageCorruptRole ) { + return mMLWrapper->isCorruptedImage( itemIndex ); + } if (role == GlxTimeRole) { return mMLWrapper->retrieveItemTime(itemIndex); } if (role == GlxSizeRole) { - return mMLWrapper->retrieveItemSize(itemIndex); - } + return mMLWrapper->retrieveItemSize(itemIndex); + } - if (role == GlxDescRole) { - return mMLWrapper->retrieveListDesc(itemIndex); - } + if (role == GlxDescRole) { + return mMLWrapper->retrieveListDesc(itemIndex); + } return QVariant(); } @@ -411,32 +396,43 @@ } -void GlxMediaModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType ) +void GlxMediaModel::itemUpdated(int mlIndex,GlxTBContextType tbContextType ) { qDebug("GlxMediaModel::itemUpdated %d", mlIndex); //clear the grid and FS cache if they have any icons with them for that index - if(tbContextType == GlxTBContextGrid) { - itemIconCache.remove(mlIndex); + if( tbContextType == GlxTBContextGrid ) { + if ( !thumbnailPopulatedFlag ) { + thumbnailPopulatedCheck( mlIndex ); + } + itemIconCache.remove(mlIndex); } if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs) { itemFsIconCache.remove(mlIndex); } - emit dataChanged(index(mlIndex+externalDataCount,0),index(mlIndex+externalDataCount,0)); - + emit dataChanged( index( mlIndex , 0 ), index( mlIndex, 0 ) ); } void GlxMediaModel::itemCorrupted(int itemIndex) { qDebug("GlxMediaModel::itemCorrupted %d", itemIndex); - emit dataChanged(index(itemIndex+externalDataCount,0),index(itemIndex+externalDataCount,0)); + if ( !thumbnailPopulatedFlag ) { + thumbnailPopulatedCheck( itemIndex ); + } + emit dataChanged( index( itemIndex , 0 ), index( itemIndex, 0 ) ); } void GlxMediaModel::modelpopulated() { if ( mTempVisibleWindowIndex!=-1) { - mMLWrapper->setVisibleWindowIndex(mTempVisibleWindowIndex); + //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); + } + else { + mMLWrapper->setVisibleWindowIndex(0); + } mTempVisibleWindowIndex = -1; - } + } emit populated(); } @@ -550,6 +546,24 @@ mMLWrapper->setSelectedIndex(itemIndex); } +HbIcon * GlxMediaModel::getCorruptDefaultIcon( const QModelIndex &index ) const +{ + if ( mMLWrapper->isCorruptedImage( index.row() ) ) { + return m_CorruptIcon ; + } + 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 ) ) { + thumbnailPopulatedFlag = TRUE; + emit thumbnailPopulated(); + } +} + bool GlxMediaModel::setData ( const QModelIndex & idx, const QVariant & value, int role ) { Q_UNUSED( idx ) diff -r f291796e213d -r fb37077c270f ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp --- a/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -173,7 +173,20 @@ void GlxModelWrapper::dataChangedinModel(QModelIndex startIndex, QModelIndex endIndex) { - emit dataChanged(index(startIndex.row(),startIndex.column()),index(endIndex.row(),endIndex.column())); + int aStartRow = startIndex.row(); + + if((aStartRow == 14) || (aStartRow+1 == rowCount())) + { + emit dataChanged(index(0,0),index(endIndex.row(),0)); + } + else if(aStartRow >= 15) + { + emit dataChanged(index(aStartRow,0),index(endIndex.row(),0)); + } + else + { + // Do Nothing + } } void GlxModelWrapper::rowsAboutToBeInserted(const QModelIndex &parent,int start,int end) diff -r f291796e213d -r fb37077c270f ui/viewmanagement/bwins/glxstatehandleru.def --- a/ui/viewmanagement/bwins/glxstatehandleru.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/bwins/glxstatehandleru.def Wed Aug 18 09:48:53 2010 +0300 @@ -1,42 +1,46 @@ EXPORTS - ?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const - ?actionTriggered@GlxStateManager@@QAEXH@Z @ 2 NONAME ; void GlxStateManager::actionTriggered(int) - ?setupItemsSignal@GlxStateManager@@IAEXXZ @ 3 NONAME ; void GlxStateManager::setupItemsSignal(void) - ??_EGlxStateManager@@UAE@I@Z @ 4 NONAME ; GlxStateManager::~GlxStateManager(unsigned int) - ?updateTNProgress@GlxStateManager@@QAEXH@Z @ 5 NONAME ; void GlxStateManager::updateTNProgress(int) - ?goBack@GlxStateManager@@QAEXHH@Z @ 6 NONAME ; void GlxStateManager::goBack(int, int) - ?enterMarkingMode@GlxStateManager@@QAEXXZ @ 7 NONAME ; void GlxStateManager::enterMarkingMode(void) - ??1GlxStateManager@@UAE@XZ @ 8 NONAME ; GlxStateManager::~GlxStateManager(void) - ?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void) - ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int) - ?eventHandler@GlxStateManager@@AAEXAAH@Z @ 11 NONAME ; void GlxStateManager::eventHandler(int &) - ?executeCommand@GlxStateManager@@QAE_NH@Z @ 12 NONAME ; bool GlxStateManager::executeCommand(int) - ?setupItems@GlxStateManager@@QAEXXZ @ 13 NONAME ; void GlxStateManager::setupItems(void) - ?previousState@GlxStateManager@@QAEXXZ @ 14 NONAME ; void GlxStateManager::previousState(void) - ?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 15 NONAME ; class GlxState * GlxStateManager::createState(int) - ?exitApplication@GlxStateManager@@AAEXXZ @ 16 NONAME ; void GlxStateManager::exitApplication(void) - ?changeState@GlxStateManager@@QAEXHH@Z @ 17 NONAME ; void GlxStateManager::changeState(int, int) - ?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 18 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0GlxStateManager@@QAE@XZ @ 19 NONAME ; GlxStateManager::GlxStateManager(void) - ?cleanupExternal@GlxStateManager@@QAEXXZ @ 20 NONAME ; void GlxStateManager::cleanupExternal(void) - ?setFullScreenContext@GlxStateManager@@AAEXXZ @ 21 NONAME ; void GlxStateManager::setFullScreenContext(void) - ?cleanAllModel@GlxStateManager@@QAEXXZ @ 22 NONAME ; void GlxStateManager::cleanAllModel(void) - ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *) - ?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 24 NONAME ; void * GlxStateManager::qt_metacast(char const *) - ?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 25 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject - ?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int) - ?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxStateManager::tr(char const *, char const *) - ?nextState@GlxStateManager@@QAEXHH@Z @ 28 NONAME ; void GlxStateManager::nextState(int, int) - ?launchFromExternal@GlxStateManager@@QAEXXZ @ 29 NONAME ; void GlxStateManager::launchFromExternal(void) - ?externalCommand@GlxStateManager@@IAEXH@Z @ 30 NONAME ; void GlxStateManager::externalCommand(int) - ?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 31 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir) - ?launchApplication@GlxStateManager@@QAEXXZ @ 32 NONAME ; void GlxStateManager::launchApplication(void) - ?exitMarkingMode@GlxStateManager@@QAEXXZ @ 33 NONAME ; void GlxStateManager::exitMarkingMode(void) - ?removeCurrentModel@GlxStateManager@@QAEXXZ @ 34 NONAME ; void GlxStateManager::removeCurrentModel(void) - ?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 35 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir) - ?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 36 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *) - ?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 37 NONAME ; void GlxStateManager::vanishProgressDialog(void) - ?launchProgressDialog@GlxStateManager@@AAEXXZ @ 38 NONAME ; void GlxStateManager::launchProgressDialog(void) - ?saveData@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::saveData(void) - ?launchActivity@GlxStateManager@@AAE_NXZ @ 40 NONAME ; bool GlxStateManager::launchActivity(void) + ?launchFetcher@GlxStateManager@@QAEXXZ @ 1 NONAME ; void GlxStateManager::launchFetcher(void) + ?saveData@GlxStateManager@@QAEXXZ @ 2 NONAME ; void GlxStateManager::saveData(void) + ?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const + ?actionTriggered@GlxStateManager@@QAEXH@Z @ 4 NONAME ; void GlxStateManager::actionTriggered(int) + ?setupItemsSignal@GlxStateManager@@IAEXXZ @ 5 NONAME ; void GlxStateManager::setupItemsSignal(void) + ??_EGlxStateManager@@UAE@I@Z @ 6 NONAME ; GlxStateManager::~GlxStateManager(unsigned int) + ?updateTNProgress@GlxStateManager@@QAEXH@Z @ 7 NONAME ; void GlxStateManager::updateTNProgress(int) + ?goBack@GlxStateManager@@QAEXHH@Z @ 8 NONAME ; void GlxStateManager::goBack(int, int) + ?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 9 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *) + ?enterMarkingMode@GlxStateManager@@QAEXXZ @ 10 NONAME ; void GlxStateManager::enterMarkingMode(void) + ??1GlxStateManager@@UAE@XZ @ 11 NONAME ; GlxStateManager::~GlxStateManager(void) + ?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void) + ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int) + ?eventHandler@GlxStateManager@@AAEXAAH@Z @ 14 NONAME ; void GlxStateManager::eventHandler(int &) + ?executeCommand@GlxStateManager@@QAE_NH@Z @ 15 NONAME ; bool GlxStateManager::executeCommand(int) + ?thumbnailPopulated@GlxStateManager@@QAEXXZ @ 16 NONAME ; void GlxStateManager::thumbnailPopulated(void) + ?setupItems@GlxStateManager@@QAEXXZ @ 17 NONAME ; void GlxStateManager::setupItems(void) + ?previousState@GlxStateManager@@QAEXXZ @ 18 NONAME ; void GlxStateManager::previousState(void) + ?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 19 NONAME ; class GlxState * GlxStateManager::createState(int) + ?exitApplication@GlxStateManager@@AAEXXZ @ 20 NONAME ; void GlxStateManager::exitApplication(void) + ?changeState@GlxStateManager@@QAEXHH@Z @ 21 NONAME ; void GlxStateManager::changeState(int, int) + ?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 22 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0GlxStateManager@@QAE@XZ @ 23 NONAME ; GlxStateManager::GlxStateManager(void) + ?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 24 NONAME ; void GlxStateManager::vanishProgressDialog(void) + ?saveImage@GlxStateManager@@AAEXXZ @ 25 NONAME ; void GlxStateManager::saveImage(void) + ?cleanupExternal@GlxStateManager@@QAEXXZ @ 26 NONAME ; void GlxStateManager::cleanupExternal(void) + ?gridItemSelected@GlxStateManager@@IAEXABVQModelIndex@@AAVQAbstractItemModel@@@Z @ 27 NONAME ; void GlxStateManager::gridItemSelected(class QModelIndex const &, class QAbstractItemModel &) + ?setFullScreenContext@GlxStateManager@@AAEXXZ @ 28 NONAME ; void GlxStateManager::setFullScreenContext(void) + ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *) + ?cleanAllModel@GlxStateManager@@QAEXXZ @ 30 NONAME ; void GlxStateManager::cleanAllModel(void) + ?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int) + ?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject + ?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 33 NONAME ; void * GlxStateManager::qt_metacast(char const *) + ?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString GlxStateManager::tr(char const *, char const *) + ?nextState@GlxStateManager@@QAEXHH@Z @ 35 NONAME ; void GlxStateManager::nextState(int, int) + ?launchFromExternal@GlxStateManager@@QAEXXZ @ 36 NONAME ; void GlxStateManager::launchFromExternal(void) + ?externalCommand@GlxStateManager@@IAEXH@Z @ 37 NONAME ; void GlxStateManager::externalCommand(int) + ?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 38 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir) + ?launchApplication@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::launchApplication(void) + ?exitMarkingMode@GlxStateManager@@QAEXXZ @ 40 NONAME ; void GlxStateManager::exitMarkingMode(void) + ?removeCurrentModel@GlxStateManager@@QAEXXZ @ 41 NONAME ; void GlxStateManager::removeCurrentModel(void) + ?launchProgressDialog@GlxStateManager@@AAEXXZ @ 42 NONAME ; void GlxStateManager::launchProgressDialog(void) + ?launchActivity@GlxStateManager@@AAE_NXZ @ 43 NONAME ; bool GlxStateManager::launchActivity(void) + ?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 44 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir) diff -r f291796e213d -r fb37077c270f ui/viewmanagement/bwins/glxviewmanageru.def --- a/ui/viewmanagement/bwins/glxviewmanageru.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/bwins/glxviewmanageru.def Wed Aug 18 09:48:53 2010 +0300 @@ -8,45 +8,46 @@ ?qt_metacast@GlxViewManager@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxViewManager::qt_metacast(char const *) ??_EGlxViewManager@@UAE@I@Z @ 8 NONAME ; GlxViewManager::~GlxViewManager(unsigned int) ?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 9 NONAME ; void GlxViewManager::addBackSoftKeyAction(void) - ?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 10 NONAME ; class GlxView * GlxViewManager::findView(int) - ?createActions@GlxViewManager@@AAEXXZ @ 11 NONAME ; void GlxViewManager::createActions(void) - ?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject - ?handleAction@GlxViewManager@@QAEXXZ @ 13 NONAME ; void GlxViewManager::handleAction(void) - ?handleUserAction@GlxViewManager@@QAEXHH@Z @ 14 NONAME ; void GlxViewManager::handleUserAction(int, int) - ?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const - ?actionTriggered@GlxViewManager@@IAEXH@Z @ 16 NONAME ; void GlxViewManager::actionTriggered(int) - ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 17 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect) - ?handleMenuAction@GlxViewManager@@QAEXH@Z @ 18 NONAME ; void GlxViewManager::handleMenuAction(int) - ?externalCommand@GlxViewManager@@IAEXH@Z @ 19 NONAME ; void GlxViewManager::externalCommand(int) - ??0GlxViewManager@@QAE@XZ @ 20 NONAME ; GlxViewManager::GlxViewManager(void) - ?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 21 NONAME ; void GlxViewManager::exitMarkingMode(int) - ?cancelTimer@GlxViewManager@@QAEXXZ @ 22 NONAME ; void GlxViewManager::cancelTimer(void) - ?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 23 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *) - ?createToolBar@GlxViewManager@@AAEXXZ @ 24 NONAME ; void GlxViewManager::createToolBar(void) - ?removeConnection@GlxViewManager@@AAEXXZ @ 25 NONAME ; void GlxViewManager::removeConnection(void) - ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *) - ?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::createMarkingModeActions(void) - ?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *) - ?deActivateView@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::deActivateView(void) - ?destroyView@GlxViewManager@@QAEXH@Z @ 30 NONAME ; void GlxViewManager::destroyView(int) - ?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 31 NONAME ; class GlxView * GlxViewManager::resolveView(int) - ??1GlxViewManager@@UAE@XZ @ 32 NONAME ; GlxViewManager::~GlxViewManager(void) - ?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 33 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int) - ?addConnection@GlxViewManager@@AAEXXZ @ 34 NONAME ; void GlxViewManager::addConnection(void) - ?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 35 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const - ?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::createMarkingModeToolBar(void) - ?checkMarked@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::checkMarked(void) - ?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 38 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF) - ?setupItems@GlxViewManager@@QAEXXZ @ 39 NONAME ; void GlxViewManager::setupItems(void) - ?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 40 NONAME ; void GlxViewManager::enterMarkingMode(int) - ?actionProcess@GlxViewManager@@QAEXH@Z @ 41 NONAME ; void GlxViewManager::actionProcess(int) - ?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 42 NONAME ; void GlxViewManager::deactivateCurrentView(void) - ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int) - ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *) - ?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 45 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *) - ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int) - ?activateView@GlxViewManager@@AAEXXZ @ 47 NONAME ; void GlxViewManager::activateView(void) - ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 48 NONAME ; void GlxViewManager::hideProgressDialog(void) - ?applicationReady@GlxViewManager@@IAEXXZ @ 49 NONAME ; void GlxViewManager::applicationReady(void) - ?handleReadyView@GlxViewManager@@QAEXXZ @ 50 NONAME ; void GlxViewManager::handleReadyView(void) + ?applicationReady@GlxViewManager@@IAEXXZ @ 10 NONAME ; void GlxViewManager::applicationReady(void) + ?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 11 NONAME ; class GlxView * GlxViewManager::findView(int) + ?createActions@GlxViewManager@@AAEXXZ @ 12 NONAME ; void GlxViewManager::createActions(void) + ?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject + ?handleAction@GlxViewManager@@QAEXXZ @ 14 NONAME ; void GlxViewManager::handleAction(void) + ?handleUserAction@GlxViewManager@@QAEXHH@Z @ 15 NONAME ; void GlxViewManager::handleUserAction(int, int) + ?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const + ?actionTriggered@GlxViewManager@@IAEXH@Z @ 17 NONAME ; void GlxViewManager::actionTriggered(int) + ?getSubState@GlxViewManager@@AAEHXZ @ 18 NONAME ; int GlxViewManager::getSubState(void) + ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 19 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect) + ?handleMenuAction@GlxViewManager@@QAEXH@Z @ 20 NONAME ; void GlxViewManager::handleMenuAction(int) + ?externalCommand@GlxViewManager@@IAEXH@Z @ 21 NONAME ; void GlxViewManager::externalCommand(int) + ??0GlxViewManager@@QAE@XZ @ 22 NONAME ; GlxViewManager::GlxViewManager(void) + ?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 23 NONAME ; void GlxViewManager::exitMarkingMode(int) + ?cancelTimer@GlxViewManager@@QAEXXZ @ 24 NONAME ; void GlxViewManager::cancelTimer(void) + ?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *) + ?createToolBar@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::createToolBar(void) + ?removeConnection@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::removeConnection(void) + ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 28 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *) + ?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::createMarkingModeActions(void) + ?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 30 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ?deActivateView@GlxViewManager@@AAEXXZ @ 31 NONAME ; void GlxViewManager::deActivateView(void) + ?destroyView@GlxViewManager@@QAEXH@Z @ 32 NONAME ; void GlxViewManager::destroyView(int) + ?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 33 NONAME ; class GlxView * GlxViewManager::resolveView(int) + ??1GlxViewManager@@UAE@XZ @ 34 NONAME ; GlxViewManager::~GlxViewManager(void) + ?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 35 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int) + ?addConnection@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::addConnection(void) + ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::hideProgressDialog(void) + ?handleReadyView@GlxViewManager@@QAEXXZ @ 38 NONAME ; void GlxViewManager::handleReadyView(void) + ?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 39 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const + ?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::createMarkingModeToolBar(void) + ?checkMarked@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::checkMarked(void) + ?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 42 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF) + ?setupItems@GlxViewManager@@QAEXXZ @ 43 NONAME ; void GlxViewManager::setupItems(void) + ?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::enterMarkingMode(int) + ?actionProcess@GlxViewManager@@QAEXH@Z @ 45 NONAME ; void GlxViewManager::actionProcess(int) + ?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 46 NONAME ; void GlxViewManager::deactivateCurrentView(void) + ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int) + ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *) + ?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 49 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *) + ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int) + ?activateView@GlxViewManager@@AAEXXZ @ 51 NONAME ; void GlxViewManager::activateView(void) diff -r f291796e213d -r fb37077c270f ui/viewmanagement/eabi/glxstatehandleru.def --- a/ui/viewmanagement/eabi/glxstatehandleru.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/eabi/glxstatehandleru.def Wed Aug 18 09:48:53 2010 +0300 @@ -3,40 +3,44 @@ _ZN15GlxStateManager11changeStateEii @ 2 NONAME _ZN15GlxStateManager11createModelEi13NavigationDir @ 3 NONAME _ZN15GlxStateManager11createStateEi @ 4 NONAME - _ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME - _ZN15GlxStateManager11qt_metacastEPKc @ 6 NONAME - _ZN15GlxStateManager12eventHandlerERi @ 7 NONAME - _ZN15GlxStateManager13cleanAllModelEv @ 8 NONAME - _ZN15GlxStateManager13previousStateEv @ 9 NONAME - _ZN15GlxStateManager14executeCommandEi @ 10 NONAME - _ZN15GlxStateManager15actionTriggeredEi @ 11 NONAME - _ZN15GlxStateManager15cleanupExternalEv @ 12 NONAME - _ZN15GlxStateManager15createGridModelEi13NavigationDir @ 13 NONAME - _ZN15GlxStateManager15exitApplicationEv @ 14 NONAME - _ZN15GlxStateManager15exitMarkingModeEv @ 15 NONAME - _ZN15GlxStateManager15externalCommandEi @ 16 NONAME - _ZN15GlxStateManager16enterMarkingModeEv @ 17 NONAME - _ZN15GlxStateManager16setupItemsSignalEv @ 18 NONAME - _ZN15GlxStateManager16staticMetaObjectE @ 19 NONAME DATA 16 - _ZN15GlxStateManager16updateTNProgressEi @ 20 NONAME - _ZN15GlxStateManager17launchApplicationEv @ 21 NONAME - _ZN15GlxStateManager18launchFromExternalEv @ 22 NONAME - _ZN15GlxStateManager18removeCurrentModelEv @ 23 NONAME - _ZN15GlxStateManager19getStaticMetaObjectEv @ 24 NONAME - _ZN15GlxStateManager20setFullScreenContextEv @ 25 NONAME - _ZN15GlxStateManager6goBackEii @ 26 NONAME - _ZN15GlxStateManager9nextStateEii @ 27 NONAME - _ZN15GlxStateManagerC1Ev @ 28 NONAME - _ZN15GlxStateManagerC2Ev @ 29 NONAME - _ZN15GlxStateManagerD0Ev @ 30 NONAME - _ZN15GlxStateManagerD1Ev @ 31 NONAME - _ZN15GlxStateManagerD2Ev @ 32 NONAME - _ZNK15GlxStateManager10metaObjectEv @ 33 NONAME - _ZTI15GlxStateManager @ 34 NONAME - _ZTV15GlxStateManager @ 35 NONAME - _ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 36 NONAME - _ZN15GlxStateManager20launchProgressDialogEv @ 37 NONAME - _ZN15GlxStateManager20vanishProgressDialogEv @ 38 NONAME - _ZN15GlxStateManager14launchActivityEv @ 39 NONAME - _ZN15GlxStateManager8saveDataEv @ 40 NONAME + _ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 5 NONAME + _ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME + _ZN15GlxStateManager11qt_metacastEPKc @ 7 NONAME + _ZN15GlxStateManager12eventHandlerERi @ 8 NONAME + _ZN15GlxStateManager13cleanAllModelEv @ 9 NONAME + _ZN15GlxStateManager13launchFetcherEv @ 10 NONAME + _ZN15GlxStateManager13previousStateEv @ 11 NONAME + _ZN15GlxStateManager14executeCommandEi @ 12 NONAME + _ZN15GlxStateManager14launchActivityEv @ 13 NONAME + _ZN15GlxStateManager15actionTriggeredEi @ 14 NONAME + _ZN15GlxStateManager15cleanupExternalEv @ 15 NONAME + _ZN15GlxStateManager15createGridModelEi13NavigationDir @ 16 NONAME + _ZN15GlxStateManager15exitApplicationEv @ 17 NONAME + _ZN15GlxStateManager15exitMarkingModeEv @ 18 NONAME + _ZN15GlxStateManager15externalCommandEi @ 19 NONAME + _ZN15GlxStateManager16enterMarkingModeEv @ 20 NONAME + _ZN15GlxStateManager16gridItemSelectedERK11QModelIndexR18QAbstractItemModel @ 21 NONAME + _ZN15GlxStateManager16setupItemsSignalEv @ 22 NONAME + _ZN15GlxStateManager16staticMetaObjectE @ 23 NONAME DATA 16 + _ZN15GlxStateManager16updateTNProgressEi @ 24 NONAME + _ZN15GlxStateManager17launchApplicationEv @ 25 NONAME + _ZN15GlxStateManager18launchFromExternalEv @ 26 NONAME + _ZN15GlxStateManager18removeCurrentModelEv @ 27 NONAME + _ZN15GlxStateManager18thumbnailPopulatedEv @ 28 NONAME + _ZN15GlxStateManager19getStaticMetaObjectEv @ 29 NONAME + _ZN15GlxStateManager20launchProgressDialogEv @ 30 NONAME + _ZN15GlxStateManager20setFullScreenContextEv @ 31 NONAME + _ZN15GlxStateManager20vanishProgressDialogEv @ 32 NONAME + _ZN15GlxStateManager6goBackEii @ 33 NONAME + _ZN15GlxStateManager8saveDataEv @ 34 NONAME + _ZN15GlxStateManager9nextStateEii @ 35 NONAME + _ZN15GlxStateManager9saveImageEv @ 36 NONAME + _ZN15GlxStateManagerC1Ev @ 37 NONAME + _ZN15GlxStateManagerC2Ev @ 38 NONAME + _ZN15GlxStateManagerD0Ev @ 39 NONAME + _ZN15GlxStateManagerD1Ev @ 40 NONAME + _ZN15GlxStateManagerD2Ev @ 41 NONAME + _ZNK15GlxStateManager10metaObjectEv @ 42 NONAME + _ZTI15GlxStateManager @ 43 NONAME + _ZTV15GlxStateManager @ 44 NONAME diff -r f291796e213d -r fb37077c270f ui/viewmanagement/eabi/glxviewmanageru.def --- a/ui/viewmanagement/eabi/glxviewmanageru.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/eabi/glxviewmanageru.def Wed Aug 18 09:48:53 2010 +0300 @@ -5,48 +5,49 @@ _ZN14GlxViewManager11cancelTimerEv @ 4 NONAME _ZN14GlxViewManager11checkMarkedEv @ 5 NONAME _ZN14GlxViewManager11destroyViewEi @ 6 NONAME - _ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 7 NONAME - _ZN14GlxViewManager11qt_metacastEPKc @ 8 NONAME - _ZN14GlxViewManager11resolveViewEi @ 9 NONAME - _ZN14GlxViewManager12activateViewEv @ 10 NONAME - _ZN14GlxViewManager12handleActionEv @ 11 NONAME - _ZN14GlxViewManager13actionProcessEi @ 12 NONAME - _ZN14GlxViewManager13addConnectionEv @ 13 NONAME - _ZN14GlxViewManager13createActionsEv @ 14 NONAME - _ZN14GlxViewManager13createToolBarEv @ 15 NONAME - _ZN14GlxViewManager14deActivateViewEv @ 16 NONAME - _ZN14GlxViewManager14effectFinishedEv @ 17 NONAME - _ZN14GlxViewManager15actionTriggeredEi @ 18 NONAME - _ZN14GlxViewManager15exitMarkingModeEi @ 19 NONAME - _ZN14GlxViewManager15externalCommandEi @ 20 NONAME - _ZN14GlxViewManager16enterMarkingModeEi @ 21 NONAME - _ZN14GlxViewManager16handleMenuActionEi @ 22 NONAME - _ZN14GlxViewManager16handleUserActionEii @ 23 NONAME - _ZN14GlxViewManager16removeConnectionEv @ 24 NONAME - _ZN14GlxViewManager16staticMetaObjectE @ 25 NONAME DATA 16 - _ZN14GlxViewManager17getSelectionModelEi @ 26 NONAME - _ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 27 NONAME - _ZN14GlxViewManager17updateToolBarIconEi @ 28 NONAME - _ZN14GlxViewManager19getStaticMetaObjectEv @ 29 NONAME - _ZN14GlxViewManager20addBackSoftKeyActionEv @ 30 NONAME - _ZN14GlxViewManager20launchProgressDialogEi @ 31 NONAME - _ZN14GlxViewManager20updateProgressDialogEi @ 32 NONAME - _ZN14GlxViewManager21deactivateCurrentViewEv @ 33 NONAME - _ZN14GlxViewManager24createMarkingModeActionsEv @ 34 NONAME - _ZN14GlxViewManager24createMarkingModeToolBarEv @ 35 NONAME - _ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 36 NONAME - _ZN14GlxViewManager8findViewEi @ 37 NONAME - _ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 38 NONAME - _ZN14GlxViewManagerC1Ev @ 39 NONAME - _ZN14GlxViewManagerC2Ev @ 40 NONAME - _ZN14GlxViewManagerD0Ev @ 41 NONAME - _ZN14GlxViewManagerD1Ev @ 42 NONAME - _ZN14GlxViewManagerD2Ev @ 43 NONAME - _ZNK14GlxViewManager10metaObjectEv @ 44 NONAME - _ZNK14GlxViewManager11orientationEv @ 45 NONAME - _ZTI14GlxViewManager @ 46 NONAME - _ZTV14GlxViewManager @ 47 NONAME - _ZN14GlxViewManager18hideProgressDialogEv @ 48 NONAME - _ZN14GlxViewManager15handleReadyViewEv @ 49 NONAME - _ZN14GlxViewManager16applicationReadyEv @ 50 NONAME + _ZN14GlxViewManager11getSubStateEv @ 7 NONAME + _ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 8 NONAME + _ZN14GlxViewManager11qt_metacastEPKc @ 9 NONAME + _ZN14GlxViewManager11resolveViewEi @ 10 NONAME + _ZN14GlxViewManager12activateViewEv @ 11 NONAME + _ZN14GlxViewManager12handleActionEv @ 12 NONAME + _ZN14GlxViewManager13actionProcessEi @ 13 NONAME + _ZN14GlxViewManager13addConnectionEv @ 14 NONAME + _ZN14GlxViewManager13createActionsEv @ 15 NONAME + _ZN14GlxViewManager13createToolBarEv @ 16 NONAME + _ZN14GlxViewManager14deActivateViewEv @ 17 NONAME + _ZN14GlxViewManager14effectFinishedEv @ 18 NONAME + _ZN14GlxViewManager15actionTriggeredEi @ 19 NONAME + _ZN14GlxViewManager15exitMarkingModeEi @ 20 NONAME + _ZN14GlxViewManager15externalCommandEi @ 21 NONAME + _ZN14GlxViewManager15handleReadyViewEv @ 22 NONAME + _ZN14GlxViewManager16applicationReadyEv @ 23 NONAME + _ZN14GlxViewManager16enterMarkingModeEi @ 24 NONAME + _ZN14GlxViewManager16handleMenuActionEi @ 25 NONAME + _ZN14GlxViewManager16handleUserActionEii @ 26 NONAME + _ZN14GlxViewManager16removeConnectionEv @ 27 NONAME + _ZN14GlxViewManager16staticMetaObjectE @ 28 NONAME DATA 16 + _ZN14GlxViewManager17getSelectionModelEi @ 29 NONAME + _ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 30 NONAME + _ZN14GlxViewManager17updateToolBarIconEi @ 31 NONAME + _ZN14GlxViewManager18hideProgressDialogEv @ 32 NONAME + _ZN14GlxViewManager19getStaticMetaObjectEv @ 33 NONAME + _ZN14GlxViewManager20addBackSoftKeyActionEv @ 34 NONAME + _ZN14GlxViewManager20launchProgressDialogEi @ 35 NONAME + _ZN14GlxViewManager20updateProgressDialogEi @ 36 NONAME + _ZN14GlxViewManager21deactivateCurrentViewEv @ 37 NONAME + _ZN14GlxViewManager24createMarkingModeActionsEv @ 38 NONAME + _ZN14GlxViewManager24createMarkingModeToolBarEv @ 39 NONAME + _ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 40 NONAME + _ZN14GlxViewManager8findViewEi @ 41 NONAME + _ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 42 NONAME + _ZN14GlxViewManagerC1Ev @ 43 NONAME + _ZN14GlxViewManagerC2Ev @ 44 NONAME + _ZN14GlxViewManagerD0Ev @ 45 NONAME + _ZN14GlxViewManagerD1Ev @ 46 NONAME + _ZN14GlxViewManagerD2Ev @ 47 NONAME + _ZNK14GlxViewManager10metaObjectEv @ 48 NONAME + _ZNK14GlxViewManager11orientationEv @ 49 NONAME + _ZTI14GlxViewManager @ 50 NONAME + _ZTV14GlxViewManager @ 51 NONAME diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxactionhandler.h --- a/ui/viewmanagement/statehandler/inc/glxactionhandler.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxactionhandler.h Wed Aug 18 09:48:53 2010 +0300 @@ -22,9 +22,9 @@ #include #include +#include class GlxCommandHandler; -class QModelIndex; class GlxActionHandler : public QObject { diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxdetailstate.h --- a/ui/viewmanagement/statehandler/inc/glxdetailstate.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxdetailstate.h Wed Aug 18 09:48:53 2010 +0300 @@ -27,6 +27,11 @@ public : GlxDetailState(GlxState *preState = NULL); void eventHandler(qint32 &id); + int state() const { return (int) mState; } +/* + * This Function set the internal state of details state + */ + void setState(int internalState) { mState = (DetailState) internalState; } /* * This function set the transition parameter ( for animation) from full screen view to other view */ @@ -45,6 +50,7 @@ //Functions private: + DetailState mState; //Data Member }; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxfullscreenstate.h --- a/ui/viewmanagement/statehandler/inc/glxfullscreenstate.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxfullscreenstate.h Wed Aug 18 09:48:53 2010 +0300 @@ -21,11 +21,12 @@ #define GLXFULLSCREENSTATE_H #include +class GlxStateManager; class GlxFullScreenState : public GlxState { public : - GlxFullScreenState(GlxState *preState = NULL); + GlxFullScreenState( GlxStateManager *stateManager, GlxState *preState = NULL ); int state() const { return (int) mState; } /* * This Function set the internal state of full screen state @@ -49,6 +50,7 @@ private: FullScreenState mState; + GlxStateManager *mStateManager; }; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxliststate.h --- a/ui/viewmanagement/statehandler/inc/glxliststate.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxliststate.h Wed Aug 18 09:48:53 2010 +0300 @@ -20,12 +20,43 @@ #include +/** + * class to manage list state + */ class GlxListState : public GlxState { public : + /** + * constructor + */ GlxListState(GlxState *preState = NULL); + + /** + * return current state of list + * @return current state + */ + int state() const { return (int) mState; } + /** + * set current state + * @param internalState substate of list to be set + */ + void setState(int internalState) { mState = (ListState) internalState; } + + /** + * event handler + */ void eventHandler(qint32 &id); - void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect); + /** + * set transition parameter + * @param dir navigation direction + * @param effect effect to be run on view transition + * @param viewEffect + */ + void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect); +private: + ///list internal state + ListState mState; + }; #endif /* GLXLISTSTATE_H */ diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,61 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + +#ifndef GLXORIENTATIONSENSORFILTER_H +#define GLXORIENTATIONSENSORFILTER_H + +#include +#include +QTM_USE_NAMESPACE + +/** + * Class Description + * To read the current orientaion from the sensor + */ +class GlxOrientationSensorFilter : public QOrientationFilter +{ +public : + /** + * Constructor + */ + GlxOrientationSensorFilter(); + + /** + * Destructor + */ + ~GlxOrientationSensorFilter(); + + /** + * filter() - callback function to get the current Orientation information + * @param QOrientationReading + * @return please look /// @see QOrientationFilter + */ + bool filter( QOrientationReading *reading ); + + /** + * orientation() - return the current device orientation + */ + int orientation() { return mOrient; } + +private : + int mOrient; + QOrientationSensor *m_orientation ; +}; + +/// for detail please @see QOrientationFilter + +#endif /* GLXORIENTATIONSENSORFILTER_H */ \ No newline at end of file diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxslideshowstate.h --- a/ui/viewmanagement/statehandler/inc/glxslideshowstate.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxslideshowstate.h Wed Aug 18 09:48:53 2010 +0300 @@ -21,21 +21,56 @@ #include class GlxStateManager; +class GlxOrientationSensorFilter; +/** + * Class Description + * This is slide show state corresponding to slide show view. + */ class GlxSlideShowState : public GlxState { public : + /** + * constructor + * @param pointer of state manager. + * @param pointer of perivious state. + */ GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState = NULL); + + /** + * state() + * @return return the substate. + */ int state() const { return (int) mState; } + + /** + * setState() - set the current substate + * @param substate of the this state + */ void setState(int internalState) { mState = (SlideShowState) internalState; } - void eventHandler(qint32 &id); + + /** + * eventHandler() - A command handler of this state + * @param command id + */ + void eventHandler(qint32 &commandId); + + /** + * albumItemEventHandler() - A command handle for album substate + * @param command id + */ void albumItemEventHandler( qint32 &id ); - ~GlxSlideShowState() {} + + /** + * Destructor + */ + ~GlxSlideShowState(); private: //slide show internal state SlideShowState mState; GlxStateManager *mStateManager; + GlxOrientationSensorFilter *mOrientSensorFilter; }; #endif /* GLXSLIDESHOWSTATE_H */ diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/inc/glxstatemanager.h --- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h Wed Aug 18 09:48:53 2010 +0300 @@ -25,6 +25,7 @@ #include #include #include +#include class GlxState; class GlxViewManager; @@ -40,178 +41,236 @@ #define GLX_STATEMANAGER_EXPORT Q_DECL_IMPORT #endif +/** + * Class Description + * class to create and manage different states and view navigation + */ + class GLX_STATEMANAGER_EXPORT GlxStateManager : public QObject { Q_OBJECT friend class TestGlxStateManager; public : - /* + /** * Constructor */ GlxStateManager(); - /* + /** * Destructor */ virtual ~GlxStateManager(); - - /* - * Fuction to launch the application from some external world + + /** + * launchFetcher() - launch image fetcher + */ + void launchFetcher(); + + /** + * launchFromExternal() - Fuction to launch the application from some external world */ void launchFromExternal(); - /* - * Clean the all externel data + /** + * cleanupExternal() - Clean the all externel data */ void cleanupExternal(); - /* - * Move the views to the multiple item selection state + /** + * enterMarkingMode() - Move the views to the multiple item selection state */ void enterMarkingMode(); - /* - * Exit from the multiselection state + /** + * exitMarkingMode() - Exit from the multiselection state */ void exitMarkingMode(); - /* - * Execute the commant on multiple selected item + /** + * executeCommand() - Execute the commant on multiple selected item. + * @param - command Id to execute. */ - bool executeCommand(qint32 commandId); + bool executeCommand( qint32 commandId ); - /* - * when application goes into background or come back to foreground + /** + * eventFilter() - when application goes into background or come back to foreground * set and reset the background thumbnail generation property + * @param QObject + * @param QEvent */ - bool eventFilter(QObject *obj, QEvent *ev); + bool eventFilter( QObject *obj, QEvent *ev ); signals : - /* - * Send the user activities ( command ) to the external world + /** + * externalCommand() - Send the user activities ( command ) to the external world + * @param - command Id to execute. */ - void externalCommand(int cmdId); + void externalCommand( int cmdId ); - /* - * TO send the signal to initialise the rest of items + /** + * setupItemsSignal() - TO send the signal to initialise the non critical resoruce * which is not created in the launch sequence */ void setupItemsSignal(); + + /** + * gridItemSelected() - signal to send current model and selected index for fetcher service + * @param - selected item model index + * @param - model + */ + void gridItemSelected( const QModelIndex &,QAbstractItemModel & ); public slots: - /* - * To launch the application + /** + * launchApplication() - To launch the application */ void launchApplication(); - /* - * To handle the user action, view switching etc + /** + * actionTriggered() - To handle the user action, view switching etc + * @param - user action ID. */ - void actionTriggered(qint32 id); + void actionTriggered( qint32 id ); - /* - * To create the items which is not created in the aluch sequence + /** + * setupItems() -To create the items which is not created in the aluch sequence */ void setupItems(); - /* - * call back function to monitor the change in thumbnail manager + /** + * updateTNProgress() - call back function to monitor the change in thumbnail manager + * @param - number of item left to generate the thumbnail */ - void updateTNProgress( int count); + void updateTNProgress( int count ); + + /** + * thumbnailPopulated() - call back to get the information that some initial page are loaded + * into cache. + * It will vanish the progressbar dialog. + */ + void thumbnailPopulated(); + + /** + * saveData() - To save the activity data + */ void saveData(); public : - /* - * It will create a new state and replace the current state with new state in the stack. + /** + * changeState() - It will create a new state and replace the current state with new state in the stack. * It will use in the case of state switching. * use -1 if state does not have internal state + * @param - new state id. + * @param - internal or substate of new state. */ - void changeState(qint32 newStateId, int internalState ); + void changeState( qint32 newStateId, int internalState ); - /* - * Go back to previous state + /** + * previousState() - Go back to previous state and if there is no state in the stack + * then exit the application. */ void previousState(); - /* - * Go back to a state in hierarchy and pop all the state upto that level. + /** + * goBack() - Go back to a state in hierarchy and pop all the state upto that level. * if state is not found, then all the state from the hierachy is removed and create a new state on level 0 * This function will be use in the case when more then one back is required in single event. + * @param - new state id. + * @param - internal or substate of new state. */ - void goBack(qint32 stateId, int internalState); + void goBack( qint32 stateId, int internalState ); - /* - * Create a new state and current state should be pushed into stack. + /** + * nextState() - Create a new state and current state should be pushed into stack. * use -1 if state does not have internal state + * @param - new state id. + * @param - internal or substate of new state. */ - void nextState(qint32 newStateId, int internalState ); + void nextState( qint32 newStateId, int internalState ); - /* - * It will delete the current model + /** + * removeCurrentModel() - It will delete the current model */ void removeCurrentModel(); - /* - * It will delete the all model used by state manager + /** + * cleanAllModel() - It will delete the all model used by state manager */ void cleanAllModel(); - private: - /* - * Launch the harvesting and TN generation progress bar dialog + /** + * launchProgressDialog() - Launch the harvesting and TN generation progress bar dialog */ void launchProgressDialog(); - /* - * remove the harvesting and TN generation progress bar dialog + /** + * vanishProgressDialog() - create the grid view model and wait for loading of some initial page of data into + * cache. */ void vanishProgressDialog(); - /* - * Factory function to create the state. + /** + * createState() - Factory function to create the state. */ - GlxState * createState(qint32 state); + GlxState * createState( qint32 state ); - /* - * Factory function to create the model. + /** + * createModel() - Factory function to create the model. + * @param - state id of the state. + * @param - state navigation direction */ - void createModel(qint32 stateId, NavigationDir dir = NO_DIR); + void createModel( qint32 stateId, NavigationDir dir = NO_DIR ); - /* - * Factory function to create the grid model. + /** + * createGridModel() - Factory function to create the grid model. + * @param - internal state of grid state. + * @param - state navigation direction. */ - void createGridModel(int internalState, NavigationDir dir = NO_DIR); + void createGridModel( int internalState, NavigationDir dir = NO_DIR ); - /* - * To set the fullscreen context based on the currrent orientation + /** + * setFullScreenContext() - To set the fullscreen context based on the currrent orientation */ void setFullScreenContext(); - /* - * Apllication event handler function + /** + * setFullScreenContext() - Apllication event handler function + * @param - event id */ - void eventHandler(qint32 &id); + void eventHandler( qint32 &id ); - /* - * A function to care the exit for application, in the case when application launch from internal and external + /** + * exitApplication() - A function to care the exit for application, in the case when application launch from internal and external */ void exitApplication(); - /*Launch Application as an acitivyt. + /** + * launchActivity() -Launch Application as an activity. * Return Value @0 : If launching an activity fails * @1 : If launch activity passes */ bool launchActivity(); + + /** + * saveImage() - save current image if it is launched from private path. + */ + void saveImage(); + private: GlxViewManager *mViewManager; - GlxMediaModel *mAllMediaModel; // for all grid - GlxMediaModel *mAlbumGridMediaModel; // for album grid - GlxAlbumModel *mAlbumMediaModel; // for album list - GlxMediaModel *mImageviewerMediaModel;// for image viewer - QAbstractItemModel *mCurrentModel; // no owner ship + /// for all grid + GlxMediaModel *mAllMediaModel; + /// for album grid + GlxMediaModel *mAlbumGridMediaModel; + /// for album list + GlxAlbumModel *mAlbumMediaModel; + /// for image viewer + GlxMediaModel *mImageviewerMediaModel; + /// no owner ship + QAbstractItemModel *mCurrentModel; GlxState *mCurrentState; GlxActionHandler *mActionHandler; GlxTNObserver *mTNObserver; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp --- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -21,15 +21,13 @@ #include #include #include -#include -#include +#include #include #include #include #include #include - GlxCommandHandler* GlxCommandHandlerFactory::CreateCommandHandler(int commandId) { GlxCommandHandler* cmdHandler = NULL; @@ -60,9 +58,9 @@ break; case EGlxCmdRotateImgCW: case EGlxCmdRotateImgCCW: - cmdHandler = new GlxCommandHandlerRotateImage(); - break; - case EGlxCmdRotateImgCrop: cmdHandler = new GlxCommandHandlerCropImage(); + case EGlxCmdRotateImgCrop: + case EGlxCmdSetWallpaper: + cmdHandler = new GlxCommandHandlerEditImage(); break; default: break; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxdetailstate.cpp --- a/ui/viewmanagement/statehandler/src/glxdetailstate.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxdetailstate.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -21,7 +21,7 @@ GlxDetailState::GlxDetailState(GlxState *preState) : GlxState(GLX_DETAILSVIEW_ID, preState) { - + mState = NO_DETAIL_S ; } diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp --- a/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -18,15 +18,31 @@ #include +#include +#include -GlxFullScreenState::GlxFullScreenState(GlxState *preState) : GlxState(GLX_FULLSCREENVIEW_ID, preState) +GlxFullScreenState::GlxFullScreenState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_FULLSCREENVIEW_ID, preState) { - + mStateManager = stateManager ; } void GlxFullScreenState::eventHandler(qint32 &id) { - Q_UNUSED(id); + switch ( id ){ + case EGlxCmdDetailsOpen : + if ( mState == IMAGEVIEWER_S ) { + + mStateManager->nextState( GLX_DETAILSVIEW_ID, IMAGEVIEWER_DETAIL_S ); + } + else { + + mStateManager->nextState( GLX_DETAILSVIEW_ID, NO_DETAIL_S ); + } + id = EGlxCmdHandled; + break ; + default : + break ; + } } void GlxFullScreenState::setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect) diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxgridstate.cpp --- a/ui/viewmanagement/statehandler/src/glxgridstate.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxgridstate.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -43,10 +43,12 @@ switch ( mState ) { case ALL_ITEM_S : + case FETCHER_ITEM_S : allItemEventHandler ( id ) ; break; case ALBUM_ITEM_S : + case FETCHER_ALBUM_ITEM_S : albumItemEventHandler ( id ) ; break; @@ -60,11 +62,10 @@ qDebug("GlxGridState::defaultEventHandler() action id = %d", id); switch(id) { - case EGlxCmdFullScreenOpen : - id = EGlxCmdHandled; - mStateManager->nextState( GLX_FULLSCREENVIEW_ID, -1 ); - break; - + case EGlxCmdFetcherFullScreenOpen: + id = EGlxCmdHandled; + mStateManager->nextState( GLX_FULLSCREENVIEW_ID, FETCHER_S ); + break; case EGlxCmdAddToAlbum : case EGlxCmdDelete : case EGlxCmdRemoveFrom : @@ -110,9 +111,13 @@ switch(id) { case EGlxCmdAllGridOpen : + case EGlxCmdFetcherAllGridOpen : id = EGlxCmdHandled; break ; - + case EGlxCmdFullScreenOpen : + mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALL_FULLSCREEN_S ); + id = EGlxCmdHandled; + break; default : break; } @@ -128,14 +133,25 @@ mStateManager->goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ); id = EGlxCmdHandled; break ; + + case EGlxCmdFetcherAllGridOpen : + mStateManager->removeCurrentModel(); + mStateManager->goBack( GLX_GRIDVIEW_ID, FETCHER_ITEM_S ); + id = EGlxCmdHandled; + break ; case EGlxCmdAlbumListOpen : + case EGlxCmdFetcherAlbumListOpen: case EGlxCmdBack : mStateManager->removeCurrentModel(); mStateManager->previousState(); id = EGlxCmdHandled; break; - + + case EGlxCmdFullScreenOpen : + mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALBUM_FULLSCREEN_S ); + id = EGlxCmdHandled; + break; default : break; } diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxliststate.cpp --- a/ui/viewmanagement/statehandler/src/glxliststate.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxliststate.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -30,6 +30,7 @@ qDebug("GlxListState::eventHandler action id = %d", id); switch(id) { case EGlxCmdAlbumListOpen : + case EGlxCmdFetcherAlbumListOpen: id = EGlxCmdHandled; break ; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies 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 "glxorientationsensorfilter.h" + +GlxOrientationSensorFilter::GlxOrientationSensorFilter() +{ + qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() enter" ); + m_orientation = new QOrientationSensor(); + m_orientation->addFilter( this ); + m_orientation->start(); + mOrient = QOrientationReading::Undefined ; + qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() exit" ); +} + +GlxOrientationSensorFilter::~GlxOrientationSensorFilter() +{ + m_orientation->stop(); + delete m_orientation; +} + +bool GlxOrientationSensorFilter::filter( QOrientationReading *reading ) +{ + qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() filter " ); + mOrient = reading->orientation() ; + qDebug("GlxOrientationSensorFilter::filter() orientation = %d", mOrient ); + return false; +} diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxslideshowstate.cpp --- a/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -15,37 +15,53 @@ * */ -#include -#include -#include #include +#include "glxslideshowstate.h" +#include "glxstatemanager.h" +#include "glxcommandhandlers.hrh" +#include "glxorientationsensorfilter.h" + GlxSlideShowState::GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_SLIDESHOWVIEW_ID, preState) { mStateManager = stateManager; + mOrientSensorFilter = NULL; + //mOrientSensorFilter = new GlxOrientationSensorFilter(); mState = NO_SLIDESHOW_S; } void GlxSlideShowState::eventHandler( qint32 &id ) { - qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id); + qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id); + + /*switch ( id ) { + case EGlxCmdBack : + if ( mOrientSensorFilter->orientation() == QOrientationReading::TopUp ) { + id = EGlxCmdPlayBackAnim ; + } + break; + + default : + break ; + }*/ if ( mState == SLIDESHOW_ALBUM_ITEM_S ) { albumItemEventHandler( id ); } } -void GlxSlideShowState::albumItemEventHandler( qint32 &id ) +void GlxSlideShowState::albumItemEventHandler( qint32 &commandId ) { - switch ( id ) { + switch ( commandId ) { /* in the case of slide show play through list view item specfice menu option, a new model was * created so first remove the current model and then go back to pervious state */ + case EGlxCmdSlideShowBack : case EGlxCmdBack : case EGlxCmdEmptyData : //memory card was removed ( no data ) mStateManager->removeCurrentModel(); mStateManager->previousState(); - id = EGlxCmdHandled; + commandId = EGlxCmdHandled; break; default : @@ -53,3 +69,8 @@ } } +GlxSlideShowState::~GlxSlideShowState() +{ + delete mOrientSensorFilter; +} + diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/src/glxstatemanager.cpp --- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -51,7 +51,7 @@ #include "glxplugincommandid.hrh" #include "glxlog.h" #include "glxtracer.h" - +#include GlxStateManager::GlxStateManager() : mAllMediaModel( NULL ), @@ -69,7 +69,6 @@ mViewManager = new GlxViewManager(); } mTNObserver = new GlxTNObserver(); - mSaveActivity.clear(); connect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ), Qt::QueuedConnection ); connect ( mViewManager, SIGNAL(actionTriggered( qint32 )), this, SLOT(actionTriggered( qint32 )), Qt::QueuedConnection ); @@ -122,39 +121,50 @@ return QObject::eventFilter(obj, event); } +void GlxStateManager::launchFetcher() +{ + qDebug("GlxStateManager::launchFetcher"); + mCurrentState = createState(GLX_GRIDVIEW_ID); + mCurrentState->setState(FETCHER_ITEM_S); + + createModel(GLX_GRIDVIEW_ID); + mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); +} + void GlxStateManager::launchApplication() { qDebug("GlxStateManager::launchApplication"); - bool activitySuccess = false; + bool activitySuccess = false; //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S) - HbApplication* app = qobject_cast(qApp); - if(app->activateReason() == Hb::ActivationReasonActivity) { - activitySuccess = launchActivity(); - } - if( !activitySuccess ) { - mCurrentState = createState( GLX_GRIDVIEW_ID ); - mCurrentState->setState( ALL_ITEM_S ); - - int leftCount = mTNObserver->getTNLeftCount() ; - if ( leftCount > 0 ) { - mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); - launchProgressDialog(); - } - else { - createModel( GLX_GRIDVIEW_ID ); - mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); + HbApplication* app = qobject_cast(qApp); + if(app->activateReason() == Hb::ActivationReasonActivity) { + activitySuccess = launchActivity(); } - mTNObserver->startTNObserving() ; - } - //Remove the previous activity - HbActivityManager* activityManager = app->activityManager(); - bool ok = activityManager->removeActivity("PhotosMainView"); - if ( !ok ) - { + if( !activitySuccess ) { + mCurrentState = createState( GLX_GRIDVIEW_ID ); + mCurrentState->setState( ALL_ITEM_S ); + + int leftCount = mTNObserver->getTNLeftCount() ; + if ( leftCount > 0 ) { + mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel ); + launchProgressDialog(); + } + else { + createModel( GLX_GRIDVIEW_ID ); + mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel ); + } + mTNObserver->startTNObserving() ; + } + + HbActivityManager* activityManager = app->activityManager(); + bool ok = activityManager->removeActivity("PhotosMainView"); + if ( !ok ) + { qDebug("launchapplication::Remove activity failed" ); - } + } } + bool GlxStateManager::launchActivity() { HbApplication* app = qobject_cast(qApp); @@ -162,30 +172,29 @@ if ( !ok ) { qDebug("subscribing to activity manager failed" ); - //return false; TBD: waitActivity is always returning false. Could be some issue with AM. } QVariant data = app->activityManager()->activityData( "PhotosMainView" ); QByteArray serializedModel = data.toByteArray(); QDataStream stream(&serializedModel, QIODevice::ReadOnly); + //Fetch the data from the activity Manager - QMap fetchActivity; - stream >> fetchActivity; - qint32 stateId = fetchActivity.value("ID"); + stream >> mSaveActivity; + qint32 stateId = mSaveActivity.value("ID"); mCurrentState = createState(stateId); - mCurrentState->setState( fetchActivity.value("InternalState") ); + mCurrentState->setState( mSaveActivity.value("InternalState") ); createModel( stateId); /*Model might not be populated yet to set the visibleWindowIndex right away. *So, let us store the visible index as a temporary Variable, so that visible Window Index *is set once the model is populated. */ - mCurrentModel->setData(QModelIndex(), fetchActivity.value("VisibleIndex") , GlxTempVisualWindowIndex ); + mCurrentModel->setData(QModelIndex(), mSaveActivity.value("VisibleIndex") , GlxTempVisualWindowIndex ); mViewManager->launchApplication(stateId, mCurrentModel); return true; } void GlxStateManager::launchFromExternal() { - qDebug("GlxStateManager::launchApplication"); + qDebug("GlxStateManager::launchFromExternal"); mCurrentState = createState(GLX_FULLSCREENVIEW_ID); mCurrentState->setState(IMAGEVIEWER_S); @@ -210,17 +219,23 @@ mActionHandler = new GlxActionHandler(); connect ( mViewManager, SIGNAL(externalCommand(int )), this, SIGNAL(externalCommand(int )) ); mViewManager->setupItems(); - mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID); + switch( mSaveActivity.value( "ID" ) ){ + case GLX_LISTVIEW_ID: + mViewManager->updateToolBarIcon(GLX_ALBUM_ACTION_ID); + break; + + case GLX_GRIDVIEW_ID: + default: + mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID); + } } void GlxStateManager::updateTNProgress( int count) { TRACER("GlxStateManager::updateTNProgress() "); -// mCurrentModel ------------this is case when progress bar is not showing -// count > 5 ----------------in the case of rename of an image or capture the single item -// it is also launching the progress bar, to avoid this scenario add the check of count more than 5 -// count == KErrNotReady ----A case when memory card is inserted but it is not harvest so it is given an error -// In that case also user should be block to browse the images + // this is case when progress bar is not showing + // in the case of rename of an image or capture the single item + // it is also launching the progress bar, to avoid this scenario add the check of count more than 5 if ( mCurrentModel && ( count > 5 ) ) { goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ) ; cleanAllModel(); @@ -229,8 +244,6 @@ if ( isProgressbarRunning ){ if ( count == 0 ) { - createModel( mCurrentState->id() ); - mViewManager->setModel( mCurrentModel ); vanishProgressDialog(); } else { @@ -239,43 +252,46 @@ } } +void GlxStateManager::thumbnailPopulated() +{ + mViewManager->setModel( mCurrentModel ); + isProgressbarRunning = false; + mViewManager->updateProgressDialog( 0 ); + disconnect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) ); +} + void GlxStateManager::saveData() { if( (mCurrentState->id() == GLX_GRIDVIEW_ID && mCurrentState->state() == ALL_ITEM_S) || mCurrentState->id() == GLX_LISTVIEW_ID ) { - mSaveActivity.insert("ID",mCurrentState->id()); - mSaveActivity.insert("InternalState",mCurrentState->state()); - - //Store the visual Index - if(mCurrentModel) - { - QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex ); - if ( variant.isValid() && variant.canConvert () ) { - mSaveActivity.insert("VisibleIndex",variant.value()); - } + mSaveActivity.insert("ID",mCurrentState->id()); + mSaveActivity.insert("InternalState",mCurrentState->state()); + if(mCurrentModel) { + QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex ); + if ( variant.isValid() && variant.canConvert () ) { + mSaveActivity.insert("VisibleIndex",variant.value()); + } } - else - mSaveActivity.insert("VisibleIndex",0); - - HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + else { + mSaveActivity.insert("VisibleIndex",0); + } - //Take a screenshot - QVariantHash metadata; - HbMainWindow *window = hbInstance->allMainWindows().first(); - metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect())); - - QByteArray serializedModel; - QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append); - stream << mSaveActivity; - //Add the activity - bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata); - if ( !ok ) - { - qDebug("SaveData::Add activity failed" ); + HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + QVariantHash metadata; + HbMainWindow *window = hbInstance->allMainWindows().first(); + metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect())); + + QByteArray serializedModel; + QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append); + stream << mSaveActivity; + + bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata); + if ( !ok ) + { + qDebug("SaveData::Add activity failed" ); + } } - } } - void GlxStateManager::nextState(qint32 state, int internalState) { qDebug("GlxStateManager::nextState next state = %u", state); @@ -309,6 +325,7 @@ GlxState *state = mCurrentState; // To delete the current state later if ( mCurrentState->previousState() == NULL ) { //In the case only one state in stack then exit from the application + saveImage(); // save image if it is in private folder exitApplication() ; return ; } @@ -327,7 +344,34 @@ } delete state; } - + +void GlxStateManager::saveImage() + { + CGlxImageViewerManager *imageViewerInstance = CGlxImageViewerManager::InstanceL(); + if(imageViewerInstance->IsPrivate()) + { + HBufC* imagePath = imageViewerInstance->ImageUri(); + QString srcPath = QString::fromUtf16(imagePath->Des().Ptr(),imagePath->Length()); + QString imageName = srcPath.section('\\', -1); + QString imagesFolderPath("c:/data/images/"); + QString destPath; + destPath.append(imagesFolderPath); + destPath.append(imageName); + int cnt = 1; + qDebug() << "GlxStateManager::saveImage path before while = "<< destPath; + while(!QFile::copy(srcPath,destPath)) + { + QString filename = imageName.section('.', 0,0); + QString ext = imageName.section('.', -1); + destPath.clear(); + destPath = imagesFolderPath + filename + QString::number(cnt) + "." + ext; + qDebug() << "GlxStateManager::saveImage path = "<< destPath; + cnt++; + } + } + imageViewerInstance->Close(); + } + void GlxStateManager::goBack(qint32 stateId, int internalState) { qDebug("GlxStateManager::goBack()"); @@ -428,23 +472,23 @@ void GlxStateManager::launchProgressDialog() { TRACER("GlxStateManager::launchProgressDialog() "); - //HbMainWindow *window = hbInstance->allMainWindows().first(); - //window->setAutomaticOrientationEffectEnabled( true ); QCoreApplication::instance()->installEventFilter( this ); - mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() ); + if ( isProgressbarRunning ) { + mViewManager->updateProgressDialog( mTNObserver->getTNLeftCount() ); + } + else { + mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() ); + } isProgressbarRunning = true ; } void GlxStateManager::vanishProgressDialog() { TRACER("GlxStateManager::vanishProgressDialog() "); - //HbMainWindow *window = hbInstance->allMainWindows().first(); - //window->setAutomaticOrientationEffectEnabled( false ); - QCoreApplication::instance()->removeEventFilter( this ); - isProgressbarRunning = false; - mViewManager->updateProgressDialog( 0 ); + createModel( mCurrentState->id() ); + connect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) ); } GlxState * GlxStateManager::createState(qint32 stateId) @@ -459,7 +503,7 @@ return new GlxListState( mCurrentState ); case GLX_FULLSCREENVIEW_ID : - return new GlxFullScreenState( mCurrentState ); + return new GlxFullScreenState( this, mCurrentState ); case GLX_DETAILSVIEW_ID: return new GlxDetailState( mCurrentState ); @@ -544,6 +588,7 @@ switch( internalState) { case ALL_ITEM_S : + case FETCHER_ITEM_S: if ( mAllMediaModel == NULL ) { modelParm.setCollection( KGlxCollectionPluginAllImplementationUid ); modelParm.setDepth(0); @@ -556,6 +601,7 @@ break; case ALBUM_ITEM_S : + case FETCHER_ALBUM_ITEM_S : if ( dir != BACKWARD_DIR ) { modelParm.setCollection( KGlxAlbumsMediaId ); modelParm.setDepth(0); @@ -592,17 +638,30 @@ changeState( GLX_GRIDVIEW_ID, ALL_ITEM_S ); id = EGlxCmdHandled; break; + + case EGlxCmdFetcherAllGridOpen : + changeState( GLX_GRIDVIEW_ID, FETCHER_ITEM_S ); + id = EGlxCmdHandled; + break; case EGlxCmdAlbumListOpen: changeState( GLX_LISTVIEW_ID, -1 ); id = EGlxCmdHandled; break; - + case EGlxCmdFetcherAlbumListOpen: + changeState( GLX_LISTVIEW_ID, FETCHER_ALBUM_S ); + id = EGlxCmdHandled; + break; + case EGlxCmdAlbumGridOpen: nextState( GLX_GRIDVIEW_ID, ALBUM_ITEM_S ); id = EGlxCmdHandled; break; - + case EGlxCmdFetcherAlbumGridOpen: + nextState( GLX_GRIDVIEW_ID, FETCHER_ALBUM_ITEM_S ); + id = EGlxCmdHandled; + break; + case EGlxCmdFirstSlideshow : //play the slide show with first item mCurrentModel->setData( mCurrentModel->index(0, 0), 0, GlxFocusIndexRole ); @@ -645,6 +704,7 @@ } case EGlxCmdBack : + case EGlxCmdSlideShowBack : previousState(); id = EGlxCmdHandled; break; @@ -684,17 +744,28 @@ } break; - case EGlxCmdMarkAll: - case EGlxCmdUnMarkAll: - mViewManager->handleUserAction(mCurrentState->id(), id); + case EGlxCmdMarkAll : + case EGlxCmdUnMarkAll : + case EGlxCmd3DEffectOn : + case EGlxCmd3DEffectOff : + case EGlxCmdPlayBackAnim : + mViewManager->handleUserAction( mCurrentState->id(), id ); id = EGlxCmdHandled; break; case EGlxCmdSetupItem : emit setupItemsSignal(); break; + + case EGlxCmdFetcherSelect: + { + QModelIndex selectedIndex = mCurrentModel->index(mCurrentModel->data(mCurrentModel->index(0,0),GlxFocusIndexRole).value(),0); + emit gridItemSelected(selectedIndex,*mCurrentModel); + id = EGlxCmdHandled; + } + break; - default : + default : mActionHandler->handleAction(id,mCollectionId); break; } @@ -713,6 +784,7 @@ { qDebug("GlxStateManager::~GlxStateManager"); cleanAllModel(); + mSaveActivity.clear(); delete mActionHandler; qDebug("GlxStateManager::~GlxStateManager delete Model"); diff -r f291796e213d -r fb37077c270f ui/viewmanagement/statehandler/statehandler.pro --- a/ui/viewmanagement/statehandler/statehandler.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/statehandler/statehandler.pro Wed Aug 18 09:48:53 2010 +0300 @@ -19,6 +19,8 @@ DEPENDPATH += . inc src CONFIG += hb +CONFIG += mobility +MOBILITY += sensors INCLUDEPATH += . \ ../../inc \ @@ -30,8 +32,8 @@ ../../uiengine/model/mediamodel/inc \ ../../uiengine/model/listmodel/inc \ ../viewmanager/inc \ - ../../commandhandlers\commandhandlerbase\inc \ - ../../commandhandlers\commoncommandhandlers\inc + ../../commandhandlers/commandhandlerbase/inc \ + ../../commandhandlers/commoncommandhandlers/inc DEFINES += BUILD_STATEMANAGER @@ -50,7 +52,9 @@ -lglxloggerqt.dll \ -lglxcommoncommandhandlers.dll \ -lglxlogging.dll \ - -lglxcommon.dll + -lglxcommon.dll \ + -lglximageviewermanager.dll + # Input HEADERS += inc/glxbasestate.h \ @@ -63,7 +67,8 @@ inc/glxslideshowstate.h \ inc/glxactionhandler.h \ inc/glxcommandhandlerfactory.h \ - inc/glxtnobserver.h + inc/glxtnobserver.h \ + inc/glxorientationsensorfilter.h SOURCES += src/glxbasestate.cpp \ src/glxfullscreenstate.cpp \ @@ -75,7 +80,8 @@ src/glxslideshowstate.cpp \ src/glxactionhandler.cpp \ src/glxcommandhandlerfactory.cpp \ - src/glxtnobserver.cpp + src/glxtnobserver.cpp \ + src/glxorientationsensorfilter.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT diff -r f291796e213d -r fb37077c270f ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h --- a/ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h Wed Aug 18 09:48:53 2010 +0300 @@ -23,4 +23,4 @@ }; -#endif \ No newline at end of file +#endif diff -r f291796e213d -r fb37077c270f ui/viewmanagement/viewmanager/inc/glxmenumanager.h --- a/ui/viewmanagement/viewmanager/inc/glxmenumanager.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/viewmanager/inc/glxmenumanager.h Wed Aug 18 09:48:53 2010 +0300 @@ -21,6 +21,7 @@ class QAbstractItemModel; class QAction; class HbMainWindow; +class GlxSettingInterface; //Grid view option menu @@ -29,7 +30,21 @@ GlxGridViewSlideShow, GlxGridViewAddToAlbum, GlxGridViewRemoveFromAlbum, - GlxGridViewDelete + GlxGridViewDelete, + GlxGridView3DEffect +}; + +//Fullscreen view option menu +enum { + GlxFullScreenViewSend, + GlxFullScreenViewSlideShow, +#ifndef __WINSCW__ + GlxFullScreenViewUseImage, + GlxFullScreenViewMenuRotate, + GlxFullScreenViewCrop, +#endif + GlxFullScreenViewAddToAlbum, + GlxFullScreenViewRemoveoAlbum }; class GlxMenuManager : public QObject @@ -37,22 +52,23 @@ Q_OBJECT public : - GlxMenuManager(HbMainWindow* mainWindow); + GlxMenuManager( HbMainWindow* mainWindow ); ~GlxMenuManager(); - void createMarkingModeMenu(HbMenu* menu); - void ShowItemSpecificMenu(qint32 viewId,QPointF pos); - void setModel(QAbstractItemModel *model) { mModel = model ; } - void addMenu(qint32 viewId, HbMenu* menu); - void removeMenu(qint32 viewId, HbMenu* menu); - void disableAction(HbMenu* menu,bool disable); + void createMarkingModeMenu( HbMenu* menu ); + void ShowItemSpecificMenu( qint32 viewId,QPointF pos ); + void setModel( QAbstractItemModel *model ) { mModel = model ; } + void addMenu( qint32 viewId, HbMenu* menu ); + void removeMenu( qint32 viewId, HbMenu* menu ); + void disableAction( HbMenu* menu,bool disable ); signals : - void commandTriggered(qint32 commandId); + void commandTriggered( qint32 commandId ); private: - void CreateGridMenu(HbMenu* menu); - void CreateListMenu(HbMenu* menu); - void CreateFullscreenMenu(HbMenu* menu); + void CreateGridMenu( HbMenu* menu ); + void CreateListMenu( HbMenu* menu ); + void CreateFullscreenMenu( HbMenu* menu ); + void createSlideShowMenu( HbMenu* menu ); void setAllActionVisibility( QList actionList, bool visible ); int viewSubState(); @@ -67,4 +83,8 @@ HbMainWindow* mMainWindow; HbMenu *mContextMenu; HbMenu* mSubMenu; + HbMenu* m3DEffectSubMenu; + HbMenu* mRotateSubMenu; + HbMenu* mUseImgSubMenu; + GlxSettingInterface *mSettings; }; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/viewmanager/inc/glxviewmanager.h --- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Wed Aug 18 09:48:53 2010 +0300 @@ -24,6 +24,7 @@ #include #include #include "glxuistd.h" +#include class GlxView; class HbMainWindow; @@ -54,97 +55,132 @@ GLX_ALL_ID = 0xFF } glxToolBarActionIds; +/** + * view manager class + */ class GLX_VIEWMANAGER_EXPORT GlxViewManager : public QObject { Q_OBJECT public : + /** + * Constructor + */ GlxViewManager(); + /** + * Destructor + */ ~GlxViewManager(); + void setupItems( ); + + /** + * launch application + * @param id viewId + * @param model model to be used for the view + */ void launchApplication(qint32 id, QAbstractItemModel *model); + + /** + * add back key action + */ void addBackSoftKeyAction(); -/* - * This will return the orientation of main window - */ + + /** + * This will return the orientation of main window + */ Qt::Orientation orientation() const; -/* - * This will deactivate the current function - * to be used only in cases where External launch was done - */ + + /** + * This will deactivate the current function + * to be used only in cases where External launch was done + */ void deactivateCurrentView(); -/* - * To update the tool bar enable and disable icon - * id = This should be selected toolbar tab id - */ + + /** + * To update the tool bar enable and disable icon + * id = This should be selected toolbar tab id + */ void updateToolBarIcon(int id); -/* - * Enable the marking mode of the view to select multiple item - */ + + /** + * Enable the marking mode of the view to select multiple item + */ void enterMarkingMode(qint32 viewId); -/* - * Enable the normal mode of the view - */ + + /** + * Enable the normal mode of the view + */ void exitMarkingMode(qint32 viewId); -/* - * Pass the user action to the view - */ + + /** + * Pass the user action to the view + */ void handleUserAction(qint32 viewId, qint32 commandId); -/* - * Return the selection model to the user - */ + + /** + * Return the selection model to the user + */ QItemSelectionModel * getSelectionModel(qint32 viewId); -/* - * To set the model of current view - */ + + /** + * To set the model of current view + */ void setModel( QAbstractItemModel *model ); signals : -/* - * emit the user action - */ + /** + * emit the user action + */ void actionTriggered(qint32 id); void externalCommand(int cmdId); void applicationReady(); public slots: -/* - * This public slot is used to launch the view - */ + /** + * This public slot is used to launch the view + */ void launchView (qint32 id, QAbstractItemModel *model); -/* - * It is over load slot and used to run the animation for view transition and launch the view - */ + + /** + * It is over load slot and used to run the animation for view transition and launch the view + */ void launchView (qint32 id, QAbstractItemModel *model, GlxEffect effect, GlxViewEffect viewEffect); void launchProgressDialog( int maxValue ); void updateProgressDialog( int currentValue); -/* - * It will removed and deleted the view. - * Currently It is not used so may be in future, It will be removed. - */ + + /** + * It will removed and deleted the view. + * Currently It is not used so may be in future, It will be removed. + */ void destroyView (qint32 id); -/* - * It will pass the user action to the state manager - */ + + /** + * It will pass the user action to the state manager + */ void actionProcess(qint32 id); -/* - * It will pass the user selected menu action to state manager - * check for depricated with actionProcess api - */ + + /** + * It will pass the user selected menu action to state manager + * check for depricated with actionProcess api + */ void handleMenuAction(qint32 commandId); -/* - * It will pass the user action ( tool bar + back ) to state manager - */ + + /** + * It will pass the user action ( tool bar + back ) to state manager + */ void handleAction(); void cancelTimer(); -/* - * This is slot used for the animation finished call back - */ + + /** + * This is slot used for the animation finished call back + */ void effectFinished( ); -/* - * This will open the item specifc Menu - */ + + /** + * This will open the item specifc Menu + */ void itemSpecificMenuTriggered(qint32,QPointF ); void handleReadyView(); @@ -156,46 +192,60 @@ void hideProgressDialog(); private: -/* - * It will create and return the view - */ + /** + * It will create and return the view + */ GlxView * resolveView (qint32 id); -/* - * It will find a view from the view list and return it - */ + + /** + * It will find a view from the view list and return it + */ GlxView * findView (qint32 id); -/* - * It will deativate the current view - */ + + /** + * It will deativate the current view + */ void deActivateView(); -/* - * It will activate and show the view - */ + + /** + * It will activate and show the view + */ void activateView(); -/* - * It will create the grid and list view tool bar action - */ + + /** + * It will create the grid and list view tool bar action + */ void createActions(); -/* - * It will create the marking mode toll bar action - */ + + /** + * It will create the marking mode toll bar action + */ void createMarkingModeActions(); -/* - * It will create the grid and list view tool bar - */ + + /** + * It will create the grid and list view tool bar + */ void createToolBar(); -/* - * It will create the marking mode tool bar - */ + + /** + * It will create the marking mode tool bar + */ void createMarkingModeToolBar(); -/* - * It will add all the view manager related connection - */ + + /** + * It will add all the view manager related connection + */ void addConnection(); -/* - * It will remove all the view manager releted connection - */ + + /** + * It will remove all the view manager releted connection + */ void removeConnection(); + + /** + * + */ + int getSubState(); private: QList mViewList; //It contains all the view created by it self. diff -r f291796e213d -r fb37077c270f ui/viewmanagement/viewmanager/src/glxmenumanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -28,6 +28,7 @@ #include "glxcommandhandlers.hrh" #include "glxmodelparm.h" #include "glxlocalisationstrings.h" +#include "glxsettinginterface.h" GlxMenuManager::GlxMenuManager(HbMainWindow* mainWindow) @@ -35,6 +36,7 @@ mMainWindow( mainWindow ), mContextMenu( 0 ) { + mSettings = GlxSettingInterface::instance(); } GlxMenuManager::~GlxMenuManager() @@ -71,10 +73,14 @@ void GlxMenuManager::addMenu(qint32 viewId, HbMenu* menu) { + int curState = viewSubState(); + if( curState == FETCHER_ITEM_S || curState == FETCHER_S || curState == FETCHER_ALBUM_S || curState == IMAGEVIEWER_S) + return; + switch(viewId) { case GLX_GRIDVIEW_ID: + CreateGridMenu( menu ); connect( menu, SIGNAL( aboutToShow() ), this, SLOT( updateGridMenu() ) ); - CreateGridMenu( menu ); break; case GLX_LISTVIEW_ID: @@ -82,9 +88,13 @@ break; case GLX_FULLSCREENVIEW_ID: + CreateFullscreenMenu( menu ); connect( menu, SIGNAL( aboutToShow() ), this, SLOT( updateFullscreenMenu() ) ); - CreateFullscreenMenu( menu ); break; + + case GLX_SLIDESHOWVIEW_ID : + createSlideShowMenu( menu ); + break ; default: break; @@ -145,6 +155,22 @@ action->setData(EGlxCmdDelete); action->setObjectName( "GridMenu Delete" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + + m3DEffectSubMenu = menu->addMenu(GLX_GRID_OPT_EFFECT); + m3DEffectSubMenu->setObjectName( "GridMenu 3DEffect" ); + + action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_ON); + action->setCheckable(ETrue); + action->setData(EGlxCmd3DEffectOn); + action->setObjectName( "GridMenu 3DOn" ); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + + action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_OFF); + action->setCheckable(ETrue); + action->setData(EGlxCmd3DEffectOff); + action->setObjectName( "GridMenu 3DOff" ); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + } void GlxMenuManager::CreateListMenu(HbMenu* menu) @@ -186,15 +212,21 @@ CFeatureDiscovery* featManager = CFeatureDiscovery::NewL(); if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor)) { - mSubMenu = menu->addMenu(QString("Rotate")); - action = mSubMenu->addAction(QString("90 CW")); + mUseImgSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE); + action = mUseImgSubMenu->addAction(GLX_MENU_SET_WALLPAPER); + action->setData(EGlxCmdSetWallpaper); + connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + + + mRotateSubMenu = menu->addMenu(GLX_MENU_ROTATE); + action = mRotateSubMenu->addAction(GLX_MENU_90_CW); action->setData(EGlxCmdRotateImgCW); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); - action = mSubMenu->addAction(QString("90 CCW")); + action = mRotateSubMenu->addAction(GLX_MENU_90_CCW); action->setData(EGlxCmdRotateImgCCW); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); - action = menu->addAction(QString("Crop")); + action = menu->addAction(GLX_MENU_CROP); action->setData(EGlxCmdRotateImgCrop); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); } @@ -205,6 +237,21 @@ action->setData(EGlxCmdAddToAlbum); action->setObjectName( "FSMenu AddToAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action = menu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM ); + action->setData( EGlxCmdRemoveFrom ); + action->setObjectName( "FSMenu RemoveAlbum" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); +} + +void GlxMenuManager::createSlideShowMenu( HbMenu* menu ) +{ + HbAction *action = NULL; + menu->setObjectName( "SSMenu" ); + + action = menu->addAction( GLX_OPTION_SS_SETTINGS ); + action->setData( EGlxCmdSlideshowSettings ); + action->setObjectName( "SSMenu Setting" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); } void GlxMenuManager::setAllActionVisibility( QList actionList, bool visible ) @@ -217,9 +264,11 @@ int GlxMenuManager::viewSubState() { - QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); - if ( variant.isValid() && variant.canConvert () ) { - return variant.value() ; + if(mModel){ + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + return variant.value() ; + } } return -1; } @@ -257,6 +306,26 @@ actionList.at(GlxGridViewRemoveFromAlbum)->setVisible( FALSE ); break ; } + + if(mMainWindow->orientation() == Qt::Horizontal) + { + actionList.at(GlxGridView3DEffect)->setVisible( TRUE ); + QList subActionList = m3DEffectSubMenu->actions(); + if(mSettings->mediaWall3DEffect()) + { + subActionList.at(0)->setChecked(ETrue); + subActionList.at(1)->setChecked(EFalse); + } + else + { + subActionList.at(0)->setChecked(EFalse); + subActionList.at(1)->setChecked(ETrue); + } + } + else + { + actionList.at(GlxGridView3DEffect)->setVisible( FALSE ); + } } } @@ -276,6 +345,34 @@ setAllActionVisibility( actionList, TRUE ); isAllActionDisable = FALSE; } + + + +#ifndef __WINSCW__ + if ( state != IMAGEVIEWER_S) + { + int frameCount = (mModel->data(mModel->index(( + mModel->data(mModel->index(0, 0),GlxFocusIndexRole)).value (), 0), + GlxFrameCount)).value(); + bool setVisible = true; + if (frameCount > 1) + { + //Check for animated image, if found hide editor specific menu + setVisible = false; + } + //If Use Image contains any sub menu item other then related to Editor + //then individual sub menu item needs to be hidden rather then + //complete "Use Image"menu + actionList[GlxFullScreenViewUseImage]->setVisible(setVisible); + actionList[GlxFullScreenViewMenuRotate]->setVisible(setVisible); + actionList[GlxFullScreenViewCrop]->setVisible(setVisible); + } +#endif + if( state != ALBUM_FULLSCREEN_S ){ + actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(false); + }else{ + actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(true); + } } void GlxMenuManager::menuItemSelected() @@ -292,62 +389,87 @@ mContextMenu = new HbMenu(); mContextMenu->setObjectName( "ContextMenu" ); HbAction *action = NULL; - switch ( viewId ) { case GLX_GRIDVIEW_ID : - action = mContextMenu->addAction(GLX_MENU_SHARE); - action->setData(EGlxCmdContextSend); + if ( viewSubState() == FETCHER_ITEM_S || viewSubState() == FETCHER_ALBUM_ITEM_S) { + action = mContextMenu->addAction( GLX_MENU_OPEN ); + action->setData( EGlxCmdFetcherFullScreenOpen ); + action->setObjectName( "CM Open1" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + break; + } + + action = mContextMenu->addAction( GLX_MENU_OPEN ); + action->setData( EGlxCmdFullScreenOpen ); + action->setObjectName( "CM Open" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + + action = mContextMenu->addAction( GLX_MENU_SHARE ); + action->setData( EGlxCmdContextSend ); action->setObjectName( "CM Send" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); - action = mContextMenu->addAction(GLX_MENU_SLIDESHOW); - action->setData(EGlxCmdSelectSlideshow); + action = mContextMenu->addAction( GLX_MENU_SLIDESHOW ); + action->setData( EGlxCmdSelectSlideshow ); action->setObjectName( "CM SlideShow" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + action = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM ); + action->setData( EGlxCmdContextAddToAlbum ); + action->setObjectName( "CM AddToAlbum" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + if ( viewSubState() == ALBUM_ITEM_S ) { - action = mContextMenu->addAction(GLX_OPTION_REMOVE_FROM_ALBUM); - action->setData(EGlxCmdContextRemoveFrom); + action = mContextMenu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM ); + action->setData( EGlxCmdContextRemoveFrom ); action->setObjectName( "CM RemoveAlbum" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); } - action = mContextMenu->addAction(GLX_MENU_ADD_TO_ALBUM); - action->setData(EGlxCmdContextAddToAlbum); - action->setObjectName( "CM AddToAlbum" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); - - action = mContextMenu->addAction(GLX_MENU_DELETE); - action->setData(EGlxCmdContextDelete); + action = mContextMenu->addAction( GLX_MENU_DELETE ); + action->setData( EGlxCmdContextDelete ); action->setObjectName( "CM Delete" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); break; case GLX_LISTVIEW_ID : { + if ( viewSubState() == FETCHER_ALBUM_S ) { + action = mContextMenu->addAction( GLX_MENU_OPEN ); + action->setData( EGlxCmdFetcherAlbumGridOpen ); + action->setObjectName( "CM Open1" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + break; + } + int count = 0; QVariant variant = mModel->data( mModel->index(0,0), GlxListItemCount ); if ( variant.isValid() && variant.canConvert () ) { count = variant.value(); - } + } + + action = mContextMenu->addAction( GLX_MENU_OPEN ); + action->setData( EGlxCmdAlbumGridOpen ); + action->setObjectName( "CM Album Open" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); if ( count ) { - action = mContextMenu->addAction(GLX_MENU_SLIDESHOW); - action->setData(EGlxCmdAlbumSlideShow); + action = mContextMenu->addAction( GLX_MENU_SLIDESHOW ); + action->setData( EGlxCmdAlbumSlideShow ); action->setObjectName( "CM Album SlideShow" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); } variant = mModel->data( mModel->index(0,0), GlxSystemItemRole ); if ( variant.isValid() && variant.canConvert () && ( variant.value() == false ) ) { - action = mContextMenu->addAction(GLX_MENU_RENAME); - action->setData(EGlxCmdContextRename); + action = mContextMenu->addAction( GLX_MENU_RENAME ); + action->setData( EGlxCmdContextRename ); action->setObjectName( "CM Rename" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); - action = mContextMenu->addAction(GLX_MENU_DELETE); - action->setData(EGlxCmdContextAlbumDelete); + action = mContextMenu->addAction( GLX_MENU_DELETE ); + action->setData( EGlxCmdContextAlbumDelete ); action->setObjectName( "CM Album Delete" ); - connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); } } break; diff -r f291796e213d -r fb37077c270f ui/viewmanagement/viewmanager/src/glxviewmanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -40,7 +40,8 @@ #include #include #include - +#include +#include "glxmodelroles.h" GlxViewManager::GlxViewManager() : mBackAction( NULL ), @@ -52,22 +53,23 @@ mProgressDialog( NULL ) { qDebug("GlxViewManager::GlxViewManager() "); - PERFORMANCE_ADV ( viewMgrD1, "main window creation time" ) { - //check the case when application launch through some other application (view plugin) - mMainWindow = GlxExternalUtility::instance()->getMainWindow(); - if(mMainWindow == NULL) { - mMainWindow = new HbMainWindow(); - connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() )); - } - //Without this Zoom Does not work - mWindowEventFilter = new GlxMainWindowEventFilter; - mMainWindow->scene()->installEventFilter(mWindowEventFilter); - mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents); - mMainWindow->viewport()->grabGesture(Qt::PinchGesture); + //check the case when application launch through some other application (view plugin) + mMainWindow = GlxExternalUtility::instance()->getMainWindow(); + if(mMainWindow == NULL) { + mMainWindow = new HbMainWindow(); } + connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() )); + //Without this Zoom Does not work + + mWindowEventFilter = new GlxMainWindowEventFilter; + mMainWindow->scene()->installEventFilter(mWindowEventFilter); + mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents); + mMainWindow->viewport()->grabGesture(Qt::PinchGesture); + HbStyleLoader::registerFilePath(":/data/photos.css"); } + void GlxViewManager::handleReadyView() { emit actionTriggered( EGlxCmdSetupItem ); @@ -77,21 +79,18 @@ void GlxViewManager::setupItems( ) { - mMenuManager = new GlxMenuManager(mMainWindow); addBackSoftKeyAction(); - addConnection(); - mMenuManager->addMenu( mView->viewId(), mView->menu() ); - mMenuManager->setModel( mModel ); + addConnection(); } void GlxViewManager::launchApplication(qint32 id, QAbstractItemModel *model) { mModel = model; - PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) { - mView = resolveView(id); - } + mMenuManager = new GlxMenuManager( mMainWindow ); //menu manager should be created before view. + mMenuManager->setModel( mModel ); + mView = resolveView( id ); + createToolBar(); - mView->addToolBar(mViewToolBar); /* We are showing the toolBar before activating the * view. This is done to avoid the animation effect seen otherwise @@ -103,14 +102,11 @@ * */ mView->activate(); - - PERFORMANCE_ADV ( viewMgrD3, "Set Model time") - mView->setModel(mModel); - - PERFORMANCE_ADV( viewMgrD4, "View Display time") { - mMainWindow->setCurrentView(mView, false); - mMainWindow->showFullScreen(); - } + mView->setModel( mModel ); + //visibility of tool bar dependes of view internal state so add the toolbar after setting model + mView->addToolBar( mViewToolBar ); + mMainWindow->setCurrentView( mView, false ); + mMainWindow->showFullScreen(); } void GlxViewManager::handleMenuAction(qint32 commandId) @@ -121,6 +117,7 @@ void GlxViewManager::handleAction() { HbAction *action = qobject_cast(sender()); + action->setChecked( TRUE ); qint32 commandId = action->data().toInt(); emit actionTriggered(commandId); } @@ -129,8 +126,8 @@ { qDebug("GlxViewManager::addBackSoftKeyAction "); //create the back soft key action and set the data - mBackAction = new HbAction(Hb::BackNaviAction, this); - mBackAction->setData(EGlxCmdBack); + mBackAction = new HbAction( Hb::BackNaviAction, this ); + mBackAction->setData( EGlxCmdBack ); mBackAction->setObjectName( "App Back" ); mView->setNavigationAction( mBackAction ); } @@ -140,16 +137,13 @@ return mMainWindow->orientation(); } -void GlxViewManager::launchView(qint32 id, QAbstractItemModel *model) +void GlxViewManager::launchView( qint32 id, QAbstractItemModel *model ) { - qDebug("GlxViewManager::launchView Id = %d ", id); + qDebug( "GlxViewManager::launchView Id = %d ", id ); mModel = model; deActivateView(); - - PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) { - mView = resolveView(id); - } - + mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info + mView = resolveView( id ); activateView(); } @@ -176,10 +170,11 @@ //partially clean the view so that animation run smoothly GlxView *curr_view = (GlxView *) mMainWindow->currentView(); curr_view->resetView(); - + + mMenuManager->setModel( model ); //set the model to get the item type info and row count info mView = resolveView(id); //partially initialise the view so that animation run smoothly - mView->initializeView( model); + mView->initializeView( model, curr_view ); mModel = model; if ( viewEffect == CURRENT_VIEW || viewEffect == BOTH_VIEW ) { @@ -201,6 +196,10 @@ } } + if ( effect == GRID_TO_FULLSCREEN ) { + mViewToolBar->setZValue( item->zValue() - 5 ); + } + //error check if ( itemList.count() > 0 ) { mEffectEngine->runEffect(itemList, effect); @@ -247,38 +246,8 @@ //To:Do temp code remove later if ( mProgressDialog ) { i = ++i % 10; - switch ( i ) { - case 0 : - icon = HbIcon( QString(":/data/Image1.jpg") ); - break; - case 1 : - icon = HbIcon( QString(":/data/Image2.jpg") ); - break; - case 2 : - icon = HbIcon( QString(":/data/Image3.jpg") ); - break; - case 3 : - icon = HbIcon( QString(":/data/Image4.jpg") ); - break; - case 4 : - icon = HbIcon( QString(":/data/Image5.jpg") ); - break; - case 5 : - icon = HbIcon( QString(":/data/Image6.jpg") ); - break; - case 6 : - icon = HbIcon( QString(":/data/Image7.jpg") ); - break; - case 7 : - icon = HbIcon( QString(":/data/Image8.jpg") ); - break; - case 8 : - icon = HbIcon( QString(":/data/Image9.jpg") ); - break; - case 9 : - icon = HbIcon( QString(":/data/Image10.jpg") ); - break; - } + icon = HbIcon( QString( ":/data/Wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) ); + mProgressDialog->setIcon(icon); int max = mProgressDialog->maximum() ; if ( currentValue > max ) { @@ -286,10 +255,8 @@ max = currentValue ; } - mProgressDialog->setIcon(icon); - if ( currentValue < 0 ) { - mProgressDialog->setText( QString( "Refreshing" ) ); //To:Do string will change later + mProgressDialog->setText( QString( GLX_REFRESHING ) ); //To:Do string will change later mProgressDialog->setProgressValue( 0 ); } else { @@ -317,22 +284,18 @@ qDebug("GlxViewManager::updateToolBarIcon() action ID list %d count %d", id, count); - for ( int i = 0; i < count ; i++ ) - { + for ( int i = 0; i < count ; i++ ) { qDebug("GlxViewManager::updateToolBarIcon() toolBarActionId %d value %d", toolBarActionId, ( id & toolBarActionId ) ); //check and get the icon path - if ( ( id & toolBarActionId ) == toolBarActionId ) - { - mActionList[i]->setCheckable(TRUE); + if ( ( id & toolBarActionId ) == toolBarActionId ) { mActionList[i]->setChecked(TRUE); - } - else - { + } + else { mActionList[i]->setChecked(FALSE); - } + } //to get it the next action id to verify it is selecter or not toolBarActionId = toolBarActionId << 1; - } + } } void GlxViewManager::checkMarked() @@ -343,7 +306,6 @@ if( mMarkingActionList.at(i)->data()==EGlxCmdSelect) { bool noSelection=selectedModelIndex.empty(); mMarkingActionList.at(i)->setDisabled(noSelection); - mMenuManager->disableAction(mView->menu(),noSelection); break; } } @@ -417,23 +379,22 @@ } } -GlxView * GlxViewManager::resolveView(qint32 id) +GlxView * GlxViewManager::resolveView( qint32 id ) { - qDebug("GlxViewManager::resolveView %d", id); + qDebug("GlxViewManager::resolveView %d", id ); GlxView *view = findView ( id ); if ( view ) { return view ; } - view = GlxViewsFactory::createView(id, mMainWindow); + view = GlxViewsFactory::createView( id, mMainWindow ); if ( view ) { - connect ( view, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionProcess(qint32 )), Qt::QueuedConnection ); - connect ( view, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ), this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ), Qt::QueuedConnection ); - mViewList.append(view); - mMainWindow->addView(view); - if ( mMenuManager ) { - mMenuManager->addMenu( id, view->menu()); - } + connect ( view, SIGNAL( actionTriggered( qint32 ) ), this, SLOT( actionProcess( qint32 ) ), Qt::QueuedConnection ); + connect ( view, SIGNAL( itemSpecificMenuTriggered( qint32, QPointF ) ), this, SLOT( itemSpecificMenuTriggered( qint32, QPointF ) ), Qt::QueuedConnection ); + mViewList.append( view ); + mMainWindow->addView( view ); + mMenuManager->addMenu( id, view->menu() ); + if ( mBackAction ) { view->setNavigationAction( mBackAction ); } @@ -488,42 +449,53 @@ void GlxViewManager::activateView() { qDebug("GlxViewManager::activateView()"); - - PERFORMANCE_ADV ( viewMgrD2, "View Activation time") { - mView->addToolBar(mViewToolBar); - mView->activate(); - mView->show(); - mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info - } - - PERFORMANCE_ADV ( viewMgrD3, "Set Model time") - mView->setModel(mModel); - - PERFORMANCE_ADV( viewMgrD4, "View Display time") { - mMainWindow->setCurrentView(mView, false); - mMainWindow->showFullScreen(); - } + + mView->activate(); + mView->show(); + mView->setModel( mModel ); + //visibility of tool bar dependes of view internal state so add the toolbar after setting model + mView->addToolBar( mViewToolBar ); + mMainWindow->setCurrentView(mView, false); + mMainWindow->showFullScreen(); } void GlxViewManager::createActions() { qDebug("GlxViewManager::createActions() " ); mActionList.clear(); + + int curSubstate = getSubState(); //create the All tool bar button action HbAction* allAction = new HbAction( this ); - allAction->setData( EGlxCmdAllGridOpen ); + + if( curSubstate == FETCHER_ITEM_S ) { + allAction->setData( EGlxCmdFetcherAllGridOpen ); + }else{ + allAction->setData( EGlxCmdAllGridOpen ); + } + mActionList.append( allAction ); allAction->setIcon( HbIcon( GLXICON_ALL ) ) ; allAction->setObjectName( "All Action" ); //create the Album tool bar button action HbAction* albumAction = new HbAction( this ); - albumAction->setData( EGlxCmdAlbumListOpen ); + + if( curSubstate == FETCHER_ITEM_S ) { + albumAction->setData( EGlxCmdFetcherAlbumListOpen ); + }else{ + albumAction->setData( EGlxCmdAlbumListOpen ); + } + mActionList.append( albumAction ); albumAction->setIcon( HbIcon( GLXICON_ALBUMS ) ) ; albumAction->setObjectName( "Album Action" ); - + + //in case of fetcher no need to create other actions + if( curSubstate == FETCHER_ITEM_S ) { + return; + } //create the album tool bar button action HbAction* cameraAction = new HbAction( this ); cameraAction->setData( EGlxCmdCameraOpen ); @@ -607,6 +579,7 @@ int count = mActionList.count(); for ( int i = 0; i < count; i++ ) { connect( mActionList.at(i), SIGNAL(triggered( )), this, SLOT(handleAction( )) ); + mActionList.at(i)->setCheckable( TRUE ); mViewToolBar->addAction( mActionList.at(i) ); } qDebug("GlxViewManager::createToolBar() exit" ); @@ -705,7 +678,7 @@ } if( mMainWindow != GlxExternalUtility::instance()->getMainWindow() ){ - qDebug("GlxViewManager::~GlxViewManager remove view"); + qDebug("GlxViewManager::~GlxViewManager delete mainwindow"); delete mMainWindow; } delete mWindowEventFilter; @@ -713,3 +686,15 @@ qDebug("GlxViewManager::~GlxViewManager Exit"); } +int GlxViewManager::getSubState() +{ + int curSubstate = NO_GRID_S; + + if ( mModel ) { + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + curSubstate = variant.value(); + } + } + return curSubstate; +} diff -r f291796e213d -r fb37077c270f ui/viewmanagement/viewmanager/viewmanager.pro --- a/ui/viewmanagement/viewmanager/viewmanager.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewmanagement/viewmanager/viewmanager.pro Wed Aug 18 09:48:53 2010 +0300 @@ -25,6 +25,7 @@ ../../../loggers/loggerqt/inc \ ../../../commonutilities/externalutility/inc \ ../../viewutilities/effectengine/inc \ + ../../viewutilities/settingutility/inc CONFIG += hb diff -r f291796e213d -r fb37077c270f ui/views/detailsview/inc/glxdetailscustomicon.h --- a/ui/views/detailsview/inc/glxdetailscustomicon.h Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: ?Description -* -*/ - -#ifndef GLXDETAILSCUSTOMICON_H -#define GLXDETAILSCUSTOMICON_H - -#include -class HbIconItem; -class HbIcon; - -class GlxDetailsCustomIcon : public HbWidget -{ - Q_OBJECT - -public: - GlxDetailsCustomIcon(QGraphicsItem *parent); - ~GlxDetailsCustomIcon(); - /* - * Sets the Geometry of the Custom Widget - */ - void setItemGeometry(QRect screenRect); - - /* - * Sets the Size of the Favourite Icon - */ - void setItemSize(const QSizeF &size); - - /* - * Sets the Position of the Favourite Icon - */ - void setItemPos(qreal ax, qreal ay); - - /* - * Sets the Icon of Favourite IconItem. - */ - void setItemIcon(const HbIcon &icon); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent (QGraphicsSceneMouseEvent *event); - -signals : - void updateFavourites(); - -private: - HbIconItem *mFavIcon; -}; - -#endif // GLXDETAILSCUSTOMICON_H diff -r f291796e213d -r fb37077c270f ui/views/detailsview/inc/glxdetailsview.h --- a/ui/views/detailsview/inc/glxdetailsview.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/detailsview/inc/glxdetailsview.h Wed Aug 18 09:48:53 2010 +0300 @@ -29,8 +29,9 @@ class HbDocumentLoader; class HbLabel; class HbPushButton; -class GlxDetailsNameLabel; -class GlxDetailsDescriptionEdit; +class GlxDetailsTextEdit; +class GlxDetailsIcon; + class GlxDetailsViewDocLoader; class GlxDetailsView : public GlxView @@ -61,7 +62,7 @@ /* * This is called from the view manager before the view is going to Activated. */ - void initializeView(QAbstractItemModel *model); + void initializeView( QAbstractItemModel *model, GlxView *preView ); /* * This is called from the view manager before the view is going to de-activated. @@ -82,6 +83,7 @@ void updateLayout(Qt::Orientation); void rowsRemoved(const QModelIndex &parent, int start, int end); void dataChanged(QModelIndex startIndex, QModelIndex endIndex); + void modelDestroyed(); void updateFavourites(); void UpdateDescription(); void FillDetails(); @@ -146,13 +148,14 @@ */ void clearConnections(); + int getSubState(); private: //Contains the thumbnail shown in teh details view. HbLabel *mDetailsIcon; //Contains the favourite icon which adds or removes the image to favourite folder - HbPushButton *mFavIcon; + GlxDetailsIcon *mFavIcon; //The media Model to acess the attributes; not owned,dont delete. QAbstractItemModel *mModel; @@ -169,10 +172,10 @@ GlxDetailsViewDocLoader *mDocLoader; //Shows the Images - GlxDetailsNameLabel *mImageName; + GlxDetailsTextEdit *mImageName; //Shows the descriptions - GlxDetailsDescriptionEdit *mDescriptions; + GlxDetailsTextEdit *mDescriptions; //Shows the Date HbLabel *mDateLabel; @@ -182,5 +185,8 @@ //Shows the time HbLabel *mTimeLabel; + + HbIcon mFavIconEnabled; + HbIcon mFavIconDisabled; }; #endif //GLXDETAILSVIEW_H diff -r f291796e213d -r fb37077c270f ui/views/detailsview/src/glxdetailscustomicon.cpp --- a/ui/views/detailsview/src/glxdetailscustomicon.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 -#include -#include - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//mousePressEvent -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsCustomIcon::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - Q_UNUSED(event) -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//clearCurrentModel -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsCustomIcon::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) -{ - Q_UNUSED(event) - emit updateFavourites(); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//GlxDetailsCustomIcon -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsCustomIcon::GlxDetailsCustomIcon(QGraphicsItem *parent) : HbWidget(parent) -{ - mFavIcon = new HbIconItem(this); - HbFrameItem* frame = new HbFrameItem(this); - frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame->graphicsItem()->setOpacity(0.2); - setBackgroundItem(frame->graphicsItem(),-1); - -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//~GlxDetailsCustomIcon -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsCustomIcon::~GlxDetailsCustomIcon() -{ - delete mFavIcon; - mFavIcon = NULL; -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setItemGeometry -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsCustomIcon::setItemGeometry(QRect screenRect) -{ - setGeometry(screenRect); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setItemSize -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsCustomIcon::setItemSize(const QSizeF &size) -{ - mFavIcon->setSize(size); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setItemPos -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsCustomIcon::setItemPos(const qreal ax,const qreal ay) -{ - //place the FavIcon with respect to the parent i.e HbWidget - mFavIcon->setPos(ax ,ay); -} - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setItemIcon -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsCustomIcon::setItemIcon(const HbIcon &icon) -{ - mFavIcon->setIcon(icon); -} diff -r f291796e213d -r fb37077c270f ui/views/detailsview/src/glxdetailscustomwidgets.cpp --- a/ui/views/detailsview/src/glxdetailscustomwidgets.cpp Tue Jul 06 14:16:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: ?Description -* -*/ - -#include "glxdetailscustomwidgets.h" -#include -#include -#include -#include - -#include -#include -//#include "hbsettingformitem_p.h" -#include -#include -#include -#include - -GlxDetailsCustomWidgets::GlxDetailsCustomWidgets(QGraphicsItem *parent): -HbDataFormViewItem(parent) - { - } - -GlxDetailsCustomWidgets::~GlxDetailsCustomWidgets() - { - } - -HbAbstractViewItem* GlxDetailsCustomWidgets::createItem() - { - return new GlxDetailsCustomWidgets(*this); - } - -HbWidget* GlxDetailsCustomWidgets::createCustomWidget() - { - qDebug("GlxDetailsCustomWidgets::createCustomWidget"); - HbDataFormModelItem::DataItemType itemType = static_cast( - modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt()); - switch(itemType) - { - - case DateLabelItem : - { - qDebug("GlxDetailsCustomWidgets::createCustomWidget:DateLabelItem"); - HbLabel *dateLabel = new HbLabel(); - return dateLabel; - } - - - - default: - return 0; - - } - } - -bool GlxDetailsCustomWidgets::canSetModelIndex(const QModelIndex &index) const -{ - HbDataFormModelItem::DataItemType itemType = - static_cast( - index.data(HbDataFormModelItem::ItemTypeRole).toInt()); - - if(itemType >= ImageNameItem && - itemType <= CommentsItem ) - { - return true; - } - return false; -} - -//EOF diff -r f291796e213d -r fb37077c270f ui/views/detailsview/src/glxdetailsview.cpp --- a/ui/views/detailsview/src/glxdetailsview.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/detailsview/src/glxdetailsview.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -34,7 +34,7 @@ #include #include #include - +#include //-------------------------------------------------------------------------------------------------------------------------------------------- #include "glxviewids.h" #include "glxicondefs.h" //Contains the icon names/Ids @@ -44,8 +44,9 @@ #include "glxfavmediamodel.h" #include "glxdocloaderdefs.h" #include -#include "glxdetailsdescriptionedit.h" -#include "glxdetailsnamelabel.h" +#include "glxlocalisationstrings.h" +#include "glxdetailstextedit.h" +#include "glxdetailsicon.h" #include "glxviewdocloader.h" @@ -61,7 +62,8 @@ #endif //SIZE OF THE IMAGE , LAYOUTS TEAM NEED TO GIVER THE SIZE IN UNITS -#define GLX_IMAGE_SIZE 215 +#define GLX_IMAGE_WIDTH 333 +#define GLX_IMAGE_HEIGHT 215 const int KBytesInKB = 1024; const int KBytesInMB = 1024 * 1024; const int KBytesInGB = 1024 * 1024 * 1024; @@ -69,29 +71,39 @@ //-------------------------------------------------------------------------------------------------------------------------------------------- //GlxDetailsView //-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsView::GlxDetailsView(HbMainWindow *window) : -GlxView(GLX_DETAILSVIEW_ID), mDetailsIcon(NULL), mFavIcon(NULL), mModel( - NULL), mFavModel(NULL), mWindow(window), - mSelIndex(0),mDocLoader(NULL),mImageName(NULL),mDescriptions(NULL),mDateLabel(NULL),mSizeLabel(NULL),mTimeLabel(NULL) - { +GlxDetailsView::GlxDetailsView(HbMainWindow *window) + : GlxView( GLX_DETAILSVIEW_ID ), + mDetailsIcon( NULL ), + mFavIcon( NULL ), + mModel( NULL ), + mFavModel( NULL ), + mWindow( window ), + mSelIndex( 0 ), + mDocLoader( NULL ), + mImageName( NULL ), + mDescriptions( NULL ), + mDateLabel( NULL ), + mSizeLabel( NULL ), + mTimeLabel( NULL ) +{ GLX_LOG_INFO("GlxDetailsView::GlxDetailsView"); OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY ); setContentFullScreen(true);//for smooth transtion between grid to full screen and vice versa OstTraceFunctionExit0( GLXDETAILSVIEW_GLXDETAILSVIEW_EXIT ); - } +} //-------------------------------------------------------------------------------------------------------------------------------------------- //~GlxDetailsView //-------------------------------------------------------------------------------------------------------------------------------------------- GlxDetailsView::~GlxDetailsView() - { +{ OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" ); delete mDocLoader; mDocLoader = NULL; cleanUp(); - } +} //-------------------------------------------------------------------------------------------------------------------------------------------- //activate @@ -100,7 +112,9 @@ { OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY ); //create and set the Favourite Model - setFavModel(); + if(getSubState() != IMAGEVIEWER_DETAIL_S) { + setFavModel(); + } //fill the data FillDetails(); @@ -120,34 +134,33 @@ //-------------------------------------------------------------------------------------------------------------------------------------------- //initializeView //-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::initializeView(QAbstractItemModel *model) - { +void GlxDetailsView::initializeView( QAbstractItemModel *model, GlxView *preView) +{ + Q_UNUSED( preView ) OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY ); bool loaded = false; - + if(!mDocLoader) { mDocLoader = new GlxDetailsViewDocLoader(); } - + //Load the docml mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, &loaded); - + HbView *mView = static_cast (mDocLoader->findWidget( GLX_DETAILSVIEW_VIEW)); - HbWidget *mwidget = static_cast (mDocLoader->findWidget( - "MainWidget")); - mDetailsIcon = static_cast (mDocLoader->findWidget( GLX_DETAILSVIEW_IMAGE)); - mFavIcon = static_cast (mDocLoader->findWidget( + mFavIcon = static_cast (mDocLoader->findWidget( GLX_DETAILSVIEW_FAVICON)); - mDescriptions = static_cast (mDocLoader->findWidget( + + mDescriptions = static_cast (mDocLoader->findWidget( GLX_DETAILSVIEW_DESCRPTIONTEXT)); - mImageName = static_cast (mDocLoader->findWidget( + mImageName = static_cast (mDocLoader->findWidget( GLX_DETAILSVIEW_IMGNAME)); mDateLabel = static_cast (mDocLoader->findWidget( @@ -159,25 +172,24 @@ mSizeLabel = static_cast (mDocLoader->findWidget( GLX_DETAILSVIEW_SIZETEXT)); - //set the frame graphics to the background of the fav icon - HbFrameItem* frame = new HbFrameItem(this); - frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame->graphicsItem()->setOpacity(0.2); - mFavIcon->setBackgroundItem(frame->graphicsItem(), -1); - mFavIcon->setBackground(HbIcon("qtg_fr_multimedia_trans")); - mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV)); - - setWidget(mView); - + mFavIconEnabled = HbIcon(GLXICON_ADD_TO_FAV); + mFavIconDisabled = HbIcon(GLXICON_REMOVE_FAV); + //Set the Model mModel = model; - + if(getSubState() == IMAGEVIEWER_DETAIL_S) { + mFavIcon->hide(); + } + else + { + mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV)); + } + + setWidget(mView); + //Set the Layout Correspondingly. updateLayout(mWindow->orientation()); - //Shows the Image - showImage(); OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT ); } @@ -211,14 +223,15 @@ //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::cleanUp() { + qDebug("GlxDetailsView::cleanUp Enter"); + //clear the connections + clearConnections(); + clearCurrentModel(); - //clear the connections - clearConnections(); - delete mFavModel; mFavModel = NULL; - + delete mFavIcon; mFavIcon = NULL; @@ -251,80 +264,80 @@ mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxUriRole)).value (); - if (mFavModel == NULL) - { + if (mFavModel == NULL) { modelParm.setCollection(KGlxCollectionPluginFavoritesAlbumId); modelParm.setContextMode(GlxContextFavorite); modelParm.setPath(imagePath); mFavModel = new GlxFavMediaModel(modelParm); - } + } } //-------------------------------------------------------------------------------------------------------------------------------------------- //initializeNewModel //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::initializeNewModel() - { +{ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_INITIALIZENEWMODEL, "GlxDetailsView::initializeNewModel" ); - - if (mModel) - { - connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, - SLOT(rowsRemoved(QModelIndex,int,int))); - } + + if (mModel) { + connect( mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int))); + connect( mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() )); + connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); } +} //-------------------------------------------------------------------------------------------------------------------------------------------- //clearCurrentModel //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::clearCurrentModel() - { +{ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_CLEARCURRENTMODEL, "GlxDetailsView::clearCurrentModel" ); - if (mModel) - { - disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, - SLOT(rowsRemoved(QModelIndex,int,int))); + if (mModel) { + disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int))); + disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() )); + disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); mModel = NULL; - } } +} //-------------------------------------------------------------------------------------------------------------------------------------------- //setConnections //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::setConnections() - { +{ connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation))); - connect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites())); + + if(getSubState() != IMAGEVIEWER_DETAIL_S) { + connect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites())); connect(mDescriptions, SIGNAL(labelPressed()), this, SLOT(UpdateDescription())); - connect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() )); - connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), - this, SLOT( dataChanged(QModelIndex,QModelIndex) )); + this, SLOT( dataChanged(QModelIndex,QModelIndex) )); } +} //-------------------------------------------------------------------------------------------------------------------------------------------- //clearConnections //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::clearConnections() - { +{ + + qDebug("GlxDetailsView:: clearConnections"); disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation))); - - disconnect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites())); - + + if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) { + disconnect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites())); disconnect(mDescriptions, SIGNAL(labelPressed()), this, SLOT(UpdateDescription())); - - disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() )); - disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), - this, SLOT( dataChanged(QModelIndex,QModelIndex) )); + this, SLOT( dataChanged(QModelIndex,QModelIndex) )); } +} //-------------------------------------------------------------------------------------------------------------------------------------------- //getAnimationItem @@ -363,11 +376,11 @@ //Load the Sections mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, section, &loaded); - //This is just to over come the bug in docloader,once that is fixed we can remove the + showImage(); + //This is just to over come the bug in docloader,once that is fixed we can remove the //below lines of code - setImageName(); - setDate(); - + FillDetails(); + GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded); } @@ -393,6 +406,11 @@ } } +void GlxDetailsView::modelDestroyed() +{ + mModel = NULL; +} + //-------------------------------------------------------------------------------------------------------------------------------------------- //FillData //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -421,7 +439,7 @@ //showImage //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::showImage() - { + { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" ); QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole); @@ -431,17 +449,12 @@ } variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole); + if (variant.isValid() && variant.canConvert ()) { - QIcon itemIcon = variant.value ().qicon(); - QPixmap itemPixmap = itemIcon.pixmap(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE); - QSize sz(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE); - itemPixmap = itemPixmap.scaled(sz, Qt::IgnoreAspectRatio); - - HbIcon tmp = HbIcon(QIcon(itemPixmap)); - mDetailsIcon->setIcon(tmp); + mDetailsIcon->setIcon(variant.value ()); } - } + } //-------------------------------------------------------------------------------------------------------------------------------------------- //setImageName @@ -449,15 +462,12 @@ void GlxDetailsView::setImageName() { OstTraceFunctionEntry0( GLXDETAILSVIEW_SETIMAGENAME_ENTRY ); - QString temp = ""; QString imagePath = (mModel->data(mModel->index(mModel->data( mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxUriRole)).value (); QString imageName = imagePath.section('\\', -1); - temp.append(imageName); - temp.append(""); - mImageName->setItemText(temp); + mImageName->setItemText(imageName); OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT ); } @@ -466,10 +476,15 @@ //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::setDesc() { + + //This is a hack , Initialize to some characters and then set the text + //as of know if the description text is Null , we cant see the Description edit box + //The issue has been informed to Application designer team. + mDescriptions->setItemText("a"); QString description = (mModel->data(mModel->index(mModel->data( mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxDescRole)).value (); - mDescriptions->setItemText(description); + mDescriptions->setItemText(description); } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -484,12 +499,12 @@ QDate date = (mModel->data(mModel->index(mModel->data( mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxDateRole)).value (); - - datestring = QString("Date: "); + if (date.isNull() == FALSE) { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" ); - datestring.append(date.toString(dateFormat)); + QString dateStringValue = date.toString(dateFormat); + datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue); } mDateLabel->setPlainText(datestring); @@ -507,13 +522,14 @@ QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index( 0, 0), GlxFocusIndexRole).value (), 0), GlxTimeRole)).value< QTime> (); - timestring = QString("Time: "); + if (timevalue.isNull() == FALSE) { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setTime is not NULL" ); - timestring.append(timevalue.toString(timeFormat)); + QString timeStringValue = timevalue.toString(timeFormat); + timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue); } - mTimeLabel->setPlainText(timestring); + mTimeLabel->setPlainText(timestring); } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -524,12 +540,10 @@ int size = 0; size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxSizeRole)).value (); - QString sizelabel; - QString sizestring; - sizelabel = QString("Size : "); - sizestring = sizeinStrings(size); - sizelabel.append(sizestring); - mSizeLabel->setPlainText(sizelabel); + + QString sizeString; + sizeString = sizeinStrings(size); + mSizeLabel->setPlainText(sizeString); } @@ -545,11 +559,11 @@ { if (variant.value ()) { - mFavIcon->setIcon(HbIcon(GLXICON_ADD_TO_FAV)); + mFavIcon->setItemIcon(mFavIconEnabled); } else { - mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV)); + mFavIcon->setItemIcon(mFavIconDisabled); } } } @@ -592,25 +606,38 @@ if (size >= KBytesInGB) { int gbSize = size / KBytesInGB; // Size in GB - sizeString.setNum(gbSize); - sizeString.append("GB"); + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize); } else if (size >= KBytesInMB) { int mbSize = size / KBytesInMB; // Size in MB - sizeString.setNum(mbSize); - sizeString.append("MB"); + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize); } else if (size >= KBytesInKB) { - TInt kBsize = size / KBytesInKB; // bytes to kB - sizeString.setNum(kBsize); - sizeString.append("KB"); + int kbSize = size / KBytesInKB; // Size in KB + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize); } else { - sizeString.setNum(size); - sizeString.append("Bytes"); + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size); } return sizeString; } + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//getSubState +//-------------------------------------------------------------------------------------------------------------------------------------------- +int GlxDetailsView::getSubState() + { + int substate = NO_DETAIL_S; + + if (mModel) { + QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole); + + if (variant.isValid() && variant.canConvert ()) { + substate = variant.value (); + } + } + return substate; + } diff -r f291796e213d -r fb37077c270f ui/views/docloaders/src/glxviewdocloader.cpp --- a/ui/views/docloaders/src/glxviewdocloader.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/docloaders/src/glxviewdocloader.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -30,8 +30,9 @@ #include "glxslideshowwidget.h" #include "glxslideshowview.h" #include "glxzoomwidget.h" -#include "glxdetailsnamelabel.h" -#include "glxdetailsdescriptionedit.h" + +#include "glxdetailstextedit.h" +#include "glxdetailsicon.h" //---------------------------------------------------------------------------------------- // createObject:creates the custom widget and views of fullscreen view @@ -112,7 +113,7 @@ { qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_IMGNAME -->"; - QObject *object = new GlxDetailsNameLabel(); + QObject *object = new GlxDetailsTextEdit(); object->setObjectName(name); return object; } @@ -121,12 +122,21 @@ { qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_DESCRPTIONTEXT -->"; - QObject *object = new GlxDetailsDescriptionEdit(); + QObject *object = new GlxDetailsTextEdit(); object->setObjectName(name); return object; } - + if (GLX_DETAILSVIEW_FAVICON == name) + { + qDebug() << "GlxDetailsViewDocLoader::createObject:ICON -->"; + + QObject *object = new GlxDetailsIcon(); + object->setObjectName(name); + return object; + } + + return HbDocumentLoader::createObject(type, name); } diff -r f291796e213d -r fb37077c270f ui/views/fullscreenview/inc/glxcoverflow.h --- a/ui/views/fullscreenview/inc/glxcoverflow.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/fullscreenview/inc/glxcoverflow.h Wed Aug 18 09:48:53 2010 +0300 @@ -44,7 +44,8 @@ { TAP_EVENT, //send the signal when user tap on full screen PANNING_START_EVENT, //send the signal when panning of full screen start - EMPTY_ROW_EVENT //send the signal when model have no data + EMPTY_ROW_EVENT, //send the signal when model have no data + ZOOM_START_EVENT } GlxCoverFlowEvent; class GlxCoverFlow : public HbWidget @@ -59,10 +60,20 @@ void indexChanged (int index); void setUiOn(bool uiOn) { mUiOn = uiOn; } void partiallyClean(); - void partiallyCreate(QAbstractItemModel *model, QSize itemSize); + void partiallyCreate(QAbstractItemModel *model, QSize itemSize, int posY = 0 ); void setCoverFlow(); void ClearCoverFlow(); void setMultitouchFilter(QGraphicsItem* multitouchFilter); + + /* + * To get the focus index + */ + int getFocusIndex( ); + + /* + * To get the full screen icon of the image + */ + HbIcon getIcon( int index ); public slots: void zoomStarted(int index); @@ -121,16 +132,6 @@ void resetCoverFlow(); int getSubState(); void timerEvent(QTimerEvent *event); - - /* - * To get the focus index - */ - int getFocusIndex( ); - - /* - * To get the full screen icon of the image - */ - HbIcon getIcon( int index ); /* * To get the URI of the image @@ -159,6 +160,7 @@ bool mZoomOn; QGraphicsItem* mMultitouchFilter; int mTimerId; + bool mIsInit; }; #endif /* GLXCOVERFLOW_H_ */ diff -r f291796e213d -r fb37077c270f ui/views/fullscreenview/inc/glxfullscreenview.h --- a/ui/views/fullscreenview/inc/glxfullscreenview.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/fullscreenview/inc/glxfullscreenview.h Wed Aug 18 09:48:53 2010 +0300 @@ -26,6 +26,9 @@ //User Defined Includes #include #include + +#define NBR_ANIM_ITEM 2 + //Orbit/Qt forward declartion class QTimer; class HbAction; @@ -40,83 +43,261 @@ class GlxZoomWidget; class GlxTvOutWrapper; +/** + * Class Description + * This is full screen view class to show the image in fullscreen, zoom the image and + * browse the image through coverflow and imagstrip + */ class GlxFullScreenView : public GlxView { Q_OBJECT public : + /** + * Constructor + * @param - HbMainWindow object + * @param - fullscreen docloader object + */ GlxFullScreenView(HbMainWindow *window,HbDocumentLoader *DocLoader); + + /** + * Destructor + */ ~GlxFullScreenView(); + + /** + * activate() + * ///From GlxView + */ void activate() ; + + /** + * deActivate() + * ///From GlxView + */ void deActivate(); - /* - * Initialize the coverflow and partially creates the coverflow with one image + /** + * 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); + void initializeView( QAbstractItemModel *model, GlxView *preView ); - /* - * resets the view, with just one icon being present in the widget - * to make the widget light weight in order to make - * transition smooth + /** + * resetView() - resets the view, with just one icon being present in the widget + * to make the widget light weight in order to make transition smooth */ void resetView(); + + /** + * setmodel() + * ///from GlxView + */ void setModel(QAbstractItemModel *model); + + /** + * setModelContext() - to set the context mode of the model. + */ void setModelContext ( ); + + /** + * cleanUp() - To clean the custom widgets. + */ void cleanUp(); + + /** + * getAnimationItem() - To return the animation object to play the view transition animation. + * @return pointer of widget on which animation are suppose to play. + */ QGraphicsItem * getAnimationItem(GlxEffect transitionEffect); public slots: - void orientationChanged(Qt::Orientation); + /** + * orientationChanged() - Slot to upadte the layout when orientation of device has changed + * @param new orientation + */ + 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(); + + /** + * changeSelectedIndex() - Call back when index is chnaged due to browsing of images in coverflow + * It will update the selected index in model and notify other widget about index changed. + * @param - index of new selected item. + */ void changeSelectedIndex(const QModelIndex &index); + + /** + * indexChanged() - call back when index is changed from the image strip. + * It will update the selected index in model and notify other widget about index changed. + * @param - index of new selected item. + */ void indexChanged(const QModelIndex &index ); + + /** + * scrollingStarted() - Call back function to get notification of when scrolling of + * image strip is start. + */ void scrollingStarted(); + + /** + * scrollingEnded() - Call back function to get notification of when scrolling of + * image strip is stop. + */ void scrollingEnded(); + + /** + * pressed() - Call back function to get notification of user pressed mouse key or touch the fingure. + * @param - index of selected item. + */ void pressed(const QModelIndex &index ); + + /** + * released() - Call back function to get notification of user released mouse key or released the fingure. + * @param - index of new selected item. + */ void released(const QModelIndex &index ); - void setVisvalWindowIndex(); + + /** + * setVisvalWindowIndex() - Set the viisual window index of medialist. + */ + void setVisvalWindowIndex(); + + /** + * coverFlowEventHandle() - Handle the event generated by cover flow. + * @param - cover flow event type + */ void coverFlowEventHandle( GlxCoverFlowEvent e); + + /** + * effectFinished() - call back when ui on\off effect has finished. + * @param - staus of effect + */ void effectFinished( const HbEffect::EffectStatus ); + + /** + * imageSelectionEffectFinished() - call back when ui image strip selection effect has been finished. + * @param - staus of effect + */ void imageSelectionEffectFinished( const HbEffect::EffectStatus ); + + /** + * orientChangeAnimFinished() - call back when custom orientation change effect has been finished. + * @param - staus of effect + */ + void orientChangeAnimFinished( const HbEffect::EffectStatus ); + + /** + * effectFinished - call back when ui on\off effect has finished + * @param - staus of effect + */ void handleToolBarAction(); + + /** + * In case of image fetcher handle select command and emit selected index and model + */ + void handleFSSelect(); protected : + /** + * eventFilter - To handle the application foregrond and background event + * ///From HbView + */ bool eventFilter(QObject *obj, QEvent *ev); -private: - /* - * The widgets are retrieved from the docml +private: + /** + * loadWidgets() - The widgets are retrieved from the docml */ void loadWidgets(); - /* - * Loads the corresponding sections in the docml while the orentation is changed. + /** + * loadViewSection() - Loads the corresponding sections in the docml while the orentation is changed. */ void loadViewSection(); + /** + * setLayout() - To set the widgets laout. + */ void setLayout(); + + /** + * addConnection() - Add the call back of the widgets. + */ void addConnection(); - void addImageStripConnection(); + + /** + * removeConnection() - Remove the call back of widgets. + */ void removeConnection(); - void createUiControl(); + + /** + * setImageStripModel() - set the image strip model. + */ void setImageStripModel(); + /** + * loadFullScreenToolBar() - load the fullscreen tool bar from the docml. + */ void loadFullScreenToolBar(); + + /** + * addToolBarAction() - Crete and add the toolbar acton in toolbar. + * @param - coomand id to recognise the action. + * @param - toolbar action icon. + * @param - action name it is used for automation of test cases. + */ void addToolBarAction( int commandId, const QString &iconName, const QString &name) ; + + /** + * initAnimationItem() - Initialise the custom animation item. + */ + void initAnimationItem(); + + /** + * imageSelectionAnimation() - To trigger the image setection animtaion form the imge strip. + */ void imageSelectionAnimation( const QModelIndex &index ); + + /** + * cancelSelectionAnimation()- To cancel the image selection animation. + */ + void cancelSelectionAnimation( ); + + /** + * playOrientChangeAnim() - To trigger the custom orientation change animation. + */ + void playOrientChangeAnim(); + + /** + * get the substate of fullscreen state. + */ int getSubState(); + + /** + * setHdmiModel() - set the image strip model. + * @param - model + */ void setHdmiModel( QAbstractItemModel *model ); + private: QAbstractItemModel *mModel; //no ownership HbMainWindow *mWindow; //no ownership GlxCoverFlow *mCoverFlow; HbGridView *mImageStrip; QTimer *mUiOffTimer; //use for ui off after 30 sec - HbIconItem *mIconItem ; //temporary item for play the image strip select animation + HbIconItem *mIconItems[ NBR_ANIM_ITEM ] ; //temporary item for play the image strip select animation GlxTvOutWrapper *mTvOutWrapper; HbToolBar *mFullScreenToolBar; //Fullscreen Toolbar //for Zoom diff -r f291796e213d -r fb37077c270f ui/views/fullscreenview/src/glxcoverflow.cpp --- a/ui/views/fullscreenview/src/glxcoverflow.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/fullscreenview/src/glxcoverflow.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -24,6 +24,7 @@ #include #include #include +#include //User Includes #include @@ -34,25 +35,25 @@ #define GLX_BOUNCEBACK_SPEED 16 #define GLX_BOUNCEBACK_DELTA 8 -GlxCoverFlow::GlxCoverFlow(QGraphicsItem *parent ) - : HbWidget(parent), - mSelItemIndex (0), - mRows(0), - mSelIndex (0), - mStripLen (0), - mCurrentPos(0), - mItemSize (QSize(0,0)), - mModel ( NULL), - mMoveDir(NO_MOVE), +GlxCoverFlow::GlxCoverFlow( QGraphicsItem *parent ) + : HbWidget( parent ), + mSelItemIndex ( 0 ), + mRows( 0 ), + mSelIndex ( 0 ), + mStripLen ( 0 ), + mCurrentPos( 0 ), + mItemSize ( QSize( 0, 0 ) ), + mModel ( NULL ), + mMoveDir( NO_MOVE ), mSpeed ( GLX_COVERFLOW_SPEED ), - mZoomOn(false), - mMultitouchFilter(NULL), - mTimerId(0) + mZoomOn( false ), + mMultitouchFilter( NULL ), + mTimerId( 0 ), + mIsInit( false ) { -//TO:DO through exception - qDebug("GlxCoverFlow::GlxCoverFlow"); - grabGesture(Qt::PanGesture); - grabGesture(Qt::TapGesture); + qDebug( "GlxCoverFlow::GlxCoverFlow" ); + grabGesture( Qt::PanGesture ); + grabGesture( Qt::TapGesture ); connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection ); connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection ); } @@ -61,6 +62,7 @@ { mMultitouchFilter = mtFilter; } + void GlxCoverFlow::setCoverFlow() { qDebug("GlxCoverFlow::setCoverFlow"); @@ -74,7 +76,8 @@ mIconItem[i]->setObjectName( QString( "Cover%1" ).arg( i ) ); } - mUiOn = FALSE; + mIsInit = true; + mUiOn = false; mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA; } @@ -119,7 +122,7 @@ else { killTimer(mTimerId); mTimerId = 0; - emit doubleTapEventReceived(gesture->position()); + emit doubleTapEventReceived(hbInstance->allMainWindows().first()->mapToScene(gesture->position().toPoint())); } event->accept(gesture); } @@ -160,10 +163,11 @@ void GlxCoverFlow::panGesture ( const QPointF & delta ) { qDebug("GlxCoverFlow::panGesture deltaX= %d", (int)delta.x()); - if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) { + + if( !mIsInit || getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) { return; } - move((int) delta.x()); + move( ( int ) delta.x() ); if( delta.x() > 0 ) { mMoveDir = RIGHT_MOVE; } @@ -238,8 +242,11 @@ int width = mItemSize.width() ; qDebug("GlxCoverFlow::autoLeftMove current pos = %d mBounceBackDeltaX x = %d", mCurrentPos, mBounceBackDeltaX); + if ( !mIsInit ) { + return; + } - if ( mSelIndex == ( mRows -1 )) { + if ( mSelIndex == ( mRows -1 ) ) { mSpeed = GLX_BOUNCEBACK_SPEED; } //for bounce back effect for last image ( it will do the back) @@ -288,9 +295,12 @@ void GlxCoverFlow::autoRightMove() { qDebug("GlxCoverFlow::autoRightMove "); + if ( !mIsInit ) { + return; + } int width = mItemSize.width() ; int diffX = mStripLen - mCurrentPos ; - + //slow the speed for bounce back effect if ( mSelIndex == 0 ) { mSpeed = GLX_BOUNCEBACK_SPEED; @@ -400,6 +410,11 @@ void GlxCoverFlow::loadIconItems() { qDebug("GlxCoverFlow::loadIconItems "); + + if ( !mIsInit ) { + return ; + } + int index = 0; stopAnimation(); mSelIndex = getFocusIndex(); @@ -429,6 +444,7 @@ void GlxCoverFlow::stopAnimation() { mIconItem[ mSelItemIndex ]->animator().stopAnimation(); + mIconItem[ mSelItemIndex ]->setIcon( getIcon( mSelIndex ) ); } void GlxCoverFlow::updateIconItem (qint16 selIndex, qint16 selItemIndex, qint16 posX) @@ -478,6 +494,7 @@ { qDebug("GlxCoverFlow::partiallyClean Enter"); clearCurrentModel(); //during the animation data update will not cause the crash + mIsInit = false; for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) { if ( mSelItemIndex != i){ delete mIconItem[i] ; @@ -486,11 +503,11 @@ } } -void GlxCoverFlow::partiallyCreate(QAbstractItemModel *model, QSize itemSize) +void GlxCoverFlow::partiallyCreate( QAbstractItemModel *model, QSize itemSize, int posY ) { - qDebug("GlxCoverFlow::resetpartiallyCreated"); + qDebug("GlxCoverFlow::resetpartiallyCreated poxY %d", posY ); mIconItem[2]->setSize ( itemSize ); - mIconItem[2]->setPos ( QPointF ( 0, 0) ); + mIconItem[2]->setPos ( QPointF ( 0, posY ) ); mModel = model ; mSelIndex = getFocusIndex(); mIconItem[2]->setIcon( getIcon( mSelIndex ) ) ; @@ -508,6 +525,7 @@ void GlxCoverFlow::ClearCoverFlow() { qDebug("GlxCoverFlow::ClearCoverFlow " ); + mIsInit = false; clearCurrentModel(); for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) { if(mIconItem[i] != NULL ) { @@ -530,6 +548,7 @@ void GlxCoverFlow::zoomStarted(int index) { Q_UNUSED(index) + emit coverFlowEvent( ZOOM_START_EVENT ); stopAnimation(); mZoomOn = true; } diff -r f291796e213d -r fb37077c270f ui/views/fullscreenview/src/glxfullscreenview.cpp --- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -30,7 +30,7 @@ #include #include #include - +#include //User Includes #include "glxlog.h" #include "glxtracer.h" @@ -44,7 +44,7 @@ #include "glxfullscreenview.h" #include "glxcommandhandlers.hrh" #include "glxzoomwidget.h" - +#include "glxlocalisationstrings.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxfullscreenviewTraces.h" @@ -54,29 +54,34 @@ const int KUiOffTime = 3000; GlxFullScreenView::GlxFullScreenView(HbMainWindow *window,HbDocumentLoader *DocLoader) : - GlxView ( GLX_FULLSCREENVIEW_ID), - mModel(NULL), - mWindow( window), - mCoverFlow(NULL) , - mImageStrip (NULL), - mUiOffTimer(NULL), - mIconItem(NULL), - mTvOutWrapper(NULL), - mFullScreenToolBar(NULL), - mZoomWidget(NULL) + GlxView ( GLX_FULLSCREENVIEW_ID ), + mModel( NULL ), + mWindow( window ), + mCoverFlow( NULL ) , + mImageStrip( NULL ), + mUiOffTimer( NULL ), + mTvOutWrapper( NULL ), + mFullScreenToolBar( NULL ), + mZoomWidget( NULL ), + mUiOff ( false) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY ); - + mIconItems[0] = NULL; + mIconItems[1] = NULL; mDocLoader = DocLoader; setContentFullScreen( true ); - HbEffect::add( QString("HbGridView"), QString(":/data/transitionup.fxml"), QString( "TapShow" )); - HbEffect::add( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" )); - HbEffect::add( QString("HbGridViewItem"), QString(":/data/gridtofullscreenhide.fxml"), QString( "Select" )); + + HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) ); + HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) ); + HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) ); + HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) ); + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) ); + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); } -void GlxFullScreenView::initializeView(QAbstractItemModel *model) +void GlxFullScreenView::initializeView( QAbstractItemModel *model, GlxView *preView ) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INITIALIZEVIEW_ENTRY ); @@ -87,9 +92,23 @@ setHdmiModel(model); loadWidgets(); - // Initialize the coverflow and partially creates the coverflow with one image - // to make the widget light weight in order to make transition smooth - mCoverFlow->partiallyCreate( model, screenSize() ); + /* + * Initialize the coverflow and partially creates the coverflow with one image + * to make the widget light weight in order to make transition smooth + */ + /* + * Grid view is not in full screen mode so this view have some flicker after transtion is finshed + * and some cases in grid view status bar is visible and some cases it is not + * so adjust the initial postion of fullscreen base on status bar visiblity. + */ + if ( preView->compare( GLX_GRIDVIEW_ID ) && preView->isItemVisible ( Hb::StatusBarItem ) ) { + qreal chromeHeight = 0; + style()->parameter( "hb-param-widget-chrome-height", chromeHeight ); + mCoverFlow->partiallyCreate( model, screenSize(), -chromeHeight ); + } + else { + mCoverFlow->partiallyCreate( model, screenSize() ); + } OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT ); } @@ -113,6 +132,7 @@ mImageStrip->hide(); mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file mImageStrip->setEnabledAnimations( HbAbstractItemView::None ); + mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT ); } @@ -166,23 +186,47 @@ } //Loads the widgets corresponding to the orientation. loadViewSection(); - - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); + + HbView::HbViewFlags flags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent); + setViewFlags(flags); + + // 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); + selectAction->setObjectName( "FS Select" ); + + connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect())); + HbToolBar* toolBar = new HbToolBar(); + toolBar->setOrientation( Qt::Horizontal ); + toolBar->setVisible(true); + toolBar->addAction(selectAction); + setToolBar(toolBar); + } mUiOffTimer = new QTimer(); - mUiOff = true; mUiOffTimer->stop(); mCoverFlow->setUiOn(FALSE); addConnection(); setLayout(); - if (!mTvOutWrapper){ + if (!mTvOutWrapper) { mTvOutWrapper = new GlxTvOutWrapper(); } + + mWindow->setAutomaticOrientationEffectEnabled( false ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT ); } +void GlxFullScreenView::handleFSSelect() +{ + emit actionTriggered( EGlxCmdFetcherSelect ); +} + void GlxFullScreenView::loadViewSection() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY ); @@ -204,6 +248,7 @@ { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_RESETVIEW_ENTRY ); + cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view //Clean up the rest of the resources allocated cleanUp(); @@ -217,6 +262,7 @@ { 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); @@ -227,7 +273,7 @@ //the coverflow is initialised to null //to just reset to the initial state mCoverFlow = NULL; - + mWindow->setAutomaticOrientationEffectEnabled( true ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT ); } @@ -246,6 +292,7 @@ if(mFullScreenToolBar) { mFullScreenToolBar->clearActions(); + mFullScreenToolBar->hide(); mFullScreenToolBar = NULL; } @@ -285,11 +332,10 @@ mCoverFlow->setModel(mModel); setImageStripModel(); if(getSubState() == IMAGEVIEWER_S) { - setTitle("Image Viewer"); + setTitle(GLX_IMAGE_VIEWER); } - else if(getSubState() == FETCHER_S){ - setStatusBarVisible(TRUE); - setTitleBarVisible(TRUE); + 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 ); } @@ -297,7 +343,7 @@ void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model) { if (mTvOutWrapper) { - mTvOutWrapper->setModel(model); + mTvOutWrapper->setModel(model, screenSize()); mTvOutWrapper->setImagetoHDMI(); // for the first image on screen } } @@ -332,6 +378,7 @@ setModelContext(); loadViewSection(); setLayout(); + playOrientChangeAnim(); OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT ); } @@ -340,7 +387,7 @@ { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY ); - if ( mUiOff && getSubState() != FETCHER_S){ + if ( mUiOff && getSubState() != FETCHER_S ){ if( !mFullScreenToolBar ) { loadFullScreenToolBar(); } @@ -351,18 +398,18 @@ mImageStrip->setCurrentIndex ( mModel->index( variant.value(), 0) ); mImageStrip->scrollTo( mModel->index( variant.value(), 0), HbGridView::PositionAtTop ); } - - mFullScreenToolBar->show(); - setStatusBarVisible(TRUE); - setTitleBarVisible(TRUE); + + 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("Image Viewer"); + setTitle(GLX_IMAGE_VIEWER); } + mFullScreenToolBar->show(); } else { hideUi(); @@ -384,11 +431,10 @@ mUiOff = TRUE; if ( getSubState() != FETCHER_S ) { - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); + setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden ); } - if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S )) { - HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" ); + if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S ) ) { + HbEffect::start( mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" ); } if(mFullScreenToolBar) { @@ -419,6 +465,7 @@ mModel->setData( index, index.row(), GlxFocusIndexRole ); mModel->setData( index, index.row(), GlxVisualWindowIndex ); mZoomWidget->indexChanged(index.row()); + if (mTvOutWrapper){ // for the image changed on swipe mTvOutWrapper->setImagetoHDMI(); @@ -435,16 +482,17 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_INDEXCHANGED_EXIT ); return; } - mModel->setData( index, index.row(), GlxFocusIndexRole ); - mZoomWidget->indexChanged(index.row()); - mCoverFlow->indexChanged(index.row()); - mImageStrip->scrollTo(index, HbGridView::EnsureVisible ); + if (mTvOutWrapper){ - // for the indexchnaged through filmstrip - mTvOutWrapper->setImagetoHDMI(); + // for the indexchnaged through filmstrip + mTvOutWrapper->setImagetoHDMI(); } //disable the animation for the time being - //imageSelectionAnimation( index ); + imageSelectionAnimation( index ); + + mModel->setData( index, index.row(), GlxFocusIndexRole ); + mZoomWidget->indexChanged(index.row()); + mZoomWidget->setVisible( false ); OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_INDEXCHANGED_EXIT ); } @@ -531,6 +579,18 @@ hideUi(); break ; + //hide the ui component without animation + case ZOOM_START_EVENT : { + HbEffect::EffectStatus e; + mUiOff = TRUE; + if( mFullScreenToolBar ) { + mFullScreenToolBar->hide(); + } + setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden ); + effectFinished( e ); + } + break; + case EMPTY_ROW_EVENT : emit actionTriggered( EGlxCmdEmptyData ); break ; @@ -554,6 +614,7 @@ mUiOffTimer->stop(); mCoverFlow->setUiOn(FALSE); mImageStrip->hide(); + setItemVisible( Hb::AllItems, FALSE ); } else { mUiOffTimer->start(KUiOffTime); @@ -567,17 +628,30 @@ { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_ENTRY ); - mIconItem->resetTransform(); - mIconItem->setVisible( false ); + for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { + mIconItems[ i ]->resetTransform(); + mIconItems[ i ]->setVisible( false ); + } QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); if ( variant.isValid() && variant.canConvert () ) { mCoverFlow->indexChanged( variant.value() ) ; } + mCoverFlow->setVisible( true ); + mZoomWidget->setVisible( true ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_EXIT ); } +void GlxFullScreenView::orientChangeAnimFinished( const HbEffect::EffectStatus status ) +{ + qDebug( "GlxFullScreenView::LsOrientChangeAnimFinished reason %d ", status.reason ); + mIconItems[ 0 ]->resetTransform(); + mIconItems[ 0 ]->setVisible( false ); + mCoverFlow->setVisible( true ); + mZoomWidget->setVisible( true ); +} + void GlxFullScreenView::setLayout() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY ); @@ -596,28 +670,28 @@ if ( mCoverFlow ) { connect( mCoverFlow, SIGNAL( coverFlowEvent( GlxCoverFlowEvent ) ), this, SLOT( coverFlowEventHandle( GlxCoverFlowEvent ) ) ); - connect( mCoverFlow, SIGNAL(changeSelectedIndex(const QModelIndex &)), this, SLOT( changeSelectedIndex( const QModelIndex & ))); + connect( mCoverFlow, SIGNAL( changeSelectedIndex( const QModelIndex & ) ), this, SLOT( changeSelectedIndex( const QModelIndex & ) ) ); } if ( mImageStrip ) { - connect(mImageStrip, SIGNAL( activated(const QModelIndex &) ), this, SLOT( indexChanged(const QModelIndex &) )); - connect(mImageStrip, SIGNAL( scrollingStarted()), this, SLOT( scrollingStarted())); - connect(mImageStrip, SIGNAL( scrollingEnded()), this, SLOT( scrollingEnded())); - connect(mImageStrip, SIGNAL( pressed(const QModelIndex &) ), this, SLOT( pressed(const QModelIndex &) )); - connect(mImageStrip, SIGNAL( released(const QModelIndex &) ), this, SLOT( released(const QModelIndex &) )); + connect( mImageStrip, SIGNAL( activated(const QModelIndex &) ), this, SLOT( indexChanged(const QModelIndex &) ) ); + connect( mImageStrip, SIGNAL( scrollingStarted()), this, SLOT( scrollingStarted() ) ); + connect( mImageStrip, SIGNAL( scrollingEnded()), this, SLOT( scrollingEnded() ) ); + connect( mImageStrip, SIGNAL( pressed( const QModelIndex & ) ), this, SLOT( pressed( const QModelIndex & ) ) ); + connect( mImageStrip, SIGNAL( released( const QModelIndex & ) ), this, SLOT( released( const QModelIndex & ) ) ); } if ( mUiOffTimer ) { - connect(mUiOffTimer, SIGNAL(timeout()), this, SLOT(hideUi())); + connect( mUiOffTimer, SIGNAL( timeout() ), this, SLOT( hideUi() ) ); } - if(mCoverFlow && mZoomWidget) { - connect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) ); - connect(mZoomWidget,SIGNAL( zoomWidgetMovedBackground(int) ), mCoverFlow, SLOT( zoomFinished(int) ) ); - connect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) ); + if( mCoverFlow && mZoomWidget ) { + connect( mZoomWidget, SIGNAL( pinchGestureReceived( int ) ), mCoverFlow, SLOT( zoomStarted( int ) ) ); + connect( mZoomWidget, SIGNAL( zoomWidgetMovedBackground( int ) ), mCoverFlow, SLOT( zoomFinished( int ) ) ); + connect( mCoverFlow, SIGNAL( doubleTapEventReceived( QPointF ) ), mZoomWidget, SLOT( animateZoomIn( QPointF ) ) ); } - connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation))); + connect( mWindow, SIGNAL( orientationChanged( Qt::Orientation ) ), this, SLOT( orientationChanged( Qt::Orientation ) ) ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_ADDCONNECTION_EXIT ); } @@ -675,8 +749,9 @@ OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY ); cleanUp(); - - delete mIconItem ; + for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { + delete mIconItems[ i ] ; + } delete mImageStrip; delete mFullScreenToolBar; delete mCoverFlow; @@ -689,36 +764,73 @@ 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/gridtofullscreenhide.fxml"), QString( "Select" )); + HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) ); + HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomout.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 ); +} - OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); +void GlxFullScreenView::initAnimationItem() +{ + if( mIconItems[0] == NULL ) { + for( int i = 0; i < NBR_ANIM_ITEM; i++ ) { + mIconItems[ i ] = new HbIconItem( mImageStrip->parentItem() ); + mIconItems[ i ]->setBrush( QBrush( Qt::black ) ); + mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 ); + mIconItems[ i ]->setPos( 0, 0 ); + mIconItems[ i ]->setAlignment( Qt::AlignCenter ); + } + } } void GlxFullScreenView::imageSelectionAnimation(const QModelIndex &index) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_ENTRY ); - - if ( mIconItem == NULL ) { - mIconItem = new HbIconItem( mCoverFlow ); - mIconItem->setBrush( QBrush( Qt::black ) ); - mIconItem->setZValue( mCoverFlow->zValue() ); + + initAnimationItem(); + for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { + mIconItems[ i ]->setVisible( true ); + mIconItems[ i ]->setSize( screenSize() ); } - HbAbstractViewItem *mItem = mImageStrip->itemByIndex( index ); - mIconItem->setSize( mItem->size() ); - mIconItem->setPos( mItem->sceneTransform().map( QPoint(0,0)).x() , screenSize().height() - 2 * mItem->size().height() ); - mIconItem->setVisible( true ); + mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) ); + mIconItems[ 1 ]->setIcon( mCoverFlow->getIcon( index.row() ) ); + mCoverFlow->setVisible( false ); + mZoomWidget->setVisible( false ); - QVariant variant = mModel->data( index, Qt::DecorationRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItem->setIcon ( variant.value() ) ; + HbEffect::start( mIconItems[ 0 ], QString( "HbGridViewItem" ), QString( "SelectHide" ) ); + HbEffect::start( mIconItems[ 1 ], QString( "HbGridViewItem" ), QString( "SelectShow" ), this, "imageSelectionEffectFinished" ); + + OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_EXIT ); +} + +void GlxFullScreenView::cancelSelectionAnimation() +{ + if ( mIconItems[0] && HbEffect::effectRunning( mIconItems[1], QString( "SelectShow" ) ) ) { + HbEffect::cancel( mIconItems[0], QString( "SelectHide" ), false, false, true ); + HbEffect::cancel( mIconItems[1], QString( "SelectShow" ), false, true, true ); + } +} + +void GlxFullScreenView::playOrientChangeAnim() +{ + qDebug("GlxFullScreenView::playOrientChangeAnim()"); + initAnimationItem(); + mIconItems[ 0 ]->setOpacity( 1 ); + mIconItems[ 0 ]->setSize( screenSize() ); + mIconItems[ 0 ]->setVisible( true ); + mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) ); + + mCoverFlow->setVisible( false ); + mZoomWidget->setVisible( false ); + if ( mWindow->orientation() == Qt::Horizontal ) { + HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSLS" ), this, "orientChangeAnimFinished" ); } else { - mIconItem->setIcon( HbIcon() ); - } - HbEffect::start( mIconItem, QString("HbGridViewItem"), QString("Select"), this, "imageSelectionEffectFinished" ); - - OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_EXIT ); + HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "orientChangeAnimFinished" ); + } } void GlxFullScreenView::handleToolBarAction() @@ -752,9 +864,15 @@ GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi"); mTvOutWrapper->setToNativeMode(); } - if ( ev->type() == QEvent::ApplicationDeactivate && mTvOutWrapper) { - GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi"); - mTvOutWrapper->setToCloningMode(); + 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 f291796e213d -r fb37077c270f ui/views/gridview/inc/glxgridview.h --- a/ui/views/gridview/inc/glxgridview.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/gridview/inc/glxgridview.h Wed Aug 18 09:48:53 2010 +0300 @@ -26,12 +26,15 @@ //Qt/Orbit forward declarations class HbMainWindow; class QAbstractItemModel; -class HgWidget; +class HgGrid; class GlxModelWrapper; class HbPushButton; class HbIconItem; class HbCheckBox; class HbLabel; +class GlxSettingInterface; +class HbGroupBox; +class QGraphicsLinearLayout; class GlxGridView : public GlxView { @@ -42,7 +45,7 @@ ~GlxGridView(); void activate() ; void deActivate(); - void initializeView(QAbstractItemModel *model); + void initializeView( QAbstractItemModel *model, GlxView *preView ); void setModel(QAbstractItemModel *model); void addToolBar( HbToolBar *toolBar ); void enableMarking() ; @@ -86,22 +89,28 @@ void showHbItems(); int getSubState(); void showNoImageString(); + + //It is used to hide and show the toolbar + //In album grid it is not required to show the tool bar + void updateToolBar(); HbMainWindow *mWindow; // no ownership QAbstractItemModel *mModel ; - HgWidget *mWidget; // HG Grid Widget + HgGrid *mWidget; // HG Grid Widget QItemSelectionModel *mSelectionModel; // Selected items model GlxModelWrapper *mModelWrapper; // Temp Model Wrapper, so That Role Change not a problem - HbPushButton *mUiOnButton; - HbPushButton *mCameraButton; // Camera Button, when item count is zero + HbPushButton *mUiOnButton; bool mScrolling; HbIconItem *mIconItem; HbCheckBox *mMarkCheckBox; // Mark All checkbox - HbLabel *mCountItem; // Item count of the grid - HbLabel *mMainLabel; - HbLabel *mCountLabel; // Marked item count + HbGroupBox *mTotalImagesCount; // Item count of the grid + HbGroupBox *mMarkSelectHeading; + HbLabel *mMarkCountLabel; // Marked item count HbLabel *mZeroItemLabel; // zero itemcount - HbLabel *mAlbumName; + HbGroupBox *mAlbumNameHeading; + QGraphicsLinearLayout *mMarkContainer; + GlxSettingInterface *mSettings; + HbWidget *mMarkingWidget; }; #endif /* GLXGRIDVIEW_H_ */ diff -r f291796e213d -r fb37077c270f ui/views/gridview/src/glxgridview.cpp --- a/ui/views/gridview/src/glxgridview.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/gridview/src/glxgridview.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -30,6 +30,9 @@ #include #include #include +#include +#include +#include //User Includes #include "glxviewids.h" @@ -38,6 +41,8 @@ #include "glxcommandhandlers.hrh" #include "glxicondefs.h" #include "glxlocalisationstrings.h" +#include "glxsettinginterface.h" + #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE @@ -51,21 +56,31 @@ mWidget(NULL), mSelectionModel(NULL), mModelWrapper(NULL), - mUiOnButton(NULL), - mCameraButton(NULL), + mUiOnButton(NULL), mScrolling(FALSE), mIconItem(NULL), mMarkCheckBox(NULL), - mCountItem(NULL), - mMainLabel(NULL), - mCountLabel(NULL), + mTotalImagesCount(NULL), + mMarkSelectHeading(NULL), + mMarkCountLabel(NULL), mZeroItemLabel(NULL), - mAlbumName(NULL) + mAlbumNameHeading(NULL), + mMarkContainer(NULL), + mMarkingWidget(NULL) { OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY ); mModelWrapper = new GlxModelWrapper(); mModelWrapper->setRoles(GlxQImageSmall); mIconItem = new HbIconItem(this); + mSettings = GlxSettingInterface::instance() ; + + mUiOnButton = new HbPushButton(this); + connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool))); + mUiOnButton->setGeometry(QRectF(590,0,40,40)); + mUiOnButton->setZValue(1); + mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON)); + mUiOnButton->setObjectName( "UiOn Button" ); + OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT ); } @@ -74,15 +89,10 @@ OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY ); loadGridView(); connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection); - if(mCountItem == NULL) { - mCountItem = new HbLabel(this); - mCountItem->setObjectName( "Count" ); - HbFrameItem *frame = new HbFrameItem(this); //graphics for mCountItem - frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame->graphicsItem()->setOpacity(1); - mCountItem->setBackgroundItem(frame->graphicsItem(),-1); - mCountItem->hide(); + if(mTotalImagesCount == NULL) { + mTotalImagesCount = new HbGroupBox(this); + mTotalImagesCount->setObjectName( "Count" ); + mTotalImagesCount->hide(); } OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT ); } @@ -100,24 +110,23 @@ mIconItem->setOpacity(0); mIconItem->setZValue(mIconItem->zValue()-20); } - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } if(mZeroItemLabel) { mZeroItemLabel->hide(); } - if(mCameraButton) { - mCameraButton->hide(); - } + disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation))); OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT ); } -void GlxGridView::initializeView(QAbstractItemModel *model) +void GlxGridView::initializeView( QAbstractItemModel *model, GlxView *preView ) { + Q_UNUSED( preView ) activate(); setModel(model); } @@ -140,7 +149,9 @@ connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(showItemCount())); connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(showItemCount())); connect(mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel())); - connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString))); + if(getSubState() == ALBUM_ITEM_S){ + connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString))); + } connect(mModel, SIGNAL(populated()), this, SLOT( populated())); } } @@ -188,7 +199,7 @@ { OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY ); setToolBar(toolBar); - hideorshowitems(mWindow->orientation()); + showHbItems(); OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT ); } @@ -196,33 +207,27 @@ { OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" ); mWidget->setSelectionMode(HgWidget::MultiSelection); - if (mMainLabel == NULL) { - mMainLabel = new HbLabel("Select Photos", this); - mMainLabel->setObjectName( "Select Photos"); - HbFrameItem *frame1 = new HbFrameItem(this); //graphics for mMainLabel - frame1->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame1->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame1->graphicsItem()->setOpacity(1); - mMainLabel->setBackgroundItem(frame1->graphicsItem(),-1); - } - if (mMarkCheckBox == NULL) { - mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this); - mMarkCheckBox->setObjectName( "CheckB MarkAll" ); - HbFrameItem *frame2 = new HbFrameItem(this); //graphics for mMarkCheckBox - frame2->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame2->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame2->graphicsItem()->setOpacity(1); - mMarkCheckBox->setBackgroundItem(frame2->graphicsItem(),-1); - } - if (mCountLabel == NULL) { - mCountLabel = new HbLabel(this); - mCountLabel->setObjectName( "MarkCount" ); - HbFrameItem *frame3 = new HbFrameItem(this); //graphics for mCountLabel - frame3->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame3->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame3->graphicsItem()->setOpacity(1); - mCountLabel->setBackgroundItem(frame3->graphicsItem(),-1); - } + + if (mMarkingWidget == NULL) + { + mMarkingWidget = new HbWidget(this); + mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0); + mMarkingWidget->setLayout(mMarkContainer); + + mMarkSelectHeading = new HbGroupBox(this); + mMarkSelectHeading->setHeading(GLX_SELECT_IMAGES); + mMarkSelectHeading->setObjectName("Select Photos"); + + mMarkCountLabel = new HbLabel(mMarkingWidget); + mMarkCountLabel->setObjectName("MarkCount"); + mMarkCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + + mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget); + mMarkCheckBox->setObjectName("CheckB MarkAll"); + + mMarkContainer->addItem(mMarkCheckBox); + mMarkContainer->addItem(mMarkCountLabel); + } hideorshowitems(mWindow->orientation()); @@ -237,18 +242,16 @@ mWidget->setSelectionMode(HgWidget::NoSelection); disconnect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) ); disconnect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int))); - if (mMainLabel) { - mMainLabel->hide(); - } - if (mMarkCheckBox) { - mMarkCheckBox->setCheckState(Qt::Unchecked); - mMarkCheckBox->hide(); - } - if (mCountLabel) { - mCountLabel->hide(); + + if (mMarkSelectHeading) { + mMarkSelectHeading->hide(); } - hideorshowitems(mWindow->orientation()); + if (mMarkingWidget) { + mMarkingWidget->hide(); + } + + showHbItems(); } void GlxGridView::stateChanged(int state) @@ -264,9 +267,10 @@ int count = mModel->rowCount(); QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes(); int markItemCount = indexList.count(); - - QString text= QString("%1 / %2").arg( markItemCount ).arg( count ); - mCountLabel->setPlainText( text ); + + QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count); + + mMarkCountLabel->setPlainText( text ); } void GlxGridView::showItemCount() @@ -281,27 +285,24 @@ if(mZeroItemLabel) { mZeroItemLabel->hide(); } - if(mCameraButton) { - mCameraButton->hide(); - } + if(isItemVisible(Hb::TitleBarItem)) { QString text; if(XQServiceUtil::isService()) { - showAlbumTitle(GLX_FETCHER_TITLE); + showAlbumTitle(GLX_SELECT_IMAGE); } else if (getSubState() == ALL_ITEM_S) { - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } - mCountItem->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - text = QString("%1 Items").arg( count ); - mCountItem->setPlainText( text ); - mCountItem->setAlignment(Qt::AlignLeft); - mCountItem->show(); + mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); + text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); + mTotalImagesCount->setHeading ( text ); + mTotalImagesCount->show(); } else if (getSubState() == ALBUM_ITEM_S) { - mCountItem->hide(); + mTotalImagesCount->hide(); QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle); if (variant.toString() != NULL) { showAlbumTitle(variant.toString()); @@ -309,11 +310,11 @@ } } else { - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } } @@ -326,11 +327,11 @@ populated = variant.value(); } if(populated) { - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } showNoImageString(); @@ -352,42 +353,29 @@ QSize deviceSize = HbDeviceProfile::current().logicalSize(); QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() ) : QSize( deviceSize.height(), deviceSize.width() ) ; - if(mAlbumName == NULL) { - mAlbumName = new HbLabel(this); - mAlbumName->setObjectName( "Album Name" ); - HbFrameItem *frame = new HbFrameItem(this); //graphics for mAlbumName - frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame->graphicsItem()->setOpacity(1); - mAlbumName->setBackgroundItem(frame->graphicsItem(),-1); - } - - //If fetcher service set only title text - if((XQServiceUtil::isService() ) && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - } - else{ //handle album tiltle and count display logic here - if( count && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width()/2,deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - mCountItem->setGeometry(QRectF(screenSize.width()/2,0,screenSize.width()/2,deviceSize.height()/24)); - text = QString("(%1)").arg(count); - mCountItem->setPlainText( text ); - mCountItem->setAlignment(Qt::AlignRight); - mCountItem->show(); - } - else if((!count) && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - } - } + if (mAlbumNameHeading == NULL) + { + mAlbumNameHeading = new HbGroupBox(this); + mAlbumNameHeading->setObjectName("Album Name"); + } + + //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->show(); + } + else + { //handle album tiltle and count display logic here + if (count && 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); + mAlbumNameHeading->setHeading(text); + mAlbumNameHeading->show(); + } + } } void GlxGridView::showNoImageString() @@ -403,28 +391,13 @@ } if (mZeroItemLabel == NULL) { QString displayText(GLX_GRID_NO_IMAGE); - if(!XQServiceUtil::isService()) - { - displayText.append(GLX_GRID_OPEN_CAMERA); - } mZeroItemLabel = new HbLabel(displayText, this); mZeroItemLabel->setObjectName( "No Image" ); } mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32)); mZeroItemLabel->setAlignment(Qt::AlignHCenter); mZeroItemLabel->show(); - if (mCameraButton == NULL) { - mCameraButton = new HbPushButton(this); - mCameraButton->setObjectName( "Camera Button" ); - mCameraButton->setIcon(HbIcon(GLXICON_CAMERA)); - mCameraButton->hide(); - connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool))); - } - if(!XQServiceUtil::isService()) - { - mCameraButton->setGeometry(QRectF(screenSize.width()/2 - 3*deviceSize.height()/64, midHeight + deviceSize.height()/32, deviceSize.height()/32, deviceSize.height()/32)); - mCameraButton->show(); - } + } void GlxGridView::populated() @@ -450,6 +423,18 @@ mWidget->clearSelection(); break; + case EGlxCmd3DEffectOn: + mSettings->setmediaWall3DEffect(1); + if(mWidget && !mWidget->effect3dEnabled()) + mWidget->setEffect3dEnabled(ETrue); + break; + + case EGlxCmd3DEffectOff: + mSettings->setmediaWall3DEffect(0); + if(mWidget && mWidget->effect3dEnabled()) + mWidget->setEffect3dEnabled(EFalse); + break; + default : break; } @@ -528,17 +513,28 @@ mWidget->setObjectName( "Media Wall" ); mWidget->setLongPressEnabled(true); mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide); + if(XQServiceUtil::isService()) + { + mWidget->setEffect3dEnabled(EFalse); + } + else + { + mWidget->setEffect3dEnabled(mSettings->mediaWall3DEffect()); + } setWidget( mWidget ); addViewConnection(); - hideorshowitems(orient); } OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT ); } void GlxGridView::orientationchanged(Qt::Orientation orient) { - hideorshowitems(orient); + if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) { + hideorshowitems(orient); + } + showHbItems(); } + void GlxGridView::hideorshowitems(Qt::Orientation orient) { if ( mWidget && mWidget->selectionMode() == HgWidget::NoSelection ) { @@ -561,27 +557,30 @@ } } else if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) { - setItemVisible(Hb::TitleBarItem, FALSE) ; + setItemVisible(Hb::AllItems, FALSE) ; + setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); if (mUiOnButton) { mUiOnButton->hide(); } - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } + QSize deviceSize = HbDeviceProfile::current().logicalSize(); QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() ) : QSize( deviceSize.height(), deviceSize.width() ) ; - mMainLabel->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - mMarkCheckBox->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/72)); - mCountLabel->setGeometry(QRectF(screenSize.width()/2,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/12 - 3)); - mCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); - mMainLabel->show(); - mMarkCheckBox->show(); - mCountLabel->show(); + + mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); + mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72)); + + mMarkSelectHeading->show(); + mMarkingWidget->show(); + showMarkedItemCount(); + } } @@ -631,21 +630,22 @@ if ( mWidget->selectionMode() == HgWidget::MultiSelection ) { return ; } - if(XQServiceUtil::isService()){ - emit gridItemSelected(index); - return; - } OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" ); if ( mModel ) { mModel->setData( index, index.row(), GlxFocusIndexRole ); } + if(XQServiceUtil::isService()){ + qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" ); + emit actionTriggered( EGlxCmdFetcherSelect ); + return; + } emit actionTriggered( EGlxCmdFullScreenOpen ); OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START ); } void GlxGridView::scrollingStarted() { - if ((mWindow->orientation() == Qt::Horizontal) && mWidget->selectionMode() == HgWidget::NoSelection) + if ((mWindow->orientation() == Qt::Horizontal)/* && mWidget->selectionMode() == HgWidget::NoSelection*/) { setItemVisible(Hb::AllItems, FALSE) ; setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); @@ -653,11 +653,11 @@ { mUiOnButton->hide(); } - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } } @@ -703,17 +703,16 @@ disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool))); delete mUiOnButton; } - if(mCameraButton) { - disconnect(mCameraButton, SIGNAL(clicked()), this, SLOT(cameraButtonClicked())); - delete mCameraButton; - } + delete mIconItem; - delete mCountItem; - delete mAlbumName; - delete mMainLabel; + delete mTotalImagesCount; + delete mAlbumNameHeading; + delete mMarkSelectHeading; delete mMarkCheckBox; - delete mCountLabel; + delete mMarkCountLabel; + delete mMarkingWidget; delete mZeroItemLabel; + OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT ); } @@ -739,15 +738,16 @@ void GlxGridView::showHbItems() { - setItemVisible(Hb::AllItems, TRUE) ; - setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden); + if(mWidget && mWidget->selectionMode() == HgWidget::NoSelection) { + setItemVisible( Hb::TitleBarItem, TRUE ); + setItemVisible( Hb::StatusBarItem, TRUE ); + setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden); showItemCount(); - toolBar()->resetTransform(); // Temp, this is for HbToolbar issue to get fixed - toolBar()->show(); - if (mUiOnButton) - { + } + updateToolBar(); + if (mUiOnButton) { mUiOnButton->hide(); - } + } } void GlxGridView::cameraButtonClicked(bool /*checked*/) @@ -758,10 +758,30 @@ int GlxGridView::getSubState() { int substate = NO_GRID_S; - QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); - if ( variant.isValid() && variant.canConvert () ) { - substate = variant.value(); + if ( mModel ) { + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + substate = variant.value(); + } } return substate; } +void GlxGridView::updateToolBar() +{ + //In the case of multiselection show the tool bar. + if ( mWidget && mWidget->selectionMode() == HgWidget::MultiSelection ) { + setItemVisible( Hb::ToolBarItem, TRUE ) ; + return ; + } + + //In Album grid it is not required to show tool bar + int subState = getSubState(); + if ( subState == ALBUM_ITEM_S || subState == FETCHER_ALBUM_ITEM_S ) { + setItemVisible( Hb::ToolBarItem, FALSE ) ; + } + else { + setItemVisible( Hb::ToolBarItem, TRUE ); + } +} + diff -r f291796e213d -r fb37077c270f ui/views/listview/inc/glxlistview.h --- a/ui/views/listview/inc/glxlistview.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/listview/inc/glxlistview.h Wed Aug 18 09:48:53 2010 +0300 @@ -38,7 +38,7 @@ void deActivate(); void setModel(QAbstractItemModel *model); void addToolBar( HbToolBar *toolBar ); - void initializeView(QAbstractItemModel *model); + void initializeView( QAbstractItemModel *model, GlxView *preView ); QGraphicsItem * getAnimationItem( GlxEffect transtionEffect ); public slots: diff -r f291796e213d -r fb37077c270f ui/views/listview/src/glxlistview.cpp --- a/ui/views/listview/src/glxlistview.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/listview/src/glxlistview.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -57,7 +57,6 @@ void GlxListView::deActivate() { qDebug("GlxListView::deActivate()"); - disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation))); } void GlxListView::setModel(QAbstractItemModel *model) @@ -76,13 +75,14 @@ setToolBar(toolBar) ; } -void GlxListView::initializeView(QAbstractItemModel *model) +void GlxListView::initializeView( QAbstractItemModel *model, GlxView *preView ) { + Q_UNUSED( preView ) qDebug("GlxListView::initializeView()"); - if (mListView == NULL) { + if ( mListView == NULL ) { createListView(); } - setModel(model); + setModel( model ); } QGraphicsItem * GlxListView::getAnimationItem( GlxEffect transtionEffect ) @@ -205,7 +205,19 @@ if ( mModel ) { mModel->setData( index, index.row(), GlxFocusIndexRole ); } - emit actionTriggered( EGlxCmdAlbumGridOpen ); + + int curstate = NO_LIST_S; + qDebug() << "GlxListView::itemSelected READING STATE "; + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + curstate = variant.value(); + } + qDebug() << "GlxMenuManager::viewSubState = " << curstate ; + if(curstate == FETCHER_ALBUM_S ){ + emit actionTriggered( EGlxCmdFetcherAlbumGridOpen ); + }else { + emit actionTriggered( EGlxCmdAlbumGridOpen ); + } } diff -r f291796e213d -r fb37077c270f ui/views/slideshowview/inc/glxslideshowview.h --- a/ui/views/slideshowview/inc/glxslideshowview.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/slideshowview/inc/glxslideshowview.h Wed Aug 18 09:48:53 2010 +0300 @@ -33,29 +33,115 @@ class GlxSlideShowWidget; class GlxTvOutWrapper; +/** + * Class Description + * This is Slideshow view class used to play the slide show on set of images. + */ class GlxSlideShowView : public GlxView { Q_OBJECT public: - GlxSlideShowView(HbMainWindow *window,HbDocumentLoader *Docloader); + /** + * Constructor + * @param - HbMainWindow object + * @param - fullscreen docloader object + */ + GlxSlideShowView( HbMainWindow *window, HbDocumentLoader *Docloader ); + + /** + * Destructor + */ ~GlxSlideShowView(); + + /** + * activate() + * ///From GlxView + */ void activate() ; + + /** + * deActivate() + * ///From GlxView + */ void deActivate(); - void setModel(QAbstractItemModel *model); + + /** + * setmodel() + * ///from GlxView + */ + void setModel( QAbstractItemModel *model ); + + /** + * setModelContext() - to set the context mode of the model. + */ void setModelContext(); + + /** + * handleUserAction() - To handle the used action like back to paly the orientation change animation. + */ + void handleUserAction( qint32 commandId ); public slots : - void orientationChanged(Qt::Orientation); - void slideShowEventHandler( GlxSlideShowEvent e); + /** + * orientationChanged() - Slot to upadte the layout when orientation of device has changed + * @param new orientation + */ + void orientationChanged( Qt::Orientation ) ; + + /** + * slideShowEventHandler() - to handle the widget events like ui on / off, empty data etc + * @param slide show widget event type + */ + void slideShowEventHandler( GlxSlideShowEvent e ); + + /** + * indexchanged() - call back to handle the selected image change. + */ void indexchanged(); + + /** + * modelDestroyed() - call back to monitor the model destroy. + */ void modelDestroyed(); + /** + * playLsOrientChangeAnim() - To play the protrait to landscape orientation animation. + */ + void playLsOrientChangeAnim(); + + /** + * playLsOrientChangeAnim() - To play the landscape to protrait orientation animation. + */ + void playPtOrientChangeAnim(); + + /** + * LsOrientChangeAnimFinished() - Call back fuction when protrait to landscape orientation animation + * has been finished. + * @param - staus of effect + */ + void LsOrientChangeAnimFinished( const HbEffect::EffectStatus ); + + /** + * PtOrientChangeAnimFinished() - Call back fuction when landscape to protrait orientation animation + * has been finished. + * @param - staus of effect + */ + void PtOrientChangeAnimFinished( const HbEffect::EffectStatus ); + protected : - bool eventFilter(QObject *obj, QEvent *ev); + /** + * eventFilter - To handle the application foregrond and background event + * ///From HbView + */ + bool eventFilter( QObject *obj, QEvent *ev ); private: + /** + * loadWidgets() - The widgets are retrieved from the docml + */ void loadObjects(); + private: QAbstractItemModel *mModel; HbMainWindow *mWindow; diff -r f291796e213d -r fb37077c270f ui/views/slideshowview/inc/glxslideshowwidget.h --- a/ui/views/slideshowview/inc/glxslideshowwidget.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/slideshowview/inc/glxslideshowwidget.h Wed Aug 18 09:48:53 2010 +0300 @@ -34,6 +34,7 @@ class QGraphicsItem; class HbDocumentLoader; class HbAbstractDataModel; +class HbLabel; //User Forward Declarations class GlxEffectEngine; @@ -48,83 +49,273 @@ EFFECT_STARTED // sends the signal when effect is started. } GlxSlideShowEvent; -typedef enum -{ - MOVE_FORWARD, - MOVE_BACKWARD, -} GlxSlideShowMoveDir; - +/** + * Class Description + * This is Slideshow widget class used to play the slide show animation and ahndle the user action like pause and play. + */ class GlxSlideShowWidget : public HbWidget { Q_OBJECT public : - GlxSlideShowWidget (QGraphicsItem *parent = NULL); + /** + * Constructor + * @param - QGraphicsItem + */ + GlxSlideShowWidget ( QGraphicsItem *parent = NULL ); + + /** + * Destructor + */ ~GlxSlideShowWidget (); - void setModel (QAbstractItemModel *model); - void setItemGeometry(QRect screenRect); + + /** + * setmodel() - To set the model of the widget. + * @param - QAbstractItemModel. + */ + void setModel ( QAbstractItemModel *model ); + + /** + * setItemGeometry() - To Set the layout data of widgets item. + * @param scrren gemoetry + */ + void setItemGeometry( QRect screenRect ); + + /** + * startSlideShow() - To start the slide show timer to run the slide show. + */ void startSlideShow(); + + /** + * stopSlideShow() - To stop slide show timer. + */ void stopSlideShow(); - /* - * Initialise the slideshow widget - * creation of the icons are done here - */ - void setSlideShowWidget(HbDocumentLoader *DocLoader); /* - * Cleans up the slide show widget + * setSlideShowWidget() - Initialise the slideshow widget and creation of the icons are done here. + * @param - docloader + */ + void setSlideShowWidget( HbDocumentLoader *DocLoader ); + + /* + * cleanUp() -Cleans up the slide show widget */ void cleanUp(); + /* + * animationItem() - Return the icon to use for some transition effect + */ + QGraphicsItem * animationItem(); + + /** + * updateAnimationItem() - upadte the z value of anition item for smooth effect. + */ + void updateAnimationItem(); + + signals: - void slideShowEvent(GlxSlideShowEvent e); + /** + * slideShowEvent() - This signal is emitted when slide show event happend lide ui on/off + * @param - GlxSlideShowEvent. + */ + void slideShowEvent( GlxSlideShowEvent e ); + + /** + * indexchanged() - This signal is emmitted when image selected index is changed. + */ void indexchanged(); public slots : + /** + * triggeredEffect() - To start the slide show animation. + */ void triggeredEffect(); + + /** + * continueSlideShow() - Play the slide show. + * @param - From HbAbstractButton. + */ + void continueSlideShow( bool check ); + + /** + * effectFinshed() - Call back to get notification of slide show animation has been finshed. + */ void effectFinshed(); - void cancelEffect(); - void pauseSlideShow(); - void continueSlideShow(bool check); - void dataChanged(QModelIndex startIndex, QModelIndex endIndex); - void rowsInserted(const QModelIndex &parent, int start, int end); - void rowsRemoved(const QModelIndex &parent, int start, int end); + + /** + * dataChanged() - call back to monitor the widget data changed. + * @param - start index of data changed. + * @param - end index of data changed. + */ + void dataChanged( QModelIndex startIndex, QModelIndex endIndex ); + + /** + * rowsInserted() - call back of new row inserted in the model. + * @param - Items are inserted under parent. + * @param - start index of items inserted. + * @param - end index of items removed. + */ + void rowsInserted( const QModelIndex &parent, int start, int end ); + + /** + * rowsRemoved() - call back of new row removed in the model. + * @param - Items are removed from parent item. + * @param - start index of items inserted. + * @param - end index of items removed. + */ + void rowsRemoved( const QModelIndex &parent, int start, int end ); + + /** + * modelDestroyed() - call back to monitor the model destroy. + */ void modelDestroyed(); - void orientationChanged(QRect screenRect); + + /** + * orientationChanged() - relayout the data when orientation has been changed + * @param - Screen Geometry + */ + void orientationChanged( QRect screenRect ); + /** + * leftMoveEffectFinished() - call back, when animation of browse the image in forward direction + * has been finished. + * @param - staus of effect + */ void leftMoveEffectFinished( const HbEffect::EffectStatus &status ); + + /** + * leftMoveEffectFinished() - call back, when animation of browse the image in backward direction + * has been finished. + * @param - staus of effect + */ void rightMoveEffectFinished( const HbEffect::EffectStatus &status ); protected slots : - void leftGesture (int value); - void rightGesture (int value); + /** + * leftGesture() - To handle the left move event + * @parma number of pixel move. + */ + void leftGesture ( int value ); + + /** + * rightGesture() - To handle the right move event + * @parma number of pixel move. + */ + void rightGesture ( int value ); protected : - void gestureEvent(QGestureEvent *event); + /** + * gestureEvent() - gesture event handler. + * @param - QGestureEvent + */ + void gestureEvent( QGestureEvent *event ); private : - //clear all the model connection + /** + * clearCurrentModel() - clear all the model call backs + */ void clearCurrentModel(); - //add the connection to the model + + /** + * initializeNewModel() - register the model data change call backs + */ void initializeNewModel(); + + /** + * resetSlideShow() - Reinitialise the widget property. + */ void resetSlideShow(); - void setIconItems( int moveDir ); + + /** + * moveImage() - Sopport function to handle the user browsing. + * @param - next selected image index. + * @param - position of next image index. + * @param - effect event + * @param - animation finished callback function + */ void moveImage( int nextIndex, int posX, const QString & move, char * callBack ); + + /** + * addConnections() - register the internal and effect engine callback. + */ void addConnections(); + + /** + * removeConnections() - deregister the internal and effect engine callback. + */ void removeConnections(); + + /** + * cancelEffect() - To cancel the currnet effect running. + */ + void cancelEffect(); + + /** + * pauseSlideShow() - Pause the slide show. + */ + void pauseSlideShow(); + + /** + * getFocusIndex() -To get the focus index + */ + int getFocusIndex( ); + + /* + * getIcon() - To get the full screen icon of the image + * @param - index of the icon + */ + HbIcon getIcon( int index ); + + /** + * isCorrupt() - To check the itemis corrupted or not + * @param - index of the icon + */ + bool isCorrupt( int index ); + + /** + * setFocusItemIcon() - To set the current ( focus ) item icon + * @return - return the success or failure status + */ + bool setFocusItemIcon(); + + /** + * setNextItemIcon() - To set the next itme icon in the list + * @return - return the success or failure status + */ + bool setNextItemIcon(); + + /** + * setPreItemIcon() - To set the previous icon in the list + * @return - return the success or failure status + */ + bool setPreItemIcon(); + + /** + * showErrorNote() - In the case of all the image are corrupted then show the error notes + */ + void showErrorNote(); + + /** + * hideErrorNote() - It will hide the corrupted images note + */ + void hideErrorNote(); private: GlxEffectEngine *mEffectEngine; GlxSettingInterface *mSettings; //no ownership - HbIconItem *mIconItems[NBR_ITEM]; + HbIconItem *mIconItems[ NBR_ITEM ]; + HbIconItem *mAnimItem; + HbIconItem *mBackGroundItem; HbPushButton *mContinueButton; + HbLabel *mErrorNote ; //when all the image are corrupted then show the no image label int mItemIndex; - int mSelIndex; + int mSelIndex[ NBR_ITEM ]; QTimer *mSlideTimer; QAbstractItemModel *mModel; QRect mScreenRect; QList mItemList; bool mIsPause; + int mSlideShowItemCount; }; #endif /* GLXSLIDESHOWWIDGET_H */ diff -r f291796e213d -r fb37077c270f ui/views/slideshowview/src/glxslideshowview.cpp --- a/ui/views/slideshowview/src/glxslideshowview.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/slideshowview/src/glxslideshowview.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -43,6 +43,8 @@ { TRACER("GlxSlideShowView::GlxSlideShowView()"); mDocLoader = DocLoader; + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatelandscape.fxml" ), QString( "RotateLS" ) ); + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotateprotrait.fxml" ), QString( "RotatePT" ) ); } GlxSlideShowView::~GlxSlideShowView() @@ -59,12 +61,13 @@ delete mDocLoader; mDocLoader = NULL; } + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate.fxml" ), QString( "RotateStart" ) ); + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate1.fxml" ), QString( "RotateEnd" ) ); } void GlxSlideShowView::activate() { TRACER("GlxSlideShowView::activate()"); - mWindow->setOrientation(Qt::Horizontal, false); //finds the widgets from the docml loadObjects(); @@ -72,6 +75,7 @@ setStatusBarVisible(FALSE); connect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); connect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) ); + connect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) ); QCoreApplication::instance()->installEventFilter(this); @@ -83,14 +87,14 @@ void GlxSlideShowView::deActivate() { TRACER("GlxSlideShowView::deActivate()"); - mWindow->unsetOrientation(false); + mWindow->unsetOrientation( false ); setStatusBarVisible(TRUE); - setTitleBarVisible(TRUE); - + setTitleBarVisible(TRUE); disconnect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); disconnect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) ); + disconnect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) ); //Delete the Items in the slide show widget mSlideShowWidget->cleanUp(); @@ -107,17 +111,18 @@ { TRACER("GlxSlideShowView::setModel()"); GLX_LOG_INFO2("GlxSlideShowView::setModel() model %u mModel %u", model, mModel); - if ( mModel != model ) { - modelDestroyed(); - mModel = model; - connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); + if ( mModel != model ) { + modelDestroyed(); + mModel = model; + connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); } + setModelContext(); mSlideShowWidget->setModel(mModel); if (mTvOutWrapper){ - mTvOutWrapper->setModel(mModel,true); + mTvOutWrapper->setModel(mModel, screenSize(), true); mTvOutWrapper->setImagetoHDMI(); } } @@ -127,14 +132,24 @@ TRACER("GlxSlideShowView::setModelContext()"); if ( mModel && mWindow ) { GLX_LOG_INFO1("GlxSlideShowView::setModelContext %d", mWindow->orientation() ); - - mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); - /* if ( mWindow->orientation() == Qt::Horizontal ) { + if ( mWindow->orientation() == Qt::Horizontal ) { mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); } else { mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); - } */ + } + } +} + +void GlxSlideShowView::handleUserAction( qint32 commandId ) +{ + switch( commandId ){ + case EGlxCmdPlayBackAnim : + playPtOrientChangeAnim(); + break; + + default : + break; } } @@ -191,6 +206,40 @@ } } +void GlxSlideShowView::playLsOrientChangeAnim() +{ + qDebug( "GlxSlideShowView::playLsOrientChangeAnim() enter "); + if ( mWindow->orientation( ) == Qt ::Vertical ) { + mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); + mSlideShowWidget->updateAnimationItem(); + HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotateLS" ), this, "LsOrientChangeAnimFinished" ); + qDebug( "GlxSlideShowView::playLsOrientChangeAnim() exit1 "); + } + else { + mWindow->setOrientation( Qt::Horizontal, false ); + } +} + +void GlxSlideShowView::playPtOrientChangeAnim() +{ + mModel->setData( QModelIndex(), ( int )GlxContextPtFs, GlxContextRole ); + setTitleBarVisible( FALSE ); + setStatusBarVisible( FALSE ); + mSlideShowWidget->updateAnimationItem(); + HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotatePT" ), this, "PtOrientChangeAnimFinished" ); +} + +void GlxSlideShowView::LsOrientChangeAnimFinished( const HbEffect::EffectStatus ) +{ + mWindow->setOrientation( Qt::Horizontal, false ); + orientationChanged( Qt::Horizontal ); +} + +void GlxSlideShowView::PtOrientChangeAnimFinished( const HbEffect::EffectStatus ) +{ + emit actionTriggered( EGlxCmdSlideShowBack ); +} + bool GlxSlideShowView::eventFilter(QObject *obj, QEvent *event) { TRACER("GlxSlideShowView::event()"); diff -r f291796e213d -r fb37077c270f ui/views/slideshowview/src/glxslideshowwidget.cpp --- a/ui/views/slideshowview/src/glxslideshowwidget.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -28,6 +28,7 @@ #include #include #include +#include //User Includes #include "glxicondefs.h" //Contains the icon names/Ids @@ -36,19 +37,23 @@ #include "glxdocloaderdefs.h" #include "glxslideshowwidget.h" #include "glxsettinginterface.h" +#include "glxlocalisationstrings.h" #include "glxlog.h" #include "glxtracer.h" GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) - : HbWidget(parent), - mEffectEngine(NULL), + : HbWidget( parent ), + mEffectEngine( NULL ), mSettings( NULL ), - mContinueButton(NULL), - mItemIndex(1), - mSelIndex(0), - mSlideTimer(NULL), - mModel(NULL) + mAnimItem( NULL ), + mBackGroundItem( NULL ), + mContinueButton( NULL ), + mErrorNote( NULL ), + mItemIndex( 1 ), + mSlideTimer( NULL ), + mModel( NULL ), + mSlideShowItemCount( 0 ) { TRACER("GlxSlideShowWidget::GlxSlideShowWidget()"); mSettings = GlxSettingInterface::instance() ; //no owner ship @@ -63,21 +68,27 @@ //create the effect engine mEffectEngine = new GlxEffectEngine(); - + mItemIndex = 1; + + mBackGroundItem = new HbIconItem( this ); + mBackGroundItem->setBrush( QBrush( Qt::black ) ); + mAnimItem = new HbIconItem( this ); + mAnimItem->setAlignment( Qt::AlignCenter ); + // Now load the view and the contents. // and then set the play icon to the button - mContinueButton = static_cast(DocLoader->findWidget(GLXSLIDESHOW_PB)); - mContinueButton->setIcon(HbIcon(GLXICON_PLAY)); + mContinueButton = static_cast( DocLoader->findWidget( GLXSLIDESHOW_PB ) ); + mContinueButton->setIcon( HbIcon( GLXICON_PLAY ) ); mContinueButton->hide(); mIsPause = false; for ( int i = 0; i < NBR_ITEM ; i++) { - mIconItems[i] = new HbIconItem(this); - mIconItems[i]->setBrush(QBrush(Qt::black)); - mIconItems[i]->setAlignment( Qt::AlignCenter ); - mIconItems[i]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) ); - } - + mSelIndex[ i ] = -1; + mIconItems[ i ] = new HbIconItem( this ); + mIconItems[ i ]->setAlignment( Qt::AlignCenter ); + mIconItems[ i ]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) ); + } + mSlideTimer = new QTimer(); mItemList.clear(); @@ -111,7 +122,7 @@ TRACER("GlxSlideShowWidget::cleanUp()"); removeConnections(); - if(mEffectEngine) { + if( mEffectEngine ) { mEffectEngine->deRegisterEffect( QString("HbIconItem") ); delete mEffectEngine; mEffectEngine = NULL; @@ -121,11 +132,22 @@ delete mIconItems[i] ; mIconItems[i] = NULL; } + + delete mBackGroundItem ; + mBackGroundItem = NULL; + + delete mAnimItem; + mAnimItem = NULL; - if(mSlideTimer) { + if( mSlideTimer ) { delete mSlideTimer; mSlideTimer = NULL; } + + if ( mErrorNote ) { + delete mErrorNote ; + mErrorNote = NULL; + } clearCurrentModel(); HbEffect::remove( QString("HbIconItem"), QString(":/data/transition.fxml"), QString( "Move" )); @@ -133,7 +155,19 @@ HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionright.fxml"), QString( "RightMove" )); } -void GlxSlideShowWidget::setModel (QAbstractItemModel *model) +QGraphicsItem * GlxSlideShowWidget::animationItem() +{ + mAnimItem->setIcon( getIcon( mSelIndex[ mItemIndex ] ) ); + return mAnimItem; +} + +void GlxSlideShowWidget::updateAnimationItem() +{ + mIconItems[ mItemIndex ]->setIcon( HbIcon() ); + mAnimItem->setZValue( mAnimItem->zValue() + 10 ); +} + +void GlxSlideShowWidget::setModel ( QAbstractItemModel *model ) { TRACER("GlxSlideShowWidget::setModel()"); if ( model == mModel ) { @@ -145,16 +179,19 @@ resetSlideShow(); } -void GlxSlideShowWidget::setItemGeometry(QRect screenRect) +void GlxSlideShowWidget::setItemGeometry( QRect screenRect ) { TRACER("GlxSlideShowWidget::setItemGeometry()"); int index = mItemIndex; mScreenRect = screenRect; - mIconItems[index]->setGeometry(mScreenRect); - index = ( mItemIndex + 1) % NBR_ITEM; - mIconItems[index]->setGeometry( QRect( mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) ); + mIconItems[ index ]->setGeometry( mScreenRect ); + index = ( mItemIndex + 1 ) % NBR_ITEM; + mIconItems[ index ]->setGeometry( QRect( mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) ); index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1; - mIconItems[index]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) ); + mIconItems[ index ]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) ); + mBackGroundItem->setGeometry( mScreenRect ); + int xPos = ( mScreenRect.width() - mScreenRect.height() ) >> 1 ; + mAnimItem->setGeometry( QRect( xPos, -xPos, mScreenRect.height(), mScreenRect.width() ) ); } void GlxSlideShowWidget::triggeredEffect() @@ -176,22 +213,16 @@ void GlxSlideShowWidget::effectFinshed() { - TRACER("GlxSlideShowWidget::effectFinshed()"); - //To:Do boundery condition or last item check implemented after behaviour of slide show clear - int rowCount = mModel->rowCount(); GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() before image selected index %d array index %d", mSelIndex, mItemIndex); - mSelIndex = ( ++mSelIndex ) % rowCount; mItemIndex = ( ++mItemIndex ) % NBR_ITEM; - mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole ); - mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex ); - setIconItems( MOVE_FORWARD ); + mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole ); + mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex ); + setNextItemIcon(); GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() after image selected index %d array index %d ", mSelIndex, mItemIndex); - if ( mIsPause == false ) { - mSlideTimer->start( mSettings->slideShowDelayTime() ); - } + startSlideShow(); mItemList.clear(); emit indexchanged(); // on each item change } @@ -211,7 +242,7 @@ cancelEffect(); mContinueButton->setZValue( this->zValue() + 2); mContinueButton->show() ; - emit slideShowEvent(UI_ON_EVENT); + emit slideShowEvent( UI_ON_EVENT ); } void GlxSlideShowWidget::continueSlideShow(bool checked) @@ -219,11 +250,11 @@ Q_UNUSED( checked ) TRACER("GlxSlideShowWidget::continueSlideShow()"); mIsPause = false; - if ( mModel && mModel->rowCount() > 1 ) { + if ( mModel && mSlideShowItemCount > 1 ) { mSlideTimer->start( mSettings->slideShowDelayTime() ); } mContinueButton->hide(); - emit slideShowEvent(UI_OFF_EVENT); + emit slideShowEvent( UI_OFF_EVENT ); } void GlxSlideShowWidget::dataChanged(QModelIndex startIndex, QModelIndex endIndex) @@ -231,20 +262,16 @@ Q_UNUSED( endIndex ) TRACER("GlxSlideShowWidget::dataChanged()"); GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged startIndex = %d mSelIndex = %d ", startIndex.row(), mSelIndex ); - int deltaIndex = startIndex.row() - mSelIndex; - if ( deltaIndex <= 1 && deltaIndex >= -1 ) { - int index = ( mItemIndex + deltaIndex + NBR_ITEM ) % NBR_ITEM; //calculated the array index in which data sould be updated - GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged index = %d mSelItemIndex = %d ", index, mItemIndex ); + if ( HbEffect::effectRunning( mAnimItem ) ) { + return ; + } - QVariant variant = mModel->data( startIndex, GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItems[index]->setIcon ( variant.value() ) ; + for( int i = 0; i < NBR_ITEM; ++i ) { + if ( mSelIndex[ i ] == startIndex.row() ) { + mIconItems[ i ]->setIcon( getIcon( startIndex.row() ) ); } - else { - mIconItems[index]->setIcon ( HbIcon() ) ; - } - } + } } void GlxSlideShowWidget::rowsInserted(const QModelIndex &parent, int start, int end) @@ -253,6 +280,9 @@ Q_UNUSED(parent); Q_UNUSED(start); Q_UNUSED(end); + if ( HbEffect::effectRunning( mAnimItem ) ) { + return ; + } resetSlideShow(); } @@ -284,12 +314,13 @@ void GlxSlideShowWidget::orientationChanged(QRect screenRect) { TRACER("GlxSlideShowWidget::orientationChanged()"); + mAnimItem->setIcon( HbIcon() ); + mAnimItem->setZValue( mAnimItem->zValue() - 10 ); cancelEffect(); setItemGeometry( screenRect); resetSlideShow(); } - void GlxSlideShowWidget::leftGesture(int value) { Q_UNUSED(value) @@ -313,14 +344,11 @@ Q_UNUSED(status) TRACER("GlxSlideShowWidget::leftMoveEffectFinished()"); GLX_LOG_INFO1("GlxSlideShowWidget::leftMoveEffectFinished() %d status", status.reason); - - int rowCount = mModel->rowCount(); - mSelIndex = ( ++mSelIndex ) % rowCount; + mItemIndex = ( ++mItemIndex ) % NBR_ITEM; - mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole ); - mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex ); - - setIconItems( MOVE_FORWARD ); + mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole ); + mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex ); + setNextItemIcon(); startSlideShow(); emit indexchanged(); // on left swipe } @@ -331,13 +359,10 @@ TRACER ( "GlxSlideShowWidget::rightMoveEffectFinished( ) "); GLX_LOG_INFO1("GlxSlideShowWidget::rightMoveEffectFinished() %d status", status.reason); - int rowCount = mModel->rowCount(); - mSelIndex = mSelIndex ? --mSelIndex : rowCount - 1; mItemIndex = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1; - mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole ); - mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex ); - - setIconItems( MOVE_BACKWARD ); + mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole ); + mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex ); + setPreItemIcon(); startSlideShow(); emit indexchanged(); // on right swipe } @@ -374,7 +399,11 @@ { TRACER ( "GlxSlideShowWidget::startSlideShow( ) "); GLX_LOG_INFO1 ( "GlxSlideShowWidget::startSlideShow( ) is pause %d", mIsPause); - if ( mIsPause == false && mModel && mModel->rowCount() > 1 ) { + + if ( mSlideShowItemCount == 0 ) { + showErrorNote(); + } + if ( mIsPause == false && mModel && mSlideShowItemCount > 1 ) { mSlideTimer->start( mSettings->slideShowDelayTime() ); } } @@ -396,10 +425,6 @@ disconnect(mModel, SIGNAL(destroyed()), this, SLOT( modelDestroyed())); mModel = NULL ; } -/* - disconnect(mModel, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed())); - disconnect(mModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int))); - */ } void GlxSlideShowWidget::initializeNewModel() @@ -413,70 +438,30 @@ } } - void GlxSlideShowWidget::resetSlideShow() { TRACER("GlxSlideShowWidget::resetSlideShow()" ); - if(! mModel) { + if( mModel == NULL || mModel->rowCount() == 0 ) { return; } - QVariant variant = mModel->data( mModel->index( mSelIndex, 0 ), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) { - mSelIndex = variant.value() ; - GLX_LOG_INFO1("GlxSlideShowWidget::resetSlideShow() selected index %d", mSelIndex ); - } - - variant = mModel->data( mModel->index( mSelIndex, 0 ), GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItems[mItemIndex]->setIcon ( variant.value() ) ; - } - else { - mIconItems[mItemIndex]->setIcon ( HbIcon() ) ; - } - - setIconItems(MOVE_FORWARD); - setIconItems(MOVE_BACKWARD); - if ( mIsPause == false && mModel && mModel->rowCount() > 1 ) { - mSlideTimer->start( mSettings->slideShowDelayTime() ); - } -} - -void GlxSlideShowWidget::setIconItems( int moveDir ) -{ - TRACER("GlxSlideShowWidget::setIconItems()"); - int index = 0, itemIndex = 0; - int rowCount = mModel->rowCount(); - GLX_LOG_INFO1("GlxSlideShowWidget::setIconItems() rowcount %d ", rowCount); - - if ( rowCount == 0 ) { - return ; - } - - if ( moveDir == MOVE_FORWARD ) { - index = ( mSelIndex + 1 ) % rowCount; - itemIndex = ( mItemIndex + 1) % NBR_ITEM; - } - else { - index = mSelIndex ? mSelIndex - 1 : rowCount - 1; - itemIndex = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1; - } - - GLX_LOG_INFO4("GlxSlideShowWidget::setIconItems() image selected index %d array index %d index %d icon index %d", mSelIndex, mItemIndex, index, itemIndex); - - QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFsImageRole ); - if ( variant.isValid() && variant.canConvert () ) { - mIconItems[itemIndex]->setIcon ( variant.value() ) ; - } - else { - mIconItems[itemIndex]->setIcon ( HbIcon() ) ; - } + + mSlideShowItemCount = mModel->rowCount(); + setFocusItemIcon() ; + setNextItemIcon() ; + setPreItemIcon() ; + startSlideShow(); + + qDebug( "GlxSlideShowWidget::resetSlideShow slide show item count %d" , mSlideShowItemCount ); + if ( mErrorNote && mErrorNote->isVisible() && mSlideShowItemCount > 1 ){ + hideErrorNote(); + } } void GlxSlideShowWidget::moveImage(int nextIndex, int posX, const QString & move, char * callBack) { TRACER("GlxSlideShowWidget::MoveImage()"); - if ( mModel->rowCount() <= 1 || mEffectEngine->isEffectRuning( mItemList ) ) { + if ( mSlideShowItemCount <= 1 || mEffectEngine->isEffectRuning( mItemList ) ) { return ; } @@ -514,3 +499,123 @@ disconnect( mContinueButton, SIGNAL( clicked(bool) ), this, SLOT( continueSlideShow(bool) ) ); } } + +int GlxSlideShowWidget::getFocusIndex( ) +{ + QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole ) ; + if ( variant.isValid() && variant.canConvert< int > () ) { + return variant.value< int > (); + } + return -1; +} + +HbIcon GlxSlideShowWidget::getIcon( int index ) +{ + QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFsImageRole ); + if ( variant.isValid() && variant.canConvert< HbIcon > () ) { + return variant.value< HbIcon > () ; + } + return HbIcon() ; +} + +bool GlxSlideShowWidget::isCorrupt( int index ) +{ + QVariant variant = mModel->data( mModel->index( index, 0 ), GlxImageCorruptRole ); + if ( variant.isValid() && variant.canConvert< bool> () ) { + return variant.value< bool > () ; + } + return false ; +} + +bool GlxSlideShowWidget::setFocusItemIcon( ) +{ + int nbrItem = mModel->rowCount(); + int focusIndex = getFocusIndex(); + + for ( int i = 0; i < nbrItem ; ++i ) { + if ( isCorrupt( focusIndex ) == false ) { + qDebug( "GlxSlideShowWidget::setFocusItemIcon1 focus index %d" , focusIndex ); + mIconItems[ mItemIndex ]->setIcon( getIcon( focusIndex ) ) ; + mSelIndex[ mItemIndex ] = focusIndex ; + mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxFocusIndexRole ); + mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxVisualWindowIndex ); + return true; + } + focusIndex = ( focusIndex + 1 ) % nbrItem; + } + mSlideShowItemCount = 0; + return false; +} + +bool GlxSlideShowWidget::setNextItemIcon( ) +{ + int nbrItem = mModel->rowCount(); + int imageIndex = ( mSelIndex[ mItemIndex ] + 1 ) % nbrItem ; + int itemIndex = ( mItemIndex + 1 ) % NBR_ITEM ; + + for( int i = 1; i < nbrItem; ++i ) { + if ( isCorrupt( imageIndex ) == false ) { + mIconItems[ itemIndex ]->setIcon( getIcon( imageIndex ) ); + mSelIndex[ itemIndex ] = imageIndex ; + return true; + } + imageIndex = ( imageIndex + 1 ) % nbrItem ; + } + + if ( isCorrupt( imageIndex ) ) { + mSlideShowItemCount = 0; + } + else { + mSlideShowItemCount = 1; + } + return false ; +} + +bool GlxSlideShowWidget::setPreItemIcon() +{ + int nbrItem = mModel->rowCount() ; + int imageIndex = mSelIndex[ mItemIndex ] > 0 ? mSelIndex[ mItemIndex ] - 1 : nbrItem - 1 ; + int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : NBR_ITEM - 1 ; + + for( int i = 1; i < nbrItem; ++i ) { + if ( isCorrupt( imageIndex ) == false ) { + mIconItems[ itemIndex ]->setIcon( getIcon( imageIndex ) ) ; + mSelIndex[ itemIndex ] = imageIndex ; + return true; + } + imageIndex = imageIndex > 0 ? imageIndex - 1 : nbrItem - 1 ; + } + if ( isCorrupt( imageIndex ) ) { + mSlideShowItemCount = 0; + } + else { + mSlideShowItemCount = 1; + } + return false; +} + +void GlxSlideShowWidget::showErrorNote() +{ + if ( mErrorNote == NULL ){ + mErrorNote = new HbLabel( QString( GLX_NOIMAGE_PLAY_SLIDESHOW ), this); + mErrorNote->setObjectName( "No Image" ); + mErrorNote->setGeometry( mIconItems[ 0 ]->geometry() ); + mErrorNote->setAlignment( Qt::AlignCenter ); + } + + for( int i = 0; i < NBR_ITEM; ++i ){ + mIconItems[ i ]->setVisible( false ); + } + mErrorNote->setVisible( true ); + emit slideShowEvent( UI_ON_EVENT ); +} + +void GlxSlideShowWidget::hideErrorNote() +{ + for( int i = 0; i < NBR_ITEM; ++i ){ + mIconItems[ i ]->setVisible( true ); + } + mErrorNote->setVisible( false ); + emit slideShowEvent( UI_OFF_EVENT ); +} + diff -r f291796e213d -r fb37077c270f ui/views/viewbase/inc/glxview.h --- a/ui/views/viewbase/inc/glxview.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/viewbase/inc/glxview.h Wed Aug 18 09:48:53 2010 +0300 @@ -37,19 +37,28 @@ Q_OBJECT public : - GlxView(qint32 id, QGraphicsItem *parent = 0 ); + GlxView( qint32 id, QGraphicsItem *parent = 0 ); virtual void activate() = 0; virtual void deActivate() = 0; - virtual void setModel(QAbstractItemModel *model) = 0; + virtual void setModel( QAbstractItemModel *model ) = 0; - virtual bool compare (qint32 id); + virtual bool compare ( qint32 id ); virtual void addToolBar( HbToolBar *toolBar ) { Q_UNUSED(toolBar) } virtual void enableMarking() { } virtual void disableMarking() { } - virtual void handleUserAction(qint32 commandId) { Q_UNUSED(commandId) } + virtual void handleUserAction( qint32 commandId ) { Q_UNUSED(commandId) } virtual QItemSelectionModel * getSelectionModel() { return NULL ; } virtual void resetView() {} - virtual void initializeView(QAbstractItemModel *model) {Q_UNUSED(model)} + /* + * model - Model to retreive the initial set up data + * preView - previous view pointer to retrieve the mode , state information + */ + virtual void initializeView( QAbstractItemModel *model, GlxView *preView ) + { + Q_UNUSED( model ) + Q_UNUSED( preView ) + } + inline qint32 viewId() { return mId;} QSize screenSize(); QRect screenGeometry(); @@ -57,10 +66,8 @@ virtual ~GlxView() { } signals: - void actionTriggered(qint32 id); - void itemSpecificMenuTriggered(qint32,QPointF ); - void gridItemSelected(const QModelIndex &); - + void actionTriggered( qint32 id ); + void itemSpecificMenuTriggered( qint32,QPointF ); private : qint32 mId; diff -r f291796e213d -r fb37077c270f ui/views/views.pro --- a/ui/views/views.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/views/views.pro Wed Aug 18 09:48:53 2010 +0300 @@ -32,11 +32,9 @@ -lganeswidgets.dll \ -lglxmodelwrapper.dll \ -lglxviewutilities.dll \ - -lglxzoomwidget.dll \ - -ldetailsnamelabel.dll \ - -ldetailsnamelabelplugin.dll \ - -ldetailsdescriptionedit.dll \ - -ldetailsdescriptioneditplugin.dll + -lglxzoomwidget.dll \ + -lglxdetailscustomwidgets.dll \ + -lglxdetailscustomplugin.dll DEFINES += BUILD_GLXVIEWS @@ -55,8 +53,8 @@ ../viewutilities/effectengine/inc \ ../viewutilities/settingutility/inc \ /epoc32/include/mw/hgwidgets \ - ../detailscustomwidget/detailsnamelabel/inc \ - ../detailscustomwidget/detailsdescriptionedit/inc + ../detailscustomwidget/detailscustomwidgets + symbian: { TARGET.UID3 = 0x200009EF diff -r f291796e213d -r fb37077c270f ui/viewutilities/effectengine/src/glxtransitioneffect.cpp --- a/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -50,44 +50,44 @@ break; case GRID_TO_ALBUMLIST: - mEffectFileList.append( QString(":/data/gridtoalbumlisthide.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click4") ); + mEffectFileList.append( QString( "view_hide_normal" ) ); + mItemType.append( QString( "HbView" ) ); + mEventType.append(QString( "click4" ) ); - mEffectFileList.append( QString(":/data/gridtoalbumlist.fxml")); - mItemType.append( QString("HbListView") ); - mEventType.append(QString("click5") ); + mEffectFileList.append( QString( "view_show_normal" ) ); + mItemType.append( QString( "HbListView" ) ); + mEventType.append( QString( "click5" ) ); break; case ALBUMLIST_TO_GRID: - mEffectFileList.append( QString(":/data/albumlisttogrid.fxml")); - mItemType.append( QString("HbListView") ); - mEventType.append(QString("click6") ); + mEffectFileList.append( QString( "view_hide_back" ) ); + mItemType.append( QString( "HbListView" ) ); + mEventType.append( QString( "click6" ) ); - mEffectFileList.append( QString(":/data/albumlisttogridshow.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click7") ); + mEffectFileList.append( QString( "view_show_back" ) ); + mItemType.append( QString( "HbView" ) ); + mEventType.append( QString( "click7" ) ); break; case FULLSCREEN_TO_DETAIL : - mEffectFileList.append( QString(":/data/view_flip_hide.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click8") ); + mEffectFileList.append( QString( "view_hide_normal_alt" ) ); + mItemType.append( QString( "HbView" ) ); + mEventType.append( QString( "click8" ) ); - mEffectFileList.append( QString(":/data/view_flip_show.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click9") ); + mEffectFileList.append( QString( "view_show_normal_alt" ) ); + mItemType.append( QString( "HbView" ) ); + mEventType.append(QString( "click9" ) ); mTransitionLater = true; break; case DETAIL_TO_FULLSCREEN : - mEffectFileList.append( QString(":/data/view_flip_hide.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click10") ); + mEffectFileList.append( "view_hide_back_alt" ); + mItemType.append( QString( "HbView" ) ); + mEventType.append( QString( "click10" ) ); - mEffectFileList.append( QString(":/data/view_flip_show.fxml")); - mItemType.append( QString("HbView") ); - mEventType.append(QString("click11") ); + mEffectFileList.append( "view_show_back_alt" ); + mItemType.append( QString( "HbView" ) ); + mEventType.append( QString( "click11" ) ); mTransitionLater = true; break; diff -r f291796e213d -r fb37077c270f ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h --- a/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h Wed Aug 18 09:48:53 2010 +0300 @@ -20,6 +20,7 @@ #define GLXZOOMINOUTEFFECTPLUGIN_H #include "glxeffectpluginbase.h" +#include "glxlocalisationstrings.h" class GlxZoomInOutEffectPlugin : public GlxEffectPluginBase { @@ -47,7 +48,7 @@ /* * get the name of the effect, use to shown in the slide show setting view */ - static QString effectName() { return QString ("ZoomInOut") ; } + static QString effectName() { return (GLX_EFFECTS_ZOOMIN_ZOOMOUT) ; } private : QList mEffectFileList; diff -r f291796e213d -r fb37077c270f ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp --- a/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -18,6 +18,7 @@ #include "glxflipeffectplugin.h" #include "glxuistd.h" +#include "glxlocalisationstrings.h" GlxFlipEffectPlugin::GlxFlipEffectPlugin() : GlxEffectPluginBase( FLIP_EFFECT ) { @@ -36,7 +37,7 @@ QString GlxFlipEffectPlugin::effectName() { - return ( "FLip" ) ; + return GLX_EFFECTS_FLIP ; } GlxFlipEffectPlugin::~GlxFlipEffectPlugin() diff -r f291796e213d -r fb37077c270f ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp --- a/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -37,7 +37,7 @@ QString GlxHelixEffectPlugin::effectName() { - return ( "Helix" ) ; + return ( GLX_EFFECTS_ZOOM_AND_PAN ) ; } GlxHelixEffectPlugin::~GlxHelixEffectPlugin() diff -r f291796e213d -r fb37077c270f ui/viewutilities/settingutility/inc/glxsetting.h --- a/ui/viewutilities/settingutility/inc/glxsetting.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/settingutility/inc/glxsetting.h Wed Aug 18 09:48:53 2010 +0300 @@ -81,6 +81,18 @@ */ int slideShowEffectId( int index ) ; + /* + * Returns Current Media Wall 3D effect Status + * This value is fetched from Central repository + */ + int mediaWall3DEffect(); + + /* + * Set Media Wall 3D effect. True = 3D Effect On / False = 3D Effect Off + * This data will be written to the Central Repository + */ + void setmediaWall3DEffect( int index ); + protected : /* * Constructor @@ -109,6 +121,8 @@ XQSettingsKey *mMediumCenRepKey; XQSettingsKey *mFastCenRepKey; + XQSettingsKey *m3DEffectCenRepKey; + static GlxSetting mObj; }; diff -r f291796e213d -r fb37077c270f ui/viewutilities/settingutility/inc/glxsettinginterface.h --- a/ui/viewutilities/settingutility/inc/glxsettinginterface.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/settingutility/inc/glxsettinginterface.h Wed Aug 18 09:48:53 2010 +0300 @@ -82,6 +82,19 @@ */ virtual int slideShowEffectId( int index ) = 0; + + /* + * Returns Current Media Wall 3D effect Status + * This value is fetched from Central repository + */ + virtual int mediaWall3DEffect() = 0 ; + + /* + * Set Media Wall 3D effect. True = 3D Effect On / False = 3D Effect Off + * This data will be written to the Central Repository + */ + virtual void setmediaWall3DEffect( int index ) = 0 ; + protected : /* * Constructor diff -r f291796e213d -r fb37077c270f ui/viewutilities/settingutility/src/glxsetting.cpp --- a/ui/viewutilities/settingutility/src/glxsetting.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/viewutilities/settingutility/src/glxsetting.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -30,6 +30,7 @@ const TUint32 KGlxMeduim = 0x4; const TUint32 KGlxFast = 0x5; const TUint32 KGlxSlideShowEffect[ ] = { 0x6, 0x7, 0x8, 0x9 }; +const TUint32 KGlx3DEffect = 0xA; const TUint32 KCRUidGallery = 0x20007194; GlxSetting GlxSetting::mObj ; @@ -43,6 +44,7 @@ mSlowCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxSlow ); mMediumCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxMeduim ); mFastCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxFast ); + m3DEffectCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlx3DEffect ); for ( int i = 0; i < NBR_SLIDESHOW_EFFECT; i++ ) { mSlideShowEffectCenRepKey[ i ] = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxSlideShowEffect[ i ] ); @@ -62,6 +64,7 @@ delete mTransitionDelayCenrepKey; delete mTransitionEffectCenrepKey; delete mSettingsManager; + delete m3DEffectCenRepKey; for ( int i = 0 ; i < NBR_SLIDESHOW_EFFECT ; i++ ) { delete mSlideShowEffectCenRepKey[ i ]; @@ -136,3 +139,16 @@ return mSettingsManager->readItemValue( * mSlideShowEffectCenRepKey[ index ] ).toInt() ; } +int GlxSetting::mediaWall3DEffect() +{ + QVariant effectvalue = mSettingsManager->readItemValue(*m3DEffectCenRepKey); + return effectvalue.toInt(); +} + +void GlxSetting::setmediaWall3DEffect( int index ) +{ + mSettingsManager->writeItemValue( *m3DEffectCenRepKey, index ) ; +} + + + diff -r f291796e213d -r fb37077c270f ui/widgets/bwins/glxzoomwidgetu.def --- a/ui/widgets/bwins/glxzoomwidgetu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/widgets/bwins/glxzoomwidgetu.def Wed Aug 18 09:48:53 2010 +0300 @@ -9,34 +9,38 @@ ?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 *) - ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *) - ?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 12 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void) - ?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 13 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *) - ?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 14 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void) - ?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 15 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *) - ?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 16 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF) - ?activate@GlxZoomWidget@@QAEXXZ @ 17 NONAME ; void GlxZoomWidget::activate(void) - ?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 18 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void) - ?indexChanged@GlxZoomWidget@@QAEXH@Z @ 19 NONAME ; void GlxZoomWidget::indexChanged(int) - ?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 20 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF) - ?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void) - ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 22 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) - ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 23 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) - ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 24 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) - ?indexChanged@GlxZoomWidget@@QAEXXZ @ 25 NONAME ; void GlxZoomWidget::indexChanged(void) - ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 26 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) - ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 27 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) - ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 28 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) - ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 29 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const - ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 30 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) - ??_EGlxZoomWidget@@UAE@I@Z @ 31 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) - ??1GlxZoomWidget@@UAE@XZ @ 32 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) - ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 33 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) - ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 34 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) - ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 35 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) - ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 36 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) - ?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 37 NONAME ; void GlxZoomWidget::animationFrameChanged(int) - ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) - ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 39 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) - ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 40 NONAME ; void GlxZoomWidget::modelDestroyed(void) + ?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void) + ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *) + ?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 13 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void) + ?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 14 NONAME ; void GlxZoomWidget::animateDoubleTap(void) + ?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 15 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *) + ?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 16 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void) + ?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 17 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *) + ?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 18 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF) + ?activate@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::activate(void) + ?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void) + ?indexChanged@GlxZoomWidget@@QAEXH@Z @ 21 NONAME ; void GlxZoomWidget::indexChanged(int) + ?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 22 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF) + ?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void) + ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 24 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) + ?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 25 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void) + ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 27 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) + ?indexChanged@GlxZoomWidget@@QAEXXZ @ 28 NONAME ; void GlxZoomWidget::indexChanged(void) + ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 29 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) + ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 30 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) + ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 31 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) + ?stepZoom@GlxZoomWidget@@IAEXXZ @ 32 NONAME ; void GlxZoomWidget::stepZoom(void) + ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 33 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const + ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 34 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) + ??_EGlxZoomWidget@@UAE@I@Z @ 35 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) + ??1GlxZoomWidget@@UAE@XZ @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) + ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 37 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) + ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 38 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) + ?setZoomParams@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::setZoomParams(void) + ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 40 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) + ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 41 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) + ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 42 NONAME ; void GlxZoomWidget::modelDestroyed(void) + ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) + ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) diff -r f291796e213d -r fb37077c270f ui/widgets/eabi/glxzoomwidgetu.def --- a/ui/widgets/eabi/glxzoomwidgetu.def Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/widgets/eabi/glxzoomwidgetu.def Wed Aug 18 09:48:53 2010 +0300 @@ -8,41 +8,45 @@ _ZN13GlxZoomWidget12indexChangedEv @ 7 NONAME _ZN13GlxZoomWidget13animateZoomInE7QPointF @ 8 NONAME _ZN13GlxZoomWidget13setWindowSizeE5QSize @ 9 NONAME - _ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 10 NONAME - _ZN13GlxZoomWidget15getFocusedImageEv @ 11 NONAME - _ZN13GlxZoomWidget15setMinMaxZValueEii @ 12 NONAME - _ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 13 NONAME - _ZN13GlxZoomWidget16staticMetaObjectE @ 14 NONAME DATA 16 - _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 15 NONAME - _ZN13GlxZoomWidget17sendDecodeRequestEi @ 16 NONAME - _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 17 NONAME - _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 18 NONAME - _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 19 NONAME - _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 20 NONAME - _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 21 NONAME - _ZN13GlxZoomWidget21animationFrameChangedEi @ 22 NONAME - _ZN13GlxZoomWidget21decodedImageAvailableEv @ 23 NONAME - _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 24 NONAME - _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 25 NONAME - _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 26 NONAME - _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 27 NONAME - _ZN13GlxZoomWidget7cleanUpEv @ 28 NONAME - _ZN13GlxZoomWidget8activateEv @ 29 NONAME - _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 30 NONAME - _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 31 NONAME - _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 32 NONAME - _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 33 NONAME - _ZN13GlxZoomWidgetD0Ev @ 34 NONAME - _ZN13GlxZoomWidgetD1Ev @ 35 NONAME - _ZN13GlxZoomWidgetD2Ev @ 36 NONAME - _ZNK13GlxZoomWidget10metaObjectEv @ 37 NONAME - _ZTI13GlxZoomWidget @ 38 NONAME - _ZTV13GlxZoomWidget @ 39 NONAME - _ZThn16_N13GlxZoomWidgetD0Ev @ 40 NONAME - _ZThn16_N13GlxZoomWidgetD1Ev @ 41 NONAME - _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 42 NONAME - _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 43 NONAME - _ZThn8_N13GlxZoomWidgetD0Ev @ 44 NONAME - _ZThn8_N13GlxZoomWidgetD1Ev @ 45 NONAME - _ZN13GlxZoomWidget14modelDestroyedEv @ 46 NONAME + _ZN13GlxZoomWidget13setZoomParamsEv @ 10 NONAME + _ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 11 NONAME + _ZN13GlxZoomWidget14modelDestroyedEv @ 12 NONAME + _ZN13GlxZoomWidget15getFocusedImageEv @ 13 NONAME + _ZN13GlxZoomWidget15setMinMaxZValueEii @ 14 NONAME + _ZN13GlxZoomWidget16animateDoubleTapEv @ 15 NONAME + _ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 16 NONAME + _ZN13GlxZoomWidget16staticMetaObjectE @ 17 NONAME DATA 16 + _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 18 NONAME + _ZN13GlxZoomWidget17sendDecodeRequestEi @ 19 NONAME + _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 20 NONAME + _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 21 NONAME + _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 22 NONAME + _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 23 NONAME + _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 24 NONAME + _ZN13GlxZoomWidget21decodedImageAvailableEv @ 25 NONAME + _ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 26 NONAME + _ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 27 NONAME + _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 28 NONAME + _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 29 NONAME + _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 30 NONAME + _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 31 NONAME + _ZN13GlxZoomWidget7cleanUpEv @ 32 NONAME + _ZN13GlxZoomWidget8activateEv @ 33 NONAME + _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 34 NONAME + _ZN13GlxZoomWidget8stepZoomEv @ 35 NONAME + _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 36 NONAME + _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 37 NONAME + _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 38 NONAME + _ZN13GlxZoomWidgetD0Ev @ 39 NONAME + _ZN13GlxZoomWidgetD1Ev @ 40 NONAME + _ZN13GlxZoomWidgetD2Ev @ 41 NONAME + _ZNK13GlxZoomWidget10metaObjectEv @ 42 NONAME + _ZTI13GlxZoomWidget @ 43 NONAME + _ZTV13GlxZoomWidget @ 44 NONAME + _ZThn16_N13GlxZoomWidgetD0Ev @ 45 NONAME + _ZThn16_N13GlxZoomWidgetD1Ev @ 46 NONAME + _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 47 NONAME + _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 48 NONAME + _ZThn8_N13GlxZoomWidgetD0Ev @ 49 NONAME + _ZThn8_N13GlxZoomWidgetD1Ev @ 50 NONAME diff -r f291796e213d -r fb37077c270f ui/widgets/glxzoomwidget/glxzoomwidget.pro --- a/ui/widgets/glxzoomwidget/glxzoomwidget.pro Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/widgets/glxzoomwidget/glxzoomwidget.pro Wed Aug 18 09:48:53 2010 +0300 @@ -49,6 +49,8 @@ HEADERS += inc/glxzoomwidget.h inc/glxzoomwidget_global.h SOURCES += src/glxzoomwidget.cpp +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + defBlock = \ "$${LITERAL_HASH}if defined(EABI)" \ "DEFFILE ../eabi/glxzoomwidget.def" \ diff -r f291796e213d -r fb37077c270f ui/widgets/glxzoomwidget/inc/glxzoomwidget.h --- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Wed Aug 18 09:48:53 2010 +0300 @@ -33,6 +33,8 @@ const int MAXZVALUE = 100; const int MINZVALUE = 0; +const int NOOFSTEPS = 20; +const float MAXDTZOOMIN = 3.5; class GLXZOOMWIDGETSHARED_EXPORT GlxZoomWidget : public HbScrollArea { @@ -53,11 +55,13 @@ * This is an overloaded function when an index is changes due to deletion */ void indexChanged(); + void forceZoomToBackground(); signals: void pinchGestureReceived(int index); void zoomWidgetMovedBackground(int index); - + void stepZoom(); + public slots: //for Decoder support void decodedImageAvailable(); @@ -66,9 +70,11 @@ //for animation effects void animateZoomIn(QPointF animRefPoint); void animateZoomOut(QPointF animRefPoint); - void animationFrameChanged(int frameNumber); void animationTimeLineFinished(); + //animate double tap + void animateDoubleTap(); + protected: bool sceneEvent(QEvent *event); bool sceneEventFilter(QGraphicsItem *watched,QEvent *event); @@ -94,23 +100,36 @@ void finalizeWidgetTransform(); //get the focused image from the model QPixmap getFocusedImage(); + //set all the zoom parameters as per the circumstances + void setZoomParams(); + bool isFocussedItemCorrupt(); //data members - private: +private: + //to be in sync with the model + QAbstractItemModel *mModel; + + //view Z values + //might push to layouts later + int mMinZValue ; + int mMaxZValue ; + int mTimerId; + + //status flags + //To check if the decode request has already been send or not + bool mImageDecodeRequestSend; + //To check if the pinch gesture is in progress to block any events to HbScrollArea + bool mPinchGestureOngoing; + //to check if decoded image is available + bool mDecodedImageAvailable; + //to check if the widget is actually in Foreground + bool mZoomOngoing; + //view widgets QGraphicsPixmapItem *mZoomItem; //Item containing the pixmap QGraphicsWidget *mZoomWidget; //container :all scaling and transforms would be done on this widget HbIconItem* mBlackBackgroundItem; //for setting black background - //view Z values - //might push to layouts later - - int mMinZValue ; - int mMaxZValue ; - - - //to be in sync with the model - QAbstractItemModel *mModel; int mFocusIndex; //size parameter @@ -129,14 +148,13 @@ //for Decoder support GlxImageDecoderWrapper* mImageDecoder; - //status flags - //To check if the decode request has already been send or not - bool mImageDecodeRequestSend; - //To check if the pinch gesture is in progress to block any events to HbScrollArea - bool mPinchGestureOngoing; - //to check if decoded image is available - bool mDecodedImageAvailable; - int mTimerId; - + //stores the incremental scalingfactor(sf) while performing double tap animation + qreal mIncSF; + //stores the scalingfactor increment applicable for each step of double tap animation + qreal msfInc; + //stores the item size before performing zoomout(zo) + QSizeF mzoSize; + //counter to track the double tap animation steps + int mdoubletapSteps; }; #endif //GLXZOOMWIDGET_H diff -r f291796e213d -r fb37077c270f ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp --- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Tue Jul 06 14:16:16 2010 +0300 +++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Wed Aug 18 09:48:53 2010 +0300 @@ -19,11 +19,17 @@ #include #include #include +#include #include "glximagedecoderwrapper.h" #include "glxmodelparm.h" #include "glxzoomwidget.h" -GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), mModel(NULL), mMinZValue(MINZVALUE), mMaxZValue(MAXZVALUE), mImageDecodeRequestSend(false), mPinchGestureOngoing(false), mDecodedImageAvailable(false), mTimerId(0) +GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), + mModel(NULL), mMinZValue(MINZVALUE), + mMaxZValue(MAXZVALUE), mTimerId(0), + mImageDecodeRequestSend(false), + mPinchGestureOngoing(false), mDecodedImageAvailable(false), + mZoomOngoing(false) { grabGesture(Qt::PinchGesture); grabGesture(Qt::TapGesture); @@ -45,17 +51,18 @@ //initializing the image decoder mImageDecoder = new GlxImageDecoderWrapper; - //inititalizing the timer for animation - m_AnimTimeLine = new QTimeLine(500, this); - m_AnimTimeLine->setFrameRange(0, 100); - connect(m_AnimTimeLine, SIGNAL(frameChanged(int)), this, SLOT(animationFrameChanged(int))); - connect(m_AnimTimeLine, SIGNAL(finished()), this, SLOT(animationTimeLineFinished())); + + //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 ); } GlxZoomWidget::~GlxZoomWidget() { //disconnect all existing signals disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) ); + //AA + disconnect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap())); //no Null checks required delete mZoomItem; // delete mZoomWidget; //as this is a content widegt it will automatically be deleted @@ -83,11 +90,30 @@ mWindowSize = windowSize; mBlackBackgroundItem->setGeometry(QRectF(QPointF(0,0), mWindowSize)); //try to reset the max and min zoomed size here + //In case the zoom widget is in background reset it + if(!mZoomOngoing && mModel) { + retreiveFocusedImage(); + } + setZoomParams(); +} + +void GlxZoomWidget::forceZoomToBackground() +{ + mBlackBackgroundItem->hide(); + //push the widget back to background + setZValue(mMinZValue); + mZoomOngoing = false; + emit zoomWidgetMovedBackground(mFocusIndex); + //this actually resets the ZoomWidget and decoder + if(mImageDecoder) { + mImageDecoder->resetDecoder(); + } + retreiveFocusedImage(); + } void GlxZoomWidget::indexChanged(int index) { - Q_UNUSED(index); if(mFocusIndex != index) { mImageDecoder->resetDecoder();//reset the decoder first to cancel pending tasks mImageDecodeRequestSend = false; @@ -139,7 +165,7 @@ bool GlxZoomWidget::sceneEventFilter(QGraphicsItem *watched,QEvent *event) { - qDebug("GlxCoverFlow::eventFilter " ); + qDebug( "GlxZoomWidget::sceneEventFilter enter event type %d ", event->type() ); bool consume = false; if (event->type() == QEvent::Gesture) { consume = executeGestureEvent(watched, static_cast(event)); @@ -162,17 +188,21 @@ else { killTimer(mTimerId); mTimerId = 0; - animateZoomOut(gesture->position()); + animateZoomOut(hbInstance->allMainWindows().first()->mapToScene(gesture->position().toPoint())); } } event->accept(gesture); return true; } if (QGesture *pinch = event->gesture(Qt::PinchGesture)) { + if (isFocussedItemCorrupt()){ + return true; + } QPinchGesture* pinchG = static_cast(pinch); QPinchGesture::ChangeFlags changeFlags = pinchG->changeFlags(); if (changeFlags & QPinchGesture::ScaleFactorChanged) { mPinchGestureOngoing = true; + mZoomOngoing = true; //bring the zoom widget to foreground setZValue(mMaxZValue); //show the black background @@ -184,7 +214,7 @@ qreal value = pinchG->scaleFactor() / pinchG->lastScaleFactor(); QPointF center = pinchG->property("centerPoint").toPointF(); //set the gesture center to the scene coordinates - QPointF sceneGestureCenter = source->sceneTransform().map(center); + QPointF sceneGestureCenter = hbInstance->allMainWindows().first()->mapToScene(center.toPoint()); zoomImage(value, sceneGestureCenter); } @@ -211,6 +241,7 @@ 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 } @@ -228,6 +259,10 @@ void GlxZoomWidget::zoomImage(qreal zoomFactor, QPointF center) { + // Pinch event filtering for very small zoom factors + if (qAbs(1.0 - zoomFactor) < 0.007) { + return; + } adjustGestureCenter(center, zoomFactor); QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor); limitRequiredSize(requiredSize); @@ -259,6 +294,7 @@ //makes sure that the gesture is on the screen center if the image is smaller than the screen void GlxZoomWidget::adjustGestureCenter(QPointF & gestureCenter, qreal& zoomFactor) { + /* commenting this tweak, not necessary, needs to be reimplemented for pinch: IN progress if(zoomFactor > 1 &&zoomFactor > 1.2 ) { zoomFactor = 1.2; } @@ -266,6 +302,7 @@ if(zoomFactor < 1 &&zoomFactor < 0.8 ) { zoomFactor = 0.8; } + */ QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor); //keep smaller image centered if(mCurrentSize.width() <= mWindowSize.width() ) @@ -279,42 +316,49 @@ } //maintains the boundary of the edges for zoom out conditions - if(zoomFactor < 1) - { + if(zoomFactor < 1) { QPointF itemOriginPos = mZoomWidget->sceneTransform().map(QPointF(0,0)); bool hasWidthExceededWindow = mCurrentSize.width() > mWindowSize.width(); bool hasHeightExceededWindow = mCurrentSize.height() > mWindowSize.height(); - if(itemOriginPos.x() >= 0) { - //image has crossed left boundry leaving blank space - if(hasWidthExceededWindow) { + if(hasWidthExceededWindow) { + bool hasItemCrossedBoundary = false; + if(itemOriginPos.x() >= -5) { + //image has crossed left boundry leaving blank space //stick the gesture to the left corner gestureCenter.setX(itemOriginPos.x()); + hasItemCrossedBoundary = true; + } + + //Check if the right boundry can be adjusted + if(itemOriginPos.x()+ mCurrentSize.width() <= mWindowSize.width()+5) { + //Image is before the right boundry leaving blank space + gestureCenter.setX(itemOriginPos.x()+ mCurrentSize.width() ); + hasItemCrossedBoundary = true; + } + if((mCurrentSize.width() - mWindowSize.width() <= 20) && !hasItemCrossedBoundary) { + gestureCenter.setX(mWindowSize.width()/2 + (qAbs(itemOriginPos.x()) - 10)); } } - //Check if the right boundry can be adjusted - if(itemOriginPos.x()+ mCurrentSize.width() <= mWindowSize.width()) { + + if(hasHeightExceededWindow) { + bool hasItemCrossedBoundary = false; + //check if the upper boundry could be adjusted + if(itemOriginPos.y() >= -5) { + //image has crossed the upper boundry leaving blank space + //stick the image to the upper boundry + gestureCenter.setY(itemOriginPos.y()); + hasItemCrossedBoundary = true; + } + //check if the lower boundry could be adjusted + if(itemOriginPos.y()+ mCurrentSize.height() <= mWindowSize.height()+5) { //Image is before the right boundry leaving blank space - if(hasWidthExceededWindow) { - //stick the gesture to the right corner - gestureCenter.setX(itemOriginPos.x()+ mCurrentSize.width()); - } - } - //check if the upper boundry could be adjusted - if(itemOriginPos.y() >= 0) { - //image has crossed the upper boundry leaving blank space - if(hasHeightExceededWindow) { - //stick the image to the upper boundry - gestureCenter.setY(itemOriginPos.y()); - } - } - //check if the lower boundry could be adjusted - if(itemOriginPos.y()+ mCurrentSize.height() <= mWindowSize.height()) { - //Image is before the right boundry leaving blank space - if(hasHeightExceededWindow) { //stick the image to the right corner gestureCenter.setY(itemOriginPos.y()+ mCurrentSize.height()); + hasItemCrossedBoundary = true; } - + if((mCurrentSize.height() - mWindowSize.height() <= 20) && !hasItemCrossedBoundary) { + gestureCenter.setY(mWindowSize.height()/2 + (qAbs(itemOriginPos.y()) - 10)); + } } } //control the zoom Factor to boundaries @@ -460,48 +504,107 @@ } +void GlxZoomWidget::setZoomParams() +{ + if (mModel) { + QVariant sizeVariant = mModel->data(mModel->index(mFocusIndex,0),GlxDimensionsRole); + QSize fsSize; + if(sizeVariant.isValid() && sizeVariant.canConvert ()) { + fsSize = sizeVariant.toSize(); + if(!(fsSize.width() < mWindowSize.width() && fsSize.height() < mWindowSize.height())) { + fsSize.scale( mWindowSize, Qt::KeepAspectRatio); + } + mMaxScaleSize = fsSize; + mMaxScaleSize.scale(mWindowSize*13, Qt::KeepAspectRatio); + mMaxScaleDecSize = fsSize; + mMaxScaleDecSize.scale(mWindowSize*7, Qt::KeepAspectRatio); + mMinScaleSize = fsSize* 0.7; + mMinDecScaleSize = fsSize; + } + } +} + void GlxZoomWidget::animateZoomIn(QPointF animRefPoint) { - emit pinchGestureReceived(mFocusIndex); - //bring the zoom widget to foreground - setZValue(mMaxZValue); - //show the black background - mBlackBackgroundItem->setParentItem(parentItem()); - mBlackBackgroundItem->setZValue(mMaxZValue - 1); - mBlackBackgroundItem->show(); - m_AnimRefPoint = animRefPoint; + if (isFocussedItemCorrupt()){ + return; + } + emit pinchGestureReceived(mFocusIndex); + //bring the zoom widget to foreground + mZoomOngoing = true; + setZValue(mMaxZValue); + //show the black background + mBlackBackgroundItem->setParentItem(parentItem()); + mBlackBackgroundItem->setZValue(mMaxZValue - 1); + mBlackBackgroundItem->show(); + m_AnimRefPoint = animRefPoint; QSizeF requiredSize = mItemSize; - requiredSize.scale(mWindowSize*3.5, Qt::KeepAspectRatio); + //MAXDTZOOMIN size is set to 3.5 times window size + requiredSize.scale(mWindowSize*MAXDTZOOMIN, Qt::KeepAspectRatio); m_FinalAnimatedScaleFactor = requiredSize.width()/mMinDecScaleSize.width(); - m_AnimTimeLine->setDirection(QTimeLine::Forward); - m_AnimTimeLine->start(); - // zoomImage(5, m_AnimRefPoint); + //initiale variable for double tap animation + mIncSF = 1; + //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor + //SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor] + msfInc = (m_FinalAnimatedScaleFactor-1)/NOOFSTEPS; + //set the no. of steps for double tap animation + mdoubletapSteps = NOOFSTEPS; + animateDoubleTap(); } void GlxZoomWidget::animateZoomOut(QPointF animRefPoint) { - m_AnimRefPoint = animRefPoint; - m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width(); - //m_AnimTimeLine->setDirection(QTimeLine::Backward); - m_AnimTimeLine->start(); + m_AnimRefPoint = animRefPoint; + //Zoom out to FS (mMinDecScaleSize) from the currentsize + m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width(); + //initiale variable for double tap animation + mIncSF = 1; + //calculate the step increment SF for each step + msfInc = (1 - m_FinalAnimatedScaleFactor)/NOOFSTEPS; + //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor + mzoSize = mCurrentSize; + //set the no. of steps for double tap animation + //AA:: the no.of steps are kept the same for zoomin/zoomout, however tweaking them can be considered + mdoubletapSteps = NOOFSTEPS; + animateDoubleTap(); + //AA + } -void GlxZoomWidget::animationFrameChanged(int frameNumber) -{ -qreal scaleFactor = 1; - if(m_FinalAnimatedScaleFactor > 1) { - scaleFactor = (1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width()); - } - if(m_FinalAnimatedScaleFactor < 1) { - scaleFactor = (m_FinalAnimatedScaleFactor+ (((1 - m_FinalAnimatedScaleFactor)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width()); - } + - zoomImage(scaleFactor, m_AnimRefPoint); - -} +void GlxZoomWidget::animateDoubleTap() + { + //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) { + //AA::zoomin case + mIncSF += msfInc; + qreal reqSF = (mItemSize.width()*(mIncSF))/mCurrentSize.width(); + zoomImage(reqSF, m_AnimRefPoint); + } + if(m_FinalAnimatedScaleFactor < 1) { + //AA::zoomout case + mIncSF -= msfInc; + qreal reqSF = (mzoSize.width()* mIncSF)/mCurrentSize.width(); + zoomImage(reqSF, m_AnimRefPoint); + } + //check if all steps are done,if not emit signal to continue the animation + if(mdoubletapSteps >= 1 ){ + mdoubletapSteps -= 1; + emit stepZoom(); + } + else { + //animation is complete, finalize the widget transform using setgeometry + //reset the counter + mdoubletapSteps = 0; + animationTimeLineFinished(); + } + + } void GlxZoomWidget::animationTimeLineFinished() { finalizeWidgetTransform(); @@ -510,6 +613,7 @@ 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 } @@ -524,3 +628,13 @@ mTimerId = 0; } } + +bool GlxZoomWidget::isFocussedItemCorrupt() +{ + QVariant variant = mModel->data( mModel->index( mFocusIndex, 0 ), GlxImageCorruptRole ); + if ( variant.isValid() && variant.canConvert< bool> () ) { + return variant.value< bool > () ; + } + return false ; +} +