Commit Graph
613 Commits
Author SHA1 Message Date
Brandon Thomas cee1d015ec Merge pull request #1438
Animations: the Add Animation menu scrolls when it is taller than the window (fixes #1370)
2026-10-30 16:05:27 -04:00
Brandon Thomas dc1fc8d83b Merge pull request #1418
fix(slides): dragging several selected slides moves them all
2026-10-30 16:05:27 -04:00
Brandon Thomas c3d1df6d28 Merge pull request #1382
feat(ui): support Alt+1..9 shortcuts for Quick Access Toolbar items
2026-10-30 15:59:10 -04:00
Brandon ThomasandClaude Opus 5.5 c1b0cf72df Merge origin/main into #1438: port the Add Animation scroll onto ribbon/animations.rs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:55:09 -04:00
Brandon ThomasandClaude Opus 5.5 11b271b9ae Tests: the Picture Styles resize test asks that the row grow at 1920 px, not for an exact count (#1560)
The count depends on how wide the rest of the Picture Format ribbon is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:54:46 -04:00
Brandon ThomasandClaude Opus 5.5 ecad13d1cc Merge origin/main into #1418: port the slide drag onto panels/thumbs.rs and sorter/ui_tests.rs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:48:56 -04:00
Brandon Thomas 6030fb4f8c Merge pull request #1471
File > New: keep the template tiles inside the right margin in a narrow window
2026-10-30 15:48:31 -04:00
Brandon Thomas b3c36e816a Merge pull request #1560
Picture Format: the Picture Styles row leaves room for Crop and Size
2026-10-30 15:48:31 -04:00
Brandon Thomas 95a55b0ea7 Merge pull request #1437
fix(format): Reflection None clears after another preset (#1356)

# Conflicts:
#	crates/ui-egui/src/lib.rs
2026-10-30 15:48:20 -04:00
Brandon Thomas 5e85f73c5e Merge pull request #1397
Format: Fill offers Slide background fill
2026-10-30 15:48:04 -04:00
Brandon Thomas 8d278d71cb Merge pull request #1456
Slide show: Set Up Slide Show can keep the mouse cursor visible (#1445)

# Conflicts:
#	crates/ui-egui/src/app/commands.rs
#	crates/ui-egui/src/lib.rs
2026-10-30 15:42:42 -04:00
Brandon Thomas 9cb51393b3 Merge pull request #1533
Slide show: going back plays the left slide's transition in reverse (#1531)
2026-10-30 15:42:30 -04:00
Brandon Thomas 62b06a0a91 Merge pull request #1226
Fix the editor's media bar ignoring clicks
2026-10-30 15:42:28 -04:00
Brandon Thomas 8075b7ecd8 Merge pull request #1480
show.presenter answers {on, window} (part of #298)
2026-10-30 15:42:11 -04:00
Dylan M. Taylor 505a6f28ac Update prompt shows the app icon and accent color instead of a letter (#1561)
UPDATE_APP (native builds; craft-update is a native-only dependency) carries our 128 px icon and accent (#f07a1e, its colour in ArtCraft Launcher). The updater, the self-update
helper and craft-update's startup prompt all get them through crate::UPDATE_APP; the
prompt draws the icon, the accent and "by ArtCraft" (craft-update's default developer).

craft-update is pinned to storytold/craft-libs main at 1065653e7 (#434).
Clippy fixes for Rust 1.99 in untouched code (same logic):
- crates/engine/src/tools/click.rs
- crates/engine/src/tools/pointer.rs
- crates/metafile/src/emfplus.rs
- crates/model/src/trendline.rs
- crates/pptx/src/read/dml.rs
- xtask/src/layers.rs
2026-10-30 01:28:38 -04:00
JonRC 0da9cac9dc Picture Format: a resize alone brings the Picture Styles row to the new width
The ribbon now asks for one more frame when a tab's spare room changes by
more than half a point, so the row is sized for the new width even when no
input follows the resize. The test resizes 1440 to 1920 and back and checks
the harness settles.
2026-10-29 23:25:54 -03:00
JonRC 99bb0f0a62 Picture Format: the Picture Styles row leaves room for Crop and Size
The gallery put all 24 picture styles in the ribbon row, about 1370 px, so
Alt Text, Arrange, Crop and Size sat past the ribbon's edge in any window
narrower than about 2500 px, the default 1440 px window and a maximized
1920 px one included. The row now shows as many styles as leave room for
the groups after it (at least two), sized from the width the tab left free
on the last frame, and an arrow opens all 24 in a menu, as the Transitions
and Animations galleries do.
2026-10-29 23:12:08 -03:00
Piyush Goel 8333c371e1 feat(ui): support Alt+1..9 shortcuts for Quick Access Toolbar items 2026-10-29 16:20:29 +05:30
FaabyyandClaude 8cc25169ab Slide show: going back reverses the left slide's transition (#1531)
Back from slide B to slide A played A's own entrance transition. PowerPoint
plays the transition B came in with, backwards.

ShowState now remembers that the current slide was reached by Back
(`backward`, set by `prev`, cleared by every other way in). The show then
takes the transition of the slide it left and runs its frames from the end
to the start, with the old and new slides trading places
(`transition_layers`). Morph needs no reversing: a Morph from the slide
left to the one come back to already is the reversed Morph. A jump (Go to
Slide, links, See All Slides) still plays the target slide's transition.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-29 09:33:59 +00:00
FaabyyandClaude 83ad5d287c Merge upstream/main into feat/show-keep-cursor-1445
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-28 18:22:37 +00:00
dotCooCoo edbf542570 Format: Fill hides the kept group fill's editors with Slide background fill
A group that keeps a gradient, pattern or picture fill for its pictures
no longer shows that fill's editor while its shapes have the slide
background fill, so editing it cannot replace their fill.
2026-10-28 04:15:58 -07:00
dotCooCoo fca0492725 Format: Fill shows Slide background fill for a group that keeps its fill
A group whose picture uses the group's fill keeps that fill when its
shapes take the slide background fill. The pane now shows Slide
background fill chosen for that group.
2026-10-28 04:10:38 -07:00
dotCooCoo b57ab3fb35 Merge commit 'refs/check/mw-deckcraft-main' into feat/slide-background-fill
# Conflicts:
#	crates/engine/src/cmd/shape.rs
#	crates/ui-egui/src/panes.rs
2026-10-28 03:50:51 -07:00
Dylan M. Taylor 8c6c72e39f Refactor ui-egui for strict Clippy checks 2026-10-28 06:02:27 +00:00
Zach BerryandClaude Sonnet 5.5 1ca71474a2 [JJ3] show.presenter answers {on, window}
The answer was null. Presenter view is its own window beside the show window,
so window is true; the doc says where it appears.

PowerPoint: Presenter View opens in a separate window on the second display
when the show starts (the Use Presenter View option); same here.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 20:34:18 -05:00
Harrison Booth b5928a182e Keep the File > New tiles inside the right margin in a narrow window (#1421)
set_max_width(CONTENT_W) widened the page past the margin whenever the window was
narrower than CONTENT_W, so the last tile in each row ran off the screen edge.
2026-10-27 19:50:52 -05:00
Harrison Booth d989389441 fix(format): a slider commits only a move to another shown value
changed() also fires when the slider rounds the value it shows, on focus too. Compare the rounded
values, so keyboard and accessibility edits commit without focus and rounding does not.
2026-10-27 19:31:36 -05:00
Harrison Booth 90ce7dcb9b test(format): clear the reflection after each preset, as #1356 reports 2026-10-27 19:18:14 -05:00
Harrison Booth faf4c0ee52 fix(format): Reflection slider with only focus does not re-add the reflection
A reflection slider that had focus and lost it to the None button committed its stale value.
Commit on focus loss only after an edit the user made, and cover it with a kittest.
2026-10-27 19:10:49 -05:00
Harrison Booth 952e4db95f Merge remote-tracking branch 'origin/main' into dc-fix-reflection
# Conflicts:
#	crates/ui-egui/src/panes.rs
2026-10-27 18:47:18 -05:00
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
FaabyyandClaude b9842d0b82 Slide show: Set Up Slide Show can keep the mouse cursor visible (#1445)
A full-screen show hides a still pointer after 2.5 s, which makes decks
with clickable, branching choices hard to use. Set Up Slide Show now has
Keep mouse cursor visible (`show.keepCursor {on?}`): the show then keeps
the normal pointer, and the pointing hand over links and actions, while
links still follow. It is a user preference kept in ui.json, since PPTX
has no place for it; off by default, Reading View unchanged.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-27 10:50:26 +00:00
62ea604394 Animations: the Add Animation menu scrolls when it is taller than the window (fixes #1370)
Every effect in one column is taller than a 1440p screen, and the popup
did not scroll, so the last entries could not be reached. Cap the menu at
the window height minus the title bar and ribbon, and scroll inside it.

Co-Authored-By: Grok 4.7 <noreply@x.ai>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 23:48:25 +01:00
Harrison Booth 1b2e5ea9e0 fix(format): keep explicit slider edits, skip only the rounding 2026-10-26 17:36:59 -05:00
Harrison Booth 5a28760b1e fix(format): Reflection None clears after another preset (#1356)
The effect sliders rounded 55.000000000000007 to 55 and read that as a change,
so each frame re-added the reflection the None button had just cleared.
2026-10-26 17:29:31 -05: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