Merge pull request #4489 from dmitrio95/280574-ctrl-del-corruption
fix #280574: fix corruption on time delete of start of measure with full-measure rests
This commit is contained in:
commit
3db34aa471
3 changed files with 229 additions and 1 deletions
|
@ -3026,7 +3026,15 @@ void Score::timeDelete(Measure* m, Segment* startSegment, const Fraction& f)
|
|||
}
|
||||
|
||||
if (cr->isFullMeasureRest()) {
|
||||
cr->setDuration(cr->duration() - f);
|
||||
if (cr->rtick() >= tick) {
|
||||
// Move full-measure rest from the deleted area
|
||||
undoRemoveElement(cr);
|
||||
ChordRest* newCR = toChordRest(cr->clone());
|
||||
newCR->setDuration(cr->duration() - f);
|
||||
undoAddCR(newCR, m, etick);
|
||||
}
|
||||
else
|
||||
cr->undoChangeProperty(Pid::DURATION, cr->duration() - f);
|
||||
}
|
||||
// inside deleted area
|
||||
else if (s->rtick() >= tick && cetick <= etick) {
|
||||
|
|
204
mtest/testscript/scripts/#280574-ctrl-del-corruption.mscx
Normal file
204
mtest/testscript/scripts/#280574-ctrl-del-corruption.mscx
Normal file
|
@ -0,0 +1,204 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<programVersion>3.0.0</programVersion>
|
||||
<programRevision>6187abc</programRevision>
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Synthesizer>
|
||||
</Synthesizer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<pageWidth>8.27</pageWidth>
|
||||
<pageHeight>11.69</pageHeight>
|
||||
<pagePrintableWidth>7.4826</pagePrintableWidth>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="creationDate">2018-12-21</metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="platform">Linux</metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Voice-Piano-3-4</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Voice</trackName>
|
||||
<Instrument>
|
||||
<longName>Voice</longName>
|
||||
<shortName>Vo.</shortName>
|
||||
<trackName>Voice</trackName>
|
||||
<minPitchP>36</minPitchP>
|
||||
<maxPitchP>94</maxPitchP>
|
||||
<minPitchA>40</minPitchA>
|
||||
<maxPitchA>79</maxPitchA>
|
||||
<instrumentId>voice.vocals</instrumentId>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="52"/>
|
||||
<synti>Fluid</synti>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Part>
|
||||
<Staff id="2">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<bracket type="1" span="2" col="0"/>
|
||||
<barLineSpan>1</barLineSpan>
|
||||
</Staff>
|
||||
<Staff id="3">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<defaultClef>F</defaultClef>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
<synti>Fluid</synti>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>Voice-Piano-3-4</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<Measure len="1/4">
|
||||
<voice>
|
||||
<KeySig>
|
||||
<accidental>4</accidental>
|
||||
</KeySig>
|
||||
<TimeSig>
|
||||
<sigN>3</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<durationType>eighth</durationType>
|
||||
</Rest>
|
||||
<Rest>
|
||||
<durationType>eighth</durationType>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
<Staff id="2">
|
||||
<Measure len="1/4">
|
||||
<voice>
|
||||
<KeySig>
|
||||
<accidental>4</accidental>
|
||||
</KeySig>
|
||||
<TimeSig>
|
||||
<sigN>3</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>1/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
<Staff id="3">
|
||||
<Measure len="1/4">
|
||||
<voice>
|
||||
<KeySig>
|
||||
<accidental>4</accidental>
|
||||
</KeySig>
|
||||
<TimeSig>
|
||||
<sigN>3</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>1/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
16
mtest/testscript/scripts/#280574-ctrl-del-corruption.script
Normal file
16
mtest/testscript/scripts/#280574-ctrl-del-corruption.script
Normal file
|
@ -0,0 +1,16 @@
|
|||
init init/Voice-Piano-3-4.mscx
|
||||
cmd note-input
|
||||
cmd escape
|
||||
cmd pad-note-2
|
||||
cmd time-delete
|
||||
cmd note-input
|
||||
cmd escape
|
||||
cmd pad-note-8
|
||||
cmd del-empty-measures
|
||||
test score #280574-ctrl-del-corruption.mscx
|
||||
|
||||
cmd undo
|
||||
cmd undo
|
||||
cmd undo
|
||||
cmd undo
|
||||
test score init/Voice-Piano-3-4.mscx
|
Loading…
Reference in a new issue