#ifndef IMAGERINGLIST_H #define IMAGERINGLIST_H #include #include #include #include #include class Image : public QObject { Q_OBJECT bool m_loading; bool m_released; QPixmap m_pixmap; QString m_name; public: explicit Image(const QString name); void load(); void release(); QString name() const; QPixmap pixmap() const; signals: void pixmapLoaded(Image *ptr); protected slots: void imageLoaded(QImage img); }; class ImageRingList : public QObject { Q_OBJECT typedef std::shared_ptr ImagePtr; int m_width; QList m_images; QList::iterator m_firstImage; QList::iterator m_currImage; QList::iterator m_lastImage; public: explicit ImageRingList(QObject *parent = 0); bool setDir(const QString path); void setFiles(const QStringList files); void increment(); void decrement(); protected: QList::iterator increment(QList::iterator iter); QList::iterator decrement(QList::iterator iter); signals: void pixmapLoaded(QPixmap pix); protected slots: void imageLoaded(Image *image); }; #endif // IMAGERINGLIST_H