Commit Graph

601 Commits

Author SHA1 Message Date
Brandon Thomas 26489863b0 Merge pull request #334 from vangel76/feat/page-layout-view
View: Page Layout view with rulers and in-place headers and footers (#329)
2026-10-11 13:51:31 -04:00
Brandon Thomas 4a55aa3e34 Merge main into page-layout-view: pages keep the gliding selection (#266), frozen-pane clipping (#217), right-to-left mirroring and freeze handles (#310, #309); es/de/cs strings for headers and footers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:39:07 -04:00
Brandon Thomas baffd3c78d Fix-up #325: cap Forecast Sheet history and forecast rows
The default periods (a third of the history, up to ~33k) bypassed
MAX_PERIODS, and each forecast row's three ETS formulas refit over the whole
history, so 100k history rows x 10k periods froze the app. History is now at
most 10,000 rows, periods at most 10,000, and history x periods at most
500,000 (about 3 us per history point per fit: a few seconds of recalc at
the cap). The default is clamped to the cap; explicit periods or an end past
it are refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:30:47 -04:00
Brandon Thomas e800368c91 Merge pull request #266 from arcanii/selection-glide
Glide the selection outline to a new selection; View ▸ Animations turns it off (includes #265)
2026-10-11 13:27:43 -04:00
Brandon Thomas c8b1b941f7 Merge main into selection-glide: the gliding outline and its fill respect frozen panes (#217) and right-to-left sheets (#310); es/de/cs strings for Animations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:27:27 -04:00
Brandon Thomas cf75981fc2 Merge pull request #261 from AlissonFA/fix/cell-vertical-alignment
M2: fix cell vertical alignment positioning and add keytips (#241)
2026-10-11 13:20:27 -04:00
Brandon Thomas b3908bf81e Key tips HAT/HAM/HAB run Align Top/Middle/Bottom, with a test (review fix-up for #261)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:20:22 -04:00
MarekSpodBiedry 568b754211 Ctrl+click on an already selected header or cell deselects it (#359) 2026-10-11 19:18:39 +02:00
MarekSpodBiedry ea2e2a5bba Edit date cells as dates, not serial numbers (#362) 2026-10-11 19:18:27 +02:00
Brandon Thomas fa33d0b90f Merge pull request #298 from vangel76/fix/symbol-glyph-fallback
UI fonts: symbol fallback faces so interface symbols aren't boxes (#197)
2026-10-11 13:15:43 -04:00
Brandon Thomas 27ef18ec2c symbol_glyphs test: compare against a private-use code point no font covers (review fix-up for #298)
U+25FB is a real glyph in DejaVu, so the test could pass while symbols still rendered as boxes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:14:30 -04:00
Brandon Thomas 6cf32cf4eb Merge branch 'land' into fix-298
# Conflicts:
#	ROADMAP.md
2026-10-11 13:13:26 -04:00
Brandon Thomas a0cb8f2ca2 Docs: catalog 271 / 290 after #286 and #288
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:13:01 -04:00
Brandon Thomas 5360a77505 Merge remote-tracking branch 'origin/main' into fix-325
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/mod.rs
#	crates/ui-egui/src/dialogs.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/ui-parity.md
2026-10-11 13:12:41 -04:00
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