13
0

Merge branch 'ardour'

This commit is contained in:
Paul Davis 2024-06-21 15:47:23 -06:00
commit 765a8b3303
5 changed files with 28 additions and 12 deletions

View File

@ -1920,7 +1920,7 @@ AudioRegionView::show_xfades ()
void
AudioRegionView::drag_start ()
{
TimeAxisViewItem::drag_start ();
RegionView::drag_start ();
//we used to hide xfades here. I don't see the point with the new model, but we can re-implement if needed
}

View File

@ -2795,11 +2795,12 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
rv->trim_front_starting ();
}
rv->drag_start ();
AudioRegionView* const arv = dynamic_cast<AudioRegionView*> (rv);
if (arv) {
arv->temporarily_hide_envelope ();
arv->drag_start ();
}
std::shared_ptr<Playlist> pl = rv->region ()->playlist ();
@ -2875,10 +2876,13 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
}
}
bool changed = false;
switch (_operation) {
case StartTrim:
for (list<DraggingView>::iterator i = _views.begin (); i != _views.end (); ++i) {
bool changed = i->view->trim_front (timepos_t (i->initial_position) + dt, non_overlap_trim);
changed = i->view->trim_front (timepos_t (i->initial_position) + dt, non_overlap_trim);
if (changed && _preserve_fade_anchor) {
AudioRegionView* arv = dynamic_cast<AudioRegionView*> (i->view);
@ -2899,7 +2903,7 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
case EndTrim:
for (list<DraggingView>::iterator i = _views.begin (); i != _views.end (); ++i) {
bool changed = i->view->trim_end (timepos_t (i->initial_end) + dt, non_overlap_trim);
changed = i->view->trim_end (timepos_t (i->initial_end) + dt, non_overlap_trim);
if (changed && _preserve_fade_anchor) {
AudioRegionView* arv = dynamic_cast<AudioRegionView*> (i->view);
@ -2917,6 +2921,13 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
break;
}
if (changed) {
for (list<DraggingView>::const_iterator i = _views.begin (); i != _views.end (); ++i) {
StreamView* sv = i->view->get_time_axis_view ().view ();
sv->update_coverage_frame ();
}
}
switch (_operation) {
case StartTrim:
show_verbose_cursor_time (rv->region ()->position ());

View File

@ -963,17 +963,22 @@ RegionView::set_height (double h)
}
}
void
RegionView::clear_coverage_frame ()
{
for (auto& i : _coverage_frame) {
delete i;
}
_coverage_frame.clear ();
}
/** Remove old coverage frame and make new ones, if we're in a LayerDisplay mode
* which uses them. */
void
RegionView::update_coverage_frame (LayerDisplay d)
{
/* remove old coverage frame */
for (auto& i : _coverage_frame) {
delete i;
}
_coverage_frame.clear ();
clear_coverage_frame ();
if (d != Stacked) {
/* don't do coverage frame unless we're in stacked mode */

View File

@ -238,6 +238,8 @@ private:
void update_cue_markers ();
void clear_coverage_frame ();
struct ViewCueMarker {
ArdourMarker* view_marker;
ARDOUR::CueMarker model_marker;

View File

@ -126,6 +126,7 @@ public:
void check_record_layers (std::shared_ptr<ARDOUR::Region>, ARDOUR::samplepos_t);
virtual void playlist_layered (std::weak_ptr<ARDOUR::Track>);
void update_coverage_frame ();
sigc::signal<void, RegionView*> RegionViewAdded;
sigc::signal<void> RegionViewRemoved;
@ -193,9 +194,6 @@ protected:
*/
samplepos_t _new_rec_layer_time;
void setup_new_rec_layer_time (std::shared_ptr<ARDOUR::Region>);
private:
void update_coverage_frame ();
};
#endif /* __ardour_streamview_h__ */