From 27f717fa8492ffc168669f63c6b3ea6674e75400 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 9500ddd695a..037e567f33b 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -133,11 +133,18 @@ public boolean test(SketchController controller) { } } - 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; } } @@ -666,11 +673,12 @@ private void buildSketchMenu(JMenu sketchMenu) { 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);