diff --git a/app/PdeEditor.java b/app/PdeEditor.java index 21ef36a07..b0fbcfd15 100644 --- a/app/PdeEditor.java +++ b/app/PdeEditor.java @@ -1233,8 +1233,11 @@ public class PdeEditor extends JFrame public void handleSave() { message("Saving..."); try { - sketch.save(); - message("Done Saving."); + if (sketch.save()) { + message("Done Saving."); + } else { + message(EMPTY); + } // rebuild sketch menu in case a save-as was forced sketchbook.rebuildMenu(); diff --git a/app/PdePreprocessor.java b/app/PdePreprocessor.java index d8eedbfd9..507a768b7 100644 --- a/app/PdePreprocessor.java +++ b/app/PdePreprocessor.java @@ -188,8 +188,8 @@ public class PdePreprocessor { // output the code // PdeEmitter emitter = new PdeEmitter(); - PrintStream stream = new PrintStream( - new FileOutputStream(buildPath + File.separator + name + ".java")); + File streamFile = new File(buildPath, name + ".java"); + PrintStream stream = new PrintStream(new FileOutputStream(streamFile)); writeHeader(stream, extraImports, name); diff --git a/app/PdeSketch.java b/app/PdeSketch.java index 20bdf0ccc..6857f3bd8 100644 --- a/app/PdeSketch.java +++ b/app/PdeSketch.java @@ -105,7 +105,7 @@ public class PdeSketch { } folder = new File(new File(path).getParent()); - System.out.println("sketch dir is " + folder); + //System.out.println("sketch dir is " + folder); codeFolder = new File(folder, "code"); dataFolder = new File(folder, "data"); @@ -262,14 +262,14 @@ public class PdeSketch { /** * Save all code in the current sketch. */ - public void save() throws IOException { + public boolean save() throws IOException { // first get the contents of the editor text area if (current.modified) { current.program = editor.getText(); } // see if actually modified - if (!modified) return; + if (!modified) return false; // check if the files are read-only. // if so, need to first do a "save as". @@ -278,13 +278,14 @@ public class PdeSketch { "Some files are marked \"read-only\", so you'll\n" + "need to re-save this sketch to another location."); // if the user cancels, give up on the save() - if (!saveAs()) return; + if (!saveAs()) return false; } for (int i = 0; i < codeCount; i++) { if (code[i].modified) code[i].save(); } calcModified(); + return true; } @@ -703,6 +704,7 @@ public class PdeSketch { try { // if (i != 0) preproc will fail if a pde file is not // java mode, since that's required + //System.out.println("build path is " + buildPath); String className = preprocessor.write(code[i].program, buildPath, (i == 0) ? suggestedClassName : null, @@ -895,7 +897,7 @@ public class PdeSketch { } // build the sketch - String foundName = build(name, appletDir.getPath()); + String foundName = build(appletDir.getPath(), name); // (already reported) error during export, exit this function if (foundName == null) return false; @@ -959,7 +961,7 @@ public class PdeSketch { StringBuffer sources = new StringBuffer(); for (int i = 0; i < codeCount; i++) { - sources.append("" + + sources.append("" + code[i].name + " "); } @@ -969,7 +971,15 @@ public class PdeSketch { // @@sketch@@, @@width@@, @@height@@, @@archive@@, @@source@@ - InputStream is = PdeBase.getStream("applet.html"); + InputStream is = null; + // if there is an applet.html file in the sketch folder, use that + File customHtml = new File(folder, "applet.html"); + if (customHtml.exists()) { + is = new FileInputStream(customHtml); + } + if (is == null) { + is = PdeBase.getStream("applet.html"); + } BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String line = null; diff --git a/todo.txt b/todo.txt index 9031631e7..c4da77658 100644 --- a/todo.txt +++ b/todo.txt @@ -93,11 +93,16 @@ X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs X after using sketchbook menu as popup, disappears from file menu X probably just need to build two X the popup from the toolbar needs an "Open..." on it as well +X make save() return true/false so it doesn't say "saved" when it hasn't +X export is badly broken, fix it.. file names were backwards +X if 'applet.html' is in sketch folder, use that as the template _ dashes shouldn't be allowed in filenames for sketches _ actually, lost the naming stuff because now using FileDialog _ this also needs to be checked when building the sketch menu +_ make export save to multiple files + _ what happens when the .pde file isn't named _ the same as the enclosing folder? _ maybe put up a window saying no way, and ask: @@ -108,13 +113,11 @@ _ but need to deal with simply, not providing a new exception case _ write sketchbook.clean() _ write 'new text file' _ implement hide/unhide -_ export is badly broken _ get the console working again _ appendText is disabled due to NullPointerEx on startup _ ctrl-5 (at least on xp) is marking the current sketch as modified _ running present mode with a bug in the program hoses things _ make sure the program compiles before starting present mode -_ if 'applet.html' is in sketch folder, use that as the template _ re-implement history _ maybe bring back the prompt option for "new sketch"