File selector should filter images we can actually handle.

So better ask Qt about image formats known to it.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
Robert C. Helling 2017-05-05 21:13:46 +02:00 committed by Dirk Hohndel
parent 59bbaa7820
commit 462797396b
4 changed files with 18 additions and 5 deletions

View file

@ -1173,9 +1173,18 @@ extern "C" void cache_picture(struct picture *picture)
QtConcurrent::run(hashPicture, clone_picture(picture));
}
QStringList imageExtensionFilters() {
QStringList filters;
foreach (QString format, QImageReader::supportedImageFormats()) {
filters.append(QString("*.").append(format));
}
return filters;
}
void learnImages(const QDir dir, int max_recursions)
{
QStringList filters, files;
QStringList files;
QStringList filters = imageExtensionFilters();
if (max_recursions) {
foreach (QString dirname, dir.entryList(QStringList(), QDir::NoDotAndDotDot | QDir::Dirs)) {
@ -1183,9 +1192,6 @@ void learnImages(const QDir dir, int max_recursions)
}
}
foreach (QString format, QImageReader::supportedImageFormats()) {
filters.append(QString("*.").append(format));
}
foreach (QString file, dir.entryList(filters, QDir::Files)) {
files.append(dir.absoluteFilePath(file));

View file

@ -46,5 +46,6 @@ extern "C" enum deco_mode decoMode();
extern "C" void subsurface_mkdir(const char *dir);
void init_proxy();
QString getUUID();
QStringList imageExtensionFilters();
#endif // QTHELPER_H

View file

@ -917,7 +917,12 @@ void DiveListView::shiftTimes()
void DiveListView::loadImages()
{
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open image files"), lastUsedImageDir(), tr("Image files (*.jpg *.jpeg *.pnm *.tif *.tiff)"));
QStringList filters = imageExtensionFilters();
QStringList fileNames = QFileDialog::getOpenFileNames(this,
tr("Open image files"),
lastUsedImageDir(),
tr("Image files (%1)").arg(filters.join(" ")));
if (fileNames.isEmpty())
return;
updateLastUsedImageDir(QFileInfo(fileNames[0]).dir().path());

View file

@ -19,6 +19,7 @@
#include "core/display.h"
#include "profile-widget/profilewidget2.h"
#include "desktop-widgets/undocommands.h"
#include "core/qthelper.h"
class MinMaxAvgWidgetPrivate {
public: