Changing clef with courtesy disabled changes courtesy but not main clef

• Dec 24, 2018 - 18:13
Reported version
P0 - Critical
S3 - Major

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


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 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.

Severity S4 - Minor S3 - Major
Status needs info active
Workaround No Yes

What I describe just above still happens. Here are precise steps:

1) default score
2) add bass clef to measure 5 (first measure of second system)
3) use Inspector to disable "Show courtesy".
4) select the bass clef again if necessary, double-click alto clef in palette

Result: nothing happens. Drag & drop doesn't work either - not dropping onto the clef or dropping onto the measure. Workaround is to delete the bass clef, then you'll see the alto clef. I think the alto clef must have been added in the first place, but only at the end of the previous system, and the bass clef at the start of the next was immediately overriding it.

Oddly enough, I just ran into this yesterday in one of my scores. Or something extremely similar, it involved section breaks rather than explicitly disabling "Show courtesy". But I can't manage to reproduce that. Maybe I had disabled show courtesy after all, but I didn't think I had.

In reply to by Marc Sabatella

So I misunderstood, this indeed can be reproduced and I can imagine it being troublesome, although the workaround will then immediately come into mind.

And the new alto clef doesn't have courtesy too, despite the inspector saying it has. But untick and retick courtesy does show the courtesy clef.

Fix version