Cache ChatLine layout data for visible chatlines
[quassel.git] / src / qtui / chatline.cpp
index 08d089e..99e0982 100644 (file)
@@ -59,6 +59,11 @@ ChatLine::ChatLine(int row, QAbstractItemModel *model,
   setHighlighted(index.data(MessageModel::FlagsRole).toInt() & Message::Highlight);
 }
 
   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:
 ChatItem *ChatLine::item(ChatLineModel::ColumnType column) {
   switch(column) {
     case ChatLineModel::TimestampColumn:
@@ -82,6 +87,12 @@ ChatItem *ChatLine::itemAt(const QPointF &pos) {
   return 0;
 }
 
   return 0;
 }
 
+void ChatLine::clearCache() {
+  _timestampItem.clearCache();
+  _senderItem.clearCache();
+  _contentsItem.clearCache();
+}
+
 void ChatLine::setMouseGrabberItem(ChatItem *item) {
   _mouseGrabberItem = item;
 }
 void ChatLine::setMouseGrabberItem(ChatItem *item) {
   _mouseGrabberItem = item;
 }