#include "qtui.h"
#include "uistyle.h"
-ChatlineModelItem::ChatlineModelItem(const Message &msg) : MessageModelItem(msg) {
- _msg = QtUi::style()->styleMessage(msg);
+ChatLineModelItem::ChatLineModelItem(const Message &msg) : MessageModelItem(msg) {
+ QtUiStyle::StyledMessage m = QtUi::style()->styleMessage(msg);
+
+ _timestamp.plainText = m.timestamp.plainText;
+ _sender.plainText = m.sender.plainText;
+ _contents.plainText = m.contents.plainText;
+
+ _timestamp.formatList = m.timestamp.formatList;
+ _sender.formatList = m.sender.formatList;
+ _contents.formatList = m.contents.formatList;
}
-QVariant ChatlineModelItem::data(int column, int role) const {
+QVariant ChatLineModelItem::data(int column, int role) const {
+ const ChatLinePart *part;
+
+ switch(column) {
+ case ChatLineModel::TimestampColumn: part = &_timestamp; break;
+ case ChatLineModel::SenderColumn: part = &_sender; break;
+ case ChatLineModel::ContentsColumn: part = &_contents; break;
+ default: return MessageModelItem::data(column, role);
+ }
+
switch(role) {
- case ChatlineModel::DisplayRole:
- switch(column) {
- case ChatlineModel::TimestampColumn: return _msg.timestamp.text;
- case ChatlineModel::SenderColumn: return _msg.sender.text;
- case ChatlineModel::TextColumn: return _msg.text.text;
- }
- break;
- case ChatlineModel::FormatRole:
- switch(column) {
- case ChatlineModel::TimestampColumn: return QVariant::fromValue<UiStyle::FormatList>(_msg.timestamp.formats);
- case ChatlineModel::SenderColumn: return QVariant::fromValue<UiStyle::FormatList>(_msg.sender.formats);
- case ChatlineModel::TextColumn: return QVariant::fromValue<UiStyle::FormatList>(_msg.text.formats);
- }
- break;
+ case ChatLineModel::DisplayRole: return part->plainText;
+ case ChatLineModel::FormatRole: return QVariant::fromValue<UiStyle::FormatList>(part->formatList);
}
+
return MessageModelItem::data(column, role);
}
-bool ChatlineModelItem::setData(int column, const QVariant &value, int role) {
+bool ChatLineModelItem::setData(int column, const QVariant &value, int role) {
return false;
}