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) {
super(source, models);
action = (m) -> {
action = m -> {
try {
recorder.stopRecording(m);
} catch(Exception e) {

View File

@ -774,12 +774,21 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
}
private void stopAction(List<JavaFxModel> selectedModels) {
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<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) {
List<Model> models = selectedModels.stream().map(JavaFxModel::getDelegate).collect(Collectors.toList());

View File

@ -479,8 +479,17 @@ public class RecordingsTab extends Tab implements TabSelectionListener {
}
private void stopRecording(List<Model> selectedModels) {
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) {
new PauseAction(getTabPane(), selectedModels, recorder).execute();