diff options
author | nick_m <mainsbridge@gmail.com> | 2015-11-01 05:22:55 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-11-01 05:22:55 +1100 |
commit | 336f8d47fe810ee9d057632854e009f1616d272e (patch) | |
tree | e491f108f3b74b676dd26253b542ad983ecd03ed /gtk2_ardour/editor.cc | |
parent | 0e809dd1d5add0aa9ad9c931da812dad60faa7c6 (diff) |
Clarify context menu for midi notes.
- right click on a note selects it if unselected or selection empty.
- note_context_menu is shown as described in #6348
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 4a559167e8..5601fd4987 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -5954,22 +5954,38 @@ Editor::popup_note_context_menu (ArdourCanvas::Item* item, GdkEvent* event) MidiRegionView& mrv = note->region_view(); const RegionSelection rs = get_regions_from_selection_and_entered (); + const uint32_t sel_size = mrv.selection_size (); MenuList& items = _note_context_menu.items(); items.clear(); - items.push_back(MenuElem(_("Delete"), - sigc::mem_fun(mrv, &MidiRegionView::delete_selection))); - items.push_back(MenuElem(_("Edit..."), - sigc::bind(sigc::mem_fun(*this, &Editor::edit_notes), &mrv))); + if (sel_size > 0) { + items.push_back(MenuElem(_("Delete"), + sigc::mem_fun(mrv, &MidiRegionView::delete_selection))); + } + + if (sel_size == 1) { + items.push_back(MenuElem(_("Edit..."), + sigc::bind(sigc::mem_fun(*this, &Editor::edit_notes), &mrv))); + } + items.push_back(MenuElem(_("Transpose..."), sigc::bind(sigc::mem_fun(*this, &Editor::transpose_regions), rs))); - items.push_back(MenuElem(_("Legatize"), - sigc::bind(sigc::mem_fun(*this, &Editor::legatize_regions), rs, false))); + + if (sel_size > 1) { + items.push_back(MenuElem(_("Legatize"), + sigc::bind(sigc::mem_fun(*this, &Editor::legatize_regions), rs, false))); + } + items.push_back(MenuElem(_("Quantize..."), sigc::bind(sigc::mem_fun(*this, &Editor::quantize_regions), rs))); - items.push_back(MenuElem(_("Remove Overlap"), - sigc::bind(sigc::mem_fun(*this, &Editor::legatize_regions), rs, true))); + + if (sel_size > 1) { + items.push_back(MenuElem(_("Remove Overlap"), + sigc::bind(sigc::mem_fun(*this, &Editor::legatize_regions), rs, true))); + + } + items.push_back(MenuElem(_("Transform..."), sigc::bind(sigc::mem_fun(*this, &Editor::transform_regions), rs))); |