#ifndef BOUNDINGRECTHIGHLIGHTER_H #define BOUNDINGRECTHIGHLIGHTER_H #include #include #include "layeritem.h" QT_FORWARD_DECLARE_CLASS(QGraphicsItem); QT_FORWARD_DECLARE_CLASS(QPainter); QT_FORWARD_DECLARE_CLASS(QWidget); QT_FORWARD_DECLARE_CLASS(QStyleOptionGraphicsItem); QT_FORWARD_DECLARE_CLASS(QTimer); namespace QmlViewer { class QDeclarativeDesignView; class BoundingBox; class BoundingRectHighlighter : public LayerItem { Q_OBJECT public: explicit BoundingRectHighlighter(QDeclarativeDesignView *view); void clear(); void highlight(QList items); void highlight(QGraphicsObject* item); void removeHighlight(QGraphicsObject *item); private slots: void refresh(); void animTimeout(); private: BoundingBox *boxFor(QGraphicsObject *item) const; void highlightAll(bool animate); BoundingBox *createBoundingBox(QGraphicsObject *itemToHighlight); private: Q_DISABLE_COPY(BoundingRectHighlighter); QDeclarativeDesignView *m_view; QList m_boxes; // QList > m_highlightedObjects; // QGraphicsPolygonItem *m_highlightPolygon; // QGraphicsPolygonItem *m_highlightPolygonEdge; QTimer *m_animTimer; qreal m_animScale; int m_animFrame; }; } // namespace QmlViewer #endif // BOUNDINGRECTHIGHLIGHTER_H