Go to file
lm 2d4531013d Fix folder navigation and restyle navigation arrows 2025-10-19 21:16:55 +02:00
app Fix folder navigation and restyle navigation arrows 2025-10-19 21:16:55 +02:00
images Initial project structure 2025-10-15 18:03:07 +02:00
.gitignore Ignore uv artifacts 2025-10-17 13:51:13 +02:00
README.md Introduce PySide6 desktop shell 2025-10-19 19:10:11 +02:00
config.toml Add exclusion persistence option 2025-10-17 17:29:21 +02:00
main.py Refactor app layout and load defaults from config 2025-10-15 18:16:18 +02:00
pyproject.toml Introduce PySide6 desktop shell 2025-10-19 19:10:11 +02:00

README.md

ICRA
Interactive Color Range Analyzer is being reimagined with a PySide6 user interface.
This branch focuses on building a native desktop shell with modern window controls before porting the colour-analysis features.

Current prototype

  • Custom frameless window with minimise / maximise / close controls that hook into Windows natively
  • Dark themed layout and basic image preview powered by Qt
  • “Open image” workflow that displays the selected asset scaled to the viewport

⚠️ Legacy Tk features (sliders, exclusions, folder navigation, stats) are not wired up yet. The goal here is to validate the PySide6 shell first.

Requirements

  • Python 3.11+
  • uv for dependency management
  • Windows 10/11 recommended (PySide6 build included; Linux/macOS should work but are untested in this branch)

Setup with uv (PowerShell example)

git clone https://git.lukasmahler.de/lm/ICRA.git
cd ICRA
uv venv
source .venv/Scripts/activate    # macOS/Linux: source .venv/bin/activate
uv pip install .
uv run icra

The app launches directly as a PySide6 GUI—no browser or local web server involved. Use the “Open Image…” button to load a file and test resizing/snap behaviour.

Roadmap (branch scope)

  1. Port hue/saturation/value controls to Qt widgets
  2. Re-implement exclusion drawing using QPainter overlays
  3. Integrate existing image-processing logic (app/logic) with the new UI

Project layout

app/
  assets/        # Shared branding
  gui/, logic/   # Legacy Tk code kept for reference
  qt/            # New PySide6 implementation (main_window, app bootstrap)
config.toml      # Historical defaults (unused in the prototype)
main.py          # Entry point -> PySide6 launcher

Development notes

  • Quick syntax check: uv run python -m compileall app main.py
  • Uploaded images are not persisted; the preview uses Qt pixmaps only.
  • Contributions welcome—please target this branch with PySide6-specific improvements.