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
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
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
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
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 and Claude Opus 5.5
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 and Claude Opus 5.5
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 and Claude Opus 5.5
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 and Claude Opus 5.5
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