From 472d5d1a7c10a0e92b58a34c26a80a1ffe962bf9 Mon Sep 17 00:00:00 2001 From: Neil Horne Date: Tue, 17 Jan 2023 13:04:11 +1100 Subject: [PATCH] fix(cpn): Use correct file types/extensions on Save and Export (#3025) --- companion/src/mdichild.cpp | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/companion/src/mdichild.cpp b/companion/src/mdichild.cpp index e545f8457..62672287b 100644 --- a/companion/src/mdichild.cpp +++ b/companion/src/mdichild.cpp @@ -1250,12 +1250,20 @@ bool MdiChild::saveAs(bool isNew) { forceNewFilename(); QFileInfo fi(curFile); - QString filter(ETX_FILES_FILTER % YML_FILES_FILTER); + QString filter(ETX_FILES_FILTER); + QString fileName; - QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), g.eepromDir() + "/" + fi.fileName(), filter); - if (fileName.isEmpty()) - return false; - g.eepromDir( QFileInfo(fileName).dir().absolutePath() ); + do + { + fileName = QFileDialog::getSaveFileName(this, tr("Save As"), g.eepromDir() + "/" + fi.fileName(), filter); + if (fileName.isEmpty()) + return false; + if (QFileInfo(fileName).suffix().toLower() != "etx") + QMessageBox::critical(this, CPN_STR_TTL_ERROR, tr("Invalid file extension!")); + } + while (QFileInfo(fileName).suffix().toLower() != "etx"); + + g.eepromDir(QFileInfo(fileName).dir().absolutePath()); return saveFile(fileName, true); } @@ -1707,13 +1715,19 @@ unsigned MdiChild::exportModels(const QVector modelIndices) const QString path(QDir::toNativeSeparators(g.profile[g.id()].sdPath() + "/TEMPLATES/" + QString(radioData.models[idx].name) + ".yml")); qDebug() << path; - QString filename = QFileDialog::getSaveFileName(this, tr("Export model"), path, YML_FILES_FILTER); + QString filename; - if (filename.isEmpty()) - return false; + do + { + filename = QFileDialog::getSaveFileName(this, tr("Export model"), path, YML_FILES_FILTER); - if (QFileInfo(filename).suffix() != "yml") - return false; + if (filename.isEmpty()) + return false; + + if (QFileInfo(filename).suffix().toLower() != "yml") + QMessageBox::critical(this, CPN_STR_TTL_ERROR, tr("Invalid file extension!")); + } + while (QFileInfo(filename).suffix().toLower() != "yml"); Storage storage(filename);