diff --git a/src/QmlControls/ParameterEditor.qml b/src/QmlControls/ParameterEditor.qml index 9fa0fec47affc77b0d4e8c7546d344601b264cf3..f9ea4fb42c8280896e800e3c4052d10bc9490231 100644 --- a/src/QmlControls/ParameterEditor.qml +++ b/src/QmlControls/ParameterEditor.qml @@ -33,6 +33,7 @@ QGCView { property var _searchResults ///< List of parameter names from search results property bool _showRCToParam: !ScreenTools.isMobile && QGroundControl.multiVehicleManager.activeVehicle.px4Firmware property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle + property var _appSettings: QGroundControl.settingsManager.appSettings ParameterEditorController { id: controller; @@ -112,28 +113,18 @@ QGCView { MenuItem { text: qsTr("Load from file...") onTriggered: { - var appSettings = QGroundControl.settingsManager.appSettings - fileDialog.qgcView = qgcView - fileDialog.title = qsTr("Select Parameter File") + fileDialog.title = qsTr("Load Parameters") fileDialog.selectExisting = true - fileDialog.folder = appSettings.parameterSavePath - fileDialog.fileExtension = appSettings.parameterFileExtension - fileDialog.nameFilters = [ qsTr("Parameter Files (*.%1)").arg(appSettings.parameterFileExtension) , qsTr("All Files (*.*)") ] fileDialog.openForLoad() } } MenuItem { text: qsTr("Save to file...") onTriggered: { - var appSettings = QGroundControl.settingsManager.appSettings - fileDialog.qgcView = qgcView fileDialog.title = qsTr("Save Parameters") fileDialog.selectExisting = false - fileDialog.folder = appSettings.parameterSavePath - fileDialog.fileExtension = appSettings.parameterFileExtension - fileDialog.nameFilters = [ qsTr("Parameter Files (*.%1)").arg(appSettings.parameterFileExtension) , qsTr("All Files (*.*)") ] fileDialog.openForSave() } } @@ -292,7 +283,10 @@ QGCView { } // QGCViewPanel QGCFileDialog { - id: fileDialog + id: fileDialog + folder: _appSettings.parameterSavePath + fileExtension: _appSettings.parameterFileExtension + nameFilters: [ qsTr("Parameter Files (*.%1)").arg(_appSettings.parameterFileExtension) , qsTr("All Files (*.*)") ] onAcceptedForSave: { controller.saveToFile(file) diff --git a/src/QmlControls/ParameterEditorController.cc b/src/QmlControls/ParameterEditorController.cc index 2f980a227f11353752ad9b97b9afff3deb6cbd85..f3fb52439170f66f69f0b3f78f85a11d4e178e89 100644 --- a/src/QmlControls/ParameterEditorController.cc +++ b/src/QmlControls/ParameterEditorController.cc @@ -98,10 +98,15 @@ void ParameterEditorController::clearRCToParam(void) void ParameterEditorController::saveToFile(const QString& filename) { if (!filename.isEmpty()) { - QFile file(filename); + QString parameterFilename = filename; + if (!QFileInfo(filename).fileName().contains(".")) { + parameterFilename += QString(".%1").arg(AppSettings::parameterFileExtension); + } + + QFile file(parameterFilename); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - qgcApp()->showMessage(tr("Unable to create file: %1").arg(filename)); + qgcApp()->showMessage(tr("Unable to create file: %1").arg(parameterFilename)); return; }