Files
tenmon/imageringlist.h
T
2016-07-29 16:52:22 +02:00

54 lines
1.2 KiB
C++

#ifndef IMAGERINGLIST_H
#define IMAGERINGLIST_H
#include <QObject>
#include <QFileSystemWatcher>
#include <QList>
#include <QPixmap>
#include <memory>
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<Image> ImagePtr;
int m_width;
QList<ImagePtr> m_images;
QList<ImagePtr>::iterator m_firstImage;
QList<ImagePtr>::iterator m_currImage;
QList<ImagePtr>::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<ImagePtr>::iterator increment(QList<ImagePtr>::iterator iter);
QList<ImagePtr>::iterator decrement(QList<ImagePtr>::iterator iter);
signals:
void pixmapLoaded(QPixmap pix);
protected slots:
void imageLoaded(Image *image);
};
#endif // IMAGERINGLIST_H