Skip to content

Commit

Permalink
Merge pull request #6087 from njvdberg/issue-305428-textline-mmrest
Browse files Browse the repository at this point in the history
Fix #305428 - TextLine doesn't cause a multi-measure break
  • Loading branch information
anatoly-os committed May 20, 2020
1 parent 7be400b commit ca7e46d
Show file tree
Hide file tree
Showing 3 changed files with 130 additions and 10 deletions.
4 changes: 2 additions & 2 deletions libmscore/layout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
78 changes: 70 additions & 8 deletions mtest/libmscore/measure/mmrest-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@
<Measure>
<voice>
<TimeSig>
<linkedMain/>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
Expand All @@ -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>
Expand Down
58 changes: 58 additions & 0 deletions mtest/libmscore/measure/mmrest.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down

0 comments on commit ca7e46d

Please sign in to comment.