# HG changeset patch # User hgs # Date 1281107665 -19800 # Node ID 0f0f3f26f78793d82e5c5f161e909346015d4ceb # Parent a3a4c0de738e4bf229afea566a95b420d1cb7ab4 201031 diff -r a3a4c0de738e -r 0f0f3f26f787 data/albumlisttogrid.fxml --- a/data/albumlisttogrid.fxml Fri Jul 23 20:41:04 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - - - -0.3 - - 0 - 1 -1 -1 - - - - diff -r a3a4c0de738e -r 0f0f3f26f787 data/albumlisttogridshow.fxml --- a/data/albumlisttogridshow.fxml Fri Jul 23 20:41:04 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ - - - - -0.3 - -0 -0.25 -1 - - - - diff -r a3a4c0de738e -r 0f0f3f26f787 data/detailsview.docml --- a/data/detailsview.docml Fri Jul 23 20:41:04 2010 +0530 +++ b/data/detailsview.docml Fri Aug 06 20:44:25 2010 +0530 @@ -53,13 +53,11 @@ - - + - - - - + + + @@ -69,17 +67,13 @@ - + + - - - - - - - - - + + + + @@ -89,28 +83,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -129,17 +101,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - + - - - + + @@ -149,17 +147,13 @@ - + + - - - - - - - - - + + + + @@ -169,27 +163,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -208,8 +181,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + diff -r a3a4c0de738e -r 0f0f3f26f787 data/gridtoalbumlist.fxml --- a/data/gridtoalbumlist.fxml Fri Jul 23 20:41:04 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - - - -0.3 - - 0 - 1 -1 -1 - - - - diff -r a3a4c0de738e -r 0f0f3f26f787 data/gridtoalbumlisthide.fxml --- a/data/gridtoalbumlisthide.fxml Fri Jul 23 20:41:04 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ - - - - -0.3 - -1.0 -0.25 -0 - - - - diff -r a3a4c0de738e -r 0f0f3f26f787 data/rotatefslandscape.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotatefslandscape.fxml Fri Aug 06 20:44:25 2010 +0530 @@ -0,0 +1,17 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + -60 + 0 + + 0.5 + 0.5 + + + + \ No newline at end of file diff -r a3a4c0de738e -r 0f0f3f26f787 data/rotatefsprotrait.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotatefsprotrait.fxml Fri Aug 06 20:44:25 2010 +0530 @@ -0,0 +1,16 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + 60 + 0 + + 0.5 + 0.5 + + + \ No newline at end of file diff -r a3a4c0de738e -r 0f0f3f26f787 data/rotatelandscape.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotatelandscape.fxml Fri Aug 06 20:44:25 2010 +0530 @@ -0,0 +1,16 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + 30 + 90 + + 0.5 + 0.5 + + + \ No newline at end of file diff -r a3a4c0de738e -r 0f0f3f26f787 data/rotateprotrait.fxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/rotateprotrait.fxml Fri Aug 06 20:44:25 2010 +0530 @@ -0,0 +1,16 @@ + + + Created using carbide.fx 1.5.0; FxML revision 0.84; Platform 10.1 + + + + 0.2 + -30 + -90 + + 0.5 + 0.5 + + + \ No newline at end of file diff -r a3a4c0de738e -r 0f0f3f26f787 data/view_flip_hide.fxml --- a/data/view_flip_hide.fxml Fri Jul 23 20:41:04 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ - - - - - - -0.3 - -0 --90 - - -0.5 - - -0.5 - - -0 - - -1 - - -0 - - - - - - diff -r a3a4c0de738e -r 0f0f3f26f787 data/view_flip_show.fxml --- a/data/view_flip_show.fxml Fri Jul 23 20:41:04 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ - - - - - - -0.3 - -90 -0 - - -0.5 - - -0.5 - - -0 - - -1 - - -0 - - - - - diff -r a3a4c0de738e -r 0f0f3f26f787 engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -624,8 +624,17 @@ case CGlxDataSource::EContainerTypeAlbum: case CGlxDataSource::EContainerTypeTag: { - TUint32 countTypeIndex = aContainer->UsageCount(); - aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex); + // for 10.1 we need just images - so just getting images inside an album will do + TGlxFilterProperties filterProperties = iFilterProperties; + filterProperties.iItemType = EGlxFilterImage; + filterProperties.iNoDRM = ETrue; + + QueueObjectQueryL(aContainer->Def(), ETrue, EAttributeQuery, + EQueryResultModeCount, TGlxMediaId(aContainer->Id()), + request->Attributes()[i], aEntry, filterProperties); + + //TUint32 countTypeIndex = aContainer->UsageCount(); + //aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex); break; } case CGlxDataSource::EContainerTypeMonth: diff -r a3a4c0de738e -r 0f0f3f26f787 engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -594,6 +594,9 @@ iFilterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate; iFilterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate; iFilterProperties.iLastCaptureDate = ETrue; + // for 10.1 we need first image thumbnail which is not DRM + iFilterProperties.iNoDRM = ETrue; + iFilterProperties.iItemType = EGlxFilterImage; if( CGlxDataSource::EContainerTypeMonth == containerType ) { diff -r a3a4c0de738e -r 0f0f3f26f787 inc/glxlocalisationstrings.h --- a/inc/glxlocalisationstrings.h Fri Jul 23 20:41:04 2010 +0530 +++ b/inc/glxlocalisationstrings.h Fri Aug 06 20:44:25 2010 +0530 @@ -20,7 +20,10 @@ #include "hbglobal.h" -//OPTIONS MENU +//-------------------------------------------------------------------------------------------------------// +//-----------------------------START OF OPTIONS LOCALISATION STRING---------------------------------- +//-------------------------------------------------------------------------------------------------------// + //Options list item #define GLX_OPTION_SHARE hbTrId("txt_photos_opt_share") @@ -56,7 +59,21 @@ // #define GLX_OPTION_NEW_ALBUM hbTrId("txt_photos_opt_new_album") -//CONTEXT MENU +//3D effect option to allow user to enable and disable 3D Grid Effect. +//Submenu option for 3D effect option +//Off sub menu option for 3D effect option +#define GLX_GRID_OPT_ON hbTrId("txt_photos_opt_view_sub_on") + +#define GLX_GRID_OPT_OFF hbTrId("txt_photos_opt_sub_off") + +#define GLX_GRID_OPT_EFFECT hbTrId("txt_photos_opt_3d_effect") + + +//-----------------------------END OF OPTIONS LOCALISATION STRING---------------------------------------- + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------START OF MENU LOCALISATION STRING---------------------------------------- +//-------------------------------------------------------------------------------------------------------// //context menu item share , invoke share UI #define GLX_MENU_SHARE hbTrId("txt_photos_menu_share") @@ -75,28 +92,122 @@ // #define GLX_MENU_RENAME hbTrId("txt_common_menu_rename_item") -#define GLX_DIALOG_NAME_PROMPT hbTrId("txt_photos_title_enter_name") +#define GLX_MENU_OPEN hbTrId("txt_common_menu_open") + +//Full Screen Menu +#define GLX_MENU_USE_IMAGE hbTrId("txt_photos_opt_use_image") +#define GLX_MENU_SET_WALLPAPER hbTrId("txt_photos_opt_sub_wallpaper") +#define GLX_MENU_ROTATE hbTrId("txt_photos_opt_rotate") +#define GLX_MENU_90_CW hbTrId("txt_photos_opt_sub_90cw") +#define GLX_MENU_90_CCW hbTrId("txt_photos_opt_rotate_sub_90ccw") +#define GLX_MENU_CROP hbTrId("txt_photos_opt_crop") + +//-----------------------------END OF MENU LOCALISATION STRING------------------------------------------- + + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------VIEW SPECIFIC LOCALISATION STRING----------------------------------------- +//-------------------------------------------------------------------------------------------------------// + +//*******************************GRID VIEW*********************************************** + +//sub heading lable for mark mode. +#define GLX_SELECT_IMAGES hbTrId("txt_photos_subhead_select_images") + +//for single item selection +#define GLX_SELECT_IMAGE hbTrId("txt_photos_subhead_select_image") + +//Label field in all grid view to display no of items plus album name in case of album grid view. whre %1 is album name and %L2 is no of images in the album. +#define GLX_ALBUM_NAME_COUNT_LABEL "txt_photos_subhead_1_l2" -#define GLX_DIALOG_ALBUM_NAME_DEFAULT hbTrId("txt_photos_dialog_enter_name_entry_album") -#define GLX_DIALOG_DELETE_ONE_ITEM hbTrId("txt_photos_info_deleting_1") -//TITLE RELATED and DEFAULT STRINGS +//to show the total image count in grid view +#define GLX_GRID_VIEW_COUNT_LABEL "txt_photos_subtitle_ln_images" + +//mark all label to be shown in marking mode view +#define GLX_LABEL_MARK_ALL hbTrId("txt_photos_list_mark_all") + + +//mark all label to be shown in marking mode view +#define GLX_LABEL_MARK_COUNT hbTrId("txt_photos_list_lnln") + +//*******************************DETAILS VIEW********************************************** + +//Description field +#define GLX_DETAILS_DESCRIPTION hbTrId("txt_photos_formlabel_description") +//Details view "Date" Label to show the captured date of the image, where %1 is the date +#define GLX_DETAILS_DATE "txt_photos_list_date_1" + +//Details view "time" Label to show the captured time of the image , where %1 is the time +#define GLX_DETAILS_TIME "txt_photos_list_time_1" + +//%ln is the size specfied in KiloBytes unit +//%ln is the size specfied in MegaBytes unit +//%ln is the size specfied in GigaBytes unit +#define GLX_DETAILS_SIZE_KB "txt_photos_list_ln_kb" +#define GLX_DETAILS_SIZE_MB "txt_photos_list_ln_mb" +#define GLX_DETAILS_SIZE_GB "txt_photos_list_ln_gb" +#define GLX_DETAILS_SIZE_BYTES "txt_photos_list_sizeln_bytes" + -#define GLX_CAPTION hbTrId("txt_short_caption_photos") -#define GLX_TITLE hbTrId("txt_photos_title_photos") -#define GLX_PLACES "txt_photos_dblist_places_ln" -#define GLX_ITEMS_CAMERA "txt_photos_dblist_val_ln_items" -#define GLX_ITEMS_MYFAV "txt_photos_subtitle_ln_items" -#define GLX_SUBTITLE_CAM_GRIDVIEW hbTrId("txt_photos_subtitle_my_camera") -#define GLX_SUBTITLE_MYFAV_GRIDVIEW hbTrId("txt_photos_subtitle_my_favorites") -#define GLX_SUBTITLE_NOITEMS hbTrId("txt_photos_subtitle_no_image_or_videos_to_display") -#define GLX_FETCHER_TITLE QString("Select Image") -#define GLX_GRID_NO_IMAGE QString("(No Images)\n") -#define GLX_GRID_OPEN_CAMERA QString("To capture images Open") -#define GLX_ALBUM_SELECTION_TITLE QString("Select Album") -//VIEW RELATED STRINGS AND COMMON DIALOGS +//*******************************SLIDESHOW VIEW/SETTINGS VIEW******************************* + +#define GLX_LABEL_TRANSITION_EFFECT hbTrId("txt_photos_setlabel_transistion_effect") +#define GLX_VAL_SMOOTH_FADE hbTrId("txt_photos_setlabel_transistion_effect_val_smooth") +#define GLX_EFFECTS_FLIP hbTrId("txt_photos_setlabel_transistion_effect_val_flip_in") +#define GLX_EFFECTS_ZOOMIN_ZOOMOUT hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_in") +#define GLX_EFFECTS_ZOOM_AND_PAN hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_an") + +#define GLX_LABEL_TRANSITION_DELAY hbTrId("txt_photos_setlabel_transistion_delay") +#define GLX_VAL_SLOW hbTrId("txt_photos_setlabel_transistion_delay_val_slow") +#define GLX_VAL_MEDIUM hbTrId("txt_photos_setlabel_transistion_delay_val_medium") +#define GLX_VAL_FAST hbTrId("txt_photos_setlabel_transistion_delay_val_fast") + +#define GLX_UNABLE_PLAY_SLIDESHOW hbTrId("txt_photos_info_unable_to_play_slideshow") +#define GLX_NOIMAGE_PLAY_SLIDESHOW hbTrId( "txt_photos_info_no_images_to_play_slideshow" ) + +//-----------------------------END OF VIEW SPECIFIC LOCALISATION STRING---------------------------------- + + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------DIALOG/INFO LOCALISATION STRING----------------------------------------- +//-------------------------------------------------------------------------------------------------------// + +//Wait note. Displayed when something is being deleted. +//Delete multiple images confirmation dialog +//Deleting... +//Delete selected items? +#define GLX_DELETE_PROGRESS hbTrId("txt_common_info_deleting") -//comments lable for photos flip view -#define GLX_DETAILS_DESCRIPTION hbTrId("txt_photos_formlabel_description") +#define GLX_MULTIPLE_DELETE hbTrId("txt_photos_info_delete_selected_items") + +// progressing not to be shown while removing selected images from an album +#define GLX_REMOVE_IMAGES hbTrId("txt_photos_info_removing_images") + +#define GLX_DIALOG_NAME_PROMPT hbTrId("txt_photos_title_enter_name") + +#define GLX_DIALOG_ALBUM_NAME_DEFAULT hbTrId("txt_photos_dialog_enter_name_entry_album") + +#define GLX_DIALOG_DELETE_ONE_ITEM hbTrId("txt_photos_info_deleting_1") + +//Name already in use alert when user tries to name/reanme the album with an already existing album name +#define GLX_NAME_ALREADY_EXIST hbTrId("txt_photos_dpopinfo_name_1_already_in_use") + +#define GLX_PROCESSING hbTrId( "txt_common_info_processing" ) + +#define GLX_ADDING_IMAGES hbTrId( "txt_photos_info_adding_images" ) + +#define GLX_IMAGES_ADDED "txt_photos_dpopinfo_images_added_to_1" + +#define GLX_REFRESHING hbTrId("txt_photos_info_refreshing_your_media") + +//favorite album name for select album popup +#define GLX_ALBUM_FAV hbTrId("txt_photos_list_favorite") + +//-----------------------------END OF DIALOG/INFO LOCALISATION STRING---------------------------------- + +//-------------------------------------------------------------------------------------------------------// +//-----------------------------BUTTON LOCALISATION STRING----------------------------------------- +//-------------------------------------------------------------------------------------------------------// //Button. Note! Use this text ID only if there are max. two buttons in the dialog. //When this button is pressed, the focused item or operation will be selected or accepted. @@ -108,28 +219,23 @@ #define GLX_BUTTON_SELECT hbTrId("txt_common_button_select") -#define GLX_MENU_OPEN hbTrId("txt_common_menu_open") - #define GLX_BUTTON_HIDE hbTrId("txt_common_button_hide") -#define GLX_BUTTON_NEW QString("New") +#define GLX_BUTTON_NEW hbTrId("txt_photos_button_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") +//-----------------------------END OF BUTTON LOCALISATION STRING---------------------------------- + +//TITLE RELATED and DEFAULT STRINGS -#define GLX_LABEL_TRANSITION_DELAY hbTrId("txt_photos_setlabel_transistion_delay") -#define GLX_VAL_SLOW hbTrId("txt_photos_setlabel_transistion_delay_val_slow") -#define GLX_VAL_MEDIUM hbTrId("txt_photos_setlabel_transistion_delay_val_medium") -#define GLX_VAL_FAST hbTrId("txt_photos_setlabel_transistion_delay_val_fast") -#define GLX_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") +#define GLX_CAPTION hbTrId("txt_short_caption_photos") +#define GLX_TITLE hbTrId("txt_photos_title_photos") +#define GLX_PLACES "txt_photos_dblist_places_ln" +#define GLX_ITEMS_CAMERA "txt_photos_dblist_val_ln_items" +#define GLX_ITEMS_MYFAV "txt_photos_subtitle_ln_items" +#define GLX_SUBTITLE_CAM_GRIDVIEW hbTrId("txt_photos_subtitle_my_camera") +#define GLX_SUBTITLE_MYFAV_GRIDVIEW hbTrId("txt_photos_subtitle_my_favorites") +#define GLX_GRID_NO_IMAGE hbTrId("txt_photos_info_no_content") +#define GLX_ALBUM_SELECTION_TITLE hbTrId("txt_photos_dialog_select_album") +#define GLX_IMAGE_VIEWER hbTrId("txt_photos_title_image_viewer") #endif /* GLXLOCALISATIONSTRINGS_H_ */ diff -r a3a4c0de738e -r 0f0f3f26f787 main/glxaiwservicehandler.cpp --- a/main/glxaiwservicehandler.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/main/glxaiwservicehandler.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -19,8 +19,6 @@ #include #include #include -#include -#include #include #include @@ -28,22 +26,16 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include + +#include #include -#include -#include -#include #include #include #include #include "glxlocalisationstrings.h" -#include -#include #define IMAGE_FETCHER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageFetch") #define IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME QLatin1String("photos.Image") @@ -57,11 +49,7 @@ // GlxAiwServiceHandler::GlxAiwServiceHandler() : HbMainWindow(), - mModel(NULL), - mView(NULL), mStateMgr(NULL), - mFSView(NULL), - mFetcherContextMenu(NULL), mFetcherService(NULL), mNSDIService(NULL), mDSDIService(NULL), @@ -101,15 +89,7 @@ // GlxAiwServiceHandler::~GlxAiwServiceHandler() { - HbStyleLoader::unregisterFilePath(":/data/photos.css"); - if (mView) - { - removeView(mView); - } delete mStateMgr; - delete mView; - delete mFSView; - delete mModel; delete mFetcherService; delete mNSDIService; delete mDSDIService; @@ -126,17 +106,17 @@ // itemSelected() // ---------------------------------------------------------------------------- // -void GlxAiwServiceHandler::itemSelected(const QModelIndex & index) +void GlxAiwServiceHandler::itemSelected(const QModelIndex & index,QAbstractItemModel & model) { qDebug() << "GlxFetcher::itemSelected"; - if (mFetcherService && mFetcherService->isActive()) { qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()"; - QVariant variant = mModel->data(index, GlxUriRole); + QVariant variant = model.data(index, GlxUriRole); if (variant.isValid()) { QString itemPath = variant.value (); + qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()::PATH = " << itemPath; QStringList list = (QStringList() << itemPath); mFetcherService->complete(list); } @@ -145,7 +125,7 @@ else if (mNSDIService && mNSDIService->isActive()) { qDebug() << "GlxFetcher::itemSelected mNSDIService->isActive()"; - QVariant variant = mModel->data(index, GlxUriRole); + QVariant variant = model.data(index, GlxUriRole); if (variant.isValid()) { QString itemPath = variant.value (); @@ -157,7 +137,7 @@ else if (mDSDIService && mDSDIService->isActive()) { qDebug() << "GlxFetcher::itemSelected mDSDIService->isActive()"; - QVariant variant = mModel->data(index, GlxUriRole); + QVariant variant = model.data(index, GlxUriRole); if (variant.isValid()) { QString itemPath = variant.value (); @@ -168,97 +148,29 @@ } - void GlxAiwServiceHandler::launchFetcher(QString viewTitle) { qDebug() << "GlxAiwServiceHandler::launchFetcher START"; qApp->setApplicationName(viewTitle); - HbStyleLoader::registerFilePath(":/data/photos.css"); - GlxModelParm modelParm(KGlxCollectionPluginAllImplementationUid, 0); - mModel = new GlxMediaModel(modelParm); - if ( this->orientation() == Qt::Horizontal ) { - mModel->setData(QModelIndex(), (int)GlxContextLsGrid, GlxContextRole ); - } - else { - mModel->setData(QModelIndex(), (int)GlxContextPtGrid, GlxContextRole ); - } + mUtil = GlxExternalUtility::instance(); + mUtil->setMainWindow(this); - mView = GlxViewsFactory::createView(GLX_GRIDVIEW_ID, this); - mView->activate(); - mView->setModel(mModel); - addView(mView); - connect(mView, SIGNAL(gridItemSelected(const QModelIndex &)), this, - SLOT( itemSelected(const QModelIndex &))); - - connect ( mView, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ), - this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ), - Qt::QueuedConnection ); - qDebug() << "GlxAiwServiceHandler::launchFetcher END"; + mStateMgr = new GlxStateManager(); + int err = connect(mStateMgr, SIGNAL(gridItemSelected(const QModelIndex &,QAbstractItemModel &)), this, + SLOT( itemSelected(const QModelIndex &,QAbstractItemModel &))); + qDebug() << "GlxAiwServiceHandler::launchFetcher err = "<< err; + + mStateMgr->launchFetcher(); + return; } -void GlxAiwServiceHandler::itemSpecificMenuTriggered(qint32 viewId,QPointF pos) -{ - mFetcherContextMenu = new HbMenu(); - HbAction *action = mFetcherContextMenu->addAction(GLX_MENU_OPEN); - action->setObjectName( "Menu Open" ); - connect(action, SIGNAL(triggered()), this, SLOT(openFSView())); - connect(this, SIGNAL(aboutToChangeOrientation ()), mFetcherContextMenu, SLOT(close())); - connect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); - mFetcherContextMenu->setPreferredPos( pos ); - mFetcherContextMenu->show(); -} - -void GlxAiwServiceHandler::closeContextMenu() +void GlxAiwServiceHandler::launchImageViewer(QString viewTitle) { - disconnect( this, SIGNAL( aboutToChangeOrientation () ), mFetcherContextMenu, SLOT( close() ) ); - disconnect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); - mFetcherContextMenu->deleteLater(); - mFetcherContextMenu = NULL; - } - -void GlxAiwServiceHandler::openFSView() - { - if ( this->orientation() == Qt::Horizontal ) { - mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); - } - else { - mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); - } - HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT); - selectAction->setObjectName( "FS Select" ); - - connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect())); - HbToolBar* toolBar = new HbToolBar(); - toolBar->setOrientation( Qt::Horizontal ); - toolBar->setVisible(true); - toolBar->addAction(selectAction); - - mModel->setData( QModelIndex(), FETCHER_S, GlxSubStateRole ); - mFSView = GlxViewsFactory::createView(GLX_FULLSCREENVIEW_ID, this); - //ownership transfered to view - mFSView->setToolBar(toolBar); - mView->deActivate(); - mFSView->activate(); - mFSView->setModel(mModel); - addView(mFSView); - setCurrentView(mFSView,false); - } + qApp->setApplicationName(viewTitle); + mUtil = GlxExternalUtility::instance(); + mUtil->setMainWindow(this); - -void GlxAiwServiceHandler::handleFSSelect() - { - QModelIndex selectedIndex = mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value(),0); - itemSelected(selectedIndex); - } - -void GlxAiwServiceHandler::launchImageViewer() - { - qApp->setApplicationName("Image Viewer"); - GlxExternalUtility* util = GlxExternalUtility::instance(); - util->setMainWindow(this); - delete mStateMgr; - mStateMgr = NULL; mStateMgr = new GlxStateManager(); mStateMgr->launchFromExternal(); if (mImageViewerService && mImageViewerService->asyncRequest()) @@ -289,6 +201,7 @@ // GlxGetImageService::~GlxGetImageService() { + qDebug() << "GlxGetImageService::~GlxGetImageService()"; } // ---------------------------------------------------------------------------- @@ -341,10 +254,7 @@ void GlxGetImageService::fetch() { mImageRequestIndex = setCurrentRequestAsync(); - QString title = requestInfo().info("WindowTitle").toString(); - if(title.isNull()){ - title = QString("Image Fetcher"); - } + QString title = GLX_TITLE; mServiceApp->launchFetcher(title); } @@ -434,10 +344,7 @@ { qDebug() << "GlxGetImageServiceNSDI::fetch START"; mImageRequestIndex = setCurrentRequestAsync(); - QString title = requestInfo().info("WindowTitle").toString(); - if(title.isNull()){ - title = QString("Image Fetcher"); - } + QString title = GLX_TITLE; mServiceApp->launchFetcher(title); qDebug() << "GlxGetImageServiceNSDI::fetch END"; } @@ -517,10 +424,7 @@ Q_UNUSED(filter) Q_UNUSED(flag) mImageRequestIndex = setCurrentRequestAsync(); - QString title = requestInfo().info("WindowTitle").toString(); - if(title.isNull()){ - title = QString("Image Fetcher"); - } + QString title = GLX_TITLE; mServiceApp->launchFetcher(title); } @@ -583,7 +487,13 @@ { mAsyncReqId = setCurrentRequestAsync(); } - mServiceApp->launchImageViewer(); + + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title =GLX_IMAGE_VIEWER; + } + + mServiceApp->launchImageViewer(title); return true; } @@ -600,7 +510,13 @@ mImageViewerInstance->SetImageFileHandleL(file); sf.close(); } - mServiceApp->launchImageViewer(); + + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title = GLX_IMAGE_VIEWER; + } + + mServiceApp->launchImageViewer(title); mAsyncRequest = !XQServiceUtil::isEmbedded(); if (mAsyncRequest) diff -r a3a4c0de738e -r 0f0f3f26f787 main/glxaiwservicehandler.h --- a/main/glxaiwservicehandler.h Fri Jul 23 20:41:04 2010 +0530 +++ b/main/glxaiwservicehandler.h Fri Aug 06 20:44:25 2010 +0530 @@ -22,23 +22,20 @@ #include #include #include +#include +#include //FORWARD CLASS DECLARATION -class GlxView; -class HbPushButton; -class HbMenu; -class QGraphicsGridLayout; class GlxGetImageService; -class GlxMediaModel; -class QModelIndex; class GlxImageViewerService; class GlxStateManager; class CGlxImageViewerManager; class GlxGetImageServiceNSDI; class GlxGetImageServiceDSDI; +class GlxExternalUtility; /** - * GlxAiwServiceHandler + * This is qthigway service handler class for all services provide by photos. * */ class GlxAiwServiceHandler: public HbMainWindow @@ -54,57 +51,103 @@ * Destructor. */ ~GlxAiwServiceHandler(); + + /** + * launch image fetcher view + * @param viewTitle title for image fetcher + */ void launchFetcher(QString viewTitle); - void launchImageViewer(); + + /** + * launch image viewer + * @param viewTitle title for image fetcher + */ + void launchImageViewer(QString viewTitle); + public slots: - void itemSelected(const QModelIndex & index); + /** + * This slot is called when image to be returned to fetcher + * client is selected + * @param index index of the selected image + * @param model model for the current view where image is selected + */ + void itemSelected(const QModelIndex & index,QAbstractItemModel & model); + + /** + * This slot is called when service client is closed + * + */ void handleClientDisconnect(); - void itemSpecificMenuTriggered(qint32,QPointF ); - void openFSView(); - void handleFSSelect(); - void closeContextMenu(); private: - GlxMediaModel *mModel; - GlxView* mView; + /// state manager for the services GlxStateManager *mStateMgr; - GlxView* mFSView; - HbMenu *mFetcherContextMenu; - + /// image fetcher service provider GlxGetImageService* mFetcherService; + /// image fetcher service provider with new service name and depricated interface name GlxGetImageServiceNSDI* mNSDIService; + /// image fetcher service provider with depricated name and depricated inaterface name GlxGetImageServiceDSDI* mDSDIService; GlxImageViewerService* mImageViewerService; + GlxExternalUtility *mUtil; }; /** - * GlxGetImageService + * GlxGetImageService : Image fetcher service provider * */ class GlxGetImageService : public XQServiceProvider { Q_OBJECT public: + /** + * Constructor + */ GlxGetImageService( GlxAiwServiceHandler *parent = 0 ); + + /** + * Destructor. + */ ~GlxGetImageService(); + + /** + * check if service is active + */ bool isActive(); + + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void complete( QStringList filesList); -public slots://for QTHighway to notify provider about request +public slots: + /** + * slot for qthighway to notify provider about request + */ void fetch(); -public slots://for provider to notify client + /** + * slot for service provider to notify client about error + */ void fetchFailed( int errorCode ); private: + /** + * called to complete qthighway service + * @param fileList list of Uri to be returned to client + */ void doComplete( QStringList filesList); private: + /// current service request id int mImageRequestIndex; + /// service handler for all photos services GlxAiwServiceHandler* mServiceApp; }; /** + * Class Description * GlxGetImageServiceDSDI * Service provide for new service and depricated interface */ @@ -112,23 +155,54 @@ { Q_OBJECT public: + /** + * Constructor + */ GlxGetImageServiceNSDI( GlxAiwServiceHandler *parent = 0 ); + /** + * Destructor. + */ ~GlxGetImageServiceNSDI(); + + /** + * check if service is active + */ bool isActive(); + + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void complete( QStringList filesList); -public slots://for QTHighway to notify provider about request +public slots: + /** + * slot for qthighway to notify provider about request + */ void fetch( QVariantMap filter , QVariant flag ); + + /** + * slot for qthighway to notify provider about request + */ void fetch(); -public slots://for provider to notify client +public slots: + /** + * slot for service provider to notify client about error + */ void fetchFailed( int errorCode ); private: + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void doComplete( QStringList filesList); private: + /// current service request id int mImageRequestIndex; + /// service handler for all photos services GlxAiwServiceHandler* mServiceApp; }; @@ -140,45 +214,101 @@ { Q_OBJECT public: + /** + * Constructor + */ GlxGetImageServiceDSDI( GlxAiwServiceHandler *parent = 0 ); + /** + * Destructor. + */ ~GlxGetImageServiceDSDI(); + + /** + * check if service is active + */ bool isActive(); + + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void complete( QStringList filesList); -public slots://for QTHighway to notify provider about request +public slots: + /** + * slot for qthighway to notify provider about request + */ void fetch( QVariantMap filter, QVariant flag); -public slots://for provider to notify client +public slots: + /** + * slot for service provider to notify client about error + */ void fetchFailed( int errorCode ); private: + /** + * called to complete fetch service and return to client + * @param fileList list of Uri to be returned to client + */ void doComplete( QStringList filesList); private: + /// current service request id int mImageRequestIndex; + /// service handler for all photos services GlxAiwServiceHandler* mServiceApp; }; - +/** + * Image viewer service provider + */ class GlxImageViewerService : public XQServiceProvider { Q_OBJECT - public: - GlxImageViewerService( GlxAiwServiceHandler *parent = 0 ); - ~GlxImageViewerService(); - void complete(bool ok); +public: + /** + * Constructor + */ + GlxImageViewerService( GlxAiwServiceHandler *parent = 0 ); + + /** + * Destructor. + */ + ~GlxImageViewerService(); + + /** + * compete request + * @param ok true id success else false + */ + void complete(bool ok); - public slots: - bool view(QString file); - bool view(XQSharableFile file); - bool asyncRequest() {return mAsyncRequest;} + /** + * check if request is aSync + * @return true if async else false + */ + bool asyncRequest() {return mAsyncRequest;} + +public slots: + /** + * slot for qthighway to notify provider about request + */ + bool view(QString file); - private: - GlxAiwServiceHandler* mServiceApp; - int mAsyncReqId; - bool mRetValue; - bool mAsyncRequest; - CGlxImageViewerManager* mImageViewerInstance; + /** + * slot for qthighway to notify provider about request + */ + bool view(XQSharableFile file); + +private: + /// service handler for all photos services + GlxAiwServiceHandler* mServiceApp; + /// current request id + int mAsyncReqId; + bool mRetValue; + bool mAsyncRequest; + /// image viewer manager instance to get info regarding file + CGlxImageViewerManager* mImageViewerInstance; }; diff -r a3a4c0de738e -r 0f0f3f26f787 photos.qrc --- a/photos.qrc Fri Jul 23 20:41:04 2010 +0530 +++ b/photos.qrc Fri Aug 06 20:44:25 2010 +0530 @@ -9,8 +9,6 @@ data/opacity_deactivate.fxml data/zoomin.fxml data/zoomout.fxml - data/view_flip_hide.fxml - data/view_flip_show.fxml data/helix.fxml data/fadein.fxml data/uphide.fxml @@ -18,10 +16,10 @@ data/fullscreentogrid.fxml data/gridtofullscreenhide.fxml data/gridtofullscreenshow.fxml - data/gridtoalbumlist.fxml - data/gridtoalbumlisthide.fxml - data/albumlisttogrid.fxml - data/albumlisttogridshow.fxml + data/rotatelandscape.fxml + data/rotateprotrait.fxml + data/rotatefslandscape.fxml + data/rotatefsprotrait.fxml data/photos.css data/listview.docml data/fullscreen.docml diff -r a3a4c0de738e -r 0f0f3f26f787 tvout/tvoutengine/inc/glxhdmicontainer.h --- a/tvout/tvoutengine/inc/glxhdmicontainer.h Fri Jul 23 20:41:04 2010 +0530 +++ b/tvout/tvoutengine/inc/glxhdmicontainer.h Fri Aug 06 20:44:25 2010 +0530 @@ -25,7 +25,6 @@ * Class Description * A class that creates a CCoeControl window for Screen 1 with screendevice * used - * @author tapadar */ class CGlxHdmiContainer : public CCoeControl, public MGlxGenCallback { diff -r a3a4c0de738e -r 0f0f3f26f787 ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h --- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h Fri Aug 06 20:44:25 2010 +0530 @@ -33,6 +33,7 @@ class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerEditImage : public GlxModelCommandHandler { + Q_OBJECT public: GlxCommandHandlerEditImage(); @@ -40,9 +41,18 @@ void executeCommand(int commandId,int collectionId, QList indexList = QList() ); void doHandleUserAction(GlxMediaModel* model,QList indexList) const ; +public slots: + void handleOk(const QVariant& result); + void handleError(int errorCode, const QString& errorMessage); + void storeItems(const QModelIndex &parent, int start, int end); + +private: + void clearMediaModel(); + private: XQAiwRequest* mReq; XQApplicationManager mAppmgr; + GlxMediaModel* mMediaModel; }; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -130,7 +130,7 @@ mAlbumName.clear(); if(aCommandId == EGlxCmdAddToFav) { - mAlbumName = GLX_SUBTITLE_MYFAV_GRIDVIEW; + mAlbumName = GLX_ALBUM_FAV; CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL(); CleanupStack::PushL(targetCollection); // The target collection has to be appeneded with the albums plugin id @@ -241,8 +241,7 @@ while (error == KErrAlreadyExists) { - HbMessageBox::warning("Name Already Exist!!!", new HbLabel( - "New Album")); + HbMessageBox::warning(GLX_NAME_ALREADY_EXIST); error = KErrNone; error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle); } @@ -266,12 +265,12 @@ QString GlxCommandHandlerAddToContainer::CompletionTextL() const { if(!mAlbumName.isNull()){ - return QString("Added to %1").arg(mAlbumName); + return (hbTrId(GLX_IMAGES_ADDED).arg(mAlbumName)); } return QString(); } QString GlxCommandHandlerAddToContainer::ProgressTextL() const { - return QString("Adding Images..."); + return GLX_ADDING_IMAGES; } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -62,7 +62,7 @@ QString GlxCommandHandlerDelete::ProgressTextL() const { - return QString("Deleting..."); + return (GLX_DELETE_PROGRESS); } QString GlxCommandHandlerDelete::ConfirmationTextL(bool multiSelection ) const @@ -70,7 +70,7 @@ QString retString; if(multiSelection) { - retString = QString("Delete selected images"); + retString = GLX_MULTIPLE_DELETE; } else { diff -r a3a4c0de738e -r 0f0f3f26f787 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -32,7 +32,8 @@ #include #include -GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() : mReq(NULL) +GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() : + mReq(NULL), mMediaModel(NULL) { //Nothing to do here } @@ -41,9 +42,11 @@ { delete mReq; mReq = NULL; + clearMediaModel(); } -void GlxCommandHandlerEditImage::executeCommand(int commandId,int collectionId, QList /*indexList*/) +void GlxCommandHandlerEditImage::executeCommand(int commandId, + int collectionId, QList /*indexList*/) { const QString service = QLatin1String("PhotoEditor"); const QString interface = QLatin1String("com.nokia.symbian.imageeditor"); @@ -54,29 +57,42 @@ { mReq = mAppmgr.create(service, interface, operation, true); mReq->setEmbedded(true); - mReq->setSynchronous(true); + mReq->setSynchronous(false); } if(mReq == NULL) { return; + } + + connect(mReq, SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&))); + connect(mReq, SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&))); + + GlxModelParm modelParm(collectionId, 0); + clearMediaModel(); + mMediaModel = new GlxMediaModel(modelParm); + if (!mMediaModel) + { + return; } - GlxModelParm modelParm (collectionId, 0); - GlxMediaModel* mediaModel = new GlxMediaModel (modelParm); - + connect( mMediaModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( storeItems( QModelIndex, int, int ) ) ); + //Get the file path for the item selected - QString imagePath = (mediaModel->data(mediaModel->index(mediaModel->data(mediaModel->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); - delete mediaModel; - + QString imagePath = (mMediaModel->data( + mMediaModel->index(mMediaModel->data(mMediaModel->index(0, 0), + GlxFocusIndexRole).value (), 0), GlxUriRole)).value< + QString> (); + //delete mediaModel; + QList args; args << imagePath; #ifdef FF_IMAGE_EDITOR - if(EGlxCmdSetWallpaper == commandId) - { - args << EEditorHighwayWallpaperCrop; - } - else if(EGlxCmdRotateImgCrop == commandId) + if(EGlxCmdSetWallpaper == commandId) + { + args << EEditorHighwayWallpaperCrop; + } + else if(EGlxCmdRotateImgCrop == commandId) { args << EEditorHighwayFreeCrop; } @@ -85,22 +101,56 @@ args << EEditorHighwayRotateCW; } else // if(EGlxCmdRotateImgCCW == aCommandId) + { args << EEditorHighwayRotateCCW; } mReq->setArguments(args); #endif //FF_IMAGE_EDITOR - // Send the request bool res = mReq->send(); - if (!res) + if (!res) { - // Request failed. - qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send"); + // Request failed. } } -void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/,QList /*indexList*/) const +void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/, + QList /*indexList*/) const + { + //Dummy, to keepup with compiler error + } + +void GlxCommandHandlerEditImage::handleOk(const QVariant& result) + { + //Nothing to do for - Needs further implementation to refine setting + //default image in fullscreen view + } + +void GlxCommandHandlerEditImage::handleError(int errorCode, + const QString& errorMessage) { - //Dummy, to keepup with compiler errore + clearMediaModel(); } + +void GlxCommandHandlerEditImage::storeItems(const QModelIndex &parent, + int aStartRow, int aEndRow) + { + //This implementation assumes that we will be getting only one new + //image creation notification. Needs refined implementation + if (mMediaModel) + { + QModelIndex modelIndex = mMediaModel->index(aStartRow, 0); + mMediaModel->setData(modelIndex, modelIndex.row(), GlxFocusIndexRole); + } + } + +void GlxCommandHandlerEditImage::clearMediaModel() + { + if (mMediaModel) + { + disconnect(mMediaModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(storeItems(QModelIndex,int,int))); + delete mMediaModel; + mMediaModel = NULL; + } + } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp --- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -21,6 +21,7 @@ #include #include #include +#include "glxlocalisationstrings.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxcommandhandlerremovefromTraces.h" @@ -74,5 +75,5 @@ QString GlxCommandHandlerRemoveFrom::ProgressTextL() const { - return QString("Removing..."); + return GLX_REMOVE_IMAGES; } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/inc/glxcommandhandlers.hrh --- a/ui/inc/glxcommandhandlers.hrh Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/inc/glxcommandhandlers.hrh Fri Aug 06 20:44:25 2010 +0530 @@ -96,14 +96,19 @@ EGlxCmdShowImages, EGlxCmdShowVideos, EGlxCmdAllGridOpen, + EGlxCmdFetcherAllGridOpen, //open fetcher grid in all collection EGlxCmdFullScreenOpen, + EGlxCmdFetcherFullScreenOpen, //open fetcher in fullscreen EGlxCmdAlbumGridOpen, + EGlxCmdFetcherAlbumGridOpen, //open fetcher album grid EGlxCmdAlbumListOpen, + EGlxCmdFetcherAlbumListOpen, //open fetcher album list EGlxCmdCameraOpen, EGlxCmdDetailsOpen, EGlxCmdEmptyData, EGlxCmdOviOpen, EGlxCmdBack, + EGlxCmdSlideShowBack, EGlxCmdSelect, EGlxCmdCancel, EGlxCmdMarkAll, @@ -122,6 +127,8 @@ EGlxCmd3DEffectOn, EGlxCmd3DEffectOff, EGlxCmdSetWallpaper, + EGlxCmdPlayBackAnim, + EGlxCmdFetcherSelect, EGlxCmdAiwBase = 0x6000 }; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/inc/glxviewids.h --- a/ui/inc/glxviewids.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/inc/glxviewids.h Fri Aug 06 20:44:25 2010 +0530 @@ -38,13 +38,17 @@ { NO_GRID_S = 0, ALL_ITEM_S, - ALBUM_ITEM_S, + ALBUM_ITEM_S, + FETCHER_ITEM_S, // all grid fetcher + FETCHER_ALBUM_ITEM_S, //album grid getcher MAX_GRID_S } GridState; typedef enum { NO_FULLSCREEN_S = MAX_GRID_S + 1, + ALL_FULLSCREEN_S, + ALBUM_FULLSCREEN_S, EXTERNAL_S, IMAGEVIEWER_S, FETCHER_S, @@ -65,5 +69,10 @@ IMAGEVIEWER_DETAIL_S, MAX_DETAIL_S } DetailState; - +typedef enum +{ + NO_LIST_S = MAX_DETAIL_S+1, + FETCHER_ALBUM_S, // album list fetcher + MAX_LIST_S +} ListState; #endif /* GLXVIEWIDS_H */ diff -r a3a4c0de738e -r 0f0f3f26f787 ui/uiengine/model/bwins/glxmediamodelu.def --- a/ui/uiengine/model/bwins/glxmediamodelu.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/uiengine/model/bwins/glxmediamodelu.def Fri Aug 06 20:44:25 2010 +0530 @@ -1,43 +1,45 @@ EXPORTS - ?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const - ?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 2 NONAME ; void GlxMediaModel::itemsAdded(int, int) - ?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void) - ?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 4 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType) - ?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 5 NONAME ; void * GlxMediaModel::qt_metacast(char const *) - ?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 6 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const - ?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 7 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &) - ?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &) - ?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 9 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode) - ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int) - ?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject - ?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 12 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const - ??_EGlxMediaModel@@UAE@I@Z @ 13 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int) - ?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 14 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const - ?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int) - ?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 16 NONAME ; void GlxMediaModel::itemCorrupted(int) - ?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 17 NONAME ; void GlxMediaModel::addExternalItems(class QList *) - ?modelpopulated@GlxMediaModel@@QAEXXZ @ 18 NONAME ; void GlxMediaModel::modelpopulated(void) - ?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 19 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const - ?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString GlxMediaModel::tr(char const *, char const *) - ?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 21 NONAME ; void GlxMediaModel::itemsRemoved(int, int) - ?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 22 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const - ?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 23 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const - ??1GlxMediaModel@@UAE@XZ @ 24 NONAME ; GlxMediaModel::~GlxMediaModel(void) - ?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 26 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString) - ?itemUpdated1@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 27 NONAME ; void GlxMediaModel::itemUpdated1(int, enum GlxTBContextType) - ?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int) - ?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 29 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const - ?clearExternalItems@GlxMediaModel@@QAEXXZ @ 30 NONAME ; void GlxMediaModel::clearExternalItems(void) - ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *) - ?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 32 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const - ?populated@GlxMediaModel@@IAEXXZ @ 33 NONAME ; void GlxMediaModel::populated(void) - ??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 34 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &) - ?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 35 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const - ?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 36 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const - ?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 37 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString) - ?updateDetailsView@GlxMediaModel@@IAEXXZ @ 38 NONAME ; void GlxMediaModel::updateDetailsView(void) + ?thumbnailPopulated@GlxMediaModel@@IAEXXZ @ 1 NONAME ; void GlxMediaModel::thumbnailPopulated(void) + ?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const + ?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 3 NONAME ; void GlxMediaModel::itemsAdded(int, int) + ?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void) + ?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 5 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType) + ?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 6 NONAME ; void * GlxMediaModel::qt_metacast(char const *) + ?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 7 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const + ?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &) + ?itemUpdated@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 9 NONAME ; void GlxMediaModel::itemUpdated(int, enum GlxTBContextType) + ?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 10 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &) + ?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 11 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode) + ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int) + ?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject + ?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 14 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const + ??_EGlxMediaModel@@UAE@I@Z @ 15 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int) + ?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 16 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const + ?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 17 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const + ?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int) + ?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 19 NONAME ; void GlxMediaModel::itemCorrupted(int) + ?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 20 NONAME ; void GlxMediaModel::addExternalItems(class QList *) + ?modelpopulated@GlxMediaModel@@QAEXXZ @ 21 NONAME ; void GlxMediaModel::modelpopulated(void) + ?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 22 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const + ?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxMediaModel::tr(char const *, char const *) + ?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 24 NONAME ; void GlxMediaModel::itemsRemoved(int, int) + ?thumbnailPopulatedCheck@GlxMediaModel@@AAEXH@Z @ 25 NONAME ; void GlxMediaModel::thumbnailPopulatedCheck(int) + ?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 26 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const + ?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 27 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const + ??1GlxMediaModel@@UAE@XZ @ 28 NONAME ; GlxMediaModel::~GlxMediaModel(void) + ?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?updateDetailsView@GlxMediaModel@@IAEXXZ @ 30 NONAME ; void GlxMediaModel::updateDetailsView(void) + ?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 31 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString) + ?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 32 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int) + ?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 33 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const + ?clearExternalItems@GlxMediaModel@@QAEXXZ @ 34 NONAME ; void GlxMediaModel::clearExternalItems(void) + ?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *) + ?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 36 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const + ?populated@GlxMediaModel@@IAEXXZ @ 37 NONAME ; void GlxMediaModel::populated(void) + ??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 38 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &) ?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 39 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode) ?updateDetailItems@GlxMediaModel@@QAEXXZ @ 40 NONAME ; void GlxMediaModel::updateDetailItems(void) - ?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 41 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const + ?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 41 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const + ?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 42 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const + ?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 43 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString) diff -r a3a4c0de738e -r 0f0f3f26f787 ui/uiengine/model/eabi/glxmediamodelu.def --- a/ui/uiengine/model/eabi/glxmediamodelu.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/uiengine/model/eabi/glxmediamodelu.def Fri Aug 06 20:44:25 2010 +0530 @@ -1,8 +1,8 @@ EXPORTS _ZN13GlxMediaModel10itemsAddedEii @ 1 NONAME - _ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME - _ZN13GlxMediaModel11qt_metacastEPKc @ 3 NONAME - _ZN13GlxMediaModel12itemUpdated1Ei16GlxTBContextType @ 4 NONAME + _ZN13GlxMediaModel11itemUpdatedEi16GlxTBContextType @ 2 NONAME + _ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME + _ZN13GlxMediaModel11qt_metacastEPKc @ 4 NONAME _ZN13GlxMediaModel12itemsRemovedEii @ 5 NONAME _ZN13GlxMediaModel13itemCorruptedEi @ 6 NONAME _ZN13GlxMediaModel13setFocusIndexERK11QModelIndex @ 7 NONAME @@ -13,31 +13,33 @@ _ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 12 NONAME _ZN13GlxMediaModel16staticMetaObjectE @ 13 NONAME DATA 16 _ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 14 NONAME - _ZN13GlxMediaModel18clearExternalItemsEv @ 15 NONAME - _ZN13GlxMediaModel19albumTitleAvailableE7QString @ 16 NONAME - _ZN13GlxMediaModel19getStaticMetaObjectEv @ 17 NONAME - _ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 18 NONAME - _ZN13GlxMediaModel9populatedEv @ 19 NONAME - _ZN13GlxMediaModelC1ER12GlxModelParm @ 20 NONAME - _ZN13GlxMediaModelC2ER12GlxModelParm @ 21 NONAME - _ZN13GlxMediaModelD0Ev @ 22 NONAME - _ZN13GlxMediaModelD1Ev @ 23 NONAME - _ZN13GlxMediaModelD2Ev @ 24 NONAME - _ZNK13GlxMediaModel10metaObjectEv @ 25 NONAME - _ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 26 NONAME - _ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 27 NONAME - _ZNK13GlxMediaModel13getFocusIndexEv @ 28 NONAME - _ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 29 NONAME - _ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 30 NONAME - _ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 31 NONAME - _ZNK13GlxMediaModel4dataERK11QModelIndexi @ 32 NONAME - _ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 33 NONAME - _ZNK13GlxMediaModel6parentERK11QModelIndex @ 34 NONAME - _ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 35 NONAME - _ZTI13GlxMediaModel @ 36 NONAME - _ZTV13GlxMediaModel @ 37 NONAME - _ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 38 NONAME - _ZN13GlxMediaModel17updateDetailItemsEv @ 39 NONAME - _ZN13GlxMediaModel17updateDetailsViewEv @ 40 NONAME - _ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 41 NONAME + _ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 15 NONAME + _ZN13GlxMediaModel17updateDetailItemsEv @ 16 NONAME + _ZN13GlxMediaModel17updateDetailsViewEv @ 17 NONAME + _ZN13GlxMediaModel18clearExternalItemsEv @ 18 NONAME + _ZN13GlxMediaModel18thumbnailPopulatedEv @ 19 NONAME + _ZN13GlxMediaModel19albumTitleAvailableE7QString @ 20 NONAME + _ZN13GlxMediaModel19getStaticMetaObjectEv @ 21 NONAME + _ZN13GlxMediaModel23thumbnailPopulatedCheckEi @ 22 NONAME + _ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 23 NONAME + _ZN13GlxMediaModel9populatedEv @ 24 NONAME + _ZN13GlxMediaModelC1ER12GlxModelParm @ 25 NONAME + _ZN13GlxMediaModelC2ER12GlxModelParm @ 26 NONAME + _ZN13GlxMediaModelD0Ev @ 27 NONAME + _ZN13GlxMediaModelD1Ev @ 28 NONAME + _ZN13GlxMediaModelD2Ev @ 29 NONAME + _ZNK13GlxMediaModel10metaObjectEv @ 30 NONAME + _ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 31 NONAME + _ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 32 NONAME + _ZNK13GlxMediaModel13getFocusIndexEv @ 33 NONAME + _ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 34 NONAME + _ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 35 NONAME + _ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 36 NONAME + _ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 37 NONAME + _ZNK13GlxMediaModel4dataERK11QModelIndexi @ 38 NONAME + _ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 39 NONAME + _ZNK13GlxMediaModel6parentERK11QModelIndex @ 40 NONAME + _ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 41 NONAME + _ZTI13GlxMediaModel @ 42 NONAME + _ZTV13GlxMediaModel @ 43 NONAME diff -r a3a4c0de738e -r 0f0f3f26f787 ui/uiengine/model/listmodel/inc/glxalbummodel.h --- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h Fri Aug 06 20:44:25 2010 +0530 @@ -85,6 +85,7 @@ QCache itemIconCache; int mTempVisibleWindowIndex; HbIcon* m_CorruptIcon; + int mSubState; }; #endif /* GLXALBUMMODEL_H */ diff -r a3a4c0de738e -r 0f0f3f26f787 ui/uiengine/model/listmodel/src/glxalbummodel.cpp --- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -28,7 +28,7 @@ GlxAlbumModel::GlxAlbumModel(GlxModelParm & modelParm):mContextMode(GlxContextInvalid) { qDebug("GlxAlbumModel::GlxAlbumModel()"); - + mSubState = -1; mMLWrapper = new GlxMLWrapper(modelParm.collection(),modelParm.depth(),modelParm.filterType()); // mMLWrapper->setContextMode(GlxContextPtList); // mContextMode = GlxContextPtList; @@ -101,6 +101,10 @@ HbIcon* itemIcon = NULL; QModelIndex idx; + if ( role == GlxSubStateRole ){ + return mSubState; + } + if ( (!index.isValid()) || (rowIndex >= rowCount()) ) { return QVariant(); } @@ -165,6 +169,11 @@ return TRUE; } } + + if ( role == GlxSubStateRole && value.isValid() && value.canConvert ()) { + mSubState = value.value () ; + return TRUE; + } if ( GlxFocusIndexRole == role ) { if ( value.isValid() && value.canConvert () ) { @@ -266,6 +275,7 @@ { qDebug("GlxAlbumModel::itemsAdded %d %d", startIndex, endIndex); beginInsertRows(QModelIndex(), startIndex, endIndex); + itemIconCache.clear(); endInsertRows(); } @@ -273,6 +283,7 @@ { qDebug("GlxAlbumModel::itemsRemoved %d %d", startIndex, endIndex); beginRemoveRows(QModelIndex(), startIndex, endIndex); + itemIconCache.clear(); endRemoveRows(); //emit rowsRemoved(index(startIndex,0), startIndex, endIndex ); diff -r a3a4c0de738e -r 0f0f3f26f787 ui/uiengine/model/mediamodel/inc/glxmediamodel.h --- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Fri Aug 06 20:44:25 2010 +0530 @@ -43,71 +43,219 @@ { Q_OBJECT public : - - GlxMediaModel(GlxModelParm & modelParm); - ~GlxMediaModel(); - int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - QModelIndex parent(const QModelIndex &child) const; - QVariant data(const QModelIndex &index, int role) const; - bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole); - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; + /** + * Constructor + * @param - model parm struct collectionID, depth, filter, context mode etc + */ + GlxMediaModel( GlxModelParm & modelParm ); - /* - *for setting external image data to the model. + /** + * Destructor + */ + ~GlxMediaModel(); + + /** + * rowCount() - return the number of rows in the model. + * @param - parent model index, not used + */ + int rowCount( const QModelIndex &parent = QModelIndex() ) const; + + /** + * columnCount() - return 1 + * @param - parent model index, not used + */ + int columnCount( const QModelIndex &parent = QModelIndex() ) const; + + /** + * parent() - return the model index of the child. + * It always return invalid model index since no there is no parent + */ + QModelIndex parent( const QModelIndex &child ) const; + + /** + * data() - return the data of corresponding role. + * @param - model index of interested item. + * @param - role of corresponding data. + */ + QVariant data( const QModelIndex &index, int role ) const; + + /** + * setData() - to set the data for corresponding item and role. + * @param - model index of interested item. + * @param - data of the item + * @param - role of corresponding data. + */ + bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ); + + /** + * index - create a new model index for an item. + * @param - row index of the item. + * @param - column index of the item, it is always one. + */ + QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const; + + /** + * addExternalItems() - for setting external image data to the model. */ - void addExternalItems(GlxExternalData* externalItems); - /* - *for removing all external image data from the model. - */ + void addExternalItems( GlxExternalData* externalItems ); + + /** + * clearExternalItems() - for removing all external image data from the model. + */ void clearExternalItems(); - /* - * for checking if the item is editab - */ signals : - void albumTitleAvailable(QString aTitle); + /** + * albumTitleAvailable() - emit this signal when album title is available. + * @parma - album title + */ + void albumTitleAvailable( QString aTitle ); + + /** + * populated() - emit this signal once medialist is populated + */ void populated(); + + /** + * thumbnailPopulated() - emit the signal once some initial page of thumbnail are loaded + * into cache. + */ + void thumbnailPopulated(); + + /** + * iconAvailable() - emit the signal to update the icon in the cache. + * @param - item index + * @param - HbIcon + * @param - media list context type + */ + void iconAvailable( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ) const; + + /** + * updateDetailsView() - emit the signal to update the details view + */ + void updateDetailsView(); private: - HbIcon* GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const; - HbIcon* GetFsIconItem(int itemIndex,GlxTBContextType tbContextType)const; - HbIcon* GetExternalIconItem(int itemIndex,GlxTBContextType tbContextType)const; -/** - * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes. - */ - void setContextMode(GlxContextMode contextMode); - /* - *Removes the context + /** + * GetGridIconItem() - To fetch the grid size thumbnail + * @param - item index + * @param - media list context type + * @return - return the hbicon of the item + */ + HbIcon* GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const; + + /** + * GetFsIconItem() - To fetch the full screen size thumbnail + * @param - item index + * @param - media list context type + * @return - return the hbicon of the item + */ + HbIcon* GetFsIconItem( int itemIndex,GlxTBContextType tbContextType )const; + + /** + * GetExternalIconItem() - To fetch the grid size thumbnail of external item. + * @param - item index + * @param - media list context type + * @return - return the hbicon of the item + */ + HbIcon* GetExternalIconItem( int itemIndex,GlxTBContextType tbContextType )const; + + /** + * setContextMode() - for setting the attribute context mode will be used mainly for + * retreiving thumbnail of different sizes. + */ + void setContextMode( GlxContextMode contextMode ); + + /** + *removeContextMode() - Removes the context */ - void removeContextMode(GlxContextMode contextMode); - void setFocusIndex(const QModelIndex &index); + void removeContextMode( GlxContextMode contextMode ); + + /** + * setFocusIndex() - To set the focus index in medialist + * @param - selected item index( focus index ) + */ + void setFocusIndex( const QModelIndex &index ); + + /** + * getFocusIndex() - Retrun the focus index from the medialist. + * @return - focus index. + */ QModelIndex getFocusIndex() const; - void setSelectedIndex(const QModelIndex &index); - HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const; + + /** + * setSelectedIndex() - To make the item as seleted in media list to perform some coomand. + * @param - selected item index + */ + void setSelectedIndex( const QModelIndex &index ); - -signals : - void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const; - /* - *signal to update the details view - */ - void updateDetailsView(); + /** + * getCorruptDefaultIcon() - IT will return the corrupt icon if item is corrupted else return the + * default item. + * @param - item index + */ + HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const; + + /** + * thumbnailPopulatedCheck() - To check the some initial page of item is loaded into cache or not + * @param - loaded thumbnail image index in cache. + */ + void thumbnailPopulatedCheck( int index ); + public slots: - void itemUpdated1(int mlIndex, GlxTBContextType tbContextType); - void itemsAdded(int startIndex, int endIndex); - void itemsRemoved(int startIndex, int endIndex); - void itemCorrupted(int itemIndex); - void albumTitleUpdated(QString aTitle); + /** + * itemUpdated() - call back fuction, when thumbnail is added into cache. + * It remove the icon from the local cache and emit the signal of data change. + * @param - item index + * @param - media list context type + */ + void itemUpdated( int mlIndex, GlxTBContextType tbContextType ); + + /** + * itemsAdded() - call back function when new items are added into collection. + * @param - start index of the newly added item + * @param - end endex of the newlyadd item + */ + void itemsAdded( int startIndex, int endIndex ); + + /** + * itemsRemoved() - call back function when some item are removed from the collection. + * @param - start index of the remove items + * @param - end endex of the remove items + */ + void itemsRemoved( int startIndex, int endIndex ); + + /** + * itemCorrupted() - call back function, when a item is corrupted. + * @param - index of the corrupt item + */ + void itemCorrupted( int itemIndex ); + + /** + * albumTitleUpdated() - call back function, when a album collection title is available. + * @param - title of the album. + */ + void albumTitleUpdated( QString aTitle ); + + /** + * modelpopulated() - callback function, when meida list item is populated. + * It set the visual window index and emit the signal to view about it. + */ void modelpopulated(); - /* - *Emits signal to update the details view + + /** + * updateDetailItems() - Emits signal to update the details view */ void updateDetailItems(); -protected: private slots: - void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType); + /** + * updateItemIcon() - update the icon into local cache. + * @param - item index + * @param - HbIcon + * @param - media list context type + */ + void updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ); private: GlxMLWrapper* mMLWrapper; @@ -125,6 +273,7 @@ int mSubState; GlxDRMUtilityWrapper* mDRMUtilityWrapper; int mTempVisibleWindowIndex; + bool thumbnailPopulatedFlag; }; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/uiengine/model/mediamodel/src/glxmediamodel.cpp --- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -33,17 +33,23 @@ #include #include "glxicondefs.h" //Contains the icon names/Ids -#include +#include "glxcollectionpluginall.hrh" +#include "glxviewids.h" + +#define DELTA_IMAGE 5 +#define INITIAL_POPULATE_IMAGE_COUNT 30 GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm) { qDebug("GlxMediaModel::GlxMediaModel"); + thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true; mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage); mMLWrapper->setContextMode( modelParm.contextMode() ); mContextMode = modelParm.contextMode( ) ; mDRMUtilityWrapper = new GlxDRMUtilityWrapper(); - int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); + + int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated(int, GlxTBContextType))); qDebug("updateItem() connection status %d", err); err = connect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int))); qDebug("itemCorrupted() connection status %d", err); @@ -62,7 +68,7 @@ itemFsIconCache.setMaxCost(5); itemExternalIconCache.setMaxCost(0); - m_DefaultIcon = new HbIcon(GLXICON_DEFAULT); + m_DefaultIcon = new HbIcon( GLXICON_DEFAULT ); m_CorruptIcon = new HbIcon( GLXICON_CORRUPT ); mExternalItems = NULL; externalDataCount = 0; @@ -82,14 +88,6 @@ delete m_CorruptIcon; m_CorruptIcon = NULL; clearExternalItems(); - int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); - err = disconnect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int))); - err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int))); - err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); - err = disconnect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType))); - err = disconnect(mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString))); - err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated())); - err = disconnect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems())); delete mMLWrapper; delete mDRMUtilityWrapper; } @@ -248,7 +246,7 @@ QPixmap tempPixmap = tempIcon->qicon().pixmap(128, 128); QSize itemSize = mMLWrapper->retrieveItemDimension(itemIndex); QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 ); - if(!((itemSize.width() < sz.width()) && (itemSize.height() < sz.height()))); { + if( !( ( itemSize.width() < sz.width() ) && ( itemSize.height() < sz.height() ) ) ) { itemSize.scale(sz, Qt::KeepAspectRatio); } tempPixmap = tempPixmap.scaled(itemSize, Qt::IgnoreAspectRatio ); @@ -398,24 +396,29 @@ } -void GlxMediaModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType ) +void GlxMediaModel::itemUpdated(int mlIndex,GlxTBContextType tbContextType ) { qDebug("GlxMediaModel::itemUpdated %d", mlIndex); //clear the grid and FS cache if they have any icons with them for that index - if(tbContextType == GlxTBContextGrid) { - itemIconCache.remove(mlIndex); + if( tbContextType == GlxTBContextGrid ) { + if ( !thumbnailPopulatedFlag ) { + thumbnailPopulatedCheck( mlIndex ); + } + itemIconCache.remove(mlIndex); } if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs) { itemFsIconCache.remove(mlIndex); } - emit dataChanged(index(mlIndex+externalDataCount,0),index(mlIndex+externalDataCount,0)); - + emit dataChanged( index( mlIndex , 0 ), index( mlIndex, 0 ) ); } void GlxMediaModel::itemCorrupted(int itemIndex) { qDebug("GlxMediaModel::itemCorrupted %d", itemIndex); - emit dataChanged(index(itemIndex+externalDataCount,0),index(itemIndex+externalDataCount,0)); + if ( !thumbnailPopulatedFlag ) { + thumbnailPopulatedCheck( itemIndex ); + } + emit dataChanged( index( itemIndex , 0 ), index( itemIndex, 0 ) ); } void GlxMediaModel::modelpopulated() @@ -551,6 +554,16 @@ return m_DefaultIcon ; } +void GlxMediaModel::thumbnailPopulatedCheck( int index ) +{ + int count = rowCount() - DELTA_IMAGE ; + int maxRange = INITIAL_POPULATE_IMAGE_COUNT + DELTA_IMAGE ; + if ( index >= count || ( index >= INITIAL_POPULATE_IMAGE_COUNT && index < maxRange ) ) { + thumbnailPopulatedFlag = TRUE; + emit thumbnailPopulated(); + } +} + bool GlxMediaModel::setData ( const QModelIndex & idx, const QVariant & value, int role ) { Q_UNUSED( idx ) diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/bwins/glxstatehandleru.def --- a/ui/viewmanagement/bwins/glxstatehandleru.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/bwins/glxstatehandleru.def Fri Aug 06 20:44:25 2010 +0530 @@ -1,42 +1,46 @@ EXPORTS - ?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const - ?actionTriggered@GlxStateManager@@QAEXH@Z @ 2 NONAME ; void GlxStateManager::actionTriggered(int) - ?setupItemsSignal@GlxStateManager@@IAEXXZ @ 3 NONAME ; void GlxStateManager::setupItemsSignal(void) - ??_EGlxStateManager@@UAE@I@Z @ 4 NONAME ; GlxStateManager::~GlxStateManager(unsigned int) - ?updateTNProgress@GlxStateManager@@QAEXH@Z @ 5 NONAME ; void GlxStateManager::updateTNProgress(int) - ?goBack@GlxStateManager@@QAEXHH@Z @ 6 NONAME ; void GlxStateManager::goBack(int, int) - ?enterMarkingMode@GlxStateManager@@QAEXXZ @ 7 NONAME ; void GlxStateManager::enterMarkingMode(void) - ??1GlxStateManager@@UAE@XZ @ 8 NONAME ; GlxStateManager::~GlxStateManager(void) - ?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void) - ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int) - ?eventHandler@GlxStateManager@@AAEXAAH@Z @ 11 NONAME ; void GlxStateManager::eventHandler(int &) - ?executeCommand@GlxStateManager@@QAE_NH@Z @ 12 NONAME ; bool GlxStateManager::executeCommand(int) - ?setupItems@GlxStateManager@@QAEXXZ @ 13 NONAME ; void GlxStateManager::setupItems(void) - ?previousState@GlxStateManager@@QAEXXZ @ 14 NONAME ; void GlxStateManager::previousState(void) - ?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 15 NONAME ; class GlxState * GlxStateManager::createState(int) - ?exitApplication@GlxStateManager@@AAEXXZ @ 16 NONAME ; void GlxStateManager::exitApplication(void) - ?changeState@GlxStateManager@@QAEXHH@Z @ 17 NONAME ; void GlxStateManager::changeState(int, int) - ?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 18 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0GlxStateManager@@QAE@XZ @ 19 NONAME ; GlxStateManager::GlxStateManager(void) - ?cleanupExternal@GlxStateManager@@QAEXXZ @ 20 NONAME ; void GlxStateManager::cleanupExternal(void) - ?setFullScreenContext@GlxStateManager@@AAEXXZ @ 21 NONAME ; void GlxStateManager::setFullScreenContext(void) - ?cleanAllModel@GlxStateManager@@QAEXXZ @ 22 NONAME ; void GlxStateManager::cleanAllModel(void) - ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *) - ?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 24 NONAME ; void * GlxStateManager::qt_metacast(char const *) - ?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 25 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject - ?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int) - ?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxStateManager::tr(char const *, char const *) - ?nextState@GlxStateManager@@QAEXHH@Z @ 28 NONAME ; void GlxStateManager::nextState(int, int) - ?launchFromExternal@GlxStateManager@@QAEXXZ @ 29 NONAME ; void GlxStateManager::launchFromExternal(void) - ?externalCommand@GlxStateManager@@IAEXH@Z @ 30 NONAME ; void GlxStateManager::externalCommand(int) - ?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 31 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir) - ?launchApplication@GlxStateManager@@QAEXXZ @ 32 NONAME ; void GlxStateManager::launchApplication(void) - ?exitMarkingMode@GlxStateManager@@QAEXXZ @ 33 NONAME ; void GlxStateManager::exitMarkingMode(void) - ?removeCurrentModel@GlxStateManager@@QAEXXZ @ 34 NONAME ; void GlxStateManager::removeCurrentModel(void) - ?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 35 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir) - ?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 36 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *) - ?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 37 NONAME ; void GlxStateManager::vanishProgressDialog(void) - ?launchProgressDialog@GlxStateManager@@AAEXXZ @ 38 NONAME ; void GlxStateManager::launchProgressDialog(void) - ?saveData@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::saveData(void) - ?launchActivity@GlxStateManager@@AAE_NXZ @ 40 NONAME ; bool GlxStateManager::launchActivity(void) + ?launchFetcher@GlxStateManager@@QAEXXZ @ 1 NONAME ; void GlxStateManager::launchFetcher(void) + ?saveData@GlxStateManager@@QAEXXZ @ 2 NONAME ; void GlxStateManager::saveData(void) + ?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const + ?actionTriggered@GlxStateManager@@QAEXH@Z @ 4 NONAME ; void GlxStateManager::actionTriggered(int) + ?setupItemsSignal@GlxStateManager@@IAEXXZ @ 5 NONAME ; void GlxStateManager::setupItemsSignal(void) + ??_EGlxStateManager@@UAE@I@Z @ 6 NONAME ; GlxStateManager::~GlxStateManager(unsigned int) + ?updateTNProgress@GlxStateManager@@QAEXH@Z @ 7 NONAME ; void GlxStateManager::updateTNProgress(int) + ?goBack@GlxStateManager@@QAEXHH@Z @ 8 NONAME ; void GlxStateManager::goBack(int, int) + ?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 9 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *) + ?enterMarkingMode@GlxStateManager@@QAEXXZ @ 10 NONAME ; void GlxStateManager::enterMarkingMode(void) + ??1GlxStateManager@@UAE@XZ @ 11 NONAME ; GlxStateManager::~GlxStateManager(void) + ?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void) + ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int) + ?eventHandler@GlxStateManager@@AAEXAAH@Z @ 14 NONAME ; void GlxStateManager::eventHandler(int &) + ?executeCommand@GlxStateManager@@QAE_NH@Z @ 15 NONAME ; bool GlxStateManager::executeCommand(int) + ?thumbnailPopulated@GlxStateManager@@QAEXXZ @ 16 NONAME ; void GlxStateManager::thumbnailPopulated(void) + ?setupItems@GlxStateManager@@QAEXXZ @ 17 NONAME ; void GlxStateManager::setupItems(void) + ?previousState@GlxStateManager@@QAEXXZ @ 18 NONAME ; void GlxStateManager::previousState(void) + ?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 19 NONAME ; class GlxState * GlxStateManager::createState(int) + ?exitApplication@GlxStateManager@@AAEXXZ @ 20 NONAME ; void GlxStateManager::exitApplication(void) + ?changeState@GlxStateManager@@QAEXHH@Z @ 21 NONAME ; void GlxStateManager::changeState(int, int) + ?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 22 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0GlxStateManager@@QAE@XZ @ 23 NONAME ; GlxStateManager::GlxStateManager(void) + ?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 24 NONAME ; void GlxStateManager::vanishProgressDialog(void) + ?saveImage@GlxStateManager@@AAEXXZ @ 25 NONAME ; void GlxStateManager::saveImage(void) + ?cleanupExternal@GlxStateManager@@QAEXXZ @ 26 NONAME ; void GlxStateManager::cleanupExternal(void) + ?gridItemSelected@GlxStateManager@@IAEXABVQModelIndex@@AAVQAbstractItemModel@@@Z @ 27 NONAME ; void GlxStateManager::gridItemSelected(class QModelIndex const &, class QAbstractItemModel &) + ?setFullScreenContext@GlxStateManager@@AAEXXZ @ 28 NONAME ; void GlxStateManager::setFullScreenContext(void) + ?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *) + ?cleanAllModel@GlxStateManager@@QAEXXZ @ 30 NONAME ; void GlxStateManager::cleanAllModel(void) + ?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int) + ?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject + ?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 33 NONAME ; void * GlxStateManager::qt_metacast(char const *) + ?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString GlxStateManager::tr(char const *, char const *) + ?nextState@GlxStateManager@@QAEXHH@Z @ 35 NONAME ; void GlxStateManager::nextState(int, int) + ?launchFromExternal@GlxStateManager@@QAEXXZ @ 36 NONAME ; void GlxStateManager::launchFromExternal(void) + ?externalCommand@GlxStateManager@@IAEXH@Z @ 37 NONAME ; void GlxStateManager::externalCommand(int) + ?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 38 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir) + ?launchApplication@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::launchApplication(void) + ?exitMarkingMode@GlxStateManager@@QAEXXZ @ 40 NONAME ; void GlxStateManager::exitMarkingMode(void) + ?removeCurrentModel@GlxStateManager@@QAEXXZ @ 41 NONAME ; void GlxStateManager::removeCurrentModel(void) + ?launchProgressDialog@GlxStateManager@@AAEXXZ @ 42 NONAME ; void GlxStateManager::launchProgressDialog(void) + ?launchActivity@GlxStateManager@@AAE_NXZ @ 43 NONAME ; bool GlxStateManager::launchActivity(void) + ?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 44 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir) diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/bwins/glxviewmanageru.def --- a/ui/viewmanagement/bwins/glxviewmanageru.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/bwins/glxviewmanageru.def Fri Aug 06 20:44:25 2010 +0530 @@ -8,45 +8,46 @@ ?qt_metacast@GlxViewManager@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxViewManager::qt_metacast(char const *) ??_EGlxViewManager@@UAE@I@Z @ 8 NONAME ; GlxViewManager::~GlxViewManager(unsigned int) ?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 9 NONAME ; void GlxViewManager::addBackSoftKeyAction(void) - ?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 10 NONAME ; class GlxView * GlxViewManager::findView(int) - ?createActions@GlxViewManager@@AAEXXZ @ 11 NONAME ; void GlxViewManager::createActions(void) - ?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject - ?handleAction@GlxViewManager@@QAEXXZ @ 13 NONAME ; void GlxViewManager::handleAction(void) - ?handleUserAction@GlxViewManager@@QAEXHH@Z @ 14 NONAME ; void GlxViewManager::handleUserAction(int, int) - ?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const - ?actionTriggered@GlxViewManager@@IAEXH@Z @ 16 NONAME ; void GlxViewManager::actionTriggered(int) - ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 17 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect) - ?handleMenuAction@GlxViewManager@@QAEXH@Z @ 18 NONAME ; void GlxViewManager::handleMenuAction(int) - ?externalCommand@GlxViewManager@@IAEXH@Z @ 19 NONAME ; void GlxViewManager::externalCommand(int) - ??0GlxViewManager@@QAE@XZ @ 20 NONAME ; GlxViewManager::GlxViewManager(void) - ?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 21 NONAME ; void GlxViewManager::exitMarkingMode(int) - ?cancelTimer@GlxViewManager@@QAEXXZ @ 22 NONAME ; void GlxViewManager::cancelTimer(void) - ?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 23 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *) - ?createToolBar@GlxViewManager@@AAEXXZ @ 24 NONAME ; void GlxViewManager::createToolBar(void) - ?removeConnection@GlxViewManager@@AAEXXZ @ 25 NONAME ; void GlxViewManager::removeConnection(void) - ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *) - ?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::createMarkingModeActions(void) - ?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *) - ?deActivateView@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::deActivateView(void) - ?destroyView@GlxViewManager@@QAEXH@Z @ 30 NONAME ; void GlxViewManager::destroyView(int) - ?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 31 NONAME ; class GlxView * GlxViewManager::resolveView(int) - ??1GlxViewManager@@UAE@XZ @ 32 NONAME ; GlxViewManager::~GlxViewManager(void) - ?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 33 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int) - ?addConnection@GlxViewManager@@AAEXXZ @ 34 NONAME ; void GlxViewManager::addConnection(void) - ?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 35 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const - ?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::createMarkingModeToolBar(void) - ?checkMarked@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::checkMarked(void) - ?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 38 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF) - ?setupItems@GlxViewManager@@QAEXXZ @ 39 NONAME ; void GlxViewManager::setupItems(void) - ?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 40 NONAME ; void GlxViewManager::enterMarkingMode(int) - ?actionProcess@GlxViewManager@@QAEXH@Z @ 41 NONAME ; void GlxViewManager::actionProcess(int) - ?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 42 NONAME ; void GlxViewManager::deactivateCurrentView(void) - ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int) - ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *) - ?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 45 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *) - ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int) - ?activateView@GlxViewManager@@AAEXXZ @ 47 NONAME ; void GlxViewManager::activateView(void) - ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 48 NONAME ; void GlxViewManager::hideProgressDialog(void) - ?applicationReady@GlxViewManager@@IAEXXZ @ 49 NONAME ; void GlxViewManager::applicationReady(void) - ?handleReadyView@GlxViewManager@@QAEXXZ @ 50 NONAME ; void GlxViewManager::handleReadyView(void) + ?applicationReady@GlxViewManager@@IAEXXZ @ 10 NONAME ; void GlxViewManager::applicationReady(void) + ?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 11 NONAME ; class GlxView * GlxViewManager::findView(int) + ?createActions@GlxViewManager@@AAEXXZ @ 12 NONAME ; void GlxViewManager::createActions(void) + ?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject + ?handleAction@GlxViewManager@@QAEXXZ @ 14 NONAME ; void GlxViewManager::handleAction(void) + ?handleUserAction@GlxViewManager@@QAEXHH@Z @ 15 NONAME ; void GlxViewManager::handleUserAction(int, int) + ?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const + ?actionTriggered@GlxViewManager@@IAEXH@Z @ 17 NONAME ; void GlxViewManager::actionTriggered(int) + ?getSubState@GlxViewManager@@AAEHXZ @ 18 NONAME ; int GlxViewManager::getSubState(void) + ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 19 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect) + ?handleMenuAction@GlxViewManager@@QAEXH@Z @ 20 NONAME ; void GlxViewManager::handleMenuAction(int) + ?externalCommand@GlxViewManager@@IAEXH@Z @ 21 NONAME ; void GlxViewManager::externalCommand(int) + ??0GlxViewManager@@QAE@XZ @ 22 NONAME ; GlxViewManager::GlxViewManager(void) + ?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 23 NONAME ; void GlxViewManager::exitMarkingMode(int) + ?cancelTimer@GlxViewManager@@QAEXXZ @ 24 NONAME ; void GlxViewManager::cancelTimer(void) + ?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *) + ?createToolBar@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::createToolBar(void) + ?removeConnection@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::removeConnection(void) + ?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 28 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *) + ?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::createMarkingModeActions(void) + ?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 30 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *) + ?deActivateView@GlxViewManager@@AAEXXZ @ 31 NONAME ; void GlxViewManager::deActivateView(void) + ?destroyView@GlxViewManager@@QAEXH@Z @ 32 NONAME ; void GlxViewManager::destroyView(int) + ?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 33 NONAME ; class GlxView * GlxViewManager::resolveView(int) + ??1GlxViewManager@@UAE@XZ @ 34 NONAME ; GlxViewManager::~GlxViewManager(void) + ?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 35 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int) + ?addConnection@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::addConnection(void) + ?hideProgressDialog@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::hideProgressDialog(void) + ?handleReadyView@GlxViewManager@@QAEXXZ @ 38 NONAME ; void GlxViewManager::handleReadyView(void) + ?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 39 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const + ?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::createMarkingModeToolBar(void) + ?checkMarked@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::checkMarked(void) + ?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 42 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF) + ?setupItems@GlxViewManager@@QAEXXZ @ 43 NONAME ; void GlxViewManager::setupItems(void) + ?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::enterMarkingMode(int) + ?actionProcess@GlxViewManager@@QAEXH@Z @ 45 NONAME ; void GlxViewManager::actionProcess(int) + ?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 46 NONAME ; void GlxViewManager::deactivateCurrentView(void) + ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int) + ?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *) + ?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 49 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *) + ?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int) + ?activateView@GlxViewManager@@AAEXXZ @ 51 NONAME ; void GlxViewManager::activateView(void) diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/eabi/glxstatehandleru.def --- a/ui/viewmanagement/eabi/glxstatehandleru.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/eabi/glxstatehandleru.def Fri Aug 06 20:44:25 2010 +0530 @@ -3,40 +3,44 @@ _ZN15GlxStateManager11changeStateEii @ 2 NONAME _ZN15GlxStateManager11createModelEi13NavigationDir @ 3 NONAME _ZN15GlxStateManager11createStateEi @ 4 NONAME - _ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME - _ZN15GlxStateManager11qt_metacastEPKc @ 6 NONAME - _ZN15GlxStateManager12eventHandlerERi @ 7 NONAME - _ZN15GlxStateManager13cleanAllModelEv @ 8 NONAME - _ZN15GlxStateManager13previousStateEv @ 9 NONAME - _ZN15GlxStateManager14executeCommandEi @ 10 NONAME - _ZN15GlxStateManager15actionTriggeredEi @ 11 NONAME - _ZN15GlxStateManager15cleanupExternalEv @ 12 NONAME - _ZN15GlxStateManager15createGridModelEi13NavigationDir @ 13 NONAME - _ZN15GlxStateManager15exitApplicationEv @ 14 NONAME - _ZN15GlxStateManager15exitMarkingModeEv @ 15 NONAME - _ZN15GlxStateManager15externalCommandEi @ 16 NONAME - _ZN15GlxStateManager16enterMarkingModeEv @ 17 NONAME - _ZN15GlxStateManager16setupItemsSignalEv @ 18 NONAME - _ZN15GlxStateManager16staticMetaObjectE @ 19 NONAME DATA 16 - _ZN15GlxStateManager16updateTNProgressEi @ 20 NONAME - _ZN15GlxStateManager17launchApplicationEv @ 21 NONAME - _ZN15GlxStateManager18launchFromExternalEv @ 22 NONAME - _ZN15GlxStateManager18removeCurrentModelEv @ 23 NONAME - _ZN15GlxStateManager19getStaticMetaObjectEv @ 24 NONAME - _ZN15GlxStateManager20setFullScreenContextEv @ 25 NONAME - _ZN15GlxStateManager6goBackEii @ 26 NONAME - _ZN15GlxStateManager9nextStateEii @ 27 NONAME - _ZN15GlxStateManagerC1Ev @ 28 NONAME - _ZN15GlxStateManagerC2Ev @ 29 NONAME - _ZN15GlxStateManagerD0Ev @ 30 NONAME - _ZN15GlxStateManagerD1Ev @ 31 NONAME - _ZN15GlxStateManagerD2Ev @ 32 NONAME - _ZNK15GlxStateManager10metaObjectEv @ 33 NONAME - _ZTI15GlxStateManager @ 34 NONAME - _ZTV15GlxStateManager @ 35 NONAME - _ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 36 NONAME - _ZN15GlxStateManager20launchProgressDialogEv @ 37 NONAME - _ZN15GlxStateManager20vanishProgressDialogEv @ 38 NONAME - _ZN15GlxStateManager14launchActivityEv @ 39 NONAME - _ZN15GlxStateManager8saveDataEv @ 40 NONAME + _ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 5 NONAME + _ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME + _ZN15GlxStateManager11qt_metacastEPKc @ 7 NONAME + _ZN15GlxStateManager12eventHandlerERi @ 8 NONAME + _ZN15GlxStateManager13cleanAllModelEv @ 9 NONAME + _ZN15GlxStateManager13launchFetcherEv @ 10 NONAME + _ZN15GlxStateManager13previousStateEv @ 11 NONAME + _ZN15GlxStateManager14executeCommandEi @ 12 NONAME + _ZN15GlxStateManager14launchActivityEv @ 13 NONAME + _ZN15GlxStateManager15actionTriggeredEi @ 14 NONAME + _ZN15GlxStateManager15cleanupExternalEv @ 15 NONAME + _ZN15GlxStateManager15createGridModelEi13NavigationDir @ 16 NONAME + _ZN15GlxStateManager15exitApplicationEv @ 17 NONAME + _ZN15GlxStateManager15exitMarkingModeEv @ 18 NONAME + _ZN15GlxStateManager15externalCommandEi @ 19 NONAME + _ZN15GlxStateManager16enterMarkingModeEv @ 20 NONAME + _ZN15GlxStateManager16gridItemSelectedERK11QModelIndexR18QAbstractItemModel @ 21 NONAME + _ZN15GlxStateManager16setupItemsSignalEv @ 22 NONAME + _ZN15GlxStateManager16staticMetaObjectE @ 23 NONAME DATA 16 + _ZN15GlxStateManager16updateTNProgressEi @ 24 NONAME + _ZN15GlxStateManager17launchApplicationEv @ 25 NONAME + _ZN15GlxStateManager18launchFromExternalEv @ 26 NONAME + _ZN15GlxStateManager18removeCurrentModelEv @ 27 NONAME + _ZN15GlxStateManager18thumbnailPopulatedEv @ 28 NONAME + _ZN15GlxStateManager19getStaticMetaObjectEv @ 29 NONAME + _ZN15GlxStateManager20launchProgressDialogEv @ 30 NONAME + _ZN15GlxStateManager20setFullScreenContextEv @ 31 NONAME + _ZN15GlxStateManager20vanishProgressDialogEv @ 32 NONAME + _ZN15GlxStateManager6goBackEii @ 33 NONAME + _ZN15GlxStateManager8saveDataEv @ 34 NONAME + _ZN15GlxStateManager9nextStateEii @ 35 NONAME + _ZN15GlxStateManager9saveImageEv @ 36 NONAME + _ZN15GlxStateManagerC1Ev @ 37 NONAME + _ZN15GlxStateManagerC2Ev @ 38 NONAME + _ZN15GlxStateManagerD0Ev @ 39 NONAME + _ZN15GlxStateManagerD1Ev @ 40 NONAME + _ZN15GlxStateManagerD2Ev @ 41 NONAME + _ZNK15GlxStateManager10metaObjectEv @ 42 NONAME + _ZTI15GlxStateManager @ 43 NONAME + _ZTV15GlxStateManager @ 44 NONAME diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/eabi/glxviewmanageru.def --- a/ui/viewmanagement/eabi/glxviewmanageru.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/eabi/glxviewmanageru.def Fri Aug 06 20:44:25 2010 +0530 @@ -5,48 +5,49 @@ _ZN14GlxViewManager11cancelTimerEv @ 4 NONAME _ZN14GlxViewManager11checkMarkedEv @ 5 NONAME _ZN14GlxViewManager11destroyViewEi @ 6 NONAME - _ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 7 NONAME - _ZN14GlxViewManager11qt_metacastEPKc @ 8 NONAME - _ZN14GlxViewManager11resolveViewEi @ 9 NONAME - _ZN14GlxViewManager12activateViewEv @ 10 NONAME - _ZN14GlxViewManager12handleActionEv @ 11 NONAME - _ZN14GlxViewManager13actionProcessEi @ 12 NONAME - _ZN14GlxViewManager13addConnectionEv @ 13 NONAME - _ZN14GlxViewManager13createActionsEv @ 14 NONAME - _ZN14GlxViewManager13createToolBarEv @ 15 NONAME - _ZN14GlxViewManager14deActivateViewEv @ 16 NONAME - _ZN14GlxViewManager14effectFinishedEv @ 17 NONAME - _ZN14GlxViewManager15actionTriggeredEi @ 18 NONAME - _ZN14GlxViewManager15exitMarkingModeEi @ 19 NONAME - _ZN14GlxViewManager15externalCommandEi @ 20 NONAME - _ZN14GlxViewManager16enterMarkingModeEi @ 21 NONAME - _ZN14GlxViewManager16handleMenuActionEi @ 22 NONAME - _ZN14GlxViewManager16handleUserActionEii @ 23 NONAME - _ZN14GlxViewManager16removeConnectionEv @ 24 NONAME - _ZN14GlxViewManager16staticMetaObjectE @ 25 NONAME DATA 16 - _ZN14GlxViewManager17getSelectionModelEi @ 26 NONAME - _ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 27 NONAME - _ZN14GlxViewManager17updateToolBarIconEi @ 28 NONAME - _ZN14GlxViewManager19getStaticMetaObjectEv @ 29 NONAME - _ZN14GlxViewManager20addBackSoftKeyActionEv @ 30 NONAME - _ZN14GlxViewManager20launchProgressDialogEi @ 31 NONAME - _ZN14GlxViewManager20updateProgressDialogEi @ 32 NONAME - _ZN14GlxViewManager21deactivateCurrentViewEv @ 33 NONAME - _ZN14GlxViewManager24createMarkingModeActionsEv @ 34 NONAME - _ZN14GlxViewManager24createMarkingModeToolBarEv @ 35 NONAME - _ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 36 NONAME - _ZN14GlxViewManager8findViewEi @ 37 NONAME - _ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 38 NONAME - _ZN14GlxViewManagerC1Ev @ 39 NONAME - _ZN14GlxViewManagerC2Ev @ 40 NONAME - _ZN14GlxViewManagerD0Ev @ 41 NONAME - _ZN14GlxViewManagerD1Ev @ 42 NONAME - _ZN14GlxViewManagerD2Ev @ 43 NONAME - _ZNK14GlxViewManager10metaObjectEv @ 44 NONAME - _ZNK14GlxViewManager11orientationEv @ 45 NONAME - _ZTI14GlxViewManager @ 46 NONAME - _ZTV14GlxViewManager @ 47 NONAME - _ZN14GlxViewManager18hideProgressDialogEv @ 48 NONAME - _ZN14GlxViewManager15handleReadyViewEv @ 49 NONAME - _ZN14GlxViewManager16applicationReadyEv @ 50 NONAME + _ZN14GlxViewManager11getSubStateEv @ 7 NONAME + _ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 8 NONAME + _ZN14GlxViewManager11qt_metacastEPKc @ 9 NONAME + _ZN14GlxViewManager11resolveViewEi @ 10 NONAME + _ZN14GlxViewManager12activateViewEv @ 11 NONAME + _ZN14GlxViewManager12handleActionEv @ 12 NONAME + _ZN14GlxViewManager13actionProcessEi @ 13 NONAME + _ZN14GlxViewManager13addConnectionEv @ 14 NONAME + _ZN14GlxViewManager13createActionsEv @ 15 NONAME + _ZN14GlxViewManager13createToolBarEv @ 16 NONAME + _ZN14GlxViewManager14deActivateViewEv @ 17 NONAME + _ZN14GlxViewManager14effectFinishedEv @ 18 NONAME + _ZN14GlxViewManager15actionTriggeredEi @ 19 NONAME + _ZN14GlxViewManager15exitMarkingModeEi @ 20 NONAME + _ZN14GlxViewManager15externalCommandEi @ 21 NONAME + _ZN14GlxViewManager15handleReadyViewEv @ 22 NONAME + _ZN14GlxViewManager16applicationReadyEv @ 23 NONAME + _ZN14GlxViewManager16enterMarkingModeEi @ 24 NONAME + _ZN14GlxViewManager16handleMenuActionEi @ 25 NONAME + _ZN14GlxViewManager16handleUserActionEii @ 26 NONAME + _ZN14GlxViewManager16removeConnectionEv @ 27 NONAME + _ZN14GlxViewManager16staticMetaObjectE @ 28 NONAME DATA 16 + _ZN14GlxViewManager17getSelectionModelEi @ 29 NONAME + _ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 30 NONAME + _ZN14GlxViewManager17updateToolBarIconEi @ 31 NONAME + _ZN14GlxViewManager18hideProgressDialogEv @ 32 NONAME + _ZN14GlxViewManager19getStaticMetaObjectEv @ 33 NONAME + _ZN14GlxViewManager20addBackSoftKeyActionEv @ 34 NONAME + _ZN14GlxViewManager20launchProgressDialogEi @ 35 NONAME + _ZN14GlxViewManager20updateProgressDialogEi @ 36 NONAME + _ZN14GlxViewManager21deactivateCurrentViewEv @ 37 NONAME + _ZN14GlxViewManager24createMarkingModeActionsEv @ 38 NONAME + _ZN14GlxViewManager24createMarkingModeToolBarEv @ 39 NONAME + _ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 40 NONAME + _ZN14GlxViewManager8findViewEi @ 41 NONAME + _ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 42 NONAME + _ZN14GlxViewManagerC1Ev @ 43 NONAME + _ZN14GlxViewManagerC2Ev @ 44 NONAME + _ZN14GlxViewManagerD0Ev @ 45 NONAME + _ZN14GlxViewManagerD1Ev @ 46 NONAME + _ZN14GlxViewManagerD2Ev @ 47 NONAME + _ZNK14GlxViewManager10metaObjectEv @ 48 NONAME + _ZNK14GlxViewManager11orientationEv @ 49 NONAME + _ZTI14GlxViewManager @ 50 NONAME + _ZTV14GlxViewManager @ 51 NONAME diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/inc/glxliststate.h --- a/ui/viewmanagement/statehandler/inc/glxliststate.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/inc/glxliststate.h Fri Aug 06 20:44:25 2010 +0530 @@ -20,12 +20,43 @@ #include +/** + * class to manage list state + */ class GlxListState : public GlxState { public : + /** + * constructor + */ GlxListState(GlxState *preState = NULL); + + /** + * return current state of list + * @return current state + */ + int state() const { return (int) mState; } + /** + * set current state + * @param internalState substate of list to be set + */ + void setState(int internalState) { mState = (ListState) internalState; } + + /** + * event handler + */ void eventHandler(qint32 &id); - void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect); + /** + * set transition parameter + * @param dir navigation direction + * @param effect effect to be run on view transition + * @param viewEffect + */ + void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect); +private: + ///list internal state + ListState mState; + }; #endif /* GLXLISTSTATE_H */ diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h Fri Aug 06 20:44:25 2010 +0530 @@ -0,0 +1,61 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + +#ifndef GLXORIENTATIONSENSORFILTER_H +#define GLXORIENTATIONSENSORFILTER_H + +#include +#include +QTM_USE_NAMESPACE + +/** + * Class Description + * To read the current orientaion from the sensor + */ +class GlxOrientationSensorFilter : public QOrientationFilter +{ +public : + /** + * Constructor + */ + GlxOrientationSensorFilter(); + + /** + * Destructor + */ + ~GlxOrientationSensorFilter(); + + /** + * filter() - callback function to get the current Orientation information + * @param QOrientationReading + * @return please look /// @see QOrientationFilter + */ + bool filter( QOrientationReading *reading ); + + /** + * orientation() - return the current device orientation + */ + int orientation() { return mOrient; } + +private : + int mOrient; + QOrientationSensor *m_orientation ; +}; + +/// for detail please @see QOrientationFilter + +#endif /* GLXORIENTATIONSENSORFILTER_H */ \ No newline at end of file diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/inc/glxslideshowstate.h --- a/ui/viewmanagement/statehandler/inc/glxslideshowstate.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/inc/glxslideshowstate.h Fri Aug 06 20:44:25 2010 +0530 @@ -21,21 +21,56 @@ #include class GlxStateManager; +class GlxOrientationSensorFilter; +/** + * Class Description + * This is slide show state corresponding to slide show view. + */ class GlxSlideShowState : public GlxState { public : + /** + * constructor + * @param pointer of state manager. + * @param pointer of perivious state. + */ GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState = NULL); + + /** + * state() + * @return return the substate. + */ int state() const { return (int) mState; } + + /** + * setState() - set the current substate + * @param substate of the this state + */ void setState(int internalState) { mState = (SlideShowState) internalState; } - void eventHandler(qint32 &id); + + /** + * eventHandler() - A command handler of this state + * @param command id + */ + void eventHandler(qint32 &commandId); + + /** + * albumItemEventHandler() - A command handle for album substate + * @param command id + */ void albumItemEventHandler( qint32 &id ); - ~GlxSlideShowState() {} + + /** + * Destructor + */ + ~GlxSlideShowState(); private: //slide show internal state SlideShowState mState; GlxStateManager *mStateManager; + GlxOrientationSensorFilter *mOrientSensorFilter; }; #endif /* GLXSLIDESHOWSTATE_H */ diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/inc/glxstatemanager.h --- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h Fri Aug 06 20:44:25 2010 +0530 @@ -25,6 +25,7 @@ #include #include #include +#include class GlxState; class GlxViewManager; @@ -40,178 +41,236 @@ #define GLX_STATEMANAGER_EXPORT Q_DECL_IMPORT #endif +/** + * Class Description + * class to create and manage different states and view navigation + */ + class GLX_STATEMANAGER_EXPORT GlxStateManager : public QObject { Q_OBJECT friend class TestGlxStateManager; public : - /* + /** * Constructor */ GlxStateManager(); - /* + /** * Destructor */ virtual ~GlxStateManager(); - - /* - * Fuction to launch the application from some external world + + /** + * launchFetcher() - launch image fetcher + */ + void launchFetcher(); + + /** + * launchFromExternal() - Fuction to launch the application from some external world */ void launchFromExternal(); - /* - * Clean the all externel data + /** + * cleanupExternal() - Clean the all externel data */ void cleanupExternal(); - /* - * Move the views to the multiple item selection state + /** + * enterMarkingMode() - Move the views to the multiple item selection state */ void enterMarkingMode(); - /* - * Exit from the multiselection state + /** + * exitMarkingMode() - Exit from the multiselection state */ void exitMarkingMode(); - /* - * Execute the commant on multiple selected item + /** + * executeCommand() - Execute the commant on multiple selected item. + * @param - command Id to execute. */ - bool executeCommand(qint32 commandId); + bool executeCommand( qint32 commandId ); - /* - * when application goes into background or come back to foreground + /** + * eventFilter() - when application goes into background or come back to foreground * set and reset the background thumbnail generation property + * @param QObject + * @param QEvent */ - bool eventFilter(QObject *obj, QEvent *ev); + bool eventFilter( QObject *obj, QEvent *ev ); signals : - /* - * Send the user activities ( command ) to the external world + /** + * externalCommand() - Send the user activities ( command ) to the external world + * @param - command Id to execute. */ - void externalCommand(int cmdId); + void externalCommand( int cmdId ); - /* - * TO send the signal to initialise the rest of items + /** + * setupItemsSignal() - TO send the signal to initialise the non critical resoruce * which is not created in the launch sequence */ void setupItemsSignal(); + + /** + * gridItemSelected() - signal to send current model and selected index for fetcher service + * @param - selected item model index + * @param - model + */ + void gridItemSelected( const QModelIndex &,QAbstractItemModel & ); public slots: - /* - * To launch the application + /** + * launchApplication() - To launch the application */ void launchApplication(); - /* - * To handle the user action, view switching etc + /** + * actionTriggered() - To handle the user action, view switching etc + * @param - user action ID. */ - void actionTriggered(qint32 id); + void actionTriggered( qint32 id ); - /* - * To create the items which is not created in the aluch sequence + /** + * setupItems() -To create the items which is not created in the aluch sequence */ void setupItems(); - /* - * call back function to monitor the change in thumbnail manager + /** + * updateTNProgress() - call back function to monitor the change in thumbnail manager + * @param - number of item left to generate the thumbnail */ - void updateTNProgress( int count); + void updateTNProgress( int count ); + + /** + * thumbnailPopulated() - call back to get the information that some initial page are loaded + * into cache. + * It will vanish the progressbar dialog. + */ + void thumbnailPopulated(); + + /** + * saveData() - To save the activity data + */ void saveData(); public : - /* - * It will create a new state and replace the current state with new state in the stack. + /** + * changeState() - It will create a new state and replace the current state with new state in the stack. * It will use in the case of state switching. * use -1 if state does not have internal state + * @param - new state id. + * @param - internal or substate of new state. */ - void changeState(qint32 newStateId, int internalState ); + void changeState( qint32 newStateId, int internalState ); - /* - * Go back to previous state + /** + * previousState() - Go back to previous state and if there is no state in the stack + * then exit the application. */ void previousState(); - /* - * Go back to a state in hierarchy and pop all the state upto that level. + /** + * goBack() - Go back to a state in hierarchy and pop all the state upto that level. * if state is not found, then all the state from the hierachy is removed and create a new state on level 0 * This function will be use in the case when more then one back is required in single event. + * @param - new state id. + * @param - internal or substate of new state. */ - void goBack(qint32 stateId, int internalState); + void goBack( qint32 stateId, int internalState ); - /* - * Create a new state and current state should be pushed into stack. + /** + * nextState() - Create a new state and current state should be pushed into stack. * use -1 if state does not have internal state + * @param - new state id. + * @param - internal or substate of new state. */ - void nextState(qint32 newStateId, int internalState ); + void nextState( qint32 newStateId, int internalState ); - /* - * It will delete the current model + /** + * removeCurrentModel() - It will delete the current model */ void removeCurrentModel(); - /* - * It will delete the all model used by state manager + /** + * cleanAllModel() - It will delete the all model used by state manager */ void cleanAllModel(); - private: - /* - * Launch the harvesting and TN generation progress bar dialog + /** + * launchProgressDialog() - Launch the harvesting and TN generation progress bar dialog */ void launchProgressDialog(); - /* - * remove the harvesting and TN generation progress bar dialog + /** + * vanishProgressDialog() - create the grid view model and wait for loading of some initial page of data into + * cache. */ void vanishProgressDialog(); - /* - * Factory function to create the state. + /** + * createState() - Factory function to create the state. */ - GlxState * createState(qint32 state); + GlxState * createState( qint32 state ); - /* - * Factory function to create the model. + /** + * createModel() - Factory function to create the model. + * @param - state id of the state. + * @param - state navigation direction */ - void createModel(qint32 stateId, NavigationDir dir = NO_DIR); + void createModel( qint32 stateId, NavigationDir dir = NO_DIR ); - /* - * Factory function to create the grid model. + /** + * createGridModel() - Factory function to create the grid model. + * @param - internal state of grid state. + * @param - state navigation direction. */ - void createGridModel(int internalState, NavigationDir dir = NO_DIR); + void createGridModel( int internalState, NavigationDir dir = NO_DIR ); - /* - * To set the fullscreen context based on the currrent orientation + /** + * setFullScreenContext() - To set the fullscreen context based on the currrent orientation */ void setFullScreenContext(); - /* - * Apllication event handler function + /** + * setFullScreenContext() - Apllication event handler function + * @param - event id */ - void eventHandler(qint32 &id); + void eventHandler( qint32 &id ); - /* - * A function to care the exit for application, in the case when application launch from internal and external + /** + * exitApplication() - A function to care the exit for application, in the case when application launch from internal and external */ void exitApplication(); - /*Launch Application as an acitivyt. + /** + * launchActivity() -Launch Application as an activity. * Return Value @0 : If launching an activity fails * @1 : If launch activity passes */ bool launchActivity(); + + /** + * saveImage() - save current image if it is launched from private path. + */ + void saveImage(); + private: GlxViewManager *mViewManager; - GlxMediaModel *mAllMediaModel; // for all grid - GlxMediaModel *mAlbumGridMediaModel; // for album grid - GlxAlbumModel *mAlbumMediaModel; // for album list - GlxMediaModel *mImageviewerMediaModel;// for image viewer - QAbstractItemModel *mCurrentModel; // no owner ship + /// for all grid + GlxMediaModel *mAllMediaModel; + /// for album grid + GlxMediaModel *mAlbumGridMediaModel; + /// for album list + GlxAlbumModel *mAlbumMediaModel; + /// for image viewer + GlxMediaModel *mImageviewerMediaModel; + /// no owner ship + QAbstractItemModel *mCurrentModel; GlxState *mCurrentState; GlxActionHandler *mActionHandler; GlxTNObserver *mTNObserver; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/src/glxgridstate.cpp --- a/ui/viewmanagement/statehandler/src/glxgridstate.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxgridstate.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -43,10 +43,12 @@ switch ( mState ) { case ALL_ITEM_S : + case FETCHER_ITEM_S : allItemEventHandler ( id ) ; break; case ALBUM_ITEM_S : + case FETCHER_ALBUM_ITEM_S : albumItemEventHandler ( id ) ; break; @@ -60,11 +62,10 @@ qDebug("GlxGridState::defaultEventHandler() action id = %d", id); switch(id) { - case EGlxCmdFullScreenOpen : - id = EGlxCmdHandled; - mStateManager->nextState( GLX_FULLSCREENVIEW_ID, -1 ); - break; - + case EGlxCmdFetcherFullScreenOpen: + id = EGlxCmdHandled; + mStateManager->nextState( GLX_FULLSCREENVIEW_ID, FETCHER_S ); + break; case EGlxCmdAddToAlbum : case EGlxCmdDelete : case EGlxCmdRemoveFrom : @@ -110,9 +111,13 @@ switch(id) { case EGlxCmdAllGridOpen : + case EGlxCmdFetcherAllGridOpen : id = EGlxCmdHandled; break ; - + case EGlxCmdFullScreenOpen : + mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALL_FULLSCREEN_S ); + id = EGlxCmdHandled; + break; default : break; } @@ -128,14 +133,25 @@ mStateManager->goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ); id = EGlxCmdHandled; break ; + + case EGlxCmdFetcherAllGridOpen : + mStateManager->removeCurrentModel(); + mStateManager->goBack( GLX_GRIDVIEW_ID, FETCHER_ITEM_S ); + id = EGlxCmdHandled; + break ; case EGlxCmdAlbumListOpen : + case EGlxCmdFetcherAlbumListOpen: case EGlxCmdBack : mStateManager->removeCurrentModel(); mStateManager->previousState(); id = EGlxCmdHandled; break; - + + case EGlxCmdFullScreenOpen : + mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALBUM_FULLSCREEN_S ); + id = EGlxCmdHandled; + break; default : break; } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/src/glxliststate.cpp --- a/ui/viewmanagement/statehandler/src/glxliststate.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxliststate.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -30,6 +30,7 @@ qDebug("GlxListState::eventHandler action id = %d", id); switch(id) { case EGlxCmdAlbumListOpen : + case EGlxCmdFetcherAlbumListOpen: id = EGlxCmdHandled; break ; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + +#include "glxorientationsensorfilter.h" + +GlxOrientationSensorFilter::GlxOrientationSensorFilter() +{ + qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() enter" ); + m_orientation = new QOrientationSensor(); + m_orientation->addFilter( this ); + m_orientation->start(); + mOrient = QOrientationReading::Undefined ; + qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() exit" ); +} + +GlxOrientationSensorFilter::~GlxOrientationSensorFilter() +{ + m_orientation->stop(); + delete m_orientation; +} + +bool GlxOrientationSensorFilter::filter( QOrientationReading *reading ) +{ + qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() filter " ); + mOrient = reading->orientation() ; + qDebug("GlxOrientationSensorFilter::filter() orientation = %d", mOrient ); + return false; +} diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/src/glxslideshowstate.cpp --- a/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -15,37 +15,53 @@ * */ -#include -#include -#include #include +#include "glxslideshowstate.h" +#include "glxstatemanager.h" +#include "glxcommandhandlers.hrh" +#include "glxorientationsensorfilter.h" + GlxSlideShowState::GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_SLIDESHOWVIEW_ID, preState) { mStateManager = stateManager; + mOrientSensorFilter = NULL; + //mOrientSensorFilter = new GlxOrientationSensorFilter(); mState = NO_SLIDESHOW_S; } void GlxSlideShowState::eventHandler( qint32 &id ) { - qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id); + qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id); + + /*switch ( id ) { + case EGlxCmdBack : + if ( mOrientSensorFilter->orientation() == QOrientationReading::TopUp ) { + id = EGlxCmdPlayBackAnim ; + } + break; + + default : + break ; + }*/ if ( mState == SLIDESHOW_ALBUM_ITEM_S ) { albumItemEventHandler( id ); } } -void GlxSlideShowState::albumItemEventHandler( qint32 &id ) +void GlxSlideShowState::albumItemEventHandler( qint32 &commandId ) { - switch ( id ) { + switch ( commandId ) { /* in the case of slide show play through list view item specfice menu option, a new model was * created so first remove the current model and then go back to pervious state */ + case EGlxCmdSlideShowBack : case EGlxCmdBack : case EGlxCmdEmptyData : //memory card was removed ( no data ) mStateManager->removeCurrentModel(); mStateManager->previousState(); - id = EGlxCmdHandled; + commandId = EGlxCmdHandled; break; default : @@ -53,3 +69,8 @@ } } +GlxSlideShowState::~GlxSlideShowState() +{ + delete mOrientSensorFilter; +} + diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/src/glxstatemanager.cpp --- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -51,7 +51,7 @@ #include "glxplugincommandid.hrh" #include "glxlog.h" #include "glxtracer.h" - +#include GlxStateManager::GlxStateManager() : mAllMediaModel( NULL ), @@ -121,38 +121,50 @@ return QObject::eventFilter(obj, event); } +void GlxStateManager::launchFetcher() +{ + qDebug("GlxStateManager::launchFetcher"); + mCurrentState = createState(GLX_GRIDVIEW_ID); + mCurrentState->setState(FETCHER_ITEM_S); + + createModel(GLX_GRIDVIEW_ID); + mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); +} + void GlxStateManager::launchApplication() { qDebug("GlxStateManager::launchApplication"); - bool activitySuccess = false; + bool activitySuccess = false; //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S) - HbApplication* app = qobject_cast(qApp); - if(app->activateReason() == Hb::ActivationReasonActivity) { - activitySuccess = launchActivity(); - } - if( !activitySuccess ) { - mCurrentState = createState( GLX_GRIDVIEW_ID ); - mCurrentState->setState( ALL_ITEM_S ); - - int leftCount = mTNObserver->getTNLeftCount() ; - if ( leftCount > 0 ) { - mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); - launchProgressDialog(); - } - else { - createModel( GLX_GRIDVIEW_ID ); - mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); + HbApplication* app = qobject_cast(qApp); + if(app->activateReason() == Hb::ActivationReasonActivity) { + activitySuccess = launchActivity(); } - mTNObserver->startTNObserving() ; + if( !activitySuccess ) { + mCurrentState = createState( GLX_GRIDVIEW_ID ); + mCurrentState->setState( ALL_ITEM_S ); + + int leftCount = mTNObserver->getTNLeftCount() ; + if ( leftCount > 0 ) { + mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel ); + launchProgressDialog(); + } + else { + createModel( GLX_GRIDVIEW_ID ); + mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel ); + } + mTNObserver->startTNObserving() ; + } + + HbActivityManager* activityManager = app->activityManager(); + bool ok = activityManager->removeActivity("PhotosMainView"); + if ( !ok ) + { + qDebug("launchapplication::Remove activity failed" ); + } } - HbActivityManager* activityManager = app->activityManager(); - bool ok = activityManager->removeActivity("PhotosMainView"); - if ( !ok ) - { - qDebug("launchapplication::Remove activity failed" ); - } -} + bool GlxStateManager::launchActivity() { HbApplication* app = qobject_cast(qApp); @@ -207,14 +219,15 @@ mActionHandler = new GlxActionHandler(); connect ( mViewManager, SIGNAL(externalCommand(int )), this, SIGNAL(externalCommand(int )) ); mViewManager->setupItems(); - switch(mSaveActivity.value("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); - } + mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID); + } } void GlxStateManager::updateTNProgress( int count) @@ -231,8 +244,6 @@ if ( isProgressbarRunning ){ if ( count == 0 ) { - createModel( mCurrentState->id() ); - mViewManager->setModel( mCurrentModel ); vanishProgressDialog(); } else { @@ -240,32 +251,43 @@ } } } + +void GlxStateManager::thumbnailPopulated() +{ + mViewManager->setModel( mCurrentModel ); + isProgressbarRunning = false; + mViewManager->updateProgressDialog( 0 ); + disconnect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) ); +} + void GlxStateManager::saveData() { if( (mCurrentState->id() == GLX_GRIDVIEW_ID && mCurrentState->state() == ALL_ITEM_S) || mCurrentState->id() == GLX_LISTVIEW_ID ) { - mSaveActivity.insert("ID",mCurrentState->id()); - mSaveActivity.insert("InternalState",mCurrentState->state()); - if(mCurrentModel) - { - QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex ); - if ( variant.isValid() && variant.canConvert () ) { - mSaveActivity.insert("VisibleIndex",variant.value()); - } + mSaveActivity.insert("ID",mCurrentState->id()); + mSaveActivity.insert("InternalState",mCurrentState->state()); + if(mCurrentModel) { + QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex ); + if ( variant.isValid() && variant.canConvert () ) { + mSaveActivity.insert("VisibleIndex",variant.value()); + } + } + else { + mSaveActivity.insert("VisibleIndex",0); } - else - mSaveActivity.insert("VisibleIndex",0); - HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); - QVariantHash metadata; - HbMainWindow *window = hbInstance->allMainWindows().first(); - metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect())); - - QByteArray serializedModel; - QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append); - stream << mSaveActivity; - bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata); - if ( !ok ) - { - qDebug("SaveData::Add activity failed" ); + + HbActivityManager* activityManager = qobject_cast(qApp)->activityManager(); + QVariantHash metadata; + HbMainWindow *window = hbInstance->allMainWindows().first(); + metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect())); + + QByteArray serializedModel; + QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append); + stream << mSaveActivity; + + bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata); + if ( !ok ) + { + qDebug("SaveData::Add activity failed" ); } } } @@ -303,6 +325,7 @@ GlxState *state = mCurrentState; // To delete the current state later if ( mCurrentState->previousState() == NULL ) { //In the case only one state in stack then exit from the application + saveImage(); // save image if it is in private folder exitApplication() ; return ; } @@ -321,7 +344,34 @@ } delete state; } - + +void GlxStateManager::saveImage() + { + CGlxImageViewerManager *imageViewerInstance = CGlxImageViewerManager::InstanceL(); + if(imageViewerInstance->IsPrivate()) + { + HBufC* imagePath = imageViewerInstance->ImageUri(); + QString srcPath = QString::fromUtf16(imagePath->Des().Ptr(),imagePath->Length()); + QString imageName = srcPath.section('\\', -1); + QString imagesFolderPath("c:/data/images/"); + QString destPath; + destPath.append(imagesFolderPath); + destPath.append(imageName); + int cnt = 1; + qDebug() << "GlxStateManager::saveImage path before while = "<< destPath; + while(!QFile::copy(srcPath,destPath)) + { + QString filename = imageName.section('.', 0,0); + QString ext = imageName.section('.', -1); + destPath.clear(); + destPath = imagesFolderPath + filename + QString::number(cnt) + "." + ext; + qDebug() << "GlxStateManager::saveImage path = "<< destPath; + cnt++; + } + } + imageViewerInstance->Close(); + } + void GlxStateManager::goBack(qint32 stateId, int internalState) { qDebug("GlxStateManager::goBack()"); @@ -422,23 +472,23 @@ void GlxStateManager::launchProgressDialog() { TRACER("GlxStateManager::launchProgressDialog() "); - //HbMainWindow *window = hbInstance->allMainWindows().first(); - //window->setAutomaticOrientationEffectEnabled( true ); QCoreApplication::instance()->installEventFilter( this ); - mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() ); + if ( isProgressbarRunning ) { + mViewManager->updateProgressDialog( mTNObserver->getTNLeftCount() ); + } + else { + mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() ); + } isProgressbarRunning = true ; } void GlxStateManager::vanishProgressDialog() { TRACER("GlxStateManager::vanishProgressDialog() "); - //HbMainWindow *window = hbInstance->allMainWindows().first(); - //window->setAutomaticOrientationEffectEnabled( false ); - QCoreApplication::instance()->removeEventFilter( this ); - isProgressbarRunning = false; - mViewManager->updateProgressDialog( 0 ); + createModel( mCurrentState->id() ); + connect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) ); } GlxState * GlxStateManager::createState(qint32 stateId) @@ -538,6 +588,7 @@ switch( internalState) { case ALL_ITEM_S : + case FETCHER_ITEM_S: if ( mAllMediaModel == NULL ) { modelParm.setCollection( KGlxCollectionPluginAllImplementationUid ); modelParm.setDepth(0); @@ -550,6 +601,7 @@ break; case ALBUM_ITEM_S : + case FETCHER_ALBUM_ITEM_S : if ( dir != BACKWARD_DIR ) { modelParm.setCollection( KGlxAlbumsMediaId ); modelParm.setDepth(0); @@ -586,17 +638,30 @@ changeState( GLX_GRIDVIEW_ID, ALL_ITEM_S ); id = EGlxCmdHandled; break; + + case EGlxCmdFetcherAllGridOpen : + changeState( GLX_GRIDVIEW_ID, FETCHER_ITEM_S ); + id = EGlxCmdHandled; + break; case EGlxCmdAlbumListOpen: changeState( GLX_LISTVIEW_ID, -1 ); id = EGlxCmdHandled; break; - + case EGlxCmdFetcherAlbumListOpen: + changeState( GLX_LISTVIEW_ID, FETCHER_ALBUM_S ); + id = EGlxCmdHandled; + break; + case EGlxCmdAlbumGridOpen: nextState( GLX_GRIDVIEW_ID, ALBUM_ITEM_S ); id = EGlxCmdHandled; break; - + case EGlxCmdFetcherAlbumGridOpen: + nextState( GLX_GRIDVIEW_ID, FETCHER_ALBUM_ITEM_S ); + id = EGlxCmdHandled; + break; + case EGlxCmdFirstSlideshow : //play the slide show with first item mCurrentModel->setData( mCurrentModel->index(0, 0), 0, GlxFocusIndexRole ); @@ -639,6 +704,7 @@ } case EGlxCmdBack : + case EGlxCmdSlideShowBack : previousState(); id = EGlxCmdHandled; break; @@ -678,19 +744,28 @@ } break; - case EGlxCmdMarkAll: - case EGlxCmdUnMarkAll: - case EGlxCmd3DEffectOn: - case EGlxCmd3DEffectOff: - mViewManager->handleUserAction(mCurrentState->id(), id); + case EGlxCmdMarkAll : + case EGlxCmdUnMarkAll : + case EGlxCmd3DEffectOn : + case EGlxCmd3DEffectOff : + case EGlxCmdPlayBackAnim : + mViewManager->handleUserAction( mCurrentState->id(), id ); id = EGlxCmdHandled; break; case EGlxCmdSetupItem : emit setupItemsSignal(); break; + + case EGlxCmdFetcherSelect: + { + QModelIndex selectedIndex = mCurrentModel->index(mCurrentModel->data(mCurrentModel->index(0,0),GlxFocusIndexRole).value(),0); + emit gridItemSelected(selectedIndex,*mCurrentModel); + id = EGlxCmdHandled; + } + break; - default : + default : mActionHandler->handleAction(id,mCollectionId); break; } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/statehandler/statehandler.pro --- a/ui/viewmanagement/statehandler/statehandler.pro Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/statehandler/statehandler.pro Fri Aug 06 20:44:25 2010 +0530 @@ -19,6 +19,8 @@ DEPENDPATH += . inc src CONFIG += hb +CONFIG += mobility +MOBILITY += sensors INCLUDEPATH += . \ ../../inc \ @@ -30,8 +32,8 @@ ../../uiengine/model/mediamodel/inc \ ../../uiengine/model/listmodel/inc \ ../viewmanager/inc \ - ../../commandhandlers\commandhandlerbase\inc \ - ../../commandhandlers\commoncommandhandlers\inc + ../../commandhandlers/commandhandlerbase/inc \ + ../../commandhandlers/commoncommandhandlers/inc DEFINES += BUILD_STATEMANAGER @@ -50,7 +52,9 @@ -lglxloggerqt.dll \ -lglxcommoncommandhandlers.dll \ -lglxlogging.dll \ - -lglxcommon.dll + -lglxcommon.dll \ + -lglximageviewermanager.dll + # Input HEADERS += inc/glxbasestate.h \ @@ -63,7 +67,8 @@ inc/glxslideshowstate.h \ inc/glxactionhandler.h \ inc/glxcommandhandlerfactory.h \ - inc/glxtnobserver.h + inc/glxtnobserver.h \ + inc/glxorientationsensorfilter.h SOURCES += src/glxbasestate.cpp \ src/glxfullscreenstate.cpp \ @@ -75,7 +80,8 @@ src/glxslideshowstate.cpp \ src/glxactionhandler.cpp \ src/glxcommandhandlerfactory.cpp \ - src/glxtnobserver.cpp + src/glxtnobserver.cpp \ + src/glxorientationsensorfilter.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/viewmanager/inc/glxmenumanager.h --- a/ui/viewmanagement/viewmanager/inc/glxmenumanager.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/viewmanager/inc/glxmenumanager.h Fri Aug 06 20:44:25 2010 +0530 @@ -34,6 +34,19 @@ GlxGridView3DEffect }; +//Fullscreen view option menu +enum { + GlxFullScreenViewSend, + GlxFullScreenViewSlideShow, +#ifndef __WINSCW__ + GlxFullScreenViewUseImage, + GlxFullScreenViewMenuRotate, + GlxFullScreenViewCrop, +#endif + GlxFullScreenViewAddToAlbum, + GlxFullScreenViewRemoveoAlbum +}; + class GlxMenuManager : public QObject { Q_OBJECT @@ -71,5 +84,7 @@ HbMenu *mContextMenu; HbMenu* mSubMenu; HbMenu* m3DEffectSubMenu; + HbMenu* mRotateSubMenu; + HbMenu* mUseImgSubMenu; GlxSettingInterface *mSettings; }; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/viewmanager/inc/glxviewmanager.h --- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h Fri Aug 06 20:44:25 2010 +0530 @@ -24,6 +24,7 @@ #include #include #include "glxuistd.h" +#include class GlxView; class HbMainWindow; @@ -54,97 +55,132 @@ GLX_ALL_ID = 0xFF } glxToolBarActionIds; +/** + * view manager class + */ class GLX_VIEWMANAGER_EXPORT GlxViewManager : public QObject { Q_OBJECT public : + /** + * Constructor + */ GlxViewManager(); + /** + * Destructor + */ ~GlxViewManager(); + void setupItems( ); + + /** + * launch application + * @param id viewId + * @param model model to be used for the view + */ void launchApplication(qint32 id, QAbstractItemModel *model); + + /** + * add back key action + */ void addBackSoftKeyAction(); -/* - * This will return the orientation of main window - */ + + /** + * This will return the orientation of main window + */ Qt::Orientation orientation() const; -/* - * This will deactivate the current function - * to be used only in cases where External launch was done - */ + + /** + * This will deactivate the current function + * to be used only in cases where External launch was done + */ void deactivateCurrentView(); -/* - * To update the tool bar enable and disable icon - * id = This should be selected toolbar tab id - */ + + /** + * To update the tool bar enable and disable icon + * id = This should be selected toolbar tab id + */ void updateToolBarIcon(int id); -/* - * Enable the marking mode of the view to select multiple item - */ + + /** + * Enable the marking mode of the view to select multiple item + */ void enterMarkingMode(qint32 viewId); -/* - * Enable the normal mode of the view - */ + + /** + * Enable the normal mode of the view + */ void exitMarkingMode(qint32 viewId); -/* - * Pass the user action to the view - */ + + /** + * Pass the user action to the view + */ void handleUserAction(qint32 viewId, qint32 commandId); -/* - * Return the selection model to the user - */ + + /** + * Return the selection model to the user + */ QItemSelectionModel * getSelectionModel(qint32 viewId); -/* - * To set the model of current view - */ + + /** + * To set the model of current view + */ void setModel( QAbstractItemModel *model ); signals : -/* - * emit the user action - */ + /** + * emit the user action + */ void actionTriggered(qint32 id); void externalCommand(int cmdId); void applicationReady(); public slots: -/* - * This public slot is used to launch the view - */ + /** + * This public slot is used to launch the view + */ void launchView (qint32 id, QAbstractItemModel *model); -/* - * It is over load slot and used to run the animation for view transition and launch the view - */ + + /** + * It is over load slot and used to run the animation for view transition and launch the view + */ void launchView (qint32 id, QAbstractItemModel *model, GlxEffect effect, GlxViewEffect viewEffect); void launchProgressDialog( int maxValue ); void updateProgressDialog( int currentValue); -/* - * It will removed and deleted the view. - * Currently It is not used so may be in future, It will be removed. - */ + + /** + * It will removed and deleted the view. + * Currently It is not used so may be in future, It will be removed. + */ void destroyView (qint32 id); -/* - * It will pass the user action to the state manager - */ + + /** + * It will pass the user action to the state manager + */ void actionProcess(qint32 id); -/* - * It will pass the user selected menu action to state manager - * check for depricated with actionProcess api - */ + + /** + * It will pass the user selected menu action to state manager + * check for depricated with actionProcess api + */ void handleMenuAction(qint32 commandId); -/* - * It will pass the user action ( tool bar + back ) to state manager - */ + + /** + * It will pass the user action ( tool bar + back ) to state manager + */ void handleAction(); void cancelTimer(); -/* - * This is slot used for the animation finished call back - */ + + /** + * This is slot used for the animation finished call back + */ void effectFinished( ); -/* - * This will open the item specifc Menu - */ + + /** + * This will open the item specifc Menu + */ void itemSpecificMenuTriggered(qint32,QPointF ); void handleReadyView(); @@ -156,46 +192,60 @@ void hideProgressDialog(); private: -/* - * It will create and return the view - */ + /** + * It will create and return the view + */ GlxView * resolveView (qint32 id); -/* - * It will find a view from the view list and return it - */ + + /** + * It will find a view from the view list and return it + */ GlxView * findView (qint32 id); -/* - * It will deativate the current view - */ + + /** + * It will deativate the current view + */ void deActivateView(); -/* - * It will activate and show the view - */ + + /** + * It will activate and show the view + */ void activateView(); -/* - * It will create the grid and list view tool bar action - */ + + /** + * It will create the grid and list view tool bar action + */ void createActions(); -/* - * It will create the marking mode toll bar action - */ + + /** + * It will create the marking mode toll bar action + */ void createMarkingModeActions(); -/* - * It will create the grid and list view tool bar - */ + + /** + * It will create the grid and list view tool bar + */ void createToolBar(); -/* - * It will create the marking mode tool bar - */ + + /** + * It will create the marking mode tool bar + */ void createMarkingModeToolBar(); -/* - * It will add all the view manager related connection - */ + + /** + * It will add all the view manager related connection + */ void addConnection(); -/* - * It will remove all the view manager releted connection - */ + + /** + * It will remove all the view manager releted connection + */ void removeConnection(); + + /** + * + */ + int getSubState(); private: QList mViewList; //It contains all the view created by it self. diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/viewmanager/src/glxmenumanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -73,6 +73,10 @@ void GlxMenuManager::addMenu(qint32 viewId, HbMenu* menu) { + int curState = viewSubState(); + if( curState == FETCHER_ITEM_S || curState == FETCHER_S || curState == FETCHER_ALBUM_S || curState == IMAGEVIEWER_S) + return; + switch(viewId) { case GLX_GRIDVIEW_ID: CreateGridMenu( menu ); @@ -152,16 +156,16 @@ action->setObjectName( "GridMenu Delete" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); - m3DEffectSubMenu = menu->addMenu("3D Effect"); + m3DEffectSubMenu = menu->addMenu(GLX_GRID_OPT_EFFECT); m3DEffectSubMenu->setObjectName( "GridMenu 3DEffect" ); - action = m3DEffectSubMenu->addAction("On"); + action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_ON); action->setCheckable(ETrue); action->setData(EGlxCmd3DEffectOn); action->setObjectName( "GridMenu 3DOn" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); - action = m3DEffectSubMenu->addAction("Off"); + action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_OFF); action->setCheckable(ETrue); action->setData(EGlxCmd3DEffectOff); action->setObjectName( "GridMenu 3DOff" ); @@ -208,17 +212,17 @@ CFeatureDiscovery* featManager = CFeatureDiscovery::NewL(); if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor)) { - mSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE); - action = mSubMenu->addAction(GLX_MENU_SET_WALLPAPER); + mUseImgSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE); + action = mUseImgSubMenu->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); + mRotateSubMenu = menu->addMenu(GLX_MENU_ROTATE); + action = mRotateSubMenu->addAction(GLX_MENU_90_CW); action->setData(EGlxCmdRotateImgCW); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); - action = mSubMenu->addAction(GLX_MENU_90_CCW); + action = mRotateSubMenu->addAction(GLX_MENU_90_CCW); action->setData(EGlxCmdRotateImgCCW); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); @@ -233,6 +237,10 @@ action->setData(EGlxCmdAddToAlbum); action->setObjectName( "FSMenu AddToAlbum" ); connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); + action = menu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM ); + action->setData( EGlxCmdRemoveFrom ); + action->setObjectName( "FSMenu RemoveAlbum" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); } void GlxMenuManager::createSlideShowMenu( HbMenu* menu ) @@ -256,9 +264,11 @@ int GlxMenuManager::viewSubState() { - QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); - if ( variant.isValid() && variant.canConvert () ) { - return variant.value() ; + if(mModel){ + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + return variant.value() ; + } } return -1; } @@ -335,6 +345,34 @@ setAllActionVisibility( actionList, TRUE ); isAllActionDisable = FALSE; } + + + +#ifndef __WINSCW__ + if ( state != IMAGEVIEWER_S) + { + int frameCount = (mModel->data(mModel->index(( + mModel->data(mModel->index(0, 0),GlxFocusIndexRole)).value (), 0), + GlxFrameCount)).value(); + bool setVisible = true; + if (frameCount > 1) + { + //Check for animated image, if found hide editor specific menu + setVisible = false; + } + //If Use Image contains any sub menu item other then related to Editor + //then individual sub menu item needs to be hidden rather then + //complete "Use Image"menu + actionList[GlxFullScreenViewUseImage]->setVisible(setVisible); + actionList[GlxFullScreenViewMenuRotate]->setVisible(setVisible); + actionList[GlxFullScreenViewCrop]->setVisible(setVisible); + } +#endif + if( state != ALBUM_FULLSCREEN_S ){ + actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(false); + }else{ + actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(true); + } } void GlxMenuManager::menuItemSelected() @@ -351,9 +389,16 @@ mContextMenu = new HbMenu(); mContextMenu->setObjectName( "ContextMenu" ); HbAction *action = NULL; - switch ( viewId ) { case GLX_GRIDVIEW_ID : + if ( viewSubState() == FETCHER_ITEM_S || viewSubState() == FETCHER_ALBUM_ITEM_S) { + action = mContextMenu->addAction( GLX_MENU_OPEN ); + action->setData( EGlxCmdFetcherFullScreenOpen ); + action->setObjectName( "CM Open1" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + break; + } + action = mContextMenu->addAction( GLX_MENU_OPEN ); action->setData( EGlxCmdFullScreenOpen ); action->setObjectName( "CM Open" ); @@ -369,6 +414,11 @@ action->setObjectName( "CM SlideShow" ); connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + action = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM ); + action->setData( EGlxCmdContextAddToAlbum ); + action->setObjectName( "CM AddToAlbum" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + if ( viewSubState() == ALBUM_ITEM_S ) { action = mContextMenu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM ); action->setData( EGlxCmdContextRemoveFrom ); @@ -376,11 +426,6 @@ connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); } - action = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM ); - action->setData( EGlxCmdContextAddToAlbum ); - action->setObjectName( "CM AddToAlbum" ); - connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); - action = mContextMenu->addAction( GLX_MENU_DELETE ); action->setData( EGlxCmdContextDelete ); action->setObjectName( "CM Delete" ); @@ -388,6 +433,14 @@ break; case GLX_LISTVIEW_ID : { + if ( viewSubState() == FETCHER_ALBUM_S ) { + action = mContextMenu->addAction( GLX_MENU_OPEN ); + action->setData( EGlxCmdFetcherAlbumGridOpen ); + action->setObjectName( "CM Open1" ); + connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); + break; + } + int count = 0; QVariant variant = mModel->data( mModel->index(0,0), GlxListItemCount ); if ( variant.isValid() && variant.canConvert () ) { diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewmanagement/viewmanager/src/glxviewmanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -40,7 +40,8 @@ #include #include #include - +#include +#include "glxmodelroles.h" GlxViewManager::GlxViewManager() : mBackAction( NULL ), @@ -52,22 +53,23 @@ mProgressDialog( NULL ) { qDebug("GlxViewManager::GlxViewManager() "); - PERFORMANCE_ADV ( viewMgrD1, "main window creation time" ) { - //check the case when application launch through some other application (view plugin) - mMainWindow = GlxExternalUtility::instance()->getMainWindow(); - if(mMainWindow == NULL) { - mMainWindow = new HbMainWindow(); - connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() )); - } - //Without this Zoom Does not work - mWindowEventFilter = new GlxMainWindowEventFilter; - mMainWindow->scene()->installEventFilter(mWindowEventFilter); - mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents); - mMainWindow->viewport()->grabGesture(Qt::PinchGesture); + //check the case when application launch through some other application (view plugin) + mMainWindow = GlxExternalUtility::instance()->getMainWindow(); + if(mMainWindow == NULL) { + mMainWindow = new HbMainWindow(); } + connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() )); + //Without this Zoom Does not work + + mWindowEventFilter = new GlxMainWindowEventFilter; + mMainWindow->scene()->installEventFilter(mWindowEventFilter); + mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents); + mMainWindow->viewport()->grabGesture(Qt::PinchGesture); + HbStyleLoader::registerFilePath(":/data/photos.css"); } + void GlxViewManager::handleReadyView() { emit actionTriggered( EGlxCmdSetupItem ); @@ -77,21 +79,18 @@ void GlxViewManager::setupItems( ) { - mMenuManager = new GlxMenuManager(mMainWindow); addBackSoftKeyAction(); - addConnection(); - mMenuManager->addMenu( mView->viewId(), mView->menu() ); - mMenuManager->setModel( mModel ); + addConnection(); } void GlxViewManager::launchApplication(qint32 id, QAbstractItemModel *model) { mModel = model; - PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) { - mView = resolveView(id); - } + mMenuManager = new GlxMenuManager( mMainWindow ); //menu manager should be created before view. + mMenuManager->setModel( mModel ); + mView = resolveView( id ); + createToolBar(); - mView->addToolBar(mViewToolBar); /* We are showing the toolBar before activating the * view. This is done to avoid the animation effect seen otherwise @@ -103,14 +102,11 @@ * */ mView->activate(); - - PERFORMANCE_ADV ( viewMgrD3, "Set Model time") - mView->setModel(mModel); - - PERFORMANCE_ADV( viewMgrD4, "View Display time") { - mMainWindow->setCurrentView(mView, false); - mMainWindow->showFullScreen(); - } + mView->setModel( mModel ); + //visibility of tool bar dependes of view internal state so add the toolbar after setting model + mView->addToolBar( mViewToolBar ); + mMainWindow->setCurrentView( mView, false ); + mMainWindow->showFullScreen(); } void GlxViewManager::handleMenuAction(qint32 commandId) @@ -121,6 +117,7 @@ void GlxViewManager::handleAction() { HbAction *action = qobject_cast(sender()); + action->setChecked( TRUE ); qint32 commandId = action->data().toInt(); emit actionTriggered(commandId); } @@ -140,16 +137,13 @@ return mMainWindow->orientation(); } -void GlxViewManager::launchView(qint32 id, QAbstractItemModel *model) +void GlxViewManager::launchView( qint32 id, QAbstractItemModel *model ) { - qDebug("GlxViewManager::launchView Id = %d ", id); + qDebug( "GlxViewManager::launchView Id = %d ", id ); mModel = model; deActivateView(); - - PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) { - mView = resolveView(id); - } - + mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info + mView = resolveView( id ); activateView(); } @@ -176,7 +170,8 @@ //partially clean the view so that animation run smoothly GlxView *curr_view = (GlxView *) mMainWindow->currentView(); curr_view->resetView(); - + + mMenuManager->setModel( model ); //set the model to get the item type info and row count info mView = resolveView(id); //partially initialise the view so that animation run smoothly mView->initializeView( model, curr_view ); @@ -201,6 +196,10 @@ } } + if ( effect == GRID_TO_FULLSCREEN ) { + mViewToolBar->setZValue( item->zValue() - 5 ); + } + //error check if ( itemList.count() > 0 ) { mEffectEngine->runEffect(itemList, effect); @@ -247,7 +246,7 @@ //To:Do temp code remove later if ( mProgressDialog ) { i = ++i % 10; - icon = HbIcon( QString( ":/data/wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) ); + icon = HbIcon( QString( ":/data/Wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) ); mProgressDialog->setIcon(icon); int max = mProgressDialog->maximum() ; @@ -285,22 +284,18 @@ qDebug("GlxViewManager::updateToolBarIcon() action ID list %d count %d", id, count); - for ( int i = 0; i < count ; i++ ) - { + for ( int i = 0; i < count ; i++ ) { qDebug("GlxViewManager::updateToolBarIcon() toolBarActionId %d value %d", toolBarActionId, ( id & toolBarActionId ) ); //check and get the icon path - if ( ( id & toolBarActionId ) == toolBarActionId ) - { - mActionList[i]->setCheckable(TRUE); + if ( ( id & toolBarActionId ) == toolBarActionId ) { mActionList[i]->setChecked(TRUE); - } - else - { + } + else { mActionList[i]->setChecked(FALSE); - } + } //to get it the next action id to verify it is selecter or not toolBarActionId = toolBarActionId << 1; - } + } } void GlxViewManager::checkMarked() @@ -384,23 +379,22 @@ } } -GlxView * GlxViewManager::resolveView(qint32 id) +GlxView * GlxViewManager::resolveView( qint32 id ) { - qDebug("GlxViewManager::resolveView %d", id); + qDebug("GlxViewManager::resolveView %d", id ); GlxView *view = findView ( id ); if ( view ) { return view ; } - view = GlxViewsFactory::createView(id, mMainWindow); + view = GlxViewsFactory::createView( id, mMainWindow ); if ( view ) { - connect ( view, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionProcess(qint32 )), Qt::QueuedConnection ); - connect ( view, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ), this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ), Qt::QueuedConnection ); - mViewList.append(view); - mMainWindow->addView(view); - if ( mMenuManager ) { - mMenuManager->addMenu( id, view->menu()); - } + connect ( view, SIGNAL( actionTriggered( qint32 ) ), this, SLOT( actionProcess( qint32 ) ), Qt::QueuedConnection ); + connect ( view, SIGNAL( itemSpecificMenuTriggered( qint32, QPointF ) ), this, SLOT( itemSpecificMenuTriggered( qint32, QPointF ) ), Qt::QueuedConnection ); + mViewList.append( view ); + mMainWindow->addView( view ); + mMenuManager->addMenu( id, view->menu() ); + if ( mBackAction ) { view->setNavigationAction( mBackAction ); } @@ -455,42 +449,53 @@ void GlxViewManager::activateView() { qDebug("GlxViewManager::activateView()"); - - PERFORMANCE_ADV ( viewMgrD2, "View Activation time") { - mView->addToolBar(mViewToolBar); - mView->activate(); - mView->show(); - mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info - } - - PERFORMANCE_ADV ( viewMgrD3, "Set Model time") - mView->setModel(mModel); - - PERFORMANCE_ADV( viewMgrD4, "View Display time") { - mMainWindow->setCurrentView(mView, false); - mMainWindow->showFullScreen(); - } + + mView->activate(); + mView->show(); + mView->setModel( mModel ); + //visibility of tool bar dependes of view internal state so add the toolbar after setting model + mView->addToolBar( mViewToolBar ); + mMainWindow->setCurrentView(mView, false); + mMainWindow->showFullScreen(); } void GlxViewManager::createActions() { qDebug("GlxViewManager::createActions() " ); mActionList.clear(); + + int curSubstate = getSubState(); //create the All tool bar button action HbAction* allAction = new HbAction( this ); - allAction->setData( EGlxCmdAllGridOpen ); + + if( curSubstate == FETCHER_ITEM_S ) { + allAction->setData( EGlxCmdFetcherAllGridOpen ); + }else{ + allAction->setData( EGlxCmdAllGridOpen ); + } + mActionList.append( allAction ); allAction->setIcon( HbIcon( GLXICON_ALL ) ) ; allAction->setObjectName( "All Action" ); //create the Album tool bar button action HbAction* albumAction = new HbAction( this ); - albumAction->setData( EGlxCmdAlbumListOpen ); + + if( curSubstate == FETCHER_ITEM_S ) { + albumAction->setData( EGlxCmdFetcherAlbumListOpen ); + }else{ + albumAction->setData( EGlxCmdAlbumListOpen ); + } + mActionList.append( albumAction ); albumAction->setIcon( HbIcon( GLXICON_ALBUMS ) ) ; albumAction->setObjectName( "Album Action" ); - + + //in case of fetcher no need to create other actions + if( curSubstate == FETCHER_ITEM_S ) { + return; + } //create the album tool bar button action HbAction* cameraAction = new HbAction( this ); cameraAction->setData( EGlxCmdCameraOpen ); @@ -574,6 +579,7 @@ int count = mActionList.count(); for ( int i = 0; i < count; i++ ) { connect( mActionList.at(i), SIGNAL(triggered( )), this, SLOT(handleAction( )) ); + mActionList.at(i)->setCheckable( TRUE ); mViewToolBar->addAction( mActionList.at(i) ); } qDebug("GlxViewManager::createToolBar() exit" ); @@ -672,7 +678,7 @@ } if( mMainWindow != GlxExternalUtility::instance()->getMainWindow() ){ - qDebug("GlxViewManager::~GlxViewManager remove view"); + qDebug("GlxViewManager::~GlxViewManager delete mainwindow"); delete mMainWindow; } delete mWindowEventFilter; @@ -680,3 +686,15 @@ qDebug("GlxViewManager::~GlxViewManager Exit"); } +int GlxViewManager::getSubState() +{ + int curSubstate = NO_GRID_S; + + if ( mModel ) { + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + curSubstate = variant.value(); + } + } + return curSubstate; +} diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/detailsview/src/glxdetailsview.cpp --- a/ui/views/detailsview/src/glxdetailsview.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/detailsview/src/glxdetailsview.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -34,7 +34,7 @@ #include #include #include - +#include //-------------------------------------------------------------------------------------------------------------------------------------------- #include "glxviewids.h" #include "glxicondefs.h" //Contains the icon names/Ids @@ -44,7 +44,7 @@ #include "glxfavmediamodel.h" #include "glxdocloaderdefs.h" #include - +#include "glxlocalisationstrings.h" #include "glxdetailstextedit.h" #include "glxdetailsicon.h" @@ -499,12 +499,12 @@ QDate date = (mModel->data(mModel->index(mModel->data( mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxDateRole)).value (); - - datestring = QString("Date: "); + if (date.isNull() == FALSE) { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" ); - datestring.append(date.toString(dateFormat)); + QString dateStringValue = date.toString(dateFormat); + datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue); } mDateLabel->setPlainText(datestring); @@ -522,13 +522,14 @@ QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index( 0, 0), GlxFocusIndexRole).value (), 0), GlxTimeRole)).value< QTime> (); - timestring = QString("Time: "); + if (timevalue.isNull() == FALSE) { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setTime is not NULL" ); - timestring.append(timevalue.toString(timeFormat)); + QString timeStringValue = timevalue.toString(timeFormat); + timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue); } - mTimeLabel->setPlainText(timestring); + mTimeLabel->setPlainText(timestring); } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -539,12 +540,10 @@ int size = 0; size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0), GlxFocusIndexRole).value (), 0), GlxSizeRole)).value (); - QString sizelabel; - QString sizestring; - sizelabel = QString("Size : "); - sizestring = sizeinStrings(size); - sizelabel.append(sizestring); - mSizeLabel->setPlainText(sizelabel); + + QString sizeString; + sizeString = sizeinStrings(size); + mSizeLabel->setPlainText(sizeString); } @@ -607,25 +606,21 @@ if (size >= KBytesInGB) { int gbSize = size / KBytesInGB; // Size in GB - sizeString.setNum(gbSize); - sizeString.append("GB"); + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize); } else if (size >= KBytesInMB) { int mbSize = size / KBytesInMB; // Size in MB - sizeString.setNum(mbSize); - sizeString.append("MB"); + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize); } else if (size >= KBytesInKB) { - TInt kBsize = size / KBytesInKB; // bytes to kB - sizeString.setNum(kBsize); - sizeString.append("KB"); + int kbSize = size / KBytesInKB; // Size in KB + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize); } else { - sizeString.setNum(size); - sizeString.append("Bytes"); + sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size); } return sizeString; } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/fullscreenview/inc/glxfullscreenview.h --- a/ui/views/fullscreenview/inc/glxfullscreenview.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/fullscreenview/inc/glxfullscreenview.h Fri Aug 06 20:44:25 2010 +0530 @@ -43,76 +43,252 @@ class GlxZoomWidget; class GlxTvOutWrapper; +/** + * Class Description + * This is full screen view class to show the image in fullscreen, zoom the image and + * browse the image through coverflow and imagstrip + */ class GlxFullScreenView : public GlxView { Q_OBJECT public : + /** + * Constructor + * @param - HbMainWindow object + * @param - fullscreen docloader object + */ GlxFullScreenView(HbMainWindow *window,HbDocumentLoader *DocLoader); + + /** + * Destructor + */ ~GlxFullScreenView(); + + /** + * activate() + * ///From GlxView + */ void activate() ; + + /** + * deActivate() + * ///From GlxView + */ void deActivate(); - /* - * Initialize the coverflow and partially creates the coverflow with one image + /** + * initializeView() - Initialize the coverflow and partially creates the coverflow with one image * to make the widget light weight in order to make transition smooth * and also loads the widgets. + * @param - pointer of model to retreive the view releted data + * @parm - previous view pointer to get the staus of fullscreen mode of the view */ void initializeView( QAbstractItemModel *model, GlxView *preView ); - /* - * resets the view, with just one icon being present in the widget - * to make the widget light weight in order to make - * transition smooth + /** + * resetView() - resets the view, with just one icon being present in the widget + * to make the widget light weight in order to make transition smooth */ void resetView(); + + /** + * setmodel() + * ///from GlxView + */ void setModel(QAbstractItemModel *model); + + /** + * setModelContext() - to set the context mode of the model. + */ void setModelContext ( ); + + /** + * cleanUp() - To clean the custom widgets. + */ void cleanUp(); + + /** + * getAnimationItem() - To return the animation object to play the view transition animation. + * @return pointer of widget on which animation are suppose to play. + */ QGraphicsItem * getAnimationItem(GlxEffect transitionEffect); public slots: - void orientationChanged(Qt::Orientation); + /** + * orientationChanged() - Slot to upadte the layout when orientation of device has changed + * @param new orientation + */ + void orientationChanged( Qt::Orientation ); + + /** + * activateUI() - To show the ui content like status bar, toolbar, and imzge strip. + */ void activateUI(); + + /** + * hideUi() - To hide the ui content like status bar, toolbar, and imzge strip. + */ void hideUi(); + + /** + * changeSelectedIndex() - Call back when index is chnaged due to browsing of images in coverflow + * It will update the selected index in model and notify other widget about index changed. + * @param - index of new selected item. + */ void changeSelectedIndex(const QModelIndex &index); + + /** + * indexChanged() - call back when index is changed from the image strip. + * It will update the selected index in model and notify other widget about index changed. + * @param - index of new selected item. + */ void indexChanged(const QModelIndex &index ); + + /** + * scrollingStarted() - Call back function to get notification of when scrolling of + * image strip is start. + */ void scrollingStarted(); + + /** + * scrollingEnded() - Call back function to get notification of when scrolling of + * image strip is stop. + */ void scrollingEnded(); + + /** + * pressed() - Call back function to get notification of user pressed mouse key or touch the fingure. + * @param - index of selected item. + */ void pressed(const QModelIndex &index ); + + /** + * released() - Call back function to get notification of user released mouse key or released the fingure. + * @param - index of new selected item. + */ void released(const QModelIndex &index ); - void setVisvalWindowIndex(); + + /** + * setVisvalWindowIndex() - Set the viisual window index of medialist. + */ + void setVisvalWindowIndex(); + + /** + * coverFlowEventHandle() - Handle the event generated by cover flow. + * @param - cover flow event type + */ void coverFlowEventHandle( GlxCoverFlowEvent e); + + /** + * effectFinished() - call back when ui on\off effect has finished. + * @param - staus of effect + */ void effectFinished( const HbEffect::EffectStatus ); + + /** + * imageSelectionEffectFinished() - call back when ui image strip selection effect has been finished. + * @param - staus of effect + */ void imageSelectionEffectFinished( const HbEffect::EffectStatus ); + + /** + * orientChangeAnimFinished() - call back when custom orientation change effect has been finished. + * @param - staus of effect + */ + void orientChangeAnimFinished( const HbEffect::EffectStatus ); + + /** + * effectFinished - call back when ui on\off effect has finished + * @param - staus of effect + */ void handleToolBarAction(); + + /** + * In case of image fetcher handle select command and emit selected index and model + */ + void handleFSSelect(); protected : + /** + * eventFilter - To handle the application foregrond and background event + * ///From HbView + */ bool eventFilter(QObject *obj, QEvent *ev); -private: - /* - * The widgets are retrieved from the docml +private: + /** + * loadWidgets() - The widgets are retrieved from the docml */ void loadWidgets(); - /* - * Loads the corresponding sections in the docml while the orentation is changed. + /** + * loadViewSection() - Loads the corresponding sections in the docml while the orentation is changed. */ void loadViewSection(); + /** + * setLayout() - To set the widgets laout. + */ void setLayout(); + + /** + * addConnection() - Add the call back of the widgets. + */ void addConnection(); - void addImageStripConnection(); + + /** + * removeConnection() - Remove the call back of widgets. + */ void removeConnection(); - void createUiControl(); + + /** + * setImageStripModel() - set the image strip model. + */ void setImageStripModel(); + /** + * loadFullScreenToolBar() - load the fullscreen tool bar from the docml. + */ void loadFullScreenToolBar(); + + /** + * addToolBarAction() - Crete and add the toolbar acton in toolbar. + * @param - coomand id to recognise the action. + * @param - toolbar action icon. + * @param - action name it is used for automation of test cases. + */ void addToolBarAction( int commandId, const QString &iconName, const QString &name) ; + + /** + * initAnimationItem() - Initialise the custom animation item. + */ + void initAnimationItem(); + + /** + * imageSelectionAnimation() - To trigger the image setection animtaion form the imge strip. + */ void imageSelectionAnimation( const QModelIndex &index ); + + /** + * cancelSelectionAnimation()- To cancel the image selection animation. + */ void cancelSelectionAnimation( ); + + /** + * playOrientChangeAnim() - To trigger the custom orientation change animation. + */ + void playOrientChangeAnim(); + + /** + * get the substate of fullscreen state. + */ int getSubState(); + + /** + * setHdmiModel() - set the image strip model. + * @param - model + */ void setHdmiModel( QAbstractItemModel *model ); private: diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/fullscreenview/src/glxcoverflow.cpp --- a/ui/views/fullscreenview/src/glxcoverflow.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/fullscreenview/src/glxcoverflow.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -444,6 +444,7 @@ void GlxCoverFlow::stopAnimation() { mIconItem[ mSelItemIndex ]->animator().stopAnimation(); + mIconItem[ mSelItemIndex ]->setIcon( getIcon( mSelIndex ) ); } void GlxCoverFlow::updateIconItem (qint16 selIndex, qint16 selItemIndex, qint16 posX) diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/fullscreenview/src/glxfullscreenview.cpp --- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -44,7 +44,7 @@ #include "glxfullscreenview.h" #include "glxcommandhandlers.hrh" #include "glxzoomwidget.h" - +#include "glxlocalisationstrings.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxfullscreenviewTraces.h" @@ -70,10 +70,13 @@ 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/zoomin.fxml" ), QString( "SelectHide" ) ); HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) ); + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) ); + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); } @@ -188,11 +191,22 @@ setViewFlags(flags); // In case of fetcher don't hide status pane and title bar - if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))){ - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); + if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))) { + setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden ); mUiOff = true; } + else + { + HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT); + selectAction->setObjectName( "FS Select" ); + + connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect())); + HbToolBar* toolBar = new HbToolBar(); + toolBar->setOrientation( Qt::Horizontal ); + toolBar->setVisible(true); + toolBar->addAction(selectAction); + setToolBar(toolBar); + } mUiOffTimer = new QTimer(); mUiOffTimer->stop(); @@ -200,12 +214,19 @@ addConnection(); setLayout(); - if (!mTvOutWrapper){ + if (!mTvOutWrapper) { mTvOutWrapper = new GlxTvOutWrapper(); } + + mWindow->setAutomaticOrientationEffectEnabled( false ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT ); } +void GlxFullScreenView::handleFSSelect() +{ + emit actionTriggered( EGlxCmdFetcherSelect ); +} + void GlxFullScreenView::loadViewSection() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY ); @@ -252,7 +273,7 @@ //the coverflow is initialised to null //to just reset to the initial state mCoverFlow = NULL; - + mWindow->setAutomaticOrientationEffectEnabled( true ); OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT ); } @@ -311,7 +332,7 @@ mCoverFlow->setModel(mModel); setImageStripModel(); if(getSubState() == IMAGEVIEWER_S) { - setTitle("Image Viewer"); + setTitle(GLX_IMAGE_VIEWER); } else if(getSubState() == FETCHER_S){ //do not zoom in case of fetcher disconnect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) ); @@ -357,6 +378,7 @@ setModelContext(); loadViewSection(); setLayout(); + playOrientChangeAnim(); OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT ); } @@ -365,7 +387,7 @@ { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY ); - if ( mUiOff && getSubState() != FETCHER_S){ + if ( mUiOff && getSubState() != FETCHER_S ){ if( !mFullScreenToolBar ) { loadFullScreenToolBar(); } @@ -376,18 +398,18 @@ mImageStrip->setCurrentIndex ( mModel->index( variant.value(), 0) ); mImageStrip->scrollTo( mModel->index( variant.value(), 0), HbGridView::PositionAtTop ); } - - mFullScreenToolBar->show(); - setStatusBarVisible( TRUE ); - setTitleBarVisible( TRUE ); + + setItemVisible( Hb::AllItems, TRUE ); + setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden ); if ( mImageStrip && getSubState() != IMAGEVIEWER_S) { mImageStrip->show(); HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" ); } else if( getSubState() == IMAGEVIEWER_S){ - setTitle("Image Viewer"); + setTitle(GLX_IMAGE_VIEWER); } + mFullScreenToolBar->show(); } else { hideUi(); @@ -409,11 +431,10 @@ mUiOff = TRUE; if ( getSubState() != FETCHER_S ) { - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); + setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden ); } - if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S )) { - HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" ); + if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S ) ) { + HbEffect::start( mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" ); } if(mFullScreenToolBar) { @@ -555,10 +576,21 @@ break ; case PANNING_START_EVENT : - case ZOOM_START_EVENT : hideUi(); break ; + //hide the ui component without animation + case ZOOM_START_EVENT : { + HbEffect::EffectStatus e; + mUiOff = TRUE; + if( mFullScreenToolBar ) { + mFullScreenToolBar->hide(); + } + setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden ); + effectFinished( e ); + } + break; + case EMPTY_ROW_EVENT : emit actionTriggered( EGlxCmdEmptyData ); break ; @@ -582,6 +614,7 @@ mUiOffTimer->stop(); mCoverFlow->setUiOn(FALSE); mImageStrip->hide(); + setItemVisible( Hb::AllItems, FALSE ); } else { mUiOffTimer->start(KUiOffTime); @@ -610,6 +643,15 @@ OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_EXIT ); } +void GlxFullScreenView::orientChangeAnimFinished( const HbEffect::EffectStatus status ) +{ + qDebug( "GlxFullScreenView::LsOrientChangeAnimFinished reason %d ", status.reason ); + mIconItems[ 0 ]->resetTransform(); + mIconItems[ 0 ]->setVisible( false ); + mCoverFlow->setVisible( true ); + mZoomWidget->setVisible( true ); +} + void GlxFullScreenView::setLayout() { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY ); @@ -724,24 +766,30 @@ HbEffect::remove( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" )); HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) ); HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) ); + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) ); + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) ); OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT ); } +void GlxFullScreenView::initAnimationItem() +{ + if( mIconItems[0] == NULL ) { + for( int i = 0; i < NBR_ANIM_ITEM; i++ ) { + mIconItems[ i ] = new HbIconItem( mImageStrip->parentItem() ); + mIconItems[ i ]->setBrush( QBrush( Qt::black ) ); + mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 ); + mIconItems[ i ]->setPos( 0, 0 ); + mIconItems[ i ]->setAlignment( Qt::AlignCenter ); + } + } +} + void GlxFullScreenView::imageSelectionAnimation(const QModelIndex &index) { OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_ENTRY ); - - if ( 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 ); - } - } + initAnimationItem(); for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { mIconItems[ i ]->setVisible( true ); mIconItems[ i ]->setSize( screenSize() ); @@ -765,6 +813,25 @@ HbEffect::cancel( mIconItems[1], QString( "SelectShow" ), false, true, true ); } } + +void GlxFullScreenView::playOrientChangeAnim() +{ + qDebug("GlxFullScreenView::playOrientChangeAnim()"); + initAnimationItem(); + mIconItems[ 0 ]->setOpacity( 1 ); + mIconItems[ 0 ]->setSize( screenSize() ); + mIconItems[ 0 ]->setVisible( true ); + mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) ); + + mCoverFlow->setVisible( false ); + mZoomWidget->setVisible( false ); + if ( mWindow->orientation() == Qt::Horizontal ) { + HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSLS" ), this, "orientChangeAnimFinished" ); + } + else { + HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "orientChangeAnimFinished" ); + } +} void GlxFullScreenView::handleToolBarAction() { diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/gridview/inc/glxgridview.h --- a/ui/views/gridview/inc/glxgridview.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/gridview/inc/glxgridview.h Fri Aug 06 20:44:25 2010 +0530 @@ -33,6 +33,8 @@ class HbCheckBox; class HbLabel; class GlxSettingInterface; +class HbGroupBox; +class QGraphicsLinearLayout; class GlxGridView : public GlxView { @@ -87,23 +89,28 @@ void showHbItems(); int getSubState(); void showNoImageString(); + + //It is used to hide and show the toolbar + //In album grid it is not required to show the tool bar + void updateToolBar(); HbMainWindow *mWindow; // no ownership QAbstractItemModel *mModel ; HgGrid *mWidget; // HG Grid Widget QItemSelectionModel *mSelectionModel; // Selected items model GlxModelWrapper *mModelWrapper; // Temp Model Wrapper, so That Role Change not a problem - HbPushButton *mUiOnButton; - HbPushButton *mCameraButton; // Camera Button, when item count is zero + HbPushButton *mUiOnButton; bool mScrolling; HbIconItem *mIconItem; HbCheckBox *mMarkCheckBox; // Mark All checkbox - HbLabel *mCountItem; // Item count of the grid - HbLabel *mMainLabel; - HbLabel *mCountLabel; // Marked item count + HbGroupBox *mTotalImagesCount; // Item count of the grid + HbGroupBox *mMarkSelectHeading; + HbLabel *mMarkCountLabel; // Marked item count HbLabel *mZeroItemLabel; // zero itemcount - HbLabel *mAlbumName; - GlxSettingInterface *mSettings; + HbGroupBox *mAlbumNameHeading; + QGraphicsLinearLayout *mMarkContainer; + GlxSettingInterface *mSettings; + HbWidget *mMarkingWidget; }; #endif /* GLXGRIDVIEW_H_ */ diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/gridview/src/glxgridview.cpp --- a/ui/views/gridview/src/glxgridview.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/gridview/src/glxgridview.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -30,6 +30,9 @@ #include #include #include +#include +#include +#include //User Includes #include "glxviewids.h" @@ -40,6 +43,7 @@ #include "glxlocalisationstrings.h" #include "glxsettinginterface.h" + #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxgridviewTraces.h" @@ -52,22 +56,31 @@ mWidget(NULL), mSelectionModel(NULL), mModelWrapper(NULL), - mUiOnButton(NULL), - mCameraButton(NULL), + mUiOnButton(NULL), mScrolling(FALSE), mIconItem(NULL), mMarkCheckBox(NULL), - mCountItem(NULL), - mMainLabel(NULL), - mCountLabel(NULL), + mTotalImagesCount(NULL), + mMarkSelectHeading(NULL), + mMarkCountLabel(NULL), mZeroItemLabel(NULL), - mAlbumName(NULL) + mAlbumNameHeading(NULL), + mMarkContainer(NULL), + mMarkingWidget(NULL) { OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY ); mModelWrapper = new GlxModelWrapper(); mModelWrapper->setRoles(GlxQImageSmall); mIconItem = new HbIconItem(this); mSettings = GlxSettingInterface::instance() ; + + mUiOnButton = new HbPushButton(this); + connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool))); + mUiOnButton->setGeometry(QRectF(590,0,40,40)); + mUiOnButton->setZValue(1); + mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON)); + mUiOnButton->setObjectName( "UiOn Button" ); + OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT ); } @@ -76,15 +89,10 @@ OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY ); loadGridView(); connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection); - if(mCountItem == NULL) { - mCountItem = new HbLabel(this); - mCountItem->setObjectName( "Count" ); - HbFrameItem *frame = new HbFrameItem(this); //graphics for mCountItem - frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame->graphicsItem()->setOpacity(1); - mCountItem->setBackgroundItem(frame->graphicsItem(),-1); - mCountItem->hide(); + if(mTotalImagesCount == NULL) { + mTotalImagesCount = new HbGroupBox(this); + mTotalImagesCount->setObjectName( "Count" ); + mTotalImagesCount->hide(); } OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT ); } @@ -102,18 +110,16 @@ mIconItem->setOpacity(0); mIconItem->setZValue(mIconItem->zValue()-20); } - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } if(mZeroItemLabel) { mZeroItemLabel->hide(); } - if(mCameraButton) { - mCameraButton->hide(); - } + disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation))); OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT ); } @@ -143,7 +149,9 @@ connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(showItemCount())); connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(showItemCount())); connect(mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel())); - connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString))); + if(getSubState() == ALBUM_ITEM_S){ + connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString))); + } connect(mModel, SIGNAL(populated()), this, SLOT( populated())); } } @@ -191,7 +199,7 @@ { OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY ); setToolBar(toolBar); - hideorshowitems(mWindow->orientation()); + showHbItems(); OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT ); } @@ -199,33 +207,27 @@ { OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" ); mWidget->setSelectionMode(HgWidget::MultiSelection); - if (mMainLabel == NULL) { - mMainLabel = new HbLabel("Select Photos", this); - mMainLabel->setObjectName( "Select Photos"); - HbFrameItem *frame1 = new HbFrameItem(this); //graphics for mMainLabel - frame1->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame1->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame1->graphicsItem()->setOpacity(1); - mMainLabel->setBackgroundItem(frame1->graphicsItem(),-1); - } - if (mMarkCheckBox == NULL) { - mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this); - mMarkCheckBox->setObjectName( "CheckB MarkAll" ); - HbFrameItem *frame2 = new HbFrameItem(this); //graphics for mMarkCheckBox - frame2->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame2->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame2->graphicsItem()->setOpacity(1); - mMarkCheckBox->setBackgroundItem(frame2->graphicsItem(),-1); - } - if (mCountLabel == NULL) { - mCountLabel = new HbLabel(this); - mCountLabel->setObjectName( "MarkCount" ); - HbFrameItem *frame3 = new HbFrameItem(this); //graphics for mCountLabel - frame3->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame3->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame3->graphicsItem()->setOpacity(1); - mCountLabel->setBackgroundItem(frame3->graphicsItem(),-1); - } + + if (mMarkingWidget == NULL) + { + mMarkingWidget = new HbWidget(this); + mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0); + mMarkingWidget->setLayout(mMarkContainer); + + mMarkSelectHeading = new HbGroupBox(this); + mMarkSelectHeading->setHeading(GLX_SELECT_IMAGES); + mMarkSelectHeading->setObjectName("Select Photos"); + + mMarkCountLabel = new HbLabel(mMarkingWidget); + mMarkCountLabel->setObjectName("MarkCount"); + mMarkCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + + mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget); + mMarkCheckBox->setObjectName("CheckB MarkAll"); + + mMarkContainer->addItem(mMarkCheckBox); + mMarkContainer->addItem(mMarkCountLabel); + } hideorshowitems(mWindow->orientation()); @@ -240,18 +242,16 @@ mWidget->setSelectionMode(HgWidget::NoSelection); disconnect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) ); disconnect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int))); - if (mMainLabel) { - mMainLabel->hide(); - } - if (mMarkCheckBox) { - mMarkCheckBox->setCheckState(Qt::Unchecked); - mMarkCheckBox->hide(); - } - if (mCountLabel) { - mCountLabel->hide(); + + if (mMarkSelectHeading) { + mMarkSelectHeading->hide(); } - hideorshowitems(mWindow->orientation()); + if (mMarkingWidget) { + mMarkingWidget->hide(); + } + + showHbItems(); } void GlxGridView::stateChanged(int state) @@ -267,9 +267,10 @@ int count = mModel->rowCount(); QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes(); int markItemCount = indexList.count(); - - QString text= QString("%1 / %2").arg( markItemCount ).arg( count ); - mCountLabel->setPlainText( text ); + + QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count); + + mMarkCountLabel->setPlainText( text ); } void GlxGridView::showItemCount() @@ -284,27 +285,24 @@ if(mZeroItemLabel) { mZeroItemLabel->hide(); } - if(mCameraButton) { - mCameraButton->hide(); - } + if(isItemVisible(Hb::TitleBarItem)) { QString text; if(XQServiceUtil::isService()) { - showAlbumTitle(GLX_FETCHER_TITLE); + showAlbumTitle(GLX_SELECT_IMAGE); } else if (getSubState() == ALL_ITEM_S) { - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } - mCountItem->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - text = QString("%1 Items").arg( count ); - mCountItem->setPlainText( text ); - mCountItem->setAlignment(Qt::AlignLeft); - mCountItem->show(); + mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); + text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); + mTotalImagesCount->setHeading ( text ); + mTotalImagesCount->show(); } else if (getSubState() == ALBUM_ITEM_S) { - mCountItem->hide(); + mTotalImagesCount->hide(); QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle); if (variant.toString() != NULL) { showAlbumTitle(variant.toString()); @@ -312,11 +310,11 @@ } } else { - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } } @@ -329,11 +327,11 @@ populated = variant.value(); } if(populated) { - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } showNoImageString(); @@ -355,42 +353,29 @@ QSize deviceSize = HbDeviceProfile::current().logicalSize(); QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() ) : QSize( deviceSize.height(), deviceSize.width() ) ; - if(mAlbumName == NULL) { - mAlbumName = new HbLabel(this); - mAlbumName->setObjectName( "Album Name" ); - HbFrameItem *frame = new HbFrameItem(this); //graphics for mAlbumName - frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); - frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); - frame->graphicsItem()->setOpacity(1); - mAlbumName->setBackgroundItem(frame->graphicsItem(),-1); - } - - //If fetcher service set only title text - if((XQServiceUtil::isService() ) && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - } - else{ //handle album tiltle and count display logic here - if( count && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width()/2,deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - mCountItem->setGeometry(QRectF(screenSize.width()/2,0,screenSize.width()/2,deviceSize.height()/24)); - text = QString("(%1)").arg(count); - mCountItem->setPlainText( text ); - mCountItem->setAlignment(Qt::AlignRight); - mCountItem->show(); - } - else if((!count) && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - } - } + if (mAlbumNameHeading == NULL) + { + mAlbumNameHeading = new HbGroupBox(this); + mAlbumNameHeading->setObjectName("Album Name"); + } + + //If fetcher service set only title text + if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem)) + { + mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24)); + mAlbumNameHeading->setHeading(aTitle); + mAlbumNameHeading->show(); + } + else + { //handle album tiltle and count display logic here + if (count && isItemVisible(Hb::TitleBarItem)) + { + mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24)); + QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count); + mAlbumNameHeading->setHeading(text); + mAlbumNameHeading->show(); + } + } } void GlxGridView::showNoImageString() @@ -406,28 +391,13 @@ } if (mZeroItemLabel == NULL) { QString displayText(GLX_GRID_NO_IMAGE); - if(!XQServiceUtil::isService()) - { - displayText.append(GLX_GRID_OPEN_CAMERA); - } mZeroItemLabel = new HbLabel(displayText, this); mZeroItemLabel->setObjectName( "No Image" ); } mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32)); mZeroItemLabel->setAlignment(Qt::AlignHCenter); mZeroItemLabel->show(); - if (mCameraButton == NULL) { - mCameraButton = new HbPushButton(this); - mCameraButton->setObjectName( "Camera Button" ); - mCameraButton->setIcon(HbIcon(GLXICON_CAMERA)); - mCameraButton->hide(); - connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool))); - } - if(!XQServiceUtil::isService()) - { - mCameraButton->setGeometry(QRectF(screenSize.width()/2 - 3*deviceSize.height()/64, midHeight + deviceSize.height()/32, deviceSize.height()/32, deviceSize.height()/32)); - mCameraButton->show(); - } + } void GlxGridView::populated() @@ -553,15 +523,18 @@ } setWidget( mWidget ); addViewConnection(); - hideorshowitems(orient); } OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT ); } void GlxGridView::orientationchanged(Qt::Orientation orient) { - hideorshowitems(orient); + if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) { + hideorshowitems(orient); + } + showHbItems(); } + void GlxGridView::hideorshowitems(Qt::Orientation orient) { if ( mWidget && mWidget->selectionMode() == HgWidget::NoSelection ) { @@ -584,27 +557,30 @@ } } else if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) { - setItemVisible(Hb::TitleBarItem, FALSE) ; + setItemVisible(Hb::AllItems, FALSE) ; + setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); if (mUiOnButton) { mUiOnButton->hide(); } - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } + QSize deviceSize = HbDeviceProfile::current().logicalSize(); QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() ) : QSize( deviceSize.height(), deviceSize.width() ) ; - mMainLabel->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); - mMarkCheckBox->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/72)); - mCountLabel->setGeometry(QRectF(screenSize.width()/2,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/12 - 3)); - mCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); - mMainLabel->show(); - mMarkCheckBox->show(); - mCountLabel->show(); + + mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); + mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72)); + + mMarkSelectHeading->show(); + mMarkingWidget->show(); + showMarkedItemCount(); + } } @@ -654,21 +630,22 @@ if ( mWidget->selectionMode() == HgWidget::MultiSelection ) { return ; } - if(XQServiceUtil::isService()){ - emit gridItemSelected(index); - return; - } OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" ); if ( mModel ) { mModel->setData( index, index.row(), GlxFocusIndexRole ); } + if(XQServiceUtil::isService()){ + qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" ); + emit actionTriggered( EGlxCmdFetcherSelect ); + return; + } emit actionTriggered( EGlxCmdFullScreenOpen ); OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START ); } void GlxGridView::scrollingStarted() { - if ((mWindow->orientation() == Qt::Horizontal) && mWidget->selectionMode() == HgWidget::NoSelection) + if ((mWindow->orientation() == Qt::Horizontal)/* && mWidget->selectionMode() == HgWidget::NoSelection*/) { setItemVisible(Hb::AllItems, FALSE) ; setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); @@ -676,11 +653,11 @@ { mUiOnButton->hide(); } - if (mCountItem) { - mCountItem->hide(); + if (mTotalImagesCount) { + mTotalImagesCount->hide(); } - if (mAlbumName) { - mAlbumName->hide(); + if (mAlbumNameHeading) { + mAlbumNameHeading->hide(); } } @@ -726,17 +703,16 @@ disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool))); delete mUiOnButton; } - if(mCameraButton) { - disconnect(mCameraButton, SIGNAL(clicked()), this, SLOT(cameraButtonClicked())); - delete mCameraButton; - } + delete mIconItem; - delete mCountItem; - delete mAlbumName; - delete mMainLabel; + delete mTotalImagesCount; + delete mAlbumNameHeading; + delete mMarkSelectHeading; delete mMarkCheckBox; - delete mCountLabel; + delete mMarkCountLabel; + delete mMarkingWidget; delete mZeroItemLabel; + OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT ); } @@ -762,15 +738,16 @@ void GlxGridView::showHbItems() { - setItemVisible(Hb::AllItems, TRUE) ; - setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden); + if(mWidget && mWidget->selectionMode() == HgWidget::NoSelection) { + setItemVisible( Hb::TitleBarItem, TRUE ); + setItemVisible( Hb::StatusBarItem, TRUE ); + setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden); showItemCount(); - toolBar()->resetTransform(); // Temp, this is for HbToolbar issue to get fixed - toolBar()->show(); - if (mUiOnButton) - { + } + updateToolBar(); + if (mUiOnButton) { mUiOnButton->hide(); - } + } } void GlxGridView::cameraButtonClicked(bool /*checked*/) @@ -781,10 +758,30 @@ int GlxGridView::getSubState() { int substate = NO_GRID_S; - QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); - if ( variant.isValid() && variant.canConvert () ) { - substate = variant.value(); + if ( mModel ) { + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + substate = variant.value(); + } } return substate; } +void GlxGridView::updateToolBar() +{ + //In the case of multiselection show the tool bar. + if ( mWidget && mWidget->selectionMode() == HgWidget::MultiSelection ) { + setItemVisible( Hb::ToolBarItem, TRUE ) ; + return ; + } + + //In Album grid it is not required to show tool bar + int subState = getSubState(); + if ( subState == ALBUM_ITEM_S || subState == FETCHER_ALBUM_ITEM_S ) { + setItemVisible( Hb::ToolBarItem, FALSE ) ; + } + else { + setItemVisible( Hb::ToolBarItem, TRUE ); + } +} + diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/listview/src/glxlistview.cpp --- a/ui/views/listview/src/glxlistview.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/listview/src/glxlistview.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -57,7 +57,6 @@ void GlxListView::deActivate() { qDebug("GlxListView::deActivate()"); - disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation))); } void GlxListView::setModel(QAbstractItemModel *model) @@ -206,7 +205,19 @@ if ( mModel ) { mModel->setData( index, index.row(), GlxFocusIndexRole ); } - emit actionTriggered( EGlxCmdAlbumGridOpen ); + + int curstate = NO_LIST_S; + qDebug() << "GlxListView::itemSelected READING STATE "; + QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole ); + if ( variant.isValid() && variant.canConvert () ) { + curstate = variant.value(); + } + qDebug() << "GlxMenuManager::viewSubState = " << curstate ; + if(curstate == FETCHER_ALBUM_S ){ + emit actionTriggered( EGlxCmdFetcherAlbumGridOpen ); + }else { + emit actionTriggered( EGlxCmdAlbumGridOpen ); + } } diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/slideshowview/inc/glxslideshowview.h --- a/ui/views/slideshowview/inc/glxslideshowview.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/slideshowview/inc/glxslideshowview.h Fri Aug 06 20:44:25 2010 +0530 @@ -33,29 +33,115 @@ class GlxSlideShowWidget; class GlxTvOutWrapper; +/** + * Class Description + * This is Slideshow view class used to play the slide show on set of images. + */ class GlxSlideShowView : public GlxView { Q_OBJECT public: - GlxSlideShowView(HbMainWindow *window,HbDocumentLoader *Docloader); + /** + * Constructor + * @param - HbMainWindow object + * @param - fullscreen docloader object + */ + GlxSlideShowView( HbMainWindow *window, HbDocumentLoader *Docloader ); + + /** + * Destructor + */ ~GlxSlideShowView(); + + /** + * activate() + * ///From GlxView + */ void activate() ; + + /** + * deActivate() + * ///From GlxView + */ void deActivate(); - void setModel(QAbstractItemModel *model); + + /** + * setmodel() + * ///from GlxView + */ + void setModel( QAbstractItemModel *model ); + + /** + * setModelContext() - to set the context mode of the model. + */ void setModelContext(); + + /** + * handleUserAction() - To handle the used action like back to paly the orientation change animation. + */ + void handleUserAction( qint32 commandId ); public slots : - void orientationChanged(Qt::Orientation); - void slideShowEventHandler( GlxSlideShowEvent e); + /** + * orientationChanged() - Slot to upadte the layout when orientation of device has changed + * @param new orientation + */ + void orientationChanged( Qt::Orientation ) ; + + /** + * slideShowEventHandler() - to handle the widget events like ui on / off, empty data etc + * @param slide show widget event type + */ + void slideShowEventHandler( GlxSlideShowEvent e ); + + /** + * indexchanged() - call back to handle the selected image change. + */ void indexchanged(); + + /** + * modelDestroyed() - call back to monitor the model destroy. + */ void modelDestroyed(); + /** + * playLsOrientChangeAnim() - To play the protrait to landscape orientation animation. + */ + void playLsOrientChangeAnim(); + + /** + * playLsOrientChangeAnim() - To play the landscape to protrait orientation animation. + */ + void playPtOrientChangeAnim(); + + /** + * LsOrientChangeAnimFinished() - Call back fuction when protrait to landscape orientation animation + * has been finished. + * @param - staus of effect + */ + void LsOrientChangeAnimFinished( const HbEffect::EffectStatus ); + + /** + * PtOrientChangeAnimFinished() - Call back fuction when landscape to protrait orientation animation + * has been finished. + * @param - staus of effect + */ + void PtOrientChangeAnimFinished( const HbEffect::EffectStatus ); + protected : - bool eventFilter(QObject *obj, QEvent *ev); + /** + * eventFilter - To handle the application foregrond and background event + * ///From HbView + */ + bool eventFilter( QObject *obj, QEvent *ev ); private: + /** + * loadWidgets() - The widgets are retrieved from the docml + */ void loadObjects(); + private: QAbstractItemModel *mModel; HbMainWindow *mWindow; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/slideshowview/inc/glxslideshowwidget.h --- a/ui/views/slideshowview/inc/glxslideshowwidget.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/slideshowview/inc/glxslideshowwidget.h Fri Aug 06 20:44:25 2010 +0530 @@ -49,101 +49,254 @@ EFFECT_STARTED // sends the signal when effect is started. } GlxSlideShowEvent; +/** + * Class Description + * This is Slideshow widget class used to play the slide show animation and ahndle the user action like pause and play. + */ class GlxSlideShowWidget : public HbWidget { Q_OBJECT public : - GlxSlideShowWidget (QGraphicsItem *parent = NULL); + /** + * Constructor + * @param - QGraphicsItem + */ + GlxSlideShowWidget ( QGraphicsItem *parent = NULL ); + + /** + * Destructor + */ ~GlxSlideShowWidget (); - void setModel (QAbstractItemModel *model); - void setItemGeometry(QRect screenRect); + + /** + * setmodel() - To set the model of the widget. + * @param - QAbstractItemModel. + */ + void setModel ( QAbstractItemModel *model ); + + /** + * setItemGeometry() - To Set the layout data of widgets item. + * @param scrren gemoetry + */ + void setItemGeometry( QRect screenRect ); + + /** + * startSlideShow() - To start the slide show timer to run the slide show. + */ void startSlideShow(); + + /** + * stopSlideShow() - To stop slide show timer. + */ void stopSlideShow(); - /* - * Initialise the slideshow widget - * creation of the icons are done here - */ - void setSlideShowWidget(HbDocumentLoader *DocLoader); /* - * Cleans up the slide show widget + * setSlideShowWidget() - Initialise the slideshow widget and creation of the icons are done here. + * @param - docloader + */ + void setSlideShowWidget( HbDocumentLoader *DocLoader ); + + /* + * cleanUp() -Cleans up the slide show widget */ void cleanUp(); + /* + * animationItem() - Return the icon to use for some transition effect + */ + QGraphicsItem * animationItem(); + + /** + * updateAnimationItem() - upadte the z value of anition item for smooth effect. + */ + void updateAnimationItem(); + + signals: - void slideShowEvent(GlxSlideShowEvent e); + /** + * slideShowEvent() - This signal is emitted when slide show event happend lide ui on/off + * @param - GlxSlideShowEvent. + */ + void slideShowEvent( GlxSlideShowEvent e ); + + /** + * indexchanged() - This signal is emmitted when image selected index is changed. + */ void indexchanged(); public slots : + /** + * triggeredEffect() - To start the slide show animation. + */ void triggeredEffect(); + + /** + * continueSlideShow() - Play the slide show. + * @param - From HbAbstractButton. + */ + void continueSlideShow( bool check ); + + /** + * effectFinshed() - Call back to get notification of slide show animation has been finshed. + */ void effectFinshed(); - void cancelEffect(); - void pauseSlideShow(); - void continueSlideShow(bool check); - void dataChanged(QModelIndex startIndex, QModelIndex endIndex); - void rowsInserted(const QModelIndex &parent, int start, int end); - void rowsRemoved(const QModelIndex &parent, int start, int end); + + /** + * dataChanged() - call back to monitor the widget data changed. + * @param - start index of data changed. + * @param - end index of data changed. + */ + void dataChanged( QModelIndex startIndex, QModelIndex endIndex ); + + /** + * rowsInserted() - call back of new row inserted in the model. + * @param - Items are inserted under parent. + * @param - start index of items inserted. + * @param - end index of items removed. + */ + void rowsInserted( const QModelIndex &parent, int start, int end ); + + /** + * rowsRemoved() - call back of new row removed in the model. + * @param - Items are removed from parent item. + * @param - start index of items inserted. + * @param - end index of items removed. + */ + void rowsRemoved( const QModelIndex &parent, int start, int end ); + + /** + * modelDestroyed() - call back to monitor the model destroy. + */ void modelDestroyed(); - void orientationChanged(QRect screenRect); + + /** + * orientationChanged() - relayout the data when orientation has been changed + * @param - Screen Geometry + */ + void orientationChanged( QRect screenRect ); + /** + * leftMoveEffectFinished() - call back, when animation of browse the image in forward direction + * has been finished. + * @param - staus of effect + */ void leftMoveEffectFinished( const HbEffect::EffectStatus &status ); + + /** + * leftMoveEffectFinished() - call back, when animation of browse the image in backward direction + * has been finished. + * @param - staus of effect + */ void rightMoveEffectFinished( const HbEffect::EffectStatus &status ); protected slots : - void leftGesture (int value); - void rightGesture (int value); + /** + * leftGesture() - To handle the left move event + * @parma number of pixel move. + */ + void leftGesture ( int value ); + + /** + * rightGesture() - To handle the right move event + * @parma number of pixel move. + */ + void rightGesture ( int value ); protected : - void gestureEvent(QGestureEvent *event); + /** + * gestureEvent() - gesture event handler. + * @param - QGestureEvent + */ + void gestureEvent( QGestureEvent *event ); private : - //clear all the model connection + /** + * clearCurrentModel() - clear all the model call backs + */ void clearCurrentModel(); - //add the connection to the model + + /** + * initializeNewModel() - register the model data change call backs + */ void initializeNewModel(); + + /** + * resetSlideShow() - Reinitialise the widget property. + */ void resetSlideShow(); + + /** + * moveImage() - Sopport function to handle the user browsing. + * @param - next selected image index. + * @param - position of next image index. + * @param - effect event + * @param - animation finished callback function + */ void moveImage( int nextIndex, int posX, const QString & move, char * callBack ); + + /** + * addConnections() - register the internal and effect engine callback. + */ void addConnections(); + + /** + * removeConnections() - deregister the internal and effect engine callback. + */ void removeConnections(); - /* - * To get the focus index + /** + * cancelEffect() - To cancel the currnet effect running. + */ + void cancelEffect(); + + /** + * pauseSlideShow() - Pause the slide show. + */ + void pauseSlideShow(); + + /** + * getFocusIndex() -To get the focus index */ int getFocusIndex( ); /* - * To get the full screen icon of the image + * getIcon() - To get the full screen icon of the image + * @param - index of the icon */ HbIcon getIcon( int index ); - /* - * To check the itemis corrupted or not + /** + * isCorrupt() - To check the itemis corrupted or not + * @param - index of the icon */ bool isCorrupt( int index ); - /* - * To set the current ( focus ) item icon + /** + * setFocusItemIcon() - To set the current ( focus ) item icon + * @return - return the success or failure status */ bool setFocusItemIcon(); - /* - * To set the next itme icon in the list + /** + * setNextItemIcon() - To set the next itme icon in the list + * @return - return the success or failure status */ bool setNextItemIcon(); - /* - * To set the previous icon in the list + /** + * setPreItemIcon() - To set the previous icon in the list + * @return - return the success or failure status */ bool setPreItemIcon(); - /* - * In the case of all the image are corrupted then show the error notes + /** + * showErrorNote() - In the case of all the image are corrupted then show the error notes */ void showErrorNote(); - /* - * It will hide the corrupted images note + /** + * hideErrorNote() - It will hide the corrupted images note */ void hideErrorNote(); @@ -151,6 +304,7 @@ GlxEffectEngine *mEffectEngine; GlxSettingInterface *mSettings; //no ownership HbIconItem *mIconItems[ NBR_ITEM ]; + HbIconItem *mAnimItem; HbIconItem *mBackGroundItem; HbPushButton *mContinueButton; HbLabel *mErrorNote ; //when all the image are corrupted then show the no image label diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/slideshowview/src/glxslideshowview.cpp --- a/ui/views/slideshowview/src/glxslideshowview.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/slideshowview/src/glxslideshowview.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -43,6 +43,8 @@ { TRACER("GlxSlideShowView::GlxSlideShowView()"); mDocLoader = DocLoader; + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatelandscape.fxml" ), QString( "RotateLS" ) ); + HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotateprotrait.fxml" ), QString( "RotatePT" ) ); } GlxSlideShowView::~GlxSlideShowView() @@ -59,12 +61,13 @@ delete mDocLoader; mDocLoader = NULL; } + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate.fxml" ), QString( "RotateStart" ) ); + HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate1.fxml" ), QString( "RotateEnd" ) ); } void GlxSlideShowView::activate() { TRACER("GlxSlideShowView::activate()"); - mWindow->setOrientation(Qt::Horizontal, false); //finds the widgets from the docml loadObjects(); @@ -72,6 +75,7 @@ setStatusBarVisible(FALSE); connect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); connect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) ); + connect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) ); QCoreApplication::instance()->installEventFilter(this); @@ -83,14 +87,14 @@ void GlxSlideShowView::deActivate() { TRACER("GlxSlideShowView::deActivate()"); - mWindow->unsetOrientation(false); + mWindow->unsetOrientation( false ); setStatusBarVisible(TRUE); - setTitleBarVisible(TRUE); - + setTitleBarVisible(TRUE); disconnect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); disconnect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) ); + disconnect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) ); //Delete the Items in the slide show widget mSlideShowWidget->cleanUp(); @@ -107,12 +111,13 @@ { TRACER("GlxSlideShowView::setModel()"); GLX_LOG_INFO2("GlxSlideShowView::setModel() model %u mModel %u", model, mModel); - if ( mModel != model ) { - modelDestroyed(); - mModel = model; - connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); + if ( mModel != model ) { + modelDestroyed(); + mModel = model; + connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) ); } + setModelContext(); mSlideShowWidget->setModel(mModel); @@ -127,14 +132,24 @@ TRACER("GlxSlideShowView::setModelContext()"); if ( mModel && mWindow ) { GLX_LOG_INFO1("GlxSlideShowView::setModelContext %d", mWindow->orientation() ); - - mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); - /* if ( mWindow->orientation() == Qt::Horizontal ) { + if ( mWindow->orientation() == Qt::Horizontal ) { mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); } else { mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole ); - } */ + } + } +} + +void GlxSlideShowView::handleUserAction( qint32 commandId ) +{ + switch( commandId ){ + case EGlxCmdPlayBackAnim : + playPtOrientChangeAnim(); + break; + + default : + break; } } @@ -191,6 +206,40 @@ } } +void GlxSlideShowView::playLsOrientChangeAnim() +{ + qDebug( "GlxSlideShowView::playLsOrientChangeAnim() enter "); + if ( mWindow->orientation( ) == Qt ::Vertical ) { + mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole ); + mSlideShowWidget->updateAnimationItem(); + HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotateLS" ), this, "LsOrientChangeAnimFinished" ); + qDebug( "GlxSlideShowView::playLsOrientChangeAnim() exit1 "); + } + else { + mWindow->setOrientation( Qt::Horizontal, false ); + } +} + +void GlxSlideShowView::playPtOrientChangeAnim() +{ + mModel->setData( QModelIndex(), ( int )GlxContextPtFs, GlxContextRole ); + setTitleBarVisible( FALSE ); + setStatusBarVisible( FALSE ); + mSlideShowWidget->updateAnimationItem(); + HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotatePT" ), this, "PtOrientChangeAnimFinished" ); +} + +void GlxSlideShowView::LsOrientChangeAnimFinished( const HbEffect::EffectStatus ) +{ + mWindow->setOrientation( Qt::Horizontal, false ); + orientationChanged( Qt::Horizontal ); +} + +void GlxSlideShowView::PtOrientChangeAnimFinished( const HbEffect::EffectStatus ) +{ + emit actionTriggered( EGlxCmdSlideShowBack ); +} + bool GlxSlideShowView::eventFilter(QObject *obj, QEvent *event) { TRACER("GlxSlideShowView::event()"); diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/slideshowview/src/glxslideshowwidget.cpp --- a/ui/views/slideshowview/src/glxslideshowwidget.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -46,6 +46,7 @@ : HbWidget( parent ), mEffectEngine( NULL ), mSettings( NULL ), + mAnimItem( NULL ), mBackGroundItem( NULL ), mContinueButton( NULL ), mErrorNote( NULL ), @@ -67,10 +68,13 @@ //create the effect engine mEffectEngine = new GlxEffectEngine(); + mItemIndex = 1; mBackGroundItem = new HbIconItem( this ); mBackGroundItem->setBrush( QBrush( Qt::black ) ); - + mAnimItem = new HbIconItem( this ); + mAnimItem->setAlignment( Qt::AlignCenter ); + // Now load the view and the contents. // and then set the play icon to the button mContinueButton = static_cast( DocLoader->findWidget( GLXSLIDESHOW_PB ) ); @@ -131,6 +135,9 @@ delete mBackGroundItem ; mBackGroundItem = NULL; + + delete mAnimItem; + mAnimItem = NULL; if( mSlideTimer ) { delete mSlideTimer; @@ -148,6 +155,18 @@ HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionright.fxml"), QString( "RightMove" )); } +QGraphicsItem * GlxSlideShowWidget::animationItem() +{ + mAnimItem->setIcon( getIcon( mSelIndex[ mItemIndex ] ) ); + return mAnimItem; +} + +void GlxSlideShowWidget::updateAnimationItem() +{ + mIconItems[ mItemIndex ]->setIcon( HbIcon() ); + mAnimItem->setZValue( mAnimItem->zValue() + 10 ); +} + void GlxSlideShowWidget::setModel ( QAbstractItemModel *model ) { TRACER("GlxSlideShowWidget::setModel()"); @@ -171,6 +190,8 @@ index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1; mIconItems[ index ]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) ); mBackGroundItem->setGeometry( mScreenRect ); + int xPos = ( mScreenRect.width() - mScreenRect.height() ) >> 1 ; + mAnimItem->setGeometry( QRect( xPos, -xPos, mScreenRect.height(), mScreenRect.width() ) ); } void GlxSlideShowWidget::triggeredEffect() @@ -241,6 +262,10 @@ Q_UNUSED( endIndex ) TRACER("GlxSlideShowWidget::dataChanged()"); GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged startIndex = %d mSelIndex = %d ", startIndex.row(), mSelIndex ); + + if ( HbEffect::effectRunning( mAnimItem ) ) { + return ; + } for( int i = 0; i < NBR_ITEM; ++i ) { if ( mSelIndex[ i ] == startIndex.row() ) { @@ -255,6 +280,9 @@ Q_UNUSED(parent); Q_UNUSED(start); Q_UNUSED(end); + if ( HbEffect::effectRunning( mAnimItem ) ) { + return ; + } resetSlideShow(); } @@ -286,6 +314,8 @@ void GlxSlideShowWidget::orientationChanged(QRect screenRect) { TRACER("GlxSlideShowWidget::orientationChanged()"); + mAnimItem->setIcon( HbIcon() ); + mAnimItem->setZValue( mAnimItem->zValue() - 10 ); cancelEffect(); setItemGeometry( screenRect); resetSlideShow(); @@ -494,7 +524,7 @@ if ( variant.isValid() && variant.canConvert< bool> () ) { return variant.value< bool > () ; } - return false ; + return false ; } bool GlxSlideShowWidget::setFocusItemIcon( ) @@ -507,10 +537,8 @@ 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 ); - } + mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxFocusIndexRole ); + mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxVisualWindowIndex ); return true; } focusIndex = ( focusIndex + 1 ) % nbrItem; @@ -547,7 +575,7 @@ { int nbrItem = mModel->rowCount() ; int imageIndex = mSelIndex[ mItemIndex ] > 0 ? mSelIndex[ mItemIndex ] - 1 : nbrItem - 1 ; - int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : mItemIndex ; + int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : NBR_ITEM - 1 ; for( int i = 1; i < nbrItem; ++i ) { if ( isCorrupt( imageIndex ) == false ) { diff -r a3a4c0de738e -r 0f0f3f26f787 ui/views/viewbase/inc/glxview.h --- a/ui/views/viewbase/inc/glxview.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/views/viewbase/inc/glxview.h Fri Aug 06 20:44:25 2010 +0530 @@ -68,7 +68,6 @@ signals: void actionTriggered( qint32 id ); void itemSpecificMenuTriggered( qint32,QPointF ); - void gridItemSelected( const QModelIndex &); private : qint32 mId; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h --- a/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h Fri Aug 06 20:44:25 2010 +0530 @@ -20,6 +20,7 @@ #define GLXZOOMINOUTEFFECTPLUGIN_H #include "glxeffectpluginbase.h" +#include "glxlocalisationstrings.h" class GlxZoomInOutEffectPlugin : public GlxEffectPluginBase { @@ -47,7 +48,7 @@ /* * get the name of the effect, use to shown in the slide show setting view */ - static QString effectName() { return QString ("ZoomInOut") ; } + static QString effectName() { return (GLX_EFFECTS_ZOOMIN_ZOOMOUT) ; } private : QList mEffectFileList; diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp --- a/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -18,6 +18,7 @@ #include "glxflipeffectplugin.h" #include "glxuistd.h" +#include "glxlocalisationstrings.h" GlxFlipEffectPlugin::GlxFlipEffectPlugin() : GlxEffectPluginBase( FLIP_EFFECT ) { @@ -36,7 +37,7 @@ QString GlxFlipEffectPlugin::effectName() { - return ( "FLip" ) ; + return GLX_EFFECTS_FLIP ; } GlxFlipEffectPlugin::~GlxFlipEffectPlugin() diff -r a3a4c0de738e -r 0f0f3f26f787 ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp --- a/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -37,7 +37,7 @@ QString GlxHelixEffectPlugin::effectName() { - return ( "Helix" ) ; + return ( GLX_EFFECTS_ZOOM_AND_PAN ) ; } GlxHelixEffectPlugin::~GlxHelixEffectPlugin() diff -r a3a4c0de738e -r 0f0f3f26f787 ui/widgets/bwins/glxzoomwidgetu.def --- a/ui/widgets/bwins/glxzoomwidgetu.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/widgets/bwins/glxzoomwidgetu.def Fri Aug 06 20:44:25 2010 +0530 @@ -12,34 +12,35 @@ ?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void) ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *) ?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 13 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void) - ?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 14 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *) - ?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 15 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void) - ?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 16 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *) - ?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 17 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF) - ?activate@GlxZoomWidget@@QAEXXZ @ 18 NONAME ; void GlxZoomWidget::activate(void) - ?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void) - ?indexChanged@GlxZoomWidget@@QAEXH@Z @ 20 NONAME ; void GlxZoomWidget::indexChanged(int) - ?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 21 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF) - ?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void) - ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 23 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) - ?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 24 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void) - ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) - ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 26 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) - ?indexChanged@GlxZoomWidget@@QAEXXZ @ 27 NONAME ; void GlxZoomWidget::indexChanged(void) - ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 28 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) - ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 29 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) - ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 30 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) - ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 31 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const - ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 32 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) - ??_EGlxZoomWidget@@UAE@I@Z @ 33 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) - ??1GlxZoomWidget@@UAE@XZ @ 34 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) - ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 35 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) - ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 36 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) - ?setZoomParams@GlxZoomWidget@@AAEXXZ @ 37 NONAME ; void GlxZoomWidget::setZoomParams(void) - ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 38 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) - ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) - ?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 40 NONAME ; void GlxZoomWidget::animationFrameChanged(int) - ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 41 NONAME ; void GlxZoomWidget::modelDestroyed(void) - ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 42 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) - ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) + ?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 14 NONAME ; void GlxZoomWidget::animateDoubleTap(void) + ?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 15 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *) + ?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 16 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void) + ?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 17 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *) + ?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 18 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF) + ?activate@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::activate(void) + ?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void) + ?indexChanged@GlxZoomWidget@@QAEXH@Z @ 21 NONAME ; void GlxZoomWidget::indexChanged(int) + ?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 22 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF) + ?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void) + ?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 24 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void) + ?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 25 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void) + ?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 27 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int) + ?indexChanged@GlxZoomWidget@@QAEXXZ @ 28 NONAME ; void GlxZoomWidget::indexChanged(void) + ?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 29 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF) + ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 30 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) + ?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 31 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &) + ?stepZoom@GlxZoomWidget@@IAEXXZ @ 32 NONAME ; void GlxZoomWidget::stepZoom(void) + ?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 33 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const + ?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 34 NONAME ; void GlxZoomWidget::decodedImageAvailable(void) + ??_EGlxZoomWidget@@UAE@I@Z @ 35 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int) + ??1GlxZoomWidget@@UAE@XZ @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(void) + ?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 37 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *) + ?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 38 NONAME ; void GlxZoomWidget::pinchGestureReceived(int) + ?setZoomParams@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::setZoomParams(void) + ?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 40 NONAME ; void GlxZoomWidget::setWindowSize(class QSize) + ?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 41 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void) + ?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 42 NONAME ; void GlxZoomWidget::modelDestroyed(void) + ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) + ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) diff -r a3a4c0de738e -r 0f0f3f26f787 ui/widgets/eabi/glxzoomwidgetu.def --- a/ui/widgets/eabi/glxzoomwidgetu.def Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/widgets/eabi/glxzoomwidgetu.def Fri Aug 06 20:44:25 2010 +0530 @@ -8,44 +8,45 @@ _ZN13GlxZoomWidget12indexChangedEv @ 7 NONAME _ZN13GlxZoomWidget13animateZoomInE7QPointF @ 8 NONAME _ZN13GlxZoomWidget13setWindowSizeE5QSize @ 9 NONAME - _ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 10 NONAME - _ZN13GlxZoomWidget15getFocusedImageEv @ 11 NONAME - _ZN13GlxZoomWidget15setMinMaxZValueEii @ 12 NONAME - _ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 13 NONAME - _ZN13GlxZoomWidget16staticMetaObjectE @ 14 NONAME DATA 16 - _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 15 NONAME - _ZN13GlxZoomWidget17sendDecodeRequestEi @ 16 NONAME - _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 17 NONAME - _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 18 NONAME - _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 19 NONAME - _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 20 NONAME - _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 21 NONAME - _ZN13GlxZoomWidget21animationFrameChangedEi @ 22 NONAME - _ZN13GlxZoomWidget21decodedImageAvailableEv @ 23 NONAME - _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 24 NONAME - _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 25 NONAME - _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 26 NONAME - _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 27 NONAME - _ZN13GlxZoomWidget7cleanUpEv @ 28 NONAME - _ZN13GlxZoomWidget8activateEv @ 29 NONAME - _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 30 NONAME - _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 31 NONAME - _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 32 NONAME - _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 33 NONAME - _ZN13GlxZoomWidgetD0Ev @ 34 NONAME - _ZN13GlxZoomWidgetD1Ev @ 35 NONAME - _ZN13GlxZoomWidgetD2Ev @ 36 NONAME - _ZNK13GlxZoomWidget10metaObjectEv @ 37 NONAME - _ZTI13GlxZoomWidget @ 38 NONAME - _ZTV13GlxZoomWidget @ 39 NONAME - _ZThn16_N13GlxZoomWidgetD0Ev @ 40 NONAME - _ZThn16_N13GlxZoomWidgetD1Ev @ 41 NONAME - _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 42 NONAME - _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 43 NONAME - _ZThn8_N13GlxZoomWidgetD0Ev @ 44 NONAME - _ZThn8_N13GlxZoomWidgetD1Ev @ 45 NONAME - _ZN13GlxZoomWidget14modelDestroyedEv @ 46 NONAME - _ZN13GlxZoomWidget13setZoomParamsEv @ 47 NONAME - _ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 48 NONAME - _ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 49 NONAME + _ZN13GlxZoomWidget13setZoomParamsEv @ 10 NONAME + _ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 11 NONAME + _ZN13GlxZoomWidget14modelDestroyedEv @ 12 NONAME + _ZN13GlxZoomWidget15getFocusedImageEv @ 13 NONAME + _ZN13GlxZoomWidget15setMinMaxZValueEii @ 14 NONAME + _ZN13GlxZoomWidget16animateDoubleTapEv @ 15 NONAME + _ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 16 NONAME + _ZN13GlxZoomWidget16staticMetaObjectE @ 17 NONAME DATA 16 + _ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 18 NONAME + _ZN13GlxZoomWidget17sendDecodeRequestEi @ 19 NONAME + _ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 20 NONAME + _ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 21 NONAME + _ZN13GlxZoomWidget19getStaticMetaObjectEv @ 22 NONAME + _ZN13GlxZoomWidget20pinchGestureReceivedEi @ 23 NONAME + _ZN13GlxZoomWidget20retreiveFocusedImageEv @ 24 NONAME + _ZN13GlxZoomWidget21decodedImageAvailableEv @ 25 NONAME + _ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 26 NONAME + _ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 27 NONAME + _ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 28 NONAME + _ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 29 NONAME + _ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 30 NONAME + _ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 31 NONAME + _ZN13GlxZoomWidget7cleanUpEv @ 32 NONAME + _ZN13GlxZoomWidget8activateEv @ 33 NONAME + _ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 34 NONAME + _ZN13GlxZoomWidget8stepZoomEv @ 35 NONAME + _ZN13GlxZoomWidget9zoomImageEf7QPointF @ 36 NONAME + _ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 37 NONAME + _ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 38 NONAME + _ZN13GlxZoomWidgetD0Ev @ 39 NONAME + _ZN13GlxZoomWidgetD1Ev @ 40 NONAME + _ZN13GlxZoomWidgetD2Ev @ 41 NONAME + _ZNK13GlxZoomWidget10metaObjectEv @ 42 NONAME + _ZTI13GlxZoomWidget @ 43 NONAME + _ZTV13GlxZoomWidget @ 44 NONAME + _ZThn16_N13GlxZoomWidgetD0Ev @ 45 NONAME + _ZThn16_N13GlxZoomWidgetD1Ev @ 46 NONAME + _ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 47 NONAME + _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 48 NONAME + _ZThn8_N13GlxZoomWidgetD0Ev @ 49 NONAME + _ZThn8_N13GlxZoomWidgetD1Ev @ 50 NONAME diff -r a3a4c0de738e -r 0f0f3f26f787 ui/widgets/glxzoomwidget/glxzoomwidget.pro --- a/ui/widgets/glxzoomwidget/glxzoomwidget.pro Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/widgets/glxzoomwidget/glxzoomwidget.pro Fri Aug 06 20:44:25 2010 +0530 @@ -49,6 +49,8 @@ HEADERS += inc/glxzoomwidget.h inc/glxzoomwidget_global.h SOURCES += src/glxzoomwidget.cpp +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + defBlock = \ "$${LITERAL_HASH}if defined(EABI)" \ "DEFFILE ../eabi/glxzoomwidget.def" \ diff -r a3a4c0de738e -r 0f0f3f26f787 ui/widgets/glxzoomwidget/inc/glxzoomwidget.h --- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Fri Aug 06 20:44:25 2010 +0530 @@ -33,6 +33,8 @@ const int MAXZVALUE = 100; const int MINZVALUE = 0; +const int NOOFSTEPS = 20; +const float MAXDTZOOMIN = 3.5; class GLXZOOMWIDGETSHARED_EXPORT GlxZoomWidget : public HbScrollArea { @@ -58,7 +60,8 @@ signals: void pinchGestureReceived(int index); void zoomWidgetMovedBackground(int index); - + void stepZoom(); + public slots: //for Decoder support void decodedImageAvailable(); @@ -67,9 +70,11 @@ //for animation effects void animateZoomIn(QPointF animRefPoint); void animateZoomOut(QPointF animRefPoint); - void animationFrameChanged(int frameNumber); void animationTimeLineFinished(); + //animate double tap + void animateDoubleTap(); + protected: bool sceneEvent(QEvent *event); bool sceneEventFilter(QGraphicsItem *watched,QEvent *event); @@ -143,5 +148,13 @@ //for Decoder support GlxImageDecoderWrapper* mImageDecoder; + //stores the incremental scalingfactor(sf) while performing double tap animation + qreal mIncSF; + //stores the scalingfactor increment applicable for each step of double tap animation + qreal msfInc; + //stores the item size before performing zoomout(zo) + QSizeF mzoSize; + //counter to track the double tap animation steps + int mdoubletapSteps; }; #endif //GLXZOOMWIDGET_H diff -r a3a4c0de738e -r 0f0f3f26f787 ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp --- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Fri Jul 23 20:41:04 2010 +0530 +++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Fri Aug 06 20:44:25 2010 +0530 @@ -51,17 +51,18 @@ //initializing the image decoder mImageDecoder = new GlxImageDecoderWrapper; - //inititalizing the timer for animation - m_AnimTimeLine = new QTimeLine(500, this); - m_AnimTimeLine->setFrameRange(0, 100); - connect(m_AnimTimeLine, SIGNAL(frameChanged(int)), this, SLOT(animationFrameChanged(int))); - connect(m_AnimTimeLine, SIGNAL(finished()), this, SLOT(animationTimeLineFinished())); + + //AA: signal and slot to perform double tap animation + //after every step redraw, signal is emitted to perform the next step + connect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap() ), Qt::QueuedConnection ); } GlxZoomWidget::~GlxZoomWidget() { //disconnect all existing signals disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) ); + //AA + disconnect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap())); //no Null checks required delete mZoomItem; // delete mZoomWidget; //as this is a content widegt it will automatically be deleted @@ -164,7 +165,7 @@ bool GlxZoomWidget::sceneEventFilter(QGraphicsItem *watched,QEvent *event) { - qDebug("GlxCoverFlow::eventFilter " ); + qDebug( "GlxZoomWidget::sceneEventFilter enter event type %d ", event->type() ); bool consume = false; if (event->type() == QEvent::Gesture) { consume = executeGestureEvent(watched, static_cast(event)); @@ -293,6 +294,7 @@ //makes sure that the gesture is on the screen center if the image is smaller than the screen void GlxZoomWidget::adjustGestureCenter(QPointF & gestureCenter, qreal& zoomFactor) { + /* commenting this tweak, not necessary, needs to be reimplemented for pinch: IN progress if(zoomFactor > 1 &&zoomFactor > 1.2 ) { zoomFactor = 1.2; } @@ -300,6 +302,7 @@ if(zoomFactor < 1 &&zoomFactor < 0.8 ) { zoomFactor = 0.8; } + */ QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor); //keep smaller image centered if(mCurrentSize.width() <= mWindowSize.width() ) @@ -540,33 +543,68 @@ mBlackBackgroundItem->show(); m_AnimRefPoint = animRefPoint; QSizeF requiredSize = mItemSize; - requiredSize.scale(mWindowSize*3.5, Qt::KeepAspectRatio); + //MAXDTZOOMIN size is set to 3.5 times window size + requiredSize.scale(mWindowSize*MAXDTZOOMIN, Qt::KeepAspectRatio); m_FinalAnimatedScaleFactor = requiredSize.width()/mMinDecScaleSize.width(); - m_AnimTimeLine->setDirection(QTimeLine::Forward); - m_AnimTimeLine->start(); - // zoomImage(5, m_AnimRefPoint); + //initiale variable for double tap animation + mIncSF = 1; + //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor + //SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor] + msfInc = (m_FinalAnimatedScaleFactor-1)/NOOFSTEPS; + //set the no. of steps for double tap animation + mdoubletapSteps = NOOFSTEPS; + animateDoubleTap(); } void GlxZoomWidget::animateZoomOut(QPointF animRefPoint) { - m_AnimRefPoint = animRefPoint; - m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width(); - //m_AnimTimeLine->setDirection(QTimeLine::Backward); - m_AnimTimeLine->start(); + m_AnimRefPoint = animRefPoint; + //Zoom out to FS (mMinDecScaleSize) from the currentsize + m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width(); + //initiale variable for double tap animation + mIncSF = 1; + //calculate the step increment SF for each step + msfInc = (1 - m_FinalAnimatedScaleFactor)/NOOFSTEPS; + //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor + mzoSize = mCurrentSize; + //set the no. of steps for double tap animation + //AA:: the no.of steps are kept the same for zoomin/zoomout, however tweaking them can be considered + mdoubletapSteps = NOOFSTEPS; + animateDoubleTap(); + //AA + } -void GlxZoomWidget::animationFrameChanged(int frameNumber) -{ -qreal scaleFactor = 1; - if(m_FinalAnimatedScaleFactor > 1) { - scaleFactor = (1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width()); - } - if(m_FinalAnimatedScaleFactor < 1) { - scaleFactor = (m_FinalAnimatedScaleFactor+ (((1 - m_FinalAnimatedScaleFactor)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width()); - } + - zoomImage(scaleFactor, m_AnimRefPoint); - -} +void GlxZoomWidget::animateDoubleTap() + { + //calculate increamental scale factor based on the step and then calculate the applicable scale factor this step + //increamental SF works on the ImageSize when double tap started, applicable(required) SF calculates the delate SF + if(m_FinalAnimatedScaleFactor > 1) { + //AA::zoomin case + mIncSF += msfInc; + qreal reqSF = (mItemSize.width()*(mIncSF))/mCurrentSize.width(); + zoomImage(reqSF, m_AnimRefPoint); + } + if(m_FinalAnimatedScaleFactor < 1) { + //AA::zoomout case + mIncSF -= msfInc; + qreal reqSF = (mzoSize.width()* mIncSF)/mCurrentSize.width(); + zoomImage(reqSF, m_AnimRefPoint); + } + //check if all steps are done,if not emit signal to continue the animation + if(mdoubletapSteps >= 1 ){ + mdoubletapSteps -= 1; + emit stepZoom(); + } + else { + //animation is complete, finalize the widget transform using setgeometry + //reset the counter + mdoubletapSteps = 0; + animationTimeLineFinished(); + } + + } void GlxZoomWidget::animationTimeLineFinished() { finalizeWidgetTransform();