From f05a051ea45087c29d27c23c470d602d6fe8676d Mon Sep 17 00:00:00 2001 From: ws Date: Sun, 24 Aug 2014 10:32:32 +0200 Subject: [PATCH] fix #29616 --- libmscore/transpose.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/libmscore/transpose.cpp b/libmscore/transpose.cpp index 4914c939dda3..6e38ea63b454 100644 --- a/libmscore/transpose.cpp +++ b/libmscore/transpose.cpp @@ -379,11 +379,14 @@ void Score::transpose(TransposeMode mode, TransposeDirection direction, Key trKe } } else if (e->type() == Element::Type::KEYSIG && trKeys && mode != TransposeMode::DIATONICALLY) { - KeySig* ks = static_cast(e); - Key nKey = transposeKey(ks->key(), interval); - KeySigEvent ke = ks->keySigEvent(); - ke.setKey(nKey); - undo(new ChangeKeySig(ks, ke, ks->showCourtesy())); + QList ll = e->linkList(); + for (Element* e : ll) { + KeySig* ks = static_cast(e); + Key nKey = transposeKey(ks->key(), interval); + KeySigEvent ke = ks->keySigEvent(); + ke.setKey(nKey); + undo(new ChangeKeySig(ks, ke, ks->showCourtesy())); + } } } if (transposeChordNames) { @@ -432,7 +435,11 @@ void Score::transposeKeys(int staffStart, int staffEnd, int tickStart, int tickE Key key = st->key(s->tick()); Key nKey = transposeKey(key, interval); KeySigEvent ke(nKey); - undo(new ChangeKeySig(ks, ke, ks->showCourtesy())); + QList ll = ks->linkList(); + for (Element* e : ll) { + KeySig* ks = static_cast(e); + undo(new ChangeKeySig(ks, ke, ks->showCourtesy())); + } } } }