X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatlinemodelitem.cpp;h=343fb992fd7d433543659613e5d7156329580f77;hb=1489728cd358f6bf7151bcdd87b9ea2cbdff7bec;hp=0bcc7a785a9b4c5d991e6e0f3a0df882f91111ad;hpb=2c16b8e356817cb4a4bf7fcd59c0c7429b0100e1;p=quassel.git diff --git a/src/qtui/chatlinemodelitem.cpp b/src/qtui/chatlinemodelitem.cpp index 0bcc7a78..343fb992 100644 --- a/src/qtui/chatlinemodelitem.cpp +++ b/src/qtui/chatlinemodelitem.cpp @@ -84,6 +84,8 @@ QVariant ChatLineModelItem::timestampData(int role) const { return _styledMsg.timestamp(); case ChatLineModel::BackgroundRole: return backgroundBrush(UiStyle::Timestamp); + case ChatLineModel::SelectedBackgroundRole: + return backgroundBrush(UiStyle::Timestamp, true); case ChatLineModel::FormatRole: return QVariant::fromValue(UiStyle::FormatList() << qMakePair((quint16)0, (quint32)UiStyle::formatType(_styledMsg.type()) | UiStyle::Timestamp)); @@ -99,6 +101,8 @@ QVariant ChatLineModelItem::senderData(int role) const { return _styledMsg.plainSender(); case ChatLineModel::BackgroundRole: return backgroundBrush(UiStyle::Sender); + case ChatLineModel::SelectedBackgroundRole: + return backgroundBrush(UiStyle::Sender, true); case ChatLineModel::FormatRole: return QVariant::fromValue(UiStyle::FormatList() << qMakePair((quint16)0, (quint32)UiStyle::formatType(_styledMsg.type()) | UiStyle::Sender)); @@ -113,6 +117,8 @@ QVariant ChatLineModelItem::contentsData(int role) const { return _styledMsg.plainContents(); case ChatLineModel::BackgroundRole: return backgroundBrush(UiStyle::Contents); + case ChatLineModel::SelectedBackgroundRole: + return backgroundBrush(UiStyle::Contents, true); case ChatLineModel::FormatRole: return QVariant::fromValue(_styledMsg.contentsFormatList()); case ChatLineModel::WrapListRole: @@ -124,7 +130,7 @@ QVariant ChatLineModelItem::contentsData(int role) const { } quint32 ChatLineModelItem::messageLabel() const { - quint32 label = 0; + quint32 label = _styledMsg.senderHash() << 16; if(_styledMsg.flags() & Message::Self) label |= UiStyle::OwnMsg; if(_styledMsg.flags() & Message::Highlight) @@ -132,8 +138,8 @@ quint32 ChatLineModelItem::messageLabel() const { return label; } -QVariant ChatLineModelItem::backgroundBrush(UiStyle::FormatType subelement) const { - QTextCharFormat fmt = QtUi::style()->format(UiStyle::formatType(_styledMsg.type()) | subelement, messageLabel()); +QVariant ChatLineModelItem::backgroundBrush(UiStyle::FormatType subelement, bool selected) const { + QTextCharFormat fmt = QtUi::style()->format(UiStyle::formatType(_styledMsg.type()) | subelement, messageLabel() | (selected ? UiStyle::Selected : 0)); if(fmt.hasProperty(QTextFormat::BackgroundBrush)) return QVariant::fromValue(fmt.background()); return QVariant();