X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_selection.cc;h=c5ba764af8a5f32d11389edc005b47615f07b393;hb=cf52d6e4b40111eb04b244ec054055a4ec15dbe0;hp=afddfad464f8b900f084ca9ffcd1b379ba737982;hpb=afcba4d3d334939b21550a4d1f3a86e7dff5fbaf;p=ardour.git diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index afddfad464..c5ba764af8 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -43,7 +43,7 @@ #include "midi_region_view.h" #include "sfdb_ui.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace std; using namespace ARDOUR; @@ -621,7 +621,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) if (press) { if (selection->selected (clicked_routeview)) { - get_equivalent_regions (clicked_regionview, all_equivalent_regions, ARDOUR::Properties::select.property_id); + get_equivalent_regions (clicked_regionview, all_equivalent_regions, ARDOUR::Properties::group_select.property_id); } else { all_equivalent_regions.push_back (clicked_regionview); } @@ -639,7 +639,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) case Selection::Set: if (!selection->selected (clicked_regionview)) { - get_equivalent_regions (clicked_regionview, all_equivalent_regions, ARDOUR::Properties::select.property_id); + get_equivalent_regions (clicked_regionview, all_equivalent_regions, ARDOUR::Properties::group_select.property_id); selection->set (all_equivalent_regions); commit = true; } else { @@ -649,7 +649,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) else { if (selection->regions.size() > 1) { /* collapse region selection down to just this one region (and its equivalents) */ - get_equivalent_regions(clicked_regionview, all_equivalent_regions, ARDOUR::Properties::select.property_id); + get_equivalent_regions(clicked_regionview, all_equivalent_regions, ARDOUR::Properties::group_select.property_id); selection->set(all_equivalent_regions); commit = true; } @@ -791,7 +791,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) RouteTimeAxisView* closest = 0; int distance = INT_MAX; - int key = rtv->route()->order_key (); + int key = rtv->route()->presentation_info().order (); for (RegionSelection::iterator x = selection->regions.begin(); x != selection->regions.end(); ++x) { @@ -806,7 +806,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) if (result.second) { /* newly added to already_in_selection */ - int d = artv->route()->order_key (); + int d = artv->route()->presentation_info().order (); d -= key; @@ -822,7 +822,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) /* now add all tracks between that one and this one */ - int okey = closest->route()->order_key (); + int okey = closest->route()->presentation_info().order (); if (okey > key) { swap (okey, key); @@ -832,7 +832,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op) RouteTimeAxisView* artv = dynamic_cast(*x); if (artv && artv != rtv) { - int k = artv->route()->order_key (); + int k = artv->route()->presentation_info().order (); if (k >= okey && k <= key) { @@ -962,6 +962,7 @@ Editor::track_selection_changed () } RouteNotificationListPtr routes (new RouteNotificationList); + StripableNotificationListPtr stripables (new StripableNotificationList); for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { @@ -985,6 +986,7 @@ Editor::track_selection_changed () RouteTimeAxisView* rtav = dynamic_cast (*i); if (rtav) { routes->push_back (rtav->route()); + stripables->push_back (rtav->route()); } } } @@ -993,7 +995,7 @@ Editor::track_selection_changed () /* notify control protocols */ - ControlProtocol::TrackSelectionChanged (routes); + ControlProtocol::StripableSelectionChanged (stripables); if (sfbrowser && _session && !_session->deletion_in_progress()) { uint32_t audio_track_cnt = 0; @@ -1025,10 +1027,6 @@ Editor::track_selection_changed () void Editor::time_selection_changed () { - if (Profile->get_sae()) { - return; - } - /* XXX this is superficially inefficient. Hide the selection in all * tracks, then show it in all selected tracks. * @@ -1090,7 +1088,6 @@ Editor::sensitize_all_region_actions (bool s) void Editor::sensitize_the_right_region_actions () { - RegionSelection rs = get_regions_from_selection_and_entered (); sensitize_all_region_actions (!rs.empty ()); @@ -1120,6 +1117,7 @@ Editor::sensitize_the_right_region_actions () bool have_inactive_fade_out = false; bool have_active_fade_in = false; bool have_active_fade_out = false; + bool have_transients = false; for (list::const_iterator i = rs.begin(); i != rs.end(); ++i) { @@ -1175,6 +1173,10 @@ Editor::sensitize_the_right_region_actions () have_not_at_natural_position = true; } + if (r->has_transients ()){ + have_transients = true; + } + if (ar) { if (ar->envelope_active()) { have_envelope_active = true; @@ -1200,6 +1202,8 @@ Editor::sensitize_the_right_region_actions () } } + _region_actions->get_action("split-region-at-transients")->set_sensitive (have_transients); + if (rs.size() > 1) { _region_actions->get_action("show-region-list-editor")->set_sensitive (false); _region_actions->get_action("show-region-properties")->set_sensitive (false); @@ -1262,7 +1266,8 @@ Editor::sensitize_the_right_region_actions () } else { - _region_actions->get_action("analyze-region")->set_sensitive (false); + _region_actions->get_action("loudness-analyze-region")->set_sensitive (false); + _region_actions->get_action("spectral-analyze-region")->set_sensitive (false); _region_actions->get_action("reset-region-gain-envelopes")->set_sensitive (false); _region_actions->get_action("toggle-region-gain-envelope-active")->set_sensitive (false); _region_actions->get_action("pitch-shift-region")->set_sensitive (false); @@ -1367,11 +1372,15 @@ Editor::region_selection_changed () _regions->block_change_connection (false); editor_regions_selection_changed_connection.block(false); - if (!_all_region_actions_sensitized) { - /* This selection change might have changed what region actions - are allowed, so sensitize them all in case a key is pressed. - */ - sensitize_all_region_actions (true); + if (selection->regions.empty()) { + sensitize_all_region_actions (false); + } else { + if (!_all_region_actions_sensitized) { + /* This selection change might have changed what region actions + are allowed, so sensitize them all in case a key is pressed. + */ + sensitize_all_region_actions (true); + } } if (_session && !_session->transport_rolling() && !selection->regions.empty()) { @@ -1560,7 +1569,7 @@ Editor::select_all_within (framepos_t start, framepos_t end, double top, double if (preserve_if_selected && op != Selection::Toggle) { list::iterator i = found.begin(); - while (i != found.end() && (*i)->get_selected()) { + while (i != found.end() && (*i)->selected()) { ++i; } @@ -1614,9 +1623,7 @@ Editor::set_selection_from_region () selection->set (tvl); - if (!Profile->get_sae()) { - set_mouse_mode (Editing::MouseRange, false); - } + set_mouse_mode (Editing::MouseRange, false); } void @@ -1649,9 +1656,7 @@ Editor::set_selection_from_range (Location& loc) selection->set (loc.start(), loc.end()); commit_reversible_selection_op (); - if (!Profile->get_sae()) { - set_mouse_mode (Editing::MouseRange, false); - } + set_mouse_mode (Editing::MouseRange, false); } void