X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatline.cpp;h=99e09829247ae33b653dc54c96a8ac07b54ba964;hp=7e0acd585f3527764f93aa42d0619d81a6e4051b;hb=159fe3f19ba35c482f0a170da50a13b57ea3a5bd;hpb=066e33fa51c147535d5adb3041b1cfe52e162248 diff --git a/src/qtui/chatline.cpp b/src/qtui/chatline.cpp index 7e0acd58..99e09829 100644 --- a/src/qtui/chatline.cpp +++ b/src/qtui/chatline.cpp @@ -59,6 +59,11 @@ ChatLine::ChatLine(int row, QAbstractItemModel *model, setHighlighted(index.data(MessageModel::FlagsRole).toInt() & Message::Highlight); } +ChatLine::~ChatLine() { + if(chatView()) + chatView()->setHasCache(this, false); +} + ChatItem *ChatLine::item(ChatLineModel::ColumnType column) { switch(column) { case ChatLineModel::TimestampColumn: @@ -82,6 +87,12 @@ ChatItem *ChatLine::itemAt(const QPointF &pos) { return 0; } +void ChatLine::clearCache() { + _timestampItem.clearCache(); + _senderItem.clearCache(); + _contentsItem.clearCache(); +} + void ChatLine::setMouseGrabberItem(ChatItem *item) { _mouseGrabberItem = item; } @@ -206,8 +217,7 @@ void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, MsgId myMsgId = myIdx.data(MessageModel::MsgIdRole).value(); Message::Flags flags = (Message::Flags)myIdx.data(MessageModel::FlagsRole).toInt(); - // don't show the marker if we wrote that new line - if(!(flags & Message::Self)) { + if(chatView()->isMarkerLineVisible()) { BufferId bufferId = BufferId(chatScene()->idString().toInt()); MsgId lastSeenMsgId = Client::networkModel()->markerLineMsgId(bufferId); if(lastSeenMsgId < myMsgId && lastSeenMsgId >= prevMsgId) {