Commit Graph
59 Commits
Author SHA1 Message Date
Brandon Thomas 2d7b69d7b6 Merge pull request #1199 from marcoarnulfo/feat/anim-play-from 2026-10-23 17:10:12 -04:00
aiongg f001f37906 CI: one test binary per crate, nextest, line tables only (#1213)
* Build: line tables only for workspace crates, no debug info for dependencies

* Tests: one integration-test binary per crate

* xtask ci: nextest, doctests, test build without examples, one wasm check
2026-10-23 12:43:34 -04:00
Marco Arnulfo 19ebd9c2dc Animation Pane: Play From the selected effect
With an effect selected the pane's play button reads Play From and the
canvas preview starts at that effect on the play-all clock, so the
effects before it have already played. With nothing selected it is
still Play All. animation.preview takes an optional from index.
2026-10-22 23:03:35 +02:00
Mexandskylar taylor-barrick f34f4121c8 Format: retain imported chart parts through native saves (#851)
* M2.1: preserve chart parts through native saves

Serialize retained chart relationships and payloads in native files.
Add native and headless file-command round-trip regressions.

Contribution on behalf of @MMexicann.

* Format: bound opaque chart parts as native ZIP entries

Address maintainer feedback on the existing PR. Preserve upstream work and document tested scope and validation limits.

* Model: track transient native chart part entries

Address maintainer feedback on the existing PR. Preserve upstream work and document tested scope and validation limits.

* PPTX: initialize native chart entry metadata

Address maintainer feedback on the existing PR. Preserve upstream work and document tested scope and validation limits.

* Engine: adapt chart native roundtrip fixtures

Address maintainer feedback on the existing PR. Preserve upstream work and document tested scope and validation limits.

* Docs: describe bounded chart sidecars and validation

Address maintainer feedback on the existing PR. Preserve upstream work and document tested scope and validation limits.

* Roadmap: record bounded chart persistence evidence

Address maintainer feedback on the existing PR. Preserve upstream work and document tested scope and validation limits.

---------

Co-authored-by: skylar taylor-barrick <hi@skylar.cc>
2026-10-19 11:44:16 -06:00
Mex c8dc372519 M6.1: preserve PPTX trigger click steps
Keep later On Click effects and paragraph builds in separate interactive steps.
Add round-trip and headless show regressions.

Contribution on behalf of @MMexicann.
2026-10-15 22:31:32 +02:00
skylar taylor-barrick 09c7f60567 PDFW2: integrate current main with shared PDF writing 2026-10-14 21:00:04 -06:00
Brandon ThomasandClaude Opus 5.5 a15d93acdd Fix up #747 and #772 from review: docs keep their status headers (log rows stay), no milestone renaming; the bullet test no longer saves screenshots; clippy's as_chunks in the bullet render test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:00:48 -04:00
skylar taylor-barrick 0cbe475f13 fix(pdf): reconcile writer with notes and handout masters (PDFW)
Preserve notes and handout master export, visible text and native parallel
compression while propagating shared font errors through each export path.
Keep the dependency check accurate for native and WASM feature resolution.

PR #708.
2026-10-14 19:44:21 -06:00
Mex f4ce764d1c M13.1: validate remote MCP replies (#718)
Reject unrelated, malformed, incomplete and oversized replies without replaying commands.
Reconnect before sending when unsolicited reply bytes are buffered.

Contribution on behalf of @MMexicann.
2026-10-14 22:24:15 +02:00
Brandon ThomasandClaude Opus 5.5 4517dd4e88 Docs: fold the rows and headers the PR merges duplicated; parity summary regenerated
Union merges of the 2026-10-14 community PR wave stacked header lines and
left near-duplicate rows, bullets and paragraphs with per-PR counts. Each
progress doc now has one status line and one row per fact, with current
numbers: breadth 84% over 191 features (cargo xtask parity, after removing
duplicate Thesaurus/AutoCorrect/Artistic effects/Corrections checklist
rows), 320 engine commands, 41 dialogs, 1,641 tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:13:37 -04:00
Brandon ThomasandClaude Opus 5.5 b9851d9329 Merge PR #611 from NikitkaRa: Draw: pen pressure scales ink width
Fix-ups in the merge (review): uniform-width and highlighter strokes are drawn as one path (on
the slide and in the live preview) so see-through ink doesn't darken where segments overlap;
segment pairs are destructured instead of indexed; tests that build pointer events set the new
pressure field.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 15:18:04 -04:00
Brandon Thomas b56d5792b0 Merge the format, canvas and dialog PRs integrated on land-r4 (#567 #569 #630 #637 #536 #559 #519 #506 #549 #556 #525)
# Conflicts:
#	crates/engine/src/cmd/review.rs
#	crates/engine/src/tests.rs
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/panes.rs
2026-10-14 15:06:35 -04:00
Brandon Thomas b267a921cd Merge PR #519 from NikitkaRa: UI: WordArt adjust handles drag a text warp
# Conflicts:
#	crates/engine/src/tests.rs
#	crates/engine/src/tools.rs
#	crates/geom/src/warp.rs
2026-10-14 14:46:54 -04:00
Brandon Thomas 79b3e3693f Merge PR #571 from NikitkaRa: UI: preview slide animations on the editor canvas
# Conflicts:
#	crates/ui-egui/src/canvas.rs
#	crates/ui-egui/src/control.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/show.rs
2026-10-14 14:40:51 -04:00
Brandon Thomas 2d4c4e75d8 Merge PR #536 from NikitkaRa: UI: Grid Options sets spacing, snap and the on-screen grid
# Conflicts:
#	crates/ui-egui/src/canvas.rs
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/lib.rs
2026-10-14 14:39:01 -04:00
Brandon Thomas 0c2c433ade Merge the chart and EMF+ metafile PRs integrated on land-r2 (#532 #537 #591 #594 #598 #602 #603 #638 #640 #662 #666 #669 #690 #582 #588 #633 #635)
# Conflicts:
#	crates/pptx/src/write/mod.rs
#	crates/pptx/tests/roundtrip.rs
2026-10-14 14:17:35 -04:00
Brandon Thomas b3c9cc099c Merge the PPTX writer, notes/handout master, PDF and slide-show PRs integrated on land-r3 (#518 #531 #535 #533 #572 #573 #577 #580 #583 #592 #685 #528 #483 #490 #441 #671 #679 #649 #656 #660 #664 #224)
# Conflicts:
#	crates/engine/src/tests.rs
#	crates/model/src/lib.rs
#	crates/pptx/src/write/mod.rs
#	crates/render/src/lib.rs
#	crates/ui-egui/src/canvas.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/thumbs.rs
2026-10-14 13:56:41 -04:00
Brandon Thomas 912598fa46 Merge PR #675 from NikitkaRa: View: Zoom dialog applies a percent or Fit
# Conflicts:
#	crates/ui-egui/src/dialogs.rs
2026-10-14 13:54:33 -04:00
Brandon Thomas bc62c58b17 Merge PR #664 from NikitkaRa: Show: show the slide number while typing it
# Conflicts:
#	crates/ui-egui/src/show.rs
2026-10-14 13:49:49 -04:00
Brandon Thomas e74015490b Merge PR #660 from NikitkaRa: Show: play a custom show
# Conflicts:
#	crates/anim/src/show.rs
#	crates/engine/src/cmd/review.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/show.rs
2026-10-14 13:49:10 -04:00
Brandon Thomas 3e89fbbaa6 Merge PR #656 from NikitkaRa: Presenter view: pause and reset the timer, and notes size
# Conflicts:
#	crates/ui-egui/src/show.rs
2026-10-14 13:48:31 -04:00
Brandon Thomas 6c605be582 Merge PR #649 from NikitkaRa: Show: See All Slides and zoom
# Conflicts:
#	crates/ui-egui/src/show.rs
2026-10-14 13:47:54 -04:00
Brandon Thomas 8f0640a7b2 Merge PR #603 from NikitkaRa: Render: draw chart trendlines
# Conflicts:
#	crates/render/src/chart.rs
2026-10-14 13:47:08 -04:00
Brandon Thomas 085ba98d47 Merge PR #533 from NikitkaRa: Pptx: round-trip tables, charts, animation, media, sections and masters
# Conflicts:
#	crates/pptx/src/write/mod.rs
2026-10-14 13:29:06 -04:00
Brandon Thomas 0f7dc3d336 Merge PR #593 from NikitkaRa: File: six original starter decks
# Conflicts:
#	crates/engine/src/lib.rs
2026-10-14 13:21:23 -04:00
Brandon Thomas 32a2d9e6bd Merge PR #560 from NikitkaRa: UI: View › New Window opens a second window
# Conflicts:
#	crates/ui-egui/src/lib.rs
2026-10-14 13:21:19 -04:00
Brandon Thomas a5ce62fe28 Merge PR #672 from NikitkaRa: Review: previous and next comment 2026-10-14 13:09:06 -04:00
Brandon Thomas 0bab72aff2 Merge PR #590 from NikitkaRa: PPTX: round-trip chart trendlines 2026-10-14 13:08:57 -04:00
Brandon Thomas 15b9ae0267 Merge PR #578 from NikitkaRa: PPTX: round-trip 3-D models and animation bounce end 2026-10-14 13:08:56 -04:00
Brandon Thomas f4c182795f Merge PR #562 from NikitkaRa: Pptx: round-trip text effects, layout, fills, bevels and connectors 2026-10-14 13:08:54 -04:00
Brandon Thomas 4dea355f02 Merge PR #554 from NikitkaRa: Pptx: round-trip comments, links, shows, groups and inherited placeholders 2026-10-14 13:08:53 -04:00
Brandon Thomas c9e071c355 Merge PR #517 from NikitkaRa: PPTX: owned corpus round-trip, keep notes-master header and footer 2026-10-14 13:08:48 -04:00
Brandon Thomas e12f40a05a Merge PR #511 from NikitkaRa: UI: WordArt Transform gallery applies a text warp 2026-10-14 13:08:48 -04:00
Brandon Thomas 78b6c2982f Merge PR #439 from NikitkaRa: Pptx: read and write embedded fonts
# Conflicts:
#	crates/pptx/tests/roundtrip.rs
2026-10-14 13:08:43 -04:00
Nikita Rakitin 9f5de924ad View: Zoom dialog applies a percent or Fit
The dialog waits for OK. View ▸ Zoom opens it, and the arrow keeps the preset list.
2026-10-14 04:53:21 +03:00
Nikita Rakitin f0647e1bd8 Review: previous and next comment
Walk every comment in the deck from the Review tab, and list every slide in the Comments pane.
2026-10-14 04:37:49 +03:00
Nikita Rakitin 2702b48530 Show: show the slide number while typing it 2026-10-14 04:26:02 +03:00
Nikita Rakitin dfee72e742 Show: play a custom show 2026-10-14 04:19:36 +03:00
Nikita Rakitin f5fd324892 Show: presenter timer pause, reset and notes size 2026-10-14 04:06:50 +03:00
Nikita Rakitin dac0d054fe Show: See All Slides and zoom
During a show, G opens a thumbnail grid and a click jumps to that slide.
Z then a click zooms the slide to 2×. Presenter view has Black, White,
All slides and Zoom. Esc closes the grid, then the zoom, before it leaves.
2026-10-14 03:53:53 +03:00
Nikita RakitinandCursor 1a0ffc6413 Draw: pen pressure scales ink width
A pen reading of 1 is the full pen width. A lighter touch draws a thinner
stroke, and a zero reading stays visible at 8% of the pen. A mouse, a
missing or non-finite reading, and a stroke whose samples are all the old
placeholder 0.5 still draw at the pen width. PPTX keeps one width per
stroke: the mean of the samples for a pressured stroke, the pen width for
a legacy one. Tilt is not read.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 01:56:23 +03:00
Nikita Rakitin 768641615a Render: draw chart trendlines
Fit linear, exponential, logarithmic, polynomial, power and moving-average
lines, including forecast, and draw them with the equation and R² label.
2026-10-14 01:29:51 +03:00
Nikita RakitinandCursor 0cbee85ea8 File: six original starter decks
File › New and the start screen offer Briefing, Lesson, Pitch, Field Notes,
Quarterly and Evening Talk. Each is a few slides of our own text on one of
our themes. file.new takes template, and file.templates lists them. Passing
a theme as well, or blank, is refused. PowerPoint's large gallery is still
open.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 01:12:38 +03:00
Nikita Rakitin 8fd04ebd92 PPTX: round-trip chart trendlines
An owned corpus slice checks combo charts with data labels, merged
tables with diagonal borders, and text columns, autofit, vertical text
and a WordArt warp. Trendlines (type, order, period, forecast,
intercept, equation and R²) are now read and written.
2026-10-14 00:58:20 +03:00
Nikita Rakitin c94b5c8d1e PPTX: round-trip 3-D models and animation bounce end
An owned corpus opens, saves and reopens SmartArt and OLE kept as XML, audio and video bookmarks and trims, a section with a hidden slide, slide-number and date fields, ink, .glb models and animation repeat, bounce end and triggers. Relationship-bearing SmartArt and OLE, playback options and rewind stay with their open PRs.
2026-10-14 00:35:12 +03:00
Nikita RakitinandCursor b89c9cafd7 UI: preview slide animations on the editor canvas
Animations › Preview and Animation Pane › Play All play the current
slide on the canvas instead of opening the slide show. Escape or a
click stops playback. Transitions › Preview still opens the show.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 00:21:42 +03:00
Nikita Rakitin 184b76e2a7 Round-trip text effects, layout, fills, bevels and connectors
An owned corpus of those kinds survives open, save and reopen. A run's
inner shadow, reflection and soft edge were dropped, and a bevel preset
with no kept 3-D XML was not written back, so import and export now keep
them.
2026-10-14 00:04:22 +03:00
Nikita RakitinandCursor 4dbea3256f UI: View › New Window opens a second window
The editor had one window, so looking at another slide meant leaving
the one you were editing. View › New Window opens one more window on
the same presentation. That window keeps its own slide and shows edits
from the first window. Closing it leaves the presentation open.
Arrange All is not included.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 23:52:40 +03:00
Nikita Rakitin f9d5a43174 Round-trip comments, links, shows, groups and inherited placeholders
An owned corpus of those element kinds survives open, save and reopen.
Paragraph default run properties, including a link, and action sounds
were dropped on save, so import and export now keep them.
2026-10-13 23:43:03 +03:00
Nikita RakitinandCursor 37559f793c UI: Grid Options sets spacing, snap and the on-screen grid
View › Grid Options sets the grid spacing, snap to grid, snap to
other objects, and whether gridlines and guides are drawn. The
canvas grid follows that spacing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 23:14:52 +03:00