Brandon Thomas
e2bcb712fd
Merge pull request #418 from neilcawse/fix/numfmt-text
...
Numfmt: fraction literals and zero fractions, `?` pads thousands separator, TEXT booleans through text section
2026-10-11 18:05:17 -04:00
Brandon Thomas
936c6a055a
Merge pull request #423 from neilcawse/fix/xlsx-names-xlpm
...
XLSX: strip _xlpm. from LET/LAMBDA parameters on read, keep line breaks in table columns, allow leading backslash in table names
# Conflicts:
# docs/file-format-parity.md
2026-10-11 18:05:16 -04:00
Brandon Thomas
5432419cd5
Merge pull request #427 from vedran-dobos/csv-keep-delimiter
...
CSV: saving keeps the separator the file was opened with (#426 )
2026-10-11 18:05:14 -04:00
Vedran Dobos and Claude Opus 5.5
b13ea3e2f3
CSV: saving keeps the separator the file was opened with ( #426 )
...
A `;`-separated CSV (the usual CSV where `,` is the decimal separator) was
rewritten with `,` on save: read_csv sniffed the delimiter but the result was
dropped, and save_bytes passed a hard-coded b','. file.save, Save As .csv,
file.exportCsv, file.saveBytes and gridcraft-cli convert all went through it.
The workbook now remembers the separator it was read with
(Workbook::csv_delimiter, set by read_csv) and a CSV save writes it back.
Workbooks not read from CSV, and .tsv/.txt sources saved as .csv, keep `,`.
Regression tests: `;`, `,` and tab .csv round trips byte for byte, new and
.xlsx-origin workbooks save with `,`, and open-by-path + edit + file.save on a
`;` file keeps `;` (also through exportCsv and saveBytes).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 23:46:27 -07:00
Brandon Thomas
e6773dac3c
Merge pull request #433 from derechopiano/fix/autofit-filter-button-spacing
...
Fix AutoFit width for table and AutoFilter dropdowns
2026-10-11 18:05:13 -04:00
Brandon Thomas
1841658978
Merge pull request #439 from itrycodinganditsbad/rotated-text-align
...
Rotated text follows the cell's alignment
2026-10-11 18:05:12 -04:00
Brandon Thomas
f38b17fb67
Merge pull request #438 from MarekSpodBiedry/issue-428
...
Scatter charts of two unlabelled columns plot the first as X for one series (#428 )
2026-10-11 18:05:11 -04:00
Fabio Lussi and Claude Opus 5.5
dbc04ddae0
Rotated text follows the cell's alignment ( Fixes #435 )
...
Text turned by an angle was drawn at a fixed anchor (bottom-left for upward,
top-left for downward text) and ignored the horizontal and vertical alignment,
so upright text with Middle Align in a tall merged cell sat at the bottom.
rotated_text_pos places the turned galley's bounding box in the cell per the
alignment, then derives the TextShape anchor from it. General/Bottom keep the
old placement for upright text.
Fixes #435
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 00:00:56 +02:00
MarekSpodBiedry
88df1670ba
Scatter charts of two unlabelled columns plot the first as X for one series ( #428 )
2026-10-11 23:38:27 +02:00
derechopiano
1a6c864235
home.autofitColumnWidth: reserve filter dropdown space
2026-10-11 22:09:51 +01:00
neilcawse and Claude Opus 5.5
13afa8c773
XLSX: read cell formulas via file→model conversion (_xlpm), keep line breaks in table columns, allow leading backslash in table names
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 16:39:31 -04:00
neilcawse and Claude Opus 5.5
737999f182
Numfmt: fraction literals and zero fractions, ? pads thousands separator, TEXT booleans through text section
...
Checked against Excel-cached TEXT() results in number- and text-format test workbooks: 226 of 352 TEXT cells mismatched before, 0 after.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 16:39:30 -04:00
Brandon Thomas
a5137872c1
Merge pull request #401 from vangel76/fix/text-box-formatting
...
Drawing: text box formatting — run size/bold/font/outline, alignment, anchor, no outline (#377 )
2026-10-11 16:14:44 -04:00
Brandon Thomas and Claude Opus 5.5
3054babe0e
Text boxes: their typefaces count as used workbook fonts, so an installed one is bound; restore image_ext's doc comment (review fix-up for #401 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 16:14:41 -04:00
Brandon Thomas
1c3beb2a95
Merge branch 'land' into fix-401
...
# Conflicts:
# ROADMAP.md
2026-10-11 16:09:03 -04:00
Brandon Thomas
4a23b9cf4b
Merge pull request #404 from vangel76/fix/header-footer-variants
...
Headers and footers: first-page and even-page variants, Insert › Header & Footer edits in place (#344 )
# Conflicts:
# ROADMAP.md
2026-10-11 16:08:56 -04:00
Brandon Thomas
7cd96b945f
Merge pull request #402 from vangel76/fix/ui-font-hebrew-fallback
...
UI fonts: formula bar falls back to the cell font, so Hebrew isn't boxes (#349 )
# Conflicts:
# ROADMAP.md
2026-10-11 16:08:55 -04:00
Brandon Thomas
773f7e6b76
Merge pull request #388 from itrycodinganditsbad/fix-373
...
Draw the outline band for grouped rows and columns (#373 )
2026-10-11 16:06:48 -04:00
Brandon Thomas
b2101947ca
Merge branch 'land' into fix-388
...
# Conflicts:
# docs/ui-parity.md
2026-10-11 16:01:53 -04:00
Brandon Thomas
1ea549bfe4
Merge pull request #394 from vangel76/fix/print-save-as-pdf
...
File: desktop Print opens the system PDF viewer, Save As offers PDF/CSV/HTML (#370 , #343 )
2026-10-11 16:01:33 -04:00
Brandon Thomas and Claude Opus 5.5
5c26c963f8
Print PDF in the shared temp folder: create it exclusively (never follow or overwrite an existing file or symlink) and owner-only on Unix (review fix-up for #394 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 16:01:30 -04:00
Brandon Thomas
6cc69494ca
Merge branch 'land' into fix-394
...
# Conflicts:
# ROADMAP.md
2026-10-11 15:55:10 -04:00
Brandon Thomas
0065485fc0
Merge pull request #390 from GhostMitra (rebased head; the wanted part is already on main)
2026-10-11 15:54:44 -04:00
Brandon Thomas
c3f6b51055
Merge pull request #392 from GhostMitra (rebased head; the wanted part is already on main)
2026-10-11 15:54:44 -04:00
Brandon Thomas
bf63a8dd5e
Merge pull request #391 from GhostMitra/feat/web-save-file-picker
...
Web: native Save and Save As file picker with download fallback
2026-10-11 15:52:09 -04:00
Brandon Thomas and Claude Opus 5.5
6fb99ef5e1
Web save: any picker refusal but a cancel, or a failed write, falls back to a download (review fix-up for #391 )
...
A save without a recent user gesture (e.g. over the control channel) is refused with SecurityError and would otherwise fail silently.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:52:08 -04:00
Brandon Thomas
fc4a74001b
Merge branch 'land' into fix-391
2026-10-11 15:51:44 -04:00
debarghaya
173245a5b0
Web: add favicon to web app index and disable dev incremental compilation
2026-10-12 01:21:22 +05:30
debarghaya
159e057a28
Web & UI: resolve system theme preference and default web to system theme
2026-10-12 01:20:53 +05:30
Brandon Thomas
2d54f56724
Merge pull request #390 from GhostMitra
...
Web: follow the browser's light/dark appearance (the unused resolve_theme and raster_to_alpha_mask helpers from the PR are left out)
2026-10-11 15:50:21 -04:00
Brandon Thomas
80f2a75f58
Merge pull request #392 from GhostMitra/fix/web-favicon
...
Web: add favicon to web app index
2026-10-11 15:50:01 -04:00
Brandon Thomas and Claude Opus 5.5
35e317ae3a
Keep incremental dev builds; the favicon change stands on its own (review fix-up for #392 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:49:44 -04:00
Brandon Thomas
479377304f
Merge branch 'land' into fix-392
2026-10-11 15:49:38 -04:00
Brandon Thomas
baaa606036
Merge pull request #396 from nihilist-narwhal/fix-xlookup-reference
...
XLOOKUP: return a reference when the result range is one
2026-10-11 15:49:34 -04:00
Brandon Thomas and Claude Opus 5.5
6d59233e62
XLOOKUP reference path: an empty match_mode keeps the search_mode after it (review fix-up for #396 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 15:49:32 -04:00
Brandon Thomas
c7bd7deebb
Merge branch 'land' into fix-396
2026-10-11 15:49:00 -04:00
debarghaya
937bf63315
Web: native Save and Save As file picker with download fallback
2026-10-12 01:18:44 +05:30
vangel76 and Claude Opus 5.5
cdd71b4d5d
Headers and footers: first-page and even-page variants, Insert › Header & Footer edits in place ( #344 )
...
XLSX headerFooter kept only oddHeader/oddFooter: a workbook whose header is on a
different first page (differentFirst + firstHeader) or on even pages showed no
header, and saving dropped it. The model now keeps the first/even headers and
footers and the differentFirst / differentOddEven / scaleWithDoc / alignWithMargins
flags; XLSX reads and writes them; the PDF and the Page Layout view use the right
pair per page; in-place editing edits the page's own pair, and the Header & Footer
tab has Different First Page and Different Odd & Even Pages. pageLayout.headerFooter
takes the variants and a page: odd|even|first for one-section edits.
Insert › Header & Footer now switches to Page Layout view and edits the first
page's centre header, as in Excel, instead of opening the codes dialog.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-11 21:44:49 +02:00
Brandon Thomas
f173d6733d
Merge pull request #387 from vangel76/fix/sheet-protection-password
...
Review: Protect Sheet passwords use Excel-compatible hashes, kept in XLSX (#346 )
# Conflicts:
# ROADMAP.md
2026-10-11 15:43:46 -04:00
Brandon Thomas
283b06453e
Merge pull request #383 from vangel76/fix/sheetview-top-left-cell
...
View: restore and save the scroll position (topLeftCell) (#378 )
# Conflicts:
# ROADMAP.md
2026-10-11 15:43:45 -04:00
Brandon Thomas
12b46e6bbe
Merge pull request #395 from vangel76/fix/space-selection-shortcuts
...
Keyboard: Shift+Space and Ctrl+Space select without starting an edit (#338 )
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/grid.rs
2026-10-11 15:43:44 -04:00
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