Brandon Thomas
3657b2bc9b
Merge pull request #321 from vangel76/fix/xlsb-ods-open-with
...
Packaging: offer GridCraft for .xlsb and .ods files (#92 )
2026-10-11 12:04:20 -04:00
Brandon Thomas
17c6e46dcd
Merge pull request #315 from vangel76/fix/windows-default-renderer
...
Windows: never load Vulkan by default; OpenGL fallback when DirectX 12 can't start (#120 )
2026-10-11 12:04:19 -04:00
Brandon Thomas
e5d0074f95
Merge pull request #316 from vangel76/fix/macos-quit-crash
...
macOS: end the process in on_exit so quitting doesn't crash (#117 )
2026-10-11 12:04:18 -04:00
Brandon Thomas
2dbf6d43cf
Merge pull request #352 from Fly-Style/fix/memory-alloc-on-agg
...
Get rid of double range copy for aggregation operations over ranges
# Conflicts:
# crates/calc/src/tests.rs
2026-10-11 12:04:16 -04:00
Brandon Thomas
f8903c9e98
Merge pull request #353 from LloydNicholson/fix/copy-multiple-ranges
...
Issue #348 : copying multiple selections works when the areas line up, and explains when it can't
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/tests/clipboard.rs
2026-10-11 12:04:15 -04:00
Brandon Thomas
9da7acf846
Merge pull request #350 from LloydNicholson/fix/multi-select-resize
...
Issue #341 : resizing Ctrl-selected rows or columns resizes all of them
# Conflicts:
# crates/engine/src/tests.rs
2026-10-11 12:04:14 -04:00
Brandon Thomas
19b0dc6e97
Merge pull request #351 from LloydNicholson/fix/protect-password-mask
...
Issue #347 : Protect Sheet and Unprotect Sheet mask the password
2026-10-11 12:04:13 -04:00
Brandon Thomas
ea3e0ce0c5
Merge pull request #355 from LloydNicholson/fix/journal-redact-passwords
...
Journal: sheet protection passwords aren't recorded in plain text
# Conflicts:
# crates/engine/src/tests.rs
2026-10-11 12:04:12 -04:00
Brandon Thomas
684bc41d03
Merge remote-tracking branch 'origin/main' into land
2026-10-11 12:02:56 -04:00
Brandon Thomas
5f3e60b48a
Docs: headline counts after the community merges (509 / 523 functions, 500 working; catalog 260 / 290)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:02:26 -04:00
Brandon Thomas
2f6c2cd486
Fix-up: Spanish and German strings for Interface size ( #294 met #242/#271); rustfmt after merges
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 11:59:24 -04:00
Dylan M. Taylor
dfa15c3f25
ci: refactor workflows to use storytold/craft-common-actions ( #336 )
...
* ci: refactor workflows to use reusable artcraft-common-actions
* ci: point reusable workflows to storytold/craft-common-actions
* ci: pin storytold/craft-common-actions to commit 27a978f and pass secrets explicitly
* ci: use @main (unpinned) for craft-common-actions with explanation comment
2026-10-11 11:54:22 -04:00
Brandon Thomas
4f7144d753
Merge pull request #295 from vangel76/feat/view-formula-bar-zoom100
...
View: Formula Bar and Zoom 100% as engine commands (#289 )
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/control.rs
# crates/ui-egui/src/lib.rs
# docs/target-app-parity.md
2026-10-11 11:45:32 -04:00
Brandon Thomas
8f3d13a115
Merge pull request #294 from vangel76/fix/interface-scale
...
View: Interface size preference scales the whole window (#230 )
# Conflicts:
# ROADMAP.md
2026-10-11 11:45:01 -04:00
Brandon Thomas
505d001ad4
Merge pull request #293 from vangel76/fix/name-manager-new
...
Name Manager: New… and Edit… open the name dialog and return to the manager (#238 )
# Conflicts:
# crates/engine/src/tests.rs
2026-10-11 11:45:00 -04:00
Brandon Thomas
fb9266f479
Merge pull request #271 from arekown/german-translation
...
Add German (de) interface language
# Conflicts:
# ROADMAP.md
# crates/ui-egui/src/i18n.rs
2026-10-11 11:44:58 -04:00
Brandon Thomas
ea0e971e27
Merge pull request #228 from webdevtodayjason/fix/200-formula-helpers
...
Keep formula helpers inside the worksheet when scrolling (#200 )
# Conflicts:
# contributors/people.toml
# docs/ui-parity.md
2026-10-11 11:44:56 -04:00
Brandon Thomas
a1f97c2f06
Merge pull request #218 from MarekSpodBiedry/issue-190
...
Resize charts from the corner handle and the Size fields, keep typed chart and table names (#190 )
2026-10-11 11:44:55 -04:00
Brandon Thomas
0a65ffc31a
Merge pull request #219 from Zarvinx/fix-keyboard-chart-delete
...
Delete selected charts with the keyboard
# Conflicts:
# ROADMAP.md
2026-10-11 11:44:53 -04:00
Brandon Thomas
ad8aeca851
Merge pull request #217 from MarekSpodBiedry/issue-198
...
Do not draw the selection over the frozen pane when it lies only in the scrolling pane (#198 )
2026-10-11 11:44:51 -04:00
Brandon Thomas
90dcc2b329
Merge pull request #297 from vangel76/feat/trimrange
...
Functions: TRIMRANGE (#296 )
# Conflicts:
# README.md
# ROADMAP.md
# crates/xlsx/src/tables.rs
# docs/function-parity.md
# docs/gaps.md
# docs/target-app-parity.md
2026-10-11 11:44:50 -04:00
Brandon Thomas
c2c381d55d
Merge pull request #292 from vangel76/feat/bahttext
...
Functions: BAHTTEXT (#291 )
# Conflicts:
# README.md
# ROADMAP.md
# docs/function-parity.md
# docs/gaps.md
# docs/target-app-parity.md
2026-10-11 11:44:48 -04:00
Brandon Thomas
fa4d2e5741
Merge pull request #280 from vangel76/feat/percentof-euroconvert
...
Functions: PERCENTOF and EUROCONVERT (#279 )
# Conflicts:
# README.md
# ROADMAP.md
# crates/functions/src/financial.rs
# docs/function-parity.md
# docs/gaps.md
# docs/target-app-parity.md
2026-10-11 11:44:46 -04:00
Losminek
dd8016225d
Merge origin/main into cs-pr
...
The only conflict was contributors/people.toml: other contributors appended
their entries at the end of the file in the meantime. All entries kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:44:24 +02:00
Brandon Thomas
f91f7bc154
Merge pull request #276 from vangel76/feat/odd-bond-functions
...
Functions: ODDFPRICE, ODDFYIELD, ODDLPRICE, ODDLYIELD (#275 )
# Conflicts:
# ROADMAP.md
2026-10-11 11:43:49 -04:00
Brandon Thomas
59deadc4c3
Merge pull request #285 from vangel76/fix/currency-paste
...
Clipboard: pasted currency cells keep the number from the clipboard HTML (#257 )
2026-10-11 11:43:48 -04:00
Brandon Thomas
96703b79d4
Merge pull request #278 from vangel76/fix/fill-handle-ctrl-series
...
Fill handle: Ctrl+drag swaps copying and extending a series (#264 )
# Conflicts:
# ROADMAP.md
2026-10-11 11:43:47 -04:00
Brandon Thomas
4ea12e967b
Merge pull request #242 from diegozpy/i18n/es-interfaz
...
i18n: Spanish interface translation (the Español option only localized formulas)
2026-10-11 11:42:40 -04:00
Brandon Thomas
f6628954fc
Merge pull request #263 from alexanderalber/fix/201-filter-header-row
...
AutoFilter: a selected header row filters the data below it; search box in the filter menu (#201 )
2026-10-11 11:42:38 -04:00
Brandon Thomas
3b0da1d760
Merge pull request #254 from nihilist-narwhal/fix-typed-dates-and-times
...
Typed dates before 1900 stay text; typed times past 24 hours keep their hours
2026-10-11 11:42:37 -04:00
Brandon Thomas
77e6a4a46d
Merge pull request #251 from nihilist-narwhal/fix-conditional-format-layers
...
Conditional formatting: apply every matching rule; Cell Value rules as in Excel
2026-10-11 11:42:36 -04:00
Brandon Thomas
47dcd84e04
Merge pull request #282 from vangel76/fix/name-box-enter
...
UI: Name Box Enter goes to the typed cell, not the one below (#247 )
2026-10-11 11:24:39 -04:00
Brandon Thomas
331a535d3c
Merge pull request #277 from vangel76/fix/linux-font-panic
...
UI: skip system fonts egui can't parse instead of panicking at startup (#226 )
2026-10-11 11:24:38 -04:00
Brandon Thomas
c97f025459
Merge pull request #248 from MacJedi42/fix/excel-15-digit-display
...
Accuracy: round an exact tie at the 16th significant digit toward zero
2026-10-11 11:24:37 -04:00
Brandon Thomas
85f0320f5c
Merge pull request #267 from alexanderalber/fix/64-write-at-as-single
...
XLSX: write `@` as `_xlfn.SINGLE` in a dynamic-array formula (#64 )
# Conflicts:
# crates/xlsx/src/tests/roundtrip.rs
2026-10-11 11:24:36 -04:00
Brandon Thomas
1eb7796724
Merge pull request #262 from alexanderalber/fix/235-icon-set-cfvo
...
XLSX: write one cfvo per icon in icon-set rules (#235 )
# Conflicts:
# contributors/people.toml
2026-10-11 11:24:22 -04:00
Brandon Thomas
aa7c97adb9
Merge pull request #255 from nihilist-narwhal/fix-sort-and-duplicates
...
Sort and Remove Duplicates: compare text the way Excel does
2026-10-11 11:24:00 -04:00
Brandon Thomas
d059a5b5a4
Merge pull request #252 from nihilist-narwhal/fix-choose-array-index
...
CHOOSE: pick element by element when the index is an array
2026-10-11 11:23:59 -04:00
Brandon Thomas
46cd4d7b72
Merge pull request #250 from nihilist-narwhal/fix-criteria-blank-cells
...
Criteria: text patterns don't match blank cells
2026-10-11 11:23:58 -04:00
Brandon Thomas
711339e2ef
Merge pull request #253 from MacJedi42/contributors/add-macjedi42
...
Add MacJedi42 to the contributor names
# Conflicts:
# contributors/people.toml
2026-10-11 11:23:52 -04:00
Brandon Thomas
45819abd09
Merge pull request #274 from vangel76/contributors-vangel76
...
Add vangel76 to the contributor names
2026-10-11 11:23:33 -04:00
Brandon Thomas
e1939aac68
Merge pull request #272 from ttrudging/fix/paste-deadlock
...
Fix Paste button deadlock in ribbon
2026-10-11 11:23:32 -04:00
Brandon Thomas
2559426c60
Merge pull request #222 from Zarvinx/fix/macos-icon-size
...
macOS: use the correctly padded Dock icon
2026-10-11 11:23:31 -04:00
Brandon Thomas
96af804cb5
Merge pull request #223 from Dejan-Port/fix-web-edit-loss
...
fix: Save toolbar button and saveChanges dialog discard an in-progress cell edit
2026-10-11 11:23:30 -04:00
Brandon Thomas
1cd3d4af5d
Merge pull request #231 from pkibiego/security/quick-xml-0.41
...
XLSX: bump quick-xml 0.38 -> 0.41 (RUSTSEC-2026-0195 namespace-declaration DoS)
2026-10-11 11:23:29 -04:00
Brandon Thomas
f7c40e3d7e
Merge pull request #232 from webdevtodayjason/fix/selection-move-overflow
...
selection.move: clamp extreme dr/dc to the sheet edge instead of overflowing
2026-10-11 11:23:28 -04:00
lloyd
c1a500c5b9
Journal: leave sheet protection passwords out
...
Protect Sheet and Unprotect Sheet were journaled with their `password`
param, so the password showed in plain text in the journal dialog and
`engine.journal`, and a recorded script (Automate > Record Actions)
saved it in the workbook's hidden `_sc_scripts` name.
Session::execute now journals the params without secret ones
(`password`, or a name ending in `Password`). A replayed entry runs
without that param: Protect Sheet protects with the same options but no
password, and the matching Unprotect Sheet still succeeds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:17:30 +02:00
lloyd
d665499055
Clipboard: copy lined-up multiple selections; say why others can't be copied ( #348 )
...
Copying a multi-area selection always failed in the engine, and the UI
dropped the error, so Ctrl+C did nothing and Ctrl+V had nothing to
paste. Now, as in Excel:
- Areas that cover the same rows (or the same columns) and don't
overlap are copied as one block, slid together left to right (top to
bottom). The clipboard keeps a snapshot with the block packed at the
first area's place; formulas travel as their values, and column
widths or row heights, comments, pictures and merges come along.
- Other layouts, Cut of several areas and Paste Link of a multi-area
copy are refused with "This action won't work on multiple
selections."; Copy and Cut from the keyboard, ribbon and context menus
now show that message instead of failing silently.
- The marching ants go around each copied area.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 17:02:39 +02:00
lloyd
a8eb09604d
Review: mask the Protect / Unprotect Sheet password ( #347 )
...
The password fields in Protect Sheet and Unprotect Sheet were plain
text fields, so the password was readable on screen and in the
accessibility tree. A new Password form field masks it as typed and adds
a "Show password" check box that reveals it on purpose (off each time
the dialog opens).
These are the only password fields in the UI: Protect Workbook runs
without a dialog and encrypted files are refused on open.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 16:55:13 +02:00
Sasha Syrotenko
f7f7769460
Fold 'SUM', 'COUNT' and 'AVERAGE' over ranges in place
2026-10-11 17:50:30 +03:00