temporal: paste needs to add to _points

This commit is contained in:
Paul Davis 2023-06-07 13:39:08 -06:00
parent 24f6c51de6
commit 1cf4f9293c

View File

@ -977,12 +977,14 @@ TempoMap::paste (TempoMapCutBuffer const & cb, timepos_t const & position, bool
if (st) {
TempoPoint *ntp = new TempoPoint (*this, *st, position.superclocks(), pos_beats, pos_bbt);
core_add_tempo (ntp, replaced_ignored);
core_add_point (ntp);
}
Meter const * mt = cb.start_meter();
if (mt) {
MeterPoint *ntp = new MeterPoint (*this, *mt, position.superclocks(), pos_beats, pos_bbt);
core_add_meter (ntp, replaced_ignored);
core_add_point (ntp);
}
for (auto const & p : cb.points()) {
@ -994,15 +996,18 @@ TempoMap::paste (TempoMapCutBuffer const & cb, timepos_t const & position, bool
MusicTimePoint *ntp = new MusicTimePoint (*mtp);
ntp->set (ntp->sclock() + position.superclocks(), ntp->beats() + position.beats(), ntp->bbt());
core_add_bartime (ntp, replaced_ignored);
core_add_point (ntp);
} else {
if ((tp = dynamic_cast<TempoPoint const *> (&p))) {
TempoPoint *ntp = new TempoPoint (*tp);
ntp->set (ntp->sclock() + position.superclocks(), ntp->beats() + position.beats(), ntp->bbt());
core_add_tempo (ntp, replaced_ignored);
core_add_point (ntp);
} else if ((mp = dynamic_cast<MeterPoint const *> (&p))) {
MeterPoint *ntp = new MeterPoint (*mp);
ntp->set (ntp->sclock() + position.superclocks(), ntp->beats() + position.beats(), ntp->bbt());
core_add_meter (ntp, replaced_ignored);
core_add_point (ntp);
}
}
}
@ -1015,11 +1020,13 @@ TempoMap::paste (TempoMapCutBuffer const & cb, timepos_t const & position, bool
if (st) {
TempoPoint *ntp = new TempoPoint (*this, *st, end_position.superclocks(), pos_beats, pos_bbt);
core_add_tempo (ntp, replaced_ignored);
core_add_point (ntp);
}
mt = cb.end_meter();
if (mt) {
MeterPoint *ntp = new MeterPoint (*this, *mt, end_position.superclocks(), pos_beats, pos_bbt);
core_add_meter (ntp, replaced_ignored);
core_add_point (ntp);
}
}