aiongg
6f10378b17
Integration: #1320 font-measure AutoFit tests in their own test binary
...
They run the process-wide installed-font scan, whose faces bind from the
next frame; in the same process as the header drag tests they changed text
widths under them, which failed those tests about 1 run in 4 in parallel.
2026-10-22 04:22:36 +00:00
aiongg
c4c7f747c7
Integration: keytip NR test gives the sheet data so the Insert Chart dialog opens
2026-10-22 03:54:39 +00:00
aiongg
818175f51e
Integration: Japanese catalog covers the reference catalog's new keys; clear the texture delta in the completion test
2026-10-22 03:32:41 +00:00
aiongg
c7016fb724
Integration: fix struct literals and call signatures after combining tracks (Series.quartiles, Comment.note_box, Image data Arc, signature language)
2026-10-22 03:11:35 +00:00
aiongg
cde364f269
Integration: cargo fmt after combining tracks
2026-10-22 03:08:30 +00:00
aiongg
d5cdd2ea2b
Integration: track t15
...
# Conflicts:
# contributors/people.toml
# crates/engine/src/tests.rs
# docs/file-format-parity.md
# docs/localization-parity.md
2026-10-22 03:05:39 +00:00
aiongg
561382cc6d
Integration: track t14
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# crates/formula/src/tests.rs
# docs/file-format-parity.md
# docs/localization-parity.md
# docs/ui-parity.md
2026-10-22 03:05:30 +00:00
aiongg
ca1cdd4229
Integration: track t13
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# crates/engine/src/cmd/data.rs
# crates/xlsx/src/tests/mod.rs
# docs/chart-parity.md
# docs/file-format-parity.md
# docs/function-parity.md
# docs/gaps.md
# docs/localization-parity.md
# docs/target-app-parity.md
2026-10-22 03:05:18 +00:00
aiongg
c7fd66d807
Integration: track t12
...
# Conflicts:
# ROADMAP.md
# crates/calc/src/tests.rs
# crates/chart/src/tests.rs
# crates/engine/src/tests.rs
# crates/xlsx/src/tests/mod.rs
# docs/chart-parity.md
2026-10-22 03:05:03 +00:00
aiongg
9350ab1def
Integration: track t11
...
# Conflicts:
# ROADMAP.md
# apps/gridcraft-web/Cargo.toml
# crates/ui-egui/src/i18n.rs
# docs/control-protocol.md
# docs/gaps.md
# docs/target-app-parity.md
# docs/ui-parity.md
2026-10-22 03:04:52 +00:00
aiongg
4c5c345c31
Integration: track t10
...
# Conflicts:
# ROADMAP.md
# crates/ui-egui/tests/sheet_tabs.rs
# crates/xlsx/src/tests/roundtrip.rs
# docs/gaps.md
# docs/ui-parity.md
2026-10-22 03:04:30 +00:00
aiongg
6dda6be2c6
Integration: track t09
...
# Conflicts:
# crates/engine/src/tests.rs
# crates/ui-egui/src/i18n.rs
# crates/ui-egui/src/i18n/pt.rs
# docs/file-format-parity.md
# docs/target-app-parity.md
# docs/ui-parity.md
2026-10-22 03:04:21 +00:00
aiongg
d3201e7cea
Integration: track t08
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/tests.rs
# docs/file-format-parity.md
# docs/localization-parity.md
2026-10-22 03:03:55 +00:00
aiongg
a680ac59f0
Integration: track t07
...
# Conflicts:
# crates/calc/src/tests.rs
# docs/function-parity.md
2026-10-22 03:03:23 +00:00
aiongg
cfda01c831
Integration: track t06
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# crates/ui-egui/src/i18n.rs
# crates/ui-egui/tests/interaction.rs
# docs/gaps.md
# docs/localization-parity.md
2026-10-22 03:03:17 +00:00
aiongg
4c81d658ec
Integration: track t05
...
# Conflicts:
# crates/ui-egui/tests/keyboard_shortcuts.rs
# docs/ui-parity.md
2026-10-22 03:01:39 +00:00
aiongg
512b2aa9fd
Integration: track t04
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/edit.rs
# crates/engine/src/cmd/formulas.rs
# crates/engine/src/tests.rs
# crates/formula/src/lib.rs
# crates/formula/src/parser.rs
# crates/formula/src/tests.rs
# crates/ui-egui/src/control.rs
# crates/ui-egui/src/formula_bar.rs
# crates/ui-egui/src/grid.rs
# crates/ui-egui/src/i18n.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/ribbon.rs
# crates/ui-egui/tests/selection.rs
# docs/function-parity.md
# docs/ui-parity.md
2026-10-22 03:01:31 +00:00
aiongg
b0b6409112
Integration: track t03
...
# Conflicts:
# ROADMAP.md
# crates/ui-egui/tests/keyboard_shortcuts.rs
# docs/file-format-parity.md
# docs/localization-parity.md
# docs/ui-parity.md
2026-10-22 03:00:13 +00:00
aiongg
54d0f7cfc0
Integration: track t02
...
# Conflicts:
# ROADMAP.md
# crates/core/src/lib.rs
# crates/ui-egui/src/editor.rs
# crates/ui-egui/src/grid.rs
# crates/ui-egui/src/tabs.rs
# docs/chart-parity.md
# docs/localization-parity.md
# docs/ui-parity.md
2026-10-22 02:59:55 +00:00
aiongg
f193f0d834
Integration: track t01
2026-10-22 02:58:49 +00:00
aiongg
d056570d97
Integration: cargo fmt
2026-10-22 02:57:51 +00:00
aiongg
21c3ec248c
Integration: cargo fmt
2026-10-22 02:51:29 +00:00
aiongg
ec61d59b41
Integration: cargo fmt
2026-10-22 02:50:46 +00:00
aiongg
55aeed6f1a
Integration: cargo fmt
2026-10-22 02:48:11 +00:00
aiongg
1b4b51225d
Integration: #1912 restore the end of add_page lost in the merge resolution
2026-10-22 02:47:32 +00:00
aiongg
b35b5a8b9d
Integration: cargo fmt
2026-10-22 02:46:29 +00:00
aiongg
7b47c5a846
Integration: #995 test builds Image.data as Arc<Vec<u8>> (after #1629 )
...
shared_media.rs predates the Arc change; literals and comparisons use .into() and to_vec().
2026-10-22 02:46:21 +00:00
aiongg
55877df80f
Integration: cargo fmt
2026-10-22 02:46:00 +00:00
aiongg
f02f446905
Integration: #1194 drop the duplicate Cut and Copy German arms ( #1830 already translates them)
2026-10-22 02:45:54 +00:00
aiongg
4ac3f2fa64
Integration: cargo fmt
2026-10-22 02:45:35 +00:00
aiongg
1d9b29ff57
Integration: cargo fmt
2026-10-22 02:45:22 +00:00
aiongg
c37298b468
Integration: #1151 test literal gains the category_levels field from #1088
2026-10-22 02:40:38 +00:00
aiongg
36c9df453f
Integration: order localization-parity revision rows newest first
2026-10-22 02:39:29 +00:00
aiongg
47bf083d0a
Integration: #2116 move name_sort_key and its test into the existing tests module
2026-10-22 02:39:21 +00:00
aiongg
a1c1fc05de
Merge PR #2116 : Backstage: list the languages alphabetically by their own name
2026-10-22 02:39:08 +00:00
aiongg
d4eabcee96
Merge PR #2106 : Translate form-dialog field labels, choices and notes
2026-10-22 02:39:04 +00:00
aiongg
10ac46c243
Integration: #2102 fill Romanian catalog gap (Options|Editing, English text)
2026-10-22 02:39:04 +00:00
aiongg
0eeaeec0c1
Merge PR #2102 : Romanian (ro) interface language
...
Conflicts:
- crates/ui-egui/src/i18n.rs: language registration lines kept from both sides (Language::ALL has 18 entries).
- crates/ui-egui/tests/file_menu.rs: both language rows kept.
- docs/localization-parity.md: one Last updated line naming all changes; both revision rows kept, newest first.
2026-10-22 02:38:43 +00:00
aiongg
e72d5f290a
Merge PR #2061 : i18n: Dutch (nl) interface language
...
Conflicts:
- crates/ui-egui/src/i18n.rs: language registration lines kept from both sides (Language::ALL has 17 entries).
- ROADMAP.md: one Last updated line naming both changes; both progress-log rows kept.
- docs/localization-parity.md: one Last updated line naming both changes; both revision rows kept.
2026-10-22 02:38:32 +00:00
aiongg
905ef6a6a5
Integration: #2000 remove duplicated Spanish financial alias block
2026-10-22 02:38:15 +00:00
aiongg
4286ac2930
Merge PR #2000 : Spanish formula aliases for financial functions ( #1986 )
2026-10-22 02:38:09 +00:00
aiongg
7649a762ff
Merge PR #1772 : i18n: add Vietnamese interface translations
...
Conflicts:
- crates/ui-egui/src/i18n.rs: language registration lines kept from both sides (Language::ALL has 16 entries).
- docs/localization-parity.md: both revision rows kept.
2026-10-22 02:38:09 +00:00
aiongg
e4c406dbcf
Merge PR #1194 : fix(ui): ribbon tooltips show each platform's shortcuts (Ctrl+B on Windows, ⌘B on macOS) ( #1191 )
...
crates/ui-egui/src/widgets.rs: both test modules kept.
2026-10-22 02:37:51 +00:00
aiongg
8bfe310208
Integration: #1770 register Ukrainian (Language::Uk) and fill 573 missing keys with English text
2026-10-22 02:37:49 +00:00
aiongg
a9a8fe7d20
Integration: #1754 translate the sheet-tab Delete button; Spanish Hide and Autoguardado; test that the sheet-tab and AutoSave labels translate in es, de, fr, ko, ru, zh, sr
2026-10-22 02:37:48 +00:00
aiongg
3a01ce689e
Integration: i18n drop duplicate Unprotect Sheet… entries (added by #1373 and #1754 )
2026-10-22 02:37:43 +00:00
aiongg
9d3252189d
Merge PR #1180 : fix(ui): menu items highlight under the pointer ( #1174 )
...
crates/ui-egui/src/grid.rs: list picker button combines frame_when_inactive(false) with main's LIST_PICKER_ROW_H min size.
2026-10-22 02:37:42 +00:00
aiongg
1316d39865
Merge PR #1151 : Charts: a huge trendline forecast no longer collapses the chart ( #1148 )
...
ROADMAP.md: all rows kept.
crates/chart/src/tests.rs: both tests kept.
2026-10-22 02:37:37 +00:00
aiongg
56c31b0b31
Merge PR #1993 : Grid: the selection outline follows a mouse drag at once
...
Conflicts:
- docs/ui-parity.md: header keeps main's change list plus the outline entry; both log rows kept
2026-10-22 02:37:23 +00:00
aiongg
169c78dda8
Merge PR #1111 : Respect workbook structure protection in sheet rename, move, copy, hide and unhide ( #1049 )
2026-10-22 02:37:22 +00:00
aiongg
d8b73ecb4e
Merge PR #1110 : Size the list validation dropdown to up to 8 rows ( #1089 )
2026-10-22 02:37:19 +00:00
aiongg
f5b35fb3ac
Merge PR #1109 : fix(ui): commit a pointed formula on the sheet it was started on ( #996 )
...
crates/ui-egui/src/lib.rs: sheet re-activation first, then main's unchanged-empty-commit check and the commit chain.
crates/ui-egui/src/tabs.rs: union of test imports.
2026-10-22 02:37:19 +00:00
aiongg
470a2ae2c1
Merge PR #1765 : Sheet protection: obey the Sort and Use AutoFilter boxes
...
Conflicts:
- crates/engine/src/cmd/data.rs: do_sort keeps #1284 's sheet parameter and checks Sorting on it; toggle_filter checks Filtering after #1285 's data_target
- crates/engine/src/tests.rs: adjacent tests, both kept
2026-10-22 02:37:16 +00:00
aiongg
ad1899e1ca
Merge PR #1770 : Add Ukrainian localization (uk.rs)
2026-10-22 02:37:08 +00:00
aiongg
01485e2b66
Merge PR #1838 : Added multi-column/row selection in formulas & column/row selection highlighting.
...
crates/ui-egui/src/editor.rs: kept both appended tests
crates/ui-egui/src/grid.rs: kept the Table heading filter-button check, then point_header(.., mods.shift, mods.command); kept format_painter_apply and the extend/add point_header
2026-10-22 02:37:08 +00:00
aiongg
37bf37d181
Merge PR #1103 : Keep chart cache point positions when a reference has blank edges ( #1015 )
...
crates/xlsx/src/chart.rs: 1103's used-range clipping applied in ref_values after 1088's ref_target call.
2026-10-22 02:37:08 +00:00
aiongg
f4f18bb368
Merge PR #1701 : XLSX: new workbooks get <fileVersion appName="gridcraft"/>
...
Conflicts:
- crates/xlsx/src/write.rs: keeps #1701 's fileVersion block followed by #1626 's workbookPr attributes (showObjects, date1904)
2026-10-22 02:37:05 +00:00
aiongg
31d6221463
Integration: #1725 prefill Remove Duplicates with the current region when only the cursor is placed
2026-10-22 02:37:01 +00:00
aiongg
59e6f123ba
Integration: #2095 error-check colours come from theme tokens
2026-10-22 02:36:59 +00:00
aiongg
ad7fe4ed70
Merge PR #1095 : fix(grid): keep cursor stable during cell dragging ( #936 )
...
crates/ui-egui/src/grid.rs: keep main's touch-pan guard around interact, add 1095's update_cursor call after it.
docs/ui-parity.md: one Last updated line, change notes combined; both history rows kept.
2026-10-22 02:36:58 +00:00
aiongg
857bdae023
Merge PR #1692 : XLSX: keep Japanese phonetic runs on open and save
...
Conflicts:
- crates/model/src/lib.rs, crates/xlsx/src/read.rs, crates/xlsx/src/write.rs: use lists unioned (ShowObjects and the phonetic types)
- docs/file-format-parity.md: main's header and rows kept (#1692 collapsed the three duplicate .xlsx rows; they stay), phonetic-runs text added to each; Last updated 2026-10-20
2026-10-22 02:36:58 +00:00
aiongg
46ddd61021
Merge PR #1732 : i18n(ja): translate the dialog, message and menu strings (943 entries, matching the pt-BR coverage)
...
Conflicts:
- crates/ui-egui/src/i18n.rs: mod it and mod ja both kept; Language::Ja dispatches to ja::translate; the shape test (PR #831 ) iterates ja::CORE, which replaces JAPANESE.
- docs/localization-parity.md: both revision rows kept, newest first.
2026-10-22 02:36:53 +00:00
aiongg
48285a8fc4
Merge PR #1754 : i18n: translate sheet tab context menu and AutoSave toggle ( fixes #1537 )
...
crates/ui-egui/src/i18n/de.rs: kept both sets of entries; dropped the duplicate Unprotect Sheet… line
crates/ui-egui/src/tabs.rs: kept active_sheet_protected() and the protectSheet dialog id, tr() on both button labels
2026-10-22 02:36:53 +00:00
aiongg
e738049157
Merge PR #1088 : Charts: multi-level category axes (year beside month) read, drawn and written back
...
ROADMAP.md: all rows kept.
2026-10-22 02:36:49 +00:00
aiongg
75f6c92eab
Integration: #2086 test that the strip beside the column headings is filled in dark mode
2026-10-22 02:36:41 +00:00
aiongg
6432253de9
Integration: #973 move the sheet-tab copy row from the element table to the change history
2026-10-22 02:36:40 +00:00
aiongg
cd3fcfd2a0
Merge PR #1083 : Colour menus: More Colors… and Recent Colors ( #928 )
...
ROADMAP.md: all progress-log rows kept.
docs/ui-parity.md: one Last updated line, change notes combined; both history rows kept; ribbon row wording tidied.
2026-10-22 02:36:40 +00:00
aiongg
c9941763cc
Integration: #2093 move the paste_special_shortcuts doc comment back onto its function
2026-10-22 02:36:38 +00:00
aiongg
d44c08c354
Merge PR #2093 : Paste Special: the reference app's two-column layout, translated, Paste Link button
...
crates/ui-egui/src/dialogs.rs: window width match keeps both zoom and pasteSpecial arms
docs/ui-parity.md: status line combined, change-log rows both kept
2026-10-22 02:36:35 +00:00
aiongg
6370fd2254
Merge PR #1693 : Charts: series that refer to defined names ([0]!Name) plot their data, and are saved qualified
...
crates/xlsx/src/tests/mod.rs: kept both mod lines (cellmetadata, chart_book_names)
docs/file-format-parity.md: kept HEAD header line, both change rows
2026-10-22 02:36:34 +00:00
aiongg
e6ccfba926
Merge PR #2142 : PivotTable Fields pane: scan the source once per change, not every frame
2026-10-22 02:36:33 +00:00
aiongg
fccca928b3
Merge PR #1631 : Memory: floating pictures' textures are bounded, sized to what is drawn, and dropped with their workbook
...
Conflicts:
- ROADMAP.md: header change line names both memory changes; both progress-log and revision rows kept
2026-10-22 02:36:33 +00:00
aiongg
431aaaaf69
Merge PR #2022 : Reject unparseable conditional-format formulas ( #1999 )
...
crates/engine/src/cmd/insert.rs: kept both sides: PR #884 's is_string_literal and cf_style_json, and PR #2022 's check_cf_* before edit(); 884's kept string literals parse
2026-10-22 02:36:33 +00:00
aiongg
70426fc913
Merge PR #1657 : Cell editor: the caret contrasts with the cell's fill
2026-10-22 02:36:24 +00:00
aiongg
8ec29a8b3b
Merge PR #1652 : Fill handle: right-drag opens the fill menu (Copy Cells, Fill Series, Fill Formatting Only, Fill Without Formatting, Series…)
...
crates/ui-egui/src/grid.rs: kept both GridState fields (context_menu_frame, fill_menu); previous_popups tuple has four elements inside the touch_pan branch; release match has Drag::Rows|Cols, then the two Drag::Fill arms
docs/ui-parity.md: kept HEAD header line, both change rows
2026-10-22 02:36:24 +00:00
aiongg
d97f61748e
Merge PR #1946 : XLSX: keep cell fonts' charset (Arabic 178) and family on save
...
crates/xlsx/src/styles.rs: family/charset block ported into the dxf.is_none() branch of font_xml (PR #1225 made it take Option<&DxfStated>)
docs/file-format-parity.md: header Change line keeps both sides' clauses
2026-10-22 02:36:23 +00:00
aiongg
8e2974cc65
Merge PR #1629 : Memory: undo steps share picture and macro bytes instead of copying them
...
Conflicts:
- ROADMAP.md: both progress-log and revision rows kept
- crates/xlsx/src/sheet_write.rs: keeps #995 's image_part call; drops #1629 's to_vec line (image_part copies from &[u8])
2026-10-22 02:36:22 +00:00
aiongg
42768628c4
Merge PR #1473 : i18n: add Italian translation
...
Conflicts: crates/ui-egui/src/i18n.rs: language registration lines kept from both sides (Language::ALL has 14 entries).
2026-10-22 02:36:21 +00:00
aiongg
826a22dc2b
Integration: #2131 remove a leftover conflict marker line in ROADMAP.md
2026-10-22 02:36:21 +00:00
aiongg
cba89cfda8
Merge PR #1066 : Engine: formulas.evaluate refuses what cell entry refuses, saying why
...
ROADMAP.md: both progress-log rows kept.
2026-10-22 02:36:20 +00:00
aiongg
90d4c3af0f
Merge PR #1981 : Desktop theme: the watcher's link has a type off Linux, so the gate passes there
2026-10-22 02:36:20 +00:00
aiongg
608925af08
Merge PR #1979 : Seed the Sort dialog column from the active cell ( #1906 )
2026-10-22 02:36:20 +00:00
aiongg
ced3f7ce7a
Merge PR #1912 : Print CJK text with a CID font instead of question marks
...
crates/pdf/src/lib.rs: add_page keeps both fonts [bool; FONT_SLOTS] and links Vec
2026-10-22 02:36:20 +00:00
aiongg
7fd1553a8b
Merge PR #1626 : Keyboard: Ctrl+6 hides and shows objects, saved as workbookPr showObjects
...
Conflicts:
- docs/file-format-parity.md: header and the three .xlsx rows keep main's text plus the show-objects entry; both log rows kept
- docs/ui-parity.md: header keeps main's text plus Ctrl+6; both log rows kept
2026-10-22 02:36:15 +00:00
aiongg
a8f74730c1
Merge PR #1056 : Fix Command-click and Shift-click references during formula entry
...
contributors/people.toml: union of both new entries.
docs/ui-parity.md: one Last updated line, change notes combined; both history rows kept.
2026-10-22 02:36:14 +00:00
aiongg
929c506d1b
Merge PR #2100 : Fonts: a cell font named in another language matches its installed font ( fixes #1898 )
2026-10-22 02:36:12 +00:00
aiongg
8590dca0db
Merge PR #2207 : clipboard: bound HTML colspan/rowspan expansion ( #2171 )
2026-10-22 02:36:12 +00:00
aiongg
7221e11f56
Merge PR #1945 : XLSX: keep the theme's per-script fonts (<a:font script="Arab">) on save (stacked on #1740 , included)
...
Conflicts:
- docs/file-format-parity.md: kept main's three .xlsx rows (the PR's docs hunk replaced them with one) and added the theme-font wording to each; header keeps main's change list plus this PR's phrase (updated 2026-10-20)
2026-10-22 02:36:12 +00:00
aiongg
d0394a0f34
Merge PR #2005 : AutoFill refuses a target that doesn't hold the source in a corner (whole rows into whole columns aborted the app)
...
crates/engine/src/fill.rs: kept both tests (#1360 and #2005 ).
2026-10-22 02:36:12 +00:00
aiongg
d67193f403
Merge PR #1685 : #1447 : a PivotChart's link names the workbook
...
docs/file-format-parity.md: header Change line names both pivot fixes; both change log rows kept
2026-10-22 02:36:11 +00:00
aiongg
75e84a26d5
Merge PR #1612 : Grid: a scrolled Table's header names and filter buttons in the column headings ( #1423 )
...
docs/ui-parity.md: kept HEAD header line, both change rows, newest first
2026-10-22 02:36:10 +00:00
aiongg
823914157a
Merge PR #2200 : core: iterative number coercion for nested parentheses ( #2180 )
2026-10-22 02:36:10 +00:00
aiongg
07f806d3e5
Merge PR #2098 : docs: fix Trunk website link ( #2076 )
2026-10-22 02:36:10 +00:00
aiongg
635056bd23
Merge PR #2131 : Print: JIS B4/B5 and Japanese paper sizes (はがき・封筒・B6)
...
ROADMAP.md: one status line naming both changes; both feature-table and progress-log rows, newest first.
2026-10-22 02:36:10 +00:00
aiongg
edb214b236
Merge PR #1725 : Prefill the Remove Duplicates range from the selection
...
docs/ui-parity.md: status line combined, change-log rows both kept
2026-10-22 02:36:09 +00:00
aiongg
78b7ef49fd
Merge PR #1889 : Docs: correct stale chart round-trip notes
2026-10-22 02:36:08 +00:00
aiongg
7963cdb218
Merge PR #1758 : Fonts: render Lao text with an installed Lao face instead of tofu
...
Conflicts:
- docs/localization-parity.md: status line, script-support text and history rows from both sides kept
2026-10-22 02:36:08 +00:00
aiongg
7269b12f1e
Integration: #1976 scenarioShow writes stored numbers as values
...
Entering them through the parser applied percent entry to Percentage-formatted
cells (a stored 0.05 would not round-trip). Test: scenario_show_restores_a_percentage_cells_stored_number.
2026-10-22 02:36:05 +00:00
aiongg
c03d4a881b
Merge PR #1570 : XLSX: keep dynamic-array cell metadata (cm) on save
...
ROADMAP.md: kept both progress-log rows
2026-10-22 02:36:04 +00:00
aiongg
7e74b35a1b
Merge PR #2095 : Number Stored as Text: green indicator, warning button and Convert to Number ( #1994 )
...
crates/ui-egui/src/grid.rs: kept object_menu (2084) and error_check_tag (2095), both fns and both calls.
crates/ui-egui/src/i18n/de.rs, pt.rs: union of the entries.
docs/ui-parity.md: one status line naming both changes, both history rows.
2026-10-22 02:36:03 +00:00