# HG changeset patch # User Michiel Broek # Date 1674490990 -3600 # Node ID db8ad1c2112b8275affd220dfc12cbd7f3941319 # Parent 0836bfcc312c74caa92fca13a7cb3761f0c1ddb1 If a new image for a product is loaded, check if the path is available. If not, use the home directory. diff -r 0836bfcc312c -r db8ad1c2112b src/EditProductTab13.cpp --- a/src/EditProductTab13.cpp Sun Jan 22 19:02:54 2023 +0100 +++ b/src/EditProductTab13.cpp Mon Jan 23 17:23:10 2023 +0100 @@ -146,28 +146,33 @@ void EditProduct::addImage_clicked() { - QString fileName; + QString fileName, dirName; QByteArray imageByteArray; QSqlQuery query; QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp"); + /* + * First check if the directory stored in the settings file exists. + * It might be on a removable media that was last used ... + * If so, fallback to the user's home directory. + */ + dirName = settings.value("paths/images").toString(); + if (! QDir(dirName).exists()) { + dirName = QDir::homePath(); + } + QFileDialog dialog1(this, tr("Open File")); - dialog1.setDirectory(settings.value("paths/images").toString()); - /* Only a few image formats are valid */ - QStringList mimeTypeFilters ({ "image/bmp", "image/gif", "image/jpeg", "image/png", "image/svg+xml" }); - dialog1.setMimeTypeFilters(mimeTypeFilters); + dialog1.setDirectory(dirName); dialog1.setNameFilter("Images (*.bmp *.BMP *.gif *.GIF *.jpg *.JPG *.jpeg *.JPEG *.png *.PNG *.svg *.SVG)"); dialog1.setAcceptMode(QFileDialog::AcceptOpen); -// dialog1.setOption(QFileDialog::DontUseNativeDialog); if (dialog1.exec() != QDialog::Accepted) return; - /* * Save our current path */ settings.setValue("paths/images", dialog1.directory().absolutePath()); + fileName = dialog1.selectedFiles().constFirst(); - fileName = dialog1.selectedFiles().constFirst(); QImageReader reader(fileName); reader.setAutoTransform(true); const QImage newImage = reader.read();