mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 06:44:57 +01:00
Add GUI support to remove SysEx Events
This commit is contained in:
parent
75d2b46ded
commit
3766b22e06
3 changed files with 41 additions and 31 deletions
|
|
@ -927,7 +927,6 @@ MidiRegionView::clear_events ()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
_note_group->clear (true);
|
||||
_events.clear();
|
||||
_patch_changes.clear();
|
||||
|
|
@ -1460,6 +1459,8 @@ MidiRegionView::display_sysexes()
|
|||
|
||||
const std::shared_ptr<MidiRegion> mregion (midi_region());
|
||||
|
||||
SysExes to_remove = _sys_exes;
|
||||
|
||||
for (MidiModel::SysExes::const_iterator i = _model->sysexes().begin(); i != _model->sysexes().end(); ++i) {
|
||||
MidiModel::SysExPtr sysex_ptr = *i;
|
||||
timepos_t time = timepos_t (sysex_ptr->time());
|
||||
|
|
@ -1490,11 +1491,12 @@ MidiRegionView::display_sysexes()
|
|||
|
||||
if (!sysex) {
|
||||
sysex = std::shared_ptr<SysEx>(
|
||||
new SysEx (*this, _note_group, text, height, x, 1.0, sysex_ptr));
|
||||
new SysEx (*this, group, text, height, x, 1.0, sysex_ptr));
|
||||
_sys_exes.insert (make_pair (sysex_ptr, sysex));
|
||||
} else {
|
||||
sysex->set_height (height);
|
||||
sysex->item().set_position (ArdourCanvas::Duple (x, 1.0));
|
||||
to_remove.erase (sysex_ptr);
|
||||
}
|
||||
|
||||
// Show unless message is beyond the region bounds
|
||||
|
|
@ -1504,6 +1506,10 @@ MidiRegionView::display_sysexes()
|
|||
sysex->show();
|
||||
}
|
||||
}
|
||||
|
||||
for (auto const& i : to_remove ) {
|
||||
_sys_exes.erase (i.first);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -4537,16 +4543,13 @@ MidiRegionView::edit_patch_change (PatchChange* pc)
|
|||
}
|
||||
|
||||
void
|
||||
MidiRegionView::delete_sysex (SysEx* /*sysex*/)
|
||||
MidiRegionView::delete_sysex (SysEx* sysex)
|
||||
{
|
||||
// CAIROCANVAS
|
||||
// sysyex object doesn't have a pointer to a sysex event
|
||||
// MidiModel::SysExDiffCommand* c = _model->new_sysex_diff_command (_("delete sysex"));
|
||||
// c->remove (sysex->sysex());
|
||||
// _model->apply_command (*trackview.session(), c);
|
||||
MidiModel::SysExDiffCommand* c = _model->new_sysex_diff_command (_("delete sysex"));
|
||||
c->remove (sysex->sysex ());
|
||||
_model->apply_diff_command_as_commit (*trackview.session(), c);
|
||||
|
||||
//_sys_exes.clear ();
|
||||
// display_sysexes();
|
||||
display_sysexes();
|
||||
}
|
||||
|
||||
std::string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue