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