What's Changed
- packaging: [[ ]] tests, named positional parameters, explicit returns and a default case (SonarCloud S7688, S7679, S7682, S131) by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1212
- Use chrono instead of hand-rolled UTC conversion by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1116
- CI: one test binary per crate, nextest, line tables only by @aiongg in https://github.com/storytold/deckcraft/pull/1213
- CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in https://github.com/storytold/deckcraft/pull/1214
- Packaging: pin the signing client and appimagetool, and check their hashes by @aiongg in https://github.com/storytold/deckcraft/pull/1082
- ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1243
- Keep the slide show in a window for "Browsed by an individual" (#1229) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/1235
- Render: a shape with no fill and no line draws no glow round its box by @leobasilio in https://github.com/storytold/deckcraft/pull/1240
- Read a newline in pasted HTML text as a space by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/820
- Fix dropped rapid mouse-wheel slide navigation steps by @kinower in https://github.com/storytold/deckcraft/pull/872
- fix(design): propagate Format Background Apply to All to slide masters (#891) by @kk376 in https://github.com/storytold/deckcraft/pull/894
- About: Contributors and Models get their own fixed-size block below the tabs (#843) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/906
- Declare the a: and r: namespaces on the modern comments part (#974) by @HyakoV3 in https://github.com/storytold/deckcraft/pull/986
- Duplicate: a copy that was moved is duplicated the same distance further on (#966) by @Zetenypapp in https://github.com/storytold/deckcraft/pull/988
- Media: look a clip up on the slide it belongs to (#994) by @Faabyy in https://github.com/storytold/deckcraft/pull/999
- Canvas: resizing snaps the edge being dragged (#961) by @Faabyy in https://github.com/storytold/deckcraft/pull/1003
- Insert: keep the Icons popup open when clicking the search box (#971) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/1007
- Keep the crop of a PPTX video and apply it in the poster and playback (#972) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/1008
- Show: draw shapes stacked above a playing video over its frame (#1005) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/1009
- Play animated GIFs inside groups by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1026
- Reject non-hex characters such as '+' in Rgba::from_hex by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1027
- Format General scientific notation like Excel (1.5E+12) by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1035
- Apply trailing-comma thousands scaling to formats with decimals by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1036
- Control server: a rejected line's reason survives a pipelined peer by @Hamza0101 in https://github.com/storytold/deckcraft/pull/1039
- Fix extra empty histogram bin with a fixed bin count by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1054
- The AppImage and DeckCraft.app ship the licence files by @oracola91 in https://github.com/storytold/deckcraft/pull/1056
- Control server: wait after a failed accept instead of retrying at once by @oracola91 in https://github.com/storytold/deckcraft/pull/1060
- Escape carriage return as in XML text content by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1064
- Keep rounded corners round in non-uniformly scaled groups by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1085
- M8: honor explicit empty chart number-format sections by @MMexicann in https://github.com/storytold/deckcraft/pull/1091
- Add angle adjust handles to partial-circle presets by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1101
- Render: 3-D sizes in a scaled group stay in points by @pick2510 in https://github.com/storytold/deckcraft/pull/1134
- PPTX: a theme's spDef anchor is for new shapes, not the file's own by @pick2510 in https://github.com/storytold/deckcraft/pull/1136
- Text: table text takes the master's other-text style by @pick2510 in https://github.com/storytold/deckcraft/pull/1145
- Use a relative coefficient threshold in trendline equations by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1148
- Thumbnails: count the renders, not only the thumbnails held (#969) by @Hamza0101 in https://github.com/storytold/deckcraft/pull/1160
- Keep the slide backdrop while animations play by @kbarni in https://github.com/storytold/deckcraft/pull/1161
- Apply group fill and outline edits to member shapes by @samirhvbr in https://github.com/storytold/deckcraft/pull/1187
- Cap the PDF slide raster by total pixel count (#1178) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/1193
- Animation Pane: Play From the selected effect by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/1199
- Design Ideas: switching ideas removes the Full-bleed title band (#1201) by @xc4pr in https://github.com/storytold/deckcraft/pull/1207
- Presenter View: speaker notes keep their bullets, numbers and formatting by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/1211
- Show: refuse a show.start from that is not a slide by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/1228
- Pictures: Set Transparent Color picks the colour by clicking the picture, as in PowerPoint by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/1233
- Shape Fill and Shape Outline: the button applies the last colour picked from its menu by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/1234
- Canvas: scroll bars when the zoomed slide is larger than the window by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/1239
- Find: Ctrl+F puts the caret in "Find what:" (#951) by @Zetenypapp in https://github.com/storytold/deckcraft/pull/989
- Fix scientific number format for subnormal values by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1099
- text: remap symbol-font U+F0xx codes to the installed Symbol face's real Unicode by @Bryson14 in https://github.com/storytold/deckcraft/pull/896
- Count line breaks as one char in Find/Replace by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1002
- README: Linux runtime libraries for tarball and musl installs (#955) by @FabPei in https://github.com/storytold/deckcraft/pull/1037
- Format Painter: apply on text selection by @fchinu in https://github.com/storytold/deckcraft/pull/1076
- Treat CRLF as a single paragraph break in text.set by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1097
- Show All slides in the Presenter View window, not on the audience screen (#1130) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/1191
- Media: use craft-media for bitstream, isobmff and matroska by @aiongg in https://github.com/storytold/deckcraft/pull/1034
- Media: a clip opened from a .pptx gets its length and size from its headers by @aiongg in https://github.com/storytold/deckcraft/pull/1250
- PDF: pin craft-pdf and krilla to craft-libs main by @aiongg in https://github.com/storytold/deckcraft/pull/1253
- chore: resolve SonarCloud maintainability issues by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1255
- refactor: replace redundant closures with method paths (SonarCloud S1612) by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1261
- security: use exclusive temporary directories for macOS cert import and media fixtures by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1263
- security: clamp alpha_num bullet expansion and sanitize filename logging by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1264
- perf(chart): optimize axis plotted extent scan and cache non-bar error bar stats by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1266
- perf(engine): bound HTML entity semicolon scan window and formatting stack search by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1267
- refactor: explicit imports for table modules (SonarCloud S2208) by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1262
- security(engine): check regular file and size bound on read, preserve permissions and symlinks on save by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1265
- security(metafile): harden EMF+ parsing, clipping complexity, and memory accounting by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1280
- perf(pptx): index export lookups and deduplicate relationship parts by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1281
- fix(pptx): harden import resource budgets, deduplication, and lookup caching by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1283
- Integration batch 1: 35 contributor PRs (charts, shapes, slides, text editing, dialogs, outline files) by @aiongg in https://github.com/storytold/deckcraft/pull/1260
- Status bar: keep a long language name from overlapping by @Katacc in https://github.com/storytold/deckcraft/pull/1244
- Reject '+'-signed numeric character references in HTML paste by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1252
- Web: point web app favicon to deckcraft.ico by @GhostMitra in https://github.com/storytold/deckcraft/pull/384
- Files: save and open outlines as RTF by @NikitkaRa in https://github.com/storytold/deckcraft/pull/565
- UI: close About dialog on Cancel and test Options Cancel from File tab (#782) by @GhostMitra in https://github.com/storytold/deckcraft/pull/793
- Preferences: checkboxes and slider rails show in light mode by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/805
- Canvas: the resize cursor follows the handle's rotated diagonal (#745) by @albayazid in https://github.com/storytold/deckcraft/pull/806
- engine: a hostile text selection can't drive paragraph commands past the body by @midasmatterhorn in https://github.com/storytold/deckcraft/pull/813
- Shapes: Edit Points — Straight/Curved Segment and Open/Close Path from the right-click menu by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/833
- Canvas: the Format and Animation Painter override the cursor (#830) by @albayazid in https://github.com/storytold/deckcraft/pull/846
- Render: quick styles render on empty placeholder text boxes (#832) by @albayazid in https://github.com/storytold/deckcraft/pull/848
- Review: reject revisions after Compare, one or all by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/850
- PPTX: paragraph builds edited in PowerPoint keep their clicks by @marcoarnulfo in https://github.com/storytold/deckcraft/pull/883
- Clamp text.selectParagraph paragraph index to avoid overflow by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/904
- Header & Footer: the automatic date takes a format by @Hamza0101 in https://github.com/storytold/deckcraft/pull/927
- Thumbnails: navigating slides scrolls the pane to keep the current slide visible (#917) by @albayazid in https://github.com/storytold/deckcraft/pull/945
- Charts: a series' own data-label setting decides whether its labels show (#868) by @albayazid in https://github.com/storytold/deckcraft/pull/956
- Tests: the Options dialog's Cancel, Esc and the close button restore the settings (#878) by @albayazid in https://github.com/storytold/deckcraft/pull/962
- Tests: Ctrl+A in the slide sorter selects every slide (#936) by @albayazid in https://github.com/storytold/deckcraft/pull/965
- Hide the slide show media controls when the pointer is idle (#967) by @MarekSpodBiedry in https://github.com/storytold/deckcraft/pull/978
- Chart text can be coloured (chart.options textColor, format.color) and follows the theme by default by @zberry in https://github.com/storytold/deckcraft/pull/1015
- Render: table body text on tinted cells picks the theme colour that contrasts with the fill, so default tables stay readable on dark themes by @zberry in https://github.com/storytold/deckcraft/pull/1016
- Replace Fonts test: a window wide enough to hold Home's ribbon by @Hamza0101 in https://github.com/storytold/deckcraft/pull/1043
- Indent table rows in outline export so they stay on their slide by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1075
- Make chart axis flatness thresholds relative to data magnitude by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1198
- Design Ideas: no ideas for slides with diagrams, connectors or other graphics (#1200) by @xc4pr in https://github.com/storytold/deckcraft/pull/1205
- Theme: text fields show in the light theme (#1204) by @xc4pr in https://github.com/storytold/deckcraft/pull/1208
- Title: arrange.group: nest groups at most 32 deep by @Katacc in https://github.com/storytold/deckcraft/pull/1245
- Fix arrange.distribute span to use the selection's full extent by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1251
- Reject invalid index in slide.hide and slide.layout by @Silvertree2010 in https://github.com/storytold/deckcraft/pull/1254
- security(anim): bound custom-show and timeline lookups, share motion paths across paragraph effects by @dylanmtaylor in https://github.com/storytold/deckcraft/pull/1341
- Merge 14 open PRs (tested batch) by @aiongg in https://github.com/storytold/deckcraft/pull/1344
- Text: AutoFormat starts bulleted and numbered lists as you type by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1258
- Paste: a table, bullet or slide from another deck keeps its own pictures and sounds by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1289
- Tests: UI tests that render with wgpu take turns, so the Windows test run no longer crashes by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1292
- Control server: a peer refused as busy still reads why, and two tests no longer race by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1298
- Text: a Columns dialog sets the number of columns and the spacing between them by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1301
- Edit Points: Esc before releasing the mouse button cancels a point or handle drag by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1325
- Docs: Play From and the .potx/.ppsx content types are no longer listed as missing by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1327
- Edit Points: right-click a segment for Add Point, Delete Segment and Open/Close Path by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1332
- Format: Pattern fill shows a gallery of every preset with Foreground and Background colors by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1335
- Format: Fill shows Color and Transparency only for fills they change by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1338
- Tables: dragging across cells selects a range of cells by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1282
- Tests: the Notes-button test clicks where the button is laid out, so it passes without Inter by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1300
- Status bar: screen readers can name its controls and read the slide counter and status message by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1307
- Edit Points: Shift, Ctrl or Alt while dragging a handle makes the point smooth, straight or corner by @dotCooCoo in https://github.com/storytold/deckcraft/pull/1308
- Colour names, media ids after a paste, and pressing a table outside its cells (#1344 follow-ups) by @aiongg in https://github.com/storytold/deckcraft/pull/1348
New Contributors
- @aiongg made their first contribution in https://github.com/storytold/deckcraft/pull/1213
- @leobasilio made their first contribution in https://github.com/storytold/deckcraft/pull/1240
- @kinower made their first contribution in https://github.com/storytold/deckcraft/pull/872
- @kk376 made their first contribution in https://github.com/storytold/deckcraft/pull/894
- @HyakoV3 made their first contribution in https://github.com/storytold/deckcraft/pull/986
- @oracola91 made their first contribution in https://github.com/storytold/deckcraft/pull/1056
- @pick2510 made their first contribution in https://github.com/storytold/deckcraft/pull/1134
- @kbarni made their first contribution in https://github.com/storytold/deckcraft/pull/1161
- @samirhvbr made their first contribution in https://github.com/storytold/deckcraft/pull/1187
- @Bryson14 made their first contribution in https://github.com/storytold/deckcraft/pull/896
- @fchinu made their first contribution in https://github.com/storytold/deckcraft/pull/1076
- @Katacc made their first contribution in https://github.com/storytold/deckcraft/pull/1244
- @GhostMitra made their first contribution in https://github.com/storytold/deckcraft/pull/384
- @zberry made their first contribution in https://github.com/storytold/deckcraft/pull/1015
Full Changelog: https://github.com/storytold/deckcraft/compare/v0.10.0...v0.11.1