void LineEditDelegate::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const { QStyleOptionViewItemV4 viewItemOption(option); viewItemOption.state &= ~QStyle::State_HasFocus; QStyledItemDelegate::paint(painter, viewItemOption, index); return; }
void BoolDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const { QStyleOptionViewItemV4 viewItemOption(option); viewItemOption.state &= ~QStyle::State_HasFocus; const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; QRect newRect = QStyle::alignedRect(option.direction, Qt::AlignCenter, QSize(option.decorationSize.width() + 5, option.decorationSize.height()), QRect(option.rect.x() + textMargin, option.rect.y(), option.rect.width() - (2 * textMargin), option.rect.height())); if ((option.state & QStyle::State_Active) && (option.state & QStyle::State_Selected)) { painter->fillRect(option.rect, option.palette.brush(QPalette::Highlight)); } else { if (option.state & QStyle::State_Selected) { painter->fillRect(option.rect, option.palette.brush(QPalette::Inactive, QPalette::Highlight)); } } viewItemOption.rect = newRect; QStyledItemDelegate::paint(painter, viewItemOption, index); if ((option.state & QStyle::State_Active) && (option.state & QStyle::State_HasFocus)) { QStyleOptionFocusRect o; o.rect = option.rect; o.state |= QStyle::State_KeyboardFocusChange; o.state |= QStyle::State_Item; QPalette::ColorGroup cg = (option.state & QStyle::State_Enabled) ? QPalette::Normal : QPalette::Disabled; o.backgroundColor = option.palette.color(cg, (option.state & QStyle::State_Selected) ? QPalette::Highlight : QPalette::Window); QApplication::style()->drawPrimitive(QStyle::PE_FrameFocusRect, &o, painter); } }
void BridgesDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const { QStyleOptionViewItemV4 viewItemOption(option); if (index.column() == OPAQUE_COLUMN) { painter->fillRect(option.rect, Qt::white); const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; QRect newRect = QStyle::alignedRect(option.direction, Qt::AlignCenter, QSize(option.decorationSize.width() + 5, option.decorationSize.height()), QRect(option.rect.x() + textMargin, option.rect.y(), option.rect.width() - (2 * textMargin), option.rect.height())); viewItemOption.rect = newRect; } QStyledItemDelegate::paint(painter, viewItemOption, index); }