Symbol lines and symbols ignore small staff size

• Jun 2, 2015 - 17:24
Type
Functional
Severity
S4 - Minor
Status
closed
Project

Most things will change correspondingly if a staff is made "Small" in Staff Properties. Not so with lines, apparently. To reproduce, create a new score, add some notes, add a trill from the Articulations & Ornaments palette to one, and add a trill from the Lines palette to another. Secondary-click the staff, open Staff Properties, and check the "Small staff" checkbox. Result:

Screen Shot 2015-06-02 at 12.24.08 PM.png

It should be noted that there is no workaround for this.


Comments

Odd, it *was* working, but indeed, now it isn't. I will investigate.

Edit: ok, I see. It is working for most text lines, but trills seem to be the exception, probably because the "tr" is not ordinary text.

Title Lines ignore small staff size Symbol lines and symbols ignore small staff size

Actually, there is rather more to this than it looked. It isn't just the "tr" symbol, but the whole line that doesn't resize - apparent if you add a trill over a longer note. Also failing to resize: arpeggios, symbols placed from the Symbols palette.

It seems there is inconsistency in the definintions of mag() for different element types. Many use Element::mag(), which just returns _mag. For for some elements, like Accidental, _mag already reflects the staff magnification - it is set in layout(). Some elements override mag() to explicitly take in account the magnification of the staff (eg, TimeSig::mag()) or their own parent (eg, Articulation::mag()). I'm not really sure what the right solution is.

It *does* seem to work to explicitly set _mag to staff()->mag() in TrillSegment::layout(); presumably it would also work to override TrillSegment::mag(). Ditto with Arpeggio.

Symbols are trickier because there is BSymbol, FSymbol, and Symbol, and Image is also derived from BSymbol. Setting _mag for BSymbol in the same way does seem to work, but it does worry a little that somewhere there might be a conflict - if a BSymbol or dervied class is used as part of some other element that is also trying to set _mag or override mag().

Also, my previous fix doesn't go far enough even for text lines - the track is set but then never updated as staves are added. So I probably need to update the track info on each layout, not just when first creating the text.

I will submit a PR with all these proposed changes, but figure more discussion is in order.

Status (old) closed active

The problem is still happening to me in 2.0.1. (I have tried several times to update to 2.0.2 but is doesn't seem to happen, perhaps because I use Windows XP.) tr and 8v lines don't scale to staff. The font size for 8 can be changed (I was very lucky to find where--does the book say?). For tr, it seems one would have to enter tr and the line separately. The two wavy lines offered appear identical and changing the thickness seems to have no effect.