mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-24 09:57:08 -06:00
* Add Pattern Stamp as a Clone Stamp flyout sibling Introduce paint.patternStamp to paint the current pattern through a brush stroke. Aligned strokes keep a document-space tile origin; unaligned strokes restart at the first point; Impressionist jitters each dab with a seeded RNG. Empty patterns and strokes larger than 4096² pixels return an error instead of allocating. * Record Pattern Stamp on the tools scorecard Allow the aligned stamp helper's argument count under clippy. * Pattern Stamp: raise the stroke cap to 8192² so a 24 MP diagonal fits The 4096² bounding-box cap refused a corner-to-corner stroke on a 6016x4000 canvas (~24M px). Unit test covers that diagonal and a still-rejected 9000² box; the hostile-input test uses a footprint above the new cap. Scorecard note labels Impressionist as an approximation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * i18n(pl): translate the Pattern Stamp strings The Polish catalog landed on main after this PR was written; the translation-coverage tests need every language to carry new UI strings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tool::ALL holds 51 tools now that Red Eye and Pattern Stamp both landed The rebase onto main (with #1084's Red Eye tool) leaves Tool::ALL one entry longer; bump the array length and the count test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Flyout test: qualify egui::Vec2 (panels.rs no longer imports Vec2) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Brandon Thomas <echelon@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>