BFlat
40c744da10
M1: convert frames to sections and sections to frames ( #719 ) ( #721 )
...
Frames on the page or in a section convert to sections (object.convertToSection) and sections back to frames (object.convertToFrame), in place, one undo step each, from the canvas context menu; nested frames, instances, main components and sections holding sections are refused.
2026-10-17 13:03:49 +07:00
BFlat
9c2d61f6ae
Merge pull request #601 from Skyfuller1303/feat/drop-to-open
...
M7: drop files anywhere to open them
2026-10-16 07:41:02 +07:00
Skyfuller1303
1f6010e07c
M7: open dropped files that have no file on disk
...
A home-screen drop that carries only bytes queued file.open with data and name, which file.open rejected because it requires a path. file.open now also takes base64 data with a name and opens it as a new document without a save path.
2026-10-16 00:22:14 +02:00
NetterSilver and Claude Haiku 5.5
90d7521840
Reject negative or fractional index in file.close
...
Found while testing crates/engine/src/cmd/file.rs:1283
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-16 00:19:49 +02:00
bflatastic
891f0acb3c
Merge branch 'rb-560' into batch/t6
2026-10-16 02:36:56 +07:00
bflatastic
d60a27b675
Merge main into #554 : one id map for the copy, and #562 's flows, prototype and guides follow it
...
page.duplicate copies every layer with duplicate_all_into (navigation between
copied frames points at the copies) and builds the old-to-new list for flows
from that copy, instead of copying each layer separately.
2026-10-16 02:34:54 +07:00
bflatastic
db8bf6ba33
Merge main into #560 ; normalise the replacement where findReplace reads it
...
Main's case-insensitive replace loop (from an earlier PR) took the place of the
loop this change edited, so the replacement text is normalised once, where
the parameter is read.
2026-10-16 02:31:34 +07:00
bflatastic
c4c88900c4
Merge branch 'pr-563' into batch/t5
2026-10-16 01:36:10 +07:00
bflatastic
aadaa2d975
Merge branch 'pr-562' into batch/t5
2026-10-16 01:36:09 +07:00
bflatastic
580eee3572
Merge branch 'pr-561' into batch/t5
2026-10-16 01:36:08 +07:00
bflatastic
07130947f9
Merge branch 'pr-517' into batch/t5
2026-10-16 01:35:45 +07:00
bflatastic
16e26b69ff
Merge branch 'pr-516' into batch/t5
2026-10-16 01:35:44 +07:00
bflatastic
b1760ff098
Merge branch 'pr-497' into batch/t5
2026-10-16 01:35:30 +07:00
bflatastic
991cb604c2
Merge branch 'pr-493' into batch/t5
2026-10-16 01:35:23 +07:00
MarekSpodBiedry
843b00b22f
text: scripted text stores CRLF, CR, U+2028 and U+2029 as LF like the editor ( #427 )
2026-10-15 17:20:58 +02:00
MarekSpodBiedry
85d97a831c
Keep flows, prototype settings and guides when duplicating a page ( #417 )
2026-10-15 17:19:38 +02:00
MarekSpodBiedry
3062c6c4d6
Keep the selected guide selected when an earlier guide is removed ( #418 )
2026-10-15 17:18:38 +02:00
MarekSpodBiedry
fdf397d7dc
Refuse to create a variable collection with a name that is already taken ( #416 )
2026-10-15 17:17:44 +02:00
NetterSilver and Claude Haiku 5.5
a4f4869443
Point duplicated page navigation at the copied frames
...
Fixes #419
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 17:10:00 +02:00
bflatastic
7a9e9de38c
Merge #305 : M1: save files automatically ( #296 ) (@AganzeFelicite)
...
# Conflicts:
# crates/ui-egui/src/idle_tests.rs
# docs/mcp.md
2026-10-15 19:53:52 +07:00
bflatastic
5a10623414
Merge #469 : i18n: Czech (cs) UI catalog (draft) (@Losminek)
...
# Conflicts:
# contributors/people.toml
# crates/engine/src/cmd/view.rs
# docs/mcp.md
# docs/translating.md
2026-10-15 19:34:05 +07:00
bflatastic
f3e6b00e1a
Merge #310 : engine: refuse page.move for node ids that are not pages (@midasmatterhorn)
2026-10-15 19:33:02 +07:00
bflatastic
58e33f8fbb
Merge #361 : Make edit.findReplace replace case-insensitive matches (@Silvertree2010)
2026-10-15 19:32:55 +07:00
bflatastic
8de536960e
Merge main and the community batch into #469
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# docs/localization-parity.md
# docs/roadmap.md
2026-10-15 19:03:31 +07:00
bflatastic
68e130aae6
Merge main and the community batch into #310
...
# Conflicts:
# crates/engine/src/panels_behaviour_tests.rs
2026-10-15 18:56:41 +07:00
bflatastic
a95f95ae37
#361 : a replacement that only changes the case replaces every occurrence; the text's chars are collected once
2026-10-15 18:54:50 +07:00
bflatastic
6215cae877
Merge main and the community batch into #361
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
2026-10-15 18:52:02 +07:00
NetterSilver and Claude Haiku 5.5
7d6a3ce137
Skip divider rows in Next page and Previous page
...
Fixes #413
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 11:49:53 +00:00
NetterSilver and Claude Haiku 5.5
ac7c91fc9c
Reject layer IDs as targets of page.rename, delete and setBackground
...
Fixes #414
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 13:44:17 +02:00
bflatastic
65c9352c5c
Merge main and the community batch into #257
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# docs/localization-parity.md
# docs/roadmap.md
2026-10-15 18:13:34 +07:00
bflatastic
8616f3d1c5
#305 : save a file from a snapshot encoded elsewhere
...
FileSnapshot takes what saving writes, encodes it (thumbnail and all) on any
thread, and writes it back as of the snapshot: edits since stay unsaved, and
bytes from before another save never overwrite the newer file.
2026-10-15 18:11:52 +07:00
bflatastic
bebe509a25
Merge main and the community batch into #305
...
# Conflicts:
# ROADMAP.md
# docs/roadmap.md
2026-10-15 17:58:14 +07:00
bflatastic
3c52dad774
Merge #353 : engine: long digit strings no longer overflow object.opacityKeys (@midasmatterhorn)
2026-10-15 17:54:23 +07:00
bflatastic
5a57388b8d
Merge #344 : doc: name counters stop at u64::MAX instead of overflowing (@midasmatterhorn)
2026-10-15 17:54:21 +07:00
bflatastic
022821211f
Merge #358 : Replace every occurrence in edit.findReplace when replacement contains find (@Silvertree2010)
2026-10-15 17:53:06 +07:00
bflatastic
03716da731
Merge #384 : Reject negative or fractional index in effect.set, export.update and export.remove (@Silvertree2010)
2026-10-15 17:53:04 +07:00
bflatastic
2420791015
Merge #475 : Refuse negative or fractional indexes in page.select and doc.switch (@Silvertree2010)
2026-10-15 17:53:02 +07:00
bflatastic
8ae567c06b
Merge #254 : fix(engine): read the documented gradient shorthand on every route ( #252 ) (@pcastro93)
2026-10-15 17:53:00 +07:00
bflatastic
a25952dc60
Merge #284 : fix(format): exclusive unique staging files for atomic save/export (@notdezzi)
2026-10-15 17:52:58 +07:00
NetterSilver and Claude Haiku 5.5
8e56820168
Fix variable.update scopes: null not resetting to all supported
...
Fixes #443
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 10:14:49 +00:00
NetterSilver and Claude Haiku 5.5
dee13aefc5
Keep hidden export roots from enlarging the exported image
...
Fixes #447
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 11:48:39 +02:00
bflatastic
8c8c00fcba
Merge #283 : fix(engine): Alt-drag copies snap to their original; Cmd+D repeats the step ( #256 ) (@Nael-Nathanael)
2026-10-15 15:09:41 +07:00
bflatastic
f4a7b39731
Merge #444 : Fix Send to back leaving layers above siblings across frames (@Silvertree2010)
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-15 15:08:45 +07:00
bflatastic
f9b7dcf9d1
Merge #276 : fix(ui): disable alignment when the selection can't be aligned ( #256 ) (@Nael-Nathanael)
2026-10-15 15:08:11 +07:00
bflatastic
36c6cf6bd2
Merge #311 : fix(pages): inherit the current page background when adding pages (M1) (@tylerjenningsw)
...
# Conflicts:
# ROADMAP.md
2026-10-15 15:08:00 +07:00
bflatastic
4ac1d80fe8
Merge #386 : Outline stroke on every selected layer, not just the first (@Silvertree2010)
2026-10-15 15:07:19 +07:00
NetterSilver and Claude Haiku 5.5
7f2f8ee09a
Refuse negative or fractional indexes in page.select and doc.switch
...
Found while testing crates/engine/src/cmd/page.rs:50
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 08:02:06 +02:00
Losminek and Claude Opus 5.5
49a2c643c6
i18n: add Czech (cs) UI catalog as a draft
...
Adds crates/ui-egui/locales/cs.toml with all 2165 entries (ui, commands,
menu), marked "draft — needs native review" and kept out of COMPLETE.
Plurals use one/other only; the other form is worded count-neutral so it
reads correctly for 2-4 as well. Lists cs in the pref.language help text,
adds a cs_CZ.UTF-8 detection test and updates the localization docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 07:01:27 +02:00
NetterSilver and Claude Haiku 5.5
1199f690ad
Fix Send to back leaving layers above siblings across frames
...
Found while testing crates/engine/src/cmd/arrange.rs:327-330
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 06:12:21 +02:00
NetterSilver and Claude Haiku 5.5
3c00ea6440
Outline stroke on every selected layer, not just the first
...
Fixes #378
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 03:41:17 +02:00