Courtesy Clefs should not display on final measure of section if section break occurs on non-measure MeasureBase frame

• Sep 18, 2015 - 00:53
Type
Functional
Severity
S4 - Minor
Status
closed
Project

copied from: https://musescore.org/en/node/78096

In the attached score where section breaks are placed on non-measure MeasureBase "frames":
courtesy-clef-for-section-break-on-non-measure-frame.png
notice that the courtesy clef is displayed at final measure of a section that ends with a non-measure (e.g. v_frame or h_frame), but I don't think the courtesy clef should be displayed.
I believe the issue occurs because I suspect the code to determine if a courtesty clef should be displayed at end of section is only looking if the current measure has a section break on it, but is not looking to see if subsequent MeasureBase objects in the score's measure list have a section break.

Tested on musescore 2.0.2 and latest b376184

This is similar issue to:
#73806: SECTION_BREAK on non-measure MEASURE_BASE does not incur pause before starting next section
#73801: SECTION_BREAK on non-measure MEASURE_BASE does not reset measure numbering in next section

I know how to fix. Will add a function Measure::isFinalMeasureOfSection which examines subsequent MeasureBase objects for sectionbreaks until reach an actual measure to determine if a measure is really is final actual measure of a section. Then in Clef::layout https://github.com/musescore/MuseScore/blob/master/libmscore/clef.cpp#L… I need to replace the meas->sectionBreak() with meas->isFinalMeasureOfSection().


Comments

Status (old) patch (code needs review) fixed

Fixed in branch master, commit dff272cedb

fix #78196 courtesy clefs should not display on final measure of section if section break occurs on subsequent non-measure MeasureBase frames