summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/mixer_strip.cc9
-rw-r--r--gtk2_ardour/route_time_axis.cc8
-rw-r--r--gtk2_ardour/route_ui.cc6
-rw-r--r--gtk2_ardour/route_ui.h1
4 files changed, 20 insertions, 4 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index f3ae79dc1f..8471699337 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -1586,6 +1586,11 @@ MixerStrip::build_route_ops_menu ()
items.push_back (MenuElem (_("Remote Control ID..."), sigc::mem_fun (*this, &RouteUI::open_remote_control_id_dialog)));
}
+ if (_route && !_route->is_master()) {
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Duplicate..."), sigc::mem_fun (*this, &RouteUI::duplicate_selected_routes)));
+ }
+
if (_route) {
/* note that this relies on selection being shared across editor and
mixer (or global to the backend, in the future), which is the only
@@ -1599,8 +1604,8 @@ MixerStrip::build_route_ops_menu ()
selection.set (rtav);
}
- items.push_front (SeparatorElem());
- items.push_front (MenuElem (_("Remove"), sigc::mem_fun(PublicEditor::instance(), &PublicEditor::remove_tracks)));
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Remove"), sigc::mem_fun(PublicEditor::instance(), &PublicEditor::remove_tracks)));
}
}
}
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index a07e97a276..731b15bfbb 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -864,8 +864,12 @@ RouteTimeAxisView::build_display_menu ()
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Hide"), sigc::bind (sigc::mem_fun(_editor, &PublicEditor::hide_track_in_display), this, true)));
- items.push_front (SeparatorElem());
- items.push_front (MenuElem (_("Remove"), sigc::mem_fun(_editor, &PublicEditor::remove_tracks)));
+ if (_route && !_route->is_master()) {
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Duplicate..."), boost::bind (&ARDOUR_UI::start_duplicate_routes, ARDOUR_UI::instance())));
+ }
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Remove"), sigc::mem_fun(_editor, &PublicEditor::remove_tracks)));
}
void
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index 8cb91020c3..8afa706e37 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -1730,6 +1730,12 @@ RouteUI::set_route_active (bool a, bool apply_to_selection)
}
void
+RouteUI::duplicate_selected_routes ()
+{
+ ARDOUR_UI::instance()->start_duplicate_routes();
+}
+
+void
RouteUI::toggle_denormal_protection ()
{
if (denormal_menu_item) {
diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h
index 8ef85af0b9..04ddf683e2 100644
--- a/gtk2_ardour/route_ui.h
+++ b/gtk2_ardour/route_ui.h
@@ -194,6 +194,7 @@ class RouteUI : public virtual AxisView
virtual void route_active_changed () {}
void set_route_active (bool, bool);
+ void duplicate_selected_routes ();
Gtk::Menu* record_menu;
void build_record_menu ();