mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 08:14:58 +01:00
Make tabs correctly follow reordering of mixer strips.
git-svn-id: svn://localhost/ardour2/branches/3.0@5249 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
16f18f1879
commit
0eadbc9396
1 changed files with 20 additions and 14 deletions
|
|
@ -48,28 +48,31 @@ MixerGroupTabs::compute_tabs () const
|
||||||
tab.group = 0;
|
tab.group = 0;
|
||||||
|
|
||||||
int32_t x = 0;
|
int32_t x = 0;
|
||||||
for (list<MixerStrip*>::iterator i = _mixer->strips.begin(); i != _mixer->strips.end(); ++i) {
|
TreeModel::Children rows = _mixer->track_model->children ();
|
||||||
|
for (TreeModel::Children::iterator i = rows.begin(); i != rows.end(); ++i) {
|
||||||
|
|
||||||
if ((*i)->route()->is_master() || (*i)->route()->is_control() || !(*i)->marked_for_display()) {
|
MixerStrip* s = (*i)[_mixer->track_columns.strip];
|
||||||
|
|
||||||
|
if (s->route()->is_master() || s->route()->is_control() || !s->marked_for_display()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
RouteGroup* g = (*i)->route_group ();
|
RouteGroup* g = s->route_group ();
|
||||||
|
|
||||||
if (g != tab.group) {
|
if (g != tab.group) {
|
||||||
if (tab.group) {
|
if (tab.group) {
|
||||||
tab.to = x;
|
tab.to = x;
|
||||||
tab.last_ui_size = (*i)->get_width ();
|
tab.last_ui_size = s->get_width ();
|
||||||
tabs.push_back (tab);
|
tabs.push_back (tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
tab.from = x;
|
tab.from = x;
|
||||||
tab.group = g;
|
tab.group = g;
|
||||||
tab.colour = (*i)->color ();
|
tab.colour = s->color ();
|
||||||
tab.first_ui_size = (*i)->get_width ();
|
tab.first_ui_size = s->get_width ();
|
||||||
}
|
}
|
||||||
|
|
||||||
x += (*i)->get_width ();
|
x += s->get_width ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab.group) {
|
if (tab.group) {
|
||||||
|
|
@ -121,16 +124,19 @@ MixerGroupTabs::reflect_tabs (list<Tab> const & tabs)
|
||||||
list<Tab>::const_iterator j = tabs.begin ();
|
list<Tab>::const_iterator j = tabs.begin ();
|
||||||
|
|
||||||
int32_t x = 0;
|
int32_t x = 0;
|
||||||
for (list<MixerStrip*>::iterator i = _mixer->strips.begin(); i != _mixer->strips.end(); ++i) {
|
TreeModel::Children rows = _mixer->track_model->children ();
|
||||||
|
for (TreeModel::Children::iterator i = rows.begin(); i != rows.end(); ++i) {
|
||||||
|
|
||||||
if ((*i)->route()->is_master() || (*i)->route()->is_control() || !(*i)->marked_for_display()) {
|
MixerStrip* s = (*i)[_mixer->track_columns.strip];
|
||||||
|
|
||||||
|
if (s->route()->is_master() || s->route()->is_control() || !s->marked_for_display()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (j == tabs.end()) {
|
if (j == tabs.end()) {
|
||||||
|
|
||||||
/* already run out of tabs, so no edit group */
|
/* already run out of tabs, so no edit group */
|
||||||
(*i)->route()->set_route_group (0, this);
|
s->route()->set_route_group (0, this);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
@ -139,17 +145,17 @@ MixerGroupTabs::reflect_tabs (list<Tab> const & tabs)
|
||||||
++j;
|
++j;
|
||||||
}
|
}
|
||||||
|
|
||||||
double const h = x + (*i)->get_width() / 2;
|
double const h = x + s->get_width() / 2;
|
||||||
|
|
||||||
if (j->from < h && j->to > h) {
|
if (j->from < h && j->to > h) {
|
||||||
(*i)->route()->set_route_group (j->group, this);
|
s->route()->set_route_group (j->group, this);
|
||||||
} else {
|
} else {
|
||||||
(*i)->route()->set_route_group (0, this);
|
s->route()->set_route_group (0, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
x += (*i)->get_width ();
|
x += s->get_width ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue