From 0eae2ec03fa62b5b7edee87896472236a11c6792 Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 28 Jun 1995 16:35:30 +0000 Subject: [PATCH] Cambita posizione di prassis.ini Aggiunto wrapping ai memo git-svn-id: svn://10.65.10.50/trunk@1527 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/config.cpp | 23 ++++++++++++++++++--- include/config.h | 3 +++ include/maskfld.cpp | 31 +++++++++++++++++----------- include/printer.cpp | 2 +- include/relation.cpp | 49 +++++++++++++++++++++++--------------------- include/relation.h | 6 +++--- 6 files changed, 72 insertions(+), 42 deletions(-) diff --git a/include/config.cpp b/include/config.cpp index 7c25c27a1..55bedc341 100755 --- a/include/config.cpp +++ b/include/config.cpp @@ -418,6 +418,20 @@ void TConfig::init( _ispresent = _read_paragraph(); } +int TConfig::list_paragraphs(TString_array& pl) +{ + TScanner s(_file); + pl.destroy(); + while (s.line().not_empty()) + if (s.token()[0] == '[') + { + TToken_string* p = new TToken_string(s.token()); + p->strip("[]"); + pl.add(p); + } + + return pl.items(); +} // @doc EXTERNAL @@ -430,8 +444,6 @@ TConfig::TConfig(int which_config, const char* paragraph) if (!fexist(_file)) fcopy("prassid.ini", _file); break; case CONFIG_STUDIO: - _file = "prassis.ini"; - break; case CONFIG_USER: case CONFIG_STAMPE: _file = firm2dir(0); @@ -447,6 +459,10 @@ TConfig::TConfig(int which_config, const char* paragraph) switch (which_config) { + case CONFIG_STUDIO: + _file.add("prassis"); + if (!fexist(_file)) fcopy("prassis.ini", _file); + break; case CONFIG_STAMPE: _file.add("print.ini"); break; @@ -466,7 +482,8 @@ TConfig::TConfig(int which_config, const char* paragraph) _file.add("golem.ini"); break; default: - _file = "prassi.ini"; + _file = "prassi.ini"; + CHECK(0, "Chi ca$$o usa prassi.ini?"); break; } diff --git a/include/config.h b/include/config.h index 37f131de1..16ef1952a 100755 --- a/include/config.h +++ b/include/config.h @@ -113,6 +113,9 @@ public: // @cmember Setta il paragrafo passato come quello attivo void set_paragraph(const char* par); + // @cmember Riempie pl con la lista dei paragrafi + int list_paragraphs(TString_array& pl); + // @cmember Costruttore (il paragrafo iniziale e' il modulo corrente // salvo diversa indicazione) TConfig(int which_config = CONFIG_GENERAL, const char* paragraph = NULL); diff --git a/include/maskfld.cpp b/include/maskfld.cpp index c227da96f..f80e39650 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -1367,7 +1367,7 @@ void TBrowse::do_output(CheckTime t) if (t == FINAL_CHECK) return; - TString256 sum; + TString sum; TToken_string flds(24, '+'); _out_fn.restart(); @@ -1382,18 +1382,16 @@ void TBrowse::do_output(CheckTime t) sum.cut(0); for(const char* fr = flds.get(0); fr; fr = flds.get()) { - const char* val; if (*fr == '"') - { - const TString80 v(fr); - val = v.mid(1, v.len()-2); + { + sum << (fr+1); + sum.rtrim(1); } else { const TFieldref fld(fr, 0); - val = fld.read(_cursor->relation()); + sum << fld.read(_cursor->relation()); } - sum << val; } f.set(sum); @@ -3285,7 +3283,7 @@ void TMemo_field::create(WINDOW parent) wd.rct = resize_rect(_x, _y+1, dx, dy, WC_EDIT, parent); wd.text = NULL; wd.units = U_PIXELS; - wd.v.tx.attrib = TX_NOMENU | TX_BORDER | TX_AUTOHSCROLL | TX_AUTOVSCROLL; + wd.v.tx.attrib = TX_NOMENU | TX_BORDER | TX_AUTOVSCROLL | TX_WRAP; wd.v.tx.font_id = xvt_dwin_get_font(win()); wd.v.tx.margin = wd.rct.right - wd.rct.left; wd.v.tx.limit = 256; @@ -3337,8 +3335,11 @@ bool TMemo_field::autoload(const TRelation* r) { TTextfile txt; r->lfile(f->file()).get_memo(f->name(), txt); + + xvt_tx_suspend(_te); for (T_LNUM i = 0; i < (T_LNUM)txt.lines(); i++) xvt_tx_add_par(_te, i, (char*)txt.line(i)); + xvt_tx_resume(_te); return i > 0; } return FALSE; @@ -3349,11 +3350,14 @@ bool TMemo_field::autosave(TRelation* r) const const TFieldref* f = field(); if (dirty() && f != NULL) { - const T_PNUM para = xvt_tx_get_num_pars(_te); + const T_PNUM num_par = xvt_tx_get_num_pars(_te); TTextfile txt; + TString par(256); TString256 line; - for (T_PNUM p = 0; p < para; p++) + + for (T_PNUM p = 0; p < num_par; p++) { + par.cut(0); const T_LNUM lines = xvt_tx_get_num_par_lines(_te, p); for (T_LNUM l = 0; l < lines; l++) { @@ -3363,11 +3367,14 @@ bool TMemo_field::autosave(TRelation* r) const CHECK(s, "Null memo line"); line.strncpy(s, len); xvt_tx_get_line(_te, p, A_UNLOCK, l, &len); - txt.append(line); + + if (par.not_empty()) par << ' '; + par << line; } + txt.append(par); } r->lfile(f->file()).put(f->name(), txt); - return para > 0; + return num_par > 0; } return FALSE; } diff --git a/include/printer.cpp b/include/printer.cpp index 7a62a4f92..4acfbe174 100755 --- a/include/printer.cpp +++ b/include/printer.cpp @@ -318,7 +318,7 @@ bool printers_on_key(TMask_field & f, KEY key); // fv support structs for config -bool PrinterDef::read (const char *name, FILE * fd) +bool PrinterDef::read(const char *name, FILE * fd) { _printername = name; _printername.trim (); diff --git a/include/relation.cpp b/include/relation.cpp index 86d05a473..f9500c572 100755 --- a/include/relation.cpp +++ b/include/relation.cpp @@ -1,4 +1,4 @@ -// $Id: relation.cpp,v 1.48 1995-06-21 15:35:41 guy Exp $ +// $Id: relation.cpp,v 1.49 1995-06-28 16:35:26 guy Exp $ // relation.cpp // fv 12/8/93 // relation class for isam files @@ -1299,35 +1299,38 @@ const char* TFieldref::read(const TRectype& rec) const } const char* TFieldref::read(const TRelation* c) const -{ +{ + CHECK(c != NULL, "Can't read field from NULL relation"); const char * s; - - if (c == NULL) - { - TLocalisamfile f(_fileid, TRUE); - s = read(f.curr()); - } - else - s = read(c->lfile(_id).curr()); + /* + if (c == NULL) + { + TLocalisamfile f(_fileid, TRUE); + s = read(f.curr()); + } + else + */ + s = read(c->lfile(_id).curr()); return s; } void TFieldref::write(const char* val, TRelation* c) const { - if (c == NULL) - { -#ifdef DBG - yesnofatal_box("Guy consiglia di dare un'occhiatina al codice!"); -#endif - TLocalisamfile f(_fileid, TRUE); - write(val, f.curr()); - } - else - { - TRectype &curr = c->lfile(_id).curr(); - write(val, curr); - } + CHECK(c != NULL, "Can't write field on NULL relation"); + + /* + if (c == NULL) + { + TLocalisamfile f(_fileid, TRUE); + write(val, f.curr()); + } + else + */ +{ + TRectype &curr = c->lfile(_id).curr(); + write(val, curr); +} } diff --git a/include/relation.h b/include/relation.h index beb4fe61e..c562397ba 100755 --- a/include/relation.h +++ b/include/relation.h @@ -1,4 +1,4 @@ -/* $Id: relation.h,v 1.20 1995-06-01 09:09:21 guy Exp $ */ +/* $Id: relation.h,v 1.21 1995-06-28 16:35:30 guy Exp $ */ // join.h // fv 12/8/93 // join class for isam files @@ -281,9 +281,9 @@ public: int from() const { return _from; } int to() const { return _to; } int len(TRectype &rec) const; - const char* read(const TRelation* = NULL) const; + const char* read(const TRelation*) const; const char* read(const TRectype&) const; - void write(const char* val, TRelation* = NULL) const; + void write(const char* val, TRelation*) const; void write(const char* val, TRectype& rec) const; };