Hi there,

Here is a patch which fixes the #844 ticket.

Cheers,
Claudiu
From 968774ebf4050085c1d23d2012f7e9defe08ff2c Mon Sep 17 00:00:00 2001
From: Claudiu Olteanu <[email protected]>
Date: Fri, 20 Mar 2015 23:04:21 +0200
Subject: [PATCH] Implement handler for cancel button of Save As dialog

When an user opened the "Save as" dialog and pressed the
cancel button a null string was returned. Therefore the
file_save_as function returned an error which was lately
shown when the file_save function was called.
Now the function checks if the cancel/exit button was
pressed and returns.

Fixes #844

Reported-by: longjohnsilver
Signed-off-by: Claudiu Olteanu <[email protected]>
---
 qt-ui/mainwindow.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 54c0ce7..6d0bb46 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -1259,8 +1259,16 @@ int MainWindow::file_save_as(void)
 {
 	QString filename;
 	const char *default_filename = existing_filename;
-	filename = QFileDialog::getSaveFileName(this, tr("Save file as"), default_filename,
-						tr("Subsurface XML files (*.ssrf *.xml *.XML)"));
+	
+	QFileDialog selection_dialog(NULL, tr("Save file as"), default_filename,
+					tr("Subsurface XML files (*.ssrf *.xml *.XML)"));
+
+	/* if the exit/cancel button is pressed return */
+	if (!selection_dialog.exec())
+		return 0;
+	
+	/* get the first selected file */
+	filename = selection_dialog.selectedFiles().at(0);
 	if (filename.isNull() || filename.isEmpty())
 		return report_error("No filename to save into");
 
-- 
2.1.4

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to