Skip to content

Commit

Permalink
fix #23879: unlink chord symbols within score/part
Browse files Browse the repository at this point in the history
Don't duplicate chord symbols between linked staves within a score/part.
Treat staff text similarly.
  • Loading branch information
MarcSabatella committed Dec 12, 2013
1 parent c67a0ae commit 173e640
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
16 changes: 12 additions & 4 deletions libmscore/excerpt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -404,10 +404,18 @@ void cloneStaff(Staff* srcStaff, Staff* dstStaff)
continue;
if (e->track() != srcTrack)
continue;
Element* ne = e->clone();
ne->setTrack(dstTrack);
ne->setParent(seg);
score->undoAddElement(ne);
switch (e->type()) {
// exclude certain element types
// this should be same list excluded in Score::undoAddElement()
case Element::STAFF_TEXT:
case Element::HARMONY:
continue;
default:
Element* ne = e->clone();
ne->setTrack(dstTrack);
ne->setParent(seg);
score->undoAddElement(ne);
}
}
if (oe->type() == Element::CHORD) {
Chord* och = static_cast<Chord*>(ocr);
Expand Down
11 changes: 11 additions & 0 deletions libmscore/undo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -938,6 +938,17 @@ void Score::undoAddElement(Element* element)
if (staff == ostaff)
ne = element;
else {
if (staff->rstaff() != ostaff->rstaff()) {
switch (element->type()) {
// exclude certain element types except on corresponding staff in part
// these should be same list excluded in cloneStaff()
case Element::STAFF_TEXT:
case Element::HARMONY:
continue;
default:
break;
}
}
ne = element->linkedClone();
ne->setScore(score);
ne->setSelected(false);
Expand Down

0 comments on commit 173e640

Please sign in to comment.