@@ -136,6 +136,7 @@ impl CurveFitApp {
136136 }
137137 Ok ( FitWorkerMessage :: Stopped ) => {
138138 self . fit_in_progress = false ;
139+ self . reset_fit_timer ( ) ;
139140 self . active_fit_points = None ;
140141 self . finalize_replay_after_fit_stopped ( ) ;
141142 if !self . discard_fit_worker_updates {
@@ -170,8 +171,10 @@ impl CurveFitApp {
170171 ) ;
171172 self . finalize_replay_after_fit_completion ( ) ;
172173 self . fit_result = Some ( result) ;
174+ self . complete_fit_timer_successfully ( ) ;
173175 self . status = Some ( StatusMessage :: FitCompleted ) ;
174176 } else {
177+ self . reset_fit_timer ( ) ;
175178 self . set_fit_stopped_status_if_fitting ( ) ;
176179 }
177180 keep_receiver = false ;
@@ -192,8 +195,10 @@ impl CurveFitApp {
192195 self . upsert_spline_replay_frame ( result. iterations , spline_plot_curve) ;
193196 self . finalize_replay_after_fit_completion ( ) ;
194197 self . spline_result = Some ( result) ;
198+ self . complete_fit_timer_successfully ( ) ;
195199 self . status = Some ( StatusMessage :: FitCompleted ) ;
196200 } else {
201+ self . reset_fit_timer ( ) ;
197202 self . set_fit_stopped_status_if_fitting ( ) ;
198203 }
199204 self . active_fit_points = None ;
@@ -202,6 +207,7 @@ impl CurveFitApp {
202207 }
203208 Ok ( FitWorkerMessage :: Failed ( error) ) => {
204209 self . fit_in_progress = false ;
210+ self . reset_fit_timer ( ) ;
205211 self . active_fit_points = None ;
206212 if !self . discard_fit_worker_updates {
207213 self . status = Some ( StatusMessage :: Error ( error) ) ;
@@ -214,6 +220,7 @@ impl CurveFitApp {
214220 Err ( TryRecvError :: Empty ) => break ,
215221 Err ( TryRecvError :: Disconnected ) => {
216222 self . fit_in_progress = false ;
223+ self . reset_fit_timer ( ) ;
217224 self . active_fit_points = None ;
218225 if !self . discard_fit_worker_updates {
219226 self . status = Some ( StatusMessage :: Error (
@@ -315,6 +322,7 @@ impl CurveFitApp {
315322 Ok ( params) => params,
316323 Err ( error) => {
317324 self . fit_in_progress = false ;
325+ self . reset_fit_timer ( ) ;
318326 self . status = Some ( StatusMessage :: Error ( error) ) ;
319327 self . active_fit_points = None ;
320328 break ;
@@ -345,6 +353,7 @@ impl CurveFitApp {
345353 result. params = match normalization. denormalize_params ( & result. params ) {
346354 Ok ( params) => params,
347355 Err ( error) => {
356+ self . reset_fit_timer ( ) ;
348357 self . status = Some ( StatusMessage :: Error ( error) ) ;
349358 self . active_fit_points = None ;
350359 break ;
@@ -376,18 +385,21 @@ impl CurveFitApp {
376385 self . upsert_parametric_replay_frame ( result. iterations , result. params . clone ( ) ) ;
377386 self . finalize_replay_after_fit_completion ( ) ;
378387 self . fit_result = Some ( result) ;
388+ self . complete_fit_timer_successfully ( ) ;
379389 self . status = Some ( StatusMessage :: FitCompleted ) ;
380390 break ;
381391 }
382392 Ok ( IncrementalFitStep :: Cancelled ) => {
383393 self . fit_in_progress = false ;
394+ self . reset_fit_timer ( ) ;
384395 self . finalize_replay_after_fit_stopped ( ) ;
385396 self . status = Some ( StatusMessage :: FitStopped ) ;
386397 self . active_fit_points = None ;
387398 break ;
388399 }
389400 Err ( error) => {
390401 self . fit_in_progress = false ;
402+ self . reset_fit_timer ( ) ;
391403 self . status = Some ( StatusMessage :: Error ( error. to_string ( ) ) ) ;
392404 self . active_fit_points = None ;
393405 break ;
@@ -423,19 +435,22 @@ impl CurveFitApp {
423435 self . upsert_spline_replay_frame ( result. iterations , spline_plot_curve) ;
424436 self . finalize_replay_after_fit_completion ( ) ;
425437 self . spline_result = Some ( result) ;
438+ self . complete_fit_timer_successfully ( ) ;
426439 self . status = Some ( StatusMessage :: FitCompleted ) ;
427440 self . active_fit_points = None ;
428441 break ;
429442 }
430443 Ok ( IncrementalSplineFitStep :: Cancelled ) => {
431444 self . fit_in_progress = false ;
445+ self . reset_fit_timer ( ) ;
432446 self . finalize_replay_after_fit_stopped ( ) ;
433447 self . status = Some ( StatusMessage :: FitStopped ) ;
434448 self . active_fit_points = None ;
435449 break ;
436450 }
437451 Err ( error) => {
438452 self . fit_in_progress = false ;
453+ self . reset_fit_timer ( ) ;
439454 self . status = Some ( StatusMessage :: Error ( error. to_string ( ) ) ) ;
440455 self . active_fit_points = None ;
441456 break ;
@@ -671,6 +686,7 @@ impl CurveFitApp {
671686 }
672687 } ;
673688 self . upsert_spline_replay_frame ( 0 , Self :: plot_points_from_pairs ( initial_curve) ) ;
689+ self . start_fit_timer ( ) ;
674690 self . status = Some ( StatusMessage :: FittingInProgress ) ;
675691
676692 #[ cfg( not( target_arch = "wasm32" ) ) ]
@@ -703,6 +719,7 @@ impl CurveFitApp {
703719 self . fit_in_progress = true ;
704720 }
705721 Err ( error) => {
722+ self . reset_fit_timer ( ) ;
706723 self . status = Some ( StatusMessage :: Error ( error. to_string ( ) ) ) ;
707724 }
708725 }
@@ -769,6 +786,7 @@ impl CurveFitApp {
769786 metric_quantization,
770787 ) ;
771788 self . upsert_parametric_replay_frame ( 0 , initial_params. clone ( ) ) ;
789+ self . start_fit_timer ( ) ;
772790 self . status = Some ( StatusMessage :: FittingInProgress ) ;
773791
774792 #[ cfg( not( target_arch = "wasm32" ) ) ]
@@ -805,6 +823,7 @@ impl CurveFitApp {
805823 self . fit_in_progress = true ;
806824 }
807825 Err ( error) => {
826+ self . reset_fit_timer ( ) ;
808827 self . active_fit_points = None ;
809828 self . status = Some ( StatusMessage :: Error ( error. to_string ( ) ) ) ;
810829 }
0 commit comments