From e75efb8bfbe4271a6b830840215d2d0ff13c88b2 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 5 Sep 2015 19:10:26 +0200 Subject: [PATCH] Improve setting the default file extension in FileDialog. Largely from PR #105 by Charles Brunet --- src/gui/FileDialog.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/gui/FileDialog.cpp b/src/gui/FileDialog.cpp index e45c4ece..c53588d4 100644 --- a/src/gui/FileDialog.cpp +++ b/src/gui/FileDialog.cpp @@ -65,11 +65,22 @@ QString FileDialog::getSaveFileName(QWidget* parent, const QString& caption, QSt dir = config()->get("LastDir").toString(); } - QString result = QFileDialog::getSaveFileName(parent, caption, dir, filter, - selectedFilter, options); + QFileDialog dialog(parent, caption, dir, filter); + dialog.setAcceptMode(QFileDialog::AcceptSave); + dialog.setFileMode(QFileDialog::AnyFile); + if (selectedFilter) { + dialog.selectNameFilter(*selectedFilter); + } + dialog.setOptions(options); + dialog.setDefaultSuffix(defaultExtension); - if (!defaultExtension.isEmpty() && !result.isEmpty() && !result.contains('.')) { - result.append(".").append(defaultExtension); + QString result; + QStringList results; + if (dialog.exec()) { + results = dialog.selectedFiles(); + if (!results.isEmpty()) { + result = results[0]; + } } // on Mac OS X the focus is lost after closing the native dialog