ganeswidgets/src/hgcontainer.cpp
changeset 20 a60f8b6b1d32
parent 17 a10844a9914d
equal deleted inserted replaced
17:a10844a9914d 20:a60f8b6b1d32
    63     mHitItemIndex(-1),
    63     mHitItemIndex(-1),
    64     mItemSizePolicy(HgWidget::ItemSizeAutomatic),
    64     mItemSizePolicy(HgWidget::ItemSizeAutomatic),
    65     mOrientation(Qt::Vertical),
    65     mOrientation(Qt::Vertical),
    66     mDelayedScrollToIndex(),
    66     mDelayedScrollToIndex(),
    67     mIgnoreGestureAction(false),
    67     mIgnoreGestureAction(false),
    68     mHandleLongPress(false)
    68     mHandleLongPress(false),
       
    69     mReflectionsEnabled(false)
    69 {
    70 {
    70     FUNC_LOG;
    71     FUNC_LOG;
    71 
    72 
    72     setFlag(QGraphicsItem::ItemHasNoContents, false);
    73     setFlag(QGraphicsItem::ItemHasNoContents, false);
    73 
    74 
    92 
    93 
    93     qDeleteAll(mItems);
    94     qDeleteAll(mItems);
    94     mItems.clear();
    95     mItems.clear();
    95     for (int i=0; i<itemCount; i++) {
    96     for (int i=0; i<itemCount; i++) {
    96         HgWidgetItem* item = new HgWidgetItem(mQuadRenderer);
    97         HgWidgetItem* item = new HgWidgetItem(mQuadRenderer);
       
    98 
       
    99         if ( mReflectionsEnabled && (mRenderer->coverflowModeEnabled() || 
       
   100                 (scrollDirection() == Qt::Horizontal))) {
       
   101             // Reflection image is created only for bottom row in grid mode.
       
   102             item->enableReflection((i+1)%currentRowCount() == 0);
       
   103         }
    97         mItems.append(item);
   104         mItems.append(item);
    98     }
   105     }
    99 }
   106 }
   100 
   107 
   101 // TODO: This does exactly the same as HgContainer::imageCount(), should this be thus removed?
   108 // TODO: This does exactly the same as HgContainer::imageCount(), should this be thus removed?
   953 
   960 
   954 void HgContainer::setDefaultImage(QImage defaultImage)
   961 void HgContainer::setDefaultImage(QImage defaultImage)
   955 {
   962 {
   956     HgQuadRenderer *renderer = mRenderer->getRenderer();
   963     HgQuadRenderer *renderer = mRenderer->getRenderer();
   957     if (renderer) {
   964     if (renderer) {
   958         QImage scaled = defaultImage.scaled(mRenderer->getImageSize().toSize());
   965         QImage temp = defaultImage;
   959         renderer->setDefaultImage(scaled);
   966         if(!temp.isNull()) {
       
   967             temp = defaultImage.scaled(mRenderer->getImageSize().toSize());
       
   968         }
       
   969         renderer->setDefaultImage(QPixmap::fromImage(temp));
   960     }
   970     }
   961 }
   971 }
   962 
   972 
   963 void HgContainer::setItemSizePolicy(HgWidget::ItemSizePolicy policy)
   973 void HgContainer::setItemSizePolicy(HgWidget::ItemSizePolicy policy)
   964 {
   974 {
  1058     QPixmap selectedPixmap = selectedIcon.pixmap();
  1068     QPixmap selectedPixmap = selectedIcon.pixmap();
  1059     QPixmap unselectedPixmap = unselectedIcon.pixmap();
  1069     QPixmap unselectedPixmap = unselectedIcon.pixmap();
  1060 
  1070 
  1061     if (!selectedPixmap.isNull() && !unselectedPixmap.isNull()) {
  1071     if (!selectedPixmap.isNull() && !unselectedPixmap.isNull()) {
  1062         if (mMarkImageOn) {
  1072         if (mMarkImageOn) {
  1063             mMarkImageOn->setPixmap(selectedPixmap);
  1073             mMarkImageOn->setPixmap(selectedPixmap, true);
  1064         }
  1074         }
  1065         if (mMarkImageOff) {
  1075         if (mMarkImageOff) {
  1066             mMarkImageOff->setPixmap(unselectedPixmap);
  1076             mMarkImageOff->setPixmap(unselectedPixmap, true);
  1067         }
  1077         }
  1068     }    
  1078     }    
  1069 }
  1079 }
  1070 
  1080 
  1071 void HgContainer::setHandleLongPress(bool handheLongPress)
  1081 void HgContainer::setHandleLongPress(bool handheLongPress)
  1119             }
  1129             }
  1120         default:
  1130         default:
  1121             handled = false;
  1131             handled = false;
  1122             break;
  1132             break;
  1123         }
  1133         }
  1124     
  1134 
  1125     return handled;
  1135     return handled;
  1126 }
  1136 }
  1127 
  1137 
       
  1138 // This is added to be able to get feedback (audio and tactile)
       
  1139 // when tapping items in both mediawall and grid.
       
  1140 int HgContainer::type() const
       
  1141 {
       
  1142     return Hb::ItemType_GridViewItem;
       
  1143 }
       
  1144 
  1128 // EOF
  1145 // EOF