aiongg
36cd258bd2
Merge PR #883 : PPTX: paragraph builds edited in the reference app keep their clicks
...
ROADMAP.md: union of log rows. docs/animation-parity.md: main's header; the by-paragraph row from the PR, the triggers row from main; both revision rows.
2026-10-24 06:27:19 +00:00
aiongg
8957e193e9
Merge integration track r1-t02 (dialogs, view, text editing, panes, status bar, other)
...
ROADMAP.md, docs/gaps.md: union of both tracks' log rows.
2026-10-24 06:26:36 +00:00
aiongg
820b163067
Merge integration track r1-t01 (charts, tables, render, shapes, slides, slideshow, outline formats)
2026-10-24 06:26:23 +00:00
aiongg
80e5506456
Integration: cargo fmt
2026-10-24 06:25:28 +00:00
aiongg
3a37fb6b7e
Integration: #565 rtf_to_outline never splits a multi-byte character after \u or \' escapes
2026-10-24 06:18:22 +00:00
aiongg
abd8768b65
Merge PR #565 : Files: save and open outlines as RTF
...
Conflicts:
crates/engine/src/cmd/file.rs: export spec keeps main's transparentBackground and adds rtf; probe_clips (main) and outline_text (PR) both kept
docs/file-format-parity.md: PR's outline row (RTF now read) with main's .md wording, main's PNG row
2026-10-24 06:18:03 +00:00
aiongg
882f1cbdbc
Merge PR #1075 : Indent table rows in outline export so they stay on their slide
2026-10-24 06:17:37 +00:00
aiongg
bb5da2036d
Merge PR #978 : Hide the slide show media controls when the pointer is idle ( #967 )
...
Conflicts: crates/ui-egui/src/show.rs (test module: kept both sides' tests)
2026-10-24 06:17:37 +00:00
aiongg
5b5fd5eabe
Merge PR #1109 : Reuse Slides: choose which slides of the other file to insert
...
Conflicts: ROADMAP.md (union of both sides' rows)
2026-10-24 06:17:26 +00:00
aiongg
2693336155
Merge PR #809 : Design: Browse for Themes brings a template's slide master and layouts ( #807 )
...
Conflicts: ROADMAP.md (union of both sides' rows)
2026-10-24 06:17:23 +00:00
aiongg
f52c911959
Integration: #927 Header & Footer dialog sends dateFormat only when picked; set_date doc comment back above set_date
...
Without it, Apply rewrote every slide's existing date field to datetime1.
2026-10-24 06:17:19 +00:00
aiongg
0313e0128a
Merge PR #850 : Review: reject revisions after Compare, one or all
...
ROADMAP.md, docs/gaps.md: kept main's lines and the PR's single added line in each table.
2026-10-24 06:16:50 +00:00
aiongg
5880086522
Merge PR #927 : Header & Footer: the automatic date takes a format
2026-10-24 06:16:45 +00:00
aiongg
b7c505a389
Merge PR #1254 : Reject invalid index in slide.hide and slide.layout
...
Conflicts: crates/engine/src/tests.rs (appended both sides' tests)
2026-10-24 06:16:45 +00:00
aiongg
987f49ac03
Merge PR #1252 : Reject '+'-signed numeric character references in HTML paste
2026-10-24 06:16:43 +00:00
aiongg
dd9111ba20
Merge PR #384 : Web: point web app favicon to deckcraft.ico
...
contributors/people.toml: kept both new entries.
2026-10-24 06:16:43 +00:00
aiongg
92724e02bb
Merge PR #1205 : Design Ideas: no ideas for slides with diagrams, connectors or other graphics ( #1200 )
...
Conflicts: crates/engine/src/cmd/ideas.rs (test module: kept both sides' tests)
2026-10-24 06:16:39 +00:00
aiongg
0b6ea6a287
Integration: #1244 test that a long language name leaves the Notes button clickable
2026-10-24 06:16:38 +00:00
aiongg
29cc5f83bd
Integration: #833 drop the leftover PNG debug hook from the Edit Points menu test
2026-10-24 06:16:27 +00:00
aiongg
c480b74a3f
Merge PR #833 : Shapes: Edit Points — Straight/Curved Segment and Open/Close Path from the right-click menu
...
Conflicts: ROADMAP.md docs/gaps.md docs/ui-parity.md (union of both sides' rows)
2026-10-24 06:16:21 +00:00
aiongg
2fd32751cc
Merge PR #1251 : Fix arrange.distribute span to use the selection's full extent
2026-10-24 06:16:21 +00:00
aiongg
78afd2fc45
Merge PR #1245 : Title: arrange.group: nest groups at most 32 deep
2026-10-24 06:16:18 +00:00
aiongg
b280f7755d
Merge PR #846 : Canvas: the Format and Animation Painter override the cursor ( #830 )
...
Conflicts: crates/ui-egui/src/canvas.rs (cursor match: kept #806 's resize_cursor arm inside #846 's painter-armed wrapper)
2026-10-24 06:16:18 +00:00
aiongg
84702f3810
Merge PR #806 : Canvas: the resize cursor follows the handle's rotated diagonal ( #745 )
...
Conflicts: ROADMAP.md (union of both sides' rows)
2026-10-24 06:16:06 +00:00
aiongg
be5413826c
Merge PR #848 : Render: quick styles render on empty placeholder text boxes ( #832 )
...
Conflicts: ROADMAP.md (union of rows)
2026-10-24 06:16:06 +00:00
aiongg
2109dfa03c
Merge PR #1244 : Status bar: keep a long language name from overlapping
2026-10-24 06:15:59 +00:00
aiongg
e6f7648219
Integration: #945 allow unwrap and expect in the thumbs tests module
2026-10-24 06:15:59 +00:00
aiongg
3aa8f4b8b1
Merge PR #1016 : Render: table body text on tinted cells picks the theme colour that contrasts with the fill, so default tables stay readable on dark themes
2026-10-24 06:15:56 +00:00
aiongg
4f56789f45
Merge PR #945 : Thumbnails: navigating slides scrolls the pane to keep the current slide visible ( #917 )
...
ROADMAP.md: kept all table lines.
2026-10-24 06:15:56 +00:00
aiongg
f2e2fcaba4
Merge PR #1015 : Chart text can be coloured (chart.options textColor, format.color) and follows the theme by default
...
Conflicts: crates/engine/src/cmd/insert.rs (kept main's apply_bin_options / apply_subtotals_and_bars helpers and added the textColor assignment)
2026-10-24 06:15:53 +00:00
aiongg
6971d55345
Merge PR #799 : Text boxes: a click on the frame selects the box whole ( #787 )
...
docs/ui-parity.md: kept main's status header lines; the PR's older header dropped, its new table row kept.
2026-10-24 06:15:50 +00:00
aiongg
aed303e504
Integration: #956 chart.options dataLabels resets the series' own settings
...
Without it, turning Data Labels on did nothing for an imported chart whose series read showVal 0.
2026-10-24 06:15:41 +00:00
aiongg
c7388bd1ed
Merge PR #320 : Text: Tab no longer ends text entry in lists ( #93 )
...
crates/ui-egui/src/lib.rs: keyboard() keeps main's image-paste event scan and adds the PR's focus surrender (one shared modal flag); both new tests kept (typing_goes_on_after_tab_in_a_text_box, tab_in_an_edited_list_keeps_the_keyboard).
2026-10-24 06:15:41 +00:00
aiongg
cac379b5ee
Merge PR #956 : Charts: a series' own data-label setting decides whether its labels show ( #868 )
...
Conflicts: crates/model/src/chart.rs (kept series_data_labels and main's waterfall_value_range split; value_range stays where main has it)
2026-10-24 06:15:05 +00:00
aiongg
7fd34fb359
Merge PR #813 : engine: a hostile text selection can't drive paragraph commands past the body
2026-10-24 06:15:03 +00:00
aiongg
5827d3b4c1
Merge PR #904 : Clamp text.selectParagraph paragraph index to avoid overflow
2026-10-24 06:15:03 +00:00
aiongg
f6597e0259
Merge PR #1043 : Replace Fonts test: a window wide enough to hold Home's ribbon
2026-10-24 06:15:03 +00:00
aiongg
f8a70063f7
Merge PR #965 : Tests: Ctrl+A in the slide sorter selects every slide ( #936 )
...
ROADMAP.md: kept both table lines.
2026-10-24 06:15:03 +00:00
aiongg
601a20ecf6
Merge PR #805 : Preferences: checkboxes and slider rails show in light mode
2026-10-24 06:14:58 +00:00
aiongg
ca0e1a300a
Merge PR #1208 : Theme: text fields show in the light theme ( #1204 )
...
crates/ui-egui/src/lib.rs: kept both test modules (field_frame_tests, find_dialog_tests).
2026-10-24 06:14:58 +00:00
aiongg
ee721e26dd
Merge PR #1198 : Make chart axis flatness thresholds relative to data magnitude
2026-10-24 06:14:53 +00:00
aiongg
a1c92dc6c5
Merge PR #1146 : Charts: bars draw their series' pattern fill and no fill
...
Conflicts: ROADMAP.md (union of progress-log rows)
2026-10-24 06:14:53 +00:00
aiongg
a774f01199
Merge PR #962 : Tests: the Options dialog's Cancel, Esc and the close button restore the settings ( #878 )
...
crates/ui-egui/src/dialogs.rs: kept both test modules (about_credits_tests, preferences_tests).
2026-10-24 06:14:48 +00:00
aiongg
e56c62c260
Merge PR #793 : UI: close About dialog on Cancel and test Options Cancel from File tab ( #782 )
2026-10-24 06:14:39 +00:00
5fadda5ecf
chore: resolve SonarCloud maintainability issues ( #1255 )
...
* chore: resolve SonarCloud maintainability issues
* fix: address shellcheck SC2059 and fix generic cast ambiguity
* style: apply rustfmt formatting
* fix: restore compile and behaviour in Sonar refactors
- fonts: char::is_alphanumeric takes &self, so filter needs a closure
- h264: keep the mvd accumulator as i32 (prefix is usize)
- model: annotate the non-stacked range accumulators as f64
- engine: chart.options still clears the raw chart XML for upDownBars
and quartiles; smartart goes back to the glob import (cmd! macro)
- web: keep the original viewport meta (behaviour change)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* Assign positional parameters to locals in sha256 verification
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
Co-authored-by: Dylan Taylor <dylan@craftmaker.dev >
2026-10-23 23:28:09 -04:00
aiongg
b913c4f9d0
PDF: pin craft-pdf and krilla to craft-libs main ( #1253 )
...
* PDF: pin craft-pdf and krilla to craft-libs main (PNG decode bound)
* PDF: pin craft-pdf and krilla to craft-libs at 9f75d3dc (#254 )
2026-10-23 22:37:28 -04:00
NetterSilver and Claude Haiku 5.5
6d7b32351f
Reject invalid index in slide.hide and slide.layout
...
Found while testing crates/engine/src/cmd/slide.rs:376 (hide); same pattern at slide.rs:445
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 02:16:19 +00:00
NetterSilver and Claude Haiku 5.5
fc914a059c
Reject '+'-signed numeric character references in HTML paste
...
Found while testing crates/engine/src/cmd/richclip.rs:301-304 (numeric_char, used by decode_text)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 01:23:11 +00:00
NetterSilver and Claude Haiku 5.5
18e8bb0ded
Fix arrange.distribute span to use the selection's full extent
...
Found while testing crates/engine/src/cmd/arrange.rs:325-327 (distribute)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-24 01:07:34 +00:00
Zach Berry and Claude Fable 5.1
52bf97d983
Render: table body text on tinted cells uses the theme's dark colour, so it stays readable on dark themes
...
The medium2 (default), medium4 and banded light1 table styles tint body cells towards white
but gave their text no colour, so it inherited the theme's text colour: light on a dark theme
such as Nocturne, and nearly invisible on the light tint. PowerPoint's medium styles set that
text to dk1. DeckCraft's dark themes keep the dark colour in lt1 (Nocturne has dk1 white and
lt1 near-black, relying on the default tx1->dk1 map), so the look picks whichever of dk1 and
lt1 contrasts more with the cell's actual fill. Cells with no fill keep inheriting, and the
"grid" border keeps the text colour.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-23 19:58:37 -05:00