Commit Graph

13 Commits

Author SHA1 Message Date
lukas 78af24103c Improve performance, UX, and code quality
- Replace Python pixel loop with NumPy vectorized HSV processing (~50-100x faster overlay rebuilds)
- Add OverlayCanvas (QGraphicsView) to replace plain QLabel overlay panel
- Add editable QLineEdit value input to SliderControl (supports typing exact values)
- Implement eyedropper pick-from-image: left-click sets hue/sat/val sliders from pixel colour
- Add keyboard shortcuts: Ctrl+O, Ctrl+Shift+O, Ctrl+S, Ctrl+Z, Ctrl+R, arrow keys, Esc
- Add drag-and-drop support for image files and folders
- Persist and restore window geometry via QSettings
- Remove duplicate _CONFIG_DATA load in constants.py
- Remove dead constructor stylesheet from ToolbarButton
- Add numpy>=1.26 dependency
2026-03-10 16:07:52 +01:00
lm 27c0e55711 Upscale small previews to fill canvas 2025-10-19 18:10:24 +02:00
lm 1d0acba3c3 Add exclusion persistence option
Introduce a config flag to reset exclusions when images change (default off), keep shapes when navigating, and theme preview accents accordingly.
2025-10-17 17:29:21 +02:00
lm 4fc0182798 Match exclusion accent in light mode
Use the stats highlight colour for exclusion outlines in light theme, keeping the gold highlight for dark mode.
2025-10-17 17:23:49 +02:00
lm 464855f365 Refine freehand exclusion polygons
Store freehand paths as closed polygons with thin outlines and fill the interior when masking, so free-drawn shapes behave like custom rectangles.
2025-10-17 17:11:18 +02:00
lm f678c403b7 Add freehand exclusion mode
Support rectangle and freehand exclusion shapes, toggle via toolbar, and store new strokes in the mask-backed exclusion system.
2025-10-17 17:00:23 +02:00
lm 5cb2945577 fix: restore default colour swatch on slider reset
Call the default colour helper during slider reset so the swatch and hex label jump back to the configured initial colour.
2025-10-17 16:46:58 +02:00
lm 91fad62808 feat: add translation files and i18n loader
Create TOML-based localisation resources under app/lang and introduce a Translator/I18nMixin that reads them. Update config handling to recognise available languages, switch UI strings to translation lookups, and bundle language files with the package.
2025-10-17 16:43:25 +02:00
lm 1024d84bbc Update German terminology for exclusions and matches 2025-10-17 15:51:31 +02:00
lm 1247269bb7 Allow folder navigation to wrap around 2025-10-17 15:48:24 +02:00
lm f47e3925f3 Rename project to ICRS and add folder browsing 2025-10-17 12:31:21 +02:00
lm f9e8d01a70 Refine UI layout and theme behavior
Generalize color selection, reorganize GUI, add presets, dynamic slider adjustments, config defaults, multiple UI updates etc
2025-10-15 20:18:21 +02:00
lm 02255f5dee Refactor app layout and load defaults from config 2025-10-15 18:16:18 +02:00