Merge pull request #6087 from njvdberg/issue-305428-textline-mmrest

Fix #305428 - TextLine doesn't cause a multi-measure break
This commit is contained in:
anatoly-os 2020-05-18 07:35:43 -07:00
parent 7be400bc34
commit ca7e46d422
3 changed files with 130 additions and 10 deletions

View file

@ -2171,8 +2171,8 @@ static bool breakMultiMeasureRest(Measure* m)
auto sl = m->score()->spannerMap().findOverlapping(m->tick().ticks(), m->endTick().ticks());
for (auto i : sl) {
Spanner* s = i.value;
// break for first measure of volta and first measure *after* volta
if (s->isVolta() && (s->tick() == m->tick() || s->tick2() == m->tick()))
// break for first measure of volta or textline and first measure *after* volta
if ((s->isVolta() || s->isTextLine()) && (s->tick() == m->tick() || s->tick2() == m->tick()))
return true;
}

View file

@ -97,7 +97,6 @@
<Measure>
<voice>
<TimeSig>
<linkedMain/>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
@ -107,19 +106,82 @@
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Spanner type="TextLine">
<TextLine>
<endHookType>1</endHookType>
<beginText>VII</beginText>
<Segment>
<subtype>0</subtype>
<offset x="0" y="-1"/>
<off2 x="0.106397" y="0"/>
</Segment>
</TextLine>
<next>
<location>
<measures>3</measures>
</location>
</next>
</Spanner>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure len="12/4">
<multiMeasureRest>3</multiMeasureRest>
<LayoutBreak>
<subtype>line</subtype>
</LayoutBreak>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>12/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<LayoutBreak>
<subtype>line</subtype>
</LayoutBreak>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Spanner type="TextLine">
<prev>
<location>
<measures>-3</measures>
</location>
</prev>
</Spanner>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure len="16/4">
<multiMeasureRest>4</multiMeasureRest>
<LayoutBreak>
<subtype>line</subtype>
</LayoutBreak>
<voice>
<TimeSig>
<linked>
<indexDiff>-1</indexDiff>
</linked>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
<Rest>
<durationType>measure</durationType>
<duration>16/4</duration>

View file

@ -105,6 +105,64 @@
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Spanner type="TextLine">
<TextLine>
<endHookType>1</endHookType>
<beginText>VII</beginText>
<Segment>
<subtype>0</subtype>
<offset x="0" y="-1"/>
<off2 x="0.106397" y="0"/>
</Segment>
</TextLine>
<next>
<location>
<measures>3</measures>
</location>
</next>
</Spanner>
<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>line</subtype>
</LayoutBreak>
<voice>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Spanner type="TextLine">
<prev>
<location>
<measures>-3</measures>
</location>
</prev>
</Spanner>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Rest>