X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatviewsearchcontroller.h;h=66e09085f0d2237989ee727106fb9cde526326b0;hp=757bd22fe2a34b73e9585b69160d01741c9d9d7c;hb=4ff76cab24698482ce759cb40a903b9bc26c8fae;hpb=4ae8f86c1ce452582d6fe576956c7c1bc1460adf diff --git a/src/qtui/chatviewsearchcontroller.h b/src/qtui/chatviewsearchcontroller.h index 757bd22f..66e09085 100644 --- a/src/qtui/chatviewsearchcontroller.h +++ b/src/qtui/chatviewsearchcontroller.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,13 +15,13 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef CHATVIEWSEARCHCONTROLLER_H #define CHATVIEWSEARCHCONTROLLER_H -#include +#include #include #include #include @@ -34,86 +34,85 @@ class QGraphicsItem; class ChatLine; class SearchHighlightItem; -class ChatViewSearchController : public QObject { - Q_OBJECT +class ChatViewSearchController : public QObject +{ + Q_OBJECT public: - ChatViewSearchController(QObject *parent = 0); + ChatViewSearchController(QObject *parent = 0); - 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 setCaseSensitive(bool caseSensitive); - void setSearchSenders(bool searchSenders); - void setSearchMsgs(bool searchMsgs); - void setSearchOnlyRegularMsgs(bool searchOnlyRegularMsgs); + void setSearchString(const QString &searchString); + void setCaseSensitive(bool caseSensitive); + void setSearchSenders(bool searchSenders); + void setSearchMsgs(bool searchMsgs); + void setSearchOnlyRegularMsgs(bool searchOnlyRegularMsgs); - void highlightNext(); - void highlightPrev(); + void highlightNext(); + void highlightPrev(); private slots: - void sceneDestroyed(); - void updateHighlights(bool reuse = false); + void sceneDestroyed(); + void updateHighlights(bool reuse = false); - void repositionHighlights(); - void repositionHighlights(ChatLine *line); + void repositionHighlights(); + void repositionHighlights(ChatLine *line); signals: - void newCurrentHighlight(QGraphicsItem *highlightItem); + void newCurrentHighlight(QGraphicsItem *highlightItem); private: - QString _searchString; - ChatScene *_scene; - QList _highlightItems; - int _currentHighlight; + QString _searchString; + ChatScene *_scene; + QList _highlightItems; + int _currentHighlight; - bool _caseSensitive; - bool _searchSenders; - bool _searchMsgs; - bool _searchOnlyRegularMsgs; + bool _caseSensitive; + bool _searchSenders; + bool _searchMsgs; + bool _searchOnlyRegularMsgs; - inline Qt::CaseSensitivity caseSensitive() const { return _caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive; } + 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); } + 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 checkMessagesForHighlight(int start = 0, int end = -1); + void highlightLine(ChatLine *line); + void updateHighlights(ChatLine *line); }; // Highlight Items -#include +class SearchHighlightItem : public QObject, public QGraphicsItem +{ + Q_OBJECT + Q_INTERFACES(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; } + 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; } -public: - SearchHighlightItem(QRectF wordRect, QGraphicsItem *parent = 0); - virtual inline QRectF boundingRect() const { 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 setHighlighted(bool highlighted); - void setHighlighted(bool highlighted); - - static bool firstInLine(QGraphicsItem *item1, QGraphicsItem *item2); + static bool firstInLine(QGraphicsItem *item1, QGraphicsItem *item2); private slots: - void updateHighlight(qreal value); + void updateHighlight(qreal value); private: - QRectF _boundingRect; - bool _highlighted; - int _alpha; - QTimeLine _timeLine; + QRectF _boundingRect; + bool _highlighted; + int _alpha; + QTimeLine _timeLine; }; + #endif //CHATVIEWSEARCHCONTROLLER_H