pianoroll: correctly hide (etc.) automation when switching regions
This commit is contained in:
@@ -465,6 +465,20 @@ PianorollMidiView::have_visible_automation () const
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
PianorollMidiView::hide_all_automation ()
|
||||
{
|
||||
unset_active_automation ();
|
||||
|
||||
for (auto & [parameter,ads] : automation_map) {
|
||||
ads.hide ();
|
||||
}
|
||||
|
||||
automation_map.clear ();
|
||||
delete velocity_display;
|
||||
velocity_display = nullptr;
|
||||
}
|
||||
|
||||
void
|
||||
PianorollMidiView::toggle_visibility (Evoral::Parameter const & param)
|
||||
{
|
||||
@@ -936,3 +950,10 @@ PianorollMidiView::cut_copy_clear_one (AutomationLine& line, ::Selection& select
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
PianorollMidiView::set_region (std::shared_ptr<MidiRegion> mr)
|
||||
{
|
||||
MidiView::set_region (mr);
|
||||
hide_all_automation ();
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ class PianorollMidiView : public MidiView
|
||||
|
||||
~PianorollMidiView();
|
||||
|
||||
void set_region (std::shared_ptr<ARDOUR::MidiRegion>);
|
||||
void set_samples_per_pixel (double);
|
||||
void set_height (double);
|
||||
|
||||
@@ -61,6 +62,7 @@ class PianorollMidiView : public MidiView
|
||||
void ghost_sync_selection (NoteBase*);
|
||||
|
||||
void toggle_visibility (Evoral::Parameter const & param);
|
||||
void hide_all_automation ();
|
||||
void swap_automation_channel (int);
|
||||
void set_active_automation (Evoral::Parameter const &);
|
||||
bool is_active_automation (Evoral::Parameter const &) const;
|
||||
|
||||
Reference in New Issue
Block a user