summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_strip.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-03-08 14:56:51 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:40 -0400
commitb34f949518c1339ae164b0b23318f91f8667841b (patch)
treec12bb95f07497331e154770d65b853e5c6e21663 /gtk2_ardour/mixer_strip.cc
parent1249e61d73b863179ffc08f1b7e42e3279709578 (diff)
follow session track-number policy in mixer strip, as is done in the editor
Diffstat (limited to 'gtk2_ardour/mixer_strip.cc')
-rw-r--r--gtk2_ardour/mixer_strip.cc34
1 files changed, 30 insertions, 4 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 7896c4bd0e..e5d9231ef8 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -656,6 +656,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
name_changed ();
comment_changed ();
route_group_changed ();
+ update_track_number_visibility ();
connect_to_pan ();
panners.setup_pan ();
@@ -2261,11 +2262,9 @@ MixerStrip::parameter_changed (string p)
our VisibilityGroup to reflect these changes in our widgets.
*/
_visibility.set_state (UIConfiguration::instance().get_mixer_strip_visibility ());
- }
- else if (p == "track-name-number") {
+ } else if (p == "track-name-number") {
name_changed ();
- }
- else if (p == "use-monitor-bus") {
+ } else if (p == "use-monitor-bus") {
if (monitor_section_button) {
if (mute_button->get_parent()) {
mute_button->get_parent()->remove(*mute_button);
@@ -2283,6 +2282,8 @@ MixerStrip::parameter_changed (string p)
mute_button->show();
}
}
+ } else if (p == "track-name-number") {
+ update_track_number_visibility();
}
}
@@ -2579,3 +2580,28 @@ MixerStrip::vca_button_release (GdkEventButton* ev)
return true;
}
+
+void
+MixerStrip::update_track_number_visibility ()
+{
+ DisplaySuspender ds;
+ bool show_label = _session->config.get_track_name_number();
+
+ if (_route && _route->is_master()) {
+ show_label = false;
+ }
+
+ if (show_label) {
+ number_label.show ();
+ // see ArdourButton::on_size_request(), we should probably use a global size-group here instead.
+ // except the width of the number label is subtracted from the name-hbox, so we
+ // need to explictly calculate it anyway until the name-label & entry become ArdourWidgets.
+ int tnw = (2 + std::max(2u, _session->track_number_decimals())) * number_label.char_pixel_width();
+ if (tnw & 1) --tnw;
+ number_label.set_size_request(tnw, -1);
+ number_label.show ();
+ //name_hbox.set_size_request(TimeAxisView::name_width_px - 2 - tnw, -1); // -2 = cellspacing
+ } else {
+ number_label.hide ();
+ }
+}