src/hbwidgets/itemviews/hblistviewitem.cpp
changeset 21 4633027730f5
parent 6 c3690ec91ef8
child 23 e6ad4ef83b23
equal deleted inserted replaced
7:923ff622b8b9 21:4633027730f5
   217                                        const int index)
   217                                        const int index)
   218 {
   218 {
   219     Q_Q( HbListViewItem );
   219     Q_Q( HbListViewItem );
   220 
   220 
   221     // create icon item and set it to layout
   221     // create icon item and set it to layout
   222     HbStyle::Primitive primitive = decorationPrimitive(value);
   222     HbStylePrivate::Primitive primitive = decorationPrimitive(value);
   223 
   223 
   224     if (primitive != HbStyle::P_None) {
   224     if (primitive != HbStylePrivate::P_None) {
   225         QGraphicsItem *item = mDecorationRoleItems.value(index);
   225         QGraphicsItem *item = mDecorationRoleItems.value(index);
   226         if (!item) {
   226         if (!item) {
   227             mItemsChanged = true;
   227             mItemsChanged = true;
   228             themingPending = true;
   228             themingPending = true;
   229             item = q->style()->createPrimitive(primitive, q);
   229             item = HbStylePrivate::createPrimitive(primitive, q);
   230 
   230 
   231             if (index < mDecorationRoleItems.count()) {
   231             if (index < mDecorationRoleItems.count()) {
   232                 mDecorationRoleItems.replace(index, item);
   232                 mDecorationRoleItems.replace(index, item);
   233             } else {
   233             } else {
   234                 mDecorationRoleItems.append(item);
   234                 mDecorationRoleItems.append(item);
   252 
   252 
   253     // create text item  and set it to layout
   253     // create text item  and set it to layout
   254     if (!value.isNull()) {
   254     if (!value.isNull()) {
   255         QGraphicsItem *textItem = mDisplayRoleTextItems.value(index);
   255         QGraphicsItem *textItem = mDisplayRoleTextItems.value(index);
   256 
   256 
   257         HbStyle::Primitive primitive = displayPrimitive();
   257         HbStylePrivate::Primitive primitive = displayPrimitive();
   258         if (!textItem) {
   258         if (!textItem) {
   259             mItemsChanged = true;
   259             mItemsChanged = true;
   260             themingPending = true;
   260             themingPending = true;
   261             textItem = q->style()->createPrimitive(primitive, q);
   261             textItem = HbStylePrivate::createPrimitive(primitive, q);
   262             if (index < mDisplayRoleTextItems.count()) {
   262             if (index < mDisplayRoleTextItems.count()) {
   263                 mDisplayRoleTextItems.replace(index, textItem);
   263                 mDisplayRoleTextItems.replace(index, textItem);
   264             } else {
   264             } else {
   265                 mDisplayRoleTextItems.append(textItem);
   265                 mDisplayRoleTextItems.append(textItem);
   266             }
   266             }
   358 
   358 
   359     // DisplayRoles
   359     // DisplayRoles
   360     QVariant displayRole = d->mIndex.data(Qt::DisplayRole);
   360     QVariant displayRole = d->mIndex.data(Qt::DisplayRole);
   361     QStringList stringList;
   361     QStringList stringList;
   362     if (displayRole.isValid()) {
   362     if (displayRole.isValid()) {
   363         if (displayRole.canConvert<QString>()) {
   363         if (displayRole.type() == QVariant::String) {
       
   364             stringList.append(displayRole.toString());
       
   365         } else if (displayRole.type() == QVariant::StringList) {
       
   366             stringList = displayRole.toStringList();
       
   367         } else if (displayRole.canConvert<QString>()) {
   364             stringList.append(displayRole.toString());
   368             stringList.append(displayRole.toString());
   365         } else if (displayRole.canConvert<QStringList>()) {
   369         } else if (displayRole.canConvert<QStringList>()) {
   366             stringList = displayRole.toStringList();
   370             stringList = displayRole.toStringList();
   367         }
   371         }
   368     }
   372     }
   383 
   387 
   384     // decorationroles
   388     // decorationroles
   385     QVariant decorationRole = d->mIndex.data(Qt::DecorationRole);
   389     QVariant decorationRole = d->mIndex.data(Qt::DecorationRole);
   386     QVariantList variantList;
   390     QVariantList variantList;
   387     if (decorationRole.isValid()) {
   391     if (decorationRole.isValid()) {
   388         if (decorationRole.canConvert<QIcon>()
   392         if (decorationRole.type() == QVariant::Icon 
       
   393             || decorationRole.userType() == qMetaTypeId<HbIcon>()) {
       
   394             variantList.append(decorationRole);
       
   395         } else if (decorationRole.type() == QVariant::List) { 
       
   396             variantList = decorationRole.toList();
       
   397         } else if (decorationRole.canConvert<QIcon>()
   389              || decorationRole.canConvert<HbIcon>()) {
   398              || decorationRole.canConvert<HbIcon>()) {
   390             variantList.append(decorationRole);
   399             variantList.append(decorationRole);
   391         } else if (decorationRole.canConvert< QList<QVariant> >()) {
   400         } else if (decorationRole.canConvert< QList<QVariant> >()) {
   392             variantList = decorationRole.toList();
   401             variantList = decorationRole.toList();
   393         }
   402         }
   413     \reimp
   422     \reimp
   414 */
   423 */
   415 void HbListViewItem::updatePrimitives()
   424 void HbListViewItem::updatePrimitives()
   416 {
   425 {
   417     HB_SDD(HbListViewItem);
   426     HB_SDD(HbListViewItem);
   418     HbStyleOptionListViewItem styleOption;
   427 
   419     initStyleOption(&styleOption);
   428     HbStyleOptionListViewItem *styleOption = sd->mListStyleOption;
       
   429     initStyleOption(styleOption);
   420 
   430 
   421     int count = d->mStringList.count();
   431     int count = d->mStringList.count();
   422     for (int i = 0; i < count; ++i) {
   432     for (int i = 0; i < count; ++i) {
   423         QGraphicsItem *item = d->mDisplayRoleTextItems.value(i);
   433         QGraphicsItem *item = d->mDisplayRoleTextItems.value(i);
   424         if (item) {
   434         if (item) {
   425             styleOption.index = i;
   435             styleOption->index = i;
   426             styleOption.content = d->mStringList.at(i);
   436             styleOption->content = d->mStringList.at(i);
   427             styleOption.multilineSecondaryTextSupported = d->isMultilineSupported();
   437             styleOption->multilineSecondaryTextSupported = d->isMultilineSupported();
   428 
   438 
   429             if (i == 1) {
   439             if (i == 1) {
   430                 // criteria of secondary text in middle column is fulfilled
   440                 // criteria of secondary text in middle column is fulfilled
   431                 styleOption.minimumLines = sd->mMinimumSecondaryTextRowCount;
   441                 styleOption->minimumLines = sd->mMinimumSecondaryTextRowCount;
   432                 styleOption.maximumLines = sd->mMaximumSecondaryTextRowCount;
   442                 styleOption->maximumLines = sd->mMaximumSecondaryTextRowCount;
   433             } 
   443             } 
   434             style()->updatePrimitive(item, d->displayPrimitive(), &styleOption);
   444             HbStylePrivate::updatePrimitive(item, d->displayPrimitive(), styleOption);
   435         }
   445         }
   436     }
   446     }
   437 
   447 
   438     styleOption.role = Qt::DecorationRole;
   448     styleOption->role = Qt::DecorationRole;
       
   449 
   439     count = d->mDecorationList.count();
   450     count = d->mDecorationList.count();
   440     for (int i = 0; i < count; ++i) {
   451     for (int i = 0; i < count; ++i) {
   441         QGraphicsItem *item = d->mDecorationRoleItems.value(i);
   452         QGraphicsItem *item = d->mDecorationRoleItems.value(i);
   442         if (item) {
   453         if (item) {
   443             styleOption.index = i;
   454             styleOption->index = i;
   444             styleOption.content = d->mDecorationList.at(i);
   455             styleOption->content = d->mDecorationList.at(i);
   445             style()->updatePrimitive(   
   456             HbStylePrivate::updatePrimitive(   
   446                         item, 
   457                         item, 
   447                         d->decorationPrimitive(d->mDecorationList.at(i)), 
   458                         d->decorationPrimitive(d->mDecorationList.at(i)), 
   448                         &styleOption);
   459                         styleOption);
   449         }
   460         }
   450     }
   461     }
   451     HbAbstractViewItem::updatePrimitives();
   462     HbAbstractViewItem::updatePrimitives();
   452 }
   463 }
   453 
   464