mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-20 12:26:07 +01:00
Don't re-create MIDI Region Editor when it already exists
This commit is contained in:
parent
724340ce11
commit
aba8595342
3 changed files with 16 additions and 21 deletions
|
|
@ -9581,10 +9581,9 @@ Editor::temporal_zoom_extents ()
|
|||
void
|
||||
Editor::edit_region_in_pianoroll_window ()
|
||||
{
|
||||
selection->foreach_midi_regionview (&MidiRegionView::edit_in_pianoroll_window);
|
||||
selection->foreach_midi_regionview (&MidiRegionView::show_region_editor);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Editor::find_and_display_track ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -701,23 +701,6 @@ MidiRegionView::add_control_points_to_selection (timepos_t const & start, timepo
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
MidiRegionView::edit_in_pianoroll_window ()
|
||||
{
|
||||
std::shared_ptr<MidiTrack> track = std::dynamic_pointer_cast<MidiTrack> (trackview.stripable());
|
||||
assert (track);
|
||||
|
||||
PianorollWindow* pr = new PianorollWindow (string_compose (_("Pianoroll: %1"), _region->name()), track->session());
|
||||
|
||||
pr->set (track, midi_region());
|
||||
pr->set_show_source (false);
|
||||
pr->show_all ();
|
||||
pr->present ();
|
||||
|
||||
pr->signal_delete_event().connect (sigc::mem_fun (*this, &MidiRegionView::pianoroll_window_deleted), false);
|
||||
_editor = pr;
|
||||
}
|
||||
|
||||
bool
|
||||
MidiRegionView::pianoroll_window_deleted (GdkEventAny*)
|
||||
{
|
||||
|
|
@ -728,7 +711,21 @@ MidiRegionView::pianoroll_window_deleted (GdkEventAny*)
|
|||
void
|
||||
MidiRegionView::show_region_editor ()
|
||||
{
|
||||
edit_in_pianoroll_window ();
|
||||
if (!_editor) {
|
||||
std::shared_ptr<MidiTrack> track = std::dynamic_pointer_cast<MidiTrack> (trackview.stripable());
|
||||
assert (track);
|
||||
|
||||
PianorollWindow* pr = new PianorollWindow (string_compose (_("Pianoroll: %1"), _region->name()), track->session());
|
||||
|
||||
pr->set (track, midi_region());
|
||||
pr->set_show_source (false);
|
||||
|
||||
pr->signal_delete_event().connect (sigc::mem_fun (*this, &MidiRegionView::pianoroll_window_deleted), false);
|
||||
_editor = pr;
|
||||
}
|
||||
|
||||
_editor->show_all ();
|
||||
_editor->present ();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -134,7 +134,6 @@ public:
|
|||
void set_visibility_note_range (MidiViewBackground::VisibleNoteRange, bool);
|
||||
|
||||
MergeableLine* make_merger ();
|
||||
void edit_in_pianoroll_window ();
|
||||
void show_region_editor ();
|
||||
void hide_region_editor ();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue