diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc index fbb718015b..61054d0bfd 100644 --- a/gtk2_ardour/editor_routes.cc +++ b/gtk2_ardour/editor_routes.cc @@ -509,7 +509,7 @@ EditorRoutes::redisplay () so we will use that to know where to put things. */ int n; - + uint32_t number_label = 1; for (n = 0, position = 0, i = rows.begin(); i != rows.end(); ++i) { TimeAxisView *tv = (*i)[_columns.tv]; boost::shared_ptr route = (*i)[_columns.route]; @@ -535,7 +535,14 @@ EditorRoutes::redisplay () } else { tv->hide (); } - + + // track number depends of the amount inputs + RouteTimeAxisView* rtv = dynamic_cast(tv); + if (rtv) { + // function will return the next available number + number_label = rtv->set_track_number(number_label); + } + n++; } diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index c09b11f1c7..8589f04d5e 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -174,7 +174,7 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) if (is_master_track() ) { // do not display number for master track - TimeAxisView::set_number_is_hidden(true); + _number_is_hidden = true; } else { enable_header_dnd (); } @@ -252,6 +252,36 @@ RouteTimeAxisView::~RouteTimeAxisView () delete route_group_menu; } +void +RouteTimeAxisView::set_number_is_hidden (bool hidden) +{ + _number_is_hidden = hidden; +} + +uint32_t +RouteTimeAxisView::set_track_number (const uint32_t& number) +{ + uint32_t new_number = number; + + if (_number_is_hidden) { + number_label.set_text(""); + return new_number; + } + + int amount_of_inputs = _route->n_inputs().get(DataType::AUDIO); + + // format track number string + std::stringstream number_label_text; + number_label_text << new_number++; + for (int i = 1; i < amount_of_inputs; ++i) { + number_label_text << "\n" << new_number++; + } + + number_label.set_text (string_compose (_("%1"), number_label_text.str() ) ); + + return new_number; +} + void RouteTimeAxisView::post_construct () { diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h index b132534b3c..399728044a 100644 --- a/gtk2_ardour/route_time_axis.h +++ b/gtk2_ardour/route_time_axis.h @@ -82,6 +82,9 @@ public: void set_route (boost::shared_ptr); + void set_number_is_hidden (bool); + uint32_t set_track_number (const uint32_t&); + void show_selection (TimeSelection&); void set_button_names (); diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 50cc292758..1cb05e9597 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -218,12 +218,6 @@ TimeAxisView::hide () Hiding (); } -void -TimeAxisView::set_number_is_hidden (bool hidden) -{ - _number_is_hidden = hidden; -} - /** Display this TimeAxisView as the nth component of the parent box, at y. * * @param y y position. @@ -244,16 +238,11 @@ TimeAxisView::show_at (double y, int& nth, VBox *parent) } _order = nth; - if (!_number_is_hidden) { - number_label.set_text (string_compose (_("%1"), _order)); - } else { - number_label.set_text(""); - } + number_label.set_text(""); if (_y_position != y) { _canvas_display->set_y_position (y); _y_position = y; - } _canvas_display->raise_to_top (); diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index cb41b84586..a9202c7904 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -129,8 +129,6 @@ class TimeAxisView : public virtual AxisView virtual guint32 show_at (double y, int& nth, Gtk::VBox *parent); virtual void hide (); - - void set_number_is_hidden (bool); bool touched (double top, double bot); diff --git a/gtk2_ardour/ui/audio_time_axis.xml b/gtk2_ardour/ui/audio_time_axis.xml index c9a8b7e906..e4d6254744 100644 --- a/gtk2_ardour/ui/audio_time_axis.xml +++ b/gtk2_ardour/ui/audio_time_axis.xml @@ -26,13 +26,13 @@ - +