Commit Graph

537 Commits

Author SHA1 Message Date
Brandon Thomas 9a978f0461 Merge pull request #288 from vangel76/fix/insert-copied-cells
Clipboard: Insert Copied Cells and Insert Cut Cells (#21)
2026-10-11 13:12:25 -04:00
Brandon Thomas 1fb5f3264d Spanish, German and Czech strings for Insert Copied/Cut Cells (review fix-up for #288)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:12:23 -04:00
Brandon Thomas e52fc4aa08 Fix-up #333: escape kept content types and charge kept VML to the kept total
Content types (and extensions) of kept parts come from the input file and
were written into [Content_Types].xml unescaped, so a quote or angle bracket
injected XML; they are now attribute-escaped. Each sheet re-read and kept
its VML drawing (up to 16 MB) outside MAX_KEPT_TOTAL, so many sheets sharing
one highly compressed drawing amplified memory; the drawing is now read
within and charged to the remaining kept-bytes allowance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:05:45 -04:00
Brandon Thomas 9cb6cb2384 Merge branch 'land' into fix-288
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/edit.rs
#	docs/target-app-parity.md
2026-10-11 13:01:23 -04:00
Brandon Thomas 344b5cdb53 Merge pull request #286 from vangel76/feat/review-comment-navigation
Review: Previous/Next Comment, Show Comments, Show All Notes, Convert to Comments (#281)
2026-10-11 13:00:30 -04:00
Brandon Thomas c83f214c9d Spanish, German and Czech strings for comment navigation (review fix-up for #286)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:00:27 -04:00
Brandon Thomas 79fce91359 Merge remote-tracking branch 'origin/main' into fix-333
# Conflicts:
#	ROADMAP.md
#	crates/model/src/lib.rs
#	crates/xlsx/src/sheet_read.rs
#	docs/file-format-parity.md
#	docs/gaps.md
2026-10-11 12:56:45 -04:00
Brandon Thomas e78cc6edc9 Fix-up #332: bound .xls formula nesting and share one record budget across sheets
Chained PtgParen/PtgUminus (or operator) tokens built a ~16K-deep Expr whose
printing or drop overflowed the stack; nesting past the formula parser's
MAX_DEPTH (256) is now reported as unsupported. BoundSheet records pointing
into one huge substream each got their own 40M-record allowance; the
allowance is now shared by the whole Workbook stream, and two sheets at the
same offset are refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:55:17 -04:00
Brandon Thomas 141fef26e8 Merge remote-tracking branch 'origin/main' into fix-286
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/review.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
2026-10-11 12:52:12 -04:00
Brandon Thomas 30312e7546 Merge remote-tracking branch 'origin/main' into fix-332
# Conflicts:
#	ROADMAP.md
#	docs/file-format-parity.md
#	docs/gaps.md
2026-10-11 12:51:12 -04:00
Ege Arhan 64089568c8 fix(ribbon): Watch Window layout in Formulas ribbon (#342) 2026-10-11 16:50:42 +00:00
Brandon Thomas 336deb87de Merge pull request #216 from MarekSpodBiedry/issue-202
Read the browser clock for NOW(), TODAY() and year-less dates on wasm (#202)
2026-10-11 12:46:33 -04:00
Brandon Thomas fa12cb441b Merge pull request #212 from Zarvinx/build/rust-1.95-clippy
Fix Rust 1.95 Clippy warnings

# Conflicts:
#	crates/ui-egui/src/grid.rs
2026-10-11 12:46:32 -04:00
Brandon Thomas 9d3b3a6074 Merge pull request #207 from mikl0s/fix/cell-set-requires-input-v2
Cell: cell.set without an input is an error
2026-10-11 12:46:03 -04:00
Brandon Thomas 05260cf3b8 Merge pull request #268 from ttrudging/fix/worksheet-tab-scrolling
Fix horizontal worksheet tab scrolling
2026-10-11 12:45:34 -04:00
Brandon Thomas 4cb4f6586e rustfmt the sheet-tab scroll area (review fix-up for #268)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:42:02 -04:00
Brandon Thomas de8d70cc39 Merge remote-tracking branch 'origin/main' into fix-268 2026-10-11 12:41:54 -04:00
Brandon Thomas 117be4feb1 Merge pull request #335 from Losminek (author's merge with main) 2026-10-11 12:36:55 -04:00
Brandon Thomas a4fc1070c7 Merge pull request #352 (author's merge with main; content already on main) 2026-10-11 12:36:55 -04:00
Brandon Thomas b0c72c92f3 Merge pull request #353 (author's merge with main; content already on main) 2026-10-11 12:36:55 -04:00
Brandon Thomas 18eb274878 Merge pull request #350 (author's merge with main; content already on main) 2026-10-11 12:36:55 -04:00
Brandon Thomas c1a6a9cf3a Merge pull request #355 (author's merge with main; content already on main) 2026-10-11 12:36:55 -04:00
Brandon Thomas cd9662f1d4 Docs: headline counts after wave 3 (513 / 523 functions, 504 working; catalog 266 / 290)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:31:17 -04:00
Brandon Thomas abbd8181b9 Fix-up: theme test picks System from Backstage Options' Display theme combo (#318 after #331)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:31:17 -04:00
Sasha Syrotenko 1a2daefd78
Merge branch 'main' into fix/memory-alloc-on-agg 2026-10-11 19:31:00 +03:00
Brandon Thomas 4d2335c8f5 Fix-up: Spanish, German and Czech strings for the features merged alongside them; theme test goes through Backstage Options (#318 after #331)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:21:15 -04:00
lloyd 823dc5a060 Merge branch 'main' of github.com:storytold/gridcraft into fix/copy-multiple-ranges
# Conflicts:
#	crates/engine/src/tests.rs
#	crates/ui-egui/tests/clipboard.rs
2026-10-11 18:19:26 +02:00
lloyd 4e94c2f720 Merge commit '684bc41d0318667295ea8bc4c8887a27f47fb5a7' into fix/multi-select-resize
# Conflicts:
#	crates/engine/src/tests.rs
2026-10-11 18:16:57 +02:00
lloyd 496a631203 Merge commit '684bc41d0318667295ea8bc4c8887a27f47fb5a7' into fix/journal-redact-passwords
# Conflicts:
#	crates/engine/src/tests.rs
2026-10-11 18:16:57 +02:00
Losminek b3b2cd3221 i18n (cs): translate "Interface size" and "Auto" (#294)
Two new upstream catalog strings (interface scale control in the View tab).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 18:16:03 +02:00
Losminek 819dc49c44 Merge origin/main into cs-pr
Upstream added German (de) in the meantime, in the same places where the
Czech language is registered (module list, Language enum and ALL, name,
code, tag parsing, translate, tests, theme font loop, control protocol
list). Both languages kept, German first. contributors/people.toml, the
ROADMAP and docs/localization-parity.md counters: all entries kept.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 18:16:03 +02:00
Brandon Thomas 267a2183ac Fix-up: Backstage options read the formula bar from engine prefs (#331 after #295)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:13:09 -04:00
Brandon Thomas 0305d2a666 Merge pull request #335 from Losminek/cs-pr
i18n: Czech interface language (cs)

# Conflicts:
#	ROADMAP.md
#	contributors/people.toml
#	crates/ui-egui/src/control.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/theme.rs
#	docs/localization-parity.md
2026-10-11 12:10:06 -04:00
Brandon Thomas 29660e8c4d Merge pull request #331 from vangel76/feat/file-backstage
UI: File tab Backstage view (#174)

# Conflicts:
#	ROADMAP.md
#	crates/engine/src/tests.rs
#	crates/ui-egui/src/control.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/ribbon.rs
#	docs/parity-checklist.md
#	docs/ui-parity.md
2026-10-11 12:08:56 -04:00
Brandon Thomas 839072c6dd Merge pull request #327 from vangel76/feat/solver
Data: Solver with Simplex LP, integer branch and bound and a nonlinear method (#326)

# Conflicts:
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ko.rs
#	crates/ui-egui/src/i18n/pt.rs
#	crates/ui-egui/src/i18n/ru.rs
#	crates/ui-egui/src/i18n/zh.rs
#	crates/ui-egui/src/ribbon.rs
#	crates/ui-egui/tests/interaction.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-10-11 12:07:34 -04:00
Brandon Thomas 1dbad7768d Merge pull request #320 from vangel76/feat/analysis-toolpak
Data: Analysis ToolPak with 13 tools and the Data Analysis dialog (#312)

# Conflicts:
#	crates/ui-egui/src/dialogs.rs
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-11 12:06:42 -04:00
Brandon Thomas 95660dc132 Merge pull request #319 from vangel76/fix/excel-shortcuts
Keyboard: Excel shortcut audit, add the missing ones (#110)

# Conflicts:
#	docs/ui-parity.md
2026-10-11 12:06:40 -04:00
Brandon Thomas 925ff53122 Merge pull request #303 from vangel76/fix/chart-category-axis
Charts: Select Data edits the category axis labels; blank corner makes column 1 the categories (#287)

# Conflicts:
#	crates/engine/src/tests.rs
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/tests/interaction.rs
#	docs/chart-parity.md
2026-10-11 12:06:39 -04:00
Brandon Thomas fe9e3163f0 Merge pull request #301 from vangel76/fix/recommended-charts
Charts: Recommended Charts opens a dialog of chart types with previews (#215)

# Conflicts:
#	crates/engine/src/tests.rs
#	crates/ui-egui/tests/interaction.rs
#	docs/chart-parity.md
2026-10-11 12:06:37 -04:00
Brandon Thomas 867c5fd1f1 Merge pull request #317 from vangel76/feat/forecast-ets
Functions: FORECAST.ETS, .CONFINT, .SEASONALITY and .STAT (#314)

# Conflicts:
#	README.md
#	ROADMAP.md
#	docs/function-parity.md
#	docs/gaps.md
2026-10-11 12:05:55 -04:00
Brandon Thomas 97bad77ef4 Merge pull request #313 from vangel76/feat/pivot-chart
Charts: PivotCharts (insert.pivotChart) (#311)

# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/pivot.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
2026-10-11 12:05:54 -04:00
Brandon Thomas 685802ee9f Merge pull request #306 from vangel76/feat/pivot-calculated-field
PivotTables: calculated fields (pivot.calculatedField) (#304)

# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
2026-10-11 12:05:52 -04:00
Brandon Thomas 2af0984af0 Merge pull request #308 from vangel76/feat/review-allow-edit-ranges
Review: Allow Edit Ranges with Excel-compatible password hashes (#307)

# Conflicts:
#	ROADMAP.md
#	crates/xlsx/src/sheet_write.rs
#	crates/xlsx/src/tests/malformed.rs
#	docs/file-format-parity.md
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
2026-10-11 12:05:30 -04:00
Brandon Thomas 4dce1181e1 Merge pull request #305 from vangel76/feat/cell-checkbox
Checkboxes: ribbon button, Excel's value and Delete rules, XLSX cell controls (#196)

# Conflicts:
#	ROADMAP.md
2026-10-11 12:05:28 -04:00
Brandon Thomas 1f99931dd3 Merge pull request #302 from vangel76/feat/xlsx-threaded-comments
XLSX: write threaded comments and persons parts, read note visibility (#300)

# Conflicts:
#	ROADMAP.md
#	crates/xlsx/src/tests/roundtrip.rs
2026-10-11 12:05:27 -04:00
Brandon Thomas 1302ec76a4 Merge pull request #310 from vangel76/fix/sheet-right-to-left
Grid: mirror right-to-left sheets (#146)

# Conflicts:
#	crates/ui-egui/src/grid.rs
#	docs/localization-parity.md
2026-10-11 12:05:25 -04:00
Brandon Thomas cf1ba2071f Merge pull request #309 from vangel76/feat/drag-freeze-lines
Grid: freeze panes by dragging the freeze handles (#195)

# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ko.rs
#	crates/ui-egui/src/i18n/pt.rs
#	crates/ui-egui/src/i18n/ru.rs
#	crates/ui-egui/src/i18n/zh.rs
2026-10-11 12:04:51 -04:00
Brandon Thomas d274eb6dac Merge pull request #318 from vangel76/fix/theme-toggle
UI: title-bar light/dark switch, File › Display theme, system appearance on first run (#194, #239)

# Conflicts:
#	docs/ui-parity.md
2026-10-11 12:04:50 -04:00
Brandon Thomas 2f032392f3 Merge pull request #323 from vangel76/fix/macos-title-bar
macOS: centre the window buttons in the title bar (#170)

# Conflicts:
#	crates/ui-egui/src/ribbon.rs
2026-10-11 12:04:49 -04:00
Brandon Thomas 3657b2bc9b Merge pull request #321 from vangel76/fix/xlsb-ods-open-with
Packaging: offer GridCraft for .xlsb and .ods files (#92)
2026-10-11 12:04:20 -04:00