--- a/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Fri Jun 25 15:41:33 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Sat Jul 10 00:59:39 2010 +0530
@@ -26,7 +26,9 @@
-lbitmaptransforms.dll \
-liclextjpegapi.dll \
-lfbscli.dll \
- -lefsrv.dll
+ -lefsrv.dll \
+ -lapmime.dll \
+ -lapgrfx.dll
DEFINES += BUILD_IMAGEWRAPPER
symbian: {
--- a/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h Fri Jun 25 15:41:33 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h Sat Jul 10 00:59:39 2010 +0530
@@ -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 */
--- a/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -22,7 +22,10 @@
#include <imageconversion.h>
#include <IclExtJpegApi.h> // For CExtJpegDecoder
#include <e32math.h>
+#include <apgcli.h>
+_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<const TUint16*>(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;
}
Binary file data/Image1.jpg has changed
Binary file data/Image10.jpg has changed
Binary file data/Image2.jpg has changed
Binary file data/Image3.jpg has changed
Binary file data/Image4.jpg has changed
Binary file data/Image5.jpg has changed
Binary file data/Image6.jpg has changed
Binary file data/Image7.jpg has changed
Binary file data/Image8.jpg has changed
Binary file data/Image9.jpg has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_01.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="31.0244" x2="45.8306" y1="36.7227" y2="55.3954">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M49.066,92.209c-0.734-0.018-1.471-0.054-2.21-0.11C20.651,90.1,4.409,66.111,8.396,42.862 C12.127,21.109,31.881,6.136,53.473,7.938l6.025,8.117l0.012,0.015l-7.753,6.495c-13.86-0.899-26.446,8.794-28.846,22.786 c-1.638,9.548,1.86,18.785,8.492,24.889c1.375,1.267,2.884,2.398,4.509,3.37l-3.303-4.681 c-6.456-5.939-9.425-14.643-7.942-23.278c2.519-14.691,15.966-22.518,27.688-21.263l9.613-8.079l-7.443-10.07 c-14.727-1.88-42.864,7.068-47.882,36.321C2.276,68.019,20.77,91.9,46.721,93.873c1.105,0.085,2.226,0.127,3.331,0.128 c0.002,0,0.001,0,0.001,0C50.052,94.001,49.066,92.209,49.066,92.209z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="54.7412" x2="79.3552" y1="80.5283" y2="36.5402">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M88.84,29.224L73.699,39.93c0.186,0.771,3.012,6.423,1.643,14.419 C71.867,74.59,47.481,82.635,32.608,68.93l3.303,4.681c16.92,10.111,37.975-0.261,41.186-18.962 c0.838-4.892,0.326-9.702-1.26-14.051l12.305-8.699c3.609,7.589,4.998,16.325,3.467,25.238 C88.025,78.036,69.65,92.691,49.066,92.209l0.986,1.792c0.002,0,0.001,0,0.001,0c21.463,0,39.68-15.378,43.313-36.563 C96.115,41.412,89.033,29.667,88.84,29.224z" fill="url(#SVGID_2_)"/>
+<path d="M35.912,73.61c-7.832-4.683-15.273-15.019-13.001-28.259c2.4-13.992,14.986-23.686,28.846-22.786 l7.753-6.495l-0.012-0.015l-6.025-8.117C31.881,6.136,12.127,21.109,8.396,42.862C4.174,67.484,22.452,91.579,49.066,92.209 L35.912,73.61z" fill="#FFFFFF"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="60.0684" x2="71.0321" y1="79.623" y2="38.4858">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M88.143,31.898l-12.305,8.699C84.586,64.586,58.42,87.061,35.912,73.61l13.154,18.599 C80.602,92.947,101.572,60.12,88.143,31.898z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_02.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.809 0.5878 -0.5878 0.809 -184.5148 125.3866)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="126.4404" x2="141.2466" y1="-212.1113" y2="-193.4386">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M24.435,83.599c-0.584-0.446-1.159-0.908-1.724-1.389C2.687,65.19,3.646,36.237,20.538,19.771 C36.342,4.366,61.125,3.863,77.533,18.012l0.104,10.109v0.019l-10.09,0.697c-10.684-8.875-26.564-8.43-36.73,1.479 c-6.938,6.761-9.537,16.29-7.759,25.126c0.368,1.833,0.923,3.637,1.667,5.377l0.078-5.728c-1.731-8.6,0.982-17.386,7.257-23.501 c10.673-10.405,26.152-8.833,34.896-0.928l12.527-0.885l-0.102-12.521C68.572,7.079,40.549-2.221,19.295,18.496 C0.8,36.525,1.724,66.716,21.559,83.566c0.844,0.718,1.727,1.411,2.62,2.062c0.001,0.001,0.001,0,0.001,0 C24.179,85.628,24.435,83.599,24.435,83.599z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.809 0.5878 -0.5878 0.809 -184.5148 125.3866)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="150.1572" x2="174.7711" y1="-168.3066" y2="-212.2946">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M93.635,56.021l-18.541-0.237c-0.305,0.73-1.34,6.966-7.146,12.63 c-14.709,14.333-39.167,6.507-43.144-13.322l-0.078,5.728c7.746,18.127,30.875,22.111,44.464,8.869 c3.553-3.466,5.967-7.658,7.24-12.107l15.068,0.193c-1.539,8.262-5.553,16.146-12.029,22.457 c-15.184,14.801-38.663,15.857-55.034,3.367l-0.256,2.029c0.001,0.001,0.001,0,0.001,0c17.364,12.615,41.14,10.882,56.531-4.121 C92.355,70.158,93.531,56.493,93.635,56.021z" fill="url(#SVGID_2_)"/>
+<path d="M24.725,60.819c-3.584-8.391-3.528-21.127,6.092-30.503c10.166-9.909,26.046-10.354,36.73-1.479 l10.09-0.697v-0.019l-0.104-10.109C61.125,3.863,36.342,4.366,20.538,19.771C2.649,37.209,3.274,67.445,24.435,83.599 L24.725,60.819z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.809 0.5878 -0.5878 0.809 -184.5148 125.3866)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="155.4834" x2="166.4473" y1="-169.21" y2="-210.3475">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M91.498,57.774L76.43,57.581c-7.021,24.548-41.4,27.352-51.705,3.238l-0.29,22.779 C49.514,102.731,85.773,88.5,91.498,57.774z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_03.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.309 0.9511 -0.9511 0.309 -338.8947 140.6591)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="14.979" x2="29.785" y1="-411.1528" y2="-392.4803">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M9.569,62.154c-0.21-0.703-0.403-1.416-0.579-2.137C2.794,34.479,20.589,11.619,43.933,8.227 c21.842-3.174,42.187,10.986,47.145,32.078l-5.858,8.239l-0.011,0.016l-8.573-5.367C73.208,29.733,60.099,20.759,46.05,22.8 c-9.587,1.393-17.291,7.573-21.046,15.767c-0.78,1.699-1.39,3.484-1.812,5.331l3.43-4.589 c3.654-7.975,11.014-13.488,19.685-14.747c14.75-2.144,26.35,8.227,28.778,19.762l10.655,6.647l7.276-10.19 C90.254,26.192,73.049,2.197,43.677,6.465C18.116,10.18,1.118,35.147,7.261,60.438c0.261,1.077,0.568,2.155,0.908,3.207 c0,0.003,0,0.001,0,0.001C8.169,63.646,9.569,62.154,9.569,62.154z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.309 0.9511 -0.9511 0.309 -338.8947 140.6591)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="38.6948" x2="63.3091" y1="-367.3481" y2="-411.3369">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M81.763,80.52L66.901,69.428c-0.676,0.413-5.178,4.85-13.205,6.019 c-20.325,2.949-35.511-17.758-27.074-36.138l-3.43,4.589c-4.388,19.216,11.982,36.035,30.76,33.31 c4.912-0.715,9.328-2.688,12.975-5.539l12.075,9.014c-6.101,5.779-13.98,9.799-22.931,11.098 c-20.984,3.049-40.6-9.897-46.502-29.625l-1.4,1.491c0,0.003,0,0.001,0,0.001c6.632,20.412,26.887,32.985,48.158,29.895 C72.419,91.205,81.4,80.84,81.763,80.52z" fill="url(#SVGID_2_)"/>
+<path d="M23.192,43.897C25.225,35.002,32.756,24.73,46.05,22.8c14.048-2.041,27.158,6.934,30.584,20.393 l8.573,5.367l0.011-0.016l5.858-8.239C86.119,19.213,65.774,5.053,43.933,8.227C19.211,11.819,1.943,36.648,9.569,62.154 L23.192,43.897z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.309 0.9511 -0.9511 0.309 -338.8947 140.6591)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="44.0215" x2="54.9851" y1="-368.2529" y2="-409.3896">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M79.002,80.682l-12.075-9.014C46.816,87.4,17.356,69.461,23.192,43.897L9.569,62.154 C18.612,92.375,56.312,102.174,79.002,80.682z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_04.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.309 0.9511 -0.9511 -0.309 -411.8564 82.0563)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-192.1846" x2="-177.3785" y1="-442.623" y2="-423.9505">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M10.146,36.068c0.243-0.693,0.506-1.382,0.788-2.068c9.999-24.304,37.832-32.338,58.71-21.362 C89.18,22.909,97.316,46.323,88.93,66.301l-9.582,3.222l-0.018,0.007l-3.781-9.382c5.139-12.902-0.191-27.868-12.756-34.475 c-8.574-4.509-18.44-4.036-26.294,0.385c-1.629,0.916-3.173,2.002-4.599,3.248l5.472-1.696c7.644-4.304,16.839-4.438,24.593-0.36 c13.193,6.936,16.482,22.143,11.666,32.902l4.713,11.642l11.877-3.968c6.34-13.426,6.523-42.951-19.748-56.763 C47.612-0.957,19.184,9.252,9.288,33.323c-0.422,1.025-0.808,2.078-1.15,3.128c-0.001,0.002,0,0.001,0,0.001 C8.138,36.452,10.146,36.068,10.146,36.068z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.309 0.9511 -0.9511 -0.309 -411.8564 82.0563)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-168.4673" x2="-143.8531" y1="-398.8184" y2="-442.8069">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M57.758,93.36l-5.504-17.708c-0.789-0.063-7.04,0.88-14.221-2.894 C19.856,63.198,19.742,37.52,37.372,27.61l-5.472,1.696c-14.845,12.967-11.487,36.196,5.307,45.029 c4.394,2.309,9.126,3.309,13.751,3.145l4.472,14.389c-8.333,1.09-17.07-0.289-25.075-4.5 c-18.769-9.866-27.029-31.871-20.208-51.3l-2.009,0.383c-0.001,0.002,0,0.001,0,0.001c-6.632,20.412,2.364,42.489,21.389,52.491 C43.917,96.513,57.275,93.407,57.758,93.36z" fill="url(#SVGID_2_)"/>
+<path d="M31.899,29.306c6.874-6.002,19.003-9.885,30.894-3.633c12.564,6.606,17.895,21.572,12.756,34.475 l3.781,9.382l0.018-0.007l9.582-3.222c8.387-19.978,0.25-43.392-19.285-53.663c-22.111-11.624-50.675-1.687-59.498,23.43 L31.899,29.306z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.309 0.9511 -0.9511 -0.309 -411.8564 82.0563)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-163.1406" x2="-152.1769" y1="-399.7231" y2="-440.8601">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M55.43,91.868l-4.472-14.389c-25.517,0.906-38.806-30.923-19.058-48.174l-21.753,6.763 C-0.301,65.833,24.439,95.919,55.43,91.868z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_05.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.809 0.5878 -0.5878 -0.809 -364.1781 15.2496)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-333.6265" x2="-318.8204" y1="-284.8394" y2="-266.1668">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M25.946,15.304c0.604-0.418,1.222-0.821,1.853-1.21c22.375-13.786,49.615-3.926,60.055,17.228 c9.768,19.791,2.588,43.517-15.939,54.75l-9.646-3.026L62.25,83.04l2.455-9.813c11.74-7.419,16.225-22.659,9.943-35.39 c-4.287-8.687-12.547-14.104-21.498-15.145c-1.857-0.216-3.744-0.245-5.63-0.075l5.423,1.845 c8.715,1.011,16.232,6.307,20.107,14.164c6.598,13.366,0.32,27.603-9.9,33.476l-3.029,12.189l11.939,3.771 c13.021-7.136,30.525-30.914,17.389-57.529C78.02,7.371,49.02-1.079,26.865,12.577c-0.944,0.582-1.875,1.207-2.769,1.855 c-0.002,0.001-0.002,0.002-0.002,0.002C24.096,14.433,25.946,15.304,25.946,15.304z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.809 0.5878 -0.5878 -0.809 -364.1781 15.2496)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-309.9097" x2="-285.2954" y1="-241.0337" y2="-285.0222">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M30.789,89.639l5.956-17.561c-0.6-0.516-6.211-3.427-9.803-10.7 c-9.086-18.419,5.915-39.26,26.002-36.915l-5.423-1.845C27.888,24.384,16.951,45.15,25.346,62.167 c2.198,4.45,5.438,8.041,9.277,10.627l-4.84,14.27c-7.381-4.017-13.639-10.268-17.64-18.379 C2.757,49.671,9.008,27.014,25.946,15.304l-1.85-0.871c-0.002,0.001-0.002,0.002-0.002,0.002 C6.731,27.05,1.033,50.197,10.545,69.472C17.74,84.054,30.372,89.394,30.789,89.639z" fill="url(#SVGID_2_)"/>
+<path d="M47.52,22.618c9.089-0.815,21.185,3.173,27.128,15.22c6.281,12.73,1.797,27.971-9.943,35.39L62.25,83.04 l0.018,0.005l9.646,3.026c18.527-11.233,25.707-34.959,15.939-54.75C76.797,8.92,47.847,0.17,25.946,15.304L47.52,22.618z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.809 0.5878 -0.5878 -0.809 -364.1781 15.2496)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-304.5845" x2="-293.6208" y1="-241.939" y2="-283.0757">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M29.782,87.063l4.84-14.27C13.447,58.528,21.404,24.968,47.52,22.618l-21.574-7.314 C0,33.242,2.33,72.125,29.782,87.063z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_06.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100" x="0" y="0"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -490.8594 -341.2744)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-559.835" x2="-545.0289" y1="-404.5513" y2="-385.8788">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M50.935,7.792c0.733,0.017,1.471,0.054,2.209,0.11C79.35,9.901,95.592,33.888,91.605,57.139 c-3.732,21.752-23.486,36.727-45.079,34.924l-6.024-8.117L40.49,83.93l7.754-6.496c13.86,0.9,26.446-8.793,28.846-22.785 c1.639-9.547-1.859-18.784-8.49-24.889c-1.375-1.265-2.885-2.398-4.51-3.37l3.303,4.681c6.455,5.939,9.426,14.643,7.941,23.277 c-2.518,14.691-15.967,22.52-27.686,21.264l-9.615,8.08l7.443,10.068c14.727,1.881,42.866-7.066,47.883-36.32 C97.725,31.981,79.232,8.101,53.281,6.126C52.174,6.042,51.055,6.001,49.951,6c-0.003-0.001-0.003,0-0.003,0 C49.951,6,50.935,7.792,50.935,7.792z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -490.8594 -341.2744)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-536.1182" x2="-511.5043" y1="-360.7461" y2="-404.7341">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M11.16,70.775L26.3,60.07c-0.183-0.77-3.012-6.424-1.643-14.419 C28.134,25.41,52.52,17.366,67.393,31.071L64.09,26.39c-16.921-10.111-37.976,0.26-41.186,18.962 c-0.838,4.892-0.327,9.701,1.258,14.05l-12.303,8.699C8.249,60.514,6.86,51.777,8.39,42.864 C11.973,21.965,30.349,7.31,50.935,7.792L49.951,6c-0.003-0.001-0.003,0-0.003,0C28.486,6,10.269,21.377,6.636,42.563 C3.885,58.588,10.966,70.332,11.16,70.775z" fill="url(#SVGID_2_)"/>
+<path d="M64.09,26.39c7.832,4.682,15.271,15.019,13,28.258c-2.4,13.992-14.986,23.686-28.846,22.785L40.49,83.93 l0.013,0.016l6.024,8.117c21.592,1.803,41.346-13.172,45.079-34.924c4.221-24.622-14.057-48.718-40.67-49.347L64.09,26.39z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -490.8594 -341.2744)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-530.7939" x2="-519.8303" y1="-361.6519" y2="-402.7888">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M11.859,68.102l12.303-8.699C15.416,35.414,41.579,12.94,64.09,26.39L50.935,7.792 C19.399,7.053-1.57,39.88,11.859,68.102z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_07.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.809 -0.5878 0.5878 -0.809 -300.0517 -676.9433)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-729.4595" x2="-714.6534" y1="-395.6313" y2="-376.9588">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M75.565,16.402c0.584,0.444,1.158,0.907,1.724,1.388c20.025,17.021,19.064,45.973,2.174,62.44 c-15.805,15.404-40.588,15.908-56.997,1.757l-0.103-10.108l-0.001-0.02l10.091-0.697c10.685,8.875,26.564,8.43,36.73-1.479 c6.937-6.762,9.536-16.291,7.76-25.126c-0.368-1.831-0.924-3.636-1.668-5.377l-0.078,5.729 c1.731,8.599-0.982,17.386-7.258,23.499c-10.673,10.406-26.153,8.833-34.896,0.928l-12.528,0.887l0.104,12.521 c10.81,10.177,38.833,19.478,60.087-1.24c18.496-18.029,17.571-48.22-2.263-65.07c-0.846-0.719-1.728-1.41-2.62-2.06 c-0.002-0.003-0.003-0.001-0.003-0.001C75.822,14.374,75.565,16.402,75.565,16.402z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.809 -0.5878 0.5878 -0.809 -300.0517 -676.9433)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-705.7446" x2="-681.1305" y1="-351.8281" y2="-395.8166">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M6.365,43.979l18.541,0.238c0.306-0.73,1.34-6.967,7.147-12.631 c14.71-14.333,39.166-6.506,43.144,13.323l0.078-5.729c-7.746-18.126-30.876-22.111-44.465-8.868 c-3.554,3.466-5.968,7.656-7.241,12.106L8.503,42.225c1.539-8.261,5.551-16.144,12.028-22.456 C35.714,4.967,59.194,3.912,75.565,16.402l0.257-2.028c-0.002-0.003-0.003-0.001-0.003-0.001 C58.457,1.758,34.681,3.49,19.289,18.494C7.645,29.842,6.469,43.506,6.365,43.979z" fill="url(#SVGID_2_)"/>
+<path d="M75.275,39.181c3.584,8.392,3.528,21.126-6.092,30.503c-10.166,9.908-26.046,10.354-36.73,1.479 l-10.091,0.697l0.001,0.02l0.103,10.108c16.409,14.151,41.192,13.647,56.997-1.757c17.888-17.439,17.264-47.677-3.897-63.828 L75.275,39.181z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.809 -0.5878 0.5878 -0.809 -300.0517 -676.9433)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-700.416" x2="-689.4524" y1="-352.731" y2="-393.8676">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M8.503,42.225l15.066,0.194c7.024-24.548,41.4-27.352,51.706-3.238l0.29-22.778 C50.486-2.732,14.228,11.5,8.503,42.225z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_08.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.309 -0.9511 0.9511 -0.309 123.9503 -812.8466)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-816.7397" x2="-801.9335" y1="-350.2422" y2="-331.5694">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M90.432,37.846c0.211,0.703,0.403,1.415,0.578,2.137c6.196,25.54-11.599,48.398-34.942,51.793 C34.227,94.948,13.88,80.788,8.923,59.695l5.858-8.238l0.011-0.018l8.573,5.367c3.428,13.461,16.536,22.436,30.585,20.395 c9.586-1.394,17.29-7.574,21.047-15.768c0.778-1.697,1.389-3.483,1.811-5.33l-3.43,4.589 c-3.654,7.976-11.015,13.487-19.686,14.745c-14.75,2.146-26.35-8.227-28.776-19.76L14.259,49.03l-7.275,10.19 c2.763,14.588,19.968,38.584,49.34,34.314c25.562-3.714,42.559-28.682,36.417-53.973c-0.262-1.078-0.569-2.156-0.909-3.206 c0-0.004-0.002-0.003-0.002-0.003C91.831,36.356,90.432,37.846,90.432,37.846z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.309 -0.9511 0.9511 -0.309 123.9503 -812.8466)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-793.0225" x2="-768.4084" y1="-306.437" y2="-350.4253">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M18.238,19.48l14.859,11.091c0.677-0.411,5.18-4.849,13.207-6.017 c20.325-2.949,35.51,17.758,27.073,36.138l3.43-4.589c4.388-19.217-11.982-36.036-30.761-33.31 c-4.911,0.715-9.328,2.686-12.974,5.537l-12.075-9.013c6.101-5.778,13.98-9.798,22.931-11.097 c20.983-3.051,40.6,9.896,46.503,29.624l1.399-1.489c0-0.004-0.002-0.003-0.002-0.003C85.198,15.942,64.944,3.368,43.673,6.46 C27.583,8.796,18.6,19.159,18.238,19.48z" fill="url(#SVGID_2_)"/>
+<path d="M76.808,56.104C74.774,65,67.244,75.27,53.95,77.201c-14.049,2.041-27.157-6.934-30.585-20.395 l-8.573-5.367l-0.011,0.018l-5.858,8.238c4.957,21.093,25.304,35.253,47.145,32.08c24.722-3.594,41.989-28.424,34.364-53.93 L76.808,56.104z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.309 -0.9511 0.9511 -0.309 123.9503 -812.8466)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-787.6963" x2="-776.7325" y1="-307.3418" y2="-348.4791">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M20.998,19.318l12.075,9.013c20.111-15.73,49.57,2.207,43.734,27.772l13.624-18.258 C81.389,7.625,43.689-2.173,20.998,19.318z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_09.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.309 -0.9511 0.9511 0.309 609.3144 -653.2726)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-860.6665" x2="-845.8603" y1="-327.8945" y2="-309.2218">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M89.854,63.933c-0.242,0.691-0.506,1.381-0.788,2.067c-9.999,24.304-37.832,32.339-58.712,21.362 C10.82,77.091,2.682,53.677,11.07,33.698l9.581-3.221l0.019-0.007l3.781,9.381c-5.138,12.904,0.191,27.87,12.757,34.476 c8.574,4.508,18.439,4.035,26.295-0.385c1.628-0.916,3.171-2.002,4.598-3.248l-5.472,1.697 c-7.645,4.303-16.839,4.438-24.593,0.357C24.842,65.815,21.554,50.606,26.37,39.848l-4.715-11.642L9.779,32.175 C3.44,45.6,3.255,75.126,29.526,88.937c22.863,12.021,51.29,1.813,61.187-22.26c0.422-1.025,0.807-2.078,1.149-3.127 c0.002-0.004,0-0.004,0-0.004C91.862,63.55,89.854,63.933,89.854,63.933z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.309 -0.9511 0.9511 0.309 609.3144 -653.2726)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-836.9487" x2="-812.3344" y1="-284.0884" y2="-328.0771">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M42.243,6.64l5.503,17.707c0.789,0.065,7.04-0.878,14.222,2.895 c18.177,9.561,18.29,35.238,0.661,45.15l5.472-1.697c14.846-12.968,11.487-36.197-5.307-45.029 c-4.394-2.308-9.126-3.31-13.751-3.146L44.571,8.131c8.332-1.089,17.069,0.291,25.074,4.5 c18.77,9.866,27.028,31.871,20.209,51.301l2.008-0.383c0.002-0.004,0-0.004,0-0.004c6.633-20.411-2.362-42.488-21.389-52.49 C56.084,3.488,42.725,6.592,42.243,6.64z" fill="url(#SVGID_2_)"/>
+<path d="M68.101,70.694c-6.874,6.002-19.003,9.885-30.893,3.633c-12.565-6.606-17.895-21.572-12.757-34.476 L20.67,30.47l-0.019,0.007l-9.581,3.221c-8.389,19.979-0.25,43.393,19.284,53.664c22.112,11.623,50.677,1.686,59.5-23.43 L68.101,70.694z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.309 -0.9511 0.9511 0.309 609.3144 -653.2726)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-831.6211" x2="-820.6572" y1="-284.9922" y2="-326.1298">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M44.571,8.131l4.472,14.389c25.517-0.905,38.806,30.922,19.058,48.174l21.754-6.762 C100.302,34.167,75.562,4.082,44.571,8.131z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_10.svg Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.809 -0.5878 0.5878 0.809 976.0805 -216.836)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-925.0332" x2="-910.2272" y1="-341.7402" y2="-323.0677">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M74.054,84.697c-0.604,0.418-1.222,0.82-1.854,1.21C49.825,99.692,22.586,89.832,12.145,68.68 C2.379,48.888,9.558,25.161,28.087,13.929l9.645,3.026l0.02,0.005l-2.455,9.813c-11.741,7.419-16.228,22.659-9.944,35.39 c4.287,8.687,12.546,14.104,21.499,15.145c1.855,0.216,3.742,0.244,5.629,0.075l-5.424-1.844 c-8.715-1.012-16.231-6.308-20.106-14.165c-6.599-13.366-0.319-27.604,9.9-33.476l3.028-12.189l-11.939-3.771 C14.918,19.073-2.587,42.851,10.55,69.467c11.432,23.162,40.43,31.613,62.585,17.956c0.944-0.583,1.874-1.208,2.768-1.855 c0.004-0.001,0.003-0.003,0.003-0.003C75.902,85.567,74.054,84.697,74.054,84.697z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.809 -0.5878 0.5878 0.809 976.0805 -216.836)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-901.3149" x2="-876.7007" y1="-297.9341" y2="-341.9226">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M69.21,10.361l-5.955,17.56c0.6,0.517,6.211,3.429,9.804,10.702 c9.085,18.419-5.915,39.259-26.003,36.915l5.424,1.844c19.633-1.766,30.569-22.532,22.174-39.549 c-2.198-4.449-5.438-8.042-9.275-10.627l4.84-14.27c7.381,4.016,13.638,10.269,17.64,18.379 c9.387,19.014,3.134,41.671-13.804,53.382l1.849,0.87c0.004-0.001,0.003-0.003,0.003-0.003 c17.362-12.613,23.063-35.762,13.549-55.037C82.26,15.947,69.628,10.606,69.21,10.361z" fill="url(#SVGID_2_)"/>
+<path d="M52.479,77.382c-9.089,0.814-21.184-3.174-27.128-15.22c-6.283-12.73-1.797-27.971,9.944-35.39 l2.455-9.813l-0.02-0.005l-9.645-3.026C9.558,25.161,2.379,48.888,12.145,68.68c11.058,22.4,40.008,31.15,61.909,16.018 L52.479,77.382z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.809 -0.5878 0.5878 0.809 976.0805 -216.836)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-895.9897" x2="-885.0259" y1="-298.8389" y2="-339.9761">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M70.218,12.937l-4.84,14.27c21.175,14.266,13.219,47.825-12.898,50.176l21.574,7.315 C100.001,66.757,97.67,27.876,70.218,12.937z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- a/data/photos.css Fri Jun 25 15:41:33 2010 +0530
+++ b/data/photos.css Sat Jul 10 00:59:39 2010 +0530
@@ -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);
-}
--- a/inc/glxlocalisationstrings.h Fri Jun 25 15:41:33 2010 +0530
+++ b/inc/glxlocalisationstrings.h Sat Jul 10 00:59:39 2010 +0530
@@ -92,6 +92,7 @@
#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")
+#define GLX_ALBUM_SELECTION_TITLE QString("Select Album")
//VIEW RELATED STRINGS AND COMMON DIALOGS
//comments lable for photos flip view
@@ -111,6 +112,8 @@
#define GLX_BUTTON_HIDE hbTrId("txt_common_button_hide")
+#define GLX_BUTTON_NEW QString("New")
+
#define GLX_LABEL_TRANSITION_EFFECT hbTrId("txt_photos_setlabel_transistion_effect")
#define GLX_VAL_SMOOTH_FADE hbTrId("txt_photos_setlabel_transistion_effect_val_smooth")
@@ -118,5 +121,15 @@
#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_NOIMAGE_PLAY_SLIDESHOW hbTrId( "txt_photos_info_no_images_to_play_slideshow" )
+#define GLX_REFRESHING QString("Refreshing")
+
+//Full Screen Menu
+#define GLX_MENU_USE_IMAGE QString("Use Image")
+#define GLX_MENU_SET_WALLPAPER QString("Wallpaper")
+#define GLX_MENU_ROTATE QString("Rotate")
+#define GLX_MENU_90_CW QString("90 CW")
+#define GLX_MENU_90_CCW QString("90 CCW")
+#define GLX_MENU_CROP QString("Crop")
#endif /* GLXLOCALISATIONSTRINGS_H_ */
--- a/main/glxaiwservicehandler.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/main/glxaiwservicehandler.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -238,6 +238,7 @@
mFSView = GlxViewsFactory::createView(GLX_FULLSCREENVIEW_ID, this);
//ownership transfered to view
mFSView->setToolBar(toolBar);
+ mView->deActivate();
mFSView->activate();
mFSView->setModel(mModel);
addView(mFSView);
--- a/photos.qrc Fri Jun 25 15:41:33 2010 +0530
+++ b/photos.qrc Sat Jul 10 00:59:39 2010 +0530
@@ -27,16 +27,16 @@
<file>data/listview.docml</file>
<file>data/fullscreen.docml</file>
<file>data/slideshow.docml</file>
- <file>data/detailsview.docml</file>
- <file>data/Image1.jpg</file>
- <file>data/Image2.jpg</file>
- <file>data/Image3.jpg</file>
- <file>data/Image4.jpg</file>
- <file>data/Image5.jpg</file>
- <file>data/Image6.jpg</file>
- <file>data/Image7.jpg</file>
- <file>data/Image8.jpg</file>
- <file>data/Image9.jpg</file>
- <file>data/Image10.jpg</file>
+ <file>data/detailsview.docml</file>
+ <file>data/Wait/qgn_graf_ring_wait_01.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_02.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_03.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_04.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_05.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_06.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_07.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_08.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_09.svg</file>
+ <file>data/Wait/qgn_graf_ring_wait_10.svg</file>
</qresource>
</RCC>
--- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Sat Jul 10 00:59:39 2010 +0530
@@ -1,81 +1,76 @@
EXPORTS
- ?doHandleUserAction@GlxCommandHandlerRotateImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 1 NONAME ; void GlxCommandHandlerRotateImage::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) 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<class QModelIndex>) 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<class QModelIndex>) 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<class QModelIndex>)
- ??_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<class QModelIndex>) 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<class QModelIndex>)
+ ?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<class QModelIndex>) 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)
--- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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);
--- a/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Sat Jul 10 00:59:39 2010 +0530
@@ -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
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h Sat Jul 10 00:59:39 2010 +0530
@@ -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;
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h Fri Jun 25 15:41:33 2010 +0530
+++ /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 <xqappmgr.h> // 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<QModelIndex> indexList) const ;
-
-private:
- mutable XQAiwRequest* mReq;
- mutable XQApplicationManager mAppmgr;
-};
-
-
-#endif /* GLXCOMMANDHANDLERCROPIMAGE_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef GlxCommandHandlerEditImage_H_
+#define GlxCommandHandlerEditImage_H_
+
+
+#include <glxmodelcommandhandler.h>
+#include <xqappmgr.h> // 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
+{
+
+public:
+ GlxCommandHandlerEditImage();
+ ~GlxCommandHandlerEditImage();
+ void executeCommand(int commandId,int collectionId, QList<QModelIndex> indexList = QList<QModelIndex>() );
+ void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const ;
+
+private:
+ XQAiwRequest* mReq;
+ XQApplicationManager mAppmgr;
+};
+
+
+#endif /* GlxCommandHandlerEditImage_H_ */
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h Sat Jul 10 00:59:39 2010 +0530
@@ -36,7 +36,7 @@
GlxCommandHandlerNewMedia();
~GlxCommandHandlerNewMedia();
- TInt ExecuteLD(TGlxMediaId& aNewMediaId);
+ TInt ExecuteLD(TGlxMediaId& aNewMediaId,QString& aTitle);
private:
QString CompletionTextL() const;
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h Fri Jun 25 15:41:33 2010 +0530
+++ /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 <glxmodelcommandhandler.h>
-#include <xqappmgr.h> // 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<QModelIndex> indexList = QList<QModelIndex>() );
- void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const ;
-
-private:
- XQAiwRequest* mReq;
- XQApplicationManager mAppmgr;
-};
-
-
-#endif /* GLXCOMMANDHANDLERROTATEIMAGE_H_ */
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -35,7 +35,8 @@
#include <hbview.h>
#include <hbpushbutton.h>
#include <QGraphicsGridLayout>
-#include <hbdialog.h>
+#include <hbselectiondialog.h>
+
#include <hbmessagebox.h>
#include <glxcommandhandlers.hrh>
@@ -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<HbDialog*>(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_SUBTITLE_MYFAV_GRIDVIEW;
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,15 @@
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"));
error = KErrNone;
- error = commandHandlerNewMedia->ExecuteLD(newMediaId);
+ error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle);
}
if (error == KErrNone)
@@ -282,6 +257,7 @@
delete mTargetContainers;
mTargetContainers = NULL;
mTargetContainers = path;
+ mAlbumName = newTitle;
mNewMediaAdded = true;
}
OstTraceFunctionExit0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATENEWMEDIA_EXIT );
@@ -289,10 +265,13 @@
QString GlxCommandHandlerAddToContainer::CompletionTextL() const
{
- return QString();
+ if(!mAlbumName.isNull()){
+ return QString("Added to %1").arg(mAlbumName);
+ }
+ return QString();
}
QString GlxCommandHandlerAddToContainer::ProgressTextL() const
{
- return QString("Adding album...");
+ return QString("Adding Images...");
}
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp Fri Jun 25 15:41:33 2010 +0530
+++ /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 <glxcommandfactory.h>
-#include <photoeditor_highway.hrh>
-#include <glxcommandhandlers.hrh>
-#include <XQServiceRequest.h>
-#include <XQAiwRequest.h>
-#include <glxmodelparm.h>
-#include <glxmediamodel.h>
-
-
-GlxCommandHandlerCropImage::GlxCommandHandlerCropImage() : mReq(NULL)
- {
- //Nothing to do here for now
- }
-
-GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage()
- {
- delete mReq;
- mReq = NULL;
- }
-
-void GlxCommandHandlerCropImage::doHandleUserAction(GlxMediaModel* model,
- QList<QModelIndex> /*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<int>(),0),GlxUriRole)).value<QString>();
-
- QList<QVariant> 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");
- }
-
- }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 <glxcommandfactory.h>
+#include <photoeditor_highway.hrh>
+#include "glxcommandhandlereditimage.h"
+#include <glxcommandhandlers.hrh>
+#include <glxmodelparm.h>
+#include <glxmediamodel.h>
+#include <XQServiceRequest.h>
+#include <XQAiwRequest.h>
+
+GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() : mReq(NULL)
+ {
+ //Nothing to do here
+ }
+
+GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage()
+ {
+ delete mReq;
+ mReq = NULL;
+ }
+
+void GlxCommandHandlerEditImage::executeCommand(int commandId,int collectionId, QList<QModelIndex> /*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(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<int>(),0),GlxUriRole)).value<QString>();
+ delete mediaModel;
+
+ QList<QVariant> args;
+ args << imagePath;
+ 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);
+
+ // Send the request
+ bool res = mReq->send();
+ if (!res)
+ {
+ // Request failed.
+ qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send");
+ }
+ }
+
+void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/,QList<QModelIndex> /*indexList*/) const
+ {
+ //Dummy, to keepup with compiler errore
+ }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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());
}
}
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp Fri Jun 25 15:41:33 2010 +0530
+++ /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 <glxcommandfactory.h>
-#include <photoeditor_highway.hrh>
-#include "glxcommandhandlerrotateimage.h"
-#include <glxcommandhandlers.hrh>
-#include <glxmodelparm.h>
-#include <glxmediamodel.h>
-#include <XQServiceRequest.h>
-#include <XQAiwRequest.h>
-
-GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage() : mReq(NULL)
- {
- //Nothing to do here
- }
-
-GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage()
- {
- delete mReq;
- mReq = NULL;
- }
-
-void GlxCommandHandlerRotateImage::executeCommand(int commandId,int collectionId, QList<QModelIndex> /*indexList*/)
-//void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> 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<int>(),0),GlxUriRole)).value<QString>();
- delete mediaModel;
-
- QList<QVariant> 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<QModelIndex> /*indexList*/) const
- {
- //Dummy, to keepup with compiler errore
- }
--- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Sat Jul 10 00:59:39 2010 +0530
@@ -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
--- a/ui/inc/glxcommandhandlers.hrh Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/inc/glxcommandhandlers.hrh Sat Jul 10 00:59:39 2010 +0530
@@ -119,6 +119,9 @@
EGlxCmdRotateImgCW,
EGlxCmdRotateImgCCW,
EGlxCmdRotateImgCrop,
+ EGlxCmd3DEffectOn,
+ EGlxCmd3DEffectOff,
+ EGlxCmdSetWallpaper,
EGlxCmdAiwBase = 0x6000
};
--- a/ui/inc/glxmodelroles.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/inc/glxmodelroles.h Sat Jul 10 00:59:39 2010 +0530
@@ -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
};
--- a/ui/uiengine/bwins/glxmedialistwrapperu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/bwins/glxmedialistwrapperu.def Sat Jul 10 00:59:39 2010 +0530
@@ -57,4 +57,5 @@
?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)
+ ?isCorruptedImage@GlxMLWrapper@@QAE_NH@Z @ 59 NONAME ; bool GlxMLWrapper::isCorruptedImage(int)
--- a/ui/uiengine/eabi/glxmedialistwrapperu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/eabi/glxmedialistwrapperu.def Sat Jul 10 00:59:39 2010 +0530
@@ -54,4 +54,5 @@
_ZN12GlxMLWrapper10IsDrmValidEi @ 53 NONAME
_ZN12GlxMLWrapper11setDrmValidEib @ 54 NONAME
_ZN12GlxMLWrapper14IsDrmProtectedEi @ 55 NONAME
+ _ZN12GlxMLWrapper16isCorruptedImageEi @ 56 NONAME
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Sat Jul 10 00:59:39 2010 +0530
@@ -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);
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Sat Jul 10 00:59:39 2010 +0530
@@ -138,6 +138,7 @@
bool IsDrmProtected(int index );
bool IsDrmValid(int index);
void setDrmValid(int index,bool valid);
+ bool IsCorruptedImage( int aItemIndex );
private:
/**
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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 );
+}
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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 <glxperformancemacro.h>
@@ -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;
@@ -1187,7 +1184,7 @@
void GlxMLWrapperPrivate::CheckDetailsAttributes(TInt aItemIndex, const RArray<TMPXAttribute>& 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);
}
@@ -1480,3 +1477,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 ;
+ }
+}
--- a/ui/uiengine/model/bwins/glxlistmodelu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/bwins/glxlistmodelu.def Sat Jul 10 00:59:39 2010 +0530
@@ -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
--- a/ui/uiengine/model/bwins/glxmediamodelu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/bwins/glxmediamodelu.def Sat Jul 10 00:59:39 2010 +0530
@@ -39,4 +39,5 @@
?updateDetailsView@GlxMediaModel@@IAEXXZ @ 38 NONAME ; void GlxMediaModel::updateDetailsView(void)
?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 39 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode)
?updateDetailItems@GlxMediaModel@@QAEXXZ @ 40 NONAME ; void GlxMediaModel::updateDetailItems(void)
+ ?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 41 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const
--- a/ui/uiengine/model/eabi/glxlistmodelu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/eabi/glxlistmodelu.def Sat Jul 10 00:59:39 2010 +0530
@@ -29,4 +29,5 @@
_ZTV13GlxAlbumModel @ 28 NONAME
_ZN13GlxAlbumModel13listPopulatedEv @ 29 NONAME
_ZN13GlxAlbumModel14modelPopulatedEv @ 30 NONAME
+ _ZNK13GlxAlbumModel21getCorruptDefaultIconERK11QModelIndex @ 31 NONAME
--- a/ui/uiengine/model/eabi/glxmediamodelu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/eabi/glxmediamodelu.def Sat Jul 10 00:59:39 2010 +0530
@@ -39,4 +39,5 @@
_ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 38 NONAME
_ZN13GlxMediaModel17updateDetailItemsEv @ 39 NONAME
_ZN13GlxMediaModel17updateDetailsViewEv @ 40 NONAME
+ _ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 41 NONAME
--- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h Sat Jul 10 00:59:39 2010 +0530
@@ -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,7 @@
HbIcon* mDefaultIcon;
QCache<int, HbIcon> itemIconCache;
int mTempVisibleWindowIndex;
+ HbIcon* m_CorruptIcon;
};
#endif /* GLXALBUMMODEL_H */
--- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -25,10 +25,6 @@
#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()");
@@ -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)));
@@ -117,7 +115,7 @@
case Qt::DecorationRole :
if(mContextMode == GlxContextSelectionList){
- return HbIcon();
+ return QVariant();
}
else
{
@@ -128,21 +126,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 +147,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 )
{
@@ -247,11 +241,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);
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Sat Jul 10 00:59:39 2010 +0530
@@ -84,7 +84,7 @@
void setFocusIndex(const QModelIndex &index);
QModelIndex getFocusIndex() const;
void setSelectedIndex(const QModelIndex &index);
-
+ HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const;
signals :
@@ -108,11 +108,14 @@
private slots:
void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType);
+
private:
GlxMLWrapper* mMLWrapper;
QCache<int, HbIcon> itemIconCache;
QCache<int, HbIcon> itemFsIconCache;
HbIcon* m_DefaultIcon;
+ HbIcon* m_CorruptIcon;
+
GlxContextMode mContextMode;
//for external data to be populated by model
GlxExternalData* mExternalItems;
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -62,8 +62,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_CorruptIcon = new HbIcon( GLXICON_CORRUPT );
mExternalItems = NULL;
externalDataCount = 0;
mFocusIndex = -1;
@@ -79,8 +79,10 @@
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)));
+ 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)));
@@ -177,12 +179,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 +205,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 +220,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 +241,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 +260,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();
}
@@ -434,9 +421,15 @@
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 +543,14 @@
mMLWrapper->setSelectedIndex(itemIndex);
}
+HbIcon * GlxMediaModel::getCorruptDefaultIcon( const QModelIndex &index ) const
+{
+ if ( mMLWrapper->isCorruptedImage( index.row() ) ) {
+ return m_CorruptIcon ;
+ }
+ return m_DefaultIcon ;
+}
+
bool GlxMediaModel::setData ( const QModelIndex & idx, const QVariant & value, int role )
{
Q_UNUSED( idx )
--- a/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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)
--- a/ui/viewmanagement/statehandler/inc/glxdetailstate.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxdetailstate.h Sat Jul 10 00:59:39 2010 +0530
@@ -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
};
--- a/ui/viewmanagement/statehandler/inc/glxfullscreenstate.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxfullscreenstate.h Sat Jul 10 00:59:39 2010 +0530
@@ -21,11 +21,12 @@
#define GLXFULLSCREENSTATE_H
#include <glxbasestate.h>
+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;
};
--- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -21,15 +21,13 @@
#include<glxcommandhandlerdelete.h>
#include <glxcommandhandleraddtocontainer.h>
#include <glxcommandhandlerrotate.h>
-#include <glxcommandhandlerrotateimage.h>
-#include <glxcommandhandlercropimage.h>
+#include <glxcommandhandlereditimage.h>
#include <glxcommandhandlerremovefrom.h>
#include <glxcommandhandlernewmedia.h>
#include <glxcommandhandlersend.h>
#include <glxcommandhandlerrename.h>
#include <glxcommandhandlercomment.h>
-
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;
--- a/ui/viewmanagement/statehandler/src/glxdetailstate.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxdetailstate.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -21,7 +21,7 @@
GlxDetailState::GlxDetailState(GlxState *preState) : GlxState(GLX_DETAILSVIEW_ID, preState)
{
-
+ mState = NO_DETAIL_S ;
}
--- a/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -18,15 +18,31 @@
#include <glxfullscreenstate.h>
+#include <glxstatemanager.h>
+#include <glxcommandhandlers.hrh>
-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)
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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 );
@@ -134,7 +133,7 @@
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);
@@ -146,8 +145,7 @@
}
mTNObserver->startTNObserving() ;
- }
- //Remove the previous activity
+}
HbActivityManager* activityManager = app->activityManager();
bool ok = activityManager->removeActivity("PhotosMainView");
if ( !ok )
@@ -162,30 +160,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<QString, qint32> 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 +207,22 @@
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();
@@ -238,27 +240,21 @@
}
}
}
-
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<int> () ) {
mSaveActivity.insert("VisibleIndex",variant.value<int>());
- }
+ }
}
else
mSaveActivity.insert("VisibleIndex",0);
-
HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
-
- //Take a screenshot
QVariantHash metadata;
HbMainWindow *window = hbInstance->allMainWindows().first();
metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect()));
@@ -266,16 +262,14 @@
QByteArray serializedModel;
QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append);
stream << mSaveActivity;
- //Add the activity
bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata);
if ( !ok )
{
qDebug("SaveData::Add activity failed" );
+ }
}
- }
}
-
void GlxStateManager::nextState(qint32 state, int internalState)
{
qDebug("GlxStateManager::nextState next state = %u", state);
@@ -459,7 +453,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 );
@@ -686,6 +680,8 @@
case EGlxCmdMarkAll:
case EGlxCmdUnMarkAll:
+ case EGlxCmd3DEffectOn:
+ case EGlxCmd3DEffectOff:
mViewManager->handleUserAction(mCurrentState->id(), id);
id = EGlxCmdHandled;
break;
@@ -713,6 +709,7 @@
{
qDebug("GlxStateManager::~GlxStateManager");
cleanAllModel();
+ mSaveActivity.clear();
delete mActionHandler;
qDebug("GlxStateManager::~GlxStateManager delete Model");
--- a/ui/viewmanagement/viewmanager/inc/glxmenumanager.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/viewmanager/inc/glxmenumanager.h Sat Jul 10 00:59:39 2010 +0530
@@ -21,6 +21,7 @@
class QAbstractItemModel;
class QAction;
class HbMainWindow;
+class GlxSettingInterface;
//Grid view option menu
@@ -29,7 +30,8 @@
GlxGridViewSlideShow,
GlxGridViewAddToAlbum,
GlxGridViewRemoveFromAlbum,
- GlxGridViewDelete
+ GlxGridViewDelete,
+ GlxGridView3DEffect
};
class GlxMenuManager : public QObject
@@ -37,22 +39,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<QAction*> actionList, bool visible );
int viewSubState();
@@ -67,4 +70,6 @@
HbMainWindow* mMainWindow;
HbMenu *mContextMenu;
HbMenu* mSubMenu;
+ HbMenu* m3DEffectSubMenu;
+ GlxSettingInterface *mSettings;
};
--- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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()
@@ -73,8 +75,8 @@
{
switch(viewId) {
case GLX_GRIDVIEW_ID:
+ CreateGridMenu( menu );
connect( menu, SIGNAL( aboutToShow() ), this, SLOT( updateGridMenu() ) );
- CreateGridMenu( menu );
break;
case GLX_LISTVIEW_ID:
@@ -82,9 +84,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 +151,22 @@
action->setData(EGlxCmdDelete);
action->setObjectName( "GridMenu Delete" );
connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+
+ m3DEffectSubMenu = menu->addMenu("3D Effect");
+ m3DEffectSubMenu->setObjectName( "GridMenu 3DEffect" );
+
+ action = m3DEffectSubMenu->addAction("On");
+ action->setCheckable(ETrue);
+ action->setData(EGlxCmd3DEffectOn);
+ action->setObjectName( "GridMenu 3DOn" );
+ connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+
+ action = m3DEffectSubMenu->addAction("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 +208,21 @@
CFeatureDiscovery* featManager = CFeatureDiscovery::NewL();
if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor))
{
- mSubMenu = menu->addMenu(QString("Rotate"));
- action = mSubMenu->addAction(QString("90 CW"));
+ mSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE);
+ action = mSubMenu->addAction(GLX_MENU_SET_WALLPAPER);
+ action->setData(EGlxCmdSetWallpaper);
+ connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+
+
+ mSubMenu = menu->addMenu(GLX_MENU_ROTATE);
+ action = mSubMenu->addAction(GLX_MENU_90_CW);
action->setData(EGlxCmdRotateImgCW);
connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
- action = mSubMenu->addAction(QString("90 CCW"));
+ action = mSubMenu->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()));
}
@@ -207,6 +235,17 @@
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<QAction*> actionList, bool visible )
{
qDebug() << "GlxMenuManager::setAllActionVisibility count " << actionList.count() << " visible" << visible;
@@ -257,6 +296,26 @@
actionList.at(GlxGridViewRemoveFromAlbum)->setVisible( FALSE );
break ;
}
+
+ if(mMainWindow->orientation() == Qt::Horizontal)
+ {
+ actionList.at(GlxGridView3DEffect)->setVisible( TRUE );
+ QList<QAction*> 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 );
+ }
}
}
@@ -295,32 +354,37 @@
switch ( viewId ) {
case GLX_GRIDVIEW_ID :
- action = mContextMenu->addAction(GLX_MENU_SHARE);
- action->setData(EGlxCmdContextSend);
- action->setObjectName( "CM Send" );
- connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+ action = mContextMenu->addAction( GLX_MENU_OPEN );
+ action->setData( EGlxCmdFullScreenOpen );
+ action->setObjectName( "CM Open" );
+ connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
- action = mContextMenu->addAction(GLX_MENU_SLIDESHOW);
- action->setData(EGlxCmdSelectSlideshow);
+ action = mContextMenu->addAction( GLX_MENU_SHARE );
+ action->setData( EGlxCmdContextSend );
+ action->setObjectName( "CM Send" );
+ connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+
+ action = mContextMenu->addAction( GLX_MENU_SLIDESHOW );
+ action->setData( EGlxCmdSelectSlideshow );
action->setObjectName( "CM SlideShow" );
- connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+ 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 = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM );
+ action->setData( EGlxCmdContextAddToAlbum );
action->setObjectName( "CM AddToAlbum" );
- connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+ 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 : {
@@ -328,26 +392,31 @@
QVariant variant = mModel->data( mModel->index(0,0), GlxListItemCount );
if ( variant.isValid() && variant.canConvert<int> () ) {
count = variant.value<int>();
- }
+ }
+
+ 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<bool> () && ( variant.value<bool>() == 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;
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -129,8 +129,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 );
}
@@ -179,7 +179,7 @@
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 ) {
@@ -289,7 +289,7 @@
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 {
@@ -343,7 +343,6 @@
if( mMarkingActionList.at(i)->data()==EGlxCmdSelect) {
bool noSelection=selectedModelIndex.empty();
mMarkingActionList.at(i)->setDisabled(noSelection);
- mMenuManager->disableAction(mView->menu(),noSelection);
break;
}
}
--- a/ui/viewmanagement/viewmanager/viewmanager.pro Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewmanagement/viewmanager/viewmanager.pro Sat Jul 10 00:59:39 2010 +0530
@@ -25,6 +25,7 @@
../../../loggers/loggerqt/inc \
../../../commonutilities/externalutility/inc \
../../viewutilities/effectengine/inc \
+ ../../viewutilities/settingutility/inc
CONFIG += hb
--- a/ui/views/detailsview/inc/glxdetailsview.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/detailsview/inc/glxdetailsview.h Sat Jul 10 00:59:39 2010 +0530
@@ -61,7 +61,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.
@@ -146,6 +146,7 @@
*/
void clearConnections();
+ int getSubState();
private:
//Contains the thumbnail shown in teh details view.
--- a/ui/views/detailsview/src/glxdetailsview.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/detailsview/src/glxdetailsview.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -100,7 +100,9 @@
{
OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY );
//create and set the Favourite Model
- setFavModel();
+ if(getSubState() != IMAGEVIEWER_DETAIL_S) {
+ setFavModel();
+ }
//fill the data
FillDetails();
@@ -120,19 +122,20 @@
//--------------------------------------------------------------------------------------------------------------------------------------------
//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<HbView*> (mDocLoader->findWidget(
GLX_DETAILSVIEW_VIEW));
@@ -144,6 +147,7 @@
mFavIcon = static_cast<HbPushButton*> (mDocLoader->findWidget(
GLX_DETAILSVIEW_FAVICON));
+
mDescriptions = static_cast<GlxDetailsDescriptionEdit*> (mDocLoader->findWidget(
GLX_DETAILSVIEW_DESCRPTIONTEXT));
@@ -159,20 +163,26 @@
mSizeLabel = static_cast<HbLabel*> (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);
-
- //Set the Model
+ //Set the Model
mModel = model;
-
+ if(getSubState() == IMAGEVIEWER_DETAIL_S) {
+ mFavIcon->hide();
+ }
+ else
+ {
+ //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);
+
//Set the Layout Correspondingly.
updateLayout(mWindow->orientation());
@@ -211,11 +221,12 @@
//--------------------------------------------------------------------------------------------------------------------------------------------
void GlxDetailsView::cleanUp()
{
+ qDebug("GlxDetailsView::cleanUp Enter");
+ //clear the connections
+ clearConnections();
+
clearCurrentModel();
- //clear the connections
- clearConnections();
-
delete mFavModel;
mFavModel = NULL;
@@ -296,15 +307,21 @@
{
connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
SLOT(updateLayout(Qt::Orientation)));
+
+
+ if(getSubState() != IMAGEVIEWER_DETAIL_S) {
connect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
connect(mDescriptions, SIGNAL(labelPressed()), this,
SLOT(UpdateDescription()));
+ connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
+ this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+ }
+
connect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
- connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
- this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+
}
//--------------------------------------------------------------------------------------------------------------------------------------------
@@ -312,18 +329,22 @@
//--------------------------------------------------------------------------------------------------------------------------------------------
void GlxDetailsView::clearConnections()
{
+
+ qDebug("GlxDetailsView:: clearConnections");
disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
SLOT(updateLayout(Qt::Orientation)));
-
+
+ if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
disconnect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
-
disconnect(mDescriptions, SIGNAL(labelPressed()), this,
SLOT(UpdateDescription()));
+ disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
+ this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+ }
disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
- disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
- this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+
}
//--------------------------------------------------------------------------------------------------------------------------------------------
@@ -614,3 +635,20 @@
}
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<int> ()) {
+ substate = variant.value<int> ();
+ }
+ }
+ return substate;
+ }
--- a/ui/views/fullscreenview/inc/glxcoverflow.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h Sat Jul 10 00:59:39 2010 +0530
@@ -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
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h Sat Jul 10 00:59:39 2010 +0530
@@ -26,6 +26,9 @@
//User Defined Includes
#include <glxview.h>
#include <glxcoverflow.h>
+
+#define NBR_ANIM_ITEM 2
+
//Orbit/Qt forward declartion
class QTimer;
class HbAction;
@@ -54,7 +57,7 @@
* to make the widget light weight in order to make transition smooth
* and also loads the widgets.
*/
- void initializeView(QAbstractItemModel *model);
+ void initializeView( QAbstractItemModel *model, GlxView *preView );
/*
* resets the view, with just one icon being present in the widget
@@ -116,7 +119,7 @@
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
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -24,6 +24,7 @@
#include <QGesture>
#include <hbpangesture.h>
#include <hbiconanimator.h>
+#include <hbinstance.h>
//User Includes
#include <glxmodelparm.h>
@@ -119,7 +120,7 @@
else {
killTimer(mTimerId);
mTimerId = 0;
- emit doubleTapEventReceived(gesture->position());
+ emit doubleTapEventReceived(hbInstance->allMainWindows().first()->mapToScene(gesture->position().toPoint()));
}
event->accept(gesture);
}
@@ -486,11 +487,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 ) ) ;
@@ -530,6 +531,7 @@
void GlxCoverFlow::zoomStarted(int index)
{
Q_UNUSED(index)
+ emit coverFlowEvent( ZOOM_START_EVENT );
stopAnimation();
mZoomOn = true;
}
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -30,7 +30,7 @@
#include <hbabstractviewitem.h>
#include <hbiconitem.h>
#include <QCoreApplication>
-
+#include <xqserviceutil.h>
//User Includes
#include "glxlog.h"
#include "glxtracer.h"
@@ -54,29 +54,31 @@
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" ) );
OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
}
-void GlxFullScreenView::initializeView(QAbstractItemModel *model)
+void GlxFullScreenView::initializeView( QAbstractItemModel *model, GlxView *preView )
{
OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INITIALIZEVIEW_ENTRY );
@@ -87,9 +89,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 +129,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,12 +183,14 @@
}
//Loads the widgets corresponding to the orientation.
loadViewSection();
-
- setStatusBarVisible(FALSE);
- setTitleBarVisible(FALSE);
+ // In case of fetcher don't hide status pane and title bar
+ if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))){
+ setStatusBarVisible(FALSE);
+ setTitleBarVisible(FALSE);
+ mUiOff = true;
+ }
mUiOffTimer = new QTimer();
- mUiOff = true;
mUiOffTimer->stop();
mCoverFlow->setUiOn(FALSE);
addConnection();
@@ -287,9 +306,8 @@
if(getSubState() == IMAGEVIEWER_S) {
setTitle("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 );
}
@@ -419,6 +437,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 +454,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 );
}
@@ -528,6 +548,7 @@
break ;
case PANNING_START_EVENT :
+ case ZOOM_START_EVENT :
hideUi();
break ;
@@ -567,13 +588,17 @@
{
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<int> () ) {
mCoverFlow->indexChanged( variant.value<int>() ) ;
}
+ mCoverFlow->setVisible( true );
+ mZoomWidget->setVisible( true );
OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_EXIT );
}
@@ -675,8 +700,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,8 +715,9 @@
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" ) );
+
OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
}
@@ -698,25 +725,28 @@
{
OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_ENTRY );
- if ( mIconItem == NULL ) {
- mIconItem = new HbIconItem( mCoverFlow );
- mIconItem->setBrush( QBrush( Qt::black ) );
- mIconItem->setZValue( mCoverFlow->zValue() );
+ if ( mIconItems[0] == NULL ) {
+ for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+ mIconItems[ i ] = new HbIconItem( mFullScreenToolBar->parentItem() );
+ mIconItems[ i ]->setBrush( QBrush( Qt::black ) );
+ mIconItems[ i ]->setZValue( mFullScreenToolBar->zValue() - 2 );
+ mIconItems[ i ]->setPos( 0, 0 );
+ mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+ }
}
- 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 );
+ for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+ mIconItems[ i ]->setVisible( true );
+ mIconItems[ i ]->setSize( screenSize() );
+ }
- QVariant variant = mModel->data( index, Qt::DecorationRole );
- if ( variant.isValid() && variant.canConvert<HbIcon> () ) {
- mIconItem->setIcon ( variant.value<HbIcon>() ) ;
- }
- else {
- mIconItem->setIcon( HbIcon() );
- }
- HbEffect::start( mIconItem, QString("HbGridViewItem"), QString("Select"), this, "imageSelectionEffectFinished" );
+ mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );
+ mIconItems[ 1 ]->setIcon( mCoverFlow->getIcon( index.row() ) );
+ mCoverFlow->setVisible( false );
+ mZoomWidget->setVisible( false );
+
+ HbEffect::start( mIconItems[ 0 ], QString( "HbGridViewItem" ), QString( "SelectHide" ) );
+ HbEffect::start( mIconItems[ 1 ], QString( "HbGridViewItem" ), QString( "SelectShow" ), this, "imageSelectionEffectFinished" );
OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_EXIT );
}
@@ -752,9 +782,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);
}
--- a/ui/views/gridview/inc/glxgridview.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/gridview/inc/glxgridview.h Sat Jul 10 00:59:39 2010 +0530
@@ -26,12 +26,13 @@
//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 GlxGridView : public GlxView
{
@@ -42,7 +43,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() ;
@@ -89,7 +90,7 @@
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;
@@ -102,6 +103,7 @@
HbLabel *mCountLabel; // Marked item count
HbLabel *mZeroItemLabel; // zero itemcount
HbLabel *mAlbumName;
+ GlxSettingInterface *mSettings;
};
#endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/gridview/src/glxgridview.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/gridview/src/glxgridview.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -38,6 +38,7 @@
#include "glxcommandhandlers.hrh"
#include "glxicondefs.h"
#include "glxlocalisationstrings.h"
+#include "glxsettinginterface.h"
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
@@ -66,6 +67,7 @@
mModelWrapper = new GlxModelWrapper();
mModelWrapper->setRoles(GlxQImageSmall);
mIconItem = new HbIconItem(this);
+ mSettings = GlxSettingInterface::instance() ;
OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
}
@@ -116,8 +118,9 @@
OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
}
-void GlxGridView::initializeView(QAbstractItemModel *model)
+void GlxGridView::initializeView( QAbstractItemModel *model, GlxView *preView )
{
+ Q_UNUSED( preView )
activate();
setModel(model);
}
@@ -450,6 +453,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,6 +543,14 @@
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);
--- a/ui/views/listview/inc/glxlistview.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/listview/inc/glxlistview.h Sat Jul 10 00:59:39 2010 +0530
@@ -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:
--- a/ui/views/listview/src/glxlistview.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/listview/src/glxlistview.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -76,13 +76,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 )
--- a/ui/views/slideshowview/inc/glxslideshowwidget.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/slideshowview/inc/glxslideshowwidget.h Sat Jul 10 00:59:39 2010 +0530
@@ -34,6 +34,7 @@
class QGraphicsItem;
class HbDocumentLoader;
class HbAbstractDataModel;
+class HbLabel;
//User Forward Declarations
class GlxEffectEngine;
@@ -48,12 +49,6 @@
EFFECT_STARTED // sends the signal when effect is started.
} GlxSlideShowEvent;
-typedef enum
-{
- MOVE_FORWARD,
- MOVE_BACKWARD,
-} GlxSlideShowMoveDir;
-
class GlxSlideShowWidget : public HbWidget
{
Q_OBJECT
@@ -108,23 +103,64 @@
//add the connection to the model
void initializeNewModel();
void resetSlideShow();
- void setIconItems( int moveDir );
void moveImage( int nextIndex, int posX, const QString & move, char * callBack );
void addConnections();
void removeConnections();
+
+ /*
+ * To get the focus index
+ */
+ int getFocusIndex( );
+
+ /*
+ * To get the full screen icon of the image
+ */
+ HbIcon getIcon( int index );
+
+ /*
+ * To check the itemis corrupted or not
+ */
+ bool isCorrupt( int index );
+
+ /*
+ * To set the current ( focus ) item icon
+ */
+ bool setFocusItemIcon();
+
+ /*
+ * To set the next itme icon in the list
+ */
+ bool setNextItemIcon();
+
+ /*
+ * To set the previous icon in the list
+ */
+ bool setPreItemIcon();
+
+ /*
+ * In the case of all the image are corrupted then show the error notes
+ */
+ void showErrorNote();
+
+ /*
+ * It will hide the corrupted images note
+ */
+ void hideErrorNote();
private:
GlxEffectEngine *mEffectEngine;
GlxSettingInterface *mSettings; //no ownership
- HbIconItem *mIconItems[NBR_ITEM];
+ HbIconItem *mIconItems[ NBR_ITEM ];
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 <QGraphicsItem *> mItemList;
bool mIsPause;
+ int mSlideShowItemCount;
};
#endif /* GLXSLIDESHOWWIDGET_H */
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -28,6 +28,7 @@
#include <QAbstractItemModel>
#include <QGesture>
#include <hbpangesture.h>
+#include <hblabel.h>
//User Includes
#include "glxicondefs.h" //Contains the icon names/Ids
@@ -36,19 +37,21 @@
#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)
+ mContinueButton( NULL ),
+ mErrorNote( NULL ),
+ mItemIndex( 1 ),
+ mSlideTimer( NULL ),
+ mModel( NULL ),
+ mSlideShowItemCount( 0 )
{
TRACER("GlxSlideShowWidget::GlxSlideShowWidget()");
mSettings = GlxSettingInterface::instance() ; //no owner ship
@@ -66,16 +69,17 @@
// Now load the view and the contents.
// and then set the play icon to the button
- mContinueButton = static_cast<HbPushButton*>(DocLoader->findWidget(GLXSLIDESHOW_PB));
- mContinueButton->setIcon(HbIcon(GLXICON_PLAY));
+ mContinueButton = static_cast<HbPushButton*>( 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 ]->setBrush( QBrush( Qt::black ) );
+ mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+ mIconItems[ i ]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) );
}
mSlideTimer = new QTimer();
@@ -111,7 +115,7 @@
TRACER("GlxSlideShowWidget::cleanUp()");
removeConnections();
- if(mEffectEngine) {
+ if( mEffectEngine ) {
mEffectEngine->deRegisterEffect( QString("HbIconItem") );
delete mEffectEngine;
mEffectEngine = NULL;
@@ -122,10 +126,15 @@
mIconItems[i] = 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" ));
@@ -176,22 +185,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 +214,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 +222,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 +234,12 @@
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 );
- QVariant variant = mModel->data( startIndex, GlxFsImageRole );
- if ( variant.isValid() && variant.canConvert<HbIcon> () ) {
- mIconItems[index]->setIcon ( variant.value<HbIcon>() ) ;
+ 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)
@@ -289,7 +284,6 @@
resetSlideShow();
}
-
void GlxSlideShowWidget::leftGesture(int value)
{
Q_UNUSED(value)
@@ -313,14 +307,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 +322,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 +362,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 +388,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 +401,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<int> () ) {
- mSelIndex = variant.value<int>() ;
- GLX_LOG_INFO1("GlxSlideShowWidget::resetSlideShow() selected index %d", mSelIndex );
- }
-
- variant = mModel->data( mModel->index( mSelIndex, 0 ), GlxFsImageRole );
- if ( variant.isValid() && variant.canConvert<HbIcon> () ) {
- mIconItems[mItemIndex]->setIcon ( variant.value<HbIcon>() ) ;
- }
- 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<HbIcon> () ) {
- mIconItems[itemIndex]->setIcon ( variant.value<HbIcon>() ) ;
- }
- 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 +462,125 @@
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 ;
+ if ( i != 0 ) {
+ 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 : mItemIndex ;
+
+ 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 );
+}
+
--- a/ui/views/viewbase/inc/glxview.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/views/viewbase/inc/glxview.h Sat Jul 10 00:59:39 2010 +0530
@@ -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,9 @@
virtual ~GlxView() { }
signals:
- void actionTriggered(qint32 id);
- void itemSpecificMenuTriggered(qint32,QPointF );
- void gridItemSelected(const QModelIndex &);
-
+ void actionTriggered( qint32 id );
+ void itemSpecificMenuTriggered( qint32,QPointF );
+ void gridItemSelected( const QModelIndex &);
private :
qint32 mId;
--- a/ui/viewutilities/settingutility/inc/glxsetting.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewutilities/settingutility/inc/glxsetting.h Sat Jul 10 00:59:39 2010 +0530
@@ -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;
};
--- a/ui/viewutilities/settingutility/inc/glxsettinginterface.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewutilities/settingutility/inc/glxsettinginterface.h Sat Jul 10 00:59:39 2010 +0530
@@ -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
--- a/ui/viewutilities/settingutility/src/glxsetting.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/viewutilities/settingutility/src/glxsetting.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -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 ) ;
+}
+
+
+
--- a/ui/widgets/bwins/glxzoomwidgetu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/widgets/bwins/glxzoomwidgetu.def Sat Jul 10 00:59:39 2010 +0530
@@ -39,4 +39,6 @@
?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)
+ ?setZoomParams@GlxZoomWidget@@AAEXXZ @ 41 NONAME ; void GlxZoomWidget::setZoomParams(void)
+ ?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 42 NONAME ; void GlxZoomWidget::forceZoomToBackground(void)
--- a/ui/widgets/eabi/glxzoomwidgetu.def Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/widgets/eabi/glxzoomwidgetu.def Sat Jul 10 00:59:39 2010 +0530
@@ -45,4 +45,6 @@
_ZThn8_N13GlxZoomWidgetD0Ev @ 44 NONAME
_ZThn8_N13GlxZoomWidgetD1Ev @ 45 NONAME
_ZN13GlxZoomWidget14modelDestroyedEv @ 46 NONAME
+ _ZN13GlxZoomWidget13setZoomParamsEv @ 47 NONAME
+ _ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 48 NONAME
--- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Sat Jul 10 00:59:39 2010 +0530
@@ -53,6 +53,7 @@
* This is an overloaded function when an index is changes due to deletion
*/
void indexChanged();
+ void forceZoomToBackground();
signals:
void pinchGestureReceived(int index);
@@ -94,6 +95,8 @@
void finalizeWidgetTransform();
//get the focused image from the model
QPixmap getFocusedImage();
+ //set all the zoom parameters as per the circumstances
+ void setZoomParams();
//data members
private:
@@ -136,6 +139,8 @@
bool mPinchGestureOngoing;
//to check if decoded image is available
bool mDecodedImageAvailable;
+ //to check if the widget is actually in Foreground
+ bool mZoomOngoing;
int mTimerId;
};
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Fri Jun 25 15:41:33 2010 +0530
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Sat Jul 10 00:59:39 2010 +0530
@@ -19,11 +19,12 @@
#include <hbiconitem.h>
#include <QTimeLine>
#include <QGesture>
+#include <hbinstance.h>
#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), mImageDecodeRequestSend(false), mPinchGestureOngoing(false), mDecodedImageAvailable(false),mZoomOngoing(false), mTimerId(0)
{
grabGesture(Qt::PinchGesture);
grabGesture(Qt::TapGesture);
@@ -83,11 +84,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;
@@ -162,7 +182,7 @@
else {
killTimer(mTimerId);
mTimerId = 0;
- animateZoomOut(gesture->position());
+ animateZoomOut(hbInstance->allMainWindows().first()->mapToScene(gesture->position().toPoint()));
}
}
event->accept(gesture);
@@ -173,6 +193,7 @@
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 +205,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 +232,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 +250,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);
@@ -279,42 +305,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,14 +493,35 @@
}
+void GlxZoomWidget::setZoomParams()
+{
+ if (mModel) {
+ QVariant sizeVariant = mModel->data(mModel->index(mFocusIndex,0),GlxDimensionsRole);
+ QSize fsSize;
+ if(sizeVariant.isValid() && sizeVariant.canConvert<QSize> ()) {
+ 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
+ mZoomOngoing = true;
setZValue(mMaxZValue);
//show the black background
mBlackBackgroundItem->setParentItem(parentItem());
@@ -510,6 +564,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
}