viewer: Phase 1b — inline MX/AzInt settings dock

Surface a surgical subset of processing settings in an always-visible dock
instead of hidden windows:

- New JFJochViewerSettingsDock with an MX / AzInt segmented toggle.
  MX page: geometry (energy, distance, beam X/Y), a new unit-cell +
  space-group editor (no such input existed before; enables known-cell
  ffbidx), spot finding (S/N, photon count, min pixels/spot), indexing
  algorithm and geometry refinement. AzInt page: q range / spacing /
  azimuthal bins plus the existing powder-calibration widget.
- Edits feed straight into the worker (UpdateSpotFindingSettings,
  UpdateAzintSettings, UpdateDataset, FindCenter); fields populate from the
  loaded dataset.
- Add CeO2 and Silicon calibrant presets.
- Dock it left, objectName "settingsDock", show it in the Processing
  perspective (hidden in Image).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 16:26:15 +02:00
co-authored by Claude Opus 4.8
parent f5a146d212
commit 58c60e03fe
6 changed files with 378 additions and 1 deletions
@@ -52,6 +52,14 @@ UnitCell PowderCalibrationWidget::GetCalibrant() const {
uc = UnitCell(5.1769, 4.7218, 58.380, 89.440, 89.634, 75.854);
break;
case 2:
// CeO2, cubic fluorite (a = 5.4115 Å), NIST SRM 674b.
uc = UnitCell(5.4115, 5.4115, 5.4115, 90, 90, 90);
break;
case 3:
// Silicon, cubic (a = 5.43102 Å), NIST SRM 640.
uc = UnitCell(5.43102, 5.43102, 5.43102, 90, 90, 90);
break;
case 4:
if (sample_cell)
uc = sample_cell.value();
break;
@@ -66,6 +74,8 @@ void PowderCalibrationWidget::updateCalibrantList() {
calibrantCombo->addItem("LaB6");
calibrantCombo->addItem("Silver Behenate");
calibrantCombo->addItem("CeO2");
calibrantCombo->addItem("Silicon");
if (sample_cell)
calibrantCombo->addItem(QString("Current sample (%1 %2 %3 %4 %5 %6)")
.arg(QString::number(sample_cell->a, 'f', 1))