lloyd
009364e72e
XLSX: pin the UTF-16LE password encoding with a msoffcrypto known answer ( #11 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
1532349227
Encrypted workbooks no password opens are named before asking for one ( #11 )
...
gridcraft_xlsx::check_encryption parses EncryptionInfo without a
password, so RC4, Extensible, certificate-only and rights-management
(IRM) files, and damaged ones, get their real message instead of a
password prompt first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
312b4c056e
UI: password dialog fixes from review ( #11 )
...
OK on the untouched field says the password is incorrect instead of
asking again; the Backstage closes once the workbook opens; app.open on
the control channel takes a password and never opens the dialog. Control
protocol docs cover file.open {password}.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
8de8bc187a
Docs: encrypted workbooks open with their password ( #11 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
c882d169ff
UI: ask for the password of an encrypted workbook ( #11 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
aad58d4c75
Engine: file.open decrypts password-protected workbooks ( #11 )
...
Without a password, file.open returns an error carrying
io::PASSWORD_REQUIRED (never a dialog). A decrypted workbook gets no save
path, so Save never replaces the encrypted original.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
c9f03cc36a
XLSX: build encrypted workbooks in code for tests (test-support feature) ( #11 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02:00
lloyd
70d857a699
XLSX: decrypt Agile and Standard encrypted packages ( #11 )
...
Clean-room from [MS-OFFCRYPTO]: EncryptionInfo parsing, SHA-1/SHA-2 key
derivation with a capped spin count, AES-ECB/CBC. RC4, Extensible and
certificate-only encryption are reported as unsupported.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:29:28 +02: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
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
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
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
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
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
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
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
vangel76
88bb5677a8
UI fonts: interface text falls back to the cell font ( #349 )
...
On macOS the UI font (SF) has no Hebrew and no Hebrew fallback face was
found, while cells in Arial drew it: the formula bar showed boxes. The
interface families now carry the cell face ahead of the script fallbacks,
and the macOS Hebrew candidates include ArialHB.ttc / SFHebrew.ttf /
LucidaGrande.ttc.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:42:24 +02:00
vangel76
da1d291d93
Drawing: text box run formatting, alignment, anchor and no-outline ( #377 )
...
Text boxes ignored a:rPr (size, bold, italic, typeface, fill, outline),
a:pPr algn, a:bodyPr anchor and spPr/a:ln/a:noFill. They are now read into
Shape::format, drawn on screen and in PDF, and written back.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 21:39:53 +02: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
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