const QPointF &senderPos, const QPointF &contentsPos,
QGraphicsItem *parent = 0);
+ virtual ~ChatLine();
+
virtual inline QRectF boundingRect () const { return QRectF(0, 0, _width, _height); }
- inline int row() { return _row; }
+ inline QModelIndex index() const { return model()->index(row(), 0); }
+ inline MsgId msgId() const { return index().data(MessageModel::MsgIdRole).value<MsgId>(); }
+ inline Message::Type msgType() const { return (Message::Type)index().data(MessageModel::TypeRole).toInt(); }
+
+ inline int row() const { return _row; }
inline void setRow(int row) { _row = row; }
inline const QAbstractItemModel *model() const { return _model; }
inline ChatScene *chatScene() const { return qobject_cast<ChatScene *>(scene()); }
+ inline ChatView *chatView() const { return chatScene() ? chatScene()->chatView() : 0; }
inline qreal width() const { return _width; }
inline qreal height() const { return _height; }
void setSelected(bool selected, ChatLineModel::ColumnType minColumn = ChatLineModel::ContentsColumn);
void setHighlighted(bool highlighted);
+ void clearCache();
+
protected:
virtual bool sceneEvent(QEvent *event);
quint8 _selection; // save space, so we put both the col and the flags into one byte
ChatItem *_mouseGrabberItem;
+ ChatItem *_hoverItem;
};
#endif