ScanSlicer/scanslicer
dan 607f5e0c57 feat: add explicit left/right orientation with swap button
Fixes mirrored slice exports by making orientation explicit:

- PhotoSlice.swapped flag persists a user left/right swap
- swap_left_right() mirrors [TL,TR,BR,BL] -> [TR,TL,BL,BR]
- normalize_top_left() honors the flag so squarize/reset_rotation
  no longer overwrite manual orientation
- Swap L/R toolbar button wired through canvas state + controller
- Color-code left (orange) vs right (cyan) corners and edges
2026-09-11 21:33:59 +02:00
..
__init__.py feat(__init__): add module entry file with runtime comments 2026-02-18 11:18:06 +00:00
__main__.py feat(__main__): add module entry file with runtime comments 2026-02-18 11:24:07 +00:00
autoslicer.py feat(autoslicer): implement class Autoslicer 2026-02-19 15:41:28 +00:00
autoslicer_detection.py feat(autoslicer_detection): implement class AutoslicerDetectionMixin 2026-02-20 11:42:13 +00:00
autoslicer_feedback.py feat(autoslicer_feedback): implement class AutoslicerFeedbackMixin 2026-02-20 11:52:13 +00:00
canvas.py feat(canvas): implement class QtSlicingCanvas 2026-02-20 12:02:13 +00:00
canvas_interaction.py feat(canvas_interaction): implement class CanvasInteractionMixin 2026-02-20 15:33:30 +00:00
canvas_render.py feat: add explicit left/right orientation with swap button 2026-09-11 21:33:59 +02:00
canvas_state.py feat: add explicit left/right orientation with swap button 2026-09-11 21:33:59 +02:00
controller.py refactor(controller): add module tail helpers and finalize layout 2026-02-21 11:01:06 +00:00
controller_canvas_actions.py feat: add explicit left/right orientation with swap button 2026-09-11 21:33:59 +02:00
controller_detection.py feat(controller_detection): implement class ScanSlicerDetectionMixin 2026-02-21 15:50:41 +00:00
controller_image_io.py feat(controller_image_io): implement class ScanSlicerImageIOMixin 2026-02-22 13:29:52 +00:00
controller_params.py feat(controller_params): implement class ScanSlicerParamsMixin 2026-02-22 15:30:12 +00:00
controller_status.py feat(controller_status): implement class ScanSlicerStatusMixin 2026-02-22 15:40:12 +00:00
entry.py refactor(entry): add module tail helpers and finalize layout 2026-02-23 13:52:52 +00:00
main.py feat: add explicit left/right orientation with swap button 2026-09-11 21:33:59 +02:00
params.py feat(params): implement class AutoslicerParams 2026-02-24 13:24:15 +00:00
slices.py feat: add explicit left/right orientation with swap button 2026-09-11 21:33:59 +02:00
ui_builders.py refactor(ui_builders): add module tail helpers and finalize layout 2026-02-25 12:19:30 +00:00
ui_builders_controls.py refactor(ui_builders_controls): add module tail helpers and finalize layout 2026-02-25 12:46:08 +00:00
ui_builders_preview.py feat: add explicit left/right orientation with swap button 2026-09-11 21:33:59 +02:00
ui_builders_shared.py refactor(ui_builders_shared): add module tail helpers and finalize layout 2026-02-26 12:25:34 +00:00