diff --git a/sv/sv0400.cpp b/sv/sv0400.cpp index 5b863ac58..3bde48ff7 100755 --- a/sv/sv0400.cpp +++ b/sv/sv0400.cpp @@ -5,11 +5,12 @@ class TParametri_stat : public TConfig_application { - bool _recalculated; + bool _recalc_needed; protected: virtual const char* get_mask_name() const { return "sv0400a"; } virtual bool postprocess_config_changed (const char*, const char*, const char*, const char*); + virtual bool user_destroy() ; public: TParametri_stat(); @@ -17,17 +18,26 @@ public: bool TParametri_stat::postprocess_config_changed (const char*, const char*, const char*, const char*) { - bool recalc = !_recalculated && yesno_box("Si desidera ricalcolare le statistiche ora?"); - if (recalc) - { - TExternal_app app("sv2 -0"); - _recalculated = app.run() == 0; - } + _recalc_needed = TRUE; return TRUE; } +bool TParametri_stat::user_destroy() +{ + const bool ok = TConfig_application::user_destroy(); + if (ok) + { + if (_recalc_needed && yesno_box("Si desidera ricalcolare le statistiche ora?")) + { + TExternal_app app("sv2 -0"); + app.run(); + } + } + return ok; +} + TParametri_stat::TParametri_stat() - : TConfig_application(CONFIG_DITTA), _recalculated(FALSE) + : TConfig_application(CONFIG_DITTA), _recalc_needed(FALSE) { } int sv0400(int argc, char* argv[])