aiongg
2c9edcc394
refactor(ui): use craft-ui's ComboBox for every dropdown ( #1457 )
...
* ui: use craft_ui::ComboBox so dropdown menus grow back (egui#5225); repin craft-libs
* chore(deps): craft-libs 60d60d48 (dropdown fixes)
* chore(deps): craft-libs 6af63481 (dropdown fixes)
* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)
* chore(deps): craft-libs 92d392cf (#387 merged)
* chore(xtask): pdf-deps expects craft-libs 92d392cf
2026-10-27 10:26:51 -04:00
aiongg
28371e27d7
refactor(ui-egui): split backstage.rs into backstage/{files,info,print}.rs
2026-10-26 22:08:44 +00:00
aiongg
4bdd5b5bee
refactor(ui-egui): split icons.rs into icons/{geometry,draw}.rs
2026-10-26 22:08:44 +00:00
aiongg
99688fe45a
refactor(ui-egui): split show.rs into show/{render,keys,ui,media,presenter,zoom}.rs
2026-10-26 22:08:44 +00:00
aiongg
ada66524a2
refactor(ui-egui): split panels.rs into one file per pane under panels/
2026-10-26 22:08:44 +00:00
aiongg
e84ba9def1
refactor(ui-egui): split ribbon.rs into one file per tab under ribbon/
2026-10-26 22:08:44 +00:00
aiongg
9545ff4d61
refactor(ui-egui): move the zoom, trim, about and alt-text test modules to their dialog files
2026-10-26 22:08:44 +00:00
aiongg
c8a6363a0f
refactor(ui-egui): split dialogs.rs into one file per dialog under dialogs/
2026-10-26 22:08:44 +00:00
aiongg
462310faed
refactor(ui-egui): split canvas.rs into canvas/{input,scroll,ime,media,rulers,guides,overlays,context_menu}.rs
2026-10-26 22:08:44 +00:00
aiongg
d428b4804a
refactor(ui-egui): move the backstage test files beside backstage.rs
2026-10-26 22:08:44 +00:00
aiongg
9ab4ed9581
refactor(ui-egui): move the sorter test files beside sorter.rs
2026-10-26 22:08:44 +00:00
aiongg
a094f37ed9
refactor(ui-egui): move the ribbon test files beside ribbon.rs
2026-10-26 22:08:44 +00:00
aiongg
742e660afd
refactor(ui-egui): move the dialogs test files beside dialogs.rs
2026-10-26 22:08:44 +00:00
aiongg
8338e21ecf
refactor(ui-egui): move the canvas test files beside canvas.rs
2026-10-26 22:08:44 +00:00
aiongg
7ab59a0cd3
refactor(ui-egui): move qat to ribbon/qat.rs
2026-10-26 22:08:44 +00:00
aiongg
a730e66757
refactor(ui-egui): move updates_ui to dialogs/updates_ui.rs
2026-10-26 22:08:44 +00:00
aiongg
ac3c3b7b2a
refactor(ui-egui): move credits to dialogs/credits.rs
2026-10-26 22:08:44 +00:00
aiongg
1368d06eeb
refactor(ui-egui): move squiggles to canvas/squiggles.rs
2026-10-26 22:08:44 +00:00
aiongg
af61c1cf3a
refactor(ui-egui): move preview to canvas/preview.rs
2026-10-26 22:08:44 +00:00
aiongg
099dfa7670
refactor(ui-egui): move the panels test files beside panels.rs
2026-10-26 22:08:44 +00:00
aiongg
d1022cdaa4
refactor(ui-egui): move animtimeline to panels/animtimeline.rs
2026-10-26 22:08:44 +00:00
aiongg
dcd06db2d3
refactor(ui-egui): move fillui to panels/fillui.rs
2026-10-26 22:08:44 +00:00
aiongg
82fb8e7680
refactor(ui-egui): move notes to panels/notes.rs
2026-10-26 22:08:44 +00:00
aiongg
59e4b272d8
refactor(ui-egui): move selpane to panels/selpane.rs
2026-10-26 22:08:44 +00:00
aiongg
62aa7aa437
refactor(ui-egui): move thumbs to panels/thumbs.rs
2026-10-26 22:08:44 +00:00
aiongg
af9b8c1adb
refactor(ui-egui): rename panes to panels
2026-10-26 22:08:44 +00:00
aiongg
d6026de7c2
refactor(ui-egui): move SlideApp method groups to app/{commands,files,ime,input,keys,playback,clipboard,frame,control}.rs
2026-10-26 22:08:44 +00:00
aiongg
d9199598e1
refactor(ui-egui): move SlideApp methods to app.rs and lib.rs types to services.rs, state.rs, clock.rs, ime_hooks.rs
2026-10-26 22:08:44 +00:00
aiongg
8528674c57
refactor(ui-egui): move dialogs tests to dialogs/tests.rs
2026-10-26 22:08:44 +00:00
aiongg
90a3ffe766
refactor(ui-egui): move canvas tests to canvas/tests.rs
2026-10-26 22:08:44 +00:00
aiongg
03025647d6
refactor(ui-egui): move show tests to show/tests.rs
2026-10-26 22:08:44 +00:00
aiongg
583f2dfb1b
style(ui-egui): rustfmt tests.rs after the move
2026-10-26 22:08:43 +00:00
aiongg
33a0df30d6
refactor(ui-egui): move lib.rs tests to tests.rs
2026-10-26 22:08:43 +00:00
aiongg
36f454b60f
refactor(ui-egui): move capture tests to capture/tests.rs
2026-10-26 22:08:43 +00:00
Dylan M. Taylor
aaf6c1c38a
refactor(show): split the key handler into grid, navigation and tool keys (S3776) ( #1402 )
2026-10-25 21:13:50 -04:00
Dylan M. Taylor
b70a6fda35
feat: startup update prompt modal and direct self-updating ( #1377 )
...
* feat: startup update prompt modal and direct self-updating
Ref: storytold/craft-libs#319
* build: pin craft-update to craft-libs main (b9ba47f) and refresh the lock
* refactor(updates): drive the flow with craft-update's Updater
Results are read independent of the prompt, a dropped worker is an error, failures return to the prompt, and no update starts over unsaved work. A manual check during the startup check is honored.
2026-10-25 14:48:33 -04:00
Brandon Thomas and Claude Opus 5.5
5d9c3818a5
Tests: the Slide Size preset test opens the dialog's own combo box (egui 0.37 exposes the ribbon's too)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:49:12 -04:00
Brandon Thomas and Claude Opus 5.5
31cf44c2ff
Integration: the merged PRs import what they use ( #1270 ) and use egui 0.37's wheel source and media clock ( #1350 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:45:19 -04:00
Brandon Thomas and Claude Opus 5.5
d20b08e3af
Tests: drop the units test's PNG debug hook; the PDF link test's doc says only web and mail links export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 13:43:25 -04:00
Brandon Thomas
5e9043afa6
Merge pull request #1336
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/panes.rs
# crates/ui-egui/src/ribbon.rs
2026-10-25 13:43:07 -04:00
Brandon Thomas
637bbcdf51
Merge pull request #1118
2026-10-25 13:42:06 -04:00
Brandon Thomas
b6c1fe628c
Merge pull request #1109
2026-10-25 13:42:06 -04:00
Brandon Thomas
ad664b2cdd
Merge pull request #1107
2026-10-25 13:42:06 -04:00
Brandon Thomas
ea4001a26e
Merge pull request #1256
2026-10-25 13:42:05 -04:00
Brandon Thomas
c8a13561b3
Merge pull request #1331
2026-10-25 13:42:05 -04:00
Dylan M. Taylor and Claude Sonnet 5.5
7d4c49051c
refactor: explicit imports in engine/anim/geom/model/render/text/pdf/ogg modules (SonarCloud S2208) ( #1270 )
...
* refactor: explicit imports instead of glob imports in command and test modules (SonarCloud S2208)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
* fix: geom extra imports
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
* fix: drop unused imports
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
* fix: restore explicit imports in test modules (SonarCloud S2208)
---------
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-25 13:18:05 -04:00
skylar taylor-barrick
14f40c408c
Migrate DeckCraft to egui 0.37 ( #1350 )
...
* egui037-20261022: migrate DeckCraft to egui 0.37
Preserve current-main document and PDF behavior alongside the reviewed input, capture, font, ribbon and notice-packaging migration.
Validation: cargo xtask ci passed all eight stages, with 1,877 workspace tests and three doctests passed, six tests ignored, strict native lint and 23 WASM crates checked. Native GUI, platform and performance qualification remains separate.
* E21: restore Latin coverage and enforce required font inputs
* Fix migration review findings in font validation and UI controls
* M-egui037: document UI lifecycle and regression contracts
2026-10-25 10:48:52 -04:00
Faabyy and Claude
52d0fcd6c7
Reuse Slides: insert into the presentation and after the slide the picker was opened for ( #1103 )
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-10-25 13:47:23 +00:00
Faabyy and Claude
abdf5f337b
Slides: a second Shift-click extends from the same anchor; the range clears cells and returns to the slides; a bad from is an error ( #1105 )
...
Review on #1107 : read `from` with opt_usize_param, clear `sel.cells` and set
`target = Slides` as `slide.go` did, keep the anchor of the first Shift-click.
A kittest drives the Shift and Ctrl+Shift clicks in the slide sorter.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-10-25 11:50:42 +00:00
Faabyy and Claude
95a8f90d1a
Reuse Slides: insert from the bytes that were listed; a failed insert keeps the dialog open ( #1103 )
...
Review on #1109 : the file is read once when the list is made and the same bytes
are inserted, so a file changed meanwhile can't swap the slides; `reuse_slides`
returns whether it inserted and the dialog closes only then. A kittest drives the
dialog.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-10-25 11:50:24 +00:00