Patch level : 10.0
Files correlati : ba0.0 Ricompilazione Demo : [ ] Commento : 0000938: Aggiungi preferiti: non funziona più Se tento di aggiungere una voce mi inserisce sempre "Archivi e Tabelle di BASE" git-svn-id: svn://10.65.10.50/trunk@17472 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									30403d38c6
								
							
						
					
					
						commit
						0238fb2229
					
				@ -89,6 +89,7 @@ protected:
 | 
			
		||||
  bool copy_setup(const TString& remote_path);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  TTree_field& tree_field() const;
 | 
			
		||||
  void select_tree_current();
 | 
			
		||||
  static bool tree_find_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool tree_shrink_handler(TMask_field& f, KEY k);
 | 
			
		||||
@ -150,7 +151,7 @@ void TPicture_mask::update()
 | 
			
		||||
 | 
			
		||||
		if (tree_view)  // TreeView == 1
 | 
			
		||||
		{
 | 
			
		||||
			RCT rctree; field(DLG_TREE).get_rect(rctree);
 | 
			
		||||
			RCT rctree; tfield(DLG_TREE).get_rect(rctree);
 | 
			
		||||
 | 
			
		||||
			const int maxx = client.right - rctree.right - 2 * CHARX;
 | 
			
		||||
			const int maxy = client.bottom - 10 * ROWY;
 | 
			
		||||
@ -224,6 +225,7 @@ bool TPicture_mask::on_key(KEY k)
 | 
			
		||||
  case K_F8:
 | 
			
		||||
    set(DLG_USER, app().main_menu().last_search_string(), true); 
 | 
			
		||||
    return true;
 | 
			
		||||
/* Obsoleto coi nuovi alberi
 | 
			
		||||
  case K_ENTER:
 | 
			
		||||
  case K_UP:
 | 
			
		||||
  case K_DOWN:
 | 
			
		||||
@ -235,6 +237,7 @@ bool TPicture_mask::on_key(KEY k)
 | 
			
		||||
      return tf.win().on_key(k);
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
*/
 | 
			
		||||
  default: 
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
@ -840,7 +843,6 @@ int TMenu_application::do_level()
 | 
			
		||||
  const TSubmenu& curr = _menu.current();
 | 
			
		||||
  const int bwidth = 20;
 | 
			
		||||
  
 | 
			
		||||
  //TPicture_mask mask(curr.caption(), -4, -4, curr);
 | 
			
		||||
  TPicture_mask mask(curr.caption(), 0, 0, curr, 0, 0);
 | 
			
		||||
  CHECK(_mask == NULL, "Two masks are better than one?");
 | 
			
		||||
  _mask = &mask;
 | 
			
		||||
@ -1704,9 +1706,15 @@ bool TMenu_application::tree_handler(TMask_field& f, KEY k)
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TTree_field& TMenu_application::tree_field() const
 | 
			
		||||
{
 | 
			
		||||
  CHECK(_tree_view > 0, "No menu tree");
 | 
			
		||||
  return _mask->tfield(_tree_view == 3 ? 101 : 301);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TMenu_application::select_tree_current()
 | 
			
		||||
{
 | 
			
		||||
  TTree_field& tf = _mask->tfield(DLG_TREE);
 | 
			
		||||
  TTree_field& tf = tree_field();
 | 
			
		||||
	synchronize_tree_field(tf);
 | 
			
		||||
  tf.set_focus();
 | 
			
		||||
}
 | 
			
		||||
@ -1716,7 +1724,7 @@ bool TMenu_application::tree_find_handler(TMask_field&f, KEY k)
 | 
			
		||||
  if (k == K_TAB && f.focusdirty() && !f.empty())
 | 
			
		||||
  {
 | 
			
		||||
    const TString& v = f.get();
 | 
			
		||||
    TTree_field& tf = f.mask().tfield(DLG_TREE);
 | 
			
		||||
    TTree_field& tf = app().tree_field();
 | 
			
		||||
    TMenu_tree& mt = *(TMenu_tree*)tf.tree();
 | 
			
		||||
    if (mt.find_string(v))
 | 
			
		||||
      app().select_tree_current();
 | 
			
		||||
@ -1730,7 +1738,7 @@ bool TMenu_application::tree_shrink_handler(TMask_field&f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_SPACE)
 | 
			
		||||
  {
 | 
			
		||||
    TTree_field& tf = f.mask().tfield(DLG_TREE);
 | 
			
		||||
    TTree_field& tf = app().tree_field();
 | 
			
		||||
    TMenu_tree& mt = (TMenu_tree&)*tf.tree();
 | 
			
		||||
    mt.shrink_all();
 | 
			
		||||
    mt.goto_root();
 | 
			
		||||
@ -1836,39 +1844,20 @@ void TMenu_application::save_preferences()
 | 
			
		||||
  for (i = 0; i < _preferred.items(); i++)
 | 
			
		||||
    cfg.set("Preferred", _preferred.row(i), NULL, true, i);
 | 
			
		||||
  cfg.set("Preferred", "", NULL, true, i);
 | 
			
		||||
 | 
			
		||||
  cfg.set("TreeView", _tree_view, "Colors");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TMenu_application::add_to_preferred()
 | 
			
		||||
{   
 | 
			
		||||
  const int maxpref = 16;
 | 
			
		||||
	
 | 
			
		||||
	if (_mask == NULL)  // Succede durante il login!
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
  if (_preferred.items() < maxpref)
 | 
			
		||||
  if (_preferred.items() < 16) // Massimo numero di preferiti
 | 
			
		||||
  {
 | 
			
		||||
    TToken_string tok;
 | 
			
		||||
 | 
			
		||||
    switch (_tree_view)
 | 
			
		||||
    {
 | 
			
		||||
    case 1:
 | 
			
		||||
      {                  
 | 
			
		||||
        TTree_field& tf = _mask->tfield(DLG_TREE);            
 | 
			
		||||
        tf.goto_selected();
 | 
			
		||||
        tf.tree()->get_description(tok);
 | 
			
		||||
        TString id; tf.tree()->curr_id(id);
 | 
			
		||||
        tok.add(id);
 | 
			
		||||
      }  
 | 
			
		||||
      break;
 | 
			
		||||
    case 2:
 | 
			
		||||
      {
 | 
			
		||||
     		TMenulist_field& mf = (TMenulist_field&)_mask->field(DLG_LIST);
 | 
			
		||||
        mf.curr_item(tok);
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
    case 0:
 | 
			
		||||
      {                       
 | 
			
		||||
        const TMask_field& butt = _mask->focus_field();
 | 
			
		||||
        const int index = butt.dlg() - 101;
 | 
			
		||||
@ -1881,6 +1870,21 @@ void TMenu_application::add_to_preferred()
 | 
			
		||||
        }  
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case 2:
 | 
			
		||||
      {
 | 
			
		||||
     		TMenulist_field& mf = (TMenulist_field&)_mask->field(DLG_LIST);
 | 
			
		||||
        mf.curr_item(tok);
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      {     
 | 
			
		||||
        TTree_field& tf = tree_field();            
 | 
			
		||||
        tf.goto_selected();
 | 
			
		||||
        tf.tree()->get_description(tok);
 | 
			
		||||
        TString id; tf.tree()->curr_id(id);
 | 
			
		||||
        tok.add(id);
 | 
			
		||||
      }  
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    if (tok.full() && _preferred.find(tok) < 0)
 | 
			
		||||
    {
 | 
			
		||||
@ -1890,7 +1894,7 @@ void TMenu_application::add_to_preferred()
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    error_box(TR("Non e' possibile memorizzare piu' di %d preferenze"), maxpref);  
 | 
			
		||||
    error_box(TR("Non e' possibile memorizzare piu' di %d preferenze"), _preferred.items());  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class TPreferred_mask : public TAutomask
 | 
			
		||||
@ -1900,7 +1904,6 @@ protected:
 | 
			
		||||
    
 | 
			
		||||
public:
 | 
			
		||||
  TPreferred_mask() : TAutomask("ba0400a") { }
 | 
			
		||||
  virtual ~TPreferred_mask() { }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool TPreferred_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
			
		||||
@ -2079,10 +2082,14 @@ bool TMenu_application::menu(MENU_TAG mt)
 | 
			
		||||
      TToken_string node(_preferred.row(index).get(1), '/');
 | 
			
		||||
      if (_tree_view != 0)
 | 
			
		||||
      {
 | 
			
		||||
        TMenu_tree& met = *(TMenu_tree*)_mask->tfield(DLG_TREE).tree();            
 | 
			
		||||
        TMenu_tree& met = *(TMenu_tree*)tree_field().tree();            
 | 
			
		||||
        ok = node.items() == 1 ? met.find_leaf(node) : met.goto_node(node);
 | 
			
		||||
        if (ok)
 | 
			
		||||
        {
 | 
			
		||||
          select_tree_current();
 | 
			
		||||
          if (met.curr_item().is_program())
 | 
			
		||||
            tree_field().on_key(K_CTRL+K_SPACE); // Esegue subito il programma
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
@ -2096,7 +2103,8 @@ bool TMenu_application::menu(MENU_TAG mt)
 | 
			
		||||
          _mask->stop_run(K_CTRL + 'R');
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (!ok) beep();
 | 
			
		||||
      if (!ok) 
 | 
			
		||||
        beep();
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user