From ff988eec37dc3f37c248659e0459a2c9f1752bc7 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 11 Jul 2025 13:27:55 -0600 Subject: [PATCH] fix one of 3 editing context refactoring warnings --- gtk2_ardour/midi_region_view.cc | 18 ++++++++++++++++++ gtk2_ardour/midi_region_view.h | 1 + gtk2_ardour/midi_view.cc | 11 +---------- gtk2_ardour/midi_view.h | 1 + 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index d60a83313b..39959d1b11 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -759,3 +759,21 @@ MidiRegionView::trim_front_ending () midi_region()->fix_negative_start (_editing_context.history()); } } + +bool +MidiRegionView::post_paste (Temporal::timepos_t const & pos, const ::Selection& selection, PasteContext& ctx) +{ + // Paste control points to automation children, if available + + typedef RouteTimeAxisView::AutomationTracks ATracks; + ATracks const & atracks = dynamic_cast(&trackview)->automation_tracks(); + bool commit = false; + + for (auto & at : atracks) { + if (at.second->paste(pos, selection, ctx)) { + commit = true; + } + } + + return commit; +} diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h index a411595f8f..eff7b57c64 100644 --- a/gtk2_ardour/midi_region_view.h +++ b/gtk2_ardour/midi_region_view.h @@ -149,6 +149,7 @@ public: void region_resized (const PBD::PropertyChange&); bool canvas_group_event (GdkEvent*); void add_control_points_to_selection (Temporal::timepos_t const &, Temporal::timepos_t const &, double y0, double y1); + bool post_paste (Temporal::timepos_t const & pos, const ::Selection& selection, PasteContext& ctx); private: diff --git a/gtk2_ardour/midi_view.cc b/gtk2_ardour/midi_view.cc index 01f9014f64..efcc82dc4d 100644 --- a/gtk2_ardour/midi_view.cc +++ b/gtk2_ardour/midi_view.cc @@ -4167,16 +4167,7 @@ MidiView::paste (timepos_t const & pos, const ::Selection& selection, PasteConte paste_internal (pos, ctx.count, ctx.times, **m); } -#warning paul fix MRV/MV -#if 0 - // Paste control points to automation children, if available - for (auto & at : midi_view()->automation_tracks()) { - if (at.second->paste(pos, selection, ctx)) { - commit = true; - } - } -#endif - return commit; + return post_paste (pos, selection, ctx) || commit; } /** undo commands were initiated at the 'action' level. ::paste and ::paste_internal should implement subcommands */ diff --git a/gtk2_ardour/midi_view.h b/gtk2_ardour/midi_view.h index 6b47a76878..fc7031362a 100644 --- a/gtk2_ardour/midi_view.h +++ b/gtk2_ardour/midi_view.h @@ -695,6 +695,7 @@ class MidiView : public virtual sigc::trackable, public LineMerger virtual void add_control_points_to_selection (Temporal::timepos_t const &, Temporal::timepos_t const &, double y0, double y1) {} void color_note (NoteBase*, int channel); + virtual bool post_paste (Temporal::timepos_t const & pos, const ::Selection& selection, PasteContext& ctx) { return false; } };