diff --git a/src/frame/ccentralwidget.cpp b/src/frame/ccentralwidget.cpp index a7e4aa2b..75aa32e1 100644 --- a/src/frame/ccentralwidget.cpp +++ b/src/frame/ccentralwidget.cpp @@ -156,7 +156,7 @@ class DrawBoard::DrawBoard_private return _dialog; } - QString execFileSelectDialog(const QString &defualFileName, bool toddf = true, QString file = "") + QString execFileSelectDialog(const QString &defaultFileName, bool toddf = true, QString file = "") { if (toddf) { FileSelectDialog dialog(_borad); @@ -167,7 +167,19 @@ class DrawBoard::DrawBoard_private dialog.selectFile(file); dialog.setDirectory(QFileInfo(file).dir().absolutePath()); } else { - dialog.selectFile(defualFileName); + // Add a format suffix to the default filename + QString fullFileName = defaultFileName; + QFileInfo fileInfo(fullFileName); + if (fileInfo.suffix().isEmpty()) { + QString suffix = dialog.extractSuffix(drawApp->defaultFileDialogNameFilter()); + if (!suffix.isEmpty()) { + if (!suffix.startsWith(".")) + suffix.prepend("."); + if (!fullFileName.endsWith(suffix)) + fullFileName = fullFileName + suffix; + } + } + dialog.selectFile(fullFileName); dialog.setDirectory(drawApp->defaultFileDialogPath()); } dialog.exec(); diff --git a/src/frame/cmultiptabbarwidget.h b/src/frame/cmultiptabbarwidget.h index d829020a..4a1ef05e 100644 --- a/src/frame/cmultiptabbarwidget.h +++ b/src/frame/cmultiptabbarwidget.h @@ -52,10 +52,10 @@ class FileSelectDialog: public DFileDialog int exec() override; QString resultFile()const; + QString extractSuffix(const QString &filter); private: void saveSetting(); QString checkAndBuildPath(const QString &path); - QString extractSuffix(const QString &filter); private: QString _resultFile;