github storytold/gridcraft v0.11.1
GridCraft v0.11.1

4 hours ago

Note

FreeBSD aarch64 is dropped from this release. We had to cut releases, and we cannot build this target within the 5-hour CI limit for any of the Craft apps, so we are dropping it for now. This is a known blocker, flagged for a future fix in storytold/craft-common-actions#39. FreeBSD x86_64 and every other platform are included.

What's Changed

  • security: enforce HTTPS on curl downloads (SonarCloud S6506) by @dylanmtaylor in #2188
  • Backlog integration: 230 reviewed fixes and reference app behaviour changes by @aiongg in #2226
  • Seed the Sort dialog column from the active cell (#1906) by @bfenty in #1979
  • Desktop theme: the watcher's link has a type off Linux, so the gate passes there by @Hamza0101 in #1981
  • calc: LET and LAMBDA names ignore case in any script by @webglobecontact-ui in #1996
  • Spanish formula aliases for financial functions (#1986) by @bfenty in #2000
  • Formulas: Excel's longest legal operator chain (4,096 operands) no longer crashes entry or save by @Harrison-Booth in #2019
  • Linux: time out the desktop theme's portal read by @bmh129 in #2026
  • Formula entry: an incomplete formula's error describes what was typed (fixes #2030) by @kezmdor in #2032
  • Row auto-fit: count line breaks only in cells that wrap by @RedBearAK in #2033
  • Fix WebGL startup on devices with lower GPU limits by @mbaksa in #2038
  • Word-wrap-aware automatic row height (#1969) by @bfenty in #2049
  • i18n: Dutch (nl) interface language by @Stefanfra in #2061
  • Use scientific notation when number_to_text rounds up to 1e15 by @Silvertree2010 in #2069
  • HTML export: place pictures and charts at their anchors by @bilalmughal in #2080
  • Right-click on a chart opens the chart's menu, not the cell's (fixes #2067) by @dantebertuzzi in #2084
  • Grid: paint the scrollbar's column beside the column headings (white corner in dark mode) by @dantebertuzzi in #2086
  • fix(ui): Esc and Enter close a data validation alert, not the edit behind it, and the keyboard goes back to the entry (#2089) by @vedran-dobos in #2090
  • Paste Special: Excel's two-column layout, translated, Paste Link button by @dantebertuzzi in #2093
  • Dialogs: OK and Cancel in a row, so form dialogs fit their content by @dantebertuzzi in #2094
  • Number Stored as Text: green indicator, warning button and Convert to Number (#1994) by @dantebertuzzi in #2095
  • docs: fix Trunk website link (#2076) by @Zaxaerith in #2098
  • Fonts: a cell font named in another language matches its installed font (fixes #1898) by @chessive in #2100
  • Romanian (ro) interface language by @vioreltus in #2102
  • Translate form-dialog field labels, choices and notes by @vioreltus in #2106
  • Backstage: list the languages alphabetically by their own name by @nikolainyegaard in #2116
  • Print: JIS B4/B5 and Japanese paper sizes (はがき・封筒・B6) by @midasdf in #2131
  • PivotTable Fields pane: scan the source once per change, not every frame by @Aimarmndz in #2142
  • Table Design: draw the Table Styles gallery in the ribbon (#2148) by @alosslessdev in #2150
  • calc: bound SUBTOTAL/AGGREGATE input work (#2175) by @Higgs32584 in #2194
  • calc: cap LINEST-family regressor matrices (#2177) by @Higgs32584 in #2195
  • core: iterative number coercion for nested parentheses (#2180) by @Higgs32584 in #2200
  • calc: cap array broadcast result size (#2182) by @Higgs32584 in #2201
  • clipboard: bound HTML colspan/rowspan expansion (#2171) by @Higgs32584 in #2207
  • Web: keep preferences such as dark mode between visits by @marcoarnulfo in #1589
  • XLSX: keep custom column widths that round to the default width by @marcoarnulfo in #1615
  • Keyboard: Ctrl+6 hides and shows objects, saved as workbookPr showObjects by @marcoarnulfo in #1626
  • Add Advanced Filter dialog and fix copy-to data loss by @derechopiano in #1628
  • Memory: undo steps share picture and macro bytes instead of copying them by @arcanii in #1629
  • Memory: interface fonts are read once and shared with egui, not copied into it by @arcanii in #1630
  • Memory: floating pictures' textures are bounded, sized to what is drawn, and dropped with their workbook by @arcanii in #1631
  • fix(xlsx): bound repeated column expansion by @harrisonoconnorhover in #1648
  • fix(ets): avoid repeated scans while interpolating gaps by @harrisonoconnorhover in #1650
  • Fill handle: right-drag opens the fill menu (Copy Cells, Fill Series, Fill Formatting Only, Fill Without Formatting, Series…) by @marcoarnulfo in #1652
  • Cell editor: the caret contrasts with the cell's fill by @marcoarnulfo in #1657
  • macOS: bold interface text draws Cyrillic е open, not like ө by @marcoarnulfo in #1669
  • fix: theme PivotTable field group buttons by @ozero in #1671
  • Keep overflow text visible when its source cell scrolls out of view by @Silvertree2010 in #1672
  • contributors: add Harrison-Booth by @Harrison-Booth in #1674
  • #1447: two value fields without a column field hide the Values row by @HyakoV3 in #1683
  • #1447: a PivotChart's link names the workbook by @HyakoV3 in #1685
  • XLSX: keep Japanese phonetic runs (ふりがな) on open and save by @midasdf in #1692
  • Charts: series that refer to defined names ([0]!Name) plot their data, and are saved qualified by @bldred in #1693
  • Charts: box & whisker charts honor their quartile method by @webdevtodayjason in #1695
  • XLSX: new workbooks get (fixes #1699) by @aviiciii in #1701
  • Fonts: find the cell, serif, mono, Thai and Hebrew faces in Fedora's package folders (#1694) by @tydude001 in #1705
  • Reject table.resize when the new range overlaps another table by @Silvertree2010 in #1706
  • Rows: a big font isn't counted twice when the sheet's default height already fits it by @tisca26 in #1709
  • Tables: add the missing Resize Table button (#935) by @adrinothiago-cpu in #1724
  • Prefill the Remove Duplicates range from the selection by @TheRenegadeDev in #1725
  • Fail CLI checks on incomplete or empty input discovery by @TheRenegadeDev in #1726
  • Use the platform clock for UI timing on the web by @TheRenegadeDev in #1728
  • Move PivotTables with their cells on row/column insert and delete by @Silvertree2010 in #1731
  • i18n(ja): translate the dialog, message and menu strings (943 entries, matching the pt-BR coverage) by @midasdf in #1732
  • fix(web): clean up print iframe and blob resources by @TheRenegadeDev in #1734
  • Analysis ToolPak: moving-average standard errors use a running sum (#1043) by @TheRenegadeDev in #1735
  • Keep chart source range in step with inserted and deleted lines by @Silvertree2010 in #1738
  • Ctrl+Alt+letter that types a character no longer triggers the Ctrl shortcut (#1530) by @MarekSpodBiedry in #1744
  • Docs: §6's calculation bugs have all landed by @Hamza0101 in #1753
  • i18n: translate sheet tab context menu and AutoSave toggle (fixes #1537) by @dknalp in #1754
  • Fonts: render Lao text with an installed Lao face instead of tofu by @Laosmartsoft in #1758
  • Sheet protection: obey the Sort and Use AutoFilter boxes by @Hamza0101 in #1765
  • Add Ukrainian localization (uk.rs) by @War2Darius in #1770
  • i18n: add Vietnamese interface translations by @thanhbv102-arch in #1772
  • Added multi-column/row selection in formulas & column/row selection highlighting. by @Cyan101 in #1838
  • Docs: correct stale chart round-trip notes by @alosslessdev in #1889
  • Keep the in-cell editor at the cell's height for one line by @Silvertree2010 in #1905
  • Print CJK text with a CID font instead of question marks by @Silvertree2010 in #1912
  • Grid: row and column heading labels grow with the zoom by @DrM7md in #1924
  • Accounting format: the documented currency symbol is honoured by @zyzabruh in #1930
  • Keep date text with signed parts like +3/4/2026 as text by @Silvertree2010 in #1937
  • CSV import: read Windows-1256 Arabic files as Arabic by @Mouhand-Kaddo in #1942
  • XLSX: keep the theme's per-script fonts (<a:font script="Arab">) on save — stacked on #1740 by @Mouhand-Kaddo in #1945
  • XLSX: keep cell fonts' charset (Arabic 178) and family on save by @Mouhand-Kaddo in #1946
  • Translate and standardizes UI error feedback by locale by @Lord-Taw in #1958
  • Control channel: a request its sender gave up on is not run later by @Hamza0101 in #1971
  • In-cell editor: a Wrap Text cell edits wrapped at the column width (#1970) by @jcagudelo12 in #1974
  • Select precedent/dependent cells with Ctrl+[ / Ctrl+] (#1865 part 1) by @bfenty in #1975
  • Enter bare numbers in Percentage-formatted cells as percents by @Silvertree2010 in #1976
  • Grid: the selection outline follows a mouse drag at once by @DrM7md in #1993
  • Persist the AutoSave preference across restarts (#1901) by @bfenty in #1995
  • ui: language command docs and error list every language by @webglobecontact-ui in #1998
  • Formula editing: arrow pointing restarts from the edited cell after typing (#1949) by @MarekSpodBiedry in #2001
  • AutoFill refuses a target that doesn't hold the source in a corner (whole rows into whole columns aborted the app) by @Harrison-Booth in #2005
  • Reject unparseable conditional-format formulas (#1999) by @bfenty in #2022
  • AutoFit Column Width measures text in the font the grid draws it with by @marcoarnulfo in #1320
  • Keyboard: Alt+= no longer starts an edit with the = it types by @marcoarnulfo in #1332
  • Selection: whole columns and rows don't widen to merged cells by @DCM4711 in #1337
  • calc: calculate long dependency chains with bounded stack by @Harrison-Booth in #1340
  • engine: keep AutoFill text series from panicking or wrapping on i64 overflow by @midasmatterhorn in #1360
  • Context menu: the right-click that opens it doesn't close it by @DCM4711 in #1363
  • engine: keep case-insensitive replace from dropping text when folding shifts byte boundaries by @midasmatterhorn in #1364
  • Fix font dropdown list resizing and keyboard up/down navigation by @mbaksa in #1365
  • Keep Middle/Bottom vertical alignment for wrapped text taller than its row by @Silvertree2010 in #1371
  • Protection: Protect Sheet entries unprotect, selectLockedCells enforced (#1346) by @vangel76 in #1373
  • Header menus: Format Cells… for the selected rows or columns by @DCM4711 in #1375
  • engine: subtotal honours header:false instead of dropping the first data row by @midasmatterhorn in #1379
  • xlsx: keep every property of the default cell format when importing a file by @midasmatterhorn in #1380
  • engine: rebuild cell-store bands and counts when importing a JSON workbook by @midasmatterhorn in #1381
  • UI: Improve Command Palette keyboard navigation and layout by @mbaksa in #1414
  • Recalc: an anchor's new formula no longer reads its old spill area by @nihilist-narwhal in #1427
  • Recalc: formulas reading an array that loses a spill conflict see #SPILL! by @nihilist-narwhal in #1428
  • Stop BINOM.INV/CRITBINOM hanging when trials exceed 2^53 by @Silvertree2010 in #1432
  • Refuse table names that clash with defined names or R1C1 references by @Silvertree2010 in #1434
  • Fix fraction numerators saturating at u64::MAX for large values by @Silvertree2010 in #1438
  • Add Greek (el) interface localization by @Camthalion77 in #1468
  • Let GROUPBY and PIVOTBY take a LAMBDA as their function by @Silvertree2010 in #1469
  • fix(solver): commit solutions and reports atomically by @euisuh in #1470
  • i18n: add Italian translation by @icsimpianti in #1473
  • Conditional formatting: text rules never match an error value (#1162) by @wstock in #1474
  • Control channel: ui.dialog.confirm sends what OK sends (#1459) by @wstock in #1477
  • UI: keep PivotTable field-list scrollbar at pane edge by @derechopiano in #1485
  • XLSX: preserve carriage returns in saved text by @derechopiano in #1495
  • Fix number-format palette colours in grid and PDF output by @bogusyogi in #1500
  • Read securities function dates in the workbook's date system by @Silvertree2010 in #1507
  • Calc: a dynamic array of one value still anchors a spill range by @Hamza0101 in #1510
  • Reject formula number literals too large for f64 as parse errors by @Silvertree2010 in #1512
  • Fix scalar INDEX/MATCH XLSX export by @justinjohn0306 in #1514
  • fix #1443: Ctrl+Q no longer closes the window outside macOS by @HyakoV3 in #1520
  • UI: function help follows the interface language by @quantmind-br in #1523
  • Keep leading empty columns and rows when saving CSV/text by @Silvertree2010 in #1525
  • functions: NETWORKDAYS.INTL accepts the all-weekend string "1111111" by @midasmatterhorn in #1526
  • engine: pageLayout.printTitles only touches the axes it is given by @midasmatterhorn in #1527
  • fix #1458: one Excel sheet-name quoting rule for formulas, pivot sources and ADDRESS by @HyakoV3 in #1529
  • xlsx: keep a table's filter criteria when the sheet AutoFilter coincides with it by @midasmatterhorn in #1531
  • engine: a cut takes the source's notes, hyperlinks and merged areas with it by @midasmatterhorn in #1534
  • engine: sort and remove duplicates move the rows' notes and hyperlinks by @midasmatterhorn in #1535
  • UI: Delete dismisses the AutoComplete proposal, and deleting text never brings it back (#1521) by @MarekSpodBiedry in #1547
  • Focus the Find what field when Find and Replace opens (#1518) by @MarekSpodBiedry in #1548
  • Open the Insert Chart dialog from Recommended Charts instead of inserting a chart (#1399) by @MarekSpodBiedry in #1550
  • Keep nan/inf time and fraction look-alikes as text by @Silvertree2010 in #1552
  • Sort and de-duplicate data.textToColumns fixed-width breaks by @Silvertree2010 in #1559
  • ui: truncate long workbook titles in the title bar by @IsmaelEzequiel in #1560
  • calc: bounded references up to 1,048,576 cells keep their full shape by @Harrison-Booth in #1568
  • XLSX: keep dynamic-array cell metadata (cm) on save by @Harrison-Booth in #1570
  • Calc: CELL("filename") names the workbook's file by @Hamza0101 in #1580
  • Contributors: add Marco Arnulfo by @marcoarnulfo in #1596
  • XLSX: keep header and footer pictures on save by @marcoarnulfo in #1600
  • Grid: a scrolled Table's header names and filter buttons in the column headings (#1423) by @marcoarnulfo in #1612
  • XLSX: a note keeps its box's place and size through open and save (#1608) by @switch87 in #1614
  • Grid: a cell with line breaks and Wrap Text off draws the whole string on one line by @marcoarnulfo in #1618
  • Reject unsupported flip param in arrange.rotate by @Silvertree2010 in #1621
  • Keyboard: Ctrl+Shift+A after a function name inserts its argument names by @marcoarnulfo in #1624
  • Charts: insert.chart builds a series from every area of a multi-area range by @midasmatterhorn in #1653
  • Merged cell with Wrap Text: auto-fit skips it, so the text draws and the row keeps its default height by @midasmatterhorn in #1661
  • Row, column and freeze commands act on the sheet they are given (sheet, or a Sheet! prefix) by @CouchRiv in #885
  • UI: File › Account shows the version, platform and licence, with an About GridCraft button by @marcoarnulfo in #898
  • Keytips: Alt, F opens the File view, and its F letters still run by @marcoarnulfo in #905
  • Ribbon: Font Size is a box you type into, the sizes behind its arrow by @marcoarnulfo in #952
  • Control: Go To and Select over the control channel scroll the active cell into view by @marcoarnulfo in #970
  • Sheet tabs: Ctrl-drag (Cmd or Option on macOS) drops a copy of the sheet by @marcoarnulfo in #973
  • XLSX export: a picture shared by several sheets is one media part (#985) by @Silvertree2010 in #995
  • Fix Command-click and Shift-click references during formula entry by @pourie-he in #1056
  • Flash Fill: read the text cells show by @nihilist-narwhal in #1057
  • Format Cells: take the documented camelCase style keys by @nihilist-narwhal in #1058
  • rows/cols parameters: accept a single row or column by @nihilist-narwhal in #1059
  • LAMBDA helpers: #CALC! for nested arrays, #VALUE! for wrong parameter counts by @nihilist-narwhal in #1060
  • Recalc: an array that spills as before doesn't requeue its dependents by @nihilist-narwhal in #1061
  • Engine: formulas.evaluate refuses what cell entry refuses, saying why by @quantmind-br in #1066
  • Ribbon: more currency symbols in the Accounting Number Format menu by @marcoarnulfo in #1068
  • Colour menus: More Colors… and Recent Colors (#928) by @Silvertree2010 in #1083
  • Data validation: a list typed without quotes is saved as a quoted list, and an unknown type is refused by @CouchRiv in #1084
  • Format: Row Height and Column Width say pixels, and take points like Excel by @CouchRiv in #1085
  • Charts: multi-level category axes (year beside month) read, drawn and written back by @Lexx143 in #1088
  • i18n: add Polish (pl) interface, full catalog (970 labels) by @mbielski1337 in #1091
  • fix(grid): keep cursor stable during cell dragging (#936) by @Zaxaerith in #1095
  • CSV export: check the size cap before each field, not after the row (#1023) by @MarekSpodBiedry in #1102
  • Keep chart cache point positions when a reference has blank edges (#1015) by @MarekSpodBiedry in #1103
  • xlsx: keep the first group's series kind when importing a combination chart (#1014) by @MarekSpodBiedry in #1104
  • Fix row keys merging distinct text rows in UNIQUE and grouping (#1012) by @MarekSpodBiedry in #1105
  • Refuse a cut-paste whose destination does not fit instead of dropping cells (#997) by @MarekSpodBiedry in #1108
  • fix(ui): commit a pointed formula on the sheet it was started on (#996) by @MarekSpodBiedry in #1109
  • Size the list validation dropdown to up to 8 rows (#1089) by @MarekSpodBiedry in #1110
  • Respect workbook structure protection in sheet rename, move, copy, hide and unhide (#1049) by @MarekSpodBiedry in #1111
  • Read date text arguments in the workbook date system (#1038) by @MarekSpodBiedry in #1114
  • Cap CSV import fields per record at the worksheet column limit (#1037) by @MarekSpodBiedry in #1115
  • Fix table without header: re-point references when the data moves down (#1030) by @MarekSpodBiedry in #1117
  • Fix xlsx: combine escaped UTF-16 surrogate pairs when decoding strings (#1025) by @MarekSpodBiedry in #1119
  • Open notice: do not promise to keep macros that were dropped (#1024) by @MarekSpodBiedry in #1120
  • Grid: per-frame work no longer scales with the whole sheet (#1098) by @vangel76 in #1136
  • Charts: a huge trendline forecast no longer collapses the chart (#1148) by @vangel76 in #1151
  • XLSX: [Content_Types].xml is the first zip entry, workbook parts precede document properties, so libmagic detects the file type (#1090) by @vangel76 in #1156
  • fix(ui): menu items highlight under the pointer (#1174) by @richard1912 in #1180
  • fix(ui): ribbon tooltips show each platform's shortcuts (Ctrl+B on Windows, ⌘B on macOS) (#1191) by @richard1912 in #1194
  • Grid: an armed Format Painter pastes onto the next cells clicked or dragged by @marcoarnulfo in #1214
  • File: Save a Copy asks where to save a bare name instead of writing it to the working directory by @marcoarnulfo in #1215
  • Sheet tabs: right-clicking a tab activates its sheet by @richard1912 in #1223
  • XLSX: keep a dxf's protection, font size and face, and the font parts it turns off by @marcoarnulfo in #1225
  • Journal: cap by serialized size and keep a recording's start through trims by @marcoarnulfo in #1230
  • Fix native CJK fallback paths in Flatpak by @allenyllee in #1236
  • BAHTTEXT: a final one after the millions reads เอ็ด by @marcoarnulfo in #1237
  • Opening an XLSX with a part over 512 MB says how to get the data in by @marcoarnulfo in #1248
  • Headers: mark hidden columns and rows, split cursor and double-click to unhide (#1247) by @richard1912 in #1249
  • Dialogs move by their title bar instead of staying pinned to the centre by @marcoarnulfo in #1252
  • Bound Undo history growth after bulk edits by @derechopiano in #1263
  • Zoom dialog: Excel's layout, current zoom pre-selected, Fit selection (#930) by @richard1912 in #1277
  • N() converts a computed array element by element, so it works inside SUMPRODUCT by @marcoarnulfo in #1281
  • Sort: a Sheet! prefix on the range sorts that sheet, not the active one by @marcoarnulfo in #1284
  • Remove Duplicates, Filter and Subtotal: a Sheet! prefix on the range works on that sheet, not the active one by @marcoarnulfo in #1285
  • Preserve hyperlinks in PDF export and support PDF in CLI convert by @derechopiano in #1292
  • Filter: count empty text and ="" results as (Blanks) (#1294) by @MarekSpodBiedry in #1299
  • Show dynamic array source formulas read-only in spill cells by @Prachannagven in #1306
  • engine: refuse removeDuplicates with no valid column instead of deleting all rows by @midasmatterhorn in #1308
  • Reject a list data validation that has no formula1 (#1303) by @MarekSpodBiedry in #1326
  • Slicer: find a named table on any sheet by @dev-exe in #1329
  • Form dialogs open ready to type (Column Width, Row Height) by @Harrison-Booth in #1331
  • Edit: text that would parse as a number or formula keeps its quote prefix in the editor (#1362) by @vangel76 in #1372
  • perf: fill-handle double-click scans a dense neighbour column ~2.4x faster by @Dejan-Port in #451
  • Build: the ui-egui build script reads CARGO_MANIFEST_DIR when it runs by @prxnvt in #488
  • Refuse inserting cells that would push values off the worksheet (#580) by @MarekSpodBiedry in #584
  • Make check --json list warning messages instead of a count (#526) by @MarekSpodBiedry in #629
  • Cap queued pointer events from ui.click/ui.drag control requests (#525) by @MarekSpodBiedry in #630
  • Open the Header & Footer dialog on the sheet's saved header and footer (#523) by @MarekSpodBiedry in #632
  • i18n: Turkish (tr) interface language by @yeniufuklar-com in #663
  • Keep sheet navigation on visible worksheets at workbook boundaries by @jonathanwxh-cell in #701
  • Names: a name over several ranges reads its top-level commas as unions by @marcoarnulfo in #759
  • i18n: test that translations keep the shape of their English by @bmh129 in #831
  • Closing the window asks to save unsaved workbooks by @marcoarnulfo in #846
  • Conditional formats: hex colours in a custom style, and no more silently empty or never-matching rules by @CouchRiv in #884
  • Keyboard: Enter after a run of Tabs goes to the next row in the column the run started from by @marcoarnulfo in #913
  • Sheet tabs: New sheet (+) right after the last tab, the strip capped at 60% by @marcoarnulfo in #949
  • fix(fill): respect the workbook date system in monthly AutoFill by @anirudhqwerty in #951
  • README: the app icon above the title by @bflatastic in #2249
  • scripts: require workbook trust before running embedded scripts (#2178) by @Higgs32584 in #2209

New Contributors

Full Changelog: v0.10.0...v0.11.1

Don't miss a new gridcraft release

NewReleases is sending notifications on new releases.