fix for edit & mix group names getting lost at session load
git-svn-id: svn://localhost/trunk/ardour2@513 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
f6da2b13f9
commit
06654aa7f1
|
@ -349,6 +349,8 @@ AudioTimeAxisView::add_edit_group_menu_item (RouteGroup *eg, RadioMenuItem::Grou
|
|||
|
||||
MenuList &items = edit_group_menu.items();
|
||||
|
||||
cerr << "adding edit group called " << eg->name() << endl;
|
||||
|
||||
items.push_back (RadioMenuElem (*group, eg->name(), bind (mem_fun(*this, &AudioTimeAxisView::set_edit_group_from_menu), eg)));
|
||||
if (_route.edit_group() == eg) {
|
||||
static_cast<RadioMenuItem*>(&items.back())->set_active ();
|
||||
|
|
|
@ -218,7 +218,10 @@ Editor::add_edit_group (RouteGroup* group)
|
|||
row[group_columns.is_active] = group->is_active();
|
||||
row[group_columns.is_visible] = !group->is_hidden();
|
||||
|
||||
in_edit_group_row_change = true;
|
||||
|
||||
row[group_columns.routegroup] = group;
|
||||
|
||||
if (!group->name().empty()) {
|
||||
row[group_columns.text] = group->name();
|
||||
} else {
|
||||
|
@ -233,6 +236,8 @@ Editor::add_edit_group (RouteGroup* group)
|
|||
CellRendererText* name_cell = dynamic_cast<CellRendererText*>(edit_group_display.get_column_cell_renderer (0));
|
||||
edit_group_display.set_cursor (group_model->get_path (row), *col, *name_cell, true);
|
||||
}
|
||||
|
||||
in_edit_group_row_change = false;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -954,6 +954,8 @@ Mixer_UI::add_mix_group (RouteGroup* group)
|
|||
ENSURE_GUI_THREAD(bind (mem_fun(*this, &Mixer_UI::add_mix_group), group));
|
||||
bool focus = false;
|
||||
|
||||
in_group_row_change = true;
|
||||
|
||||
TreeModel::Row row = *(group_model->append());
|
||||
row[group_columns.active] = group->is_active();
|
||||
row[group_columns.visible] = true;
|
||||
|
@ -972,6 +974,8 @@ Mixer_UI::add_mix_group (RouteGroup* group)
|
|||
CellRendererText* name_cell = dynamic_cast<CellRendererText*>(group_display.get_column_cell_renderer (0));
|
||||
group_display.set_cursor (group_model->get_path (row), *col, *name_cell, true);
|
||||
}
|
||||
|
||||
in_group_row_change = false;
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
@ -71,6 +71,8 @@ class OSC : public BasicUI, public sigc::trackable
|
|||
std::string get_server_url ();
|
||||
std::string get_unix_server_url ();
|
||||
|
||||
int current_value (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data);
|
||||
|
||||
#define PATH_CALLBACK(name) \
|
||||
static int _ ## name (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { \
|
||||
return static_cast<OSC*>(user_data)->cb_ ## name (path, types, argv, argc, data); \
|
||||
|
|
|
@ -377,3 +377,62 @@ OSC::session_going_away ()
|
|||
|
||||
/* path callbacks */
|
||||
|
||||
int
|
||||
OSC::current_value (const char *path, const char *types, lo_arg **argv, int argc, void *data, void* user_data)
|
||||
{
|
||||
#if 0
|
||||
const char* returl;
|
||||
|
||||
if (argc < 3 || types == 0 || strlen (types) < 3 || types[0] != 's' || types[1] != 's' || types[2] != s) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char *returl = argv[1]->s;
|
||||
lo_address addr = find_or_cache_addr (returl);
|
||||
|
||||
const char *retpath = argv[2]->s;
|
||||
|
||||
|
||||
if (strcmp (argv[0]->s, "transport_frame")) {
|
||||
|
||||
if (session) {
|
||||
lo_send (addr, retpath, "i", session->transport_frame());
|
||||
}
|
||||
|
||||
} else if (strcmp (argv[0]->s, "transport_speed")) {
|
||||
|
||||
if (session) {
|
||||
lo_send (addr, retpath, "i", session->transport_frame());
|
||||
}
|
||||
|
||||
} else if (strcmp (argv[0]->s, "transport_locked")) {
|
||||
|
||||
if (session) {
|
||||
lo_send (addr, retpath, "i", session->transport_frame());
|
||||
}
|
||||
|
||||
} else if (strcmp (argv[0]->s, "punch_in") {
|
||||
|
||||
if (session) {
|
||||
lo_send (addr, retpath, "i", session->transport_frame());
|
||||
}
|
||||
|
||||
} else if (strcmp (argv[0]->s, "punch_out") {
|
||||
|
||||
if (session) {
|
||||
lo_send (addr, retpath, "i", session->transport_frame());
|
||||
}
|
||||
|
||||
} else if (strcmp (argv[0]->s, "rec_enable") {
|
||||
|
||||
if (session) {
|
||||
lo_send (addr, retpath, "i", session->transport_frame());
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
/* error */
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -2377,18 +2377,18 @@ Session::load_route_groups (const XMLNode& node, bool edit)
|
|||
{
|
||||
XMLNodeList nlist = node.children();
|
||||
XMLNodeConstIterator niter;
|
||||
RouteGroup* route;
|
||||
RouteGroup* rg;
|
||||
|
||||
set_dirty();
|
||||
|
||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||
if ((*niter)->name() == "RouteGroup") {
|
||||
if (edit) {
|
||||
route = add_edit_group ("");
|
||||
route->set_state (**niter);
|
||||
rg = add_edit_group ("");
|
||||
rg->set_state (**niter);
|
||||
} else {
|
||||
route = add_mix_group ("");
|
||||
route->set_state (**niter);
|
||||
rg = add_mix_group ("");
|
||||
rg->set_state (**niter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue