From 4abfd9bdaa704714abc69ca041303f03059bf63a Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sat, 8 Aug 2015 10:56:37 -0400 Subject: [PATCH] prevent Export with examples and untitled/unsaved sketches --- build/shared/lib/languages/PDE.properties | 4 ++++ java/src/processing/mode/java/JavaEditor.java | 14 ++++++++++++++ todo.txt | 3 +-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/build/shared/lib/languages/PDE.properties b/build/shared/lib/languages/PDE.properties index 84f7900c9..0a8d528cc 100644 --- a/build/shared/lib/languages/PDE.properties +++ b/build/shared/lib/languages/PDE.properties @@ -217,6 +217,10 @@ export.full_screen = Full Screen export.embed_java = Embed Java export.embed_java.for = Embed Java for export.code_signing = Code Signing +export.messages.is_read_only = Sketch is Read-Only +export.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. +export.messages.cannot_export = Cannot Export +export.messages.cannot_export.description = You cannot export a sketch that has not been saved. # Find (Frame) find = Find diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 77aa23387..6dce2bcb2 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -1096,6 +1096,20 @@ public class JavaEditor extends Editor { * Bug 157 */ protected boolean handleExportCheckModified() { + if (sketch.isReadOnly()) { + // if the files are read-only, need to first do a "save as". + Base.showMessage(Language.text("export.messages.is_read_only"), + Language.text("export.messages.is_read_only.description")); + return false; + } + + // don't allow if untitled + if (sketch.isUntitled()) { + Base.showMessage(Language.text("export.messages.cannot_export"), + Language.text("export.messages.cannot_export.description")); + return false; + } + if (sketch.isModified()) { Object[] options = { Language.text("prompt.ok"), Language.text("prompt.cancel") }; int result = JOptionPane.showOptionDialog(this, diff --git a/todo.txt b/todo.txt index c0855cbd6..a3de020ca 100644 --- a/todo.txt +++ b/todo.txt @@ -5,8 +5,7 @@ X create sketchbook subfolders on startup X https://github.com/processing/processing/issues/3548 X save export settings to preferences X disable Export button when no platforms selected -_ export allowed with untitled sketches -_ also with examples? +X prevent Export with examples and untitled/unsaved sketches earlier/cleaning