Files
slide/src/imageselector.h
Manuel Dewald 05e5bb9460 sorted mode
2020-08-14 11:45:44 +02:00

56 lines
1.2 KiB
C++

#ifndef IMAGESELECTOR_H
#define IMAGESELECTOR_H
#include <iostream>
#include <memory>
#include <QStringList>
class MainWindow;
class PathTraverser;
class ImageSelector
{
public:
ImageSelector(std::unique_ptr<PathTraverser>& pathTraverser);
virtual ~ImageSelector();
virtual std::string getNextImage() = 0;
protected:
std::unique_ptr<PathTraverser>& pathTraverser;
};
class RandomImageSelector : public ImageSelector
{
public:
RandomImageSelector(std::unique_ptr<PathTraverser>& pathTraverser);
virtual ~RandomImageSelector();
virtual std::string getNextImage();
private:
unsigned int selectRandom(const QStringList& images) const;
};
class ShuffleImageSelector : public ImageSelector
{
public:
ShuffleImageSelector(std::unique_ptr<PathTraverser>& pathTraverser);
virtual ~ShuffleImageSelector();
virtual std::string getNextImage();
private:
int current_image_shuffle;
QStringList images;
};
class SortedImageSelector : public ImageSelector
{
public:
SortedImageSelector(std::unique_ptr<PathTraverser>& pathTraverser);
virtual ~SortedImageSelector();
virtual std::string getNextImage();
private:
QStringList images;
};
#endif // IMAGESELECTOR_H