-ChatLine::ChatLine(Message msg) : QGraphicsItem(), AbstractUiMsg() {
- _styledTimestamp = QtUi::style()->styleString(msg.formattedTimestamp());
- _styledSender = QtUi::style()->styleString(msg.formattedSender());
- _styledText = QtUi::style()->styleString(msg.formattedText());
- _msgId = msg.msgId();
- _timestamp = msg.timestamp();
-
- _tsColWidth = _senderColWidth = _textColWidth = 0;
- QTextOption option;
- option.setWrapMode(QTextOption::NoWrap);
- _tsItem = new ChatItem(this);
- _tsItem->setTextOption(option);
- _tsItem->setText(_styledTimestamp);
-
- option.setAlignment(Qt::AlignRight);
- _senderItem = new ChatItem(this);
- _senderItem->setTextOption(option);
- _senderItem->setText(_styledSender);
-
- option.setAlignment(Qt::AlignLeft);
- option.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
- _textItem = new ChatItem(this);
- _textItem->setTextOption(option);
- _textItem->setText(_styledText);
+ChatLine::ChatLine(const QModelIndex &index, QGraphicsItem *parent) : QGraphicsItem(parent) {
+ _timestampItem = new ChatItem(QPersistentModelIndex(index.sibling(index.row(), ChatLineModel::TimestampColumn)), this);
+ _senderItem = new ChatItem(QPersistentModelIndex(index.sibling(index.row(), ChatLineModel::SenderColumn)), this);
+ _contentsItem = new ChatItem(QPersistentModelIndex(index.sibling(index.row(), ChatLineModel::ContentsColumn)), this);