This commit is contained in:
Manuel
2020-01-26 22:11:53 +01:00
parent bc9dd90acc
commit fa25ced107
2 changed files with 25 additions and 11 deletions

View File

@@ -18,25 +18,38 @@ ImageSelector::ImageSelector(std::string path, bool recursive):
std::string ImageSelector::getNextImage() const std::string ImageSelector::getNextImage() const
{ {
QDir directory(path.c_str()); QDir directory(path.c_str());
QStringList images; std:: string filename;
if (recursive) try
{ {
images = listImagesRecursive(); if (recursive)
{
QStringList images = listImagesRecursive();
unsigned int selectedImage = selectRandom(images);
filename = images.at(selectedImage).toStdString();
}
else
{
QStringList images = directory.entryList(QStringList() << "*.jpg" << "*.JPG", QDir::Files);
unsigned int selectedImage = selectRandom(images);
filename = directory.filePath(images.at(selectedImage)).toStdString();
}
} }
else catch(const std::string& err)
{ {
images = directory.entryList(QStringList() << "*.jpg" << "*.JPG", QDir::Files); std::cerr << "Error: " << err << std::endl;
} }
std::cout << "updating image: " << filename << std::endl;
return filename;
}
unsigned int ImageSelector::selectRandom(const QStringList& images) const
{
std::cout << "images: " << images.size() << std::endl; std::cout << "images: " << images.size() << std::endl;
if (images.size() == 0) if (images.size() == 0)
{ {
std::cerr << "No jpg images found in folder " << path << std::endl; throw std::string("No jpg images found in folder " + path);
return "";
} }
unsigned int selectedImage = rand() % images.size(); return rand() % images.size();
std::string filename = directory.filePath(images.at(selectedImage)).toStdString();
std::cout << "updating image: " << filename << std::endl;
return filename;
} }

View File

@@ -13,6 +13,7 @@ public:
private: private:
QStringList listImagesRecursive() const; QStringList listImagesRecursive() const;
unsigned int selectRandom(const QStringList& images) const;
std::string path; std::string path;
bool recursive; bool recursive;
}; };