ui/views/gridview/src/glxgridview.cpp
changeset 72 0a8e959402e5
parent 71 27f2d7aec52a
equal deleted inserted replaced
71:27f2d7aec52a 72:0a8e959402e5
    48 #include "OstTraceDefinitions.h"
    48 #include "OstTraceDefinitions.h"
    49 #ifdef OST_TRACE_COMPILER_IN_USE
    49 #ifdef OST_TRACE_COMPILER_IN_USE
    50 #include "glxgridviewTraces.h"
    50 #include "glxgridviewTraces.h"
    51 #endif
    51 #endif
    52 
    52 
    53 GlxGridView::GlxGridView(HbMainWindow *window)
    53 GlxGridView::GlxGridView( HbMainWindow *window )
    54     : GlxView ( GLX_GRIDVIEW_ID ),
    54     : GlxView ( GLX_GRIDVIEW_ID ),
    55       mWindow(window),
    55       mWindow( window ),
    56       mModel ( NULL),
    56       mModel ( NULL ),
    57       mWidget(NULL),
    57       mWidget( NULL ),
    58       mSelectionModel(NULL),
    58       mSelectionModel( NULL ),
    59       mModelWrapper(NULL),
    59       mModelWrapper( NULL ),
    60       mUiOnButton(NULL),      
    60       mUiOnButton( NULL ),      
    61       mScrolling(FALSE),
    61       mScrolling( FALSE ),
    62       mIconItem(NULL),
    62       mIconItem( NULL ),
    63       mMarkCheckBox(NULL),
    63       mBackGroundItem( NULL ),
    64       mTotalImagesCount(NULL),
    64       mMarkCheckBox( NULL ),
    65       mMarkSelectHeading(NULL),
    65       mTotalImagesCountGrpBox( NULL ),
    66       mMarkCountLabel(NULL),
    66       mMarkSelectHeading( NULL ),
    67       mZeroItemLabel(NULL),
    67       mMarkCountLabel( NULL ),
    68       mAlbumNameHeading(NULL),
    68       mZeroItemLabel( NULL ),
    69       mMarkContainer(NULL),
    69       mMarkContainer( NULL ),
    70       mMarkingWidget(NULL),
    70       mMarkingWidget( NULL ),
    71       mToolBar( NULL ),
    71       mToolBar( NULL ),
    72       mCurrentToolBar( NULL )
    72       mCurrentToolBar( NULL )
    73 {
    73 {
    74     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
    74     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
    75     mModelWrapper = new GlxModelWrapper();
    75     mModelWrapper = new GlxModelWrapper();
    90 void GlxGridView::activate()
    90 void GlxGridView::activate()
    91 {
    91 {
    92     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
    92     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
    93     loadGridView();
    93     loadGridView();
    94 	connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
    94 	connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
    95     if(mTotalImagesCount == NULL) {
    95     if(mTotalImagesCountGrpBox == NULL) {
    96         mTotalImagesCount = new HbGroupBox(this);
    96         mTotalImagesCountGrpBox = new HbGroupBox(this);
    97         mTotalImagesCount->setObjectName( "Count" );
    97         mTotalImagesCountGrpBox->setObjectName( "Count" );
    98         mTotalImagesCount->hide();
    98         mTotalImagesCountGrpBox->hide();
    99     }
    99     }
   100     mWidget->resetTransform();
   100     resetTransform();
   101     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
   101     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
   102 }
   102 }
   103 
   103 
   104 void GlxGridView::deActivate()
   104 void GlxGridView::deActivate()
   105 {
   105 {
   112         mIconItem->hide();
   112         mIconItem->hide();
   113         mIconItem->resetTransform();
   113         mIconItem->resetTransform();
   114         mIconItem->setOpacity(0);
   114         mIconItem->setOpacity(0);
   115         mIconItem->setZValue(mIconItem->zValue()-20);
   115         mIconItem->setZValue(mIconItem->zValue()-20);
   116     }
   116     }
   117     if (mTotalImagesCount) {
   117     if (mTotalImagesCountGrpBox) {
   118         mTotalImagesCount->hide();
   118         mTotalImagesCountGrpBox->hide();
   119     }
       
   120     if (mAlbumNameHeading) {
       
   121         mAlbumNameHeading->hide();
       
   122     }
   119     }
   123     if(mZeroItemLabel) {
   120     if(mZeroItemLabel) {
   124         mZeroItemLabel->hide();
   121         mZeroItemLabel->hide();
   125     }
   122     }
   126     
   123     
   343                 QString text;
   340                 QString text;
   344 				if(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch")))) {
   341 				if(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch")))) {
   345 					showAlbumTitle(GLX_SELECT_IMAGE);
   342 					showAlbumTitle(GLX_SELECT_IMAGE);
   346 				}
   343 				}
   347                 else if ( getSubState() == ALL_ITEM_S || ( getSubState() == FETCHER_ITEM_S)) {
   344                 else if ( getSubState() == ALL_ITEM_S || ( getSubState() == FETCHER_ITEM_S)) {
   348 					if (mAlbumNameHeading) {
   345                     text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL).arg(count); 
   349                     	mAlbumNameHeading->hide();
   346                     mTotalImagesCountGrpBox->setHeading ( text );
   350 					}
   347                     mTotalImagesCountGrpBox->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
   351 				
   348                     mTotalImagesCountGrpBox->show();
   352                     text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
       
   353                     mTotalImagesCount->setHeading ( text );
       
   354                     mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
       
   355                     mTotalImagesCount->show();
       
   356                 }
   349                 }
   357                 else if ( getSubState() == ALBUM_ITEM_S || (getSubState() ==  FETCHER_ALBUM_ITEM_S)) {
   350                 else if ( getSubState() == ALBUM_ITEM_S || (getSubState() ==  FETCHER_ALBUM_ITEM_S) ) {
   358                     mTotalImagesCount->hide();
   351                     mTotalImagesCountGrpBox->hide();
   359                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
   352                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
   360                     if (variant.toString() != NULL) {
   353                     if (variant.toString() != NULL) {
   361                         showAlbumTitle(variant.toString());
   354                         showAlbumTitle(variant.toString());
   362                     }
   355                     }
   363                 }
   356                 }
   364             }
   357             }
   365             else {
   358             else {
   366                 if (mTotalImagesCount) {
   359                 if (mTotalImagesCountGrpBox) {
   367                     mTotalImagesCount->hide();
   360                     mTotalImagesCountGrpBox->hide();
   368                 }
       
   369                 if (mAlbumNameHeading) {
       
   370                     mAlbumNameHeading->hide();
       
   371                 }
   361                 }
   372             }
   362             }
   373 
   363 
   374         }
   364         }
   375         else {
   365         else {
   378             if (variant.isValid() &&  variant.canConvert<bool>() )
   368             if (variant.isValid() &&  variant.canConvert<bool>() )
   379                 {
   369                 {
   380                 populated = variant.value<bool>();
   370                 populated = variant.value<bool>();
   381                 }
   371                 }
   382             if(populated) {
   372             if(populated) {
   383                 if (mTotalImagesCount) {
       
   384                     mTotalImagesCount->hide();
       
   385                 }
       
   386                 if (mAlbumNameHeading) {
       
   387                     mAlbumNameHeading->hide();
       
   388                 }
       
   389 
       
   390                 showNoImageString();
   373                 showNoImageString();
   391 
   374                 if(!(XQServiceUtil::isService() && 
   392                 if (getSubState() == ALBUM_ITEM_S) {
   375                         (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch")))))
   393                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
   376                     {
   394                     if (variant.toString() != NULL) {
   377                     if( getSubState() == ALL_ITEM_S ||  getSubState() == FETCHER_ITEM_S) {
   395                         showAlbumTitle(variant.toString());
   378                         QString text;
       
   379                         text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL).arg(count); 
       
   380                         mTotalImagesCountGrpBox->setHeading ( text );
       
   381                         mTotalImagesCountGrpBox->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
       
   382                         mTotalImagesCountGrpBox->show();
       
   383                     }
       
   384                     else if (getSubState() == ALBUM_ITEM_S || getSubState() ==  FETCHER_ALBUM_ITEM_S) {
       
   385                         QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
       
   386                         if (variant.toString() != NULL) {
       
   387                             showAlbumTitle(variant.toString());
       
   388                         }
   396                     }
   389                     }
   397 				}	
   390 				}	
   398             }
   391             }
   399         }
   392         }
   400     }
   393     }
   404 {
   397 {
   405     int count = mModel->rowCount();
   398     int count = mModel->rowCount();
   406     QSize deviceSize = HbDeviceProfile::current().logicalSize();
   399     QSize deviceSize = HbDeviceProfile::current().logicalSize();
   407     QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
   400     QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
   408                                                                    : QSize( deviceSize.height(), deviceSize.width() )  ;
   401                                                                    : QSize( deviceSize.height(), deviceSize.width() )  ;
   409     if (mAlbumNameHeading == NULL)
       
   410         {
       
   411         mAlbumNameHeading = new HbGroupBox(this);
       
   412         mAlbumNameHeading->setObjectName("Album Name");
       
   413         }
       
   414 
       
   415     //If fetcher service set only title text
   402     //If fetcher service set only title text
   416     if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem))
   403     if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem) &&
       
   404             (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))
   417         {       
   405         {       
   418         mAlbumNameHeading->setHeading(aTitle);
   406         mTotalImagesCountGrpBox->setHeading(aTitle);
   419         mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));       
   407         mTotalImagesCountGrpBox->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));       
   420         mAlbumNameHeading->show();
   408         mTotalImagesCountGrpBox->show();
   421         }
   409         }
   422     else
   410     else
   423         { //handle album tiltle and count display logic here
   411         { //handle album tiltle and count display logic here
   424         if (isItemVisible(Hb::TitleBarItem))
   412         if (isItemVisible(Hb::TitleBarItem))
   425             {
   413             {
   426             QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);    
   414             QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);    
   427             mAlbumNameHeading->setHeading(text);
   415             mTotalImagesCountGrpBox->setHeading(text);
   428             mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height()/24));                 
   416             mTotalImagesCountGrpBox->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height()/24));                 
   429             mAlbumNameHeading->show();
   417             mTotalImagesCountGrpBox->show();
   430             }
   418             }
   431         }
   419         }
   432 }
   420 }
   433 
   421 
   434 void GlxGridView::showNoImageString()
   422 void GlxGridView::showNoImageString()
   528 {
   516 {
   529     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
   517     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
   530     int selIndex = -1;
   518     int selIndex = -1;
   531 
   519 
   532     if ( transitionEffect == FULLSCREEN_TO_GRID  || transitionEffect == FULLSCREEN_TO_GRID_PORTRAIT ) {
   520     if ( transitionEffect == FULLSCREEN_TO_GRID  || transitionEffect == FULLSCREEN_TO_GRID_PORTRAIT ) {
   533         return mWidget;
   521         if ( !mBackGroundItem ) {
       
   522             mBackGroundItem = new HbIconItem();
       
   523             setBackgroundItem( mBackGroundItem );            
       
   524         }
       
   525         HbIcon icon = HbIcon( mWindow->backgroundImageName( mWindow->orientation() ) );
       
   526         mBackGroundItem->setIcon( icon );
       
   527         return this;
   534     }
   528     }
   535 
   529 
   536     if ( transitionEffect == GRID_TO_FULLSCREEN ) {
   530     if ( transitionEffect == GRID_TO_FULLSCREEN ) {
   537         QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole );
   531         QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole );
   538         if ( variant.isValid() && variant.canConvert<int> () ) {
   532         if ( variant.isValid() && variant.canConvert<int> () ) {
   568             return mWidget;
   562             return mWidget;
   569         }
   563         }
   570     }
   564     }
   571 
   565 
   572     if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ) {
   566     if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ) {
   573         return mWidget;
   567         return this;
   574     }
   568     }
   575     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
   569     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
   576     return NULL;
   570     return NULL;
   577 }
   571 }
   578 
   572 
   586         mWindow->viewport()->grabGesture(Qt::TapAndHoldGesture);
   580         mWindow->viewport()->grabGesture(Qt::TapAndHoldGesture);
   587         mWidget = new HgGrid(orient);
   581         mWidget = new HgGrid(orient);
   588         mWidget->setObjectName( "Media Wall" );
   582         mWidget->setObjectName( "Media Wall" );
   589         mWidget->setLongPressEnabled(true);
   583         mWidget->setLongPressEnabled(true);
   590         mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide);
   584         mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide);
   591         if(XQServiceUtil::isService())
   585         if(XQServiceUtil::isService()) {
   592             {
       
   593             mWidget->setEffect3dEnabled(EFalse);
   586             mWidget->setEffect3dEnabled(EFalse);
   594             }
   587         }
   595         else
   588         else {
   596             {
       
   597             mWidget->setEffect3dEnabled(mSettings->mediaWall3DEffect());
   589             mWidget->setEffect3dEnabled(mSettings->mediaWall3DEffect());
   598             }
   590         }
   599         setWidget( mWidget );
   591         setWidget( mWidget );
   600         addViewConnection();
   592         addViewConnection();
   601     }
   593     }
   602     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
   594     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
   603 }
   595 }
   635         setItemVisible(Hb::AllItems, FALSE) ;
   627         setItemVisible(Hb::AllItems, FALSE) ;
   636         setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
   628         setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
   637         if (mUiOnButton) {
   629         if (mUiOnButton) {
   638             mUiOnButton->hide();
   630             mUiOnButton->hide();
   639         }
   631         }
   640         if (mTotalImagesCount) {
   632         if (mTotalImagesCountGrpBox) {
   641             mTotalImagesCount->hide();
   633             mTotalImagesCountGrpBox->hide();
   642         }
       
   643         if (mAlbumNameHeading) {
       
   644             mAlbumNameHeading->hide();
       
   645         }
   634         }
   646         
   635         
   647         QSize deviceSize = HbDeviceProfile::current().logicalSize();
   636         QSize deviceSize = HbDeviceProfile::current().logicalSize();
   648         QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
   637         QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
   649                                                                        : QSize( deviceSize.height(), deviceSize.width() )  ;
   638                                                                        : QSize( deviceSize.height(), deviceSize.width() )  ;
   730         setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
   719         setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
   731         if (mUiOnButton)
   720         if (mUiOnButton)
   732             {
   721             {
   733             mUiOnButton->hide();
   722             mUiOnButton->hide();
   734             }
   723             }
   735 		if (mTotalImagesCount) {
   724 		if (mTotalImagesCountGrpBox) {
   736 			mTotalImagesCount->hide();
   725 			mTotalImagesCountGrpBox->hide();
   737 		}
       
   738 		if (mAlbumNameHeading) {
       
   739             mAlbumNameHeading->hide();
       
   740 		}
   726 		}
   741     }
   727     }
   742 
   728 
   743     mScrolling = TRUE;
   729     mScrolling = TRUE;
   744 }
   730 }
   779         disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
   765         disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
   780         delete mUiOnButton;
   766         delete mUiOnButton;
   781     }
   767     }
   782     
   768     
   783     delete mIconItem;
   769     delete mIconItem;
   784     delete mTotalImagesCount;
   770     delete mTotalImagesCountGrpBox;
   785     delete mAlbumNameHeading;
       
   786     delete mMarkSelectHeading;
   771     delete mMarkSelectHeading;
   787     delete mMarkCheckBox;
   772     delete mMarkCheckBox;
   788     delete mMarkCountLabel;
   773     delete mMarkCountLabel;
   789     delete mMarkingWidget;
   774     delete mMarkingWidget;
   790     delete mZeroItemLabel;
   775     delete mZeroItemLabel;