Commit Graph
49 Commits
Author SHA1 Message Date
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
Nikita Rakitin 034b312a64 Round-trip tables, charts, animation, media, sections and masters
An owned corpus of those deck kinds survives open, save and reopen. The
check found the handout master — printed header, footer, date and slide
number — was dropped on save, so import and export now keep that part.
2026-10-13 23:08:31 +03:00
Nikita RakitinandCursor a7bc932cc8 UI: WordArt adjust handles drag a text warp
A selected text warp shows one yellow handle per adjust.
Dragging it sets that guide value in one undo step.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 22:38:16 +03:00
Nikita RakitinandCursor 6a85afa236 Pptx: round-trip an owned corpus and keep notes-master text
Open, save and reopen decks we author, and compare package parts and
text. The check showed a notes master's header and footer were replaced
by an empty notes master on save.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 22:34:29 +03:00
Nikita RakitinandCursor 283b30f12d UI: WordArt Transform gallery applies a text warp
Shape Format ▸ Text Effects lists the 40 prstTxWarp presets and
No Transform. format.textWarp sets or clears that warp on the
selected text, with optional adjust values.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 21:58:35 +03:00
NikitaandCursor 82dcd86c88 Pptx: read and write embedded fonts
A deck that embeds a TrueType or OpenType face, including one wrapped as Embedded OpenType, now draws with that face and saves it back. MicroType Express subsets stay in the file and still draw in a stand-in.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 18:22:48 +03:00
Sazid Al Bayazid 69d4893689 Comments: threads and resolved state survive a .pptx round trip (#70)
The writer emitted the legacy comment part only: replies were flattened
into sibling comments, the resolved flag was dropped. Modern PowerPoint
decks carry a second, threaded part (p188) as well - and DeckCraft read
both, importing every comment twice.

Export now writes the modern threaded part (p188:cmLst, with the slide's
commentRel anchor ext and the modern authors part) next to the flattened
legacy part, the same pair of parts PowerPoint itself writes: older
readers keep the legacy view, PowerPoint 2021+ and DeckCraft read
threads, replies and resolved state. The reader prefers the modern part
when both are present and scales modern positions as EMU instead of
legacy 1/8 pt, so real PowerPoint decks stop double-importing their
comments and keep their marker positions.

Comment ids are deterministic GUIDs from the existing tables::guid, so
exports stay reproducible without a new dependency.

Known limitation for a follow-up: comments anchor with
p188:unknownAnchor (schema-valid) rather than a slide moniker, which
needs part identity the model does not have yet.

Tests: threads plus resolved state round-trip on top-level comments and
replies, both parts and the anchor-rel wiring asserted in the raw
package, part numbering with comment-free slides skipped, legacy-only
and modern-only packages import each with their own position units, and
XML-special characters survive the trip.
2026-10-13 19:25:04 +06:00
Brandon ThomasandClaude Opus 5.5 f8d54d7af4 Pictures: WMF and EMF draw, with the metafile reader ported from WordCraft (#317)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 18:27:19 -04:00
Brandon ThomasandClaude Opus 5.5 f44857624e Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#89)
Progress docs per craftrules standards/progress-docs.md: target-app parity, gaps, roadmap with alpha gate, readiness by audience (full / mainstream / essentials) with Opus 5.5 hours, and feature, format, hardware, UI and localization parity docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:09:21 -04:00