From df5f84c87cac2d83e33ff12c6583b861a2923eb3 Mon Sep 17 00:00:00 2001 From: qlionbleusam Date: Wed, 22 Jul 2026 16:39:19 +0200 Subject: [PATCH] refactor: flux calibration -> plotting -> placement des impacts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- lib/features/analysis/analysis_screen.dart | 27 ++++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/lib/features/analysis/analysis_screen.dart b/lib/features/analysis/analysis_screen.dart index ff60665e..e550f783 100644 --- a/lib/features/analysis/analysis_screen.dart +++ b/lib/features/analysis/analysis_screen.dart @@ -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 _openImpactEditor(AnalysisProvider provider) async { - final validated = await Navigator.of(context).push( + await Navigator.of(context).push( MaterialPageRoute( builder: (_) => ChangeNotifierProvider.value( value: provider, @@ -165,13 +166,9 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> { if (!mounted) return; - if (validated == true) { - setState(() { - _isCalibrating = false; - }); - } else { - _enterCalibration(); - } + setState(() { + _isCalibrating = false; + }); } /// 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()); + setState(() => _isCalibrating = false); }, child: const Text( 'VALIDER',