diff --git a/client/src/main/java/ctbrec/ui/action/StopRecordingAction.java b/client/src/main/java/ctbrec/ui/action/StopRecordingAction.java index cbe523e8..ca185e8d 100644 --- a/client/src/main/java/ctbrec/ui/action/StopRecordingAction.java +++ b/client/src/main/java/ctbrec/ui/action/StopRecordingAction.java @@ -12,7 +12,7 @@ public class StopRecordingAction extends ModelMassEditAction { public StopRecordingAction(Node source, List models, Recorder recorder) { super(source, models); - action = (m) -> { + action = m -> { try { recorder.stopRecording(m); } catch(Exception e) { diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java index d3baf7b7..a584d319 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java @@ -774,11 +774,20 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener { } private void stopAction(List selectedModels) { - List models = selectedModels.stream().map(JavaFxModel::getDelegate).collect(Collectors.toList()); - new StopRecordingAction(getTabPane(), models, recorder).execute(m -> Platform.runLater(() -> { - table.getSelectionModel().clearSelection(table.getItems().indexOf(m)); - table.getItems().remove(m); - })); + boolean confirmed = true; + if (Config.getInstance().getSettings().confirmationForDangerousActions) { + int n = selectedModels.size(); + String plural = n > 1 ? "s" : ""; + String header = "This will stop the recording of " + n + " model" + plural; + confirmed = Dialogs.showConfirmDialog("Stop Recording", "Continue?", header, table.getScene()); + } + if (confirmed) { + List models = selectedModels.stream().map(JavaFxModel::getDelegate).collect(Collectors.toList()); + new StopRecordingAction(getTabPane(), models, recorder).execute(m -> Platform.runLater(() -> { + table.getSelectionModel().clearSelection(table.getItems().indexOf(m)); + table.getItems().remove(m); + })); + } } private void pauseRecording(List selectedModels) { diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java index 52330553..738188c5 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java @@ -479,7 +479,16 @@ public class RecordingsTab extends Tab implements TabSelectionListener { } private void stopRecording(List selectedModels) { - new StopRecordingAction(getTabPane(), selectedModels, recorder).execute(); + boolean confirmed = true; + if (Config.getInstance().getSettings().confirmationForDangerousActions) { + int n = selectedModels.size(); + String plural = n > 1 ? "s" : ""; + String header = "This will stop the recording of " + n + " model" + plural; + confirmed = Dialogs.showConfirmDialog("Stop Recording", "Continue?", header, table.getScene()); + } + if (confirmed) { + new StopRecordingAction(getTabPane(), selectedModels, recorder).execute(); + } } private void pauseRecording(List selectedModels) {