qa: Replace Qt module includes by class ones
[quassel.git] / src / qtui / chatline.cpp
index 649b761..80b0d56 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
+#include "chatline.h"
+
+#include <QAbstractItemModel>
 #include <QDateTime>
 #include <QGraphicsSceneMouseEvent>
+#include <QGraphicsSceneHoverEvent>
+#include <QPainter>
 #include <QString>
-#include <QtGui>
+#include <QStyleOptionGraphicsItem>
+#include <QTextCharFormat>
+
+class QAbstractItemModel;
+class QGraphicsSceneMouseEvent;
+class QGraphicsSceneHoverEvent;
+class QPainter;
+class QStyleOptionGraphicsItem;
 
 #include "bufferinfo.h"
 #include "buffersyncer.h"
-#include "client.h"
 #include "chatitem.h"
-#include "chatline.h"
 #include "chatview.h"
+#include "client.h"
 #include "columnhandleitem.h"
 #include "messagemodel.h"
 #include "networkmodel.h"
 #include "qtuisettings.h"
 #include "qtuistyle.h"
 
-ChatLine::ChatLine(int row, QAbstractItemModel *model,
-    const qreal &width,
-    const qreal &timestampWidth, const qreal &senderWidth, const qreal &contentsWidth,
-    const QPointF &senderPos, const QPointF &contentsPos,
-    QGraphicsItem *parent)
-    : QGraphicsItem(parent),
-    _row(row), // needs to be set before the items
-    _model(model),
-    _contentsItem(contentsPos, contentsWidth, this),
-    _senderItem(QRectF(senderPos, QSizeF(senderWidth, _contentsItem.height())), this),
-    _timestampItem(QRectF(0, 0, timestampWidth, _contentsItem.height()), this),
-    _width(width),
-    _height(_contentsItem.height()),
-    _selection(0),
-    _mouseGrabberItem(0),
-    _hoverItem(0)
+ChatLine::ChatLine(int row,
+                   QAbstractItemModel* model,
+                   const qreal& width,
+                   const qreal& timestampWidth,
+                   const qreal& senderWidth,
+                   const qreal& contentsWidth,
+                   const QPointF& senderPos,
+                   const QPointF& contentsPos,
+                   QGraphicsItem* parent)
+    : QGraphicsItem(parent)
+    , _row(row) // needs to be set before the items
+    , _model(model)
+    , _contentsItem(contentsPos, contentsWidth, this)
+    , _senderItem(QRectF(senderPos, QSizeF(senderWidth, _contentsItem.height())), this)
+    , _timestampItem(QRectF(0, 0, timestampWidth, _contentsItem.height()), this)
+    , _width(width)
+    , _height(_contentsItem.height())
+    , _selection(0)
+    , _mouseGrabberItem(nullptr)
+    , _hoverItem(nullptr)
 {
     Q_ASSERT(model);
     QModelIndex index = model->index(row, ChatLineModel::ContentsColumn);
@@ -60,15 +75,13 @@ 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)
+ChatItem* ChatLine::item(ChatLineModel::ColumnType column)
 {
     switch (column) {
     case ChatLineModel::TimestampColumn:
@@ -78,12 +91,11 @@ ChatItem *ChatLine::item(ChatLineModel::ColumnType column)
     case ChatLineModel::ContentsColumn:
         return &_contentsItem;
     default:
-        return 0;
+        return nullptr;
     }
 }
 
-
-ChatItem *ChatLine::itemAt(const QPointF &pos)
+ChatItem* ChatLine::itemAt(const QPointF& pos)
 {
     if (_contentsItem.boundingRect().contains(pos))
         return &_contentsItem;
@@ -91,10 +103,9 @@ ChatItem *ChatLine::itemAt(const QPointF &pos)
         return &_senderItem;
     if (_timestampItem.boundingRect().contains(pos))
         return &_timestampItem;
-    return 0;
+    return nullptr;
 }
 
-
 void ChatLine::clearCache()
 {
     _timestampItem.clearCache();
@@ -102,37 +113,33 @@ void ChatLine::clearCache()
     _contentsItem.clearCache();
 }
 
-
-void ChatLine::setMouseGrabberItem(ChatItem *item)
+void ChatLine::setMouseGrabberItem(ChatItem* item)
 {
     _mouseGrabberItem = item;
 }
 
-
-bool ChatLine::sceneEvent(QEvent *event)
+bool ChatLine::sceneEvent(QEvent* event)
 {
     if (event->type() == QEvent::GrabMouse) {
         // get mouse cursor pos relative to us
-        ChatView *view = chatScene()->chatView();
+        ChatViewview = chatScene()->chatView();
         QPointF linePos = mapFromScene(view->mapToScene(view->mapFromGlobal(QCursor::pos())));
         setMouseGrabberItem(itemAt(linePos));
     }
     else if (event->type() == QEvent::UngrabMouse) {
-        setMouseGrabberItem(0);
+        setMouseGrabberItem(nullptr);
     }
     return QGraphicsItem::sceneEvent(event);
 }
 
-
-void ChatLine::setFirstColumn(const qreal &timestampWidth, const qreal &senderWidth, const QPointF &senderPos)
+void ChatLine::setFirstColumn(const qreal& timestampWidth, const qreal& senderWidth, const QPointF& senderPos)
 {
     _timestampItem.setGeometry(timestampWidth, _height);
     _senderItem.setGeometry(senderWidth, _height);
     _senderItem.setPos(senderPos);
 }
 
-
-void ChatLine::setSecondColumn(const qreal &senderWidth, const qreal &contentsWidth, const QPointF &contentsPos, qreal &linePos)
+void ChatLine::setSecondColumn(const qreal& senderWidth, const qreal& contentsWidth, const QPointF& contentsPos, qreal& linePos)
 {
     // linepos is the *bottom* position for the line
     qreal height = _contentsItem.setGeometryByWidth(contentsWidth);
@@ -151,8 +158,7 @@ void ChatLine::setSecondColumn(const qreal &senderWidth, const qreal &contentsWi
     setPos(0, linePos);
 }
 
-
-void ChatLine::setGeometryByWidth(const qreal &width, const qreal &contentsWidth, qreal &linePos)
+void ChatLine::setGeometryByWidth(const qreal& width, const qreal& contentsWidth, qreal& linePos)
 {
     // linepos is the *bottom* position for the line
     qreal height = _contentsItem.setGeometryByWidth(contentsWidth);
@@ -170,10 +176,9 @@ void ChatLine::setGeometryByWidth(const qreal &width, const qreal &contentsWidth
         _width = width;
     }
 
-    setPos(0, linePos); // set pos is _very_ cheap if nothing changes.
+    setPos(0, linePos);  // set pos is _very_ cheap if nothing changes.
 }
 
-
 void ChatLine::setSelected(bool selected, ChatLineModel::ColumnType minColumn)
 {
     if (selected) {
@@ -198,24 +203,24 @@ void ChatLine::setSelected(bool selected, ChatLineModel::ColumnType minColumn)
     }
 }
 
-
 void ChatLine::setHighlighted(bool highlighted)
 {
-    if (highlighted) _selection |= Highlighted;
-    else _selection &= ~Highlighted;
+    if (highlighted)
+        _selection |= Highlighted;
+    else
+        _selection &= ~Highlighted;
     update();
 }
 
-
-void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+void ChatLine::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
 {
     Q_UNUSED(option);
     Q_UNUSED(widget);
 
-    const QAbstractItemModel *model_ = model();
+    const QAbstractItemModelmodel_ = model();
     QModelIndex myIdx = model_->index(row(), 0);
     Message::Type type = (Message::Type)myIdx.data(MessageModel::TypeRole).toInt();
-    UiStyle::MessageLabel label = myIdx.data(ChatLineModel::MsgLabelRole).value<UiStyle::MessageLabel>();
+    auto label = myIdx.data(ChatLineModel::MsgLabelRole).value<UiStyle::MessageLabel>();
 
     QTextCharFormat msgFmt = QtUi::style()->format({UiStyle::formatType(type), {}, {}}, label);
     if (msgFmt.hasProperty(QTextFormat::BackgroundBrush)) {
@@ -238,63 +243,56 @@ void ChatLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
     contentsItem()->paint(painter, option, widget);
 }
 
-
 // We need to dispatch all mouse-related events to the appropriate (mouse grabbing) ChatItem
 
-ChatItem *ChatLine::mouseEventTargetItem(const QPointF &pos)
+ChatItem* ChatLine::mouseEventTargetItem(const QPointF& pos)
 {
     if (mouseGrabberItem())
         return mouseGrabberItem();
     return itemAt(pos);
 }
 
-
-void ChatLine::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
+void ChatLine::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
 {
-    ChatItem *item = mouseEventTargetItem(event->pos());
+    ChatItemitem = mouseEventTargetItem(event->pos());
     if (item)
         item->mouseMoveEvent(event);
 }
 
-
-void ChatLine::mousePressEvent(QGraphicsSceneMouseEvent *event)
+void ChatLine::mousePressEvent(QGraphicsSceneMouseEvent* event)
 {
-    ChatItem *item = mouseEventTargetItem(event->pos());
+    ChatItemitem = mouseEventTargetItem(event->pos());
     if (item)
         item->mousePressEvent(event);
 }
 
-
-void ChatLine::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
+void ChatLine::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
 {
-    ChatItem *item = mouseEventTargetItem(event->pos());
+    ChatItemitem = mouseEventTargetItem(event->pos());
     if (item)
         item->mouseReleaseEvent(event);
 }
 
-
-void ChatLine::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
+void ChatLine::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
 {
-    ChatItem *item = mouseEventTargetItem(event->pos());
+    ChatItemitem = mouseEventTargetItem(event->pos());
     if (item && !_hoverItem) {
         _hoverItem = item;
         item->hoverEnterEvent(event);
     }
 }
 
-
-void ChatLine::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
+void ChatLine::hoverLeaveEvent(QGraphicsSceneHoverEvent* event)
 {
     if (_hoverItem) {
         _hoverItem->hoverLeaveEvent(event);
-        _hoverItem = 0;
+        _hoverItem = nullptr;
     }
 }
 
-
-void ChatLine::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
+void ChatLine::hoverMoveEvent(QGraphicsSceneHoverEvent* event)
 {
-    ChatItem *item = mouseEventTargetItem(event->pos());
+    ChatItemitem = mouseEventTargetItem(event->pos());
     if (item)
         item->hoverMoveEvent(event);
 }