applicat.cpp ~ Messa nell heap la maschera dei prametri ditta
mask.cpp Corretta la first_focus maskfld.cpp Corretta gestione del bootone collega nelle ricerche msksheet.cpp Coreetta gestione sheet non editabili sheet.cpp MIgliorate posizioni campi editabili di ricerca git-svn-id: svn://10.65.10.50/trunk@2923 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b5cc178347
commit
b88a9be772
@ -666,14 +666,15 @@ bool TApplication::config()
|
|||||||
// di quel paragrafo specifica la maschera da usare.
|
// di quel paragrafo specifica la maschera da usare.
|
||||||
|
|
||||||
{
|
{
|
||||||
TConfig cnf(CONFIG_DITTA);
|
|
||||||
bool ok = FALSE;
|
bool ok = FALSE;
|
||||||
|
|
||||||
const TFilename maskname(cnf.get("EdMask"));
|
TConfig cnf(CONFIG_DITTA);
|
||||||
|
const TFilename maskname = cnf.get("EdMask");
|
||||||
if (maskname.empty())
|
if (maskname.empty())
|
||||||
return warning_box("Nessun parametro da configurare");
|
return warning_box("Nessun parametro da configurare");
|
||||||
|
|
||||||
TMask m(maskname);
|
TMask* msk = new TMask(maskname); // Evito problemi di stack
|
||||||
|
TMask& m = *msk;
|
||||||
|
|
||||||
// carica campi
|
// carica campi
|
||||||
for (int i = 0; i < m.fields(); i++)
|
for (int i = 0; i < m.fields(); i++)
|
||||||
@ -711,6 +712,7 @@ bool TApplication::config()
|
|||||||
ok = TRUE;
|
ok = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete msk;
|
||||||
enable_menu_item(M_FILE_REVERT);
|
enable_menu_item(M_FILE_REVERT);
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -212,10 +212,18 @@ int TMask::first_focus(short id)
|
|||||||
f = tempfirstfocus;
|
f = tempfirstfocus;
|
||||||
if (fld(f).dirty() == FALSE)
|
if (fld(f).dirty() == FALSE)
|
||||||
fld(f).set_dirty();
|
fld(f).set_dirty();
|
||||||
}
|
|
||||||
tempfirstfocus = -1;
|
tempfirstfocus = -1;
|
||||||
if (f < 0)
|
}
|
||||||
f = _first_focus = find_first_active(_pagewin[0]);
|
else
|
||||||
|
{
|
||||||
|
if (f < 0 || !fld(f).active())
|
||||||
|
{
|
||||||
|
f = find_first_active(_pagewin[0]);
|
||||||
|
if (f < 0 && toolwin())
|
||||||
|
f = find_first_active(toolwin());
|
||||||
|
_first_focus = f;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -228,6 +236,7 @@ int TMask::first_focus(short id)
|
|||||||
tempfirstfocus = id2pos(-id);
|
tempfirstfocus = id2pos(-id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CHECKD(f >= 0 && f < fields() && fld(f).active(), "Invalid focus field ", f);
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2202,7 +2202,6 @@ KEY TBrowse::run()
|
|||||||
buttons = 0;
|
buttons = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_cursor->items() == 0 && buttons == 3) buttons = 2; // Toglie il bottone collega se non ci sono elementi
|
|
||||||
}
|
}
|
||||||
for (const char* i = _inp_id.get(0); i; i = _inp_id.get())
|
for (const char* i = _inp_id.get(0); i; i = _inp_id.get())
|
||||||
{
|
{
|
||||||
|
@ -120,7 +120,7 @@ public:
|
|||||||
// @cmember Modifica a video la riga
|
// @cmember Modifica a video la riga
|
||||||
void update(int row);
|
void update(int row);
|
||||||
// @cmember Ritorna la disabilitazione della colonna <p col>
|
// @cmember Ritorna la disabilitazione della colonna <p col>
|
||||||
bool column_disabled(int col) { return _column_disabled[col]; }
|
bool column_disabled(int col) const { return _column_disabled[col]; }
|
||||||
|
|
||||||
// @cmember Ritorna il contenuto della riga <p n>-esima
|
// @cmember Ritorna il contenuto della riga <p n>-esima
|
||||||
TToken_string& row(int n)
|
TToken_string& row(int n)
|
||||||
@ -1503,7 +1503,7 @@ KEY TSpreadsheet::edit(int n)
|
|||||||
str2mask(n);
|
str2mask(n);
|
||||||
KEY k = owner().run_editmask(n);
|
KEY k = owner().run_editmask(n);
|
||||||
|
|
||||||
if (active)
|
if (active())
|
||||||
{
|
{
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
@ -1876,7 +1876,7 @@ void TSheet_field::mask2row(int n, TToken_string & rec)
|
|||||||
const TMask& m = TSheet_field::sheet_mask();
|
const TMask& m = TSheet_field::sheet_mask();
|
||||||
|
|
||||||
rec.cut(0);
|
rec.cut(0);
|
||||||
TSpreadsheet* s = (TSpreadsheet*)_ctl;
|
const TSpreadsheet& s = (const TSpreadsheet&)*_ctl;
|
||||||
|
|
||||||
for (short id = FIRST_FIELD; ; id++)
|
for (short id = FIRST_FIELD; ; id++)
|
||||||
{
|
{
|
||||||
@ -1889,11 +1889,11 @@ void TSheet_field::mask2row(int n, TToken_string & rec)
|
|||||||
if (f.shown() || f.ghost())
|
if (f.shown() || f.ghost())
|
||||||
{
|
{
|
||||||
rec.add(f.get());
|
rec.add(f.get());
|
||||||
if (active())
|
if (s.active())
|
||||||
{
|
{
|
||||||
const int col = id-FIRST_FIELD;
|
const int col = id-FIRST_FIELD;
|
||||||
|
|
||||||
if (!s->column_disabled(col))
|
if (!s.column_disabled(col))
|
||||||
{
|
{
|
||||||
const bool on = f.enabled();
|
const bool on = f.enabled();
|
||||||
enable_cell(n, col, on);
|
enable_cell(n, col, on);
|
||||||
@ -1905,7 +1905,7 @@ void TSheet_field::mask2row(int n, TToken_string & rec)
|
|||||||
if (pos < 0)
|
if (pos < 0)
|
||||||
{
|
{
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
if (s->cid2col(id) > 0)
|
if (s.cid2col(id) > 0)
|
||||||
yesnofatal_box("Mask2str: Non e' visibile il campo %d", dlg);
|
yesnofatal_box("Mask2str: Non e' visibile il campo %d", dlg);
|
||||||
#endif
|
#endif
|
||||||
rec.add(" ");
|
rec.add(" ");
|
||||||
@ -1921,6 +1921,7 @@ void TSheet_field::row2mask(int n, TToken_string & r)
|
|||||||
|
|
||||||
TMask& m = TSheet_field::sheet_mask();
|
TMask& m = TSheet_field::sheet_mask();
|
||||||
const int campi = m.fields();
|
const int campi = m.fields();
|
||||||
|
const TSpreadsheet& s = (const TSpreadsheet&)*_ctl;
|
||||||
|
|
||||||
for (int i = 0; i < campi; i++)
|
for (int i = 0; i < campi; i++)
|
||||||
{
|
{
|
||||||
@ -1931,7 +1932,7 @@ void TSheet_field::row2mask(int n, TToken_string & r)
|
|||||||
const int index = (id % 100)-1;
|
const int index = (id % 100)-1;
|
||||||
val = r.get(index);
|
val = r.get(index);
|
||||||
f.set(val);
|
f.set(val);
|
||||||
const bool on = active() && !cell_disabled(n, index);
|
const bool on = s.active() && !cell_disabled(n, index);
|
||||||
if (f.enabled() != on)
|
if (f.enabled() != on)
|
||||||
f.enable(on);
|
f.enable(on);
|
||||||
}
|
}
|
||||||
|
@ -330,7 +330,7 @@ void TSheet_control::make_current(long rec)
|
|||||||
xi_cell_request(&o);
|
xi_cell_request(&o);
|
||||||
}
|
}
|
||||||
const int newrow = rec2row(rec);
|
const int newrow = rec2row(rec);
|
||||||
if (newrow != oldrow && newrow >= 0)
|
if (newrow >= 0 && newrow != oldrow)
|
||||||
{
|
{
|
||||||
XI_MAKE_ROW(&o, _obj, newrow);
|
XI_MAKE_ROW(&o, _obj, newrow);
|
||||||
xi_cell_request(&o);
|
xi_cell_request(&o);
|
||||||
@ -741,10 +741,16 @@ void TSheet::repos_buttons() const
|
|||||||
|
|
||||||
void TSheet::start_run()
|
void TSheet::start_run()
|
||||||
{
|
{
|
||||||
|
const bool on = items() > 0 && _sheet->one_enabled();
|
||||||
|
|
||||||
// Abilita selezione se c'e' almeno un elemento
|
// Abilita selezione se c'e' almeno un elemento
|
||||||
const int pos = id2pos(DLG_SELECT);
|
int pos = id2pos(DLG_SELECT);
|
||||||
if (pos >= 0)
|
if (pos >= 0)
|
||||||
fld(pos).enable(items() > 0 && _sheet->one_enabled());
|
fld(pos).enable(on);
|
||||||
|
|
||||||
|
pos = id2pos(DLG_LINK);
|
||||||
|
if (pos >= 0)
|
||||||
|
fld(pos).enable(on);
|
||||||
|
|
||||||
_parked = -1;
|
_parked = -1;
|
||||||
|
|
||||||
@ -1057,7 +1063,7 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
|
|||||||
TString80 p = c.prompt();
|
TString80 p = c.prompt();
|
||||||
// Toglie spazi e simboli iniziali dal prompt
|
// Toglie spazi e simboli iniziali dal prompt
|
||||||
for (int a = 0; p[a] && !isalnum(p[a]); a++);
|
for (int a = 0; p[a] && !isalnum(p[a]); a++);
|
||||||
p.ltrim(a); p.left_just(20);
|
p.ltrim(a); p.left_just(16);
|
||||||
switch (c.class_id())
|
switch (c.class_id())
|
||||||
{
|
{
|
||||||
case CLASS_EDIT_FIELD:
|
case CLASS_EDIT_FIELD:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user