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
+12 -15
View File
@@ -151,10 +151,11 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
/// exactement le même AnalysisProvider que cet écran : les impacts ajoutés, /// 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. /// 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 /// Au retour, quel que soit le résultat (validation OU retour arrière), on
/// Plotting (lecture seule) ; sinon on repasse en calibration. /// 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 { Future<void> _openImpactEditor(AnalysisProvider provider) async {
final validated = await Navigator.of(context).push<bool>( await Navigator.of(context).push<bool>(
MaterialPageRoute( MaterialPageRoute(
builder: (_) => ChangeNotifierProvider<AnalysisProvider>.value( builder: (_) => ChangeNotifierProvider<AnalysisProvider>.value(
value: provider, value: provider,
@@ -165,13 +166,9 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
if (!mounted) return; if (!mounted) return;
if (validated == true) { setState(() {
setState(() { _isCalibrating = false;
_isCalibrating = false; });
});
} else {
_enterCalibration();
}
} }
/// Chemin à utiliser pour repartir dans le CropScreen lors d'un retour arrière. /// Chemin à utiliser pour repartir dans le CropScreen lors d'un retour arrière.
@@ -289,12 +286,12 @@ class _AnalysisScreenContentState extends State<_AnalysisScreenContent> {
if (_isCalibrating) if (_isCalibrating)
TextButton( TextButton(
onPressed: () { onPressed: () {
// On fige la calibration courante AVANT d'ouvrir l'éditeur, // On fige la calibration courante puis on bascule DIRECTEMENT
// puis on passe sur l'écran d'édition d'impacts plein écran // sur le Plotting (lecture seule). Le placement des impacts ne
// (zoom fiable + placement). Le mode Plotting (lecture seule) // s'ouvre plus ici : il se fera depuis le Plotting en tapant la
// s'affichera au retour si l'utilisateur valide. // cible.
_calibrationKey.currentState?.commitCalibration(); _calibrationKey.currentState?.commitCalibration();
_openImpactEditor(context.read<AnalysisProvider>()); setState(() => _isCalibrating = false);
}, },
child: const Text( child: const Text(
'VALIDER', 'VALIDER',