Skip to content

Commit

Permalink
Fix GH#24809: In section breaks, take also frames into account
Browse files Browse the repository at this point in the history
Backport of musescore#24817
  • Loading branch information
sammik authored and Jojo-Schmitz committed Sep 27, 2024
1 parent 6bf4aed commit c251674
Show file tree
Hide file tree
Showing 5 changed files with 345 additions and 6 deletions.
12 changes: 8 additions & 4 deletions libmscore/measure.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -508,8 +508,7 @@ bool Measure::showsMeasureNumberInAutoMode()

// Measure numbers should not show on first measure unless specified with Sid::showMeasureNumberOne
// except, when showing numbers on each measure, and first measure is after anacrusis - then show always
if (!prevMeasure || prevMeasure->sectionBreak()
|| (prevMeasure->irregular() && prevMeasure->isFirstInSection() && interval != 1))
if (isFirstInSection() || (prevMeasure->irregular() && prevMeasure->isFirstInSection() && interval != 1))
return score()->styleB(Sid::showMeasureNumberOne);

if (score()->styleB(Sid::measureNumberSystem))
Expand Down Expand Up @@ -2618,8 +2617,13 @@ bool Measure::isFirstInSystem() const

bool Measure::isFirstInSection() const
{
Measure* prevMeasure = this->prevMeasure();
return !prevMeasure || prevMeasure->sectionBreak();
for (MeasureBase* m = prev(); m; m = m->prev()) {
if (m->sectionBreak())
return true;
else if (m->isMeasure())
return false;
}
return true;
}

//---------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion vtest/gen
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ else
layout-sequence-5 layout-sequence-6 layout-sequence-7 layout-sequence-8\
layout-sequence-9 layout-sequence-10 layout-sequence-11 layout-sequence-12\
layout-sequence-13 layout-sequence-14 layout-sequence-15 layout-sequence-16\
measure-number-1 measure-number-2 measure-number-3 measure-number-4 measure-number-5\
measure-number-1 measure-number-2 measure-number-3 measure-number-4 measure-number-5 measure-number-6\
custom-keysig-1 custom-keysig-2 custom-keysig-3 custom-keysig-4"
fi

Expand Down
2 changes: 1 addition & 1 deletion vtest/gen.bat
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ set SRC=bravura-mmrest,gonville-mmrest, ^
layout-sequence-5,layout-sequence-6,layout-sequence-7,layout-sequence-8, ^
layout-sequence-9,layout-sequence-10,layout-sequence-11,layout-sequence-12, ^
layout-sequence-13, layout-sequence-14, layout-sequence-15,layout-sequence-16, ^
measure-number-1,measure-number-2,measure-number-3,measure-number-4,measure-number-5 ^
measure-number-1,measure-number-2,measure-number-3,measure-number-4,measure-number-5 measure-number-6 ^
custom-keysig-1,custom-keysig-2,custom-keysig-2,custom-keysig-3,custom-keysig-4

IF NOT "%1"=="" (
Expand Down
Binary file added vtest/measure-number-6-ref.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
335 changes: 335 additions & 0 deletions vtest/measure-number-6.mscx
Original file line number Diff line number Diff line change
@@ -0,0 +1,335 @@
<?xml version="1.0" encoding="UTF-8"?>
<museScore version="3.02">
<programVersion>3.6.3</programVersion>
<programRevision></programRevision>
<Score>
<LayerTag id="0" tag="default"></LayerTag>
<currentLayer>0</currentLayer>
<Division>480</Division>
<Style>
<pageWidth>8.5</pageWidth>
<pageHeight>11</pageHeight>
<pagePrintableWidth>7.3189</pagePrintableWidth>
<pageEvenLeftMargin>0.590551</pageEvenLeftMargin>
<pageOddLeftMargin>0.590551</pageOddLeftMargin>
<pageEvenTopMargin>0.590551</pageEvenTopMargin>
<pageEvenBottomMargin>0.590551</pageEvenBottomMargin>
<pageOddTopMargin>0.590551</pageOddTopMargin>
<pageOddBottomMargin>0.590551</pageOddBottomMargin>
<enableVerticalSpread>1</enableVerticalSpread>
<lyricsMinBottomDistance>1.5</lyricsMinBottomDistance>
<lyricsDashMaxLength>0.6</lyricsDashMaxLength>
<lyricsMelismaPad>0.2</lyricsMelismaPad>
<lyricsDashYposRatio>0.5</lyricsDashYposRatio>
<minMMRestWidth>6</minMMRestWidth>
<ArpeggioNoteDistance>0.4</ArpeggioNoteDistance>
<ArpeggioAccidentalDistance>0.3</ArpeggioAccidentalDistance>
<barreLineWidth>0.85</barreLineWidth>
<scaleBarlines>0</scaleBarlines>
<systemAlign>left,top</systemAlign>
<staffAlign>left,top</staffAlign>
<headerAlign>center,top</headerAlign>
<footerAlign>center,bottom</footerAlign>
<stickingAlign>center,baseline</stickingAlign>
<palmMutePosAbove x="0" y="0"/>
<palmMutePosBelow x="0" y="0"/>
<Spatium>1.74978</Spatium>
</Style>
<showInvisible>1</showInvisible>
<showUnprintable>1</showUnprintable>
<showFrames>1</showFrames>
<showMargins>0</showMargins>
<metaTag name="arranger"></metaTag>
<metaTag name="composer">Composer / arranger</metaTag>
<metaTag name="copyright"></metaTag>
<metaTag name="creationDate">2024-09-19</metaTag>
<metaTag name="lyricist"></metaTag>
<metaTag name="movementNumber"></metaTag>
<metaTag name="movementTitle"></metaTag>
<metaTag name="mscVersion">3.02</metaTag>
<metaTag name="platform">Linux</metaTag>
<metaTag name="poet"></metaTag>
<metaTag name="source"></metaTag>
<metaTag name="subtitle">Subtitle</metaTag>
<metaTag name="translator"></metaTag>
<metaTag name="workNumber"></metaTag>
<metaTag name="workTitle">Untitled score</metaTag>
<Order id="orchestra" customized="1">
<name>Orchestra</name>
<instrument id="oboe">
<family id="oboes">Oboen</family>
</instrument>
<section id="woodwind" brackets="true" showSystemMarkings="true" barLineSpan="true" thinBrackets="true">
<family>flutes</family>
<family>oboes</family>
<family>clarinets</family>
<family>saxophones</family>
<family>bassoons</family>
<unsorted group="woodwinds"/>
</section>
<section id="brass" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>horns</family>
<family>trumpets</family>
<family>cornets</family>
<family>flugelhorns</family>
<family>trombones</family>
<family>baritone-horns</family>
<family>euphoniums</family>
<family>tubas</family>
</section>
<section id="timpani" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>timpani</family>
</section>
<section id="percussion" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>keyboard-percussion</family>
<family>drums</family>
<family>unpitched-metal-percussion</family>
<family>unpitched-wooden-percussion</family>
<family>other-percussion</family>
</section>
<family>keyboards</family>
<family>harps</family>
<family>organs</family>
<family>synths</family>
<section id="plucked-strings" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>plucked-strings</family>
</section>
<soloists/>
<section id="voices" brackets="true" showSystemMarkings="false" barLineSpan="false" thinBrackets="true">
<family>voices</family>
</section>
<section id="strings" brackets="true" showSystemMarkings="true" barLineSpan="true" thinBrackets="true">
<family>orchestral-strings</family>
</section>
<unsorted/>
</Order>
<Part>
<Staff id="1">
<StaffType group="pitched">
<name>stdNormal</name>
</StaffType>
</Staff>
<trackName>Oboe</trackName>
<Instrument id="oboe">
<longName>Oboe</longName>
<shortName>Ob.</shortName>
<trackName>Oboe</trackName>
<minPitchP>58</minPitchP>
<maxPitchP>96</maxPitchP>
<minPitchA>58</minPitchA>
<maxPitchA>87</maxPitchA>
<instrumentId>wind.reed.oboe</instrumentId>
<Channel>
<controller ctrl="32" value="17"/>
<program value="68"/>
<synti>Fluid</synti>
</Channel>
</Instrument>
</Part>
<Staff id="1">
<VBox>
<height>10</height>
<Text>
<style>Title</style>
<text>Measure numbers</text>
</Text>
<Text>
<style>Subtitle</style>
<text>Hide first - section break test</text>
</Text>
<Text>
<style>Composer</style>
<text>Composer / arranger</text>
</Text>
</VBox>
<Measure>
<voice>
<TimeSig>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<LayoutBreak>
<subtype>section</subtype>
</LayoutBreak>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<HBox>
<width>5</width>
<LayoutBreak>
<subtype>section</subtype>
</LayoutBreak>
</HBox>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<LayoutBreak>
<subtype>section</subtype>
</LayoutBreak>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<HBox>
<width>5</width>
</HBox>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<HBox>
<width>5</width>
<LayoutBreak>
<subtype>section</subtype>
</LayoutBreak>
</HBox>
<HBox>
<width>5</width>
</HBox>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
</Staff>
</Score>
</museScore>

0 comments on commit c251674

Please sign in to comment.