Commit Graph
531 Commits
Author SHA1 Message Date
aiongg 7963cdb218 Merge PR #1758: Fonts: render Lao text with an installed Lao face instead of tofu
Conflicts:
- docs/localization-parity.md: status line, script-support text and history rows from both sides kept
2026-10-22 02:36:08 +00:00
aiongg c03d4a881b Merge PR #1570: XLSX: keep dynamic-array cell metadata (cm) on save
ROADMAP.md: kept both progress-log rows
2026-10-22 02:36:04 +00:00
aiongg 7e74b35a1b Merge PR #2095: Number Stored as Text: green indicator, warning button and Convert to Number (#1994)
crates/ui-egui/src/grid.rs: kept object_menu (2084) and error_check_tag (2095), both fns and both calls.
crates/ui-egui/src/i18n/de.rs, pt.rs: union of the entries.
docs/ui-parity.md: one status line naming both changes, both history rows.
2026-10-22 02:36:03 +00:00
aiongg 508d230f7f Merge PR #1683: #1447: two value fields without a column field hide the Values row 2026-10-22 02:36:01 +00:00
aiongg 5d0d1c2b95 Merge PR #973: Sheet tabs: Ctrl-drag (Cmd or Option on macOS) drops a copy of the sheet
docs/ui-parity.md: one Last updated line, change notes combined.
2026-10-22 02:36:00 +00:00
aiongg 05ecd6d4a8 Merge PR #1628: Add Advanced Filter dialog and fix copy-to data loss
crates/ui-egui/src/control.rs: kept #1477's unconditional build_params call
crates/ui-egui/src/dialogs.rs: build_params pub(crate) once, with #1628's advancedFilter arm
docs/ui-parity.md: status line combined, change-log rows both kept
2026-10-22 02:35:59 +00:00
aiongg d20fe88b98 Merge PR #1485: UI: keep PivotTable field-list scrollbar at pane edge
docs/ui-parity.md: header and change log lines kept from both sides, newest first, File view line once
2026-10-22 02:35:56 +00:00
aiongg 9c2cc2bff4 Merge PR #2094: Dialogs: OK and Cancel in a row, so form dialogs fit their content 2026-10-22 02:35:55 +00:00
aiongg ee908a2124 Merge PR #1468: Add Greek (el) interface localization
Conflicts: crates/ui-egui/src/i18n.rs: Language::ALL holds both El and Pl (13 entries).
2026-10-22 02:35:55 +00:00
aiongg 6f62e74704 Merge PR #1753: Docs: §6's calculation bugs have all landed 2026-10-22 02:35:54 +00:00
aiongg ff546d8ffb Merge PR #2090: fix(ui): Esc and Enter close a data validation alert, not the edit behind it, and the keyboard goes back to the entry (#2089) 2026-10-22 02:35:43 +00:00
aiongg 44320b393e Merge PR #1648: fix(xlsx): bound repeated column expansion
Conflicts:
- docs/file-format-parity.md: kept main's header and log rows, added this PR's change phrase and row once
2026-10-22 02:35:42 +00:00
aiongg d83dc11ff2 Merge PR #1695: Charts: box & whisker charts honor their quartile method
crates/engine/src/tests.rs: kept both new tests (csv_as_text_keeps_identifier_columns_as_written and box_whisker_quartile_methods_survive_xlsx).
2026-10-22 02:35:39 +00:00
aiongg 994b2e66c9 Merge PR #1744: Ctrl+Alt+letter that types a character no longer triggers the Ctrl shortcut (#1530)
docs/ui-parity.md: kept the newer header line, kept both history rows.
keyboard_shortcuts.rs: kept both tests (Alt+= and Ctrl+Alt+letter).
2026-10-22 02:35:37 +00:00
aiongg 0118413c77 Merge PR #2080: HTML export: place pictures and charts at their anchors
crates/engine/src/tests.rs: kept both sides' new tests (journal tests from #1230, HTML export tests from the PR).
docs/file-format-parity.md: header Last updated 2026-10-21 with both change clauses; both revision-history rows, newest first.
2026-10-22 02:35:32 +00:00
aiongg b17f47b2ca Merge PR #2033: Row auto-fit: count line breaks only in cells that wrap
ROADMAP.md: header line keeps the newer 2026-10-19 date and lists this change; this PR's progress-log row added once below the newer rows.
2026-10-22 02:35:31 +00:00
aiongg 66c64a9331 Merge PR #2019: Formulas: the reference app's longest legal operator chain (4,096 operands) no longer crashes entry or save
docs/function-parity.md: union of the status line and both history rows.
2026-10-22 02:35:30 +00:00
aiongg c31e25b39d Merge PR #1568: calc: bounded references up to 1,048,576 cells keep their full shape 2026-10-22 02:35:30 +00:00
aiongg c29cac503f Merge PR #1477: Control channel: ui.dialog.confirm sends what OK sends (#1459) 2026-10-22 02:35:28 +00:00
aiongg 0e298839aa Merge PR #1292: Preserve hyperlinks in PDF export and support PDF in CLI convert
docs/file-format-parity.md: status line combined, change-log rows both kept
2026-10-22 02:35:28 +00:00
aiongg faef39cccc Merge PR #1600: XLSX: keep header and footer pictures on save
Conflicts:
- docs/file-format-parity.md: kept main's header and log rows, added this PR's change phrase and row once
2026-10-22 02:35:26 +00:00
aiongg 3af424f7ac Merge PR #1624: Keyboard: Ctrl+Shift+A after a function name inserts its argument names
docs/ui-parity.md: kept the newer header line, kept both history rows.
2026-10-22 02:35:25 +00:00
aiongg b4980ebd32 Merge PR #1734: fix(web): clean up print iframe and blob resources
Conflicts: docs/ui-parity.md (header change text and change log: union of both sides)
2026-10-22 02:35:25 +00:00
aiongg 10746f8e33 Merge PR #1614: XLSX: a note keeps its box's place and size through open and save (#1608) 2026-10-22 02:35:24 +00:00
aiongg 4a8765aa27 Merge PR #970: Control: Go To and Select over the control channel scroll the active cell into view 2026-10-22 02:35:22 +00:00
aiongg 7da18f74ba Merge PR #1942: CSV import: read Windows-1256 Arabic files as Arabic 2026-10-22 02:35:20 +00:00
aiongg b388aaa241 Merge PR #1998: ui: language command docs and error list every language 2026-10-22 02:35:18 +00:00
aiongg b10e41c1c7 Merge PR #1726: Fail CLI checks on incomplete or empty input discovery 2026-10-22 02:35:17 +00:00
aiongg 43cd35d4bd Merge PR #1263: Bound Undo history growth after bulk edits
crates/engine/src/lib.rs: kept both the journal caps (#1230) and the undo byte budget; separate constants and call sites.
crates/engine/src/cmd/edit.rs: undo pushes through push_history; the redo entry keeps the undone edit's selection (#1855 behaviour).
crates/engine/src/tests.rs: kept both tests (redo_selects_the_redone_cell and the two history-bound tests).
2026-10-22 02:35:17 +00:00
aiongg 69f6ea363d Merge PR #1529: fix #1458: one reference-app sheet-name quoting rule for formulas, pivot sources and ADDRESS 2026-10-22 02:35:16 +00:00
aiongg 5186b9c964 Merge PR #1523: UI: function help follows the interface language
ROADMAP.md: kept both progress-log rows, newest first
2026-10-22 02:35:16 +00:00
aiongg 4cdffe455f Merge PR #1728: Use the platform clock for UI timing on the web
Conflicts: docs/ui-parity.md (header change text and change log: union of both sides)
2026-10-22 02:35:11 +00:00
aiongg 56cccd1f64 Merge PR #2194: calc: bound SUBTOTAL/AGGREGATE input work (#2175)
docs/function-parity.md: status line takes this PR's change text; both history rows kept, newest first.
2026-10-22 02:35:07 +00:00
aiongg 93517ccf51 Merge PR #1500: Fix number-format palette colours in grid and PDF output
crates/engine/src/cmd/print.rs: kept both appended tests
docs/ui-parity.md: kept HEAD header line, both change rows
2026-10-22 02:35:06 +00:00
aiongg 36763fb663 Merge PR #1236: Fix native CJK fallback paths in Flatpak
Conflicts:
- contributors/people.toml: both new contributors kept
- crates/ui-egui/src/theme.rs: LINUX_CJK_DIRS has the Flatpak mounts plus the chromeos entry (22 entries)
- docs/localization-parity.md: both status lines, text and history rows kept
2026-10-22 02:35:01 +00:00
aiongg 013f60a8b6 Merge PR #1514: Fix scalar INDEX/MATCH XLSX export
Conflicts:
- docs/file-format-parity.md: kept main's header and log rows, added this PR's change phrase and row once
2026-10-22 02:34:59 +00:00
aiongg ccbf28fe63 Merge PR #1589: Web: keep preferences such as dark mode between visits
docs/ui-parity.md: header line kept as main's (newer); revision-history row for the web preferences added once.
2026-10-22 02:34:56 +00:00
aiongg 0cc4798ca9 Merge PR #1650: fix(ets): avoid repeated scans while interpolating gaps
docs/function-parity.md: status line takes this PR's change text with the newer review date; both history rows kept, newest first.
2026-10-22 02:34:55 +00:00
aiongg 5b2a67c236 Merge PR #1252: Dialogs move by their title bar instead of staying pinned to the centre (fixes #1250)
docs/ui-parity.md: status line combined (newest date, both change notes)
2026-10-22 02:34:55 +00:00
aiongg 0087afce8a Merge PR #1230: Journal: cap by serialized size and keep a recording's start through trims
crates/engine/src/tests.rs: kept both sides' new tests (csv_as_text test from main, the two journal tests from the PR).
2026-10-22 02:34:53 +00:00
aiongg 93de710d28 Merge PR #1306: Show dynamic array source formulas read-only in spill cells
docs/ui-parity.md: kept HEAD's header line, both change rows (newest first)
2026-10-22 02:34:52 +00:00
aiongg 02640d6626 Merge PR #1495: XLSX: preserve carriage returns in saved text
Conflicts:
- crates/xlsx/src/xml.rs: kept both appended tests (surrogate pairs, carriage returns)
- docs/file-format-parity.md: kept main's header and log rows, added this PR's change phrase and row once
2026-10-22 02:34:51 +00:00
aiongg 02e1828c65 Merge PR #995: XLSX export: a picture shared by several sheets is one media part
Conflicts:
- crates/xlsx/src/tests/mod.rs: both mod lines kept
- docs/file-format-parity.md: header keeps main's change list plus the #985 entry
2026-10-22 02:34:51 +00:00
aiongg 90cdb12fc6 Merge PR #1470: fix(solver): commit solutions and reports atomically 2026-10-22 02:34:49 +00:00
aiongg 4f7111941e Merge PR #951: fix(fill): respect the workbook date system in monthly AutoFill
docs/ui-parity.md: kept the newer header line, kept both history rows.
2026-10-22 02:34:45 +00:00
aiongg d34e3db0b8 Merge PR #949: Sheet tabs: New sheet (+) right after the last tab, the strip capped at 60%
Conflicts: docs/ui-parity.md (header change text, sheet tabs row and change log: union of both sides)
2026-10-22 02:34:44 +00:00
aiongg 8e931b24b4 Merge PR #898: UI: File › Account shows the version, platform and licence, with an About GridCraft button
crates/ui-egui/tests/file_menu.rs: kept both tests (translated headings, account/About).
2026-10-22 02:34:43 +00:00
Higgs32584andClaude Opus 5.5 be94b011c5 calc: bound SUBTOTAL/AGGREGATE input work (#2175)
Every area, array and value of one SUBTOTAL/AGGREGATE call is charged against MAX_CELLS before any cell is read; past it the call returns #NUM!. A value stored in XFD1048576 no longer makes SUBTOTAL(9,A:XFD) read ~17 billion cells into a vector.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 20:10:00 -04:00
prxnvt 0457f102a0 Engine: pasting only formats from a file leaves the destination's trust alone
Paste Special › Formats copies cell styles and merged areas. It copies no conditional formats,
formulas or validation, so it carries nothing that runs. It still marked the destination
FromFile: copying a formula cell from an opened file and pasting its formats into a new workbook
made that workbook ask before running its own active content.

Formats pastes now count as passive, like values, column widths and notes. The comment and
docs/architecture.md no longer say that pasted formats carry trust.
2026-10-21 17:27:20 -04:00
prxnvt f4e05534a3 Engine: a command that runs its own undo groups makes one undo step for itself
execute treated any change in the group epoch as 'the group owns the step'. A command that edited outside its own group, or whose group rolled back before it edited, left that edit with no undo step or only part of it. Now only a group that was open before the command (or is still open after) owns the step; a command that opened and closed its own groups replaces their steps with one entry for the command.
2026-10-21 15:23:08 -04:00