--- a/data/rotatefslandscape.fxml Wed Aug 18 09:48:53 2010 +0300
+++ b/data/rotatefslandscape.fxml Thu Sep 02 20:26:45 2010 +0300
@@ -9,8 +9,8 @@
<keyframe at="0.0">-60</keyframe>
<keyframe at="1.0">0</keyframe>
</param>
- <param name="rotation_origin_x" ref="visual.width">0.5</param>
- <param name="rotation_origin_y" ref="visual.height">0.5</param>
+ <param name="rotation_origin_x" ref="screen.width">0.5</param>
+ <param name="rotation_origin_y" ref="screen.height">0.5</param>
</visual>
--- a/data/rotatefsprotrait.fxml Wed Aug 18 09:48:53 2010 +0300
+++ b/data/rotatefsprotrait.fxml Thu Sep 02 20:26:45 2010 +0300
@@ -9,8 +9,8 @@
<keyframe at="0.0">60</keyframe>
<keyframe at="1.0">0</keyframe>
</param>
- <param name="rotation_origin_x" ref="visual.width">0.5</param>
- <param name="rotation_origin_y" ref="visual.height">0.5</param>
+ <param name="rotation_origin_x" ref="screen.width">0.5</param>
+ <param name="rotation_origin_y" ref="screen.height">0.5</param>
</visual>
</layers>
\ No newline at end of file
--- a/engine/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/engine/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -47,6 +47,8 @@
// CONSTANTS
const TGlxThumbnailRequest::TPriorityMode KGlxDefaultThumbnailPriority = TGlxThumbnailRequest::EPrioritizeQuality;
+const TInt KFavoriteAlbumId = 1 ;
+const TInt KCapturedAlbumId = 2 ;
// ============================ LOCAL FUNCTIONS ==============================
@@ -447,7 +449,18 @@
for (TInt i = 0; i < selectedCount; i++)
{
const TMPXItemId& itemId = aPath.IdOfIndex(selection[i]);
- mediaIdArray.AppendL(TGlxMediaId(itemId));
+ if(itemId.operator ==(KCapturedAlbumId))//captured
+ {
+ mediaIdArray.Insert(TGlxMediaId(itemId),0);
+ }
+ else if(itemId.operator ==(KFavoriteAlbumId))//favourites
+ {
+ mediaIdArray.Insert(TGlxMediaId(itemId),0);
+ }
+ else
+ {
+ mediaIdArray.AppendL(TGlxMediaId(itemId));
+ }
}
}
else // No items are selected; We will use the current item
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -67,6 +67,9 @@
#include "glxdatasourcemds.hrh"
#include "glxdatasourcemdsutility.h"
+// CONSTANTS
+const TInt KGlxCameraAlbumPromotionPosition = 0;
+const TInt KGlxfavoritesAlbumPromotionPosition = 1;
_LIT(KPropertyDefNameCreationDate, "CreationDate");
@@ -307,14 +310,39 @@
if( aFilterProperties.iPromoteSystemItems )
{
RArray<TGlxMediaId> list = aFilteredList;
- /*
- TInt favoritesIndex = list.Find(DataSource()->FavoritesId());
- if( KErrNotFound != favoritesIndex )
+ // Here we don't have to push list in cleanup stack as caller function,
+ // CGlxDataSourceTaskMdeIdList::DoHandleListQueryCompletedL is already
+ // doing that.
+ TInt cameraAlbumIndex = list.Find(DataSource()->CameraAlbumId());
+
+ // If Camera Index is not KErrNotFound, 1st Album should be Captured and
+ // 2nd should be Favourites(In Albums List View)
+
+ if( KErrNotFound != cameraAlbumIndex )
+ {
+ list.Remove(cameraAlbumIndex);
+ list.InsertL(DataSource()->CameraAlbumId(), KGlxCameraAlbumPromotionPosition);
+
+ TInt favoritesIndex = list.Find(DataSource()->FavoritesId());
+ if( KErrNotFound != favoritesIndex )
+ {
+ list.Remove(favoritesIndex);
+ list.InsertL(DataSource()->FavoritesId(),KGlxfavoritesAlbumPromotionPosition);
+ }
+ }
+ else
{
- list.Remove(favoritesIndex);
- list.Insert(DataSource()->FavoritesId(), KGlxAlbumPromotionPosition);
+ // In Selection popup, 1st item should be Favourites(from grid view/fullscreen view
+ // and Camera post captured mode)
+
+ TInt favoritesIndex = list.Find(DataSource()->FavoritesId());
+ if( KErrNotFound != favoritesIndex )
+ {
+ list.Remove(favoritesIndex);
+ list.InsertL(DataSource()->FavoritesId(),KGlxfavoritesAlbumPromotionPosition - 1);
+ }
}
- */
+
DoPostFilterComplete(list, KErrNone);
}
else
--- a/main/glxapplication.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/main/glxapplication.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -18,6 +18,7 @@
//include
#include <qsymbianevent.h>
#include <oommonitorplugin.h>
+#include <hbinstance.h>
#include <w32std.h>
//userinclude
@@ -45,6 +46,21 @@
return HbApplication::symbianEventFilter( aQSEvent );
}
+void GlxApplication::initMattiAutomation()
+{
+ //For Matti Automation
+ //Monitor the first view ready signal to emit the application ready signal.
+ HbMainWindow *window = hbInstance->allMainWindows().first();
+ connect( window, SIGNAL( viewReady() ), this, SLOT( handleAppReady() ) );
+}
+
+void GlxApplication::handleAppReady()
+{
+ emit applicationReady();
+ HbMainWindow *window = hbInstance->allMainWindows().first();
+ disconnect( window, SIGNAL( viewReady() ), this, SLOT( handleAppReady() ) );
+}
+
void GlxApplication::cleanUpCache()
{
qDebug("GlxApplication::cleanUpCache()");
--- a/main/glxapplication.h Wed Aug 18 09:48:53 2010 +0300
+++ b/main/glxapplication.h Thu Sep 02 20:26:45 2010 +0300
@@ -22,22 +22,58 @@
class QSymbianEvent;
+/**
+ * Class Description
+ * Custom Glx appliaction class to monitor the low memory situation
+ */
+
class GlxApplication: public HbApplication
{
-
+ Q_OBJECT
public:
+ /**
+ * Constructor
+ */
GlxApplication( int &argc, char *argv[],
Hb::ApplicationFlags flags = Hb::DefaultApplicationFlags );
+ /**
+ * Constructor
+ */
GlxApplication( QApplication::QS60MainApplicationFactory factory,
int &argc,
char *argv[],
Hb::ApplicationFlags flags = Hb::DefaultApplicationFlags );
+ /**
+ * symbianEventFilter()
+ * /// From HbApplication
+ */
bool symbianEventFilter( const QSymbianEvent *aQSEvent );
+ /**
+ * initMattiAutomation() - To monitor the application ready event for matti tool.
+ */
+ void initMattiAutomation();
+
+signals :
+ /**
+ * applicationReady() - To emit the application ready signal for matti tool.
+ */
+ void applicationReady();
+
+public slots:
+ /**
+ * handleAppReady() - Call back function to get the notification of application ready.
+ * It is also used for matti tool.
+ */
+ void handleAppReady();
+
private :
+ /**
+ * cleanUpCache() - To clear the cache in the low memory situation.
+ */
void cleanUpCache();
};
--- a/main/main.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/main/main.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -61,13 +61,14 @@
if(!XQServiceUtil::isService()){
HbSplashScreen::start();
stateMgr = new GlxStateManager();
- app.setApplicationName(GLX_TITLE);
+ app.setApplicationName( GLX_TITLE );
stateMgr->launchApplication();
}
else {
mainWindow = new GlxAiwServiceHandler();
mainWindow->show();
}
+ app.initMattiAutomation();
OstTraceEventStop( EVENT_DUP1__MAIN_STOP, "launch", EVENT_DUP1__MAIN_START );
int ret = app.exec();
--- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Thu Sep 02 20:26:45 2010 +0300
@@ -73,4 +73,17 @@
??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)
+ ?qt_metacast@GlxCommandHandlerEditImage@@UAEPAXPBD@Z @ 75 NONAME ; void * GlxCommandHandlerEditImage::qt_metacast(char const *)
+ ?staticMetaObject@GlxCommandHandlerEditImage@@2UQMetaObject@@B @ 76 NONAME ; struct QMetaObject const GlxCommandHandlerEditImage::staticMetaObject
+ ?clearMediaModel@GlxCommandHandlerEditImage@@AAEXXZ @ 77 NONAME ; void GlxCommandHandlerEditImage::clearMediaModel(void)
+ ?metaObject@GlxCommandHandlerEditImage@@UBEPBUQMetaObject@@XZ @ 78 NONAME ; struct QMetaObject const * GlxCommandHandlerEditImage::metaObject(void) const
+ ?handleOk@GlxCommandHandlerEditImage@@QAEXABVQVariant@@@Z @ 79 NONAME ; void GlxCommandHandlerEditImage::handleOk(class QVariant const &)
+ ?getStaticMetaObject@GlxCommandHandlerEditImage@@SAABUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const & GlxCommandHandlerEditImage::getStaticMetaObject(void)
+ ?trUtf8@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString GlxCommandHandlerEditImage::trUtf8(char const *, char const *)
+ ?storeItems@GlxCommandHandlerEditImage@@QAEXABVQModelIndex@@HH@Z @ 82 NONAME ; void GlxCommandHandlerEditImage::storeItems(class QModelIndex const &, int, int)
+ ?tr@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString GlxCommandHandlerEditImage::tr(char const *, char const *, int)
+ ?qt_metacall@GlxCommandHandlerEditImage@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 84 NONAME ; int GlxCommandHandlerEditImage::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?handleError@GlxCommandHandlerEditImage@@QAEXHABVQString@@@Z @ 85 NONAME ; void GlxCommandHandlerEditImage::handleError(int, class QString const &)
+ ?trUtf8@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString GlxCommandHandlerEditImage::trUtf8(char const *, char const *, int)
+ ?tr@GlxCommandHandlerEditImage@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString GlxCommandHandlerEditImage::tr(char const *, char const *)
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommondialogs.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommondialogs.h Thu Sep 02 20:26:45 2010 +0300
@@ -27,7 +27,7 @@
{
Q_OBJECT
public:
- GlxTextInputDialog();
+ GlxTextInputDialog(bool disableOkForEmptyText = true);
~GlxTextInputDialog();
QString getText(const QString &label,const QString &text = QString(),bool *ok = 0);
@@ -39,6 +39,7 @@
HbInputDialog* mDialog;
QEventLoop *mEventLoop;
bool mResult;
+ bool mDisableOkForEmptyText;
};
#endif // GLXCOMMONDIALOGS_H
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -47,7 +47,7 @@
QString title(GLX_DETAILS_DESCRIPTION);
QString mediaTitle = NULL;
bool ok = false;
- GlxTextInputDialog* dlg = new GlxTextInputDialog();
+ GlxTextInputDialog* dlg = new GlxTextInputDialog(false);
mediaTitle = dlg->getText(title, mainPane, &ok);
delete dlg;
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -20,10 +20,11 @@
#include <hbaction.h>
#include <QEventLoop>
-GlxTextInputDialog::GlxTextInputDialog()
+GlxTextInputDialog::GlxTextInputDialog(bool disableOkForEmptyText)
: mDialog ( NULL ),
mEventLoop ( 0 ),
- mResult ( false )
+ mResult ( false ),
+ mDisableOkForEmptyText(disableOkForEmptyText)
{
}
@@ -41,9 +42,10 @@
mDialog->setPromptText(label);
mDialog->setInputMode(HbInputDialog::TextInput);
mDialog->setValue(text);
- connect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
- this, SLOT( textChanged (const QString &)));
-
+ if(mDisableOkForEmptyText){
+ connect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
+ this, SLOT( textChanged (const QString &)));
+ }
mDialog->open( this, SLOT( dialogClosed( HbAction* ) ) );
eventLoop.exec( );
mEventLoop = 0 ;
@@ -55,9 +57,10 @@
if ( mResult ) {
retText = mDialog->value().toString().trimmed();
}
-
- disconnect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
- this, SLOT( textChanged (const QString &)));
+ if(mDisableOkForEmptyText){
+ disconnect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
+ this, SLOT( textChanged (const QString &)));
+ }
delete mDialog;
mDialog = NULL;
return retText;
--- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Thu Sep 02 20:26:45 2010 +0300
@@ -107,4 +107,13 @@
_ZTV31GlxCommandHandlerAddToContainer @ 106 NONAME
_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 107 NONAME
_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 108 NONAME
+ _ZN26GlxCommandHandlerEditImage10storeItemsERK11QModelIndexii @ 109 NONAME
+ _ZN26GlxCommandHandlerEditImage11handleErrorEiRK7QString @ 110 NONAME
+ _ZN26GlxCommandHandlerEditImage11qt_metacallEN11QMetaObject4CallEiPPv @ 111 NONAME
+ _ZN26GlxCommandHandlerEditImage11qt_metacastEPKc @ 112 NONAME
+ _ZN26GlxCommandHandlerEditImage15clearMediaModelEv @ 113 NONAME
+ _ZN26GlxCommandHandlerEditImage16staticMetaObjectE @ 114 NONAME DATA 16
+ _ZN26GlxCommandHandlerEditImage19getStaticMetaObjectEv @ 115 NONAME
+ _ZN26GlxCommandHandlerEditImage8handleOkERK8QVariant @ 116 NONAME
+ _ZNK26GlxCommandHandlerEditImage10metaObjectEv @ 117 NONAME
--- a/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -53,6 +53,7 @@
{
setAlignment(Qt::AlignLeft);
mDesc = new HbEditorInterface(this);
+ clearContextMenuFlag(Hb::ShowTextContextMenuOnLongPress);
mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus);
}
--- a/ui/inc/glxmodelroles.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/inc/glxmodelroles.h Thu Sep 02 20:26:45 2010 +0300
@@ -46,7 +46,8 @@
GlxDescRole, //to get the description of the images
GlxRemoveContextRole, //to remove the context
GlxTempVisualWindowIndex, //to store the visual index obtained from AM temporarily
- GlxImageCorruptRole //To get the corrupt image status
+ GlxImageCorruptRole, //To get the corrupt image status
+ GlxPaintPageFlag
};
--- a/ui/inc/glxuistd.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/inc/glxuistd.h Thu Sep 02 20:26:45 2010 +0300
@@ -77,6 +77,7 @@
MEDIUM,
FAST
}GlxSlideShowDelay;
+
typedef enum
{
NO_VIEW,
@@ -85,6 +86,7 @@
BOTH_VIEW
} GlxViewEffect;
+#define DOUBLETAP_TIMEINTERVAL 300
_LIT(KGlxUiUtilitiesResource, "glxuiutilities.rsc");
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Thu Sep 02 20:26:45 2010 +0300
@@ -274,6 +274,7 @@
GlxDRMUtilityWrapper* mDRMUtilityWrapper;
int mTempVisibleWindowIndex;
bool thumbnailPopulatedFlag;
+ bool mPaintPage;
};
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -44,6 +44,7 @@
qDebug("GlxMediaModel::GlxMediaModel");
thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true;
+ mPaintPage = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? true : false;
mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage);
mMLWrapper->setContextMode( modelParm.contextMode() );
mContextMode = modelParm.contextMode( ) ;
@@ -199,6 +200,10 @@
return QVariant();
}
+ if (role == GlxPaintPageFlag) {
+ return mPaintPage;
+ }
+
if ( role == GlxDefaultImage ) {
if(!m_DefaultIcon->isNull()) {
// this image Creation is Slow.
--- a/ui/uiengine/model/modelwrapper/inc/glxmodelwrapper.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/uiengine/model/modelwrapper/inc/glxmodelwrapper.h Thu Sep 02 20:26:45 2010 +0300
@@ -77,6 +77,7 @@
QAbstractItemModel *mModel;
int mOriginalRole;
int mConvertRole;
+ bool mPaintPage; // Flag to determine painting First page Together
};
#endif /* GLXMODELWRAPPER_H */
--- a/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -21,7 +21,8 @@
GlxModelWrapper::GlxModelWrapper(): mModel ( NULL),
mOriginalRole(Qt::DecorationRole),
- mConvertRole(Qt::DecorationRole)
+ mConvertRole(Qt::DecorationRole),
+ mPaintPage(false)
{
}
@@ -32,6 +33,11 @@
{
disConnectFromModel();
mModel = model;
+ QVariant variant = mModel->data(mModel->index(0,0),GlxPaintPageFlag);
+ if (variant.isValid() && variant.canConvert<bool> () )
+ {
+ mPaintPage = variant.value<bool>();
+ }
connectToModel();
resetTheModel();
}
@@ -175,17 +181,21 @@
{
int aStartRow = startIndex.row();
+ if(mPaintPage)
+ {
if((aStartRow == 14) || (aStartRow+1 == rowCount()))
{
emit dataChanged(index(0,0),index(endIndex.row(),0));
+ mPaintPage = false;
}
else if(aStartRow >= 15)
{
emit dataChanged(index(aStartRow,0),index(endIndex.row(),0));
}
+ }
else
{
- // Do Nothing
+ emit dataChanged(index(aStartRow,0),index(endIndex.row(),0));
}
}
--- a/ui/viewmanagement/bwins/glxviewmanageru.def Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/viewmanagement/bwins/glxviewmanageru.def Thu Sep 02 20:26:45 2010 +0300
@@ -8,46 +8,45 @@
?qt_metacast@GlxViewManager@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxViewManager::qt_metacast(char const *)
??_EGlxViewManager@@UAE@I@Z @ 8 NONAME ; GlxViewManager::~GlxViewManager(unsigned int)
?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 9 NONAME ; void GlxViewManager::addBackSoftKeyAction(void)
- ?applicationReady@GlxViewManager@@IAEXXZ @ 10 NONAME ; void GlxViewManager::applicationReady(void)
- ?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 11 NONAME ; class GlxView * GlxViewManager::findView(int)
- ?createActions@GlxViewManager@@AAEXXZ @ 12 NONAME ; void GlxViewManager::createActions(void)
- ?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
- ?handleAction@GlxViewManager@@QAEXXZ @ 14 NONAME ; void GlxViewManager::handleAction(void)
- ?handleUserAction@GlxViewManager@@QAEXHH@Z @ 15 NONAME ; void GlxViewManager::handleUserAction(int, int)
- ?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
- ?actionTriggered@GlxViewManager@@IAEXH@Z @ 17 NONAME ; void GlxViewManager::actionTriggered(int)
- ?getSubState@GlxViewManager@@AAEHXZ @ 18 NONAME ; int GlxViewManager::getSubState(void)
- ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 19 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
- ?handleMenuAction@GlxViewManager@@QAEXH@Z @ 20 NONAME ; void GlxViewManager::handleMenuAction(int)
- ?externalCommand@GlxViewManager@@IAEXH@Z @ 21 NONAME ; void GlxViewManager::externalCommand(int)
- ??0GlxViewManager@@QAE@XZ @ 22 NONAME ; GlxViewManager::GlxViewManager(void)
- ?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 23 NONAME ; void GlxViewManager::exitMarkingMode(int)
- ?cancelTimer@GlxViewManager@@QAEXXZ @ 24 NONAME ; void GlxViewManager::cancelTimer(void)
- ?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
- ?createToolBar@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::createToolBar(void)
- ?removeConnection@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::removeConnection(void)
- ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 28 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
- ?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::createMarkingModeActions(void)
- ?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 30 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?deActivateView@GlxViewManager@@AAEXXZ @ 31 NONAME ; void GlxViewManager::deActivateView(void)
- ?destroyView@GlxViewManager@@QAEXH@Z @ 32 NONAME ; void GlxViewManager::destroyView(int)
- ?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 33 NONAME ; class GlxView * GlxViewManager::resolveView(int)
- ??1GlxViewManager@@UAE@XZ @ 34 NONAME ; GlxViewManager::~GlxViewManager(void)
- ?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 35 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
- ?addConnection@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::addConnection(void)
- ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::hideProgressDialog(void)
- ?handleReadyView@GlxViewManager@@QAEXXZ @ 38 NONAME ; void GlxViewManager::handleReadyView(void)
- ?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 39 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
- ?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
- ?checkMarked@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::checkMarked(void)
- ?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 42 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
- ?setupItems@GlxViewManager@@QAEXXZ @ 43 NONAME ; void GlxViewManager::setupItems(void)
- ?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::enterMarkingMode(int)
- ?actionProcess@GlxViewManager@@QAEXH@Z @ 45 NONAME ; void GlxViewManager::actionProcess(int)
- ?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 46 NONAME ; void GlxViewManager::deactivateCurrentView(void)
- ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
- ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
- ?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 49 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
- ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
- ?activateView@GlxViewManager@@AAEXXZ @ 51 NONAME ; void GlxViewManager::activateView(void)
+ ?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 10 NONAME ; class GlxView * GlxViewManager::findView(int)
+ ?createActions@GlxViewManager@@AAEXXZ @ 11 NONAME ; void GlxViewManager::createActions(void)
+ ?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
+ ?handleAction@GlxViewManager@@QAEXXZ @ 13 NONAME ; void GlxViewManager::handleAction(void)
+ ?handleUserAction@GlxViewManager@@QAEXHH@Z @ 14 NONAME ; void GlxViewManager::handleUserAction(int, int)
+ ?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
+ ?actionTriggered@GlxViewManager@@IAEXH@Z @ 16 NONAME ; void GlxViewManager::actionTriggered(int)
+ ?getSubState@GlxViewManager@@AAEHXZ @ 17 NONAME ; int GlxViewManager::getSubState(void)
+ ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 18 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
+ ?handleMenuAction@GlxViewManager@@QAEXH@Z @ 19 NONAME ; void GlxViewManager::handleMenuAction(int)
+ ?externalCommand@GlxViewManager@@IAEXH@Z @ 20 NONAME ; void GlxViewManager::externalCommand(int)
+ ??0GlxViewManager@@QAE@XZ @ 21 NONAME ; GlxViewManager::GlxViewManager(void)
+ ?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 22 NONAME ; void GlxViewManager::exitMarkingMode(int)
+ ?cancelTimer@GlxViewManager@@QAEXXZ @ 23 NONAME ; void GlxViewManager::cancelTimer(void)
+ ?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 24 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
+ ?createToolBar@GlxViewManager@@AAEXXZ @ 25 NONAME ; void GlxViewManager::createToolBar(void)
+ ?removeConnection@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::removeConnection(void)
+ ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 27 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
+ ?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 28 NONAME ; void GlxViewManager::createMarkingModeActions(void)
+ ?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?deActivateView@GlxViewManager@@AAEXXZ @ 30 NONAME ; void GlxViewManager::deActivateView(void)
+ ?destroyView@GlxViewManager@@QAEXH@Z @ 31 NONAME ; void GlxViewManager::destroyView(int)
+ ?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 32 NONAME ; class GlxView * GlxViewManager::resolveView(int)
+ ??1GlxViewManager@@UAE@XZ @ 33 NONAME ; GlxViewManager::~GlxViewManager(void)
+ ?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 34 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
+ ?addConnection@GlxViewManager@@AAEXXZ @ 35 NONAME ; void GlxViewManager::addConnection(void)
+ ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::hideProgressDialog(void)
+ ?handleReadyView@GlxViewManager@@QAEXXZ @ 37 NONAME ; void GlxViewManager::handleReadyView(void)
+ ?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 38 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
+ ?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 39 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
+ ?checkMarked@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::checkMarked(void)
+ ?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 41 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
+ ?setupItems@GlxViewManager@@QAEXXZ @ 42 NONAME ; void GlxViewManager::setupItems(void)
+ ?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 43 NONAME ; void GlxViewManager::enterMarkingMode(int)
+ ?actionProcess@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::actionProcess(int)
+ ?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 45 NONAME ; void GlxViewManager::deactivateCurrentView(void)
+ ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
+ ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
+ ?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 48 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
+ ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 49 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
+ ?activateView@GlxViewManager@@AAEXXZ @ 50 NONAME ; void GlxViewManager::activateView(void)
--- a/ui/viewmanagement/eabi/glxviewmanageru.def Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/viewmanagement/eabi/glxviewmanageru.def Thu Sep 02 20:26:45 2010 +0300
@@ -21,33 +21,32 @@
_ZN14GlxViewManager15exitMarkingModeEi @ 20 NONAME
_ZN14GlxViewManager15externalCommandEi @ 21 NONAME
_ZN14GlxViewManager15handleReadyViewEv @ 22 NONAME
- _ZN14GlxViewManager16applicationReadyEv @ 23 NONAME
- _ZN14GlxViewManager16enterMarkingModeEi @ 24 NONAME
- _ZN14GlxViewManager16handleMenuActionEi @ 25 NONAME
- _ZN14GlxViewManager16handleUserActionEii @ 26 NONAME
- _ZN14GlxViewManager16removeConnectionEv @ 27 NONAME
- _ZN14GlxViewManager16staticMetaObjectE @ 28 NONAME DATA 16
- _ZN14GlxViewManager17getSelectionModelEi @ 29 NONAME
- _ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 30 NONAME
- _ZN14GlxViewManager17updateToolBarIconEi @ 31 NONAME
- _ZN14GlxViewManager18hideProgressDialogEv @ 32 NONAME
- _ZN14GlxViewManager19getStaticMetaObjectEv @ 33 NONAME
- _ZN14GlxViewManager20addBackSoftKeyActionEv @ 34 NONAME
- _ZN14GlxViewManager20launchProgressDialogEi @ 35 NONAME
- _ZN14GlxViewManager20updateProgressDialogEi @ 36 NONAME
- _ZN14GlxViewManager21deactivateCurrentViewEv @ 37 NONAME
- _ZN14GlxViewManager24createMarkingModeActionsEv @ 38 NONAME
- _ZN14GlxViewManager24createMarkingModeToolBarEv @ 39 NONAME
- _ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 40 NONAME
- _ZN14GlxViewManager8findViewEi @ 41 NONAME
- _ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 42 NONAME
- _ZN14GlxViewManagerC1Ev @ 43 NONAME
- _ZN14GlxViewManagerC2Ev @ 44 NONAME
- _ZN14GlxViewManagerD0Ev @ 45 NONAME
- _ZN14GlxViewManagerD1Ev @ 46 NONAME
- _ZN14GlxViewManagerD2Ev @ 47 NONAME
- _ZNK14GlxViewManager10metaObjectEv @ 48 NONAME
- _ZNK14GlxViewManager11orientationEv @ 49 NONAME
- _ZTI14GlxViewManager @ 50 NONAME
- _ZTV14GlxViewManager @ 51 NONAME
+ _ZN14GlxViewManager16enterMarkingModeEi @ 23 NONAME
+ _ZN14GlxViewManager16handleMenuActionEi @ 24 NONAME
+ _ZN14GlxViewManager16handleUserActionEii @ 25 NONAME
+ _ZN14GlxViewManager16removeConnectionEv @ 26 NONAME
+ _ZN14GlxViewManager16staticMetaObjectE @ 27 NONAME DATA 16
+ _ZN14GlxViewManager17getSelectionModelEi @ 28 NONAME
+ _ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 29 NONAME
+ _ZN14GlxViewManager17updateToolBarIconEi @ 30 NONAME
+ _ZN14GlxViewManager18hideProgressDialogEv @ 31 NONAME
+ _ZN14GlxViewManager19getStaticMetaObjectEv @ 32 NONAME
+ _ZN14GlxViewManager20addBackSoftKeyActionEv @ 33 NONAME
+ _ZN14GlxViewManager20launchProgressDialogEi @ 34 NONAME
+ _ZN14GlxViewManager20updateProgressDialogEi @ 35 NONAME
+ _ZN14GlxViewManager21deactivateCurrentViewEv @ 36 NONAME
+ _ZN14GlxViewManager24createMarkingModeActionsEv @ 37 NONAME
+ _ZN14GlxViewManager24createMarkingModeToolBarEv @ 38 NONAME
+ _ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 39 NONAME
+ _ZN14GlxViewManager8findViewEi @ 40 NONAME
+ _ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 41 NONAME
+ _ZN14GlxViewManagerC1Ev @ 42 NONAME
+ _ZN14GlxViewManagerC2Ev @ 43 NONAME
+ _ZN14GlxViewManagerD0Ev @ 44 NONAME
+ _ZN14GlxViewManagerD1Ev @ 45 NONAME
+ _ZN14GlxViewManagerD2Ev @ 46 NONAME
+ _ZNK14GlxViewManager10metaObjectEv @ 47 NONAME
+ _ZNK14GlxViewManager11orientationEv @ 48 NONAME
+ _ZTI14GlxViewManager @ 49 NONAME
+ _ZTV14GlxViewManager @ 50 NONAME
--- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Thu Sep 02 20:26:45 2010 +0300
@@ -134,7 +134,6 @@
*/
void actionTriggered(qint32 id);
void externalCommand(int cmdId);
- void applicationReady();
public slots:
/**
@@ -184,7 +183,6 @@
void itemSpecificMenuTriggered(qint32,QPointF );
void handleReadyView();
-protected:
private slots:
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -73,8 +73,7 @@
void GlxViewManager::handleReadyView()
{
emit actionTriggered( EGlxCmdSetupItem );
- emit applicationReady();
- disconnect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() ));
+ disconnect( mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() ) );
}
void GlxViewManager::setupItems( )
--- a/ui/views/detailsview/src/glxdetailsview.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/detailsview/src/glxdetailsview.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -525,7 +525,6 @@
if (timevalue.isNull() == FALSE)
{
- OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setTime is not NULL" );
QString timeStringValue = timevalue.toString(timeFormat);
timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
}
--- a/ui/views/fullscreenview/inc/glxcoverflow.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h Thu Sep 02 20:26:45 2010 +0300
@@ -36,8 +36,7 @@
NO_MOVE,
TAP_MOVE,
LEFT_MOVE,
- RIGHT_MOVE,
- LONGPRESS_MOVE,
+ RIGHT_MOVE
} GlxUserMove;
typedef enum
@@ -48,98 +47,299 @@
ZOOM_START_EVENT
} GlxCoverFlowEvent;
+/**
+ * Class Description
+ * This is cover flow class to show and browse the image in fullscreen mode.
+ */
class GlxCoverFlow : public HbWidget
{
Q_OBJECT
public :
+ /**
+ * Constructor
+ * @param - QGraphicsItem parent of this widget
+ */
GlxCoverFlow (QGraphicsItem *parent = NULL);
+
+ /**
+ * Destructor
+ */
~GlxCoverFlow ();
- void setItemSize (QSize &size);
- void setModel (QAbstractItemModel *model);
- void indexChanged (int index);
- void setUiOn(bool uiOn) { mUiOn = uiOn; }
+
+ /**
+ * setItemSize() - To set the fullscreen image size.
+ * @param - size of fullscreen.
+ */
+ void setItemSize( QSize &size );
+
+ /**
+ * setModel() - To set the data provider of the widget.
+ * @param - data model pointor
+ */
+ void setModel( QAbstractItemModel *model );
+
+ /**
+ * indexChanged() - Call back to get the focus index change.
+ * @param - new focus index.
+ */
+ void indexChanged( int index );
+
+ /**
+ * setUiOn() - Call back to get the ui on/off status.
+ * @param - ui on/off status
+ */
+ void setUiOn( bool uiOn ) { mUiOn = uiOn; }
+
+ /**
+ * partiallyClean() - To clean all the item except focus one for improved the
+ * view transition animation.
+ */
void partiallyClean();
- void partiallyCreate(QAbstractItemModel *model, QSize itemSize, int posY = 0 );
- void setCoverFlow();
+
+ /*
+ * partiallyCreate() - To update the focus item only for improved the view transition
+ * animtaion.
+ * @param - data model pointer
+ * @param - size of fullscreen.
+ * @param - image pos in the screen.
+ */
+ void partiallyCreate( QAbstractItemModel *model, QSize itemSize, int posY = 0 );
+
+ /**
+ * setCoverFlow() - To initialise the coverflow.
+ */
+ void setCoverFlow();
+
+ /**
+ * ClearCoverFlow() - To cleanup the memory and connection.
+ */
void ClearCoverFlow();
- void setMultitouchFilter(QGraphicsItem* multitouchFilter);
+
+ /**
+ * setMultitouchFilter(() - To Set the widget who is interested in multi touch
+ * gesture event.
+ * @param - widget pointer
+ */
+ void setMultitouchFilter( QGraphicsItem* multitouchFilter );
- /*
- * To get the focus index
+ /**
+ * getFocusIndex() - To return the focus index
+ * @return - focus index.
*/
int getFocusIndex( );
- /*
- * To get the full screen icon of the image
+ /**
+ * getIcon() - to retuen the full screen icon of the image
+ * @param - index of imges which icon is required.
+ * @return - icon of the image.
*/
HbIcon getIcon( int index );
public slots:
- void zoomStarted(int index);
- void zoomFinished(int index);
+ /**
+ * zoomStarted() - Call back about user has start the zooming.
+ * @param - focus index.
+ */
+ void zoomStarted( int index );
+
+ /**
+ * zoomFinished() - Call back about user has finished the zoom and come back
+ * to coverflow.
+ * @param - focus index.
+ */
+ void zoomFinished( int index );
signals :
- void coverFlowEvent(GlxCoverFlowEvent e);
- void changeSelectedIndex(const QModelIndex &index);
+ /**
+ * coverFlowEvent() - To emit signal about coverflow event happen like panning, zomming ( For ui off ),
+ * Tap ( for ui on/off ) etc.
+ * @param - type of event
+ */
+ void coverFlowEvent( GlxCoverFlowEvent e );
+
+ /**
+ * changeSelectedIndex() - To emit the signal about focus inde change
+ * @param - new focus index
+ */
+ void changeSelectedIndex( const QModelIndex &index );
+
+ /**
+ * autoLeftMoveSignal() - Internal signal to move the next image with transition animation.
+ */
void autoLeftMoveSignal();
+
+ /**
+ * autoRightMoveSignal() - Internal signal to move the previous image with transition animation.
+ */
void autoRightMoveSignal();
- void doubleTapEventReceived(QPointF position);
+
+ /**
+ * doubleTapEventReceived() - To emit the signal about double tap happen.
+ * @param - coordinate of double tap postion with respect of view.
+ */
+ void doubleTapEventReceived( QPointF position );
+
+ /**
+ * moveNextSignal() - Internal signal to handle the buffering logic when user move
+ * to prevoius image.
+ */
+ void moveNextSignal();
+
+ /**
+ * movePreviousSignal() - Internal signal to handle the buffernig loigc when user move
+ * to previous image.
+ */
+ void movePreviousSignal();
protected slots:
- void panGesture ( const QPointF & delta ) ;
- void longPressGesture(const QPointF &point) ;
- void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
- void rowsInserted(const QModelIndex &parent, int start, int end);
- void rowsRemoved(const QModelIndex &parent, int start, int end);
+ /**
+ * panGesture() - To handle the pan gesture event.
+ * @param - user move delta postion.
+ */
+ void panGesture ( const QPointF & delta ) ;
+
+ /**
+ * dataChanged() - call back to monitor the widget data changed.
+ * @param - start index of data changed.
+ * @param - end index of data changed.
+ */
+ void dataChanged( QModelIndex startIndex, QModelIndex endIndex );
+
+ /**
+ * rowsInserted() - call back of new row inserted in the model.
+ * @param - Items are inserted under parent.
+ * @param - start index of items inserted.
+ * @param - end index of items removed.
+ */
+ void rowsInserted( const QModelIndex &parent, int start, int end );
+
+ /**
+ * rowsRemoved() - call back of new row removed in the model.
+ * @param - Items are removed from parent item.
+ * @param - start index of items inserted.
+ * @param - end index of items removed.
+ */
+ void rowsRemoved( const QModelIndex &parent, int start, int end );
+
+ /**
+ * modelDestroyed() - call back to monitor the model destroy.
+ */
void modelDestroyed();
+
+ /**
+ * autoLeftMove() - To play the next image move and bounce back transition animation.
+ */
void autoLeftMove();
+
+ /**
+ * autoRightMove() - To play the previous image move and bounce back transition animation.
+ */
void autoRightMove();
+
+ /**
+ * moveNextImage() - To Handle user next image move for buffering logic, emit the signal about
+ * new focus index and set some widget properties.
+ */
+ void moveNextImage();
+
+ /**
+ * movePreviousImage() - To Handle user pervious image move for buffering logic, emit the signal about
+ * new focus index and set some widget properties.
+ */
+ void movePreviousImage();
protected:
- void gestureEvent(QGestureEvent *event);
- void move(int value);
+ /**
+ * gestureEvent() - override function to handle the gesture event.
+ * @param - pointer of QGestureEvent
+ */
+ void gestureEvent( QGestureEvent *event );
+
+ /**
+ * move() - Change the postion of items for transition animation.
+ * @parma - delta move.
+ */
+ void move( int value );
+
+ /**
+ * setRows() - set the number of rows.
+ */
void setRows() ;
+
+ /**
+ * setStripLen() - set the virtual strip length of coverflow.
+ */
void setStripLen();
+
+ /**
+ * calculateIndex() - For cyclic cover flow map the index to actual item index.
+ * @param - index of the index.
+ */
int calculateIndex(int index);
+ /**
+ * loadIconItems() - Set the icon, size and postion of the icon items.
+ */
void loadIconItems ();
- void updateIconItem (qint16 selIndex, qint16 selIconIndex, qint16 deltaX);
- /*
- * In the case of animated image, it will play the animation for focus image
+ /**
+ * updateIconItem() - Set the icon, size and postion of the a particular item.
+ * It is used to support buffering logic and when user move to next or previous image.
+ * @param - image index.
+ * @param - item index in array.
+ * @param - position of the item.
+ */
+ void updateIconItem ( qint16 selIndex, qint16 selIconIndex, qint16 posX );
+
+ /**
+ * playAnimation() - In the case of animated image, it will play the animation for focus image
*/
void playAnimation();
- /*
- * To stop the animation
+ /**
+ * stopAnimation() - To stop the animation
*/
void stopAnimation();
/*
- * clear all the model connection
+ * clearCurrentModel() - clear all the model connection
*/
void clearCurrentModel();
/*
- * add the connection to the model
+ * initializeNewModel() - add the connection to the model
*/
void initializeNewModel();
/*
- * reset all the data of cover flow
+ * resetCoverFlow() - reset all the data of cover flow
*/
void resetCoverFlow();
+
+ /**
+ * getSubState() - To get the substate of fullscreen state.
+ * @return - return the substate of fullscreen state.
+ */
int getSubState();
- void timerEvent(QTimerEvent *event);
- /*
- * To get the URI of the image
+ /**
+ * timerEvent() - To handle the double tap timer
+ * @param - pointer of QTimerEvent.
+ */
+ void timerEvent( QTimerEvent *event );
+
+ /**
+ * getUri() - To get the URI of the image.
+ * @param - image index.
+ * @return - return the uri of the image.
*/
QString getUri( int index );
- /*
- * To get the GIF file info of the image
+ /**
+ * isAnimatedImage() - To get the GIF file info of the image
+ * @param - image index.
+ * @return - true if it GIF image else false.
*/
bool isAnimatedImage( int index );
@@ -147,7 +347,6 @@
HbIconItem *mIconItem[NBR_ICON_ITEM]; //at most contain only five item
qint16 mSelItemIndex; // current full screen index
qint16 mRows; // total number of item
- //QModelIndex mIndex; //current model index of seleced item
qint16 mSelIndex; // remove once model concept is integreted
qint32 mStripLen; //virtual strip lenght
qint32 mCurrentPos; //current postion in the virtual strip
@@ -161,6 +360,7 @@
QGraphicsItem* mMultitouchFilter;
int mTimerId;
bool mIsInit;
+ bool mIsAutoMoving;
};
#endif /* GLXCOVERFLOW_H_ */
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h Thu Sep 02 20:26:45 2010 +0300
@@ -199,6 +199,12 @@
void orientChangeAnimFinished( const HbEffect::EffectStatus );
/**
+ * zoomOrientChangeAnimFinished() - call back when zoom orientation change effect has been finished.
+ * @param - staus of effect
+ */
+ void zoomOrientChangeAnimFinished( const HbEffect::EffectStatus status );
+
+ /**
* effectFinished - call back when ui on\off effect has finished
* @param - staus of effect
*/
@@ -281,6 +287,11 @@
void playOrientChangeAnim();
/**
+ * playZoomOrientChangeAnim() - To trigger the custom orientation change animation for zoom image.
+ */
+ void playZoomOrientChangeAnim();
+
+ /**
* get the substate of fullscreen state.
*/
int getSubState();
@@ -298,6 +309,7 @@
HbGridView *mImageStrip;
QTimer *mUiOffTimer; //use for ui off after 30 sec
HbIconItem *mIconItems[ NBR_ANIM_ITEM ] ; //temporary item for play the image strip select animation
+ HbIconItem *mBackGroundItem;
GlxTvOutWrapper *mTvOutWrapper;
HbToolBar *mFullScreenToolBar; //Fullscreen Toolbar
//for Zoom
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -51,11 +51,14 @@
mTimerId( 0 ),
mIsInit( false )
{
- qDebug( "GlxCoverFlow::GlxCoverFlow" );
- grabGesture( Qt::PanGesture );
- grabGesture( Qt::TapGesture );
- connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection );
- connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );
+ qDebug( "GlxCoverFlow::GlxCoverFlow" );
+ mIsAutoMoving = FALSE;
+ grabGesture( Qt::PanGesture );
+ grabGesture( Qt::TapGesture );
+ connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection );
+ connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );
+ connect( this, SIGNAL( moveNextSignal() ), this, SLOT( moveNextImage() ), Qt::QueuedConnection );
+ connect( this, SIGNAL( movePreviousSignal() ), this, SLOT( movePreviousImage() ), Qt::QueuedConnection );
}
void GlxCoverFlow::setMultitouchFilter(QGraphicsItem* mtFilter)
@@ -117,7 +120,7 @@
if(QTapGesture *gesture = static_cast<QTapGesture *>(event->gesture(Qt::TapGesture))) {
if (gesture->state() == Qt::GestureFinished) {
if(!mTimerId) {
- mTimerId = startTimer(500);
+ mTimerId = startTimer( DOUBLETAP_TIMEINTERVAL );
}
else {
killTimer(mTimerId);
@@ -137,23 +140,27 @@
event->accept(panningGesture);
}
- if(hbPanGesture->state() == Qt::GestureFinished) {
- switch( mMoveDir ) {
- case LEFT_MOVE :
- mMoveDir = NO_MOVE;
- mBounceBackDeltaX = ( mItemSize.width() >> 2 ) + ( mItemSize.width() >> 3 );
- emit autoLeftMoveSignal();
- break ;
-
- case RIGHT_MOVE :
- mMoveDir = NO_MOVE;
- mBounceBackDeltaX = ( mItemSize.width() >> 2 ) + ( mItemSize.width() >> 3 );
- emit autoRightMoveSignal();
- break;
-
- default:
- break;
- }
+ if( hbPanGesture->state() == Qt::GestureFinished ) {
+ if( mIsAutoMoving == FALSE ) {
+ switch( mMoveDir ) {
+ case LEFT_MOVE :
+ mMoveDir = NO_MOVE;
+ mBounceBackDeltaX = ( mItemSize.width() >> 2 ) + ( mItemSize.width() >> 3 );
+ emit autoLeftMoveSignal();
+ mIsAutoMoving = TRUE;
+ break ;
+
+ case RIGHT_MOVE :
+ mMoveDir = NO_MOVE;
+ mBounceBackDeltaX = ( mItemSize.width() >> 2 ) + ( mItemSize.width() >> 3 );
+ emit autoRightMoveSignal();
+ mIsAutoMoving = TRUE;
+ break;
+
+ default:
+ break;
+ }
+ }
event->accept(panningGesture);
}
}
@@ -164,9 +171,10 @@
{
qDebug("GlxCoverFlow::panGesture deltaX= %d", (int)delta.x());
- if( !mIsInit || getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) {
+ if( !mIsInit || getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S || mIsAutoMoving == TRUE ) {
return;
}
+
move( ( int ) delta.x() );
if( delta.x() > 0 ) {
mMoveDir = RIGHT_MOVE;
@@ -181,12 +189,6 @@
}
}
-void GlxCoverFlow::longPressGesture(const QPointF &point)
-{
- qDebug("GlxCoverFlow::longPressGesture x = %d y = %d", point.x(), point.y());
- mMoveDir = LONGPRESS_MOVE;
-}
-
void GlxCoverFlow::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
{
Q_UNUSED(endIndex);
@@ -272,23 +274,10 @@
//for bounce back of first image
if ( mMoveDir == RIGHT_MOVE ) {
emit autoRightMoveSignal();
- return;
}
- int selIndex = mCurrentPos / width ;
- if ( mRows == 1 || selIndex != mSelIndex ) {
- stopAnimation();
- mSelIndex = selIndex;
- mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM;
- selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM;
- updateIconItem( mSelIndex + 2, selIndex, width * 2 ) ;
- playAnimation();
- if(!mZoomOn) {
- emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
- }
- }
- mMoveDir = NO_MOVE;
- mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA;
- mSpeed = GLX_COVERFLOW_SPEED;
+ else {
+ emit moveNextSignal();
+ }
}
}
@@ -331,24 +320,53 @@
//for bounce back of last image
if ( mMoveDir == LEFT_MOVE ) {
emit autoLeftMoveSignal();
- return;
+ }
+ else {
+ emit movePreviousSignal();
+ }
+ }
+}
+
+void GlxCoverFlow::moveNextImage()
+{
+ int width = mItemSize.width() ;
+ int selIndex = mCurrentPos / width ;
+ if ( mRows == 1 || selIndex != mSelIndex ) {
+ stopAnimation() ;
+ mSelIndex = selIndex ;
+ mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM ;
+ selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM ;
+ updateIconItem( mSelIndex + 2, selIndex, width * 2 ) ;
+ playAnimation() ;
+ if( !mZoomOn ) {
+ emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
}
- int selIndex = mCurrentPos / width ;
- if ( mRows == 1 || selIndex != mSelIndex ) {
- stopAnimation();
- mSelIndex = selIndex;
- mSelItemIndex = ( mSelItemIndex == 0 ) ? NBR_ICON_ITEM -1 : --mSelItemIndex;
- selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM;
- updateIconItem( mSelIndex - 2, selIndex, - width * 2 ) ;
- playAnimation();
- if(!mZoomOn) {
- emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
- }
+ }
+ mMoveDir = NO_MOVE;
+ mIsAutoMoving = FALSE;
+ mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA ;
+ mSpeed = GLX_COVERFLOW_SPEED ;
+}
+
+void GlxCoverFlow::movePreviousImage()
+{
+ int width = mItemSize.width();
+ int selIndex = mCurrentPos / width;
+ if ( mRows == 1 || selIndex != mSelIndex ) {
+ stopAnimation();
+ mSelIndex = selIndex;
+ mSelItemIndex = ( mSelItemIndex == 0 ) ? NBR_ICON_ITEM -1 : --mSelItemIndex;
+ selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM;
+ updateIconItem( mSelIndex - 2, selIndex, - width * 2 ) ;
+ playAnimation();
+ if(!mZoomOn) {
+ emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
}
- mMoveDir = NO_MOVE;
- mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA;
- mSpeed = GLX_COVERFLOW_SPEED;
}
+ mMoveDir = NO_MOVE;
+ mIsAutoMoving = FALSE;
+ mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA;
+ mSpeed = GLX_COVERFLOW_SPEED;
}
void GlxCoverFlow::move(int value)
@@ -357,9 +375,9 @@
QPointF pos(0,0);
for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
- pos.setX( mIconItem[i]->pos().x() + value);
- pos.setY(mIconItem[i]->pos().y());
- mIconItem[i]->setPos(pos);
+ pos.setX( mIconItem[i]->pos().x() + value );
+ pos.setY( mIconItem[i]->pos().y() );
+ mIconItem[i]->setPos( pos );
}
mCurrentPos -= value;
@@ -553,24 +571,23 @@
mZoomOn = true;
}
-void GlxCoverFlow::zoomFinished(int index)
+void GlxCoverFlow::zoomFinished( int index )
{
mZoomOn = false;
playAnimation();
indexChanged(index);
}
-void GlxCoverFlow::timerEvent(QTimerEvent *event)
+void GlxCoverFlow::timerEvent( QTimerEvent *event )
{
- if(mTimerId == event->timerId())
- {
- killTimer(mTimerId);
+ if(mTimerId == event->timerId()) {
+ killTimer( mTimerId );
mTimerId = 0;
emit coverFlowEvent( TAP_EVENT );
}
}
-int GlxCoverFlow::getFocusIndex( )
+int GlxCoverFlow::getFocusIndex()
{
QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole ) ;
if ( variant.isValid() && variant.canConvert< int > () ) {
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -60,10 +60,11 @@
mCoverFlow( NULL ) ,
mImageStrip( NULL ),
mUiOffTimer( NULL ),
+ mBackGroundItem( NULL ),
mTvOutWrapper( NULL ),
mFullScreenToolBar( NULL ),
mZoomWidget( NULL ),
- mUiOff ( false)
+ mUiOff ( false )
{
OstTraceFunctionEntry0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
mIconItems[0] = NULL;
@@ -168,7 +169,7 @@
action->setData( commandId );
action->setIcon( HbIcon( iconName ) );
action->setObjectName( name );
- mFullScreenToolBar->addAction( action);
+ mFullScreenToolBar->addAction( action );
connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) );
}
@@ -378,7 +379,13 @@
setModelContext();
loadViewSection();
setLayout();
- playOrientChangeAnim();
+
+ if ( mZoomWidget->zValue() >= mCoverFlow->zValue() ) {
+ playZoomOrientChangeAnim();
+ }
+ else {
+ playOrientChangeAnim();
+ }
OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT );
}
@@ -409,6 +416,7 @@
else if( getSubState() == IMAGEVIEWER_S){
setTitle(GLX_IMAGE_VIEWER);
}
+ mFullScreenToolBar->setOpacity( 1 );
mFullScreenToolBar->show();
}
else {
@@ -574,17 +582,20 @@
case TAP_EVENT :
activateUI();
break ;
-
+
+ //hide the ui component without animation
case PANNING_START_EVENT :
- hideUi();
- break ;
-
- //hide the ui component without animation
case ZOOM_START_EVENT : {
HbEffect::EffectStatus e;
mUiOff = TRUE;
if( mFullScreenToolBar ) {
- mFullScreenToolBar->hide();
+ /**
+ * Browsing has higer priority then playing animation of hiding tool bar
+ * so it is taking time to hide the toolbar during browsing of images
+ * so set the opacity value to 0 to immediate hide the tool bar
+ */
+ mFullScreenToolBar->setOpacity( 0 );
+ mFullScreenToolBar->hide();
}
setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
effectFinished( e );
@@ -632,6 +643,7 @@
mIconItems[ i ]->resetTransform();
mIconItems[ i ]->setVisible( false );
}
+ mBackGroundItem->setVisible( false );
QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );
if ( variant.isValid() && variant.canConvert<int> () ) {
@@ -648,10 +660,16 @@
qDebug( "GlxFullScreenView::LsOrientChangeAnimFinished reason %d ", status.reason );
mIconItems[ 0 ]->resetTransform();
mIconItems[ 0 ]->setVisible( false );
+ mBackGroundItem->setVisible( false );
mCoverFlow->setVisible( true );
mZoomWidget->setVisible( true );
}
+void GlxFullScreenView::zoomOrientChangeAnimFinished( const HbEffect::EffectStatus status )
+{
+ mZoomWidget->resetTransform();
+}
+
void GlxFullScreenView::setLayout()
{
OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY );
@@ -752,6 +770,7 @@
for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
delete mIconItems[ i ] ;
}
+ delete mBackGroundItem;
delete mImageStrip;
delete mFullScreenToolBar;
delete mCoverFlow;
@@ -775,13 +794,16 @@
void GlxFullScreenView::initAnimationItem()
{
if( mIconItems[0] == NULL ) {
+ mBackGroundItem = new HbIconItem( mImageStrip->parentItem() );
+ mBackGroundItem->setBrush( QBrush( Qt::black ) );
+ mBackGroundItem->setZValue( mImageStrip->zValue() - 3 );
+ mBackGroundItem->setPos( 0, 0 );
for( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
mIconItems[ i ] = new HbIconItem( mImageStrip->parentItem() );
- mIconItems[ i ]->setBrush( QBrush( Qt::black ) );
mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 );
mIconItems[ i ]->setPos( 0, 0 );
mIconItems[ i ]->setAlignment( Qt::AlignCenter );
- }
+ }
}
}
@@ -794,6 +816,8 @@
mIconItems[ i ]->setVisible( true );
mIconItems[ i ]->setSize( screenSize() );
}
+ mBackGroundItem->setVisible( true );
+ mBackGroundItem->setSize( screenSize() );
mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );
mIconItems[ 1 ]->setIcon( mCoverFlow->getIcon( index.row() ) );
@@ -823,6 +847,9 @@
mIconItems[ 0 ]->setVisible( true );
mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );
+ mBackGroundItem->setVisible( true );
+ mBackGroundItem->setSize( screenSize() );
+
mCoverFlow->setVisible( false );
mZoomWidget->setVisible( false );
if ( mWindow->orientation() == Qt::Horizontal ) {
@@ -832,6 +859,16 @@
HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "orientChangeAnimFinished" );
}
}
+
+void GlxFullScreenView::playZoomOrientChangeAnim()
+{
+ if ( mWindow->orientation() == Qt::Horizontal ) {
+ HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSLS" ), this, "zoomOrientChangeAnimFinished" );
+ }
+ else {
+ HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "zoomOrientChangeAnimFinished" );
+ }
+}
void GlxFullScreenView::handleToolBarAction()
{
--- a/ui/views/gridview/src/glxgridview.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/gridview/src/glxgridview.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -249,8 +249,12 @@
if (mMarkingWidget) {
mMarkingWidget->hide();
- }
+ }
+ if (mMarkCheckBox) {
+ mMarkCheckBox->setCheckState(Qt::Unchecked);
+ }
+
showHbItems();
}
@@ -368,7 +372,7 @@
}
else
{ //handle album tiltle and count display logic here
- if (count && isItemVisible(Hb::TitleBarItem))
+ if (isItemVisible(Hb::TitleBarItem))
{
mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);
--- a/ui/views/slideshowview/inc/glxslideshowwidget.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/slideshowview/inc/glxslideshowwidget.h Thu Sep 02 20:26:45 2010 +0300
@@ -316,6 +316,7 @@
QList <QGraphicsItem *> mItemList;
bool mIsPause;
int mSlideShowItemCount;
+ bool mIsAutoMoving;
};
#endif /* GLXSLIDESHOWWIDGET_H */
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -53,7 +53,8 @@
mItemIndex( 1 ),
mSlideTimer( NULL ),
mModel( NULL ),
- mSlideShowItemCount( 0 )
+ mSlideShowItemCount( 0 ),
+ mIsAutoMoving ( false )
{
TRACER("GlxSlideShowWidget::GlxSlideShowWidget()");
mSettings = GlxSettingInterface::instance() ; //no owner ship
@@ -350,6 +351,7 @@
mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
setNextItemIcon();
startSlideShow();
+ mIsAutoMoving = false;
emit indexchanged(); // on left swipe
}
@@ -364,6 +366,7 @@
mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
setPreItemIcon();
startSlideShow();
+ mIsAutoMoving = false;
emit indexchanged(); // on right swipe
}
@@ -378,10 +381,10 @@
}
}
- if (QPanGesture *panningGesture = qobject_cast<QPanGesture*>(event->gesture(Qt::PanGesture))) {
- HbPanGesture *hbPanGesture = qobject_cast<HbPanGesture *>(panningGesture);
+ if ( QPanGesture *panningGesture = qobject_cast<QPanGesture*>( event->gesture( Qt::PanGesture ) ) ) {
+ HbPanGesture *hbPanGesture = qobject_cast<HbPanGesture *>( panningGesture );
if ( hbPanGesture ) {
- if( hbPanGesture->state() == Qt::GestureFinished ) {
+ if( hbPanGesture->state() == Qt::GestureFinished && mIsAutoMoving == FALSE ) {
QPointF delta( hbPanGesture->sceneDelta() );
if ( delta.x() > 0 ) {
rightGesture( delta.x() );
@@ -464,11 +467,12 @@
if ( mSlideShowItemCount <= 1 || mEffectEngine->isEffectRuning( mItemList ) ) {
return ;
}
-
+
mSlideTimer->stop();
HbEffect::start( mIconItems[mItemIndex], QString("HbIconItem"), move );
mIconItems[nextIndex]->setPos( posX, mScreenRect.top());
mIconItems[nextIndex]->setOpacity(1);
+ mIsAutoMoving = true;
HbEffect::start(mIconItems[nextIndex], QString("HbIconItem"), QString("Move"), this, callBack );
}
--- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Thu Sep 02 20:26:45 2010 +0300
@@ -31,10 +31,7 @@
class GlxImageDecoderWrapper;
class QTimeLine;
-const int MAXZVALUE = 100;
-const int MINZVALUE = 0;
-const int NOOFSTEPS = 20;
-const float MAXDTZOOMIN = 3.5;
+
class GLXZOOMWIDGETSHARED_EXPORT GlxZoomWidget : public HbScrollArea
{
@@ -152,8 +149,8 @@
qreal mIncSF;
//stores the scalingfactor increment applicable for each step of double tap animation
qreal msfInc;
- //stores the item size before performing zoomout(zo)
- QSizeF mzoSize;
+ //stores the item size before performing zoomout or zoomin
+ QSizeF minitSize;
//counter to track the double tap animation steps
int mdoubletapSteps;
};
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Wed Aug 18 09:48:53 2010 +0300
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Thu Sep 02 20:26:45 2010 +0300
@@ -24,6 +24,12 @@
#include "glxmodelparm.h"
#include "glxzoomwidget.h"
+const int MAXZVALUE = 100;
+const int MINZVALUE = 0;
+const int NOOFSTEPSZI = 24;
+const int NOOFSTEPSZO = 18;
+const float MAXDTZOOMIN = 3.5;
+
GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent),
mModel(NULL), mMinZValue(MINZVALUE),
mMaxZValue(MAXZVALUE), mTimerId(0),
@@ -34,7 +40,7 @@
grabGesture(Qt::PinchGesture);
grabGesture(Qt::TapGesture);
setAcceptTouchEvents(true) ;
- setFrictionEnabled(false);
+ setFrictionEnabled(true);
setZValue(mMinZValue);
//create the child items and background
mZoomWidget = new QGraphicsWidget(this);
@@ -51,7 +57,8 @@
//initializing the image decoder
mImageDecoder = new GlxImageDecoderWrapper;
-
+ setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);
+ setHorizontalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);
//AA: signal and slot to perform double tap animation
//after every step redraw, signal is emitted to perform the next step
connect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap() ), Qt::QueuedConnection );
@@ -183,7 +190,7 @@
if(QTapGesture *gesture = static_cast<QTapGesture *>(event->gesture(Qt::TapGesture))) {
if (gesture->state() == Qt::GestureFinished) {
if(!mTimerId) {
- mTimerId = startTimer(500);
+ mTimerId = startTimer( DOUBLETAP_TIMEINTERVAL );
}
else {
killTimer(mTimerId);
@@ -203,13 +210,7 @@
if (changeFlags & QPinchGesture::ScaleFactorChanged) {
mPinchGestureOngoing = true;
mZoomOngoing = true;
- //bring the zoom widget to foreground
- setZValue(mMaxZValue);
- //show the black background
- mBlackBackgroundItem->setParentItem(parentItem());
- mBlackBackgroundItem->setZValue(mMaxZValue - 1);
- mBlackBackgroundItem->show();
-
+
//retreive the gesture values
qreal value = pinchG->scaleFactor() / pinchG->lastScaleFactor();
QPointF center = pinchG->property("centerPoint").toPointF();
@@ -220,10 +221,15 @@
}
if (pinchG->state() == Qt::GestureStarted) {
emit pinchGestureReceived(mFocusIndex);
+ //bring the zoom widget to foreground
+ setZValue(mMaxZValue);
+ //show the black background
+ mBlackBackgroundItem->setParentItem(parentItem());
+ mBlackBackgroundItem->setZValue(mMaxZValue - 1);
+ mBlackBackgroundItem->show();
}
if (pinchG->state() == Qt::GestureFinished) {
- if(mStepCurrentSize != mCurrentSize) {
//For giving a spring effect when user has zoomed more than normal.
if(mStepCurrentSize.width() > mMaxScaleDecSize.width()) {
//scale the image to limited size
@@ -235,7 +241,7 @@
mPinchGestureOngoing = false;
//finalize the transforms to the geometry else panning will not work
finalizeWidgetTransform();
- }
+
//push the Zoom widget to background when zoomed image size nears FS image
if(mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3) {
mBlackBackgroundItem->hide();
@@ -294,94 +300,79 @@
//makes sure that the gesture is on the screen center if the image is smaller than the screen
void GlxZoomWidget::adjustGestureCenter(QPointF & gestureCenter, qreal& zoomFactor)
{
- /* commenting this tweak, not necessary, needs to be reimplemented for pinch: IN progress
- if(zoomFactor > 1 &&zoomFactor > 1.2 ) {
+
+ //clip zoom factor for pinch zoom. Double tap zoomfactor should never exceed
+ //1.2 or 0.8 in any given step
+/* if(zoomFactor > 1.2 ) {
zoomFactor = 1.2;
}
-
- if(zoomFactor < 1 &&zoomFactor < 0.8 ) {
+ if(zoomFactor < 0.7 ) {
zoomFactor = 0.8;
- }
- */
- QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor);
- //keep smaller image centered
- if(mCurrentSize.width() <= mWindowSize.width() )
- {
- gestureCenter.setX(mWindowSize.width()/2);
+ }*/
+
+ qDebug("AA::adjustGestureCenter::ZoomFactor (%f)",zoomFactor);
+ QPointF itemOriginPos = mZoomWidget->sceneTransform().map(QPointF(0,0));
+ QPointF gesCenter = mZoomWidget->sceneTransform().map(gestureCenter);
- }
- if(mCurrentSize.height() <= mWindowSize.height())
- {
- gestureCenter.setY(mWindowSize.height()/2);
-
+
+ //keep smaller image centered irrespective of zoomin or zoom out
+ //note, only if the image is smaller than window size, else preserve the
+ //gesture center. Adjustments need to be done for both height/width
+ //only one of them will be applicable, unless the image is smaller than
+ //fullscreen size on both dimensions
+ if( (mCurrentSize.width() <= mWindowSize.width())) {
+ //requires adjustment only in portrait orientation
+ if(mWindowSize.width() > mWindowSize.height())
+ gestureCenter.setX(mWindowSize.width()/2);
}
- //maintains the boundary of the edges for zoom out conditions
- if(zoomFactor < 1) {
- QPointF itemOriginPos = mZoomWidget->sceneTransform().map(QPointF(0,0));
- bool hasWidthExceededWindow = mCurrentSize.width() > mWindowSize.width();
- bool hasHeightExceededWindow = mCurrentSize.height() > mWindowSize.height();
- 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;
+ //handle the case when CurrentSize is grater than window size
+ //this applies to zoomout flow
+ else {
+ //when the image is positioned beyond the left edge of the window
+ //clamp the image to left edge
+ if(itemOriginPos.x() >= 0) {
+ gestureCenter.setX(itemOriginPos.x());
+ }
+ //same applies when the image needs clamping on right edge
+ else if(itemOriginPos.x()+ mCurrentSize.width() <= mWindowSize.width()){
+ gestureCenter.setX(itemOriginPos.x() + mCurrentSize.width());
+ }
+ //else no clamping is required, theg esture center can be preserved
+ //as is for the zoom step
+ }
+
+ //same logic applied for Y axis
+ if( (mCurrentSize.height() <= mWindowSize.height()) ) {
+ //requires adjustment only in landscape orientation
+ if(mWindowSize.width() < mWindowSize.height())
+ gestureCenter.setY(mWindowSize.height()/2);
+ }
+ else {
+ if(itemOriginPos.y() >= 0) {
+ gestureCenter.setY(itemOriginPos.y());
}
-
- //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));
+ else if(itemOriginPos.y()+ mCurrentSize.height() <= mWindowSize.height()){
+ gestureCenter.setY(itemOriginPos.y() + mCurrentSize.height());
}
}
-
- 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
- //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));
- }
- }
+
+ //special case for images that are smaller on both sides
+ //centering of the gesture is important to prevent movement of the image
+ //while zoom in or out
+ if( (mCurrentSize.height() <= mWindowSize.height()) && (mCurrentSize.width() <= mWindowSize.width()) ) {
+ gestureCenter.setX(mWindowSize.width()/2);
+ gestureCenter.setY(mWindowSize.height()/2);
}
- //control the zoom Factor to boundaries
- if(mCurrentSize.width() > mWindowSize.width() && requiredSize.width() <= mWindowSize.width())
- {
- zoomFactor = mWindowSize.width()/mCurrentSize.width();
-
- }
- else if(mCurrentSize.height() > mWindowSize.height() && requiredSize.height() <= mWindowSize.height())
- {
- zoomFactor = mWindowSize.height()/mCurrentSize.height();
-
- }
-
+
//reduce the ZF so as to show a decelerated effect at max/min levels
-
+/*
if(mCurrentSize.width() > mMaxScaleDecSize.width() && zoomFactor > 1 ) {
zoomFactor = 1.0 + ((zoomFactor-1.0)/6) ;
}
if(mCurrentSize.width() < mMinDecScaleSize.width() && zoomFactor < 1 ) {
zoomFactor = 1.0 - ((1.0-zoomFactor)/6) ;
}
-
+*/
}
@@ -425,6 +416,7 @@
mMaxScaleDecSize.scale(mWindowSize*7, Qt::KeepAspectRatio);
mMinScaleSize = mItemSize* 0.7;
mMinDecScaleSize = mItemSize;
+ mCurrentSize = mItemSize;
mZoomItem->setPixmap(targetPixmap);
finalizeWidgetTransform();
}
@@ -542,7 +534,7 @@
mBlackBackgroundItem->setZValue(mMaxZValue - 1);
mBlackBackgroundItem->show();
m_AnimRefPoint = animRefPoint;
- QSizeF requiredSize = mItemSize;
+ QSizeF requiredSize = mMinDecScaleSize;
//MAXDTZOOMIN size is set to 3.5 times window size
requiredSize.scale(mWindowSize*MAXDTZOOMIN, Qt::KeepAspectRatio);
m_FinalAnimatedScaleFactor = requiredSize.width()/mMinDecScaleSize.width();
@@ -550,9 +542,11 @@
mIncSF = 1;
//preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
//SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor]
- msfInc = (m_FinalAnimatedScaleFactor-1)/NOOFSTEPS;
+ msfInc = (m_FinalAnimatedScaleFactor-1)/(NOOFSTEPSZI);
+ //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+ minitSize = mCurrentSize;
//set the no. of steps for double tap animation
- mdoubletapSteps = NOOFSTEPS;
+ mdoubletapSteps = NOOFSTEPSZI;
animateDoubleTap();
}
@@ -564,12 +558,12 @@
//initiale variable for double tap animation
mIncSF = 1;
//calculate the step increment SF for each step
- msfInc = (1 - m_FinalAnimatedScaleFactor)/NOOFSTEPS;
+ msfInc = (1 - m_FinalAnimatedScaleFactor)/(NOOFSTEPSZO);
//preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
- mzoSize = mCurrentSize;
+ minitSize = mCurrentSize;
//set the no. of steps for double tap animation
//AA:: the no.of steps are kept the same for zoomin/zoomout, however tweaking them can be considered
- mdoubletapSteps = NOOFSTEPS;
+ mdoubletapSteps = NOOFSTEPSZO;
animateDoubleTap();
//AA
@@ -583,17 +577,17 @@
if(m_FinalAnimatedScaleFactor > 1) {
//AA::zoomin case
mIncSF += msfInc;
- qreal reqSF = (mItemSize.width()*(mIncSF))/mCurrentSize.width();
+ qreal reqSF = (minitSize.width()*(mIncSF))/mCurrentSize.width();
zoomImage(reqSF, m_AnimRefPoint);
}
if(m_FinalAnimatedScaleFactor < 1) {
//AA::zoomout case
mIncSF -= msfInc;
- qreal reqSF = (mzoSize.width()* mIncSF)/mCurrentSize.width();
+ qreal reqSF = (minitSize.width()* mIncSF)/mCurrentSize.width();
zoomImage(reqSF, m_AnimRefPoint);
}
//check if all steps are done,if not emit signal to continue the animation
- if(mdoubletapSteps >= 1 ){
+ if(mdoubletapSteps > 1 ){
mdoubletapSteps -= 1;
emit stepZoom();
}
@@ -627,6 +621,9 @@
killTimer(mTimerId);
mTimerId = 0;
}
+ else {
+ HbScrollArea::timerEvent( event );
+ }
}
bool GlxZoomWidget::isFocussedItemCorrupt()