ui/views/gridview/src/glxgridview.cpp
changeset 69 45459746d5e8
parent 65 ccee5c4b0de4
child 71 27f2d7aec52a
equal deleted inserted replaced
65:ccee5c4b0de4 69:45459746d5e8
    95     if(mTotalImagesCount == NULL) {
    95     if(mTotalImagesCount == NULL) {
    96         mTotalImagesCount = new HbGroupBox(this);
    96         mTotalImagesCount = new HbGroupBox(this);
    97         mTotalImagesCount->setObjectName( "Count" );
    97         mTotalImagesCount->setObjectName( "Count" );
    98         mTotalImagesCount->hide();
    98         mTotalImagesCount->hide();
    99     }
    99     }
       
   100     mWidget->resetTransform();
   100     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
   101     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
   101 }
   102 }
   102 
   103 
   103 void GlxGridView::deActivate()
   104 void GlxGridView::deActivate()
   104 {
   105 {
   241 void GlxGridView::enableMarking()
   242 void GlxGridView::enableMarking()
   242 {
   243 {
   243     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
   244     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
   244     mWidget->setSelectionMode(HgWidget::MultiSelection);
   245     mWidget->setSelectionMode(HgWidget::MultiSelection);
   245    
   246    
   246     if (mMarkingWidget == NULL)
   247     if (mMarkingWidget == NULL) {
   247         {
       
   248         mMarkingWidget = new HbWidget(this);
   248         mMarkingWidget = new HbWidget(this);
   249         mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0);
   249         mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0);
   250         mMarkingWidget->setLayout(mMarkContainer);
   250         mMarkingWidget->setLayout(mMarkContainer);
   251 
   251 
   252         mMarkSelectHeading = new HbGroupBox(this);
   252         mMarkSelectHeading = new HbGroupBox(this);
   260         mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget);
   260         mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget);
   261         mMarkCheckBox->setObjectName("CheckB MarkAll");
   261         mMarkCheckBox->setObjectName("CheckB MarkAll");
   262        
   262        
   263         mMarkContainer->addItem(mMarkCheckBox);
   263         mMarkContainer->addItem(mMarkCheckBox);
   264         mMarkContainer->addItem(mMarkCountLabel);        
   264         mMarkContainer->addItem(mMarkCountLabel);        
   265         }
   265     }
   266 
   266 
   267     hideorshowitems(mWindow->orientation());
   267     hideorshowitems( mWindow->orientation() );
   268 
   268 
   269     connect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
   269     connect( mWidget->selectionModel() , SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
   270     connect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int)));
   270     connect( mMarkCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( stateChanged( int ) ));
   271 
       
   272 }
   271 }
   273 
   272 
   274 void GlxGridView::disableMarking()
   273 void GlxGridView::disableMarking()
   275 {
   274 {
   276     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
   275     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
   303 
   302 
   304 void GlxGridView::showMarkedItemCount()
   303 void GlxGridView::showMarkedItemCount()
   305 {
   304 {
   306     int count = mModel->rowCount();
   305     int count = mModel->rowCount();
   307     QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes();
   306     QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes();
   308     int markItemCount = indexList.count();    
   307     int markItemCount = indexList.count();
   309     QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);     
   308     QString text = HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);
   310     mMarkCountLabel->setPlainText( text );    
   309     mMarkCountLabel->setPlainText(text);
       
   310 
       
   311     //Block The signals generated by the CheckBox
       
   312     //if we dont block the signals  , then when we call setCheckState to selected and unselect the CheckBox
       
   313     //it causes state change signal to emit which will cause either mark all or un mark all of teh images.
       
   314     mMarkCheckBox->blockSignals(TRUE);
       
   315     if (markItemCount != count && mMarkCheckBox->checkState() == Qt::Checked) {
       
   316         //if the mark all option was checked  and then the user un marks an slected item
       
   317         //Then we have to un check the Mark All check Box
       
   318         mMarkCheckBox->setCheckState(Qt::Unchecked);
       
   319     }
       
   320     else if (markItemCount == count) {
       
   321         //if all the images are selected/marked Indiduvally
       
   322         //Then the the Mark All check Box has to checked/Selected
       
   323         mMarkCheckBox->setCheckState(Qt::Checked);
       
   324     }
       
   325     //UnBlock The signals generated by the CheckBox
       
   326     mMarkCheckBox->blockSignals(FALSE);
   311 }
   327 }
   312 
   328 
   313 void GlxGridView::showItemCount()
   329 void GlxGridView::showItemCount()
   314 {
   330 {
   315     int count = 0;
   331     int count = 0;
   330                 }
   346                 }
   331                 else if ( getSubState() == ALL_ITEM_S ) {
   347                 else if ( getSubState() == ALL_ITEM_S ) {
   332 					if (mAlbumNameHeading) {
   348 					if (mAlbumNameHeading) {
   333                     	mAlbumNameHeading->hide();
   349                     	mAlbumNameHeading->hide();
   334 					}
   350 					}
   335                     mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
   351 				
   336                     text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
   352                     text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
   337                     mTotalImagesCount->setHeading ( text );
   353                     mTotalImagesCount->setHeading ( text );
       
   354                     mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
   338                     mTotalImagesCount->show();
   355                     mTotalImagesCount->show();
   339                 }
   356                 }
   340                 else if ( getSubState() == ALBUM_ITEM_S ) {
   357                 else if ( getSubState() == ALBUM_ITEM_S ) {
   341                     mTotalImagesCount->hide();
   358                     mTotalImagesCount->hide();
   342                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
   359                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
   395         mAlbumNameHeading->setObjectName("Album Name");
   412         mAlbumNameHeading->setObjectName("Album Name");
   396         }
   413         }
   397 
   414 
   398     //If fetcher service set only title text
   415     //If fetcher service set only title text
   399     if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem))
   416     if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem))
   400         {
   417         {       
   401         mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
       
   402         mAlbumNameHeading->setHeading(aTitle);
   418         mAlbumNameHeading->setHeading(aTitle);
       
   419         mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));       
   403         mAlbumNameHeading->show();
   420         mAlbumNameHeading->show();
   404         }
   421         }
   405     else
   422     else
   406         { //handle album tiltle and count display logic here
   423         { //handle album tiltle and count display logic here
   407         if (isItemVisible(Hb::TitleBarItem))
   424         if (isItemVisible(Hb::TitleBarItem))
   408             {
   425             {
   409             mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
   426             QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);    
   410             QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);            
       
   411             mAlbumNameHeading->setHeading(text);
   427             mAlbumNameHeading->setHeading(text);
       
   428             mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height()/24));                 
   412             mAlbumNameHeading->show();
   429             mAlbumNameHeading->show();
   413             }
   430             }
   414         }
   431         }
   415 }
   432 }
   416 
   433 
   510 QGraphicsItem * GlxGridView::getAnimationItem(GlxEffect transitionEffect)
   527 QGraphicsItem * GlxGridView::getAnimationItem(GlxEffect transitionEffect)
   511 {
   528 {
   512     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
   529     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
   513     int selIndex = -1;
   530     int selIndex = -1;
   514 
   531 
   515     if ( transitionEffect == FULLSCREEN_TO_GRID ) {
   532     if ( transitionEffect == FULLSCREEN_TO_GRID  || transitionEffect == FULLSCREEN_TO_GRID_PORTRAIT ) {
   516         return mWidget;
   533         return mWidget;
   517     }
   534     }
   518 
   535 
   519     if ( transitionEffect == GRID_TO_FULLSCREEN )
   536     if ( transitionEffect == GRID_TO_FULLSCREEN ) {
   520         {
   537         QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole );
   521         QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );
   538         if ( variant.isValid() && variant.canConvert<int> () ) {
   522         if ( variant.isValid() &&  variant.canConvert<int> () )
   539             selIndex = variant.value<int> ();
   523             {
   540         }
   524             selIndex = variant.value<int>();
   541         else {
   525             }
       
   526         else
       
   527             {
       
   528             return mWidget;
   542             return mWidget;
   529             }
   543         }
   530         QVariant variantimage = mModel->data(mModel->index(selIndex,0),Qt::DecorationRole);
   544         QVariant variantimage = mModel->data( mModel->index( selIndex, 0 ), Qt::DecorationRole );
   531         if ( variantimage.isValid() &&  variantimage.canConvert<HbIcon> () )
   545         if ( variantimage.isValid() && variantimage.canConvert<HbIcon> () ) {
   532             {
       
   533             QPolygonF poly;
   546             QPolygonF poly;
   534             if (mModelWrapper && !mWidget->getItemOutline(mModelWrapper->index(selIndex,0), poly))
   547             if ( mModelWrapper && !mWidget->getItemOutline( mModelWrapper->index( selIndex, 0 ), poly ) ) {
   535                 {
       
   536                 return mWidget;
   548                 return mWidget;
   537                 }
   549             }
   538             QRectF itemRect = poly.boundingRect();
   550             QRectF itemRect = poly.boundingRect();
   539 
   551 
   540             mIconItem->setSize(QSize(120,120));
   552             mIconItem->setSize( QSize( 120, 120 ) );
   541             HbIcon tempIcon =  variantimage.value<HbIcon>();
   553             HbIcon tempIcon = variantimage.value<HbIcon> ();
   542             QPixmap tempPixmap = tempIcon.qicon().pixmap(120, 120);
   554             QPixmap tempPixmap = tempIcon.qicon().pixmap( 120, 120 );
   543             QSize sz = QSize ( 120, 120);
   555             QSize sz = QSize( 120, 120 );
   544             tempPixmap = tempPixmap.scaled(sz, Qt::IgnoreAspectRatio );
   556             tempPixmap = tempPixmap.scaled( sz, Qt::IgnoreAspectRatio );
   545             HbIcon tmp = HbIcon( QIcon(tempPixmap)) ;
   557             HbIcon tmp = HbIcon( QIcon( tempPixmap ) );
   546             mIconItem->setIcon(tmp);
   558             mIconItem->setIcon( tmp );
   547             mIconItem->setPos(itemRect.topLeft());
   559             mIconItem->setPos( itemRect.topLeft() );
   548             mIconItem->setZValue(mIconItem->zValue() + 20);
   560             mIconItem->setZValue( mIconItem->zValue() + 20 );
   549             mIconItem->show();
   561             mIconItem->show();
       
   562             if ( mToolBar ) {
       
   563                 mToolBar->setZValue( mIconItem->zValue() - 5 );
       
   564             }
   550             return mIconItem;
   565             return mIconItem;
   551             }
   566         }
   552         else
   567         else {
   553             {
       
   554             return mWidget;
   568             return mWidget;
   555             }
   569         }
   556         }
   570     }
   557 
   571 
   558     if ( transitionEffect == GRID_TO_ALBUMLIST  || transitionEffect == ALBUMLIST_TO_GRID ){
   572     if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ) {
   559         return mWidget;
   573         return mWidget;
   560     }
   574     }
   561     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
   575     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
   562     return NULL;
   576     return NULL;
   563 }
   577 }
   636         
   650         
   637         mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));       
   651         mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));       
   638         mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72));          
   652         mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72));          
   639               
   653               
   640         mMarkSelectHeading->show();
   654         mMarkSelectHeading->show();
   641         mMarkingWidget->show();
   655         mMarkingWidget->show();        
   642         
   656         showMarkedItemCount();        
   643         showMarkedItemCount();
       
   644         
       
   645     }
   657     }
   646 }
   658 }
   647 
   659 
   648 void GlxGridView::scrolltofocus()
   660 void GlxGridView::scrolltofocus()
   649 {
   661 {