Sazid Al Bayazid
40e05abd45
Text: anchorCtr centres the drawn text block - right-aligned text stayed glued to the box edge ( #736 )
...
anchorCtr's centreing offset was computed for a block that starts at
the box's left edge and then added to lines that alignment had already
placed within the box. For a right-aligned line the two shifts
stacked: the line ended up starting at the box's centre and ran past
the right edge - on the tdf165341 fixture the sentence was cut off at
"...paragraph rig". The clamp at zero made it worse for content wider
than the box: all the overflow went to the right only.
The origin is now set so the drawn text block's own centre (min/max of
the laid-out line extents) lands on the box's centre: every alignment
stays inside the box when it fits, and overflow centres symmetrically
past both edges, as PowerPoint draws it. Empty lines carry no ink and
stay out of the block; vertical text and multi-column bodies are
unchanged (centring is unimplemented for them, as before).
Tests: right/left-aligned, trailing empty paragraph, mixed alignment,
symmetric overflow, and a no-anchorCtr control - the block's centre
equals the box's centre in every case.
Reported with a public LibreOffice test fixture (tdf165341.pptx);
verified by rendering the slide before (text cut at the right edge)
and after (whole sentence centred).
2026-10-15 04:41:37 +06:00
Brandon Thomas
afe4a408b9
Merge PR #438 integrated on land-r9: an exhausted id space refuses growth instead of duplicating ids ( #407 )
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-14 16:25:59 -04:00
Brandon Thomas and Claude Opus 5.5
67e1ab6373
Merge PR #438 from albayazid: Model: an exhausted id space refuses growth instead of duplicating ids ( #407 )
...
Conflicts resolved onto main's newer shape, and the PR's policy applied to
every alloc_id/add_media/new_slide call site main has grown since: commands
answer bad(cmd, NO_ID_SPACE) (slide.reuse, insert.zoom, SmartArt, photo
album, review.accept, handout/notes masters, master placeholders,
background/artistic/compress pictures, transition sound, ink to shape,
paste special, file.new templates); reid/bring_media/renumber/regenerate
and compare::adopt/accept are fallible; outline import keeps what fit.
Tests use expect() on the now-Option results.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 16:24:26 -04:00
Brandon Thomas and Claude 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 Thomas
bb15c0a033
Merge the landing branch into land-r8
...
# Conflicts:
# contributors/people.toml
# crates/engine/src/cmd/file.rs
# crates/pptx/src/opc.rs
# crates/pptx/tests/roundtrip.rs
# crates/ui-egui/src/backstage.rs
# crates/ui-egui/src/lib.rs
2026-10-14 15:53:57 -04:00
Brandon Thomas and Claude Opus 5.5
d66833b7c2
Fix up merged PRs: land-r6's changes fitted to the landing branch
...
- review.thesaurus's params doc parses under describe's grammar; describe's edit.copy test
expects the landing branch's {text, html?} answer.
- The Language dialog test picks the landing branch's "Français (France)" entry; the Format
Background test allows the pane's title to appear twice.
- Progress docs rebuilt from the landing branch's versions with land-r6's rows applied on top,
so the union merge no longer drops the pen-pressure, ui.pointer and ui.key rows.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 15:23:16 -04:00
Brandon Thomas
b6a4343ec5
Merge PR #355 from NikitkaRa: Charts: keep the embedded workbook when a chart is saved unchanged ( #335 )
...
# Conflicts:
# contributors/people.toml
# crates/pptx/src/opc.rs
# crates/pptx/src/read/chart.rs
# crates/pptx/src/read/shapes.rs
# crates/pptx/src/write/chart.rs
2026-10-14 15:23:07 -04:00
Brandon Thomas and Claude 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
91eb9d8884
Merge the landing branch into land-r6
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/engine/src/tools.rs
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/panes.rs
# crates/ui-egui/src/ribbon.rs
# crates/ui-egui/src/status.rs
# crates/ui-egui/src/textures.rs
# crates/ui-egui/src/thumbs.rs
2026-10-14 15:14:21 -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 and Claude Opus 5.5
c448a3dba9
Fix up merged PRs: progress docs without the rows the union merges duplicated
...
Stale status lines and table rows from the older PRs are folded into main's current ones.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 15:05:32 -04:00
Brandon Thomas
95cb3be9e6
Merge PR #522 from NikitkaRa: UI: keep editor slides on the Retina pixel grid
...
# Conflicts:
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/panes.rs
# crates/ui-egui/src/sorter.rs
# crates/ui-egui/src/textures.rs
2026-10-14 14:58:19 -04:00
Brandon Thomas
f8949f28cd
Merge PR #692 from NikitkaRa: UI: Format Background picture fill sets transparency and tiling
...
# Conflicts:
# crates/engine/src/cmd/design.rs
# crates/ui-egui/src/panes.rs
2026-10-14 14:55:58 -04:00
Brandon Thomas
c354f02279
Merge PR #177 from Mathiasko: Export: animated GIF of the deck (Export… dialog, CLI, MCP) ( #171 )
...
# Conflicts:
# apps/deckcraft-cli/src/main.rs
# crates/engine/src/cmd/file.rs
# crates/engine/src/lib.rs
# crates/mcp/src/tests.rs
# crates/mcp/src/tools.rs
# crates/ui-egui/src/dialogs.rs
2026-10-14 14:52:34 -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
5fbdb6c79e
Merge PR #479 from NikitkaRa: Web: keep a picked file on the document and slide that asked for it
...
# Conflicts:
# crates/ui-egui/src/lib.rs
2026-10-14 14:43:55 -04:00
Brandon Thomas
4416bc170a
Merge PR #697 from NikitkaRa: UI: Format Shape fill transparency follows the selection
...
# Conflicts:
# crates/ui-egui/src/panes.rs
2026-10-14 14:43:08 -04:00
Brandon Thomas
bd607f333a
Merge PR #648 from NikitkaRa: Canvas: a trackpad swipe turns the page
...
# Conflicts:
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:42:43 -04:00
Brandon Thomas
6f38c958b6
Merge PR #674 from NikitkaRa: Canvas: a two-finger twist rotates the selection
...
# Conflicts:
# crates/engine/src/cmd/shape.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:42:12 -04:00
Brandon Thomas
b3ec4013e6
Merge PR #230 from pierrevbc: Tables: caret in the edited cell, click-to-place, drag borders to resize
...
# Conflicts:
# crates/engine/src/cmd/text.rs
# crates/engine/src/tests.rs
# crates/engine/src/tools.rs
# crates/render/src/lib.rs
# crates/ui-egui/src/canvas.rs
2026-10-14 14:41:34 -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 and Claude Opus 5.5
7dcfe0f989
Fix up merged PRs: a textless shape still copies as the objects marker so Ctrl+V pastes it ( #182 ), not as a picture ( #702 )
...
With only an image on the system clipboard egui-winit drops Ctrl+V, so #702 's
picture copy of a textless shape undid main's #182 fix. Text keeps #702 's HTML,
and empty plain text falls back to the marker.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:40:18 -04:00
Brandon Thomas
38e95d8c15
Merge PR #702 from NikitkaRa: Clipboard: rich text and pictures for Pages and Keynote
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:39:36 -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
b590cb0b0b
Merge PR #303 from hoblin: deckcraft-cli help explains the CLI to an agent
...
# Conflicts:
# apps/deckcraft-cli/src/main.rs
# crates/engine/src/cmd/design.rs
# crates/engine/src/cmd/file.rs
# crates/engine/src/cmd/format.rs
# crates/engine/src/tests.rs
2026-10-14 14:36:13 -04:00
Brandon Thomas
12df77ed19
Merge PR #637 from NikitkaRa: UI: Paragraph dialog sets alignment, indents and spacing
...
# Conflicts:
# crates/engine/src/cmd/format.rs
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:30:55 -04:00
Brandon Thomas
be445fb083
Merge PR #630 from NikitkaRa: UI: Font dialog sets character formatting in one step
...
# Conflicts:
# crates/engine/src/cmd/format.rs
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/dialogs.rs
2026-10-14 14:27:38 -04:00
Brandon Thomas
f6cf99bf87
Merge PR #291 from albayazid: Start screen: a missing Recent file is marked, its error shows, and entries can be removed ( #172 )
...
# Conflicts:
# crates/ui-egui/src/lib.rs
2026-10-14 14:27:28 -04:00
Brandon Thomas
80d3ad5f24
Merge PR #243 from pierrevbc: Canvas: drag the frame of a text box being edited to move it
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/engine/src/tools.rs
2026-10-14 14:26:59 -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
3a8927e3f3
Merge PR #691 from NikitkaRa: UI: Trim Media dialog follows the selection
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
2026-10-14 14:11:53 -04:00
Brandon Thomas
a4fa978903
Merge PR #703 from NikitkaRa: UI: Slide Master Preserve and Title or Footers placeholders
...
# Conflicts:
# crates/engine/src/cmd/design.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:06:42 -04:00
Brandon Thomas
7266b30018
Merge PR #698 from NikitkaRa: UI: Design Effects applies a theme effect scheme
...
# Conflicts:
# crates/engine/src/cmd/design.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:04:24 -04:00
Brandon Thomas
2009242055
Merge PR #684 from NikitkaRa: Export: a PNG or JPEG slide records 144 dpi at the default 2× size
...
# Conflicts:
# crates/engine/src/cmd/file.rs
# crates/engine/src/tests.rs
2026-10-14 14:02:59 -04:00
Brandon Thomas
1e80cd5547
Merge PR #440 from NikitkaRa: Palette: skip commands that need a value
...
# Conflicts:
# crates/ui-egui/src/menus.rs
2026-10-14 14:01:08 -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 and Claude Opus 5.5
f9c1000e35
Fix up merged PRs: rustfmt; drop doc rows the union merge left twice
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 13:51:53 -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
d6d7e91c47
Merge PR #679 from NikitkaRa: Show: Show Media Controls hides the playback bar
...
# Conflicts:
# crates/engine/src/cmd/review.rs
# crates/ui-egui/src/show.rs
2026-10-14 13:46:55 -04:00
Brandon Thomas
ee991563c9
Merge PR #441 from NikitkaRa: Show: a laser pointer that leaves no ink
...
# Conflicts:
# crates/ui-egui/src/show.rs
2026-10-14 13:45:58 -04:00
Brandon Thomas
0ed74b684a
Merge the SmartArt and dialog PRs integrated on land-r1 ( #596 #601 #606 #610 #613 #617 #621 #623 #627 #634 #557 #689 #668 )
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/src/dialogs.rs
2026-10-14 13:44:43 -04:00
Brandon Thomas
8d429a23e9
Merge PR #483 from NikitkaRa: Media: keep playback with the document and the clip ( #415 )
...
# Conflicts:
# crates/ui-egui/src/show.rs
2026-10-14 13:44:40 -04:00
Brandon Thomas
5b017f4590
Merge PR #682 from NikitkaRa: UI: Alt Text's decorative checkbox follows the selection
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
2026-10-14 13:36:55 -04:00
Brandon Thomas
62fe8571f6
Merge PR #687 from NikitkaRa: UI: Create New Theme Fonts dialog edits the theme in one step
...
# Conflicts:
# crates/engine/src/cmd/design.rs
# crates/ui-egui/src/dialogs.rs
2026-10-14 13:33:36 -04:00
Brandon Thomas
18be662a2a
Merge PR #668 from NikitkaRa: UI: Date and Time dialog inserts a format in one step
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
2026-10-14 13:30:31 -04:00