Brandon Thomas
e1a92e37c6
Merge PR #609 from NikitkaRa: Review: spelling with Hunspell dictionaries, suggestions, Change and Ignore All
...
# Conflicts:
# crates/engine/src/lib.rs
# crates/engine/src/tests.rs
# crates/ui-egui/src/dialogs.rs
2026-10-14 14:40:49 -04:00
Brandon Thomas and Claude Opus 5.5
2173cf9569
Fix up merged PRs: Draw Table and Table Eraser sit in the Table Design tab
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:40:38 -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 and Claude Opus 5.5
3b28496c36
Fix up merged PRs: main's newer params docs fit describe's grammar; help pages for bench and render-transition
...
file.export's slide range and transition.sound's keys parse as parameters, and the subcommands
main added since #303 have their own help page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:40:09 -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 and Claude Opus 5.5
1659e06565
Fix up merged PRs: Draw Table's table lookup uses the checked shape id param ( #544 after #97 ); its test no longer writes to /tmp
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:39:10 -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 and Claude Opus 5.5
7acb9faad1
Fix up merged PRs: one format.tabs and one Tabs dialog for #567/#569 and #637
...
#569 and #637 each added a `format.tabs` command and a Tabs dialog. Keep one of each:
- format.tabs takes #567/#569's add/move/remove/clear/set plus #637 's strict `set`
(unknown alignment or non-object entries are errors, stops within 0.05 pt collapse,
last wins) and opens the Tabs dialog when called with no fields, as #637 did.
A defaultTab-only call no longer rewrites the stops.
- The Tabs dialog is #569 's; it now seeds from the dialog's params when Paragraph (or
format.tabs) opened it, and on OK hands the applied stops back to Paragraph.
- Tests adapted: an empty format.tabs opens the dialog; the Paragraph → Tabs test sets
stops through #569 's dialog fields.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:38:03 -04:00
Brandon Thomas
23eb82c02a
Merge PR #544 from NikitkaRa: Tables: Draw Table pencil and Table Eraser
...
# Conflicts:
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:38:00 -04:00
Brandon Thomas
c3489d6a99
Merge PR #655 from NikitkaRa: Show: presenter view keeps a portrait Next slide inside its column
...
# Conflicts:
# crates/ui-egui/src/show.rs
2026-10-14 14:37:36 -04:00
Brandon Thomas and Claude Opus 5.5
2a410e54fa
Fix up merged PRs: main's newer textures (document window, SmartArt previews, show grid) go through textures::upload so they stay within the GPU max texture side ( #652 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:37:30 -04:00
Brandon Thomas
e225e4eec1
Merge PR #652 from NikitkaRa: UI: keep every texture within the GPU max texture side
...
# Conflicts:
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/panes.rs
2026-10-14 14:37:12 -04:00
Brandon Thomas
8587be6af9
Merge PR #542 from NikitkaRa: Design: Variants gallery with four colour variations of the theme
...
# Conflicts:
# crates/engine/src/cmd/design.rs
# crates/engine/src/tests.rs
2026-10-14 14:37:07 -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
Магда М.Г.
8c3404fc87
Fonts: falling back to the default face no longer deadlocks
...
cascade's last fallback searched the loaded faces and, finding none that
draws the cluster, called `first` while the search's read guard was still
alive (a temporary in the match arm lives to the end of the `let`).
`first` looks up the default family, which loads it through add_fonts,
and add_fonts takes the faces' write lock even when there is nothing to
add: the thread waited on itself, and every other thread then waited on
the loading lock it held.
It shows when a run's chain is empty and nothing loaded draws the
character before the default family has been looked up, so it depends on
which test (or document) gets there first: deckcraft-text's tests hung in
4 of 10 parallel runs here (all threads parked in system_fallback /
try_family, one in add_fonts' write), and in 0 of 15 with this change.
The search now finishes before `first` runs. New test
falling_back_to_the_default_face_does_not_deadlock reaches that path on a
fresh database; it times out on main and passes with the fix.
2026-10-14 20:35:43 +02:00
Brandon Thomas
89da88e374
Merge PR #258 from RCShoemaker: fix(cli): render refuses an unknown option instead of writing it as a file ( #235 )
...
# Conflicts:
# apps/deckcraft-cli/src/main.rs
# contributors/people.toml
2026-10-14 14:34:57 -04:00
Brandon Thomas
e406e11db2
Merge PR #444 from MarekSpodBiedry: CLI: render-transition refuses --t values that would share one file name ( #423 )
...
# Conflicts:
# apps/deckcraft-cli/src/main.rs
2026-10-14 14:33:40 -04:00
Brandon Thomas
1c150c3c31
Merge PR #345 from marcoarnulfo: Review: the Language dialog marks the selected text with the language you pick
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:31:22 -04:00
Brandon Thomas and Claude Opus 5.5
2dc22843e4
Fix up merged PRs: the missing-recent test reads main's toast, which now carries open errors
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:31:11 -04:00
Brandon Thomas and Claude Opus 5.5
8ee597216d
Fix up landed PRs from review
...
- #178 : ToUnicode ranges looked up without indexing
- #465 : frame_num gaps are concealed (bounded) even when the SPS forbids them; cut streams keep playing
- #471 : control request lines up to 256 MB so picture/media inserts still fit
- #473 : a merge that loses its only row or column is removed, with regression tests
- #521 : AutoCorrect no longer rewrites real words (cant, wont, im)
- #654 : inherit_placeholder_geometry's doc comment back on its function
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:31:01 -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 and Claude Opus 5.5
0609ca01cb
Fix up merged PRs: right-click on the edited text box's frame selects that box
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:27:15 -04:00
Brandon Thomas
f0dbc08c09
Merge PR #569 from NikitkaRa: Text: Tabs dialog and the ruler's tab selector (stacked on #567 )
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
2026-10-14 14:27:04 -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
aec4043ccd
Merge PR #567 from NikitkaRa: View: indent and tab markers on the ruler
...
# Conflicts:
# crates/engine/src/cmd/format.rs
# crates/ui-egui/src/canvas.rs
2026-10-14 14:26:32 -04:00
Brandon Thomas
8fde5f31e7
Merge PR #204 from justinjohn0306: Pictures: Change Picture replaces the selected picture ( #115 )
...
# Conflicts:
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:26:16 -04:00
Brandon Thomas
a0d97fa931
Merge PR #644 from NikitkaRa: Startup: survive damaged settings, font folders, recovery folders and small texture limits
...
# Conflicts:
# crates/engine/src/recovery.rs
# crates/fonts/src/fontdb.rs
# crates/fonts/src/lib.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:24:45 -04:00
Brandon Thomas
d498633faf
Merge PR #654 from NikitkaRa: PPTX: shape text anchors at the top when the file gives no anchor; write ctr for centred shapes
2026-10-14 14:24:17 -04:00
Brandon Thomas
71c3848eff
Merge PR #521 from NikitkaRa: Text: AutoCorrect options, case rules and your own entries
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-14 14:24:16 -04:00
Brandon Thomas
42b6e8e871
Merge PR #473 from NikitkaRa: Table: inserting and deleting rows and columns keeps merges consistent ( #408 )
2026-10-14 14:24:15 -04:00
Brandon Thomas
fca521ac8c
Merge PR #471 from NikitkaRa: Control server: bound connections, line length, queue and socket timeouts ( #418 )
2026-10-14 14:24:15 -04:00
Brandon Thomas
3335ee0feb
Merge PR #465 from NikitkaRa: H.264: bound frame_num gap work and reject gaps the SPS forbids ( #427 )
...
# Conflicts:
# crates/h264/src/synth_tests.rs
2026-10-14 14:24:15 -04:00
Brandon Thomas
31390e5e21
Merge PR #178 from MarekSpodBiedry: PDF: map each glyph to its shaping cluster's text in ToUnicode ( #164 )
...
# Conflicts:
# crates/pdf/src/tests.rs
2026-10-14 14:24:15 -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 and Claude Opus 5.5
a85024558d
Fix up merged PRs: Quick Access Toolbar defaults keep main's Export button and custom-show start
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:16:59 -04:00
Brandon Thomas
f6661ed15e
Merge PR #563 from NikitkaRa: UI: customizable Quick Access Toolbar
...
# Conflicts:
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:16:22 -04:00
Brandon Thomas and Claude Opus 5.5
b2b378a3f0
Fix up merged PRs: dedupe doc rows left by the union merges
...
One EMF / WMF parity row naming both GDI clip regions and EMF+ playback; drop
the stale Tables, Charts, chartex and SmartArt rows that came back with the
chartex PRs; one SVG-gap sentence; one charts-gap paragraph.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:13:50 -04:00
Brandon Thomas
ea12297822
Merge PR #223 from marcoarnulfo: Title bar: on macOS the window buttons sit centred in it ( #71 )
...
# Conflicts:
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:13:29 -04:00
Brandon Thomas
4eae520beb
Merge PR #484 from NikitkaRa: Video: check the whole picture store against a memory budget ( #398 )
...
# Conflicts:
# crates/av1/src/decoder.rs
2026-10-14 14:12:46 -04:00
Brandon Thomas
16355053e1
Merge PR #481 from NikitkaRa: AV1: reject duplicate film-grain scaling points; a failed job still publishes ( #394 )
...
# Conflicts:
# crates/av1/src/decoder.rs
2026-10-14 14:12:22 -04:00
Brandon Thomas
8ea2cb0871
Merge PR #361 from NikitkaRa: CLI: say that render --slide counts from 0 ( #359 )
...
# Conflicts:
# apps/deckcraft-cli/src/main.rs
2026-10-14 14:12:10 -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 and Claude Opus 5.5
0c3f4eee63
Fix up merged PRs: Slide Master Preserve/placeholders know the notes and handout master views
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:07:31 -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 and Claude Opus 5.5
31e22977f7
Fix up merged PRs: the palette test skips UI commands that need a value ( #440 hides them)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:05:00 -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