summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_ui.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-04-06 00:36:36 +0000
committerCarl Hetherington <carl@carlh.net>2011-04-06 00:36:36 +0000
commit72f85f6cec86ff30de85103c11c11fcfa62f48b5 (patch)
tree29d860467cbdad5ea12ed7f810706feb10940e56 /gtk2_ardour/mixer_ui.cc
parenteaf2c28d99e9af95a4aabfde2201a6a9596280a1 (diff)
Fix show checkbuttons for mixer groups on startup (#3919). Also synchronise visible status between editor and mixer.
git-svn-id: svn://localhost/ardour2/branches/3.0@9297 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r--gtk2_ardour/mixer_ui.cc31
1 files changed, 16 insertions, 15 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index dc3aced978..b7fa89cfe2 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -1188,6 +1188,16 @@ Mixer_UI::route_group_property_changed (RouteGroup* group, const PropertyChange&
if (change.contains (Properties::name)) {
_group_tabs->set_dirty ();
}
+
+ for (list<MixerStrip*>::iterator j = strips.begin(); j != strips.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ if (group->is_hidden ()) {
+ hide_strip (*j);
+ } else {
+ show_strip (*j);
+ }
+ }
+ }
}
void
@@ -1221,26 +1231,17 @@ Mixer_UI::route_group_row_change (const Gtk::TreeModel::Path&, const Gtk::TreeMo
return;
}
- if ((*iter)[group_columns.visible]) {
- for (list<MixerStrip *>::iterator i = strips.begin(); i != strips.end(); ++i) {
- if ((*i)->route_group() == group) {
- show_strip (*i);
- }
- }
- } else {
- for (list<MixerStrip *>::iterator i = strips.begin(); i != strips.end(); ++i) {
- if ((*i)->route_group() == group) {
- hide_strip (*i);
- }
- }
- }
-
std::string name = (*iter)[group_columns.text];
if (name != group->name()) {
group->set_name (name);
}
+ bool hidden = !(*iter)[group_columns.visible];
+
+ if (hidden != group->is_hidden ()) {
+ group->set_hidden (hidden, this);
+ }
}
void
@@ -1252,7 +1253,7 @@ Mixer_UI::add_route_group (RouteGroup* group)
in_group_row_change = true;
TreeModel::Row row = *(group_model->append());
- row[group_columns.visible] = true;
+ row[group_columns.visible] = !group->is_hidden ();
row[group_columns.group] = group;
if (!group->name().empty()) {
row[group_columns.text] = group->name();