Commit Graph
1522 Commits
Author SHA1 Message Date
texjer b458bec4c5 Merge branch 'feat/place-cursor-queue' into feat/drop-loads-place-cursor
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/app/files.rs
2026-11-04 19:56:22 -05:00
texjer e4f82e243e Place: switching, opening or closing a document leaves the place cursor's tool
Review fix for #2309: set_active, add_document and close_document emptied the place cursor but
kept the placeGun tool, so the next canvas click failed with 'nothing loaded in the place
cursor'. One helper, Session::unload_place_cursor, empties the cursor and its queue and goes back
to the Selection tool when the place cursor's tool is active; validate_place_cursor uses it too.
Test: changing_documents_unloads_the_place_cursor_and_its_tool.
2026-11-04 19:03:59 -05:00
texjer ad611c1b6f Merge remote-tracking branch 'upstream/main' into feat/place-cursor-queue
# Conflicts:
#	ROADMAP.md
2026-11-04 19:03:47 -05:00
Mex b98687c3e1 M5: keep out-and-back cubic segments in striped strokes (#2323)
* M5: preserve out-and-back cubics in striped strokes

A cubic can travel out and back when its endpoints and first control point coincide. Include the second control point in the zero-length guard and cover its offset extent and both stripe bands.

* M5: record striped cubic regression coverage

Record the scoped cubic stroke correction without changing readiness estimates or other progress entries.
2026-11-04 15:36:05 -05:00
aiongg fb630909c4 Merge pull request #2304 from texjer/feat/finder-drop-pointer
Place: a file dragged in from the Finder fills the frame it was dropped on
2026-11-04 11:19:45 -05:00
texjer 0ea2a72a09 Place: switching, opening or closing a document leaves the place cursor's tool
Review fix for #2309: set_active, add_document and close_document emptied the place cursor but
kept the placeGun tool, so the next canvas click failed with 'nothing loaded in the place
cursor'. One helper, Session::unload_place_cursor, empties the cursor and its queue and goes back
to the Selection tool when the place cursor's tool is active; validate_place_cursor uses it too.
Test: changing_documents_unloads_the_place_cursor_and_its_tool.
2026-11-04 11:05:45 -05:00
texjer a10e288a58 Place: dropped images load the place cursor, in the order they came
Split out of #2073. Port of #1307's drops and #1666.

- Several images dropped together load the place cursor in the order they
  came, each run of them where it comes among the other files, after the
  images it already holds; click to place them one by one.
- One image dropped off a frame that takes it loads the place cursor instead
  of being placed at once; on such a frame it still fills it.
- A drop is handled in its order, each file at its own pointer, and a dialog
  (a multi-page PDF's Import Options, an alert) cancels the rest.
- On the web, files dropped together are read as one batch (none if one
  can't be read), and a single dropped image loads the place cursor.
2026-11-03 23:05:47 -05:00
texjer 4d34f83926 Merge branch 'feat/finder-drop-pointer' into feat/drop-loads-place-cursor
# Conflicts:
#	ROADMAP.md
2026-11-03 21:50:19 -05:00
texjer 8815ef7350 Place: a file dragged in from the Finder fills the frame it was dropped on
Split out of #2073. winit sends no pointer events during a drag from another
application on macOS, so a Finder drop had no pointer and never found the frame
under it. The host now gives the pointer's place on the screen
(`Services::pointer`, `PointerFn`: the system's points before the UI scale,
from `NSEvent.mouseLocation`), and `take_pending_drops` uses it for the files
that came without a pointer, divided by egui's zoom factor and made relative
to the window.
2026-11-03 21:50:08 -05:00
texjer d890289a92 Place: several images load the place cursor, with a thumbnail, count and grid
Split out of #2073. Port of #1307, #1392 (grid) and #1432 (thumbnail and count).

- File › Place takes several files; images load the place cursor in the
  order chosen (`place.load` `files`, `append`), after the ones it holds.
  A multi-page PDF or an alert stops the batch, and a file that can't be
  placed returns its error to `app.placeDialog`.
- Each click places the next image; arrow keys while dragging lay out a
  grid (`place.grid`) and are handled even at a limit; Escape unloads the
  rest (`place.cancel`). Undo of a loaded image's asset cancels the queue.
- The cursor shows how many images are loaded.
- On the web, Place picks several files and the inbox loads consecutive
  images for the same document as one batch.
2026-11-03 21:43:44 -05:00
aiongg b18ed2e7ad Merge pull request #1294 from KnottyDyes/squad/place-never-into-line-v2
Place: implicit image placement preserves lines and open paths
2026-11-03 21:17:15 -05:00
KnottyDyesandClaude Opus 5.5 5cd8d99db7 Package: report PDF warnings and keep hyperlinks on rasterized frames
Include the PDF export warnings in the package result and report. Cover
shadow and feather output in packaged PDFs with a synthetic regression test.

Preserve frame and text-range hyperlinks on rasterized frames, including
inside groups, at their original source bounds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 18:20:58 -07:00
KnottyDyesandClaude Opus 5.5 5bd8ada171 Place: lines don't become frames when content is placed
Placing an image or media with no placement parameters used the selected
item as the frame, and so did a click of the loaded place cursor. On a
line that made a zero-height frame that kept its stroke. All three now
skip items that enclose no area (PathData::encloses_area): lines and
paths whose points all lie on one line get a new frame instead. Frames,
and open paths that enclose an area, take the content as before.

An explicit frame, x, y, spread or width behave as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 17:52:04 -07:00
aiongg c1bf2c769b Merge pull request #1968 from VoiceLessQ/fix/1522-anchored-copy-ids
Give anchored objects fresh ids when copying text frames (fixes #1522)
2026-11-03 16:48:53 -05:00
Ikki Nishiharaandharanishi 4a1ff582e9 fix: macOSアプリにCLIを同梱 (#690)
Co-authored-by: haranishi <223786623+haranishi@users.noreply.github.com>
2026-11-03 16:44:59 -05:00
aiongg de4042be41 Merge pull request #1404 from moppeeer/snap-page-centre
Snapping: a drawn or resized edge snaps to the page's centre line, as InDesign's smart guides do
2026-11-03 16:37:29 -05:00
aiongg dca5adc0ef Merge main into snap-page-centre 2026-11-03 21:23:44 +00:00
aiongg cb5c7ca309 Merge main into feat/mcp-conventions 2026-11-03 21:23:14 +00:00
aiongg 41b7e31be0 Merge pull request #1424 2026-11-03 20:24:24 +00:00
aiongg 1da269b7f5 Merge main into feat/mcp-conventions 2026-11-03 19:40:25 +00:00
aiongg 49e934d8ba Merge main into snap-page-centre 2026-11-03 19:11:20 +00:00
aiongg 671114f5fc Merge pull request #2024 2026-11-03 19:07:43 +00:00
aiongg 747abf4ac5 Merge main into graphic-frame-x-corners 2026-11-03 19:07:07 +00:00
aiongg 474ecd61d4 Merge main into fix/1522-anchored-copy-ids 2026-11-03 19:01:23 +00:00
Brandon Thomas b90a1bbb23 Merge remote-tracking branch 'origin/main' into HEAD 2026-11-02 23:25:39 -05:00
Brandon Thomas 58149665d9 Merge remote-tracking branch 'origin/main' into HEAD 2026-11-02 23:24:47 -05:00
Brandon Thomas ab96d42696 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/ui-parity.md
2026-11-02 23:24:47 -05:00
Brandon Thomas 1bca5db25b Merge pull request #1792 from marcoarnulfo/feat/thumbnailer
Linux: file managers show a .designcraft file's first page through a freedesktop thumbnailer (#1782)
2026-11-02 23:24:25 -05:00
Brandon Thomas 1e2d75d0b0 Merge pull request #2125 from Tom-R-Main/openbytes-title
File import: keep native and IDML bytes out of the INDD converter
2026-11-02 23:24:12 -05:00
Brandon Thomas 3eb8091bac Merge pull request #2142 from TrevorBrown-dev/fix/variables-numeric-text
M3: a Custom text variable defined with a number shows its digits (#2093)
2026-11-02 23:23:59 -05:00
JonRC 6abeb8a1ca type.char: warn when the font family or style isn't available (#2189)
A fontFamily the app doesn't have was applied with a null result, so a
script that asked for Courier Prime exported the PDF in the substitute
and exited 0. The font is still applied, since documents can carry
missing fonts and Find Font and preflight list them, but type.char now
returns {"warnings": ["Missing font: Courier Prime (using Source Sans 3)"]},
or "Missing font style: ..." for a style the family doesn't have, in
preflight's words. Other calls still return null.
2026-11-03 01:00:19 -03:00
FredApps f704f481d5 Merge remote-tracking branch 'origin/main' into pr1654
# Conflicts:
#	ROADMAP.md
2026-11-02 18:25:00 +01:00
Trevor BrownandClaude Fable 5.1 02b20fd5e7 M6: EPUB Export Options names a cover image file (#1934)
A Cover Image field with a Choose… button (PNG or JPEG) in the EPUB Export Options dialog; left empty, the first page stays the cover. The three labels are translated; a dialogs test exports with a chosen file and checks the EPUB's cover image and manifest.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-02 05:56:34 -05:00
Trevor BrownandClaude Fable 5.1 93999750aa M4: the Pen previews the segment a dragged smooth point shapes and curves the rubber band after one (#1438)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-02 03:19:46 -05:00
Trevor BrownandClaude Fable 5.1 485a94673f M3: a Custom text variable defined with a number shows its digits (#2093)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-02 02:40:43 -05:00
aiongg cc3c70d4be Windows: keep the custom title bar window borderless (#2139)
winit 0.30 gives an undecorated window WS_CAPTION and WS_BORDER; on some systems the compositor
reserves that frame, so the content is drawn offset (black bars at the top and left) while the
pointer keeps the client coordinates. A per-frame guard strips the styles again after every
winit flag change and keeps a maximized window clear of the taskbar. Fixes #1295.
2026-11-01 20:39:44 -05:00
Tom MainandOpenAI Codex 6e1b6e7754 #2125: integrate upstream v0.16.0
Merge origin/main at a288a87b. Preserve the font.list progress entry and the content-first routing note. The feature diff remains the same four reviewed files.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-11-01 16:30:57 -05:00
Tom MainandOpenAI Codex 60584e3221 #2108: prefer document content over InDesign filename extensions
Keep native ZIP, legacy JSON and IDML bytes out of the INDD converter even when a browser supplies a misleading .indd or .indt name. Preserve signature and unknown-data routing to the converter. Check that every browser delivery adds a document before asserting its title.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-11-01 15:08:46 -05:00
Brandon Thomas a288a87bf6 Merge pull request #1018 from kler/swedish-ui
i18n: Swedish (sv) interface translation
2026-11-01 14:54:59 -05:00
Brandon Thomas 1b02e5427f Merge remote-tracking branch 'origin/main' into land-2109 2026-11-01 14:50:36 -05:00
Brandon Thomas 185412cdf9 Merge remote-tracking branch 'origin/main' into land-1018b
# Conflicts:
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/tests.rs
#	crates/ui-egui/src/menus/ui_commands.rs
#	docs/localization-parity.md
2026-11-01 14:50:19 -05:00
Brandon Thomas 78a108707c Merge pull request #1223 from macrobi/codex/hungarian-localization
Add initial Hungarian (hu) interface localization
2026-11-01 14:49:43 -05:00
Tom MainandOpenAI Codex bddef171cd #2108: preserve full filenames at the browser import boundary
Pass the original filename to file.openBytes so the engine removes one native extension. Cover Open and Drop, repeated suffixes, Unicode, bare and missing extensions, and IDML through the import inbox. Keep the full filename in import warnings.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-11-01 14:30:23 -05:00
Tom MainandClaude Opus 5.5 472869598f font.list: a face without an OS/2 table reports a null fsType
A font with no readable OS/2 table doesn't say what its licence allows,
and reporting fsType 0 made it look installable. FontFace::fs_type() now
returns None for it, and font.list reports fsType and the five flags as
null. restricted_licence() and bitmap_only() still treat it as
unrestricted, so export behaviour doesn't change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ApvpyStzzHbKyDBNxpzn2Y
2026-11-01 13:31:06 -05:00
makesomethingshit 20925111eb #1620: Limit inline margins to the selected parent page 2026-11-02 00:05:23 +09:00
Patrik LermonandClaude Opus 5.5 100186def8 Swedish interface translation (sv)
Adds Swedish (Svenska) as an interface language: 1850 strings, written from the English source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 14:43:13 +01:00
makesomethingshit 90bbec39d1 #1620: Restore parent margins and pre-canvas page defaults 2026-11-01 19:44:44 +09:00
macadminHU 218c71af5c HU1: summarize Hungarian progress in one entry
Removed outdated Hungarian localization entries and integrated new ones while retaining existing tests and assertions.
2026-11-01 11:28:37 +01:00
makesomethingshit 5c364f9897 #1620: Port parent resizing to current layout modules 2026-11-01 15:18:55 +09:00
macadminHU 3f85c6fb78 Merge branch 'main' into codex/hungarian-localization 2026-10-31 19:41:36 +01:00