From 4d26ec85e68f254e9d730ad9bf4d7c561a4e661a Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Mon, 29 Oct 2018 16:46:23 +0100 Subject: [PATCH] Make "Export compiled binary" comply with specifications --- app/src/processing/app/Editor.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 5a53e90bd..e0abd62e5 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -132,11 +132,18 @@ public class Editor extends JFrame implements RunnerListener { } } - private static class ShouldSaveReadOnly implements Predicate { + private static class CanExportInSketchFolder + implements Predicate { @Override - public boolean test(SketchController sketch) { - return sketch.isReadOnly(); + public boolean test(SketchController controller) { + if (controller.isReadOnly()) { + return false; + } + if (controller.getSketch().isModified()) { + return PreferencesData.getBoolean("editor.save_on_verify"); + } + return true; } } @@ -665,11 +672,12 @@ public class Editor extends JFrame implements RunnerListener { item = newJMenuItemAlt(tr("Export compiled Binary"), 'S'); item.addActionListener(event -> { - if (new ShouldSaveReadOnly().test(sketchController) && !handleSave(true)) { + if (!(new CanExportInSketchFolder().test(sketchController))) { System.out.println(tr("Export canceled, changes must first be saved.")); return; } - handleRun(false, new ShouldSaveReadOnly(), presentAndSaveHandler, runAndSaveHandler); + handleRun(false, new CanExportInSketchFolder(), presentAndSaveHandler, runAndSaveHandler); + }); sketchMenu.add(item);