4.5.5
added a format-selection step before opening the system dialog.
What changed in core/src/main/kotlin/com/github/alfu32/sketch/Main.kt
- Added a small native desktop format picker via JOptionPane:
- DesktopFileDialogOption
- chooseDesktopFileDialogOption(...)
- Kept the actual file picking native/system via FileDialog
- Added replaceFileExtension(...) so save defaults match the chosen format
Now these desktop flows show the available extensions before the system dialog opens:
- Open
- options:
- All supported (*.octd, *.k3d)
- Octodraw (*.octd)
- Legacy K3D (*.k3d)
- options:
- Save As
- options:
- Octodraw (*.octd)
- Legacy K3D (*.k3d)
- options:
- Import Mesh
- options:
- All supported (...)
- plus one option per supported mesh format
- options:
- Export Mesh
- one option per export format
- Load Vector Glyph Catalog
- options:
- Vector Glyph Catalog (*.octd)
- Fonts (*.ttf, *.otf)
- options:
This keeps the system file dialog, but makes the permitted extensions explicit first.
Fixed the CI failure mode.
Cause:
- prepareWebComponentBundle declared concrete inputs under web/build/dist/webapp/:
- assets/
- scripts/
- octodraw-.js
- Those paths are generated later by buildWebRuntime, so on GitHub Actions Gradle validates them before execution and fails if they do not exist yet.
What I changed in web/build.gradle:
- kept the explicit dependency:
- prepareWebComponentBundle.dependsOn(prepareWebDocs)
- removed the eager generated-path input declarations:
- inputs.dir(webRuntimeDir/assets)
- inputs.dir(webRuntimeDir/scripts)
- inputs.file(webRuntimeDir/)
Why this is correct:
- those are produced artifacts, not static source inputs
- the task graph already guarantees they exist through the dependency chain
- the previous declarations were what made CI fail validation