_styledMsg.setFlags(msg.flags() |= Message::ServerMsg);
}
+bool ChatLineModelItem::setData(int column, const QVariant &value, int role) {
+ switch(role) {
+ case MessageModel::FlagsRole:
+ _styledMsg.setFlags((Message::Flags)value.toUInt());
+ return true;
+ default:
+ return MessageModelItem::setData(column, value, role);
+ }
+}
+
QVariant ChatLineModelItem::data(int column, int role) const {
if(role == ChatLineModel::MsgLabelRole)
return messageLabel();
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:
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();