NegativeDetector now accepts an optional forced FilmType. When
film_type != "auto" in config.ini, auto-detection is skipped and
the configured type is applied directly. build_pipeline() in
CliRunner maps c41→ColorNegative and bw→BWNegative accordingly.
Default config changed from film_type=auto to film_type=c41 to
match the project's primary use case (C-41 color negatives).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ConversionWorker runs pipeline on background QThread so the GUI stays
responsive during conversion; emits file_done, preview_ready, finished
- MainWindow adds: output-format QComboBox, film-type QComboBox, Batch button
that opens an AppConfig INI file and discovers files from batch.input_dir
- main.cpp: --batch and --config flags trigger CLI mode without Qt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements a zero-dependency INI parser for application settings with
[batch], [conversion], and [quality] sections. Includes AppConfig::load(),
write_default(), output_format(), and parsed_extensions() helpers, along
with a documented config.ini example file.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>