/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#ifndef CHATVIEWSEARCHCONTROLLER_H
#define CHATVIEWSEARCHCONTROLLER_H
-#include <QObject>
+#include <QGraphicsItem>
#include <QHash>
#include <QPointer>
#include <QString>
Q_OBJECT
public:
- ChatViewSearchController(QObject *parent = 0);
+ ChatViewSearchController(QObject* parent = nullptr);
- inline const QString &searchString() const { return _searchString; }
+ inline const QString& searchString() const { return _searchString; }
- void setScene(ChatScene *scene);
+ void setScene(ChatScene* scene);
public slots:
- void setSearchString(const QString &searchString);
+ void setSearchString(const QString& searchString);
void setCaseSensitive(bool caseSensitive);
void setSearchSenders(bool searchSenders);
void setSearchMsgs(bool searchMsgs);
void updateHighlights(bool reuse = false);
void repositionHighlights();
- void repositionHighlights(ChatLine *line);
+ void repositionHighlights(ChatLine* line);
signals:
- void newCurrentHighlight(QGraphicsItem *highlightItem);
+ void newCurrentHighlight(QGraphicsItem* highlightItem);
private:
QString _searchString;
- ChatScene *_scene;
- QList<SearchHighlightItem *> _highlightItems;
- int _currentHighlight;
+ ChatScene* _scene{nullptr};
+ QList<SearchHighlightItem*> _highlightItems;
+ int _currentHighlight{0};
- bool _caseSensitive;
- bool _searchSenders;
- bool _searchMsgs;
- bool _searchOnlyRegularMsgs;
+ bool _caseSensitive{false};
+ bool _searchSenders{false};
+ bool _searchMsgs{true};
+ bool _searchOnlyRegularMsgs{true};
inline Qt::CaseSensitivity caseSensitive() const { return _caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive; }
inline bool checkType(Message::Type type) const { return type & (Message::Plain | Message::Notice | Message::Action); }
void checkMessagesForHighlight(int start = 0, int end = -1);
- void highlightLine(ChatLine *line);
- void updateHighlights(ChatLine *line);
+ void highlightLine(ChatLine* line);
+ void updateHighlights(ChatLine* line);
};
-
// Highlight Items
-#include <QGraphicsItem>
-
class SearchHighlightItem : public QObject, public QGraphicsItem
{
Q_OBJECT
-#if QT_VERSION >= 0x040600
Q_INTERFACES(QGraphicsItem)
-#endif
-public :
- SearchHighlightItem(QRectF wordRect, QGraphicsItem *parent = 0);
- virtual inline QRectF boundingRect() const { return _boundingRect; }
+public:
+ SearchHighlightItem(QRectF wordRect, QGraphicsItem* parent = nullptr);
+ inline QRectF boundingRect() const override { return _boundingRect; }
void updateGeometry(qreal width, qreal height);
- virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
- enum { Type = ChatScene::SearchHighlightType };
- virtual inline int type() const { return Type; }
+ void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = nullptr) override;
+ enum
+ {
+ Type = ChatScene::SearchHighlightType
+ };
+ inline int type() const override { return Type; }
void setHighlighted(bool highlighted);
- static bool firstInLine(QGraphicsItem *item1, QGraphicsItem *item2);
+ static bool firstInLine(QGraphicsItem* item1, QGraphicsItem* item2);
private slots:
void updateHighlight(qreal value);
QTimeLine _timeLine;
};
-
-#endif //CHATVIEWSEARCHCONTROLLER_H
+#endif // CHATVIEWSEARCHCONTROLLER_H