sort languages in settings V2
[quassel.git] / src / qtui / chatline.cpp
index 6032cbe..08d089e 100644 (file)
@@ -49,7 +49,8 @@ ChatLine::ChatLine(int row, QAbstractItemModel *model,
     _width(width),
     _height(_contentsItem.height()),
     _selection(0),
-    _mouseGrabberItem(0)
+    _mouseGrabberItem(0),
+    _hoverItem(0)
 {
   Q_ASSERT(model);
   QModelIndex index = model->index(row, ChatLineModel::ContentsColumn);
@@ -205,8 +206,7 @@ void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
     MsgId myMsgId = myIdx.data(MessageModel::MsgIdRole).value<MsgId>();
     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) {
@@ -247,14 +247,17 @@ void ChatLine::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
 
 void ChatLine::hoverEnterEvent(QGraphicsSceneHoverEvent *event) {
   ChatItem *item = mouseEventTargetItem(event->pos());
-  if(item)
+  if(item && !_hoverItem) {
+    _hoverItem = item;
     item->hoverEnterEvent(event);
+  }
 }
 
 void ChatLine::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) {
-  ChatItem *item = mouseEventTargetItem(event->pos());
-  if(item)
-    item->hoverLeaveEvent(event);
+  if(_hoverItem) {
+    _hoverItem->hoverLeaveEvent(event);
+    _hoverItem = 0;
+  }
 }
 
 void ChatLine::hoverMoveEvent(QGraphicsSceneHoverEvent *event) {