|
|
|
@ -196,47 +196,66 @@ ApplicationWindow {
@@ -196,47 +196,66 @@ ApplicationWindow {
|
|
|
|
|
mainWindow.close() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// On attempting an application close we check for: |
|
|
|
|
// Unsaved missions - then |
|
|
|
|
// Pending parameter writes - then |
|
|
|
|
// Active connections |
|
|
|
|
onClosing: { |
|
|
|
|
if (!_forceClose) { |
|
|
|
|
unsavedMissionCloseDialog.check() |
|
|
|
|
close.accepted = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MessageDialog { |
|
|
|
|
id: activeConnectionsCloseDialog |
|
|
|
|
id: unsavedMissionCloseDialog |
|
|
|
|
title: qsTr("%1 close").arg(QGroundControl.appName) |
|
|
|
|
text: qsTr("There are still active connections to vehicles. Are you sure you want to exit?") |
|
|
|
|
standardButtons: StandardButton.Yes | StandardButton.Cancel |
|
|
|
|
text: qsTr("You have a mission edit in progress which has not been saved/sent. If you close you will lose changes. Are you sure you want to close?") |
|
|
|
|
standardButtons: StandardButton.Yes | StandardButton.No |
|
|
|
|
modality: Qt.ApplicationModal |
|
|
|
|
visible: false |
|
|
|
|
onYes: finishCloseProcess() |
|
|
|
|
onYes: pendingParameterWritesCloseDialog.check() |
|
|
|
|
function check() { |
|
|
|
|
if (QGroundControl.multiVehicleManager.activeVehicle) { |
|
|
|
|
activeConnectionsCloseDialog.open() |
|
|
|
|
if (planMasterControllerPlan && planMasterControllerPlan.dirty) { |
|
|
|
|
unsavedMissionCloseDialog.open() |
|
|
|
|
} else { |
|
|
|
|
finishCloseProcess() |
|
|
|
|
pendingParameterWritesCloseDialog.check() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//------------------------------------------------------------------------- |
|
|
|
|
//-- Check for unsaved missions |
|
|
|
|
|
|
|
|
|
onClosing: { |
|
|
|
|
// Check first for unsaved missions and active connections |
|
|
|
|
if (!_forceClose) { |
|
|
|
|
unsavedMissionCloseDialog.check() |
|
|
|
|
close.accepted = false |
|
|
|
|
MessageDialog { |
|
|
|
|
id: pendingParameterWritesCloseDialog |
|
|
|
|
title: qsTr("%1 close").arg(QGroundControl.appName) |
|
|
|
|
text: qsTr("You have pending parameter updates to a vehicle. If you close you will lose changes. Are you sure you want to close?") |
|
|
|
|
standardButtons: StandardButton.Yes | StandardButton.No |
|
|
|
|
modality: Qt.ApplicationModal |
|
|
|
|
visible: false |
|
|
|
|
onYes: activeConnectionsCloseDialog.check() |
|
|
|
|
function check() { |
|
|
|
|
for (var index=0; index<QGroundControl.multiVehicleManager.vehicles.count; index++) { |
|
|
|
|
if (QGroundControl.multiVehicleManager.vehicles.get(index).parameterManager.pendingWrites) { |
|
|
|
|
pendingParameterWritesCloseDialog.open() |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
activeConnectionsCloseDialog.check() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MessageDialog { |
|
|
|
|
id: unsavedMissionCloseDialog |
|
|
|
|
id: activeConnectionsCloseDialog |
|
|
|
|
title: qsTr("%1 close").arg(QGroundControl.appName) |
|
|
|
|
text: qsTr("You have a mission edit in progress which has not been saved/sent. If you close you will lose changes. Are you sure you want to close?") |
|
|
|
|
standardButtons: StandardButton.Yes | StandardButton.No |
|
|
|
|
text: qsTr("There are still active connections to vehicles. Are you sure you want to exit?") |
|
|
|
|
standardButtons: StandardButton.Yes | StandardButton.Cancel |
|
|
|
|
modality: Qt.ApplicationModal |
|
|
|
|
visible: false |
|
|
|
|
onYes: activeConnectionsCloseDialog.check() |
|
|
|
|
onYes: finishCloseProcess() |
|
|
|
|
function check() { |
|
|
|
|
if (planMasterControllerPlan && planMasterControllerPlan.dirty) { |
|
|
|
|
unsavedMissionCloseDialog.open() |
|
|
|
|
if (QGroundControl.multiVehicleManager.activeVehicle) { |
|
|
|
|
activeConnectionsCloseDialog.open() |
|
|
|
|
} else { |
|
|
|
|
activeConnectionsCloseDialog.check() |
|
|
|
|
finishCloseProcess() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|