Skip to content

Title bar: Export button next to Save - #246

Merged
h-a-n-a-s-h-i merged 2 commits into
storytold:mainfrom
pierrevbc:export-button
Oct 14, 2026
Merged

h-a-n-a-s-h-i merged 2 commits into
storytold:mainfrom
pierrevbc:export-button

Conversation

@pierrevbc

@pierrevbc pierrevbc commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Problem

When this PR was opened, the Export dialog (PDF, PNG/JPEG, PPTX, outline) had no visible
control: menus::menu_tree() lists Export…, but the native menu bar it feeds is not installed
(docs/ui-parity.md), so only the command palette reached it. The File tab (#344) has since added
File › Export, a page of its own. Exporting a PDF to send is a frequent action, so this PR keeps a
one-click shortcut to the Export dialog in the title bar, next to Save, alongside File › Export.
(The first commit's message and the test's doc comment still describe the situation before #344.)

What changes

Two commits: the change, and the progress docs.

  • crates/ui-egui/src/ribbon.rs: the quick access row of the title bar gets an Export button
    after Save, with the existing Icon::Export (no new asset), tooltip "Export…". It runs
    app.exportDialog, the command behind the menu item, so it opens the same dialog. It is enabled
    when a presentation is open, like Save.
  • Progress docs: the title bar row of docs/ui-parity.md (status line, history; the button is
    described as a quick-access shortcut beside File › Export) and a ROADMAP.md progress log
    line. "Quick Access toolbar / title bar commands" stays P in the
    checklist (no customization); no gaps.md entry covered this.

How it was tested

cargo xtask ci passes on this branch (fmt, clippy -D warnings, workspace tests, layers,
assets, wasm32 check).

New test title_bar_export_opens_the_export_dialog (crates/ui-egui/src/lib.rs, egui_kittest):
a click on the third quick access button opens the export dialog, and no dialog is open before.

Known limits

  • The test finds the button by its position in the quick access row (Home, Save, Export); a button
    added before it would move it.

Related PRs

The Export dialog had no visible control: the native menu bar that lists
Export… is not installed, so only the command palette reached it. The
quick access row now has an Export button (the existing Export icon)
that opens the export dialog, enabled when a presentation is open.
- ui-parity.md: title bar row; status line and history.
- ROADMAP.md: progress log line. Quick Access toolbar / title bar commands stays P (no
  customization); no gaps.md entry covered this.
@NikitkaRa NikitkaRa mentioned this pull request Oct 13, 2026
2 tasks done
@h-a-n-a-s-h-i
h-a-n-a-s-h-i merged commit b6721fe into storytold:main Oct 14, 2026
@echelon

echelon commented Oct 14, 2026

Copy link
Copy Markdown
Member

Thank you for this contribution, @pierrevbc! It has landed on main and will ship in the next DeckCraft release.

If you haven't already, please come join us on Discord: https://discord.gg/artcraft

anishguduru pushed a commit to anishguduru/deckcraft that referenced this pull request Oct 16, 2026
eprintln! panics when standard error is a broken pipe (a GUI launch on
Windows), and a panic inside the panic hook aborts. The "no log file"
message goes through log::warn! (standard error only by then); the panic
hook's fallback writes to standard error with write_fmt and ignores the
error. Follow-up to storytold#239, same fix as storytold/vectorcraft#465.

Co-authored-by: Brandon Thomas <echelon@gmail.com>
aiongg added a commit to aiongg/deckcraft that referenced this pull request Oct 23, 2026
aiongg added a commit that referenced this pull request Oct 23, 2026
* Media: use craft-media for bitstream, isobmff and matroska

deckcraft-bitstream, deckcraft-isobmff and deckcraft-matroska re-export
craft_media::{bitstream, isobmff, matroska} from craft-libs. The packages
and their public paths stay, so the codec crates build unchanged.
deckcraft-bitstream keeps the decoder memory budget as its own module
(budget). deckcraft-media names the new CodecConfig::Apv entry.

* Media: pin craft-media to storytold/craft-libs at f97c84d2 (#245)

* Media: pin craft-media to storytold/craft-libs at f0ad6c1e (#246)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants