Lines ignoring Placement and/or Offset style settings

• Apr 9, 2019 - 23:50
Reported version
3.0
Priority
P1 - High
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
No
Project

True in both 3.0.5 and master:

1) default score
2) Format / Style
3) change placement of Pedal to above, vibrato and textlines to below
4) add any of these elements

Result: they are added at the original locations, ignoring the style setting. Also, if you then manually change their placement then hit reset, they return to the original defaults. For some of these, placement is lost on save/reload. Other glitches too that are related to #287445: setting crescendo / diminuendo lines and hairpins position to below staff doesn't 'survive' save/close/reopen. Working on a fix.


Comments

Title Pedal, vibrato, and textlines ignore Placement style setting Lines ignoring Placement and/or Offset style settings

It's actually quite a mess currently. I've been testing each of the line types with respect to how they honor (or don't) the placement and offset above/below style settings when you add the element, how they are honored on reset, and whether changes to these settings are preserved on save/reload. Each of the line types fails one or more of these, in various different ways. Looking at the code, it's no surprise they all behave differently - the code to handle these things is all different from element type to element type. Unfortunately it's not the kind of thing that can be easily refactored since they all use different style settings and some of them support a placement style and others don't. So I'm instead going through and just trying to make the code as consistent as I can.

Here is a list of what seems broken currently (note hairpin & pedal misbehave similarly, as do vibrato and textline):

Hairpin
with above placement style: wrong placement when adding by double-click on range, wrong placement on reset; change to below lost on save/reload

Pedal
with above placement style: wrong placement when adding by double-click on range, wrong placement on reset, change to below lost on save/reload

Text Line
offset style ignored regardless of placement
with placement below: wrong placement when added by any method

Trill
offset interpreted incorrectly when placed below staff (whether by style or change)

Vibrato
offset style ignored regardless of placement
with placement below: wrong placement when added by any method

Indeed. There is crossover between the code I implemented and the code in https://github.com/musescore/MuseScore/pull/4982. I think they should be mergeable independently. But there were a couple of line types that were missing some data that I added in this PR, and those won't work with the new "allow dragging onto the staff" facility until I update the other PR, which I can't easily do until this is merged. Just a heads up.

One other thing I noticed working on this and my autoplace PR https://github.com/musescore/MuseScore/pull/4982 - the "let ring" line doesn't have any way to set any style properties. It defaults to below, 0 offset, and while you can change these in the Inspector, there is no "Set as style" button. Well, there is a set as style button for placement, but it doesn't work as it isn't actually hooked up to the style definition that does exist in style.cpp. I'm guessing this was an oversight, and I can correct it unless there is some reason not to. But, are those reasonable defaults? I see palm mute is also only partially hooked up.

Fix version
3.1.0