|
| 1 | +# Processing 4.0 beta 9 |
| 2 | + |
| 3 | +*Revision 1284 – 4 August 2022* |
| 4 | + |
| 5 | +Getting very close to 4.0! Just a bit more now… |
| 6 | + |
| 7 | + |
| 8 | +## design, design, design |
| 9 | + |
| 10 | +Perhaps most noticeable, this release includes a ton of refinement on the design. |
| 11 | + |
| 12 | +* Another set of 16 themes, these with gradients, have been added to the Theme Selector. Have fun! |
| 13 | + |
| 14 | +* If you've changed the theme in a previous beta, it will be reset the first time you use beta 9, because of major updates to theme handling (many new parameters, others renamed and cleaned up). Relatedly, changing the theme no longer writes a `theme.txt` file to your sketchbook folder. |
| 15 | + |
| 16 | +* Added options to the Theme Selector to write `theme.txt` to your sketchbook folder (so you can make manual edits), and also to reload the theme dynamically (after you've made changes). |
| 17 | + |
| 18 | +* Lots of minor fixes to typography and layout of elements. Hopefully you'll agree that the changes add up to things feeling a lot better. |
| 19 | + |
| 20 | +* We're now using [FlatLaf](https://www.formdev.com/flatlaf/) to improve the look and feel of dialog boxes and other components that we've not customized ourselves. |
| 21 | + |
| 22 | +* Nearly all PNG-based icons and interface elements have been replaced by SVGs that are automatically re-rendered to match the theme when it changes. |
| 23 | + |
| 24 | +* The base font being used is now part of the language translation, because specific fonts are required for non-Roman languages, or languages that are not supported by the Source Sans 3 that we use everywhere else. This also helps us get the language-specific overrides for Chinese, Japanese, Korean, Greek, and Arabic out of the code and into something that can be updated more easily. |
| 25 | + |
| 26 | +* We're replacing the underscores in tab names with spaces. It looks a little nicer with the default sketch naming. If you'd like to keep underscores, open `preferences.txt` and set `sketch.name.replace_underscore = false`. |
| 27 | + |
| 28 | +* Updated the scroll bars to match the theme. [#265](https://github.com/processing/processing4/issues/265) |
| 29 | + |
| 30 | +* Implement 2x versions of the icons for the debugger window/variable inspector. [#3921](https://github.com/processing/processing/issues/3921) |
| 31 | + |
| 32 | +* Taken collectively, these are the visual design changes for 4.0. [#48](https://github.com/processing/processing4/issues/48) |
| 33 | + |
| 34 | + |
| 35 | +## new features |
| 36 | + |
| 37 | +* New sketch naming schemes! For those who didn't enjoy the sketch plus underscore plus six digit date, your time has come. Visit the Preferences window and behold the naming options available in the dropdown menu. You can now use the “Friendly” naming scheme that folks seem to love, as well as a pair of other less serious alternatives. [#6045](https://github.com/processing/processing/issues/6045), [#6048](https://github.com/processing/processing/pull/6048), [#144](https://github.com/processing/processing4/pull/144) |
| 38 | + |
| 39 | +* It's also possible to create your own naming schemes. Create a file named `naming.json` in your sketchbook folder that follows the same layout in the Processing download. Provide a name, a list of prefixes, and a list of suffixes just like that file. Save it and restart Processing, and your new option will be available in the dropdown. |
| 40 | + |
| 41 | + |
| 42 | +## other big ones |
| 43 | + |
| 44 | +* We should be fully set for Apple Silicon (i.e. M1 and M2) support. [#128](https://github.com/processing/processing4/issues/128) |
| 45 | + |
| 46 | +* Code completion stopped working between beta 4 and beta 5. Now it's back. [#491](https://github.com/processing/processing4/issues/491) |
| 47 | + |
| 48 | + |
| 49 | +## bug fixes |
| 50 | + |
| 51 | +* Fix “Unable to load Java Runtime Environment” errors on Apple Silicon machines. [#526](https://github.com/processing/processing4/issues/526) |
| 52 | + |
| 53 | +* Updated the Help menu entries to make sure they're going to the right locations for 4.x. As with the reference, links are no longer local (see [#524](https://github.com/processing/processing4/issues/524)). |
| 54 | + |
| 55 | +* Help → Libraries Reference and Help → Tools Reference submenu items were broken. [#5839](https://github.com/processing/processing/issues/5839) |
| 56 | + |
| 57 | + |
| 58 | +## community contributions! |
| 59 | + |
| 60 | +* Add `flatlaf.jar` to `config.xml` on Windows. [#498](https://github.com/processing/processing4/pull/498) |
| 61 | + |
| 62 | +* Fix parsing of java error messages containing ":" [#492](https://github.com/processing/processing4/issues/492), [#493](https://github.com/processing/processing4/pull/493) |
| 63 | + |
| 64 | +* Exported applications were giving `java.lang.ClassNotFoundException: --full-screen` errors. [#488](https://github.com/processing/processing4/issues/488), [#502](https://github.com/processing/processing4/pull/502). |
| 65 | + |
| 66 | +* Editor was treating {} brackets as code when they're inside a String, char or comment. [#444](https://github.com/processing/processing4/issues/444), [#504](https://github.com/processing/processing4/pull/504) |
| 67 | + |
| 68 | +* Add extra Java arguments to enable anti-aliasing for KDE users. [#513](https://github.com/processing/processing4/pull/513), [reference](https://docs.oracle.com/javase/7/docs/technotes/guides/2d/flags.html#aaFonts) |
| 69 | + |
| 70 | + |
| 71 | +## internal changes |
| 72 | + |
| 73 | +* Bumped the Java version to 17.0.4+8. |
| 74 | + |
| 75 | +* If you get a “core does not run on this architecture” when running from the source, you may need to run `ant clean-jogl` inside `core`. |
| 76 | + |
| 77 | +* Also added a `clean-libs` target to `build.xml` files that need it. This will re-download libraries that we rely upon like JOGL, Batik, Ant, and others. |
| 78 | + |
| 79 | +* Cleaned up several files in the download, the footprint should be a few dozen megabytes smaller. |
| 80 | + |
| 81 | +* Updated to the latest version of JNA (5.12.1) for better Apple Silicon support. |
| 82 | + |
| 83 | +* All the remaining ancient bug URLs (Bugzilla and Google Code) have been updated and removed from the source. The Google Code issues are re-linked to their Github equivalents, and the old Bugzilla pages have been [revived](https://download.processing.org/bugzilla/) since their disappearance last August. |
| 84 | + |
| 85 | + |
| 86 | +## known issues |
| 87 | + |
| 88 | +* We've had to remove the offline version of the reference that was accessible from the Help menu. We hope to bring it back some day. [#524](https://github.com/processing/processing4/issues/524) |
| 89 | + |
| 90 | +known issues |
| 91 | +_ mixed mode warning now broken |
| 92 | +_ https://github.com/processing/processing4/issues/519 |
| 93 | +_ 'color' in imports shows up as an error in the editor |
| 94 | +_ but code still compiles and runs |
| 95 | +_ https://github.com/processing/processing4/issues/521 |
| 96 | +_ need to make it possible to use module jars |
| 97 | +_ https://github.com/processing/processing4/issues/522 |
| 98 | +_ https://github.com/processing/processing4-javafx/issues/15 |
| 99 | + |
| 100 | + |
| 101 | +design/errors |
| 102 | +X errors table theme |
| 103 | +X use errors.row.bgcolor as bgcolor for the error list |
| 104 | +o change errors.row to errors.list in theme.txt |
| 105 | +X add errors.bgcolor instead |
| 106 | + |
| 107 | +design/preferences |
| 108 | +X get rid of text box for 'background color when presenting' |
| 109 | +X redundant (can type numbers in the dialog) and fussy |
| 110 | +X change "sketchbook location" to "sketchbook folder" |
| 111 | +X (this is how it's referenced everywhere else in the interface) |
| 112 | +X shorten sketchbook location text field |
| 113 | +o sketchbook location to single line (drop "location"? say folder?) |
| 114 | +X why is sketchbook location text selected when opening window? |
| 115 | +X had focus by default, which apparently selects the text |
| 116 | +X remove 'smooth text' (too rare: manual editing should suffice) |
| 117 | +X switch to BoxLayout before making more layout changes? |
| 118 | +X move 'enable complex text' up near language? |
| 119 | +X better yet, move language down below font and interface scale |
| 120 | +o turn it on when selecting CJKV as a language |
| 121 | +X show 'requires restart' only after making a change |
| 122 | +X fixed for interface zoom |
| 123 | +X hidpiDisableBox |
| 124 | +X inputMethodBox |
| 125 | +X languageSelectionBox and languageRestartLabel |
| 126 | +X preferences.zoom = Interface scale -> preferences.interface_scale = Scale |
| 127 | +X preferences.zoom.auto -> preferences.interface_scale.auto |
| 128 | +X set link color in prefs window to use accent color |
| 129 | +X move 'requires restart' to one thing at the bottom |
| 130 | +X preferences.enable_complex_text removed, replaced with |
| 131 | +X preferences.enable_complex_text = Enable complex text input |
| 132 | +X preferences.enable_complex_text.tip |
| 133 | +X preferences.requires_restart = requires restart of Processing |
| 134 | +X becomes preferecnes.restart_required = Restart Processing to apply changes |
| 135 | +X put language & complex text on same line |
| 136 | +X move colons into the language file |
| 137 | +X show hand cursor with links for labels |
| 138 | +o move delete previous pref to the Export to Application window |
| 139 | +o get rid of the pref/just use the setting from export to app |
| 140 | +X no clear alternative for disabling this, so remove from prefs window |
| 141 | +X but still supported inside preferences.txt for those who must |
| 142 | +X it's moving the files to the trash anyway, which should be safe enough |
| 143 | +X finish rearranging item order in PreferencesFrame |
| 144 | +X all set for now |
| 145 | +o move to separate panel |
| 146 | +o (maybe not, because not clear which will be inherited by other modes?) |
| 147 | +o background when presenting |
| 148 | +o continuously check |
| 149 | +o code completion |
| 150 | +o suggest imports |
| 151 | +o increase memory |
| 152 | +X opting not to: not enough items, and too disruptive for unclear benefit |
| 153 | +X remove extra space between prefs lines |
| 154 | + |
| 155 | +design/manager |
| 156 | +X add manager.panel constants for colors |
| 157 | +X status panel not updating in updateTheme() |
| 158 | +X StatusPanel.getBodyStyle() has hard-coded fonts/sizes |
| 159 | +X changed manager.list.search to manager.search |
| 160 | +X implement foundation icon using svg |
| 161 | +X icons for contrib manager list entries (green/orange PNGs won't do) |
| 162 | +X remove ability to rearrange columns in contrib manager |
| 163 | +X why tf this is the default is beyond me |
| 164 | +X set color of the sort order icon in the ListPanel table header |
| 165 | +X also the color of the text? |
| 166 | +X override flatlaf for components (search, buttons, dropdown menu) in manager |
| 167 | +X popup menu coloring (contribs) |
| 168 | +X progress bar in contrib manager |
| 169 | +X need monochrome icon for foundation |
| 170 | +o do we need other color states for list item icons |
| 171 | +X they seem to be find for now |
| 172 | +X add updateTheme() to contrib.ListPanel |
| 173 | +X right now pulling Theme.getColor() directly |
| 174 | +X but need to make sure repaint() is called anyway |
| 175 | +X contrib manager theme |
| 176 | +X identify coloring for icons |
| 177 | +X how much of theme to inherit |
| 178 | +X generate manager icons |
| 179 | +o slightly taller tabs, though maybe they're better than the Editor? |
| 180 | +o editor tabs are different height, as are the footer tabs |
| 181 | +X important for prefs window background color too |
| 182 | +X remove ManagerFrame constants for NORMAL_PLAIN, SMALL_PLAIN, etc |
| 183 | +X these should be read from theme.txt instead |
| 184 | +o or not used at all: the defaults from ui.font and FlatLaf should do |
| 185 | +X only really need for the bold font |
| 186 | +X improved 'close' icon (thicker x) |
| 187 | +X better 'search' icon (search.svg with a less enormous eyeglass) |
| 188 | +X replace foundation-16, foundation-32, foundation-64 in lib/icons |
| 189 | +X contribs exclamation looks like an error, not "update available" |
| 190 | +X clean up the updates panel in the manager |
| 191 | +X fix column widths in 'updates' tab of contrib manager |
| 192 | +X also make them resizable |
| 193 | +X section headings look bad (not capitalized, not plural, no bg color change) |
| 194 | +X color change might help, but a little fussy at the moment |
| 195 | +X gets into whether the type weight should change, and starts affecting too much |
| 196 | +X update available icon looks broken (bad winding rule?) |
| 197 | + |
| 198 | +manager |
| 199 | +X make ContributionTab.FilterField into a static class |
| 200 | +o then perhaps move to another source file |
| 201 | +X nah, ContributionTabFilterField is a bit much |
| 202 | +X move things around a bit so it's not quite a mess |
| 203 | +o add reinstall option? |
| 204 | +X nah, too fussy; not a big deal to do remove and install |
| 205 | +X remove JProgressBar from ContributionTab/UpdateContributionTab |
| 206 | +X StatusPanelDetail creates its own, which is the one used |
| 207 | +X after download, list item doesn't update to show installed |
| 208 | +X stays stuck with the downloading icon |
| 209 | + |
| 210 | +contrib |
| 211 | +X Double-clicking a .pde file also opens an untitled/empty sketch |
| 212 | +X https://github.com/processing/processing4/issues/477 |
| 213 | +X https://github.com/processing/processing4/pull/479 |
| 214 | +X Update PDE_es.properties |
| 215 | +X https://github.com/processing/processing4/pull/480 |
| 216 | +X https://github.com/processing/processing4/pull/481 |
| 217 | +X Update PDE_de.properties |
| 218 | +X https://github.com/processing/processing4/pull/483 |
| 219 | + |
| 220 | +status |
| 221 | +X replace emoji buttons in status bar |
| 222 | +X re-save svg files using svg 1.0 |
| 223 | +X sort out hover/press states here (only hovers atm) |
| 224 | +X also add state for shift-click to search |
| 225 | +X theme colors for emoji buttons (new themes across the board) |
| 226 | +X icons in the status bar (using emojis at the moment, now out of place) |
| 227 | +X console collapse/expand button |
| 228 | +X copy to clipboard button |
| 229 | +X implement alpha for url (70, 90, 100) |
| 230 | +X remove the color |
| 231 | +X get shift down from the editor window and pass to status |
| 232 | +X thicker version of the search icon for the status panel |
| 233 | +X copy the icon over from the manager |
| 234 | + |
| 235 | +cleaning |
| 236 | +o should default to the local Java on Windows and Linux |
| 237 | +o have export apps default to the local JRE |
| 238 | +o Linux is probably using the system JRE if available |
| 239 | +o launch4j may be all set, but double-check |
| 240 | +X um, no--we should use the embedded version, b/c who knows what happens |
| 241 | +X Blank sketch opened even if opening an existing sketch by double-clicking |
| 242 | +X https://github.com/processing/processing/issues/218 |
| 243 | +o improve the speed of file copying |
| 244 | +o use FileChannels, see FileInputStream.getChannel(), |
| 245 | +o and use transferFrom() or transferTo().) |
| 246 | +o could also use FileUtils in Apache's common io |
| 247 | +o http://commons.apache.org/io/api-release/index.html |
| 248 | +X Switch to getModifiersEx() in `processing.app` |
| 249 | +X https://github.com/processing/processing4/issues/67 |
| 250 | +X done in beta 2 |
| 251 | +/ library compilations not ordered properly w/ sorting |
| 252 | +/ do we still support library compilations? that was from 2016 |
| 253 | +X https://github.com/processing/processing/issues/4630 |
| 254 | + |
| 255 | +decisions |
| 256 | +o preferences in web frame? |
| 257 | +o intro page using webkit (launching into examples) |
| 258 | +o and maybe the reference too? |
| 259 | +X nope, webkit embed way too large |
| 260 | +o how to send messages from webkit server to PDE (i.e. for a color tool) |
| 261 | +X skipping webkit embed for now |
| 262 | +X should we use Java 11 instead of 17 to be less of an outlier? |
| 263 | +X default rpi openjdk seems to be 11, we're not using any 17 features |
| 264 | +X size change is negligible (17 may even be slightly smaller) |
| 265 | +X or is this just a matter of 17 being new and it'll change quickly? |
| 266 | +X JavaFX 17 (a good idea) seems to be compatible with Java 11 |
| 267 | +X JavaFX 11 has fewer builds (no ARM, prolly no Apple Silicon) |
| 268 | +X 11 LTS is supported until September 2026, 17 until 2029 |
| 269 | +X https://dzone.com/articles/whats-new-between-java-11-and-java-17 |
| 270 | +X switching to 17 as the default because it's now available in rpi os |
| 271 | + |
| 272 | +X allow . to start a number in SVG paths (a little) |
| 273 | +X still lots of work to do here, it's an SVG 1.1 (vs 1.0) thing |
| 274 | + |
| 275 | +data |
| 276 | +X add getXxxxList() methods to JSONObject |
| 277 | +X add toXxxxList() methods to JSONArray |
| 278 | +X rename getXxxArray() to toXxxArray() in JSONArray for consistency |
| 279 | +X deprecate the old versions |
| 280 | +X add random() method to XxxList classes to return a random value from the list |
| 281 | +X use toArray() instead of array() in LongList |
| 282 | +X did not deprecate old version because it was actually broken |
| 283 | +X use toArray() instead of array() in all other List classes |
| 284 | +X lots of cleanup (and some bug fixing) in the List classes |
| 285 | + |
| 286 | + |
| 287 | + |
1 | 288 | # Processing 4.0 beta 8
|
2 | 289 |
|
3 | 290 | *Revision 1283 – 23 April 2022*
|
|
0 commit comments