mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
clean up prefs, remove old 32/64-bit stuff from OS X
This commit is contained in:
@@ -117,7 +117,6 @@ public class Preferences {
|
||||
JCheckBox memoryOverrideBox;
|
||||
JTextField memoryField;
|
||||
JCheckBox checkUpdatesBox;
|
||||
//JTextField fontSizeField;
|
||||
JComboBox fontSizeField;
|
||||
JComboBox consoleSizeField;
|
||||
JCheckBox inputMethodBox;
|
||||
@@ -131,13 +130,9 @@ public class Preferences {
|
||||
JCheckBox importSuggestionsBox;
|
||||
JCheckBox codeCompletionTriggerBox;
|
||||
|
||||
//JRadioButton bitsThirtyTwoButton;
|
||||
//JRadioButton bitsSixtyFourButton;
|
||||
|
||||
JComboBox displaySelectionBox;
|
||||
int displayCount;
|
||||
|
||||
//Font[] monoFontList;
|
||||
String[] monoFontFamilies;
|
||||
JComboBox fontSelectionBox;
|
||||
|
||||
@@ -168,16 +163,6 @@ public class Preferences {
|
||||
// check for platform-specific properties in the defaults
|
||||
String platformExt = "." + PConstants.platformNames[PApplet.platform]; //$NON-NLS-1$
|
||||
int platformExtLength = platformExt.length();
|
||||
// Enumeration e = table.keys();
|
||||
// while (e.hasMoreElements()) {
|
||||
// String key = (String) e.nextElement();
|
||||
// if (key.endsWith(platformExt)) {
|
||||
// // this is a key specific to a particular platform
|
||||
// String actualKey = key.substring(0, key.length() - platformExtLength);
|
||||
// String value = get(key);
|
||||
// table.put(actualKey, value);
|
||||
// }
|
||||
// }
|
||||
|
||||
// Get a list of keys that are specific to this platform
|
||||
ArrayList<String> platformKeys = new ArrayList<String>();
|
||||
@@ -201,17 +186,6 @@ public class Preferences {
|
||||
// other things that have to be set explicitly for the defaults
|
||||
setColor("run.window.bgcolor", SystemColor.control); //$NON-NLS-1$
|
||||
|
||||
// Load a prefs file if specified on the command line
|
||||
// if (commandLinePrefs != null) {
|
||||
// try {
|
||||
// load(new FileInputStream(commandLinePrefs));
|
||||
//
|
||||
// } catch (Exception poe) {
|
||||
// Base.showError("Error",
|
||||
// "Could not read preferences from " +
|
||||
// commandLinePrefs, poe);
|
||||
// }
|
||||
// } else if (!Base.isCommandLine()) {
|
||||
// next load user preferences file
|
||||
preferencesFile = Base.getSettingsFile(PREFS_FILE);
|
||||
if (!preferencesFile.exists()) {
|
||||
@@ -232,7 +206,6 @@ public class Preferences {
|
||||
preferencesFile.getAbsolutePath() +
|
||||
" and restart Processing.", ex);
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
PApplet.useNativeSelect =
|
||||
@@ -257,11 +230,6 @@ public class Preferences {
|
||||
dialog = new JFrame("Preferences");
|
||||
dialog.setResizable(false);
|
||||
|
||||
// GroupLayout layout = new GroupLayout(getContentPane());
|
||||
// dialog.getContentPane().setLayout(layout);
|
||||
// layout.setAutoCreateGaps(true);
|
||||
// layout.setAutoCreateContainerGaps(true);
|
||||
|
||||
Container pain = dialog.getContentPane();
|
||||
pain.setLayout(null);
|
||||
|
||||
@@ -296,11 +264,6 @@ public class Preferences {
|
||||
PApplet.selectFolder("Select new sketchbook location",
|
||||
"sketchbookCallback", dflt,
|
||||
Preferences.this, dialog);
|
||||
// File file =
|
||||
// Base.selectFolder("Select new sketchbook location", dflt, dialog);
|
||||
// if (file != null) {
|
||||
// sketchbookLocationField.setText(file.getAbsolutePath());
|
||||
// }
|
||||
}
|
||||
});
|
||||
pain.add(button);
|
||||
@@ -357,12 +320,9 @@ public class Preferences {
|
||||
|
||||
label = new JLabel("Editor font size: ");
|
||||
box.add(label);
|
||||
//fontSizeField = new JTextField(4);
|
||||
fontSizeField = new JComboBox<Integer>(FONT_SIZES);
|
||||
fontSizeField.setEditable(true);
|
||||
box.add(fontSizeField);
|
||||
// label = new JLabel(" (requires restart of Processing)");
|
||||
// box.add(label);
|
||||
box.add(Box.createHorizontalStrut(GUI_BETWEEN));
|
||||
|
||||
label = new JLabel("Console font size: ");
|
||||
@@ -374,9 +334,6 @@ public class Preferences {
|
||||
pain.add(box);
|
||||
d = box.getPreferredSize();
|
||||
box.setBounds(left, top, d.width, d.height);
|
||||
// Font editorFont = Preferences.getFont("editor.font");
|
||||
//fontSizeField.setText(String.valueOf(editorFont.getSize()));
|
||||
// fontSizeField.setSelectedItem(editorFont.getSize());
|
||||
fontSizeField.setSelectedItem(Preferences.getFont("editor.font.size"));
|
||||
top += d.height + GUI_BETWEEN;
|
||||
|
||||
@@ -509,8 +466,6 @@ public class Preferences {
|
||||
// [ ] Use smooth text in editor window
|
||||
|
||||
editorAntialiasBox = new JCheckBox("Use smooth text in editor window");
|
||||
// new JCheckBox("Use smooth text in editor window " +
|
||||
// "(requires restart of Processing)");
|
||||
pain.add(editorAntialiasBox);
|
||||
d = editorAntialiasBox.getPreferredSize();
|
||||
// adding +10 because ubuntu + jre 1.5 truncating items
|
||||
@@ -585,19 +540,6 @@ public class Preferences {
|
||||
top += d.height + GUI_BETWEEN;
|
||||
|
||||
|
||||
// // [ ] Use multiple .jar files when exporting applets
|
||||
//
|
||||
// exportSeparateBox =
|
||||
// new JCheckBox("Use multiple .jar files when exporting applets " +
|
||||
// "(ignored when using libraries)");
|
||||
// pain.add(exportSeparateBox);
|
||||
// d = exportSeparateBox.getPreferredSize();
|
||||
// // adding +10 because ubuntu + jre 1.5 truncating items
|
||||
// exportSeparateBox.setBounds(left, top, d.width + 10, d.height);
|
||||
// right = Math.max(right, left + d.width);
|
||||
// top += d.height + GUI_BETWEEN;
|
||||
|
||||
|
||||
// [ ] Delete previous application folder on export
|
||||
|
||||
deletePreviousBox =
|
||||
@@ -609,17 +551,7 @@ public class Preferences {
|
||||
top += d.height + GUI_BETWEEN;
|
||||
|
||||
|
||||
// // [ ] Use external editor
|
||||
//
|
||||
// externalEditorBox = new JCheckBox("Use external editor");
|
||||
// pain.add(externalEditorBox);
|
||||
// d = externalEditorBox.getPreferredSize();
|
||||
// externalEditorBox.setBounds(left, top, d.width + 10, d.height);
|
||||
// right = Math.max(right, left + d.width);
|
||||
// top += d.height + GUI_BETWEEN;
|
||||
|
||||
|
||||
// [ ] Use external editor
|
||||
// [ ] Hide tab/toolbar background image
|
||||
|
||||
whinyBox = new JCheckBox("Hide tab/toolbar background image (requires restart)");
|
||||
pain.add(whinyBox);
|
||||
@@ -672,30 +604,6 @@ public class Preferences {
|
||||
}
|
||||
|
||||
|
||||
// Launch programs as [ ] 32-bit [ ] 64-bit (Mac OS X only)
|
||||
|
||||
/*
|
||||
if (Base.isMacOS()) {
|
||||
box = Box.createHorizontalBox();
|
||||
label = new JLabel("Launch programs in ");
|
||||
box.add(label);
|
||||
bitsThirtyTwoButton = new JRadioButton("32-bit mode ");
|
||||
box.add(bitsThirtyTwoButton);
|
||||
bitsSixtyFourButton = new JRadioButton("64-bit mode");
|
||||
box.add(bitsSixtyFourButton);
|
||||
|
||||
ButtonGroup bg = new ButtonGroup();
|
||||
bg.add(bitsThirtyTwoButton);
|
||||
bg.add(bitsSixtyFourButton);
|
||||
|
||||
pain.add(box);
|
||||
d = box.getPreferredSize();
|
||||
box.setBounds(left, top, d.width, d.height);
|
||||
top += d.height + GUI_BETWEEN;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// More preferences are in the ...
|
||||
|
||||
label = new JLabel("More preferences can be edited directly in the file");
|
||||
@@ -889,52 +797,12 @@ public class Preferences {
|
||||
System.err.println("Ignoring bad memory setting");
|
||||
}
|
||||
|
||||
/*
|
||||
// was gonna use this to check memory settings,
|
||||
// but it quickly gets much too messy
|
||||
if (getBoolean("run.options.memory")) {
|
||||
Process process = Runtime.getRuntime().exec(new String[] {
|
||||
"java", "-Xms" + memoryMin + "m", "-Xmx" + memoryMax + "m"
|
||||
});
|
||||
processInput = new SystemOutSiphon(process.getInputStream());
|
||||
processError = new MessageSiphon(process.getErrorStream(), this);
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
// If a change has been made between 32- and 64-bit, the libraries need
|
||||
// to be reloaded so that their native paths are set correctly.
|
||||
if (Base.isMacOS()) {
|
||||
String oldBits = get("run.options.bits"); //$NON-NLS-1$
|
||||
String newBits = bitsThirtyTwoButton.isSelected() ? "32" : "64"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
if (!oldBits.equals(newBits)) {
|
||||
set("run.options.bits", newBits); //$NON-NLS-1$
|
||||
for (Mode m : base.getModeList()) {
|
||||
m.rebuildLibraryList();
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Don't change anything if the user closes the window before fonts load
|
||||
if (fontSelectionBox.isEnabled()) {
|
||||
String fontFamily = (String) fontSelectionBox.getSelectedItem();
|
||||
set("editor.font.family", fontFamily);
|
||||
}
|
||||
|
||||
/*
|
||||
String newSizeText = fontSizeField.getText();
|
||||
try {
|
||||
int newSize = Integer.parseInt(newSizeText.trim());
|
||||
//String pieces[] = PApplet.split(get("editor.font"), ','); //$NON-NLS-1$
|
||||
//pieces[2] = String.valueOf(newSize);
|
||||
//set("editor.font", PApplet.join(pieces, ',')); //$NON-NLS-1$
|
||||
set("editor.font.size", String.valueOf(newSize));
|
||||
|
||||
} catch (Exception e) {
|
||||
Base.log("Ignoring invalid font size " + newSizeText); //$NON-NLS-1$
|
||||
}
|
||||
*/
|
||||
try {
|
||||
Object selection = fontSizeField.getSelectedItem();
|
||||
if (selection instanceof String) {
|
||||
@@ -988,23 +856,11 @@ public class Preferences {
|
||||
warningsCheckerBox.setSelected(getBoolean("pdex.warningsEnabled"));
|
||||
codeCompletionBox.setSelected(getBoolean("pdex.ccEnabled"));
|
||||
codeCompletionTriggerBox.setSelected(getBoolean("pdex.ccTriggerEnabled"));
|
||||
// set all settings entry boxes to their actual status
|
||||
// exportSeparateBox.
|
||||
// setSelected(getBoolean("export.applet.separate_jar_files"));
|
||||
deletePreviousBox.
|
||||
setSelected(getBoolean("export.delete_target_folder")); //$NON-NLS-1$
|
||||
|
||||
//closingLastQuitsBox.
|
||||
// setSelected(getBoolean("sketchbook.closing_last_window_quits"));
|
||||
//sketchPromptBox.
|
||||
// setSelected(getBoolean("sketchbook.prompt"));
|
||||
//sketchCleanBox.
|
||||
// setSelected(getBoolean("sketchbook.auto_clean"));
|
||||
|
||||
sketchbookLocationField.
|
||||
setText(get("sketchbook.path")); //$NON-NLS-1$
|
||||
// externalEditorBox.
|
||||
// setSelected(getBoolean("editor.external"));
|
||||
checkUpdatesBox.
|
||||
setSelected(getBoolean("update.check")); //$NON-NLS-1$
|
||||
|
||||
@@ -1013,9 +869,7 @@ public class Preferences {
|
||||
|
||||
updateDisplayList();
|
||||
int displayNum = getInteger("run.display"); //$NON-NLS-1$
|
||||
// System.out.println("display is " + displayNum + ", d count is " + displayCount);
|
||||
if (displayNum >= 0 && displayNum < displayCount) {
|
||||
// System.out.println("setting num to " + displayNum);
|
||||
displaySelectionBox.setSelectedIndex(displayNum);
|
||||
}
|
||||
|
||||
@@ -1037,22 +891,6 @@ public class Preferences {
|
||||
memoryField.
|
||||
setText(get("run.options.memory.maximum")); //$NON-NLS-1$
|
||||
|
||||
/*
|
||||
if (Base.isMacOS()) {
|
||||
String bits = Preferences.get("run.options.bits"); //$NON-NLS-1$
|
||||
if (bits.equals("32")) { //$NON-NLS-1$
|
||||
bitsThirtyTwoButton.setSelected(true);
|
||||
} else if (bits.equals("64")) { //$NON-NLS-1$
|
||||
bitsSixtyFourButton.setSelected(true);
|
||||
}
|
||||
// in case we go back and support OS X 10.5...
|
||||
if (System.getProperty("os.version").startsWith("10.5")) { //$NON-NLS-1$ //$NON-NLS-2$
|
||||
bitsSixtyFourButton.setSelected(true);
|
||||
bitsThirtyTwoButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if (autoAssociateBox != null) {
|
||||
autoAssociateBox.
|
||||
setSelected(getBoolean("platform.auto_file_type_associations")); //$NON-NLS-1$
|
||||
@@ -1080,37 +918,11 @@ public class Preferences {
|
||||
|
||||
|
||||
void initFontList() {
|
||||
/*
|
||||
if (monoFontList == null) {
|
||||
monoFontList = Toolkit.getMonoFontList().toArray(new Font[0]);
|
||||
fontSelectionBox.setModel(new DefaultComboBoxModel(monoFontList));
|
||||
fontSelectionBox.setRenderer(new FontNamer());
|
||||
|
||||
// Preferred size just makes it extend to the container
|
||||
//fontSelectionBox.setSize(fontSelectionBox.getPreferredSize());
|
||||
// Minimum size is better, but cuts things off (on OS X), so we add 20
|
||||
//Dimension minSize = fontSelectionBox.getMinimumSize();
|
||||
//Dimension minSize = fontSelectionBox.getPreferredSize();
|
||||
//fontSelectionBox.setSize(minSize.width + 20, minSize.height);
|
||||
fontSelectionBox.setEnabled(true);
|
||||
}
|
||||
*/
|
||||
if (monoFontFamilies == null) {
|
||||
monoFontFamilies = Toolkit.getMonoFontFamilies();
|
||||
fontSelectionBox.setModel(new DefaultComboBoxModel(monoFontFamilies));
|
||||
String family = get("editor.font.family");
|
||||
// System.out.println("family is " + family);
|
||||
// System.out.println("font sel items = " + fontSelectionBox.getItemCount());
|
||||
// for (int i = 0; i < fontSelectionBox.getItemCount(); i++) {
|
||||
// String item = (String) fontSelectionBox.getItemAt(i);
|
||||
// if (fontSelectionBox.getItemAt(i) == family) {
|
||||
// System.out.println("found at index " + i);
|
||||
// } else if (item.equals(family)) {
|
||||
// System.out.println("equals at index " + i);
|
||||
// } else {
|
||||
// System.out.println("nothing doing: " + item);
|
||||
// }
|
||||
// }
|
||||
|
||||
// Set a reasonable default, in case selecting the family fails
|
||||
fontSelectionBox.setSelectedItem("Monospaced");
|
||||
fontSelectionBox.setSelectedItem(family);
|
||||
@@ -1134,22 +946,6 @@ public class Preferences {
|
||||
}
|
||||
|
||||
|
||||
// Workaround for Apple bullsh*t caused by their not releasing a 32-bit
|
||||
// version of Java for Mac OS X 10.5.
|
||||
// static public String checkBits() {
|
||||
// String bits = Preferences.get("run.options.bits");
|
||||
// if (bits == null) {
|
||||
// if (System.getProperty("os.version").startsWith("10.5")) {
|
||||
// bits = "64";
|
||||
// } else {
|
||||
// bits = "32";
|
||||
// }
|
||||
// Preferences.set("run.options.bits", bits);
|
||||
// }
|
||||
// return bits;
|
||||
// }
|
||||
|
||||
|
||||
// .................................................................
|
||||
|
||||
|
||||
@@ -1208,20 +1004,8 @@ public class Preferences {
|
||||
|
||||
// all the information from preferences.txt
|
||||
|
||||
//static public String get(String attribute) {
|
||||
//return get(attribute, null);
|
||||
//}
|
||||
|
||||
static public String get(String attribute /*, String defaultValue */) {
|
||||
return table.get(attribute);
|
||||
/*
|
||||
//String value = (properties != null) ?
|
||||
//properties.getProperty(attribute) : applet.getParameter(attribute);
|
||||
String value = properties.getProperty(attribute);
|
||||
|
||||
return (value == null) ?
|
||||
defaultValue : value;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
@@ -1359,28 +1143,4 @@ public class Preferences {
|
||||
}
|
||||
return new Font("Dialog", Font.PLAIN, 12);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
static public SyntaxStyle getStyle(String what) {
|
||||
String str = get("editor." + what + ".style"); //, dflt); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
StringTokenizer st = new StringTokenizer(str, ","); //$NON-NLS-1$
|
||||
|
||||
String s = st.nextToken();
|
||||
if (s.indexOf("#") == 0) s = s.substring(1); //$NON-NLS-1$
|
||||
Color color = Color.DARK_GRAY;
|
||||
try {
|
||||
color = new Color(Integer.parseInt(s, 16));
|
||||
} catch (Exception e) { }
|
||||
|
||||
s = st.nextToken();
|
||||
boolean bold = (s.indexOf("bold") != -1); //$NON-NLS-1$
|
||||
// boolean italic = (s.indexOf("italic") != -1); //$NON-NLS-1$
|
||||
//System.out.println(what + " = " + str + " " + bold + " " + italic);
|
||||
|
||||
// return new SyntaxStyle(color, italic, bold);
|
||||
return new SyntaxStyle(color, bold);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -63,19 +63,6 @@ public class Runner implements MessageConsumer {
|
||||
// Thread transferring remote output stream to our output stream
|
||||
protected Thread outThread = null;
|
||||
|
||||
// Mode for tracing the Trace program (default= 0 off)
|
||||
// protected int debugTraceMode = 0;
|
||||
|
||||
// Do we want to watch assignments to fields
|
||||
// protected boolean watchFields = false;
|
||||
|
||||
// // Class patterns for which we don't want events
|
||||
// protected String[] excludes = {
|
||||
// "java.*", "javax.*", "sun.*", "com.sun.*",
|
||||
// "apple.*",
|
||||
// "processing.*"
|
||||
// };
|
||||
|
||||
protected SketchException exception;
|
||||
protected Editor editor;
|
||||
protected JavaBuild build;
|
||||
@@ -138,60 +125,6 @@ public class Runner implements MessageConsumer {
|
||||
// Everyone works the same under Java 7 (also on OS X)
|
||||
String[] commandArgs = new String[] { Base.getJavaPath(), jdwpArg };
|
||||
|
||||
/*
|
||||
String[] commandArgs = null;
|
||||
if (!Base.isMacOS()) {
|
||||
commandArgs = new String[] {
|
||||
Base.getJavaPath(),
|
||||
jdwpArg
|
||||
};
|
||||
} else {
|
||||
// Decided to just set this to 1.6 only, because otherwise it's gonna
|
||||
// be a shitshow if folks are getting Apple's 1.6 with 32-bit and
|
||||
// Oracle's 1.7 when run in 64-bit mode. ("Why does my sketch suck in
|
||||
// 64-bit? Why is retina broken?)
|
||||
// The --request flag will prompt to install Apple's 1.6 JVM if none is
|
||||
// available. We're specifying 1.6 so that we can get support for both
|
||||
// 32- and 64-bit, because Oracle won't be releasing Java 1.7 in 32-bit.
|
||||
// Helpfully, the --request flag is not present on Mac OS X 10.6
|
||||
// (luckily it is also not needed, because 1.6 is installed by default)
|
||||
// but it requires an additional workaround to not use that flag,
|
||||
// otherwise will see an error about an unsupported option. The flag is
|
||||
// available with 10.7 and 10.8, the only other supported versions of
|
||||
// OS X at this point, because we require 10.6.8 and higher. That also
|
||||
// means we don't need to check for any other OS versions, the user is
|
||||
// a douchebag and modifies Info.plist to get around the restriction.
|
||||
if (false) {
|
||||
if (System.getProperty("os.version").startsWith("10.6")) {
|
||||
commandArgs = new String[] {
|
||||
"/usr/libexec/java_home",
|
||||
"--version", "1.6",
|
||||
"--exec", "java",
|
||||
"-d" + Base.getNativeBits(),
|
||||
jdwpArg
|
||||
};
|
||||
} else { // for 10.7, 10.8, etc
|
||||
commandArgs = new String[] {
|
||||
"/usr/libexec/java_home",
|
||||
"--request", // install on-demand
|
||||
"--version", "1.6",
|
||||
"--exec", "java",
|
||||
"-d" + Base.getNativeBits(),
|
||||
// debugArg,
|
||||
jdwpArg
|
||||
};
|
||||
}
|
||||
} else {
|
||||
// testing jdk-7u40
|
||||
commandArgs = new String[] {
|
||||
//"/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java",
|
||||
Base.getJavaPath(),
|
||||
jdwpArg
|
||||
};
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
commandArgs = PApplet.concat(commandArgs, vmParams);
|
||||
commandArgs = PApplet.concat(commandArgs, sketchParams);
|
||||
// PApplet.println(commandArgs);
|
||||
@@ -482,153 +415,6 @@ public class Runner implements MessageConsumer {
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
protected VirtualMachine launchVirtualMachine(String[] vmParams,
|
||||
String[] classParams) {
|
||||
//vm = launchTarget(sb.toString());
|
||||
LaunchingConnector connector = (LaunchingConnector)
|
||||
findConnector("com.sun.jdi.RawCommandLineLaunch");
|
||||
//PApplet.println(connector); // gets the defaults
|
||||
|
||||
//Map arguments = connectorArguments(connector, mainArgs);
|
||||
Map arguments = connector.defaultArguments();
|
||||
|
||||
Connector.Argument commandArg =
|
||||
(Connector.Argument)arguments.get("command");
|
||||
// Using localhost instead of 127.0.0.1 sometimes causes a
|
||||
// "Transport Error 202" error message when trying to run.
|
||||
// http://dev.processing.org/bugs/show_bug.cgi?id=895
|
||||
// String addr = "127.0.0.1:" + (8000 + (int) (Math.random() * 1000));
|
||||
//String addr = "localhost:" + (8000 + (int) (Math.random() * 1000));
|
||||
// Better yet, host is not needed, so using just the port for the address
|
||||
String addr = "" + (8000 + (int) (Math.random() * 1000));
|
||||
|
||||
String commandArgs =
|
||||
"java -Xrunjdwp:transport=dt_socket,address=" + addr + ",suspend=y ";
|
||||
if (Base.isMacOS()) {
|
||||
// Decided to just set this to 1.6 only, because otherwise it's gonna
|
||||
// be a shitshow if folks are getting Apple's 1.6 with 32-bit and
|
||||
// Oracle's 1.7 when run in 64-bit mode. ("Why does my sketch suck in
|
||||
// 64-bit? Why is retina broken?)
|
||||
// The --request flag will prompt to install Apple's 1.6 JVM if none is
|
||||
// available. We're specifying 1.6 so that we can get support for both
|
||||
// 32- and 64-bit, because Oracle won't be releasing Java 1.7 in 32-bit.
|
||||
// Helpfully, the --request flag is not present on Mac OS X 10.6
|
||||
// (luckily it is also not needed, because 1.6 is installed by default)
|
||||
// but it requires an additional workaround to not use that flag,
|
||||
// otherwise will see an error about an unsupported option. The flag is
|
||||
// available with 10.7 and 10.8, the only other supported versions of
|
||||
// OS X at this point, because we require 10.6.8 and higher. That also
|
||||
// means we don't need to check for any other OS versions, unless
|
||||
// is a douchebag and modifies Info.plist to get around the restriction.
|
||||
addr = "" + (8000 + (int) (Math.random() * 1000));
|
||||
commandArgs =
|
||||
"/usr/libexec/java_home " +
|
||||
(System.getProperty("os.version").startsWith("10.6") ? "" : "--request ") +
|
||||
"--version 1.6 " +
|
||||
"--exec java " +
|
||||
"-d" + Base.getNativeBits() + " " +
|
||||
"-Xrunjdwp:transport=dt_socket,address=" + addr + ",suspend=y ";
|
||||
}
|
||||
|
||||
for (int i = 0; i < vmParams.length; i++) {
|
||||
commandArgs = addArgument(commandArgs, vmParams[i], ' ');
|
||||
}
|
||||
if (classParams != null) {
|
||||
for (int i = 0; i < classParams.length; i++) {
|
||||
commandArgs = addArgument(commandArgs, classParams[i], ' ');
|
||||
}
|
||||
}
|
||||
System.out.println("commandArgs is " + commandArgs);
|
||||
commandArg.setValue(commandArgs);
|
||||
|
||||
Connector.Argument addressArg =
|
||||
(Connector.Argument)arguments.get("address");
|
||||
addressArg.setValue(addr);
|
||||
|
||||
//PApplet.println(connector); // prints the current
|
||||
//com.sun.tools.jdi.AbstractLauncher al;
|
||||
//com.sun.tools.jdi.RawCommandLineLauncher rcll;
|
||||
|
||||
//System.out.println(PApplet.javaVersion);
|
||||
// http://java.sun.com/j2se/1.5.0/docs/guide/jpda/conninv.html#sunlaunch
|
||||
try {
|
||||
return connector.launch(arguments);
|
||||
} catch (IOException exc) {
|
||||
throw new Error("Unable to launch target VM: " + exc);
|
||||
} catch (IllegalConnectorArgumentsException exc) {
|
||||
throw new Error("Internal error: " + exc);
|
||||
} catch (VMStartException exc) {
|
||||
Process p = exc.process();
|
||||
//System.out.println(p);
|
||||
String[] errorStrings = PApplet.loadStrings(p.getErrorStream());
|
||||
//String[] inputStrings =
|
||||
PApplet.loadStrings(p.getInputStream());
|
||||
|
||||
if (errorStrings != null && errorStrings.length > 1) {
|
||||
if (errorStrings[0].indexOf("Invalid maximum heap size") != -1) {
|
||||
Base.showWarning("Way Too High",
|
||||
"Please lower the value for \u201Cmaximum available memory\u201D in the\n" +
|
||||
"Preferences window. For more information, read Help \u2192 Troubleshooting.",
|
||||
exc);
|
||||
} else {
|
||||
PApplet.println(errorStrings);
|
||||
System.err.println("Using startup command:");
|
||||
PApplet.println(arguments);
|
||||
}
|
||||
} else {
|
||||
exc.printStackTrace();
|
||||
System.err.println("Could not run the sketch (Target VM failed to initialize).");
|
||||
if (Preferences.getBoolean("run.options.memory")) {
|
||||
// Only mention this if they've even altered the memory setup
|
||||
System.err.println("Make sure that you haven't set the maximum available memory too high.");
|
||||
}
|
||||
System.err.println("For more information, read revisions.txt and Help \u2192 Troubleshooting.");
|
||||
}
|
||||
// changing this to separate editor and listener [091124]
|
||||
//if (editor != null) {
|
||||
listener.statusError("Could not run the sketch.");
|
||||
//}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static boolean hasWhitespace(String string) {
|
||||
int length = string.length();
|
||||
for (int i = 0; i < length; i++) {
|
||||
if (Character.isWhitespace(string.charAt(i))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private static String addArgument(String string, String argument, char sep) {
|
||||
if (hasWhitespace(argument) || argument.indexOf(',') != -1) {
|
||||
// Quotes were stripped out for this argument, add 'em back.
|
||||
StringBuffer buffer = new StringBuffer(string);
|
||||
buffer.append('"');
|
||||
for (int i = 0; i < argument.length(); i++) {
|
||||
char c = argument.charAt(i);
|
||||
if (c == '"') {
|
||||
buffer.append('\\');
|
||||
// buffer.append("\\\\");
|
||||
}
|
||||
buffer.append(c);
|
||||
}
|
||||
buffer.append('"');
|
||||
buffer.append(sep);
|
||||
return buffer.toString();
|
||||
|
||||
} else {
|
||||
return string + argument + String.valueOf(sep);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Generate the trace.
|
||||
* Enable events, start thread to display events,
|
||||
|
||||
+23
-22
@@ -11,10 +11,6 @@ X move to native OS X full screen (gets rid of native code)
|
||||
X https://github.com/processing/processing/issues/2641
|
||||
_ sometimes causes placement to temporarily be in the wrong spot
|
||||
|
||||
_ need a better method for "missing" data in Table
|
||||
_ if missing int is zero, can't just remove those values from saving a table
|
||||
_ but for NaN values, it's a necessity
|
||||
|
||||
|
||||
pulls
|
||||
X implement A and a (elliptical arcs)
|
||||
@@ -30,7 +26,13 @@ applet removal
|
||||
_ remove Applet as base class
|
||||
_ performance issues on OS X (might be threading due to Applet)
|
||||
_ https://github.com/processing/processing/issues/2423
|
||||
_ play with improvements to full screen here
|
||||
|
||||
|
||||
processing.data
|
||||
_ need a better method for "missing" data in Table
|
||||
_ if missing int is zero, can't just remove those values from saving a table
|
||||
_ but for NaN values, it's a necessity
|
||||
_ fix for maxValue() and minValue() when all entries are bad
|
||||
_ on FloatDict it was NaN, check across the lists and other dict types
|
||||
_ StringDict should always put NaN values at the end on sort
|
||||
@@ -40,11 +42,21 @@ _ get() methods in List/Dict shouldn't allow you to get bad values
|
||||
_ but set() methods can automatically resize the arrays
|
||||
_ though that means insert() should allow you to insert past the end
|
||||
_ should we allow negative indices so that we can work relative to the end?
|
||||
_ add print() method to other data types (not just IntList)
|
||||
_ 'collector' class.. Dict that points to a list
|
||||
_ String as a key, int/float/string list as values
|
||||
_ addRow() is not efficient, probably need to do the doubling
|
||||
o or have a setIncrement() function?
|
||||
_ it would default to 1 on tables loaded from a file
|
||||
_ and default to doubling when created with "new Table"
|
||||
_ row count and array size are combined.. need to break apart
|
||||
_ match and iterators
|
||||
_ add match version that returns table that's only a pointer to original
|
||||
_ save the constructor for the version that actually copies data
|
||||
_ the table pointer version will be speedy and allow chaining
|
||||
|
||||
_ better full screen mode for OS X
|
||||
_ https://github.com/processing/processing/issues/2641
|
||||
_ http://stackoverflow.com/questions/6873568/fullscreen-feature-for-java-apps-on-osx-lion
|
||||
|
||||
later
|
||||
_ bring back chaining in JSON (and add to XML)
|
||||
_ maybe once we make the PVector change
|
||||
|
||||
@@ -54,8 +66,6 @@ _ Closing opengl sketch from the PDE doesn't stop java process on windows
|
||||
_ https://github.com/processing/processing/issues/2335
|
||||
_ StingList.insert() error (should be an easy fix)
|
||||
_ https://github.com/processing/processing/issues/2548
|
||||
_ pull for image resize and alpha issues
|
||||
_ https://github.com/processing/processing/pull/2324
|
||||
_ dataPath() not working when app is not run from app dir on Linux
|
||||
_ https://github.com/processing/processing/issues/2195
|
||||
_ "Buffers have not been created" error for sketches w/o draw()
|
||||
@@ -66,6 +76,7 @@ _ some sort of threading issue happening here
|
||||
_ https://github.com/processing/processing/issues/1672
|
||||
_ https://github.com/processing/processing/issues/2039 (dupe)
|
||||
_ https://github.com/processing/processing/issues/2294 (dupe)
|
||||
_ also check this out with the new full screen code on OS X
|
||||
_ point() rendering differently in 2.0.3 and 2.1
|
||||
_ https://github.com/processing/processing/issues/2278
|
||||
_ internally, we probably have to call set() if it's a 1 pixel point
|
||||
@@ -75,13 +86,10 @@ _ https://github.com/processing/processing/issues/2428
|
||||
_ default font fixes
|
||||
_ https://github.com/processing/processing/issues/2331
|
||||
_ https://github.com/processing/processing/pull/2338
|
||||
_ add print() method to other data types (not just IntList)
|
||||
_ Sort out blending differences with P2D/P3D
|
||||
_ might be that compatible images not setting alpha mode correctly
|
||||
_ image = gc.createCompatibleVolatileImage(source.width, source.height, Transparency.TRANSLUCENT);
|
||||
_ https://github.com/processing/processing/issues/1844
|
||||
_ 'collector' class.. Dict that points to a list
|
||||
_ String as a key, int/float/string list as values
|
||||
_ add option to have full screen span across screens
|
||||
_ display=all in cmd line
|
||||
_ sketchDisplay() -> 0 for all, or 1, 2, 3...
|
||||
@@ -93,6 +101,7 @@ _ draw(s) doesn't work on the returned PShape
|
||||
_ TGA files writing strangely
|
||||
_ https://github.com/processing/processing/issues/2096
|
||||
|
||||
|
||||
hidpi
|
||||
_ saveFrame() with retina render is making black images
|
||||
_ zero alpha values still a problem with retina renderer
|
||||
@@ -109,21 +118,13 @@ _ https://github.com/processing/processing/issues/2411
|
||||
_ retina sketches slow to start
|
||||
_ https://github.com/processing/processing/issues/2357
|
||||
|
||||
|
||||
cantfix
|
||||
_ crash on startup when "Mirror Displays" selected
|
||||
_ suspect that this is a specific chipset since Oracle didn't reproduce
|
||||
_ https://github.com/processing/processing/issues/2186
|
||||
_ test with JG's 13" retina laptop
|
||||
|
||||
table
|
||||
_ addRow() is not efficient, probably need to do the doubling
|
||||
_ or have a setIncrement() function?
|
||||
_ it would default to 1 on tables loaded from a file
|
||||
_ and default to doubling when created with "new Table"
|
||||
_ row count and array size are combined.. need to break apart
|
||||
_ match and iterators
|
||||
_ add match version that returns table that's only a pointer to original
|
||||
_ save the constructor for the version that actually copies data
|
||||
_ the table pointer version will be speedy and allow chaining
|
||||
|
||||
decisions/misc
|
||||
_ make join() work with Iterable?
|
||||
|
||||
@@ -11,6 +11,8 @@ X possible to open a sketch multiple times
|
||||
X by double-clicking one of its files instead of the main pde file
|
||||
X user opens non-main pde of already open sketch, it'll open again
|
||||
X https://github.com/processing/processing/issues/2506
|
||||
X remove the prefs for 32/64-bit from Preferences
|
||||
X also remove the extra OS X cruft inside Runner.java
|
||||
|
||||
gsoc
|
||||
X clear status messages in the Contribution Manager
|
||||
@@ -41,15 +43,6 @@ o https://github.com/processing/processing/issues/2639
|
||||
X moving p5 examples to the web repo
|
||||
X remove reference.zip from main repo
|
||||
|
||||
_ SOCKS proxy not working:
|
||||
_ https://github.com/processing/processing/issues/2643
|
||||
_ detect proxy settings?
|
||||
_ old issue: https://github.com/processing/processing/issues/1476
|
||||
_ http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html
|
||||
_ http://docs.oracle.com/javase/1.5.0/docs/guide/net/proxies.html
|
||||
_ http://stackoverflow.com/questions/4933677/detecting-windows-ie-proxy-setting-using-java
|
||||
_ http://www.java2s.com/Code/Java/Network-Protocol/DetectProxySettingsforInternetConnection.htm
|
||||
|
||||
_ huge i18n patch
|
||||
_ https://github.com/processing/processing/pull/2084
|
||||
|
||||
@@ -85,6 +78,7 @@ _ make reference and examples build process part of dist
|
||||
_ separate ant targets, but only require them for dist
|
||||
_ as separate targets, folks can build explicitly if they'd like
|
||||
|
||||
|
||||
gsoc/help me
|
||||
_ `return` keyword not treated as such when followed by a bracket
|
||||
_ https://github.com/processing/processing/issues/2099
|
||||
@@ -97,6 +91,7 @@ _ https://github.com/processing/processing/issues/2531
|
||||
_ closing the color selector makes things freeze (only Linux and Windows?)
|
||||
_ https://github.com/processing/processing/issues/2381
|
||||
|
||||
|
||||
medium
|
||||
_ check on why 2x core.jar inside the Java folder
|
||||
_ maybe OS X Java can't look in subfolders? (just auto-adds things)
|
||||
@@ -146,9 +141,19 @@ _ PDE and sketches are 2x smaller on high-res Windows 8 machines
|
||||
_ https://github.com/processing/processing/issues/2411
|
||||
|
||||
|
||||
lower
|
||||
_ SOCKS proxy not working:
|
||||
_ https://github.com/processing/processing/issues/2643
|
||||
_ the code that gets/sets the pref is in Preferences
|
||||
_ detect proxy settings?
|
||||
_ old issue: https://github.com/processing/processing/issues/1476
|
||||
_ http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html
|
||||
_ http://docs.oracle.com/javase/1.5.0/docs/guide/net/proxies.html
|
||||
_ http://stackoverflow.com/questions/4933677/detecting-windows-ie-proxy-setting-using-java
|
||||
_ http://www.java2s.com/Code/Java/Network-Protocol/DetectProxySettingsforInternetConnection.htm
|
||||
|
||||
|
||||
post 2.1 cleaning
|
||||
_ remove the prefs for 32/64-bit from Preferences
|
||||
_ remove the extra OS X cruft inside Runner.java
|
||||
_ exclude 'fonts' folder from build (since it's going into the JRE)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user