Aggiunto metodo setconfig() per cambiare il tipo di file di configurazione

relativo alla confapp. Corretta la lettura/salvataggio di campi array,
identificati da FIELD xxx[nn].


git-svn-id: svn://10.65.10.50/trunk@3598 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-09-17 10:47:46 +00:00
parent ce341c3cb2
commit 2caafb668b
2 changed files with 11 additions and 6 deletions

View File

@ -72,8 +72,10 @@ void TConfig_application::do_config(int m)
TMask_field& f = m.fld(i);
if (f.field() != NULL)
{
const char* fname = f.field()->name();
TString& oldvl = cnf.get(fname);
const TFieldref* fr = f.field();
const char* fname = fr->name();
const int index = fr->to();
TString& oldvl = cnf.get(fname,NULL, index > -1 ? index : -1);
if (!oldvl.empty())
f.set(oldvl);
}
@ -98,6 +100,7 @@ void TConfig_application::do_config(int m)
{
const char* fname = f.field()->name();
const char* value = f.get();
const int index = f.field()->to();
const char* oldvl = cnf.get(fname);
if (!tosave)
@ -106,7 +109,7 @@ void TConfig_application::do_config(int m)
if (!tosave) break;
if (postprocess_config_changed(par, fname, oldvl, value))
cnf.set(fname, value, NULL, TRUE);
cnf.set(fname, value, NULL, TRUE, index > -1 ? index : -1);
}
}
}

View File

@ -17,7 +17,7 @@
// @doc EXTERNAL
// @class TConfig_application | le applicazioni di questo tipo servono a leggere -
// scrivere - modificare files di configurazione.
// scrivere - modificare files di configurazione.
//
// @base public | TApplication
class TConfig_application : public TApplication
@ -30,7 +30,7 @@ class TConfig_application : public TApplication
//
// <nl><nl>dopo <p -f> si dara' il nome file che si vuole editare, default e' CONFIG_FILE
// definito in config.h.
// <nl>Se si da' <p -d> viene considerato quello relativo alla
// <nl>Se si da' <p -d> viene considerato quello relativo alla
// ditta corrente, che viene creato copiando il principale se non c'e'.
// <nl>Quindi si da' la lista dei paragrafi che si vuole editare; se non ne vengono
// dati sara' il modulo corrente preso dal nome dell'applicazione. Se si
@ -75,11 +75,13 @@ protected:
virtual bool postprocess_config (TMask& mask, TConfig& config);
// @cmember Simile alla <mf TApplication::change_config>, ma viene usata
// dalla maschera principale.
// dalla maschera principale.
virtual bool postprocess_config_changed (const char* par, const char* var, const char* oldv, const char* newv);
// @access Public Member
public:
// @cmember Setta il tipo di file di configurazione al quale e' associata l'applicazione
void set_config(int which) {_which_config = which;}
// @cmember Costruttore
TConfig_application(int which_config = CONFIG_GENERAL) : _which_config(which_config)
{}