Skip to content

Commit

Permalink
Merge pull request #18949 from sammik/fix-missing-keys
Browse files Browse the repository at this point in the history
fix #18906 preserve keyList if removes all instruments
  • Loading branch information
RomanPudashkin committed Aug 14, 2023
2 parents 8646d16 + fefbef3 commit c1a7925
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
4 changes: 3 additions & 1 deletion src/notation/internal/masternotationparts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,14 @@ void MasterNotationParts::setParts(const PartInstrumentList& partList, const Sco
{
TRACEFUNC;

mu::engraving::KeyList keyList = score()->keyList();

endInteractionWithScore();
startGlobalEdit();

doSetScoreOrder(order);
removeMissingParts(partList);
insertNewParts(partList);
insertNewParts(partList, keyList);
updateSoloist(partList);
sortParts(partList);
setBracketsAndBarlines();
Expand Down
9 changes: 7 additions & 2 deletions src/notation/internal/notationparts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1016,12 +1016,11 @@ void NotationParts::removeMissingParts(const PartInstrumentList& newParts)
doRemoveParts(partsToRemove);
}

void NotationParts::insertNewParts(const PartInstrumentList& parts)
void NotationParts::insertNewParts(const PartInstrumentList& parts, const mu::engraving::KeyList& keyList)
{
TRACEFUNC;

size_t partIdx = 0;
mu::engraving::KeyList keyList = score()->keyList();

for (const PartInstrument& pi: parts) {
if (pi.isExistingPart) {
Expand Down Expand Up @@ -1056,6 +1055,12 @@ void NotationParts::insertNewParts(const PartInstrumentList& parts)
}
}

void NotationParts::insertNewParts(const PartInstrumentList& parts)
{
TRACEFUNC;
insertNewParts(parts, score()->keyList());
}

void NotationParts::updateSoloist(const PartInstrumentList& parts)
{
TRACEFUNC;
Expand Down
1 change: 1 addition & 0 deletions src/notation/internal/notationparts.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ class NotationParts : public INotationParts, public async::Asyncable
void initStaff(Staff* staff, const InstrumentTemplate& templ, const mu::engraving::StaffType* staffType, size_t cleffIndex);

void removeMissingParts(const PartInstrumentList& newParts);
void insertNewParts(const PartInstrumentList& parts, const mu::engraving::KeyList& keyList);
void insertNewParts(const PartInstrumentList& parts);
void updateSoloist(const PartInstrumentList& parts);
void sortParts(const PartInstrumentList& parts);
Expand Down

0 comments on commit c1a7925

Please sign in to comment.