diff --git a/src/QtLocationPlugin/QMLControl/OfflineMap.qml b/src/QtLocationPlugin/QMLControl/OfflineMap.qml index 28875238028ce1c63b799d65c1b005174884101c..3bda5a4405f0e2d30cc89e9c67f825dd7198982f 100644 --- a/src/QtLocationPlugin/QMLControl/OfflineMap.qml +++ b/src/QtLocationPlugin/QMLControl/OfflineMap.qml @@ -213,6 +213,31 @@ QGCView { } } + QGCFileDialog { + id: fileDialog + qgcView: offlineMapView + folder: QGroundControl.settingsManager.appSettings.missionSavePath + nameFilters: ["Tile Sets (*.qgctiledb)"] + fileExtension: "qgctiledb" + + onAcceptedForSave: { + if (QGroundControl.mapEngineManager.exportSets(file)) { + rootLoader.sourceComponent = exportToDiskProgress + } else { + showList() + } + close() + } + + onAcceptedForLoad: { + if(!QGroundControl.mapEngineManager.importSets(file)) { + showList(); + mainWindow.enableToolbar() + } + close() + } + } + MessageDialog { id: errorDialog visible: false @@ -1044,10 +1069,9 @@ QGCView { width: _bigButtonSize enabled: QGroundControl.mapEngineManager.selectedCount > 0 onClicked: { - showList(); - if(QGroundControl.mapEngineManager.exportSets()) { - rootLoader.sourceComponent = exportToDiskProgress - } + fileDialog.title = qsTr("Export Tile Set") + fileDialog.selectExisting = false + fileDialog.openForSave() } } QGCButton { @@ -1200,11 +1224,10 @@ QGCView { text: qsTr("Import") width: _bigButtonSize * 1.25 onClicked: { - if(!QGroundControl.mapEngineManager.importSets()) { - showList(); - mainWindow.enableToolbar() - rootLoader.sourceComponent = null - } + rootLoader.sourceComponent = null + fileDialog.title = qsTr("Import Tile Set") + fileDialog.selectExisting = true + fileDialog.openForLoad() } } QGCButton { diff --git a/src/api/QGCOptions.h b/src/api/QGCOptions.h index 107f76cb20aa162baa64f41b0b7faa4bf8777429..313ad400aca4abed5870262c9abe2881f5a141a6 100644 --- a/src/api/QGCOptions.h +++ b/src/api/QGCOptions.h @@ -84,14 +84,12 @@ public: virtual bool missionWaypointsOnly () const { return false; } ///< true: Only allow waypoints and complex items in Plan virtual bool multiVehicleEnabled () const { return true; } ///< false: multi vehicle support is disabled virtual bool guidedActionsRequireRCRSSI () const { return false; } ///< true: Guided actions will be disabled is there is no RC RSSI + virtual bool showOfflineMapExport () const { return true; } + virtual bool showOfflineMapImport () const { return true; } #if defined(__mobile__) - virtual bool showOfflineMapExport () const { return false; } - virtual bool showOfflineMapImport () const { return false; } virtual bool useMobileFileDialog () const { return true;} #else - virtual bool showOfflineMapExport () const { return true; } - virtual bool showOfflineMapImport () const { return true; } virtual bool useMobileFileDialog () const { return false;} #endif