forked from j62/ctbrec
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.Optional;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ctbrec.ui.controls.Dialogs;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -42,9 +43,9 @@ public class ModelMenuContributor {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(ModelMenuContributor.class);
|
private static final Logger LOG = LoggerFactory.getLogger(ModelMenuContributor.class);
|
||||||
|
|
||||||
private Config config;
|
private final Config config;
|
||||||
private Recorder recorder;
|
private final Recorder recorder;
|
||||||
private Node source;
|
private final Node source;
|
||||||
private Consumer<Model> startStopCallback;
|
private Consumer<Model> startStopCallback;
|
||||||
private TriConsumer<Model, Boolean, Boolean> followCallback;
|
private TriConsumer<Model, Boolean, Boolean> followCallback;
|
||||||
private Consumer<Model> ignoreCallback;
|
private Consumer<Model> ignoreCallback;
|
||||||
|
@ -275,9 +276,15 @@ public class ModelMenuContributor {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recordLater(List<Model> selectedModels, boolean recordLater) {
|
private void recordLater(List<Model> selectedModels, boolean recordLater) {
|
||||||
|
var confirmed = true;
|
||||||
|
if (!recordLater) {
|
||||||
|
confirmed = showRemoveConfirmationDialog(selectedModels);
|
||||||
|
}
|
||||||
|
if (confirmed) {
|
||||||
selectedModels.forEach(m -> m.setMarkedForLaterRecording(recordLater));
|
selectedModels.forEach(m -> m.setMarkedForLaterRecording(recordLater));
|
||||||
new MarkForLaterRecordingAction(source, selectedModels, recordLater, recorder).execute(m -> executeCallback());
|
new MarkForLaterRecordingAction(source, selectedModels, recordLater, recorder).execute(m -> executeCallback());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void addStartPaused(ContextMenu menu, List<Model> selectedModels) {
|
private void addStartPaused(ContextMenu menu, List<Model> selectedModels) {
|
||||||
if (!recorder.isTracked(selectedModels.get(0))) {
|
if (!recorder.isTracked(selectedModels.get(0))) {
|
||||||
|
@ -379,6 +386,8 @@ public class ModelMenuContributor {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stopRecording(List<Model> models) {
|
private void stopRecording(List<Model> models) {
|
||||||
|
var confirmed = showRemoveConfirmationDialog(models);
|
||||||
|
if (confirmed) {
|
||||||
new StopRecordingAction(source, models, recorder).execute()
|
new StopRecordingAction(source, models, recorder).execute()
|
||||||
.whenComplete((r, ex) -> {
|
.whenComplete((r, ex) -> {
|
||||||
if (ex != null) {
|
if (ex != null) {
|
||||||
|
@ -387,6 +396,18 @@ public class ModelMenuContributor {
|
||||||
r.stream().map(Result::getModel).forEach(startStopCallback);
|
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() {
|
private void executeCallback() {
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue