X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatitem.cpp;h=5c44815ae34a986c0daa25bc76ece7ce5b77a432;hp=d58ab0b326b628749e333f4ecd0a8c588f37cfd0;hb=2c16b8e356817cb4a4bf7fcd59c0c7429b0100e1;hpb=a507ecd831054ca9b3845985ae7ca3d33fad908d diff --git a/src/qtui/chatitem.cpp b/src/qtui/chatitem.cpp index d58ab0b3..5c44815a 100644 --- a/src/qtui/chatitem.cpp +++ b/src/qtui/chatitem.cpp @@ -69,7 +69,7 @@ void ChatItem::initLayoutHelper(QTextLayout *layout, QTextOption::WrapMode wrapM layout->setTextOption(option); QList formatRanges - = QtUi::style()->toTextLayoutList(data(MessageModel::FormatRole).value(), layout->text().length()); + = QtUi::style()->toTextLayoutList(data(MessageModel::FormatRole).value(), layout->text().length(), data(ChatLineModel::MsgLabelRole).toUInt()); layout->setAdditionalFormats(formatRanges); } @@ -89,6 +89,11 @@ void ChatItem::doLayout(QTextLayout *layout) const { void ChatItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); painter->setClipRect(boundingRect()); // no idea why QGraphicsItem clipping won't work + + QVariant bgBrush = data(ChatLineModel::BackgroundRole); + if(bgBrush.isValid()) + painter->fillRect(boundingRect(), bgBrush.value()); + QVector formats = additionalFormats(); QTextLayout::FormatRange selectFmt = selectionFormat(); if(selectFmt.format.isValid()) formats.append(selectFmt); @@ -300,6 +305,11 @@ void SenderChatItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op Q_UNUSED(option); Q_UNUSED(widget); painter->setClipRect(boundingRect()); // no idea why QGraphicsItem clipping won't work + + QVariant bgBrush = data(ChatLineModel::BackgroundRole); + if(bgBrush.isValid()) + painter->fillRect(boundingRect(), bgBrush.value()); + QTextLayout layout; initLayout(&layout); qreal layoutWidth = layout.minimumWidth();