String number under slur interferes with slur.

• Mar 13, 2020 - 18:38
Reported version
3.4
Type
Functional
Frequency
Few
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project

1) Create a simple score with 4 notes.
2) Create a slur of all 4 notes.
3) Select a note.
4) Drag a String Number from the Fingering Palette to a note.

Result:
img1.png

Expected result:
img2.png

After a relayout, e.g. adding or moving an element, the layout changes and the expected result is shown.

When the file is saved and reloaded the slur is again to low. This is the same as in issue #297501: Layout shift of slur after reload.

Attachment Size
img1.png 5.25 KB
img2.png 5.6 KB

Comments

Status PR created fixed

Fixed in branch master, commit 8f1d51af2a

_fix #302316, fix #297501 - slurs and fingering

When a score, containing a fingering under a slur is loaded, the slur crosses the fingering.
Only after a relayout the slur is drawn higher so it won't intersect the fingering (issue

The root cause of this issue is the shapes of the fingering elements where not available
when the bezier of the slur is calculated. The fingering shapes are calculated after the
slur bezier is calculated. This explains why a relayout will solve the issue, then the
fingering shapes are available. The shapes are calculated during the calculation of the
note shapes but there was no call the fingering layout() method, making the bbox of
the fingering shape invalid and therefor it is not added.

This issue is solved by, in Score::layoutSystemElements(), calling the
Segment::createShapes() when layouting the fingering elements.

This solution also solves #302316 which also requires a relayout after a String Fingering
is added to note under a slur._

Fix version
3.5.0