diff --git a/src/FirmwarePlugin/FirmwarePlugin.cc b/src/FirmwarePlugin/FirmwarePlugin.cc index 52086f1..057aca8 100644 --- a/src/FirmwarePlugin/FirmwarePlugin.cc +++ b/src/FirmwarePlugin/FirmwarePlugin.cc @@ -717,9 +717,7 @@ void FirmwarePlugin::_versionFileDownloadFinished(QString& remoteFile, QString& int currType = vehicle->firmwareVersionType(); // Check if lower version than stable or same version but different type - if (vehicle->versionCompare(version) < 0 - || (vehicle->versionCompare(version) == 0 && currType != FIRMWARE_VERSION_TYPE_OFFICIAL)) - { + if (currType == FIRMWARE_VERSION_TYPE_OFFICIAL && vehicle->versionCompare(version) < 0) { const static QString currentVersion = QString("%1.%2.%3").arg(vehicle->firmwareMajorVersion()) .arg(vehicle->firmwareMinorVersion()) .arg(vehicle->firmwarePatchVersion()); diff --git a/src/QmlControls/PreFlightCheckGroup.qml b/src/QmlControls/PreFlightCheckGroup.qml index e1b1dd1..0f5b872 100644 --- a/src/QmlControls/PreFlightCheckGroup.qml +++ b/src/QmlControls/PreFlightCheckGroup.qml @@ -22,7 +22,7 @@ Column { property alias _checked: header.checked - onPassedChanged: parent.groupPassedChanged(ObjectModel.index) + onPassedChanged: parent.groupPassedChanged(ObjectModel.index, passed) Component.onCompleted: { enabled = _checked diff --git a/src/QmlControls/PreFlightCheckList.qml b/src/QmlControls/PreFlightCheckList.qml index b37caf1..f36316b 100644 --- a/src/QmlControls/PreFlightCheckList.qml +++ b/src/QmlControls/PreFlightCheckList.qml @@ -23,31 +23,31 @@ Rectangle { property alias model: checkListRepeater.model - property bool _passed: false + property bool _passed: false - // We delay the updates when a group passes so the user can see all items green for a moment prior to hiding - Timer { - id: delayedGroupPassed - interval: 750 - - property int index - - onTriggered: { + function _handleGroupPassedChanged(index, passed) { + if (passed) { + // Collapse current group var group = checkListRepeater.itemAt(index) group._checked = false + // Expand next group if (index + 1 < checkListRepeater.count) { group = checkListRepeater.itemAt(index + 1) group.enabled = true group._checked = true } - for (var i=0; i<checkListRepeater.count; i++) { - if (!checkListRepeater.itemAt(i).passed) { - _passed = false - return - } - } - _passed = true } + _passed = passed + } + + // We delay the updates when a group passes so the user can see all items green for a moment prior to hiding + Timer { + id: delayedGroupPassed + interval: 750 + + property int index + + onTriggered: _handleGroupPassedChanged(index, true /* passed */) } Column { @@ -59,9 +59,13 @@ Rectangle { anchors.topMargin: 0.6*ScreenTools.defaultFontPixelWidth anchors.leftMargin: 1.5*ScreenTools.defaultFontPixelWidth - function groupPassedChanged(index) { - delayedGroupPassed.index = index - delayedGroupPassed.restart() + function groupPassedChanged(index, passed) { + if (passed) { + delayedGroupPassed.index = index + delayedGroupPassed.restart() + } else { + _handleGroupPassedChanged(index, passed) + } } // Header/title of checklist