multi-staff implode doesn't work when selection is a single measure or smaller

• Dec 30, 2018 - 04:00
Reported version
3.0
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
No
Project

If the end measure and start measure of a multi-staff implode were identical, the implode wouldn't do anything. Here I start with a chord in staff 1, explode it (which works correctly), but then subsequent implode fails to do anything:

implode-not-working.gif


Comments

In reply to by ciospe

Putting notes from different staves to different voices is by design. It makes it easy to create parts if you use this feature to condense a large score. Once you have everything in multiple voices, you can use implode only on that staff to consolidate the notes into voice 1.

Great to know. So, to get notes from different staves condensed in a single staff (and also in single voice 1) one have to run the Implode command twice:
1st time: to condense notes from different staves to single staff (but in different voices)
2nd time: to condence notes further, from different voices to single one.
At this point, the only bug remaining on Inplode command remains the fact that it doesn't work if selection is spanning only one measure (or less).

Ericfontainejazz wrote code to fix it. Hopefully Anatoly-os will include it in the next release. You will see messages in this report if that happens.

Status PR created fixed

Fixed in branch master, commit ef18ff325e

_fix #280900 Implode Single Measure

Fixes a bug where if single measure (or smaller) range was selected, then multi-staff implode wouldn't do anything. Also fixs case where endMeasure is the only measure which in selection which contains voices. Code from commit 961782a likely caused this regression.

The fix is to change structure of the loop iterating over measures from a for loop to a do while loop, to ensure that the loop body always runs for startMeasure. And also makes sure to run the body of the loop for endMeasure._

Fix version
3.0.3