From 6ddf9631ed5635fd325f2cb92daedb4a600dbc9f Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 17 Apr 1998 09:39:54 +0000 Subject: [PATCH] Corretta gestione uscita con Alt-F4 git-svn-id: svn://10.65.10.50/trunk@6530 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/mask.cpp | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/include/mask.cpp b/include/mask.cpp index be64733bf..409827039 100755 --- a/include/mask.cpp +++ b/include/mask.cpp @@ -1,12 +1,12 @@ #include #include -#include #include #include #include #include #include +#include #include #include #include @@ -335,10 +335,16 @@ void TMask::notify_focus_field(short id) bool TMask::can_be_closed() const { - bool ok = TRUE; - if (is_running() && (edit_mode() || insert_mode()) && dirty()) - ok = yesno_box("Annullare i dati inseriti?"); - return ok; + if (is_running()) + { + bool ok = TRUE; + if ((edit_mode() || insert_mode()) && dirty()) + ok = yesno_box("Annullare i dati inseriti?"); + if (ok) + ((TMask*)this)->stop_run(K_FORCE_CLOSE); + return FALSE; + } + return TRUE; // Should never happen! } void TMask::close() @@ -603,8 +609,13 @@ bool TMask::stop_run( return FALSE; } - if (key == K_CTRL_ENTER || key == K_AUTO_ENTER) key = K_ENTER; else - if (key == K_FORCE_CLOSE) key = K_QUIT; + if (key == K_CTRL_ENTER || key == K_AUTO_ENTER) + key = K_ENTER; + else + { + if (key == K_FORCE_CLOSE) + key = (id2pos(DLG_QUIT)<0 && id2pos(DLG_CANCEL)>=0) ? K_ESC : K_QUIT; + } if (key != K_ESC && key != K_QUIT && key != K_DEL && key != K_F9) { @@ -1322,7 +1333,7 @@ void TMask::autosave(TRelation& r) const void TMask::on_firm_change() { - TString firm; firm << main_app().get_firm(); + TString firm; firm << prefix().get_codditta(); for (int i = fields()-1; i >= 0; i--) { TMask_field& f = fld(i); @@ -1843,7 +1854,7 @@ void TMask::set_exchange( { const real nuo = (n.sign() <= 0) ? _exchange : n; - main_app().begin_wait(); + TWait_cursor hourglass; for (int i = fields()-1; i >= 0; i--) { TMask_field& f = fld(i); @@ -1854,9 +1865,7 @@ void TMask::set_exchange( o.exchange(show_value, nuo); } } - _exchange = nuo; // Update current exchange - main_app().end_wait(); }