Commit Graph
23 Commits
Author SHA1 Message Date
aiongg 18e1ba14b3 DES-10 T11: docs for linked artwork and multi-image placement 2026-11-14 12:28:58 +00:00
aiongg 39cb508cca Place: a single dropped image is placed where it lands; several load the cursor 2026-11-14 06:11:51 +00:00
aiongg 7c34fce67c Docs: place.skip, place.cycle, and Undo leaving the cursor as it is 2026-11-14 05:56:51 +00:00
aiongg c8f105dd65 Merge pr-2308 (place contact sheet) into multi-place 2026-11-14 05:49:47 +00:00
texjer d701ff01c9 Merge branch 'feat/place-cursor-queue' into feat/place-contact-sheet
# Conflicts:
#	crates/ui-egui/src/app/files.rs
#	docs/multi-image-placement.md
2026-11-05 18:41:09 -05:00
texjer 77116f3621 Merge branch 'feat/place-cursor-queue' into feat/drop-loads-place-cursor
# Conflicts:
#	crates/ui-egui/src/app/files.rs
#	docs/multi-image-placement.md
2026-11-05 18:41:09 -05:00
texjer d5bb8a378c Place: a browser batch waits for a PDF's options; a PDF first joins the cursor
Files delivered after a multi-page PDF were dropped when its Import Options opened, with a
status asking to choose them again, and choosing them again replaced the cursor. They now
wait with the PDF and carry on when it is confirmed; Cancel ends the batch, as a native
one's does.

A batch starting with a single-page PDF, or in a browser with one image before a PDF, filled
the selected frame instead of entering the place cursor. A browser delivers one Place's files
together, so several in one delivery now count as a batch. One file alone still fills the frame.
2026-11-05 18:40:41 -05:00
texjer dd311b8803 Place: the files after a multi-page PDF in a batch wait for its options
They were left behind in place_paths when the PDF's Import Options opened, so the
PDF was placed alone and the rest of what was chosen never loaded. They now wait in
the dialog and carry on when it is confirmed; Cancel ends the batch.
2026-11-05 15:45:45 -05:00
texjer 5e1cb976f9 Place: the 1000-image cap holds for the whole place cursor when appending
Appending only checked each batch against the cap, and a single image or a PDF
added with append wasn't checked at all, so repeated appends could grow the
cursor without limit. Refused before decoding a batch or adding an asset.
2026-11-05 15:45:21 -05:00
texjer 3111d4086a Place: the files after a multi-page PDF in a batch wait for its options
They were left behind in place_paths when the PDF's Import Options opened, so the
PDF was placed alone and the rest of what was chosen never loaded. They now wait in
the dialog and carry on when it is confirmed; Cancel ends the batch.
2026-11-05 15:45:06 -05:00
texjer ba2237f8d5 Place: the 1000-image cap holds for the whole place cursor when appending
Appending only checked each batch against the cap, and a single image or a PDF
added with append wasn't checked at all, so repeated appends could grow the
cursor without limit. Refused before decoding a batch or adding an asset.
2026-11-05 15:45:06 -05:00
texjer 15eeacc845 Place: the files after a multi-page PDF in a batch wait for its options
They were left behind in place_paths when the PDF's Import Options opened, so the
PDF was placed alone and the rest of what was chosen never loaded. They now wait in
the dialog and carry on when it is confirmed; Cancel ends the batch.
2026-11-05 15:00:33 -05:00
texjer 5868b60365 Place: the 1000-image cap holds for the whole place cursor when appending
Appending only checked each batch against the cap, and a single image or a PDF
added with append wasn't checked at all, so repeated appends could grow the
cursor without limit. Refused before decoding a batch or adding an asset.
2026-11-05 14:54:26 -05:00
texjer 2597e2d7f4 Merge branch 'feat/place-cursor-queue' into feat/place-contact-sheet
# Conflicts:
#	ROADMAP.md
#	docs/multi-image-placement.md
2026-11-04 19:57:10 -05:00
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 92d3e74a39 Place: a multi-page PDF in a batch keeps the images loaded before it
Confirming the PDF's Import Options placed it without append, so in a batch such as [a.png, b.png, multi.pdf] it replaced the images already in the cursor. The dialog now carries append, on both the native and the delivered-file paths. A single multi-page PDF still replaces what the cursor holds.
2026-11-04 19:36:38 -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 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 16255142ed Merge branch 'feat/place-cursor-queue' into feat/place-contact-sheet 2026-11-04 10:44:31 -05:00
texjer cb97fcb0bd Place: a grid drag too small for its cells previews and places one frame
The place cursor's grid preview fell back to the raw drag rectangle when the
cells had no positive size, while the release still sent `place.grid`, which
rejected the area. Both now use the same cell calculation (`grid_cells`), and
a grid with no room for its cells shows and places the single proportional
frame of an ordinary drag.
2026-11-04 10:31:22 -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 e2d8502636 Place: File › Place Contact Sheet… puts the loaded images on new pages
Split out of #2073. Port of #1392's contact sheet.

- `place.contactSheet` places every image in the place cursor on new pages
  after the last one, in a grid of equal frames (columns, rows, gutter,
  page margin), as one undo step; a bad grid or margin changes nothing.
- The dialog reads bare numbers in the document's unit, from the menu and
  from `ui.dialog.open` alike; a mistake keeps it open with what was typed
  and why. Its fields have accessible names; strings in every language.
2026-11-03 21:54:22 -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