File dialogs — dedicated pickers + host helpers (#6, part 2) #37

Merged
gronod merged 1 commits from feat/6-file-dialogs into milestone/m1-foundation 2026-09-08 19:09:42 +01:00
Owner

Completes issue #6 — the first PR missed several dedicated helpers; issue was reopened.

  • One dedicated method per purpose, no shared generic picker (#103/#210/#211): selectTargetFile (save .ti1), selectExistingTarget (.ti1/.ti2), selectProfileFile (.icc/.icm/.mpp, never .ti*#172), selectSpectrumFile (.sp), selectDatasetFile (open-only .ti3/.txt/.cgats/.csv#211), selectCsvSavePath, selectCalFile, selectDirectory.
  • Ti2Header: TARGET_INSTRUMENT, NUMBER_OF_SETS → patchCount, NUMBER_OF_PAGES, sibling .ti1 detection; NUMBER_OF_FIELDS explicitly not the patch count.
  • TiffPreview: host-side TIFF→PNG, 1200 px max edge via ImageIO (#58).
  • ArtefactFiles: defaultWorkingDirectory (resolveSafeCwd), readBase64, appInfo.

Verified: 47/47 tests pass (incl. real generated-TIFF thumbnail + ti2 fixtures).

Closes #6

Completes issue #6 — the first PR missed several dedicated helpers; issue was reopened. - One dedicated method per purpose, no shared generic picker (#103/#210/#211): `selectTargetFile` (save `.ti1`), `selectExistingTarget` (`.ti1`/`.ti2`), `selectProfileFile` (`.icc`/`.icm`/`.mpp`, never `.ti*` — #172), `selectSpectrumFile` (`.sp`), `selectDatasetFile` (open-only `.ti3`/`.txt`/`.cgats`/`.csv` — #211), `selectCsvSavePath`, `selectCalFile`, `selectDirectory`. - `Ti2Header`: `TARGET_INSTRUMENT`, `NUMBER_OF_SETS` → patchCount, `NUMBER_OF_PAGES`, sibling `.ti1` detection; `NUMBER_OF_FIELDS` explicitly not the patch count. - `TiffPreview`: host-side TIFF→PNG, 1200 px max edge via ImageIO (#58). - `ArtefactFiles`: `defaultWorkingDirectory` (resolveSafeCwd), `readBase64`, `appInfo`. Verified: 47/47 tests pass (incl. real generated-TIFF thumbnail + ti2 fixtures). Closes #6
gronod added the
Priority
Medium
3
Project/ICCery-v2Feature/Backend
labels 2026-09-08 19:09:33 +01:00
gronod added 1 commit 2026-09-08 19:09:34 +01:00
- One dedicated method per purpose: selectTargetFile (save .ti1),
  selectExistingTarget (ti1/ti2), selectProfileFile (icc/icm/mpp —
  never ti*, #172), selectSpectrumFile (.sp), selectDatasetFile
  (open-only ti3/txt/cgats/csv, #211), selectCsvSavePath, selectCalFile,
  selectDirectory. No shared generic picker API (#103/#210/#211).
- Ti2Header: TARGET_INSTRUMENT / NUMBER_OF_SETS / NUMBER_OF_PAGES +
  sibling .ti1 detection; NUMBER_OF_FIELDS explicitly not patch count
- TiffPreview: host-side TIFF→PNG thumbnail, 1200px max edge (#58)
- ArtefactFiles: defaultWorkingDirectory, readBase64, appInfo
- 7 new tests; 47/47 green

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
gronod merged commit 933eadd1c3 into milestone/m1-foundation 2026-09-08 19:09:42 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gronod/iccery-v2-mac#37