# HG changeset patch # User Michiel Broek # Date 1674410574 -3600 # Node ID 0836bfcc312c74caa92fca13a7cb3761f0c1ddb1 # Parent 1eeaa281b62e7f0f4c5c130db88a4193025c9132 Implemented file save diff -r 1eeaa281b62e -r 0836bfcc312c src/EditProductTab13.cpp --- a/src/EditProductTab13.cpp Sat Jan 21 16:19:47 2023 +0100 +++ b/src/EditProductTab13.cpp Sun Jan 22 19:02:54 2023 +0100 @@ -322,7 +322,35 @@ void EditProduct::downloadImage_clicked() { - qDebug() << "downloadImage_clicked()" << product->images_current << ui->filmStrip->currentRow(); + QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp"); + + QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), + settings.value("paths/download").toString() + "/" + product->images_list.at(ui->filmStrip->currentRow()).filename, tr("Files (*.png)")); + if (fileName == 0) { + QMessageBox::warning(this, tr("Save File"), tr("No PNG file selected.")); + return; + } + /* + * Update to current selected path + */ + settings.setValue("paths/download", QFileInfo(fileName).absolutePath()); + + qDebug() << "downloadImage_clicked()" << ui->filmStrip->currentRow() << fileName; + + QFile file(fileName); + file.open(QIODevice::WriteOnly); + file.write(product->images_list.at(ui->filmStrip->currentRow()).pic_data); + if (!file.setFileTime(product->images_list.at(ui->filmStrip->currentRow()).timestamp, QFileDevice::FileModificationTime)) { + qWarning() << "Failed to modify modify time!"; + } + if (!file.setFileTime(product->images_list.at(ui->filmStrip->currentRow()).timestamp, QFileDevice::FileAccessTime)) { + qWarning() << "Failed to modify access time!"; + } +// if (!file.setFileTime(product->images_list.at(ui->filmStrip->currentRow()).timestamp, QFileDevice::FileBirthTime)) { +// qDebug() << "Failed to modify create time!"; +// } + file.close(); + QMessageBox::information(this, tr("Save File"), tr("Saved %1").arg(product->images_list.at(ui->filmStrip->currentRow()).filename)); }