Implemented file save

Sun, 22 Jan 2023 19:02:54 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 22 Jan 2023 19:02:54 +0100
changeset 471
0836bfcc312c
parent 470
1eeaa281b62e
child 472
db8ad1c2112b

Implemented file save

src/EditProductTab13.cpp file | annotate | diff | comparison | revisions
--- 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));
 }
 
 

mercurial