X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatline.h;h=94981562624d71fcfcbddf837520f015772e8426;hb=13eccc87e7cfd57006cfd43c65b8299c6d192c87;hp=824d50e9d26cd20ad989f683115ce9557c0a4db5;hpb=826a68dd9b56492b00a4b64bc959acc3f8891ad0;p=quassel.git diff --git a/src/qtui/chatline.h b/src/qtui/chatline.h index 824d50e9..94981562 100644 --- a/src/qtui/chatline.h +++ b/src/qtui/chatline.h @@ -35,13 +35,20 @@ public: 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(); } + 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(scene()); } + inline ChatView *chatView() const { return chatScene() ? chatScene()->chatView() : 0; } inline qreal width() const { return _width; } inline qreal height() const { return _height; } @@ -66,6 +73,8 @@ public: void setSelected(bool selected, ChatLineModel::ColumnType minColumn = ChatLineModel::ContentsColumn); void setHighlighted(bool highlighted); + void clearCache(); + protected: virtual bool sceneEvent(QEvent *event);