Add remove confirmation back in ModelMenuContributor
This commit is contained in:
parent
2f34f9a687
commit
ccddf3ccfb
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import ctbrec.ui.controls.Dialogs;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -42,9 +43,9 @@ public class ModelMenuContributor {
|
|||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ModelMenuContributor.class);
|
||||
|
||||
private Config config;
|
||||
private Recorder recorder;
|
||||
private Node source;
|
||||
private final Config config;
|
||||
private final Recorder recorder;
|
||||
private final Node source;
|
||||
private Consumer<Model> startStopCallback;
|
||||
private TriConsumer<Model, Boolean, Boolean> followCallback;
|
||||
private Consumer<Model> ignoreCallback;
|
||||
|
@ -275,8 +276,14 @@ public class ModelMenuContributor {
|
|||
}
|
||||
|
||||
private void recordLater(List<Model> selectedModels, boolean recordLater) {
|
||||
selectedModels.forEach(m -> m.setMarkedForLaterRecording(recordLater));
|
||||
new MarkForLaterRecordingAction(source, selectedModels, recordLater, recorder).execute(m -> executeCallback());
|
||||
var confirmed = true;
|
||||
if (!recordLater) {
|
||||
confirmed = showRemoveConfirmationDialog(selectedModels);
|
||||
}
|
||||
if (confirmed) {
|
||||
selectedModels.forEach(m -> m.setMarkedForLaterRecording(recordLater));
|
||||
new MarkForLaterRecordingAction(source, selectedModels, recordLater, recorder).execute(m -> executeCallback());
|
||||
}
|
||||
}
|
||||
|
||||
private void addStartPaused(ContextMenu menu, List<Model> selectedModels) {
|
||||
|
@ -379,13 +386,27 @@ public class ModelMenuContributor {
|
|||
}
|
||||
|
||||
private void stopRecording(List<Model> models) {
|
||||
new StopRecordingAction(source, models, recorder).execute()
|
||||
.whenComplete((r, ex) -> {
|
||||
if (ex != null) {
|
||||
LOG.error("Error while stopping recordings", ex);
|
||||
}
|
||||
r.stream().map(Result::getModel).forEach(startStopCallback);
|
||||
});
|
||||
var confirmed = showRemoveConfirmationDialog(models);
|
||||
if (confirmed) {
|
||||
new StopRecordingAction(source, models, recorder).execute()
|
||||
.whenComplete((r, ex) -> {
|
||||
if (ex != null) {
|
||||
LOG.error("Error while stopping recordings", ex);
|
||||
}
|
||||
r.stream().map(Result::getModel).forEach(startStopCallback);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private boolean showRemoveConfirmationDialog(List<Model> models) {
|
||||
if (Config.getInstance().getSettings().confirmationForDangerousActions) {
|
||||
int n = models.size();
|
||||
String plural = n > 1 ? "s" : "";
|
||||
String header = "This will remove " + n + " model" + plural;
|
||||
return Dialogs.showConfirmDialog("Stop Recording", "Continue?", header, source.getScene());
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void executeCallback() {
|
||||
|
|
Loading…
Reference in New Issue