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