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);
    }
}
Example #3
0
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);
}