Merge pull request #20035 from alexpavlov96/gp_hammeron_chord_stable

gp-converter: not importing extra H/P text on chords
This commit is contained in:
Alexander Pavlov 2023-11-16 02:09:29 +09:00 committed by GitHub
commit fe7ec74794
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -1287,6 +1287,7 @@ void GPConverter::addContinuousSlideHammerOn()
};
std::unordered_map<Note*, Slur*> legatoSlides;
std::unordered_set<Chord*> hammerOnInChord;
for (const auto& slide : _slideHammerOnMap) {
Note* startNote = slide.first;
Note* endNote = searchEndNote(startNote);
@ -1339,7 +1340,12 @@ void GPConverter::addContinuousSlideHammerOn()
// TODO-gp: implement for editing too. Now works just for import.
if (slide.second == SlideHammerOn::HammerOn) {
Measure* measure = startNote->chord()->measure();
Chord* startChord = startNote->chord();
if (hammerOnInChord.find(startChord) != hammerOnInChord.end()) {
continue;
}
Measure* measure = startChord->measure();
auto midTick = (startTick + endTick) / 2;
Segment* segment = measure->getSegment(SegmentType::ChordRest, midTick);
@ -1349,6 +1355,7 @@ void GPConverter::addContinuousSlideHammerOn()
staffText->setPlainText(hammerText);
staffText->setTrack(track);
segment->add(staffText);
hammerOnInChord.insert(startChord);
}
}
}