Brandon Thomas
1d7ba53cf9
Merge PR #466 from MarekSpodBiedry: File: save through a unique, exclusively created temporary file ( #391 )
...
# Conflicts:
# crates/engine/src/cmd/file.rs
2026-10-14 15:03:00 -04:00
Brandon Thomas and Claude Opus 5.5
330fc16c8c
Fix up merged PRs: zoom anchors on the unsnapped slide rect; zoom tests allow the pixel-grid snap
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 15:02:43 -04:00
Brandon Thomas
1481c2d3f0
Merge PR #88 from MarekSpodBiedry: Paste: Ctrl+V pastes an image-only clipboard as a picture ( #53 )
...
# Conflicts:
# crates/ui-egui/src/lib.rs
2026-10-14 15:00:34 -04:00
Brandon Thomas and Claude Opus 5.5
a4ea5b66db
Fix up #87 : the web PNG/JPEG export path in SlideApp::export_as downloads every slide
...
Port web_image_files into main's export_as (keeping its DPI tags) and drop the PR's
old dialogs.rs export branch, which main no longer has.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:59:50 -04:00
Brandon Thomas
f800acee47
Merge the startup, clipboard, animation-preview and UI PRs integrated on land-r5 ( #644 #652 #655 #702 #571 #539 #674 #648 #697 #479 #369 #368 )
...
# Conflicts:
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:58:48 -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
8700a2da92
Merge PR #87 from MarekSpodBiedry: Export: PNG images (all slides) in the browser downloads every slide ( #64 )
...
# Conflicts:
# crates/ui-egui/src/dialogs.rs
2026-10-14 14:57:55 -04:00
Brandon Thomas and Claude Opus 5.5
afc387cdc5
Merge PR #468 from NikitkaRa: Media: a failed or stalled audio output hands the clock back to wall time ( #417 )
...
Fix-up in the merge (review): a just-started stream gets 5 s for its first callback before it
counts as stalled (slow Bluetooth devices), and the failure count resets once a restarted
stream delivers, so one bad start no longer silences media for the session.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:57:54 -04:00
Brandon Thomas and Claude Opus 5.5
0e51b7b1fc
Fix up #67 : use get_mut in the outline-morph cache instead of indexing
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:57:31 -04:00
Brandon Thomas
adf273bf4d
Merge PR #67 from alexanderalber: Morph: align an outline morph once per transition, not every frame
...
# Conflicts:
# crates/render/src/lib.rs
2026-10-14 14:56:45 -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 and Claude Opus 5.5
ed13dd6158
Fix up merged PRs: GIF export goes through main's export path
...
The Export dialog's GIF choice runs through SlideApp::export_as (desktop and web download),
.gif is a writable output extension for convert/run, and the CLI help pages describe GIF output
and --export-params. A file.export `slides` range string ("1-3,5") works for GIF as for PDF.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:54:35 -04:00
Brandon Thomas
3af36720fd
Merge PR #525 from NikitkaRa: Review: compare with a revised copy and accept its slides
...
# Conflicts:
# crates/engine/src/cmd/review.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/panes.rs
2026-10-14 14:53:58 -04:00
Brandon Thomas
b2b0e82359
Merge PR #556 from NikitkaRa: Text: Find and Replace across slides, tables and notes
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/src/dialogs.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:53:21 -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
1e6d9a2888
Merge PR #549 from NikitkaRa: Review: Thesaurus pane with a built-in English word list
...
# Conflicts:
# crates/engine/src/cmd/review.rs
# crates/engine/src/lib.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/panes.rs
2026-10-14 14:51:35 -04:00
Brandon Thomas
143a842d1c
Merge PR #506 from NikitkaRa: Format Shape: picture or texture fill options
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/src/panes.rs
2026-10-14 14:51:02 -04:00
Brandon Thomas and Claude Opus 5.5
69e212e3af
Fix up merged PRs: the IME notes test reads the formatted draft's text; drop an unused import
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:50:49 -04:00
Brandon Thomas and Claude Opus 5.5
e6862f18ae
Fix up merged PRs: WordArt warp handles on main's warp catalog and hover hit list
...
- #519 's handle test iterated the old `ALL` preset list; main has `CATALOG` now.
- The hover hit-test match lists every Hit variant; add #519 's Hit::Warp.
- Drop the duplicate "tabs" dialog title that #569 and #637 both added.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:49:10 -04:00
Brandon Thomas
86c5559f24
Merge PR #632 from NikitkaRa: Spelling: notes right-click menu, Review > Language (Do Not Check Spelling), repeated words
...
# Conflicts:
# crates/engine/src/cmd/format.rs
2026-10-14 14:48:54 -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 and Claude Opus 5.5
560928af94
Fix up merged PRs: cargo fmt
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:46:41 -04:00
Brandon Thomas and Claude Opus 5.5
748b83a284
Fix up merged PRs: one re-export of the table cell helpers ( #618 and #626 both added it)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:46:09 -04:00
Brandon Thomas
e9923c6c42
Merge PR #368 from NikitkaRa: A tabbed slide body is an outline, and --help exits ( #360 )
...
# Conflicts:
# apps/deckcraft/src/main.rs
# crates/engine/src/cmd/slide.rs
# crates/engine/src/cmd/text.rs
2026-10-14 14:45:23 -04:00
Brandon Thomas
3723b36ff2
Merge PR #168 from Mathiasko: Notes: speaker notes show their formatting and keep it when edited
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/model/src/edit.rs
# crates/text/src/lib.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/sorter.rs
# crates/ui-egui/src/status.rs
2026-10-14 14:45:13 -04:00
Brandon Thomas and Claude Opus 5.5
e90e265453
Fix up merged PRs: Grid Options guides follow #559 , and its dialog test finds its own Spacing
...
- Turning guides on in Grid Options (#536 ) now adds the two centre guides to a presentation
without any, as View › Guides does since #559 stopped drawing fixed centre lines.
- The Grid Options dialog test looked for any "Spacing" label; main's ribbon has Line Spacing
too, so it looks for "Spacing (pt)".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:45:12 -04:00
Brandon Thomas
822c8f44b3
Merge PR #369 from NikitkaRa: Mark the current transition effect option ( #365 )
...
# Conflicts:
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:44:56 -04:00
Brandon Thomas
b815568fd7
Merge PR #626 from NikitkaRa: Spelling: squiggles in table cells and speaker notes; UI-thread checking on the web
...
# Conflicts:
# crates/engine/src/cmd/text.rs
# crates/ui-egui/src/status.rs
2026-10-14 14:44:48 -04:00
Brandon Thomas and Claude Opus 5.5
526e31d1f7
Fix up merged PRs: a picked file remembers main's Handout and Notes Master views ( #479 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:44:40 -04:00
Brandon Thomas
eff4c02efa
Merge PR #615 from NikitkaRa: Spelling: squiggles while typing, Add to Dictionary, per-run languages, compounds
...
# Conflicts:
# crates/engine/src/cmd/text.rs
# crates/ui-egui/src/canvas.rs
2026-10-14 14:44:12 -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 and Claude Opus 5.5
740a57ddba
Fix up merged PRs: table borders under a right-click select the table; the cell caret is drawn once
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:43:36 -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 and Claude Opus 5.5
367b079d64
Fix up #609 : spelling language tags can't leave the dictionary folders; long words get no suggestions
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 14:42:15 -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
5ed2f808e3
Merge PR #539 from NikitkaRa: Draw: Ink to Shape converts pen strokes into shapes
...
# Conflicts:
# crates/engine/src/cmd/shape.rs
# crates/engine/src/lib.rs
# crates/ui-egui/src/ribbon.rs
2026-10-14 14:41:19 -04:00
Brandon Thomas
ec44671a81
Merge PR #559 from NikitkaRa: View: movable drawing guides saved with the presentation
...
# Conflicts:
# crates/engine/src/tools.rs
# crates/model/src/defaults.rs
# crates/model/src/lib.rs
# crates/ui-egui/src/canvas.rs
# crates/ui-egui/src/lib.rs
2026-10-14 14:41:12 -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
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