Patch level : 10.0
Files correlati : ba0 ba1 Ricompilazione Demo : [ ] Commento : Corretta gestione menu e barre in programmi manutenzione git-svn-id: svn://10.65.10.50/trunk@16743 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1cf7fdd905
commit
c6b1ca245f
@ -490,13 +490,14 @@ TColor_mask::TColor_mask()
|
||||
set(215, ADVANCED_GRAPHICS ? "X" : "");
|
||||
set(216, color.get_int("TreeView"));
|
||||
|
||||
_preview = new TPreview_panel(1, 5, 33, 7, this);
|
||||
_preview = new TPreview_panel(1, 5, 33, 8, this);
|
||||
_icons = new TPreview_icons(1, 10, -2, -2, this);
|
||||
|
||||
const int sz = color.get_int("ToolSize");
|
||||
set(217, (sz-16)/8);
|
||||
|
||||
set(218, EASY_RIDER ? "X" : "");
|
||||
set(219, TOOL_TEXT ? "X" : "");
|
||||
}
|
||||
|
||||
KEY TColor_mask::run()
|
||||
@ -519,6 +520,7 @@ void TColor_mask::save_colors()
|
||||
const int sz = get_int(217);
|
||||
colors.set("ToolSize", 16+sz*8);
|
||||
colors.set("EasyRider", get_bool(218) ? "X" : "");
|
||||
colors.set("ToolText", get_bool(219) ? "X" : "");
|
||||
}
|
||||
|
||||
COLOR TColor_mask::get_color_entry(const char* name) const
|
||||
@ -576,22 +578,19 @@ COLOR TColor_mask::cid2color(short cid) const
|
||||
|
||||
COLOR TColor_mask::cid2syscolor(short cid, const XVT_COLOR_COMPONENT* cc) const
|
||||
{
|
||||
int entry[] = { XVT_COLOR_TROUGH, XVT_COLOR_BLEND, XVT_COLOR_BORDER,
|
||||
int entry[] = { XVT_COLOR_BACKGROUND /*XVT_COLOR_TROUGH*/, XVT_COLOR_BLEND, XVT_COLOR_BORDER,
|
||||
XVT_COLOR_FOREGROUND, XVT_COLOR_BACKGROUND, XVT_COLOR_BACKGROUND,
|
||||
XVT_COLOR_HIGHLIGHT, XVT_COLOR_SELECT,
|
||||
XVT_COLOR_BLEND, XVT_COLOR_BORDER,
|
||||
XVT_COLOR_BACKGROUND, XVT_COLOR_BLEND, XVT_COLOR_BORDER };
|
||||
const unsigned int component = entry[cid-101];
|
||||
for (int i = 0; cc[i].type != XVT_COLOR_NULL; i++)
|
||||
for (int i = 0; cc[i].type != XVT_COLOR_NULL; i++) if (cc[i].type == component)
|
||||
{
|
||||
if (cc[i].type == component)
|
||||
switch (cid)
|
||||
{
|
||||
switch (cid)
|
||||
{
|
||||
case 105: return COLOR_WHITE;
|
||||
case 106: return blend_colors(cid2syscolor(105, cc), cid2syscolor(108, cc), 0.60);
|
||||
default : return cc[i].color;
|
||||
}
|
||||
case 105: return COLOR_WHITE;
|
||||
case 106: return blend_colors(cid2syscolor(105, cc), cid2syscolor(108, cc), 0.60);
|
||||
default : return cc[i].color;
|
||||
}
|
||||
}
|
||||
return COLOR_BLACK;
|
||||
|
@ -195,9 +195,7 @@ bool TMenuitem::create(const char* t)
|
||||
}
|
||||
|
||||
int TMenuitem::icon() const
|
||||
{
|
||||
return _icon;
|
||||
}
|
||||
{ return _icon; }
|
||||
|
||||
bool TMenuitem::enabled() const
|
||||
{
|
||||
|
@ -1216,15 +1216,15 @@ bool TExplorer_mask::on_key(KEY k)
|
||||
|
||||
TExplorer_mask::TExplorer_mask(TMenu& menu) : _tree(menu)
|
||||
{
|
||||
add_button_tool(DLG_SHRINK, TR("Menu Principale"), TOOL_FIRSTREC);
|
||||
add_button_tool(DLG_FINDREC, TR("Ricerca"), TOOL_LENTE);
|
||||
add_button_tool(TOOL_CONFIG, TR("Opzioni"), TOOL_CONFIG);
|
||||
add_button_tool(DLG_SETPRINT, TR(""), TOOL_SETPRINT);
|
||||
add_button_tool(TOOL_PREF, TR("Preferiti"), TOOL_PREF);
|
||||
add_button_tool(TOOL_ADDPREF, TR("Aggiungi ai Preferiti"), TOOL_ADDPREF);
|
||||
add_button_tool(DLG_INFO, TR("Info"), TOOL_INFO);
|
||||
add_button_tool(DLG_HELP, TR("Help"), TOOL_HELP);
|
||||
add_button_tool(DLG_QUIT, TR(""), TOOL_QUIT);
|
||||
add_button_tool(DLG_SHRINK, TR("Menu Iniziale"), TOOL_FIRSTREC);
|
||||
add_button_tool(DLG_FINDREC, TR("Ricerca"), TOOL_LENTE);
|
||||
add_button_tool(TOOL_CONFIG, TR("Opzioni"), TOOL_CONFIG);
|
||||
add_button_tool(DLG_SETPRINT, TR("Imposta"), TOOL_SETPRINT);
|
||||
add_button_tool(TOOL_PREF, TR("Preferiti"), TOOL_PREF);
|
||||
add_button_tool(TOOL_ADDPREF, TR("Aggiungi"), TOOL_ADDPREF);
|
||||
add_button_tool(DLG_INFO, TR("Info"), TOOL_INFO);
|
||||
add_button_tool(DLG_HELP, TR("Help"), TOOL_HELP);
|
||||
add_button_tool(DLG_QUIT, TR(""), TOOL_QUIT);
|
||||
|
||||
WINDOW panel = page_win(0);
|
||||
|
||||
|
@ -37,8 +37,9 @@ protected:
|
||||
|
||||
public:
|
||||
WINDOW notebook() const { return _ctrl; }
|
||||
WINDOW page_win(short pg);
|
||||
short add_page(const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption, int icon);
|
||||
bool remove_page(WINDOW page);
|
||||
|
||||
TBook_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field* owner);
|
||||
@ -97,7 +98,7 @@ void TBook_window::update()
|
||||
{
|
||||
clear(COLOR_WHITE);
|
||||
RCT rctw; xvt_vobj_get_client_rect(win(), &rctw);
|
||||
if (rctw.right >= 32)
|
||||
if (rctw.right >= 64 && rctw.bottom >= 64)
|
||||
{
|
||||
if (_logo.ok())
|
||||
{
|
||||
@ -156,6 +157,14 @@ void TBook_window::handler(WINDOW win, EVENT* ep)
|
||||
TControl_host_window::handler(win, ep);
|
||||
}
|
||||
|
||||
WINDOW TBook_window::page_win(short pg)
|
||||
{
|
||||
WINDOW win = NULL_WIN;
|
||||
if (_ctrl != NULL_WIN)
|
||||
win = xvt_notebk_get_page(_ctrl, pg);
|
||||
return win;
|
||||
}
|
||||
|
||||
short TBook_window::add_page(const TString& caption)
|
||||
{
|
||||
if (_ctrl == NULL_WIN)
|
||||
@ -163,7 +172,7 @@ short TBook_window::add_page(const TString& caption)
|
||||
WIN_DEF wd; memset(&wd, 0, sizeof(wd));
|
||||
wd.wtype = WC_NOTEBK;
|
||||
wd.v.ctl.ctrl_id = DLG_MAIN;
|
||||
wd.v.ctl.flags = CTL_FLAG_RIGHT_JUST;
|
||||
wd.v.ctl.flags = CTL_FLAG_CENTER_JUST; // i.e. bottom!
|
||||
xvt_vobj_get_client_rect(win(), &wd.rct);
|
||||
_ctrl = xvt_ctl_create_def(&wd, win(), 0L);
|
||||
}
|
||||
@ -188,10 +197,14 @@ short TBook_window::add_page(const TString& caption)
|
||||
return pg;
|
||||
}
|
||||
|
||||
void TBook_window::set_page_caption(short page, const TString& caption)
|
||||
void TBook_window::set_page_caption(short page, const TString& caption, int icon)
|
||||
{
|
||||
xvt_notebk_set_tab_title(_ctrl, page, caption); // Titolo dell'orecchio
|
||||
xvt_notebk_set_page_title(_ctrl, page, caption); // Titolo della finestra
|
||||
if (_ctrl != NULL_WIN && page >= 0)
|
||||
{
|
||||
xvt_notebk_set_tab_title(_ctrl, page, caption); // Titolo dell'orecchio
|
||||
xvt_notebk_set_tab_icon(_ctrl, page, icon); // Icona dell'orecchio
|
||||
xvt_notebk_set_page_title(_ctrl, page, caption); // Titolo della finestra
|
||||
}
|
||||
}
|
||||
|
||||
bool TBook_window::remove_page(WINDOW page)
|
||||
@ -258,7 +271,8 @@ public:
|
||||
virtual void create(short dlg, int x, int y, int dx, int dy, WINDOW parent);
|
||||
|
||||
short add_page(const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption, int icon);
|
||||
WINDOW page_win(short page);
|
||||
void remove_all_pages();
|
||||
TBook_field(TMask* m) : TWindowed_field(m) {}
|
||||
};
|
||||
@ -269,10 +283,16 @@ short TBook_field::add_page(const TString& caption)
|
||||
return bw.add_page(caption);
|
||||
}
|
||||
|
||||
void TBook_field::set_page_caption(short page, const TString& caption)
|
||||
void TBook_field::set_page_caption(short page, const TString& caption, int icon)
|
||||
{
|
||||
TBook_window& bw = (TBook_window&)win();
|
||||
bw.set_page_caption(page, caption);
|
||||
bw.set_page_caption(page, caption, icon);
|
||||
}
|
||||
|
||||
WINDOW TBook_field::page_win(short page)
|
||||
{
|
||||
TBook_window& bw = (TBook_window&)win();
|
||||
return bw.page_win(page);
|
||||
}
|
||||
|
||||
void TBook_field::remove_all_pages()
|
||||
@ -302,10 +322,10 @@ short TOutlook_mask::add_page(const TString& caption)
|
||||
return bf.add_page(caption);
|
||||
}
|
||||
|
||||
void TOutlook_mask::set_page_caption(short page, const TString& caption)
|
||||
void TOutlook_mask::set_page_caption(short page, const TString& caption, int icon)
|
||||
{
|
||||
TBook_field& bf = (TBook_field&)field(DLG_MAIN);
|
||||
bf.set_page_caption(page, caption);
|
||||
bf.set_page_caption(page, caption, icon);
|
||||
}
|
||||
|
||||
bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
@ -325,11 +345,11 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
}
|
||||
else
|
||||
{
|
||||
TBook_field& bf = (TBook_field&)field(DLG_MAIN);
|
||||
// ba1 e ba2 sono programmi di manutenzione da eseguire in modo esclusivo
|
||||
const bool manu = mi.run_modal();
|
||||
if (manu)
|
||||
{
|
||||
TBook_field& bf = (TBook_field&)field(DLG_MAIN);
|
||||
bf.remove_all_pages(); // Chiude tutti i programmi in corso
|
||||
mi.perform(); // Esegui in sincrono e a tutto schermo
|
||||
if (installing()) // when ba1 -6
|
||||
@ -342,8 +362,24 @@ bool TOutlook_mask::on_field_event(TOperable_field& o, TField_event e, long joll
|
||||
if (pg >= 0)
|
||||
{
|
||||
mi.perform(); // Esegui in asincrono in pagina nuova
|
||||
xvt_sys_sleep(1000);
|
||||
set_page_caption(pg, mi.caption());
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
xvt_sys_sleep(500);
|
||||
if (xvt_win_get_children_count(bf.page_win(pg)) != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
int ico = mi.icon();
|
||||
if (ico <= 0 || ico == ICON_RSRC)
|
||||
{
|
||||
const int area = get_int(DLG_LOOK);
|
||||
if (area >= 0 && area < 16)
|
||||
ico = _icon[area];
|
||||
else
|
||||
ico = ICON_RSRC;
|
||||
set_page_caption(pg, mi.caption(), ico);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -379,7 +415,7 @@ TOutlook_mask::TOutlook_mask(TMenu& menu) : _tree(menu)
|
||||
|
||||
menu.set_mask_mode(3); // Outlook mode
|
||||
|
||||
const int w = 28;
|
||||
const int w = 24;
|
||||
const int h = rows() / 2;
|
||||
|
||||
TTree_field& trifola = add_tree(DLG_TREE, 0, 0, 0, w, h);
|
||||
@ -394,12 +430,14 @@ TOutlook_mask::TOutlook_mask(TMenu& menu) : _tree(menu)
|
||||
add_field(cf);
|
||||
|
||||
TString caption;
|
||||
int i = 0;
|
||||
for (bool ok = _tree.goto_root(); ok; ok = _tree.goto_rbrother())
|
||||
{
|
||||
_tree.get_description(caption);
|
||||
const TMenuitem& mi = _tree.curr_item();
|
||||
const int ico = mi.enabled() ? mi.icon() : 10203;
|
||||
of->add_item(ico, caption, 0);
|
||||
_icon[i++] = ico; // Memorizza icona per orecchie
|
||||
}
|
||||
|
||||
xvt_pane_add(panel, dlg2win(DLG_TREE), "Menu", 1, 0); // Left upper pane
|
||||
|
@ -16,11 +16,12 @@
|
||||
class TOutlook_mask : public TSpidey_mask
|
||||
{
|
||||
TMenu_tree _tree;
|
||||
int _icon[16];
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
short add_page(const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption);
|
||||
void set_page_caption(short page, const TString& caption, int icon);
|
||||
|
||||
public:
|
||||
TOutlook_mask(TMenu& menu);
|
||||
|
@ -1,4 +1,4 @@
|
||||
PAGE "Colori" -1 -1 54 17
|
||||
PAGE "Colori" -1 -1 54 19
|
||||
|
||||
GROUPBOX DLG_NULL 16 5
|
||||
BEGIN
|
||||
@ -92,17 +92,17 @@ END
|
||||
|
||||
GROUPBOX DLG_NULL 32 3
|
||||
BEGIN
|
||||
PROMPT 1 12 "@bTemi predefiniti"
|
||||
PROMPT 1 14 "@bTemi predefiniti"
|
||||
END
|
||||
|
||||
BUTTON 211 12
|
||||
BEGIN
|
||||
PROMPT 2 13 "Campo"
|
||||
PROMPT 2 15 "Campo"
|
||||
END
|
||||
|
||||
BUTTON 212 12
|
||||
BEGIN
|
||||
PROMPT 18 13 "Sistema"
|
||||
PROMPT 18 15 "Sistema"
|
||||
END
|
||||
|
||||
BUTTON DLG_USER 12 2
|
||||
@ -144,6 +144,11 @@ BEGIN
|
||||
PROMPT 1 4 "Griglie a lettura facilitata"
|
||||
END
|
||||
|
||||
BOOLEAN 219
|
||||
BEGIN
|
||||
PROMPT 1 5 "Visualizza il testo negli strumenti della barra"
|
||||
END
|
||||
|
||||
RADIOBUTTON 216 1 16
|
||||
BEGIN
|
||||
PROMPT 32 0 "Tipo di Menu"
|
||||
|
@ -913,9 +913,9 @@ void TManutenzione_app::update_dir()
|
||||
n.ext("cdx"); remove(n);
|
||||
n.ext("fpt"); remove(n);
|
||||
|
||||
TString s(_MAX_PATH);
|
||||
s.format(FR("File n. %d - %s : eliminato file non utilizzato"), i, (const char *)d.filename());
|
||||
write_log(s);
|
||||
TString msg(_MAX_PATH);
|
||||
msg.format(FR("File n. %d - %s : eliminato file non utilizzato"), i, (const char *)d.filename());
|
||||
write_log(msg);
|
||||
}
|
||||
}
|
||||
if (i > 2 && is_firm == old_is_firm)
|
||||
@ -950,9 +950,9 @@ void TManutenzione_app::update_dir()
|
||||
{
|
||||
if (!recover(b, err))
|
||||
{
|
||||
TString s(_MAX_PATH);
|
||||
s.format(TR("File n. %d - %s : errore n.ro %d"), i, (const char *)d.filename(), err);
|
||||
write_log(s);
|
||||
TString msg(_MAX_PATH);
|
||||
msg.format(TR("File n. %d - %s : errore n.ro %d"), i, (const char *)d.filename(), err);
|
||||
write_log(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1189,10 +1189,10 @@ void TManutenzione_app::convert_dir()
|
||||
if (to_create && has_module(module, CHK_DONGLE))
|
||||
{
|
||||
TDir df; df.get(i);
|
||||
const TFilename s(df.filename());
|
||||
const TFilename fname(df.filename());
|
||||
|
||||
//crea il nuovo file in base al tracciato record nuovo!
|
||||
if (!s.exist() && ds.len() > 0)
|
||||
if (!fname.exist() && ds.len() > 0)
|
||||
{
|
||||
set_autoload_new_files(false);
|
||||
f.build(0L,rs);
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
TMask* TRec_sheet::_mask = NULL;
|
||||
|
||||
void TDir_sheet::add ()
|
||||
void TDir_sheet::add()
|
||||
{
|
||||
_dir->get(LF_DIR, _lock, _nordir, _sysdirop);
|
||||
const int nitems = (int)_dir->eod() + 1;
|
||||
@ -30,7 +30,7 @@ void TDir_sheet::add ()
|
||||
TDir_sheet::TDir_sheet(const char* title, bool superprassi, const char* colonne)
|
||||
: TSheet(0, 0, 0, 0, title, colonne, superprassi ? 0xC : 0x8)
|
||||
{
|
||||
add_button(DLG_PRINT, TR("Stampa Tracciati"), K_F3, BMP_PRINT);
|
||||
add_button(DLG_PRINT, TR("Tracciati"), K_F3, BMP_PRINT);
|
||||
add_button(-1, "", 0, 1); // Separatore
|
||||
|
||||
if (superprassi)
|
||||
@ -42,7 +42,7 @@ TDir_sheet::TDir_sheet(const char* title, bool superprassi, const char* colonne)
|
||||
add_button(-1, "", 0, 1); // Separatore
|
||||
}
|
||||
|
||||
add_button(DLG_INFO, TR("Informazioni"), K_F2, BMP_INFO);
|
||||
add_button(DLG_INFO, TR("Info"), K_F2, BMP_INFO);
|
||||
add_button(DLG_HELP, TR("Help"), K_F1, BMP_HELP);
|
||||
xvt_toolbar_set_last_tool(toolbar(), DLG_QUIT);
|
||||
|
||||
@ -73,7 +73,7 @@ void TDir_sheet::get_row(long n, TToken_string& l)
|
||||
|
||||
|
||||
TRec_sheet::TRec_sheet(int logicnum, const char * tab)
|
||||
: _descr(NULL), _tab(tab)
|
||||
: _descr(NULL), _tab(tab)
|
||||
{
|
||||
_external = FALSE;
|
||||
_dir = new TDir;
|
||||
@ -107,8 +107,7 @@ TRec_sheet::TRec_sheet(int logicnum, const char * tab)
|
||||
}
|
||||
|
||||
TRec_sheet::TRec_sheet(TExternisamfile* file)
|
||||
: _descr(NULL), _tab("")
|
||||
|
||||
: _descr(NULL), _tab("")
|
||||
{
|
||||
_external = TRUE;
|
||||
_dir = new TDir;
|
||||
@ -173,7 +172,6 @@ HIDDEN bool len_handler(TMask_field& f, KEY key)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool TRec_sheet::fld_notify(TSheet_field& f, int r, KEY k)
|
||||
{
|
||||
if (k == K_CTRL + K_INS)
|
||||
@ -244,9 +242,7 @@ void TRec_sheet::save()
|
||||
out << *_dir;
|
||||
}
|
||||
|
||||
|
||||
void TRec_sheet::edit()
|
||||
|
||||
{
|
||||
bool import_dirty = FALSE;
|
||||
TSheet_field& f1 = (TSheet_field&) _mask->field(F_FIELDS);
|
||||
@ -395,9 +391,7 @@ void TRec_sheet::edit()
|
||||
fcopy(_descfname,"des.xxx"); // salva il vecchio file di descrizioni
|
||||
f1.destroy(-1);
|
||||
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nfields; i++)
|
||||
for (int i = 0; i < nfields; i++)
|
||||
{
|
||||
f1.row(i) = _rec->fielddef(i);
|
||||
if (_descr)
|
||||
@ -425,7 +419,8 @@ void TRec_sheet::edit()
|
||||
}
|
||||
nkeys = _rec->keys();
|
||||
f2.reset();
|
||||
for (i = 0; i < nkeys; i++) f2.row(i) = _rec->keydef(i);
|
||||
for (int i = 0; i < nkeys; i++)
|
||||
f2.row(i) = _rec->keydef(i);
|
||||
f2.disable_cell(0, 1);
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ static int fill_fields(int logicnum, TString_array& flds, bool keys_only = false
|
||||
return flds.items();
|
||||
}
|
||||
|
||||
bool TEdit_file::browse_cursor(TCursor& cursor, const TFilename& name)
|
||||
bool TEdit_file::browse_cursor(TCursor& cursor, const TFilename& fname)
|
||||
{
|
||||
TRectype& curr = cursor.curr();
|
||||
TRectype svrec(cursor.curr());
|
||||
@ -94,7 +94,7 @@ bool TEdit_file::browse_cursor(TCursor& cursor, const TFilename& name)
|
||||
|
||||
const bool superprassi = user() == ::dongle().administrator();
|
||||
|
||||
TCursor_sheet sheet(&cursor, trac, name, head, superprassi ? 6 : 0);
|
||||
TCursor_sheet sheet(&cursor, trac, fname, head, superprassi ? 6 : 0);
|
||||
KEY ch;
|
||||
while ((ch = sheet.run()) != K_ESC)
|
||||
{
|
||||
@ -290,10 +290,10 @@ void TEdit_file::edit_record(TRectype& rec)
|
||||
{
|
||||
const TRectype svrec(rec); // Salva record originale
|
||||
const TString svkey = svrec.key(1);
|
||||
FOR_EACH_ARRAY_ROW(flds, i, row)
|
||||
FOR_EACH_ARRAY_ROW(flds, j, frow)
|
||||
{
|
||||
const char* cp = row->get(0);
|
||||
rec.put(cp, m.get(100+i));
|
||||
const char* cp = frow->get(0);
|
||||
rec.put(cp, m.get(100+j));
|
||||
}
|
||||
if (svkey != rec.key(1))
|
||||
{
|
||||
|
@ -37,6 +37,13 @@ TProfiler_mask::TProfiler_mask() : TMask(TR("Test"), 1, 60, 12)
|
||||
|
||||
class TTest_application : public TSkeleton_application
|
||||
{
|
||||
TProgind* _pi;
|
||||
|
||||
clock_t start_timer() const;
|
||||
|
||||
clock_t start_progind(const long items, const char* prompt);
|
||||
clock_t stop_progind();
|
||||
|
||||
protected:
|
||||
bool test1(TLog_report& log);
|
||||
bool test2(TLog_report& log);
|
||||
@ -44,10 +51,12 @@ protected:
|
||||
bool test4(TLog_report& log);
|
||||
bool test5(TLog_report& log);
|
||||
|
||||
clock_t start_timer() const;
|
||||
|
||||
public:
|
||||
bool test(int n, TLog_report& log);
|
||||
virtual void main_loop();
|
||||
|
||||
TTest_application() : _pi(NULL) { }
|
||||
};
|
||||
|
||||
clock_t TTest_application::start_timer() const
|
||||
@ -58,35 +67,52 @@ clock_t TTest_application::start_timer() const
|
||||
return t;
|
||||
}
|
||||
|
||||
clock_t TTest_application::start_progind(const long items, const char* prompt)
|
||||
{
|
||||
CHECK(_pi == NULL, "Double progress indicator");
|
||||
_pi = new TProgind(items, prompt, true, true);
|
||||
return start_timer();
|
||||
}
|
||||
|
||||
clock_t TTest_application::stop_progind()
|
||||
{
|
||||
clock_t t = clock();
|
||||
if (_pi != NULL)
|
||||
{
|
||||
delete _pi;
|
||||
_pi = NULL;
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
|
||||
bool TTest_application::test1(TLog_report& log)
|
||||
{
|
||||
bool ok = true;
|
||||
TLocalisamfile tab(LF_COMUNI);
|
||||
|
||||
clock_t start;
|
||||
TRecnotype r = 0;
|
||||
TString80 msg;
|
||||
{
|
||||
const int times = 10;
|
||||
TProgind p(times, TR("Lettura file comuni"), TRUE, TRUE);
|
||||
start = start_timer();
|
||||
for (int i = 0; i < times; i++)
|
||||
{
|
||||
for (tab.first(); tab.good(); tab.next())
|
||||
r++;
|
||||
|
||||
const int times = 10;
|
||||
const clock_t start = start_progind(times, TR("Lettura file comuni"));
|
||||
for (int i = 0; i < times; i++)
|
||||
{
|
||||
for (tab.first(); tab.good(); tab.next())
|
||||
r++;
|
||||
|
||||
msg.format("%ld records %ld msec", r, clock() - start);
|
||||
|
||||
p.set_text(msg);
|
||||
if (!p.addstatus(1))
|
||||
{
|
||||
log.log(1, TR("Interrotto dall'utente"));
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
msg.format("%ld records %ld msec", r, clock() - start);
|
||||
|
||||
_pi->set_text(msg);
|
||||
if (!_pi->addstatus(1))
|
||||
{
|
||||
log.log(1, TR("Interrotto dall'utente"));
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
const clock_t t = clock() - start;
|
||||
}
|
||||
|
||||
const clock_t t = stop_progind() - start;
|
||||
msg.format("Lettura file comuni - "
|
||||
"%ld records in %ld msec - %lg records per sec", r, t, 1000.0*r/t);
|
||||
log.log(0, msg);
|
||||
@ -216,27 +242,27 @@ bool TTest_application::test5(TLog_report& log)
|
||||
{
|
||||
bool ok = true;
|
||||
TString msg;
|
||||
TRecnotype n = 100;
|
||||
TRecnotype n = 200;
|
||||
|
||||
if (n > 0)
|
||||
{
|
||||
TTable tab("CZZ");
|
||||
msg.format("Creazione di %ld records", n);
|
||||
TProgind p(n, msg, true, true);
|
||||
clock_t start = start_timer();
|
||||
for (int i = 1; i <= n; i++)
|
||||
const clock_t start = start_progind(n, msg);
|
||||
int i;
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
if ((i % 10) == 0 && !p.setstatus(i))
|
||||
tab.put("CODTAB", i+1);
|
||||
tab.write();
|
||||
if (!_pi->addstatus(1))
|
||||
{
|
||||
log.log(1, TR("Interrotto dall'utente"));
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
tab.put("CODTAB", i);
|
||||
tab.write();
|
||||
}
|
||||
const clock_t t = clock() - start;
|
||||
msg.format("Scritti %ld records in %ld msec - %lg records per sec", n, t, 1000.0*n/t);
|
||||
const clock_t t = stop_progind() - start;
|
||||
msg.format("Scritti %ld records in %ld msec - %lg records per sec", i, t, 1000.0*i/t);
|
||||
log.log(0, msg);
|
||||
}
|
||||
|
||||
@ -248,20 +274,18 @@ bool TTest_application::test5(TLog_report& log)
|
||||
cur.freeze();
|
||||
|
||||
msg.format("Cancellazione %ld records", n);
|
||||
TProgind p(n, msg, true, true);
|
||||
clock_t start = start_timer();
|
||||
const clock_t start = start_progind(n, msg);
|
||||
for (cur = 0; cur.pos() < n; ++cur)
|
||||
{
|
||||
const int i = cur.pos()+1;
|
||||
if ((i % 10) == 0 && !p.setstatus(i))
|
||||
cur.file().remove();
|
||||
if (!_pi->addstatus(1))
|
||||
{
|
||||
log.log(1, TR("Interrotto dall'utente"));
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
cur.file().remove();
|
||||
}
|
||||
const clock_t t = clock() - start;
|
||||
const clock_t t = stop_progind() - start;
|
||||
msg.format("Cancellati %ld records in %ld msec - %lg records per sec", n, t, 1000.0*n/t);
|
||||
log.log(0, msg);
|
||||
}
|
||||
|
@ -315,51 +315,57 @@ void TMenu::import(const char* filename, TString& first)
|
||||
if (first.empty())
|
||||
first = line;
|
||||
sub = &get_submenu(line);
|
||||
} else
|
||||
if (line.starts_with("Caption", true))
|
||||
{
|
||||
CHECK(sub, "Invalid menu file");
|
||||
const int equal = line.find('=');
|
||||
CHECK(equal > 0, "Invalid menu Caption");
|
||||
line.ltrim(equal+1);
|
||||
line.strip("\"");
|
||||
*sub = line;
|
||||
} else
|
||||
if (line.starts_with("Module", true))
|
||||
{
|
||||
CHECK(sub, "Invalid menu file");
|
||||
const int equal = line.find('=');
|
||||
CHECK(equal > 0, "Invalid menu Module");
|
||||
const word mod = atoi(line.mid(equal+1));
|
||||
sub->set_module(mod);
|
||||
} else
|
||||
if (line.starts_with("Item", true))
|
||||
{
|
||||
CHECK(sub, "Invalid menu file");
|
||||
const int equal = line.find('=');
|
||||
CHECK(equal > 0, "Invalid menu Item");
|
||||
line.ltrim(equal+1);
|
||||
line.trim();
|
||||
const int bracket = line.rfind('<');
|
||||
if (bracket > 0)
|
||||
{
|
||||
const int endbracket = line.find('>', bracket);
|
||||
TFilename name = line.sub(bracket+1, endbracket);
|
||||
if (name.custom_path())
|
||||
{
|
||||
bool proceed = true;
|
||||
if (line.find('E', endbracket+1) > 0)
|
||||
proceed = dongle().active(EEAUT);
|
||||
if (proceed)
|
||||
{
|
||||
import(name, name);
|
||||
TMenu_item& child = sub->add_child(line);
|
||||
child.cmd() = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
sub->add_child(line);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sub != NULL)
|
||||
{
|
||||
if (line.starts_with("Caption", true))
|
||||
{
|
||||
CHECK(sub, "Invalid menu file");
|
||||
const int equal = line.find('=');
|
||||
CHECK(equal > 0, "Invalid menu Caption");
|
||||
line.ltrim(equal+1);
|
||||
line.strip("\"");
|
||||
*sub = line;
|
||||
} else
|
||||
if (line.starts_with("Module", true))
|
||||
{
|
||||
CHECK(sub, "Invalid menu file");
|
||||
const int equal = line.find('=');
|
||||
CHECK(equal > 0, "Invalid menu Module");
|
||||
const word mod = atoi(line.mid(equal+1));
|
||||
sub->set_module(mod);
|
||||
} else
|
||||
if (line.starts_with("Item", true))
|
||||
{
|
||||
CHECK(sub, "Invalid menu file");
|
||||
const int equal = line.find('=');
|
||||
CHECK(equal > 0, "Invalid menu Item");
|
||||
line.ltrim(equal+1);
|
||||
line.trim();
|
||||
const int bracket = line.rfind('<');
|
||||
if (bracket > 0)
|
||||
{
|
||||
const int endbracket = line.find('>', bracket);
|
||||
TFilename name = line.sub(bracket+1, endbracket);
|
||||
if (name.custom_path())
|
||||
{
|
||||
bool proceed = true;
|
||||
if (line.find('E', endbracket+1) > 0)
|
||||
proceed = dongle().active(EEAUT);
|
||||
if (proceed)
|
||||
{
|
||||
import(name, name);
|
||||
TMenu_item& child = sub->add_child(line);
|
||||
child.cmd() = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
sub->add_child(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -738,7 +744,7 @@ void TSet_users::put_in_record(const TMask& m)
|
||||
TString_array& arr = *(TString_array*)obj;
|
||||
prg = key;
|
||||
prg << m.sfield(F_PROPERTIES).separator();
|
||||
FOR_EACH_ARRAY_ROW(arr, r, row)
|
||||
FOR_EACH_ARRAY_ROW(arr, i, row)
|
||||
{
|
||||
row->insert(prg, 0);
|
||||
prop_field.add(*row);
|
||||
|
Loading…
x
Reference in New Issue
Block a user