Commit Graph
1781 Commits
Author SHA1 Message Date
marshiyar b7482dd392 engine: animation.add and animation.set take the points of a custom motion path
What was wrong: animation.add ignored a `path` parameter, so a customPath
animation always got the default straight path of a quarter of the slide
height, and no command could set or change the points of one.

What changed: animation.add, animation.set and animation.options accept `path`
for a motion path: either points [[x, y], ...] in slide points, as offsets from
where the shape sits (converted to the stored slide-fraction path; `closed`
returns to the first point), or the OOXML path string animation.get answers.
At most 1000 points, finite numbers within 1e6 points, and strings of at most
16 KiB made of path commands and numbers are accepted; anything else is
refused before the deck changes, as is `path` on an animation that is not a
motion path. animation.add answers the stored path.

How it was tested: three new tests in cmd/animation.rs: points become the
expected path (add, set with `closed`, back to the default without `path`), a
raw string is kept and animation.options replaces it, and malformed paths are
refused with nothing added. The animation tests pass, and clippy is clean with
-D warnings.

Fixes #1576
2026-10-30 20:13:05 -07:00
marshiyar e83f964077 mcp: insert_chart takes x, y, w and h
What was wrong: the insert_chart tool had no x, y, w or h in its schema, so the
server refused them as unknown arguments, while insert_picture and insert_table
take them. A chart could only be placed at the default box, [144, 81, 672, 378]
on a 960x540 slide, and then had to be moved with a second command.

What changed: insert_chart declares x, y, w and h and folds them into the
engine's `rect` when all four are given, as insert_picture and insert_table do.
Without all four the chart keeps its default place.

How it was tested: insert_chart_takes_a_box failed before the change (the
arguments were refused) and passes after it. It checks the box of the placed
chart, that a partial box leaves the default place, and that an extreme box is
answered without a panic. The rest of the deckcraft-mcp tests pass, and clippy
is clean with -D warnings.

Fixes #1151
2026-10-30 20:13:00 -07:00
Brandon ThomasandClaude Opus 5.5 eaeb06c655 Release 0.13.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 22:59:19 -04:00
marshiyar ede7a7ead7 ogg: bound damage recovery work and the warnings list
What was wrong: when a page failed its CRC the demuxer had already read the
whole page (up to about 64 KiB), then moved on by one byte and tried again.
Nothing was charged for it, and only the scan for the next capture pattern had
a budget, which a candidate that matches "OggS" at the current position never
reaches. A file made of capture patterns 64 bytes apart, each claiming a full
page, made a 1 MB file read about 957 MB and compute a CRC over all of it. The
warnings list also grew with every damaged page, without limit.

What changed: the per-file recovery budget (32 MiB, the scan's existing one) is
now also charged with the length of every page read only to find its CRC wrong.
When it is spent the pages found so far are returned with a warning saying the
rest was not searched. At most 256 warnings are kept, plus one saying the rest
were dropped.

How it was tested: two new tests failed before the fix and pass after it, a
counting ByteSource over 1 MB of dense fake pages (bytes read stay within the
budget; before, 957 MB were read) and 100,000 bad-CRC pages (before, 199,999
warnings). A file of good pages is not charged and has no warnings. The other
ogg tests still pass, and clippy is clean with -D warnings.

Completes the Ogg part of storytold/filmcraft#2794
2026-10-30 18:27:08 -07:00
marshiyar 6113f4e1a2 contributors: add names for marshiyar 2026-10-30 17:57:10 -07:00
Dylan M. Taylor 4c1d77ddce fix(flatpak): allow reading launcher version pins (#1575)
* fix(flatpak): allow reading launcher version pins

* fix(flatpak): allow reading launcher version pins
2026-10-30 20:12:24 -04:00
NetterSilverandClaude Haiku 5.5 443f503407 Reject invalid index in transition commands instead of using selection
Found while testing crates/engine/src/cmd/transition.rs:47-54 (slide_indices, via usize_param)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 23:16:32 +00:00
Harrison Booth ee4bdbcd7d fix: initialize slide action test run props 2026-10-30 17:23:00 -05:00
NetterSilverandClaude Sonnet 5.5 adaa4e6fa1 fix: keep per-level formatting when formatting layout/master placeholders
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 23:22:33 +01:00
NetterSilverandClaude Opus 5.5 446bc528ad Make layout/master placeholder formatting reach slides
Fixes #1487

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 23:17:36 +01:00
Harrison Booth 3c068df628 test(h264): complete picture slice fixture 2026-10-30 17:13:38 -05:00
Harrison Booth f8165751e5 Merge origin/main into dc-slide-actions-list 2026-10-30 17:12:14 -05:00
Harrison Booth 7190c85860 test(h264): avoid singleton fixture loop 2026-10-30 17:06:36 -05:00
Harrison Booth ddd39249ba test(codec): strengthen configuration slice regressions 2026-10-30 17:03:36 -05:00
Harrison Booth b4c1905d78 dc-fix-1519: address print preview review 2026-10-30 16:51:34 -05:00
Harrison Booth 2c11865b2d codec: accept hvcC SEI arrays without allocation 2026-10-30 16:49:21 -05:00
Harrison Booth b92a7ddbd5 Merge remote-tracking branch 'origin/main' into dc-fix-1514 2026-10-30 16:37:40 -05:00
Harrison Booth 0768e95591 Print preview: merge origin/main 2026-10-30 16:36:30 -05:00
Harrison Booth ef6fd29928 DC-1521: hit-test each shape animation independently 2026-10-30 16:00:43 -05:00
Harrison Booth a3449185ac DC-1521: merge origin/main 2026-10-30 15:59:33 -05:00
Brandon Thomas c4221b1a7c Merge pull request #1371
Slide show: render the Presenter View's next-slide preview off the UI thread
2026-10-30 16:08:21 -04:00
Brandon Thomas 46f23229ab Merge pull request #1510
Clipboard HTML export stays within its size cap
2026-10-30 16:08:21 -04:00
Brandon Thomas ae08bbe62d Merge pull request #1546
Accessibility: low contrast is checked across all text runs
2026-10-30 16:08:20 -04:00
Brandon Thomas 7b46958fa2 Merge pull request #1536
Suggest corrections for misspelt all-caps words
2026-10-30 16:08:19 -04:00
Brandon Thomas c7b8a11895 Merge pull request #1406
Find zip entries stored with backslash separators in pptx packages
2026-10-30 16:08:19 -04:00
Brandon Thomas 81eff036d2 Merge pull request #1439
Duplicate names the copy like PowerPoint: next automatic name, chosen names kept
2026-10-30 16:08:18 -04:00
Brandon ThomasandClaude Opus 5.5 bcbdb76bfd Slide show test: clear the textures of the lone presenter frame
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:06:58 -04:00
Brandon Thomas 3dc66ac1a5 Merge pull request #1417
Text: a space after a symbol-font character keeps the run's font
2026-10-30 16:05:36 -04:00
Brandon Thomas 1b5d860dfc Merge pull request #1449
Format Shape Effects: preset tiles for Shadow, Glow and Soft Edges, shadow Size
2026-10-30 16:05:36 -04:00
Brandon Thomas 3e8a9193bc Merge pull request #1447
Format Shape: Scale Height/Width and a From origin in Size & Properties

# Conflicts:
#	crates/ui-egui/src/panels/format_shape.rs
2026-10-30 16:05:35 -04:00
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 ThomasandClaude Opus 5.5 c66fee15f2 Merge origin/main into #1417: the symbol-font space guard moves to shape.rs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:05:02 -04:00
Brandon ThomasandClaude Opus 5.5 b7bec00386 Merge origin/main into #1449: preset tiles move into effects_tab
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:03:42 -04:00
Brandon ThomasandClaude Opus 5.5 087c11bb42 Merge origin/main into #1447: Size & Properties moves to size_tab, From uses craft_ui::ComboBox
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:01:56 -04:00
Brandon ThomasandClaude Opus 5.5 4d2c1a3bac Clipboard HTML: put no HTML on the clipboard when even plain text is over the cap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:00:36 -04:00
Brandon Thomas 28756fc755 Merge pull request #1462
Docs: refresh gaps and roadmap against merged PRs
2026-10-30 15:59:10 -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 Thomas 2275e56319 Merge pull request #1518
Automatic lists work without Replace text as you type
2026-10-30 15:59:09 -04:00
Brandon Thomas c8d1a7c7df Merge pull request #1532
Normalise CRLF in replace_text before computing the diff
2026-10-30 15:59:09 -04:00
Brandon Thomas 8713686274 Merge pull request #1489
Start a new paragraph when an HTML block tag opens in paste

# Conflicts:
#	crates/engine/src/cmd/richclip.rs
2026-10-30 15:59:08 -04:00
Brandon Thomas e6f9e912f7 Merge pull request #1482
Fix HTML paste style leaking past closing tags of a, td, mark
2026-10-30 15:58:55 -04:00
Brandon Thomas 6208d3eaeb Merge pull request #1545
Fix whole-deck benchmark statistics
2026-10-30 15:58:55 -04:00
Brandon Thomas 58abe9ddb7 Merge pull request #1513
Bound MCP stdio request frames
2026-10-30 15:58:54 -04:00
Brandon Thomas 34cfc5b20b Merge pull request #1500
Allow multiple automation roots per kind
2026-10-30 15:58:54 -04:00
Brandon Thomas e279461ca7 Merge pull request #1493
fix(cli): support --cmd-file for batch commands (#1098), carried from #1150
2026-10-30 15:58:53 -04:00
Brandon Thomas 63934efc69 Merge pull request #1451
CLI: finish file output after stdout closes
2026-10-30 15:58:53 -04:00
Brandon Thomas f61b7a34dd Merge pull request #1560
Picture Format: the Picture Styles row leaves room for Crop and Size
2026-10-30 15:58:52 -04:00
Brandon ThomasandClaude Opus 5.5 b8cfcf20a2 Accessibility contrast skips line breaks and blank runs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:58:38 -04:00
Brandon ThomasandClaude Opus 5.5 1841ab75da Spelling: check all-caps candidates in capitals so KEEPCASE words are suggested
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:57:45 -04:00