Part of #7. Depends on PR2.
What
Add a "Generate plate overview" button to PhenixDataLoaderWidget.
Behavior
- Button is disabled until an experiment is loaded
- Click →
QFileDialog.getExistingDirectory() defaulting to the experiment directory
- Calls
generate_plate_overview(experiment_path, chosen_dir) with sensible defaults (the function's defaults are designed to "just work" — no widget-side config in v1)
- On completion, opens the chosen directory in the OS file viewer:
- macOS:
subprocess.run(["open", dir])
- Linux:
subprocess.run(["xdg-open", dir])
- Windows:
subprocess.run(["explorer", dir])
- Status message shown in the widget's existing status area
Acceptance criteria
Out of scope
- Configuring overview parameters from the widget (advanced users call the function from a script)
- Progress feedback inside the napari window (terminal
tqdm is enough for v1)
- Running in a background thread (the napari UI will block during overview generation; acceptable for a diagnostic action)
Part of #7. Depends on PR2.
What
Add a "Generate plate overview" button to
PhenixDataLoaderWidget.Behavior
QFileDialog.getExistingDirectory()defaulting to the experiment directorygenerate_plate_overview(experiment_path, chosen_dir)with sensible defaults (the function's defaults are designed to "just work" — no widget-side config in v1)subprocess.run(["open", dir])subprocess.run(["xdg-open", dir])subprocess.run(["explorer", dir])Acceptance criteria
_set_controls_enabledin_widget.py:1062)QFileDialog, mock the OS-open call, verifygenerate_plate_overviewis invoked with the expected argsOut of scope
tqdmis enough for v1)