#ifndef EPHOTO_H #define EPHOTO_H #include "ebase.h" #include "pagelistitem.h" #include "synctimer.h" struct Frame { QPixmap img; int dur = 100; }; class EPhoto : public EBase { Q_OBJECT public: static QString filters() { return tr("Images (*.png *.jpg *.jpeg *.bmp *.gif)"); } static EPhoto *create(const JObj &, PageListItem *pageItem, EBase *multiWin = 0); explicit EPhoto(QImageReader &reader, const QImage &, const QString &dir, const QString &name, const JObj &json, EBase *multiWin = 0); int type() const override { return EBase::Image; } void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; JObj attrJson() const override; bool save(const QString &pageDir) override; QWidget* attrWgt() override; QImage img; std::vector frames; QString mDir, mName, direct; int fi = 0, speed = 0, tailSpacing = 0; public slots: void sltNext(); protected: SyncTimer* timer = 0; }; #endif // EPHOTO_H