diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 50d92ecd2..dd49ec04d 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -496,11 +496,19 @@ public class Editor extends JFrame implements RunnerListener { item = newJMenuItem("Upload to I/O Board", 'U'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - handleExport(); + handleExport(false); } }); fileMenu.add(item); +// item = newJMenuItemShift("Upload to I/O Board (verbose)", 'U'); +// item.addActionListener(new ActionListener() { +// public void actionPerformed(ActionEvent e) { +// handleExport(true); +// } +// }); +// fileMenu.add(item); + fileMenu.addSeparator(); item = newJMenuItemShift("Page Setup", 'P'); @@ -557,7 +565,7 @@ public class Editor extends JFrame implements RunnerListener { }); sketchMenu.add(item); -// item = newJMenuItemShift("Present", 'R'); +// item = newJMenuItemShift("Verify / Compile (verbose)", 'R'); // item.addActionListener(new ActionListener() { // public void actionPerformed(ActionEvent e) { // handleRun(true); @@ -1736,9 +1744,9 @@ public class Editor extends JFrame implements RunnerListener { /** * Implements Sketch → Run. - * @param present Set true to run in full screen (present mode). + * @param verbose Set true to run with verbose output. */ - public void handleRun(boolean present) { + public void handleRun(final boolean verbose) { internalCloseRunner(); running = true; toolbar.activate(EditorToolbar.RUN); @@ -1752,14 +1760,15 @@ public class Editor extends JFrame implements RunnerListener { console.clear(); } - presenting = present; + //presenting = present; SwingUtilities.invokeLater(new Runnable() { public void run() { try { sketch.compile(new Target( Base.getHardwarePath() + File.separator + "cores", - Preferences.get("boards." + Preferences.get("board") + ".build.core"))); + Preferences.get("boards." + Preferences.get("board") + ".build.core")), + verbose); statusNotice("Done compiling."); } catch (RunnerException e) { //statusError("Error compiling..."); @@ -2155,7 +2164,7 @@ public class Editor extends JFrame implements RunnerListener { * Made synchronized to (hopefully) avoid problems of people * hitting export twice, quickly, and horking things up. */ - synchronized public void handleExport() { + synchronized public void handleExport(final boolean verbose) { //if (!handleExportCheckModified()) return; toolbar.activate(EditorToolbar.EXPORT); @@ -2173,7 +2182,8 @@ public class Editor extends JFrame implements RunnerListener { boolean success = sketch.exportApplet(new Target( Base.getHardwarePath() + File.separator + "cores", - Preferences.get("boards." + Preferences.get("board") + ".build.core"))); + Preferences.get("boards." + Preferences.get("board") + ".build.core")), + verbose); if (success) { statusNotice("Done uploading."); } else { diff --git a/app/src/processing/app/EditorToolbar.java b/app/src/processing/app/EditorToolbar.java index 43347c516..38d8d5648 100644 --- a/app/src/processing/app/EditorToolbar.java +++ b/app/src/processing/app/EditorToolbar.java @@ -340,7 +340,7 @@ public class EditorToolbar extends JComponent implements MouseInputListener { break; case EXPORT: - editor.handleExport(); + editor.handleExport(e.isShiftDown()); break; case SERIAL: diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index a07ddc250..bde6b8dd3 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -1140,7 +1140,9 @@ public class Sketch { * X. afterwards, some of these steps need a cleanup function * */ - protected String compile(Target target) throws RunnerException { + protected String compile(Target target, boolean verbose) + throws RunnerException { + String name; // make sure the user didn't hide the sketch folder @@ -1173,7 +1175,7 @@ public class Sketch { cleanup(); // handle preprocessing the main file's code - name = build(tempBuildFolder.getAbsolutePath(), target); + name = build(tempBuildFolder.getAbsolutePath(), target, verbose); size(tempBuildFolder.getAbsolutePath(), name); return name; @@ -1364,29 +1366,31 @@ public class Sketch { * * @return null if compilation failed, main class name if not */ - public String build(String buildPath, Target target) throws RunnerException { + public String build(String buildPath, Target target, boolean verbose) + throws RunnerException { + // run the preprocessor String primaryClassName = preprocess(buildPath, target); // compile the program. errors will happen as a RunnerException // that will bubble up to whomever called build(). Compiler compiler = new Compiler(); - if (compiler.compile(this, buildPath, primaryClassName, target)) { + if (compiler.compile(this, buildPath, primaryClassName, target, verbose)) { return primaryClassName; } return null; } - protected boolean exportApplet(Target target) throws Exception { - return exportApplet(new File(folder, "applet").getAbsolutePath(), target); + protected boolean exportApplet(Target target, boolean verbose) throws Exception { + return exportApplet(new File(folder, "applet").getAbsolutePath(), target, verbose); } /** * Handle export to applet. */ - public boolean exportApplet(String appletPath, Target target) + public boolean exportApplet(String appletPath, Target target, boolean verbose) throws RunnerException, IOException { // Make sure the user didn't hide the sketch folder @@ -1410,7 +1414,7 @@ public class Sketch { appletFolder.mkdirs(); // build the sketch - String foundName = build(appletFolder.getPath(), target); + String foundName = build(appletFolder.getPath(), target, false); // (already reported) error during export, exit this function if (foundName == null) return false; @@ -1424,7 +1428,7 @@ public class Sketch { // } size(appletFolder.getPath(), foundName); - upload(appletFolder.getPath(), foundName); + upload(appletFolder.getPath(), foundName, verbose); return true; } @@ -1449,7 +1453,7 @@ public class Sketch { } - protected String upload(String buildPath, String suggestedClassName) + protected String upload(String buildPath, String suggestedClassName, boolean verbose) throws RunnerException { Uploader uploader; @@ -1458,7 +1462,8 @@ public class Sketch { // uploader = new AvrdudeUploader(); boolean success = uploader.uploadUsingPreferences(buildPath, - suggestedClassName); + suggestedClassName, + verbose); return success ? suggestedClassName : null; } diff --git a/app/src/processing/app/debug/AvrdudeUploader.java b/app/src/processing/app/debug/AvrdudeUploader.java index 65726facc..45151b391 100755 --- a/app/src/processing/app/debug/AvrdudeUploader.java +++ b/app/src/processing/app/debug/AvrdudeUploader.java @@ -42,8 +42,9 @@ public class AvrdudeUploader extends Uploader { } // XXX: add support for uploading sketches using a programmer - public boolean uploadUsingPreferences(String buildPath, String className) + public boolean uploadUsingPreferences(String buildPath, String className, boolean verbose) throws RunnerException { + this.verbose = verbose; String uploadUsing = Preferences.get("boards." + Preferences.get("board") + ".upload.using"); if (uploadUsing == null) { // fall back on global preference @@ -153,7 +154,7 @@ public class AvrdudeUploader extends Uploader { commandDownloader.add("-C" + Base.getHardwarePath() + "/tools/avr/etc/avrdude.conf"); } - if (Preferences.getBoolean("upload.verbose")) { + if (verbose || Preferences.getBoolean("upload.verbose")) { commandDownloader.add("-v"); commandDownloader.add("-v"); commandDownloader.add("-v"); diff --git a/app/src/processing/app/debug/Compiler.java b/app/src/processing/app/debug/Compiler.java index eae1910df..d5d59d2a8 100644 --- a/app/src/processing/app/debug/Compiler.java +++ b/app/src/processing/app/debug/Compiler.java @@ -43,6 +43,7 @@ public class Compiler implements MessageConsumer { Sketch sketch; String buildPath; String primaryClassName; + boolean verbose; RunnerException exception; @@ -61,10 +62,12 @@ public class Compiler implements MessageConsumer { public boolean compile(Sketch sketch, String buildPath, String primaryClassName, - Target target) throws RunnerException { + Target target, + boolean verbose) throws RunnerException { this.sketch = sketch; this.buildPath = buildPath; this.primaryClassName = primaryClassName; + this.verbose = verbose; // the pms object isn't used for anything but storage MessageStream pms = new MessageStream(this); @@ -223,7 +226,7 @@ public class Compiler implements MessageConsumer { commandList.toArray(command); int result = 0; - if (Preferences.getBoolean("build.verbose")) { + if (verbose || Preferences.getBoolean("build.verbose")) { for(int j = 0; j < command.length; j++) { System.out.print(command[j] + " "); } diff --git a/app/src/processing/app/debug/Uploader.java b/app/src/processing/app/debug/Uploader.java index 624d58772..e91dc2c71 100755 --- a/app/src/processing/app/debug/Uploader.java +++ b/app/src/processing/app/debug/Uploader.java @@ -56,11 +56,13 @@ public abstract class Uploader implements MessageConsumer { static InputStream serialInput; static OutputStream serialOutput; //int serial; // last byte of data received + + boolean verbose; public Uploader() { } - public abstract boolean uploadUsingPreferences(String buildPath, String className) + public abstract boolean uploadUsingPreferences(String buildPath, String className, boolean verbose) throws RunnerException; public abstract boolean burnBootloader(String programmer) throws RunnerException; @@ -117,7 +119,7 @@ public abstract class Uploader implements MessageConsumer { commandArray[0] = avrBasePath + commandArray[0]; - if (Preferences.getBoolean("upload.verbose")) { + if (verbose || Preferences.getBoolean("upload.verbose")) { for(int i = 0; i < commandArray.length; i++) { System.out.print(commandArray[i] + " "); }