/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include <QString>
#include <QTimeLine>
+#include "chatscene.h"
#include "message.h"
class QGraphicsItem;
void sceneDestroyed();
void updateHighlights(bool reuse = false);
+ void repositionHighlights();
+ void repositionHighlights(ChatLine *line);
+
signals:
void newCurrentHighlight(QGraphicsItem *highlightItem);
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);
};
public:
SearchHighlightItem(QRectF wordRect, QGraphicsItem *parent = 0);
- inline virtual QRectF boundingRect() const { return _boundingRect; }
+ 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);
+ static bool firstInLine(QGraphicsItem *item1, QGraphicsItem *item2);
+
private slots:
void updateHighlight(qreal value);
private:
QRectF _boundingRect;
bool _highlighted;
- qreal _alpha;
+ int _alpha;
QTimeLine _timeLine;
};