From d71ceca65d5ff07a216ee5331ea71f0edb0904fc Mon Sep 17 00:00:00 2001
From: DonLakeFlyer <don@thegagnes.com>
Date: Sun, 19 Jul 2020 12:51:24 -0700
Subject: [PATCH] Fix Flow custom flash

---
 src/VehicleSetup/FirmwareUpgrade.qml          | 25 +++++++------------------
 src/VehicleSetup/FirmwareUpgradeController.cc |  7 +++++--
 2 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/src/VehicleSetup/FirmwareUpgrade.qml b/src/VehicleSetup/FirmwareUpgrade.qml
index d4ad0d3..f602bd3 100644
--- a/src/VehicleSetup/FirmwareUpgrade.qml
+++ b/src/VehicleSetup/FirmwareUpgrade.qml
@@ -123,35 +123,25 @@ SetupPage {
                         statusTextArea.append(qgcUnplugText2)
 
                         var availableDevices = controller.availableBoardsName()
-                        if(availableDevices.length > 1) {
+                        if (availableDevices.length > 1) {
                             statusTextArea.append(highlightPrefix + qsTr("Multiple devices detected! Remove all detected devices to perform the firmware upgrade."))
                             statusTextArea.append(qsTr("Detected [%1]: ").arg(availableDevices.length) + availableDevices.join(", "))
                         }
-                        if(QGroundControl.multiVehicleManager.activeVehicle) {
+                        if (QGroundControl.multiVehicleManager.activeVehicle) {
                             QGroundControl.multiVehicleManager.activeVehicle.autoDisconnect = true
                         }
                     } else {
                         // We end up here when we detect a board plugged in after we've started upgrade
                         statusTextArea.append(highlightPrefix + qsTr("Found device") + highlightSuffix + ": " + controller.boardType)
-                        if (controller.px4FlowBoard) {
-                            mainWindow.showComponentDialog(pixhawkFirmwareSelectDialogComponent, title, mainWindow.showDialogDefaultWidth, StandardButton.Ok | StandardButton.Cancel)
-                        }
                     }
                 }
 
-                onBootloaderFound: {
-                    if (controller.pixhawkBoard) {
-                        mainWindow.showComponentDialog(pixhawkFirmwareSelectDialogComponent, title, mainWindow.showDialogDefaultWidth, StandardButton.Ok | StandardButton.Cancel)
-                    }
-                }
-
-                onError: {
-                    statusTextArea.append(flashFailText)
-                }
+                onBootloaderFound:  mainWindow.showComponentDialog(firmwareSelectDialogComponent, title, mainWindow.showDialogDefaultWidth, StandardButton.Ok | StandardButton.Cancel)
+                onError:            statusTextArea.append(flashFailText)
             }
 
             Component {
-                id: pixhawkFirmwareSelectDialogComponent
+                id: firmwareSelectDialogComponent
 
                 QGCViewDialog {
                     id: pixhawkFirmwareSelectDialog
@@ -463,7 +453,6 @@ SetupPage {
                                 visible:        showFirmwareTypeSelection
                                 textRole:       "text"
                                 model:          _singleFirmwareMode ? singleFirmwareModeTypeList : (px4Flow ? px4FlowTypeList : firmwareBuildTypeList)
-                                currentIndex:   controller.selectedFirmwareBuildType
 
                                 onActivated: {
                                     controller.selectedFirmwareBuildType = model.get(index).firmwareType
@@ -480,7 +469,7 @@ SetupPage {
                                                 qsTr("It is only intended for DEVELOPERS. ") +
                                                 qsTr("Run bench tests without props first. ") +
                                                 qsTr("Do NOT fly this without additional safety precautions. ") +
-                                                qsTr("Follow the mailing list actively when using it.")
+                                                qsTr("Follow the forums actively when using it.")
                                     } else {
                                         firmwareWarningMessageVisible = false
                                     }
@@ -497,7 +486,7 @@ SetupPage {
                         } // Column
                     } // QGCFLickable
                 } // QGCViewDialog
-            } // Component - pixhawkFirmwareSelectDialogComponent
+            } // Component - firmwareSelectDialogComponent
 
             Component {
                 id: firmwareWarningDialog
diff --git a/src/VehicleSetup/FirmwareUpgradeController.cc b/src/VehicleSetup/FirmwareUpgradeController.cc
index 934d81e..61c8cd4 100644
--- a/src/VehicleSetup/FirmwareUpgradeController.cc
+++ b/src/VehicleSetup/FirmwareUpgradeController.cc
@@ -62,7 +62,7 @@ FirmwareUpgradeController::FirmwareUpgradeController(void)
     , _downloadManager                  (nullptr)
     , _downloadNetworkReply             (nullptr)
     , _statusLog                        (nullptr)
-    , _selectedFirmwareBuildType             (StableFirmware)
+    , _selectedFirmwareBuildType        (StableFirmware)
     , _image                            (nullptr)
     , _apmBoardDescriptionReplaceText   ("<APMBoardDescription>")
     , _apmChibiOSSetting                (qgcApp()->toolbox()->settingsManager()->firmwareUpgradeSettings()->apmChibiOS())
@@ -738,7 +738,6 @@ void FirmwareUpgradeController::setSelectedFirmwareBuildType(FirmwareBuildType_t
 void FirmwareUpgradeController::_buildAPMFirmwareNames(void)
 {
 #if !defined(NO_ARDUPILOT_DIALECT)
-
     bool                    chibios =           _apmChibiOSSetting->rawValue().toInt() == 0;
     FirmwareVehicleType_t   vehicleType =       static_cast<FirmwareVehicleType_t>(_apmVehicleTypeSetting->rawValue().toInt());
     QString                 boardDescription =  _boardInfo.description();
@@ -746,6 +745,10 @@ void FirmwareUpgradeController::_buildAPMFirmwareNames(void)
     quint16                 boardPID =          _boardInfo.productIdentifier();
     uint32_t                rawBoardId =        _bootloaderBoardID == Bootloader::boardIDPX4FMUV3 ? Bootloader::boardIDPX4FMUV2 : _bootloaderBoardID;
 
+    if (_boardType == QGCSerialPortInfo::BoardTypePX4Flow) {
+        return;
+    }
+
     qCDebug(FirmwareUpgradeLog) << QStringLiteral("_buildAPMFirmwareNames description(%1) vid(%2/0x%3) pid(%4/0x%5)").arg(boardDescription).arg(boardVID).arg(boardVID, 1, 16).arg(boardPID).arg(boardPID, 1, 16);
 
     _apmFirmwareNames.clear();