void CheckBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem & option, const QModelIndex & index) const{ // drawCheck(painter, option, option.rect, index.data().toBool() ? Qt::Checked : Qt::Unchecked); drawDecoration(painter, option, option.rect, index.data().toInt() == 1? QPixmap::fromImage(*(BooleanWidget::backicon)) : index.data().toInt() == 2? QPixmap::fromImage(*(BooleanWidget::foricon)) : QPixmap::fromImage(*(BooleanWidget::noneicon))); }
void KisNodeDelegate::paint(QPainter *p, const QStyleOptionViewItem &o, const QModelIndex &index) const { p->save(); { QStyleOptionViewItemV4 option = getOptions(o, index); QStyle *style = option.widget ? option.widget->style() : QApplication::style(); style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, p, option.widget); bool shouldGrayOut = index.data(KisNodeModel::ShouldGrayOutRole).toBool(); if (shouldGrayOut) { option.state &= ~QStyle::State_Enabled; } p->setFont(option.font); drawColorLabel(p, option, index); drawFrame(p, option, index); drawThumbnail(p, option, index); drawText(p, option, index); drawIcons(p, option, index); drawVisibilityIconHijack(p, option, index); drawDecoration(p, option, index); drawExpandButton(p, option, index); drawProgressBar(p, option, index); } p->restore(); }
void KWQTableDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const { painter->save(); drawBackground(painter, option, index); QStyleOptionViewItem opt = option; opt.decorationSize = QSize(0, 0); QPixmap decorationPixmap; QVariant decorationVariant = index.data(Qt::DecorationRole); if (!decorationVariant.isNull()) { decorationPixmap = decoration(option, decorationVariant); opt.decorationPosition = QStyleOptionViewItem::Right; opt.decorationAlignment = Qt::AlignRight | Qt::AlignVCenter; opt.decorationSize = QSize(decorationPixmap.width(), decorationPixmap.height()); drawDecoration(painter, opt, opt.rect, decorationPixmap); } opt.rect.adjust(0, 0, -opt.decorationSize.width(), 0); const KWQTableModel *model = static_cast<const KWQTableModel *>(index.model()); if (!model->checkBlanksSyntax(index.data(Qt::DisplayRole).toString())) { QPalette::ColorGroup cg = QPalette::Normal; opt.palette.setColor(cg, QPalette::Text, Qt::red); } opt.font = index.data(Qt::FontRole).value<QFont>(); drawDisplay(painter, opt, opt.rect, index.data(Qt::DisplayRole).toString()); if (!index.data(KWQTableModel::SoundRole).isNull()) painter->fillRect(option.rect.right() - 3, option.rect.top(), 4, 4, Qt::red); drawFocus(painter, opt, option.rect); painter->restore(); }
void QItemDelegate_QtDShell::__override_drawDecoration(QPainter* painter0, const QStyleOptionViewItem& option1, const QRect& rect2, const QPixmap& pixmap3, bool static_call) const { if (static_call) { QItemDelegate::drawDecoration((QPainter* )painter0, (const QStyleOptionViewItem& )option1, (const QRect& )rect2, (const QPixmap& )pixmap3); } else { drawDecoration((QPainter* )painter0, (const QStyleOptionViewItem& )option1, (const QRect& )rect2, (const QPixmap& )pixmap3); } }
void IconDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { Q_ASSERT(index.isValid()); const QAbstractItemModel *model = index.model(); Q_ASSERT(model); QStyleOptionViewItem opt = option; // set font QVariant value = model->data(index, Qt::FontRole); if (value.isValid()) opt.font = qvariant_cast<QFont>(value); // set text alignment value = model->data(index, Qt::TextAlignmentRole); if (value.isValid()) opt.displayAlignment = QFlag(value.toInt()); // set text color value = model->data(index, Qt::TextColorRole); if (value.isValid() && qvariant_cast<QColor>(value).isValid()) opt.palette.setColor(QPalette::Text, qvariant_cast<QColor>(value)); // do layout value = model->data(index, Qt::DecorationRole); QPixmap pixmap = decoration(opt, value); QRect pixmapRect = pixmap.rect(); QFontMetrics fontMetrics(opt.font); QString text = model->data(index, Qt::DisplayRole).toString(); QRect textRect(0, 0, 0,0); //QRect textRect(0, 0, fontMetrics.width(text), fontMetrics.lineSpacing()); value = model->data(index, Qt::CheckStateRole); QRect checkRect = check(opt, opt.rect, value); Qt::CheckState checkState = static_cast<Qt::CheckState>(value.toInt()); doLayout(opt, &checkRect, &pixmapRect, &textRect, false); // draw the background color if (option.showDecorationSelected && (option.state & QStyle::State_Selected)) { QPalette::ColorGroup cg = option.state & QStyle::State_Enabled ? QPalette::Normal : QPalette::Disabled; painter->fillRect(option.rect, option.palette.brush(cg, QPalette::Highlight)); } else { value = model->data(index, Qt::BackgroundColorRole); if (value.isValid() && qvariant_cast<QColor>(value).isValid()) painter->fillRect(option.rect, qvariant_cast<QColor>(value)); } // draw the item drawCheck(painter, opt, checkRect, checkState); drawDecoration(painter, opt, pixmapRect, pixmap); // drawDisplay(painter, opt, textRect, text); drawFocus(painter, opt, textRect); }
void ThumbnailDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const { Q_ASSERT(index.isValid()); const QContentSetModel *model = qobject_cast< const QContentSetModel * >( index.model() ); Q_ASSERT(model); QStyleOptionViewItem opt = option; // set text alignment opt.displayAlignment = Qt::AlignCenter; // do layout QContent content = model->content( index ); QPixmap pixmap; if( content.fileKnown() ) { pixmap = repository_->thumbnail( ThumbnailRequest( index, content.file(), option.decorationSize, content.lastUpdated() ) ); } if( pixmap.isNull() ) { QIcon icon = qvariant_cast<QIcon>(model->data(index, Qt::DecorationRole)); pixmap = icon.pixmap( option.decorationSize ); } QRect pixmapRect = QRect(0, 0, option.decorationSize.width(), option.decorationSize.height()); QFontMetrics fontMetrics(opt.font); QString text = model->data(index, Qt::DisplayRole).toString(); QRect textRect(0, 0, option.decorationSize.width(), fontMetrics.lineSpacing()); QVariant value = model->data(index, Qt::CheckStateRole); QRect checkRect = check(opt, opt.rect, value); Qt::CheckState checkState = static_cast<Qt::CheckState>(value.toInt()); doLayout(opt, &checkRect, &pixmapRect, &textRect, false); // draw the background color if (option.showDecorationSelected && (option.state & QStyle::State_Selected)) { QPalette::ColorGroup cg = option.state & QStyle::State_Enabled ? QPalette::Normal : QPalette::Disabled; painter->fillRect(option.rect, option.palette.brush(cg, QPalette::Highlight)); } else { value = model->data(index, Qt::BackgroundColorRole); if (value.isValid() && qvariant_cast<QColor>(value).isValid()) painter->fillRect(option.rect, qvariant_cast<QColor>(value)); } // draw the item drawCheck(painter, opt, checkRect, checkState); drawDecoration(painter, opt, pixmapRect, pixmap); drawDisplay(painter, opt, textRect, text); drawFocus(painter, opt, textRect); }
void TimeEditDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QDateTime dtval = index.model()->data(index, Qt::DisplayRole).toDateTime(); QString indexvalue = tr("Date not set"); if(dtval.isValid()) { indexvalue = dtval.toString(timeformat); } Q_ASSERT(index.isValid()); QStyleOptionViewItemV3 opt = setOptions(index, option); const QStyleOptionViewItemV2 *v2 = qstyleoption_cast<const QStyleOptionViewItemV2 *>(&option); opt.features = v2 ? v2->features : QStyleOptionViewItemV2::ViewItemFeatures(QStyleOptionViewItemV2::None); const QStyleOptionViewItemV3 *v3 = qstyleoption_cast<const QStyleOptionViewItemV3 *>(&option); opt.locale = v3 ? v3->locale : QLocale(); opt.widget = v3 ? v3->widget : 0; // prepare painter->save(); painter->setClipRect(opt.rect); // get the data and the rectangles QVariant value; QPixmap pixmap; QRect decorationRect; value = index.data(Qt::DecorationRole); QString text; QRect displayRect; value = index.data(Qt::DisplayRole); if (value.isValid()) { text = indexvalue; displayRect = textRectangle(painter, option.rect, opt.font, text); } QRect checkRect; Qt::CheckState checkState = Qt::Unchecked; value = index.data(Qt::CheckStateRole); if (value.isValid()) { checkState = static_cast<Qt::CheckState>(value.toInt()); //checkRect = check(opt, opt.rect, value); } // do the layout doLayout(opt, &checkRect, &decorationRect, &displayRect, false); // draw the item drawBackground(painter, opt, index); drawCheck(painter, opt, checkRect, checkState); drawDecoration(painter, opt, decorationRect, pixmap); drawDisplay(painter, opt, displayRect, text); drawFocus(painter, opt, displayRect); // done painter->restore(); }
void QtopiaCLItemDelegate::drawRightIconGroup(QPainter *painter, const QStyleOptionViewItem &option, const QList<QVariant> &list) const { QPoint right = option.rect.topRight(); right.ry() += m_vmargin; for (int i=qMin(list.size(), int(TreeModelItem::RightIconGroupEnd)); i>=TreeModelItem::RightIconGroupStart; i--) { QSize iconSize = variantSize(painter->device(), option, list[i]); if (iconSize.isEmpty()) // No icon here continue; right.rx() -= iconSize.width()+m_hspace; drawDecoration(painter, option, QRect(right, iconSize), list[i]); } }
void KoDocumentSectionDelegate::paint(QPainter *p, const QStyleOptionViewItem &o, const QModelIndex &index) const { p->save(); { QStyleOptionViewItemV4 option = getOptions(o, index); QStyle *style = option.widget ? option.widget->style() : QApplication::style(); style->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, p, option.widget); p->setFont(option.font); drawText(p, option, index); drawIcons(p, option, index); drawThumbnail(p, option, index); drawDecoration(p, option, index); drawProgressBar(p, option, index); } p->restore(); }
/*! Renders the delegate using the given \a painter and style \a option for the item specified by \a index. When reimplementing this function in a subclass, you should update the area held by the option's \l{QStyleOption::rect}{rect} variable, using the option's \l{QStyleOption::state}{state} variable to determine the state of the item to be displayed, and adjust the way it is painted accordingly. For example, a selected item may need to be displayed differently to unselected items, as shown in the following code: \snippet examples/itemviews/pixelator/pixeldelegate.cpp 2 \dots After painting, you should ensure that the painter is returned to its the state it was supplied in when this function was called. For example, it may be useful to call QPainter::save() before painting and QPainter::restore() afterwards. \sa QStyle::State */ void QItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { Q_D(const QItemDelegate); Q_ASSERT(index.isValid()); QStyleOptionViewItemV4 opt = setOptions(index, option); const QStyleOptionViewItemV2 *v2 = qstyleoption_cast<const QStyleOptionViewItemV2 *>(&option); opt.features = v2 ? v2->features : QStyleOptionViewItemV2::ViewItemFeatures(QStyleOptionViewItemV2::None); const QStyleOptionViewItemV3 *v3 = qstyleoption_cast<const QStyleOptionViewItemV3 *>(&option); opt.locale = v3 ? v3->locale : QLocale(); opt.widget = v3 ? v3->widget : 0; // prepare painter->save(); if (d->clipPainting) painter->setClipRect(opt.rect); // get the data and the rectangles QVariant value; QPixmap pixmap; QRect decorationRect; value = index.data(Qt::DecorationRole); if (value.isValid()) { // ### we need the pixmap to call the virtual function pixmap = decoration(opt, value); if (value.type() == QVariant::Icon) { d->tmp.icon = qvariant_cast<QIcon>(value); d->tmp.mode = d->iconMode(option.state); d->tmp.state = d->iconState(option.state); const QSize size = d->tmp.icon.actualSize(option.decorationSize, d->tmp.mode, d->tmp.state); decorationRect = QRect(QPoint(0, 0), size); } else { d->tmp.icon = QIcon(); decorationRect = QRect(QPoint(0, 0), pixmap.size()); } } else { d->tmp.icon = QIcon(); decorationRect = QRect(); } QString text; QRect displayRect; value = index.data(Qt::DisplayRole); if (value.isValid() && !value.isNull()) { text = QItemDelegatePrivate::valueToText(value, opt); displayRect = textRectangle(painter, d->textLayoutBounds(opt), opt.font, text); } QRect checkRect; Qt::CheckState checkState = Qt::Unchecked; value = index.data(Qt::CheckStateRole); if (value.isValid()) { checkState = static_cast<Qt::CheckState>(value.toInt()); checkRect = check(opt, opt.rect, value); } // do the layout doLayout(opt, &checkRect, &decorationRect, &displayRect, false); // draw the item drawBackground(painter, opt, index); drawCheck(painter, opt, checkRect, checkState); drawDecoration(painter, opt, decorationRect, pixmap); drawDisplay(painter, opt, displayRect, text); drawFocus(painter, opt, displayRect); // done painter->restore(); }