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>(UiStyle::FormatList()
<< qMakePair((quint16)0, (quint32)UiStyle::formatType(_styledMsg.type()) | UiStyle::Timestamp));
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>(UiStyle::FormatList()
<< qMakePair((quint16)0, (quint32)UiStyle::formatType(_styledMsg.type()) | UiStyle::Sender));
return _styledMsg.plainContents();
case ChatLineModel::BackgroundRole:
return backgroundBrush(UiStyle::Contents);
+ case ChatLineModel::SelectedBackgroundRole:
+ return backgroundBrush(UiStyle::Contents, true);
case ChatLineModel::FormatRole:
return QVariant::fromValue<UiStyle::FormatList>(_styledMsg.contentsFormatList());
case ChatLineModel::WrapListRole:
}
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)
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<QBrush>(fmt.background());
return QVariant();