#ifndef __CIRCULARREVEAL_H__ #define __CIRCULARREVEAL_H__ #include "Utilities.h" #include #include #include #include class CircularReveal : public QQuickPaintedItem { Q_OBJECT QML_ELEMENT Q_PROPERTY_AUTO_P(QQuickItem *, target) Q_PROPERTY_AUTO(int, radius) Q_PROPERTY_AUTO(bool, darkToLight) public: explicit CircularReveal(QQuickItem *parent = nullptr); void paint(QPainter *painter) override; Q_INVOKABLE void start(int w, int h, const QPoint ¢er, int radius); Q_SIGNAL void imageChanged(); Q_SIGNAL void animationFinished(); Q_SLOT void handleGrabResult(); private: QPropertyAnimation *_anim = nullptr; QImage _source; QPoint _center; QSharedPointer _grabResult; }; #endif // __CIRCULARREVEAL_H__