mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-19 05:42:58 +02:00
Draw the whole interface in Compose
Etappen 3 to 6a of the migration (129 commits). Every window the operator sees is Compose; the JavaFX ones still exist beside them so the two could be compared against a live session, which is the only way the differences came to light. The toolchain first, then the settings window with its eleven tabs and 72 real preferences; then the multi-column table as a component, and with it the rules it needs -- stable row identity, a selection that survives a refresh, column order the operator can drag, and a repaint when the rows change rather than when the list instance does. Then the update and monitor windows, and the main window: 22 station columns, the filter bar, the selected-station panel, the message tabs, the priority bar, the sked controls, the status indicators and the timeline, assembled behind a splitter because Compose has none. The map stops being a WebView. A Compose canvas projects WebMercator tiles itself, with the clustering in core and an asynchronous fetcher in place of the local tile proxy; derive() becomes a pure Kotlin reimplementation instead of a reflection call into com.sun.javafx. Most of the volume here is parity the operator would notice rather than new behaviour: desktop density instead of Material's phone minimums, colours taken from the JavaFX stylesheets instead of Material's palette, row dividers, band columns, grid-square labels and their colours, the home marker and antenna beam, pinch-to-zoom under Wayland, and layouts that survive a window narrower than the chart they stack. Two lessons are worth more than the diff. A control bound to a value Compose cannot observe writes through and never redraws -- that one shipped repeatedly with a green build, because no test drew anything. And a layout that clips instead of wrapping is worse than one that is merely too narrow: half a word is the worst available outcome.
This commit is contained in:
173 files changed
+26500
-4305
No files matched your search
+3
-5
@@ -1,10 +1,8 @@
|
||||
version=1.50.0-nightly
|
||||
# nativeDistributions requires MAJOR.MINOR.PATCH with digits only. MSI and DMG
|
||||
# reject a qualifier, so the nightly suffix from `version` cannot be used here.
|
||||
composePackageVersion=1.50.0
|
||||
group=de.x08
|
||||
# Runtime modules jlink must keep. Derived from the former module-info.java
|
||||
# requires clauses, minus javafx.* (JavaFX now comes from the classpath) and
|
||||
# plus jdk.unsupported, which javafx.graphics used to pull in transitively.
|
||||
# Single source for the Gradle build, the workflows and the AUR PKGBUILDs.
|
||||
jpackageAddModules=java.desktop,java.net.http,java.sql,jdk.crypto.ec,jdk.jsobject,jdk.net,jdk.xml.dom,jdk.unsupported
|
||||
|
||||
org.gradle.parallel=true
|
||||
org.gradle.caching=true
|
||||
Reference in new issue
Block a user