X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fchatviewsearchcontroller.h;h=51b6ff0a1d4c4fd6ae92865ebee8f952bf02264a;hb=641905d97d6858e3adb59bebf177b6964dd9066a;hp=6d8dc2d9bdb754c6516fc5f1083c6491aabc5788;hpb=a117d3bd1592bae3b14630c953790a005b3c3a3d;p=quassel.git diff --git a/src/qtui/chatviewsearchcontroller.h b/src/qtui/chatviewsearchcontroller.h index 6d8dc2d9..51b6ff0a 100644 --- a/src/qtui/chatviewsearchcontroller.h +++ b/src/qtui/chatviewsearchcontroller.h @@ -25,9 +25,11 @@ #include #include #include +#include #include "message.h" +class QGraphicsItem; class ChatLine; class ChatScene; class SearchHighlightItem; @@ -49,14 +51,21 @@ public slots: void setSearchMsgs(bool searchMsgs); void setSearchOnlyRegularMsgs(bool searchOnlyRegularMsgs); + void highlightNext(); + void highlightPrev(); + private slots: void sceneDestroyed(); void updateHighlights(bool reuse = false); +signals: + void newCurrentHighlight(QGraphicsItem *highlightItem); + private: QString _searchString; ChatScene *_scene; QList _highlightItems; + int _currentHighlight; bool _caseSensitive; bool _searchSenders; @@ -73,14 +82,23 @@ private: // Highlight Items #include -class SearchHighlightItem : public QGraphicsItem { +class SearchHighlightItem : public QObject, public QGraphicsItem { + Q_OBJECT + public: SearchHighlightItem(QRectF wordRect, QGraphicsItem *parent = 0); inline virtual QRectF boundingRect() const { return _boundingRect; } virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + void setHighlighted(bool highlighted); + +private slots: + void updateHighlight(qreal value); private: QRectF _boundingRect; + bool _highlighted; + qreal _alpha; + QTimeLine _timeLine; }; #endif //CHATVIEWSEARCHCONTROLLER_H