refactor: flux calibration -> plotting -> placement des impacts

- VALIDER en calibration mène directement au plotting
- l'éditeur d'impacts revient toujours au plotting au retour

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
qlionbleusam
2026-07-22 16:39:19 +02:00
co-authored by Claude Opus 4.8
parent bbf10d7eed
commit df5f84c87c
+9 -12
View File
@@ -151,10 +151,11 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
/// exactement le même AnalysisProvider que cet écran : les impacts ajoutés,
/// déplacés ou supprimés sont donc immédiatement répercutés ici.
///
/// Au retour : si l'utilisateur a validé (résultat true) on bascule en mode
/// Plotting (lecture seule) ; sinon on repasse en calibration.
/// Au retour, quel que soit le résultat (validation OU retour arrière), on
/// revient TOUJOURS sur le Plotting. L'éditeur d'impacts n'est ouvert que
/// depuis le Plotting : il doit donc y ramener, jamais sur la calibration.
Future<void> _openImpactEditor(AnalysisProvider provider) async {
final validated = await Navigator.of(context).push<bool>(
await Navigator.of(context).push<bool>(
MaterialPageRoute(
builder: (_) => ChangeNotifierProvider<AnalysisProvider>.value(
value: provider,
@@ -165,13 +166,9 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
if (!mounted) return;
if (validated == true) {
setState(() {
_isCalibrating = false;
});
} else {
_enterCalibration();
}
}
/// Chemin à utiliser pour repartir dans le CropScreen lors d'un retour arrière.
@@ -289,12 +286,12 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
if (_isCalibrating)
TextButton(
onPressed: () {
// On fige la calibration courante AVANT d'ouvrir l'éditeur,
// puis on passe sur l'écran d'édition d'impacts plein écran
// (zoom fiable + placement). Le mode Plotting (lecture seule)
// s'affichera au retour si l'utilisateur valide.
// On fige la calibration courante puis on bascule DIRECTEMENT
// sur le Plotting (lecture seule). Le placement des impacts ne
// s'ouvre plus ici : il se fera depuis le Plotting en tapant la
// cible.
_calibrationKey.currentState?.commitCalibration();
_openImpactEditor(context.read<AnalysisProvider>());
setState(() => _isCalibrating = false);
},
child: const Text(
'VALIDER',