forked from j62/ctbrec
1
0
Fork 0

Add optional confirmation dialog for stop recording action

This commit is contained in:
0xb00bface 2020-12-27 15:16:36 +01:00
parent b6db623078
commit 0d2826ebf7
3 changed files with 25 additions and 7 deletions

View File

@ -12,7 +12,7 @@ public class StopRecordingAction extends ModelMassEditAction {
public StopRecordingAction(Node source, List<? extends Model> models, Recorder recorder) { public StopRecordingAction(Node source, List<? extends Model> models, Recorder recorder) {
super(source, models); super(source, models);
action = (m) -> { action = m -> {
try { try {
recorder.stopRecording(m); recorder.stopRecording(m);
} catch(Exception e) { } catch(Exception e) {

View File

@ -774,11 +774,20 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
} }
private void stopAction(List<JavaFxModel> selectedModels) { private void stopAction(List<JavaFxModel> selectedModels) {
List<Model> models = selectedModels.stream().map(JavaFxModel::getDelegate).collect(Collectors.toList()); boolean confirmed = true;
new StopRecordingAction(getTabPane(), models, recorder).execute(m -> Platform.runLater(() -> { if (Config.getInstance().getSettings().confirmationForDangerousActions) {
table.getSelectionModel().clearSelection(table.getItems().indexOf(m)); int n = selectedModels.size();
table.getItems().remove(m); 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<Model> 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<JavaFxModel> selectedModels) { private void pauseRecording(List<JavaFxModel> selectedModels) {

View File

@ -479,7 +479,16 @@ public class RecordingsTab extends Tab implements TabSelectionListener {
} }
private void stopRecording(List<Model> selectedModels) { private void stopRecording(List<Model> 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<Model> selectedModels) { private void pauseRecording(List<Model> selectedModels) {