Changing clef with courtesy disabled changes courtesy but not main clef

• Dec 24, 2018 - 18:13
Reported version
3.0
Priority
P0 - Critical
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
Yes
Workaround
No
Project

OS: openSUSE Leap 15.0, Arch.: x86_64, MuseScore version (64-bit): 3.0.0., revision: 95066ba

Steps to reproduce:

  • Add a clef at the beginning of a system
  • deselect "show courtesy" inside the inspector

Expected result: the courtesy disappear
Actual result: courtesy stay visible


Comments

Title Deactivating "show courtesy" for clefs doesn't work Changing clef with courtesy disabled changes courtesy but not main clef

I went to see about fixing this, and find I cannot reproduce on current master. So it seems to have been fixed at some point since 3.0.2 0 very possibly as part of the tick/fraction changeover, possibly in https://github.com/musescore/MuseScore/pull/3694. Although space for the clef remains, so it's not ideal. I think that's because Measure::addSystemTrailer() is simply calling clef->clear() rather than actually deleting the clef.

However, there are other worse problems associated with disabling courtesy clefs, in current master as well as 3.0.2. After disabling "show courtesy" for a clef change at the start of a line, try changing the clef. Nothing will appear to happen to the clef you just changed. In 3.0.2, the still-visible courtesy changes, as do other clefs on subsequent systems. Re-enable show courtesy and you will see the courtesy clef is correct but not the one at the start of the system. The courtesy is actually a "real" clef (clef changes normally occur before the barline), so presumably we are simply not realizing we need to change both. Deleting the "stuck" clef works, and then all seems well. In 3.0.2 I get worse behavior the more I play with this, at one point ending up with two different courtesy clefs at the end of a system (this was after a save/reload, which at least initially seemed to have fixed the original not-going-away courtesy clef problem.