Skip to content

Add UX refinements, fix crop box issue when fine rotation is enabled, add freehand analyis region.#413

Merged
marcinz606 merged 1 commit into
marcinz606:mainfrom
linkmodo:feature/my-changes
Jul 7, 2026
Merged

Add UX refinements, fix crop box issue when fine rotation is enabled, add freehand analyis region.#413
marcinz606 merged 1 commit into
marcinz606:mainfrom
linkmodo:feature/my-changes

Conversation

@linkmodo

@linkmodo linkmodo commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

…is region

UI/UX:

  • Files sidebar: single click on a thumbnail now selects and loads it into the viewer (Ctrl/Shift click still builds a multi-selection for batch actions).
  • Crop tool: double-click inside the crop box confirms the crop and closes the tool, so you no longer have to return to the Crop button.
  • Right panel: collapsing the sticky "Analysis" section now pins its header at the top and hands the freed splitter space to the tabs below.
  • Rename the geometry slider "Fine Rot" -> "Fine Rotation".

Fix (crop inflates under Fine Rotation):

  • GeometryConfig.manual_crop_rect is now normalized in the transformed (display) image instead of raw space. get_manual_rect_coords is a plain axis-aligned slice (rect x transformed dims); previously it corner-mapped the rect through the fine rotation and took the axis-aligned bounding box, which inflated the cropped region as the tilt grew. The overlay maps screen<->rect linearly through its view rect (no uv-grid round-trip for crop). Note: manual crops saved in an older edits.db re-interpret once.

Feature (freehand analysis region, additive):

  • New optional ProcessConfig.analysis_rect (transformed-normalized, like the crop rect). resolve_analysis_region turns it into the analysis ROI (buffer 0) at the single chokepoint in NormalizationProcessor and the GPU analysis path; when set it overrides the centered Analysis Buffer, otherwise the slider still applies.
  • New ANALYSIS_DRAW canvas tool (draw + move + double-click confirm) plus draw/clear buttons on the Process page; the tool shows the uncropped preview.

Tests: geometry crop semantics + fine-rotation regression, analysis-region resolution + pipeline wiring, and analysis_rect serialization round-trip. make lint / type / test all pass (the one failing export-path test is a pre-existing Windows path-separator issue, unrelated to this change). Human tested the enhancements and fix to confirm they are implemented accordingly.

@linkmodo

linkmodo commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

Tried NegPy for the first time after someone recommended it to me, what a great app for negative digitization! Made some changes to the UI to match other image editing software behaviors and fixed the crop box issue with rotation enabled. Cheers!

…is region

UI/UX:
- Files sidebar: single click on a thumbnail now selects and loads it into the
  viewer (Ctrl/Shift click still builds a multi-selection for batch actions).
- Crop tool: double-click inside the crop box confirms the crop and closes the
  tool, so you no longer have to return to the Crop button.
- Right panel: collapsing the sticky "Analysis" section now pins its header at
  the top and hands the freed splitter space to the tabs below.
- Rename the geometry slider "Fine Rot" -> "Fine Rotation".

Fix (crop inflates under Fine Rotation):
- GeometryConfig.manual_crop_rect is now normalized in the transformed (display)
  image instead of raw space. get_manual_rect_coords is a plain axis-aligned
  slice (rect x transformed dims); previously it corner-mapped the rect through
  the fine rotation and took the axis-aligned bounding box, which inflated the
  cropped region as the tilt grew. The overlay maps screen<->rect linearly
  through its view rect (no uv-grid round-trip for crop).
  Note: manual crops saved in an older edits.db re-interpret once.

Feature (freehand analysis region, additive):
- New optional ProcessConfig.analysis_rect (transformed-normalized, like the crop
  rect). resolve_analysis_region turns it into the analysis ROI (buffer 0) at the
  single chokepoint in NormalizationProcessor and the GPU analysis path; when set
  it overrides the centered Analysis Buffer, otherwise the slider still applies.
- New ANALYSIS_DRAW canvas tool (draw + move + double-click confirm) plus
  draw/clear buttons on the Process page; the tool shows the uncropped preview.

Tests: geometry crop semantics + fine-rotation regression, analysis-region
resolution + pipeline wiring, and analysis_rect serialization round-trip.
make lint / type / test all pass (the one failing export-path test is a
pre-existing Windows path-separator issue, unrelated to this change).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@linkmodo linkmodo force-pushed the feature/my-changes branch from 06f4209 to 3d55e09 Compare July 7, 2026 14:05
@marcinz606

Copy link
Copy Markdown
Owner

nice one, thanks!

@marcinz606 marcinz606 merged commit edc4768 into marcinz606:main Jul 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants