Patch level : nopatch
Files correlati : Commento : Aggiunto il salvataggio dei valori di un maschera (Alt-S) e il caricamento (Alt-L)
This commit is contained in:
parent
2cd18cbacd
commit
eb0249c3c9
@ -680,7 +680,7 @@ int TMask::id2pos(
|
|||||||
TMask_field& TMask::field(short id) const
|
TMask_field& TMask::field(short id) const
|
||||||
{
|
{
|
||||||
TMask_field* f = find_by_id(id);
|
TMask_field* f = find_by_id(id);
|
||||||
if (f == NULL)
|
if (f == nullptr)
|
||||||
{
|
{
|
||||||
if (_mask_num == 0)
|
if (_mask_num == 0)
|
||||||
yesnofatal_box("Non esiste il campo %d sulla maschera %s", id, (const char*)_source_file);
|
yesnofatal_box("Non esiste il campo %d sulla maschera %s", id, (const char*)_source_file);
|
||||||
@ -1042,7 +1042,7 @@ bool TMask::on_key(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(key)
|
switch (key)
|
||||||
{
|
{
|
||||||
case K_AUTO_ENTER:
|
case K_AUTO_ENTER:
|
||||||
case K_CTRL_ENTER:
|
case K_CTRL_ENTER:
|
||||||
@ -1079,14 +1079,14 @@ bool TMask::on_key(
|
|||||||
case K_F12:
|
case K_F12:
|
||||||
send_key(K_F12, focus_field().dlg());
|
send_key(K_F12, focus_field().dlg());
|
||||||
break;
|
break;
|
||||||
case K_SHIFT+K_F11:
|
case K_SHIFT + K_F11:
|
||||||
if (is_power_station())
|
if (is_power_station())
|
||||||
{
|
{
|
||||||
_bShowGrid = !_bShowGrid;
|
_bShowGrid = !_bShowGrid;
|
||||||
xvt_dwin_invalidate_rect(curr_win(), NULL);
|
xvt_dwin_invalidate_rect(curr_win(), NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case K_CTRL+'+':
|
case K_CTRL + '+':
|
||||||
if (is_running())
|
if (is_running())
|
||||||
{
|
{
|
||||||
// Cerco nella pagina corrente il primo spreadsheet a partire dal campo col focus
|
// Cerco nella pagina corrente il primo spreadsheet a partire dal campo col focus
|
||||||
@ -1105,12 +1105,12 @@ bool TMask::on_key(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
case K_CTRL+'-':
|
case K_CTRL+'-':
|
||||||
if (is_running() && focus_field().is_sheet())
|
if (is_running() && focus_field().is_sheet())
|
||||||
send_key(key, focus_field().dlg());
|
send_key(key, focus_field().dlg());
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
if (key > K_CTRL)
|
if (key > K_CTRL)
|
||||||
{
|
{
|
||||||
@ -1118,25 +1118,46 @@ bool TMask::on_key(
|
|||||||
if (key >= K_F1 && key <= K_F12)
|
if (key >= K_F1 && key <= K_F12)
|
||||||
{
|
{
|
||||||
const int page = key - K_F1;
|
const int page = key - K_F1;
|
||||||
|
|
||||||
if (page < _pages && fld(_focus).on_key(K_TAB))
|
if (page < _pages && fld(_focus).on_key(K_TAB))
|
||||||
show_page(page);
|
show_page(page);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
if (UPCASE(key) == 'S')
|
||||||
{
|
{
|
||||||
for (int i = fields()-1; i >= 0; i--)
|
TFilename fname;
|
||||||
|
|
||||||
|
if (fname.input(false))
|
||||||
|
save(fname);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (UPCASE(key) == 'L')
|
||||||
|
{
|
||||||
|
TFilename fname;
|
||||||
|
|
||||||
|
if (fname.input())
|
||||||
|
load(fname);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = fields() - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
TMask_field& f = fld(i);
|
TMask_field& f = fld(i);
|
||||||
|
|
||||||
if (f.is_operable() && !f.is_editable() && f.active())
|
if (f.is_operable() && !f.is_editable() && f.active())
|
||||||
{
|
{
|
||||||
KEY vk = 0;
|
KEY vk = 0;
|
||||||
|
|
||||||
if (f.is_kind_of(CLASS_BUTTON_FIELD))
|
if (f.is_kind_of(CLASS_BUTTON_FIELD))
|
||||||
{
|
{
|
||||||
TButton_field& b = (TButton_field&)f;
|
TButton_field& b = (TButton_field&)f;
|
||||||
vk = b.virtual_key();
|
vk = b.virtual_key();
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
if (f.is_kind_of(CLASS_BUTTON_TOOL))
|
if (f.is_kind_of(CLASS_BUTTON_TOOL))
|
||||||
{
|
{
|
||||||
TButton_tool& t = (TButton_tool&)f;
|
TButton_tool& t = (TButton_tool&)f;
|
||||||
|
|
||||||
vk = t.virtual_key();
|
vk = t.virtual_key();
|
||||||
}
|
}
|
||||||
if (vk > 0 && vk == key)
|
if (vk > 0 && vk == key)
|
||||||
@ -1149,7 +1170,6 @@ bool TMask::on_key(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2511,11 +2531,14 @@ TButton_tool& TMask::add_button_tool(short id, const char* prompt, short bmpup)
|
|||||||
//
|
//
|
||||||
// @flag true | Se l'operazione e' avvenuta corretamente
|
// @flag true | Se l'operazione e' avvenuta corretamente
|
||||||
// @flag false | Se non si riesce a creare il file di salvataggio
|
// @flag false | Se non si riesce a creare il file di salvataggio
|
||||||
bool TMask::save(
|
bool TMask::save(const TFilename & fname, // @parm nome del file, se vuoto usa _workfile
|
||||||
bool append) const // @parm Indica se creare il file o appendere (true) le informazioni
|
bool append) const // @parm Indica se creare il file o appendere (true) le informazioni
|
||||||
// ad uno gia' esistente (false, default).
|
// ad uno gia' esistente (false, default).
|
||||||
|
|
||||||
{
|
{
|
||||||
|
if (fname.full())
|
||||||
|
((TMask *)this)->set_workfile(fname);
|
||||||
|
|
||||||
FILE* f = fopen(_workfile, append ? "a" : "w");
|
FILE* f = fopen(_workfile, append ? "a" : "w");
|
||||||
|
|
||||||
if (f == nullptr)
|
if (f == nullptr)
|
||||||
@ -2542,13 +2565,16 @@ bool TMask::save(
|
|||||||
//
|
//
|
||||||
// @flag true | Se l'operazione e' avvenuta corretamente
|
// @flag true | Se l'operazione e' avvenuta corretamente
|
||||||
// @flag false | Se non si riesce a leggere il file di salvataggio
|
// @flag false | Se non si riesce a leggere il file di salvataggio
|
||||||
bool TMask::load(
|
bool TMask::load(const TFilename & fname, // @parm nome del file, se vuoto usa _workfile
|
||||||
bool reset) // @parm Indica la posizione di lettura del file:
|
bool reset) // @parm Indica la posizione di lettura del file:
|
||||||
//
|
//
|
||||||
// @flag true | Comincia la lettura dell'inizio
|
// @flag true | Comincia la lettura dell'inizio
|
||||||
// @flag false | Comincia la lettura dalla posizione corrente dell'offset
|
// @flag false | Comincia la lettura dalla posizione corrente dell'offset
|
||||||
|
|
||||||
{
|
{
|
||||||
|
if (fname.full())
|
||||||
|
((TMask *)this)->set_workfile(fname);
|
||||||
|
|
||||||
FILE* f = fopen(_workfile, "r");
|
FILE* f = fopen(_workfile, "r");
|
||||||
|
|
||||||
if (f == nullptr)
|
if (f == nullptr)
|
||||||
|
@ -449,9 +449,9 @@ public:
|
|||||||
void set_workfile(const char* workfile)
|
void set_workfile(const char* workfile)
|
||||||
{ _workfile = workfile; _lastpos = 0L;}
|
{ _workfile = workfile; _lastpos = 0L;}
|
||||||
// @cmember Salva i valori dei campi della maschera sul file di salvataggio
|
// @cmember Salva i valori dei campi della maschera sul file di salvataggio
|
||||||
bool save(bool append = false) const;
|
bool save(const TFilename & fname = EMPTY_STRING, bool append = false) const;
|
||||||
// @cmember Legge i valori dei campi della maschera da file di salvataggio
|
// @cmember Legge i valori dei campi della maschera da file di salvataggio
|
||||||
bool load(bool reset = false);
|
bool load(const TFilename & fname = EMPTY_STRING, bool reset = false);
|
||||||
// @cmember Copia i valori dei campi dalla maschera <p m>
|
// @cmember Copia i valori dei campi dalla maschera <p m>
|
||||||
void copy_values(const TMask &m);
|
void copy_values(const TMask &m);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user