Brandon Thomas
8498dedb7d
Merge pull request #381 from vangel76/fix/shrink-to-fit
...
Grid: render Shrink to fit (#375 )
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/grid.rs
2026-10-11 15:43:32 -04:00
Brandon Thomas
d90a072d90
Merge pull request #380 from vangel76/fix/merged-range-borders
...
Grid: merged ranges draw their right and bottom borders (#376 )
# Conflicts:
# ROADMAP.md
2026-10-11 15:43:31 -04:00
Brandon Thomas
39c3b04d0d
Merge pull request #382 from vangel76/fix/dx12-dxc-startup
...
Windows: compile DirectX 12 shaders with FXC, no DXC runtime needed (#339 , #354 )
2026-10-11 15:43:30 -04:00
Brandon Thomas
380b355d77
Merge pull request #400 from nihilist-narwhal/fix-index-array-args
...
INDEX: arrays of row and column numbers pick a value each
2026-10-11 15:43:13 -04:00
Brandon Thomas and Claude Opus 5.5
fca801c17e
INDEX: compare the result size with saturating u64 math, so it can't overflow on 32-bit targets (review fix-up for #400 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:43:11 -04:00
Brandon Thomas
fbb2285532
Merge branch 'land' into fix-400
2026-10-11 15:42:32 -04:00
Brandon Thomas
437881f53a
Merge pull request #399 from nihilist-narwhal/fix-future-function-prefixes
...
XLSX: write the _xlfn. prefix for GROUPBY, PIVOTBY, ENCODEURL and the REGEX functions
2026-10-11 15:42:27 -04:00
Brandon Thomas
d821aa1409
Merge pull request #398 from nihilist-narwhal/fix-relative-names
...
Defined names: relative references follow the cell that uses the name
2026-10-11 15:42:26 -04:00
Brandon Thomas
2657cb2fa6
Merge pull request #397 from nihilist-narwhal/fix-validation-formulas
...
Data validation: relative formulas, checked with the value being entered
2026-10-11 15:42:25 -04:00
Brandon Thomas
4dca02c89b
Merge pull request #9 from justinjohn0306/fix/system-fonts-in-list
...
Fix: list and render installed system fonts (#4 )
2026-10-11 15:38:44 -04:00
Brandon Thomas and Claude Opus 5.5
e211f666a6
Merge main into installed-fonts: workbook fonts bind on top of main's per-language font set and fallback faces; only families that survive drop_unparseable_fonts count as bound; a language switch rebinds them (review fix-up for #9 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:38:42 -04:00
Brandon Thomas
fb3737aa03
Merge pull request #19 from justinjohn0306/fix/vba-macro-preservation
...
Preserve VBA macros + Excel-style macros UX (issue #6 )
2026-10-11 15:20:47 -04:00
Brandon Thomas and Claude Opus 5.5
9bf5ecaf04
Merge main into VBA preservation; save macros only into .xlsm (an .xlsx never carries a VBA project); drop the shell round-trip script (review fix-up for #19 )
...
The Rust round-trip test covers what scripts/check-vba-roundtrip.sh checked.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:20:45 -04:00
Brandon Thomas
1d3abfa4a7
Merge pull request #203 from gyurix/system-theme-detection
...
Linux: the display theme asks the desktop, not winit
2026-10-11 15:09:46 -04:00
Brandon Thomas and Claude Opus 5.5
55d41eb13c
Desktop theme watcher starts only in the desktop app, not in every SheetApp (tests, embedders) (review fix-up for #203 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:09:43 -04:00
Brandon Thomas
0bea7178a2
Merge branch 'land' into fix-203
2026-10-11 15:04:30 -04:00
Brandon Thomas
177e52a14d
Merge pull request #209 from Dejan-Port/print-only
...
web: print straight to the system print dialog, not just export
2026-10-11 15:04:11 -04:00
Brandon Thomas and Claude Opus 5.5
04fb60ea5d
Printing from the UI (Backstage, Ctrl+P, menu) goes through print_now, so the web build opens the browser's print dialog (review fix-up for #209 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:04:09 -04:00
vangel76 and Claude Opus 5.5
806a39a514
Windows: compile DirectX 12 shaders with FXC, never a stray dxcompiler.dll ( #339 , #354 )
...
wgpu's default DX12 compiler (Auto) loads the first dxcompiler.dll on the
DLL search path. GridCraft ships none, so another program's copy is used;
without a matching dxil.dll its 'DXIL signing library not found' warning
fails wgpu's internal compute pipelines, the device is lost and the app
exits before the first frame. Pin FXC (part of Windows) unless
WGPU_DX12_COMPILER asks for another compiler.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 21:02:20 +02:00
vangel76 and Claude Opus 5.5
3ae319154c
Grid: render Shrink to fit ( #375 )
...
Cells with shrinkToFit drew at full size: text spilled or was clipped and
numbers showed ####. Too-wide content now gets a smaller font that fits the
cell or merged area, matching the PDF/print path.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 21:01:12 +02:00
Brandon Thomas
f8edb7c1a4
Merge branch 'land' into fix-209
2026-10-11 15:00:04 -04:00
Brandon Thomas and Claude Opus 5.5
347d2a5bc2
Docs: catalog 274 / 290 after #211 and #193
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 14:59:45 -04:00
vangel76 and Claude Opus 5.5
7a4aaebab0
Grid: merged ranges draw their right and bottom borders from the edge cells ( #376 )
...
Excel stores a merged range's outline on the cells along each edge; the grid
only used the anchor cell's borders, so a boxed merge showed only top and left.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 20:58:49 +02:00
Brandon Thomas
dc85b2ab07
Merge pull request #193 from zaidshurbaji/feature/table-slicers
...
Feature/table slicers
2026-10-11 14:58:32 -04:00
Brandon Thomas and Claude Opus 5.5
8aa9cad703
Slicers: the anchor uses #206 's checked cell_param and stays on the sheet; drop the personal macOS workflow (review fix-up for #193 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 14:58:29 -04:00
nihilist-narwhal
686501c7de
Data validation: relative formulas, checked with the value being entered
...
Validation formulas were evaluated as written, at every cell of the
range, and against the cell's old value. A Custom rule =A1>10 on A1:A9
rejected 20 typed into A1 (A1 was still empty) and checked A1, not A5,
when typing into A5; a Whole number rule "<= B1" on C1:C9 compared C2
with B1. As in Excel, the formulas are now relative to the first cell
of the range and see the value being entered.
2026-10-11 13:54:43 -05:00
nihilist-narwhal
683ff6003c
Defined names with relative references
...
A name whose references have no $ was evaluated as if they were
absolute. In Excel such references are relative: defined from B2,
=Sheet1!A2 means "the cell to the left", and the file stores it
relative to A1 (Sheet1!XFD1, wrapping around the sheet's edge).
Name formulas with relative references are now moved by the using
cell's offset from A1, wrapping at the edges, and formulas.defineName
takes relative references as relative to the active cell, as Excel's
Name Manager does, and stores them relative to A1.
2026-10-11 13:53:26 -05:00
nihilist-narwhal
85ca8f6af5
INDEX: arrays of row and column numbers pick a value each
...
INDEX took one row and one column number, so INDEX(A1:C3,{1;3},{1,3})
gave a single value and SUM(INDEX(A1:C3,{1,2,3},2)) summed one cell.
In Excel, arrays of positions return an array of the values at each
(broadcast) position. A position that picks a whole row or column gives
#CALC! there, as arrays can't nest.
2026-10-11 13:52:23 -05:00
nihilist-narwhal
2ded7bf193
XLSX: write the _xlfn. prefix for GROUPBY, PIVOTBY, ENCODEURL and the REGEX functions
...
These were missing from the list of functions newer than the original
file format, so they were saved without the prefix, and Excel shows
#NAME? for such formulas.
2026-10-11 13:52:18 -05:00
Brandon Thomas
205981a52a
Merge branch 'land' into fix-193
...
# Conflicts:
# crates/engine/src/cmd/mod.rs
# crates/ui-egui/src/chartview.rs
2026-10-11 14:48:14 -04:00
Brandon Thomas
ce0483fc17
Merge pull request #211 from Zarvinx/feat/drag-selected-columns
...
Reorder selected columns by dragging headers
2026-10-11 14:47:43 -04:00
Brandon Thomas
506320b548
Merge branch 'land' into fix-211
...
# Conflicts:
# crates/engine/src/tests.rs
# docs/ui-parity.md
2026-10-11 14:39:47 -04:00
Brandon Thomas and Claude Opus 5.5
743ca809cc
Fix-up: Insert Copied Cells target and PivotChart anchor use #206 's checked cell_param
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 14:34:37 -04:00
Brandon Thomas
a9f9b09acc
Merge pull request #365 from MarekSpodBiedry/issue-359
...
Ctrl+click on an already selected header or cell deselects it (#359 )
2026-10-11 14:34:17 -04:00
Brandon Thomas
57ab1790ad
Merge pull request #364 from MarekSpodBiedry/issue-362
...
Edit date cells as dates, not serial numbers (#362 )
2026-10-11 14:34:16 -04:00
Brandon Thomas
1fc7f50104
Merge pull request #360 from ege-arhan/fix/formulas-ribbon-layout
...
fix(ribbon): Watch Window layout in Formulas ribbon (#342 )
2026-10-11 14:34:14 -04:00
Brandon Thomas
ff516650da
Merge pull request #206 from mikl0s/
...
Cell references: an invalid reference is an error instead of the active cell
2026-10-11 14:34:10 -04:00
Brandon Thomas
76f3a29c79
Merge branch 'land' into fix-206
2026-10-11 14:23:51 -04:00
Brandon Thomas and Claude Opus 5.5
fb8e8ac8f1
Docs: catalog 272 / 290 after #325
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 14:22:39 -04:00
Brandon Thomas and Claude Opus 5.5
8fcb9b1007
Fix-up: es/de/cs strings for Forecast Sheet ( #325 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 14:15:18 -04:00
Brandon Thomas
7a34692a0d
Merge pull request #325 from vangel76/feat/forecast-sheet
...
Data: Forecast Sheet (data.forecastSheet) (#322 )
# Conflicts:
# ROADMAP.md
# docs/gaps.md
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-11 13:52:00 -04:00
Brandon Thomas
fda7f5bc14
Merge pull request #333 from vangel76/feat/xlsx-passthrough
...
XLSX: keep unmodelled parts on save (#330 )
# Conflicts:
# ROADMAP.md
# crates/model/src/lib.rs
# crates/model/src/sheet.rs
# docs/file-format-parity.md
# docs/gaps.md
2026-10-11 13:51:59 -04:00
Brandon Thomas
c379da6ac9
Merge pull request #332 from vangel76/feat/xls-read
...
XLSX/IO: read legacy .xls (BIFF8) workbooks (#121 )
# Conflicts:
# docs/gaps.md
2026-10-11 13:51:48 -04:00
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 and Claude Opus 5.5
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 and Claude Opus 5.5
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 and Claude Opus 5.5
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 and Claude Opus 5.5
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