Add System lines

• Mar 28, 2020 - 20:48
Reported version
S5 - Suggestion

Add option to lines, to be system line. It means, it would appear in all parts.
Now, all lines are staff lines (except volta lines).

It could be same principle, as it is in text. You can choose between staff text and system text.

Ideal solution would be an option to all lines (in inspector).
Other possible solution is to add extra type of lines - system lines.

(At the moment, it is possible to "hack" it by using volta lines).

Attachment Size
System_lines.mscz 7.01 KB


Title System lines (suggestion) System lines
Regression Yes No
Workaround No Yes

Not a regession, as it never existed, and voltas as the workaround

More like a new property for existing types, like a 'system' flag. Like a LineSegment() with the 2nd or 3rd argument being ElementFlag::SYSTEM

I do recall a few places in the code where there are some special cases for voltas to get this effect, other places where we do simply check the system flag. To some extent simply creating such an element manually on the palette (eg, by editing the workspace file and/or the code where the master palette is generated) might mostly work. We'd just need to find the places where voltas are special-cased rather than using the flag.

I was thinking a a variant of TextLine, SystemTextLine, just like StaffText is a kind of SystemText. This keep the code consistent with existing types. The main, if not only, difference between TextLine and SystemTextLine will be the ElementFlag::SYSTEM which is exact as in StaffText and SystemfText
For the difference between "staff" and "system" lines I'm indeed looking at voltas which already act as a kind of "system line".

Implementing a new line type is fine too. But FWIW, I think the only reason system text is actually a separate type is that we wanted separate text styles and this made it cleaner in the "new" (3.0) text style implementation. In the past system text was not actually a separate type, but was just a staff text with the system flag set. So in principle, I don't think there would be an issue with implementing it either way.

The text style is in fact the main reason why I though a dedicated type was the best solution and so far the implementation is straight forward (I have a working version).

Status PR created fixed

The pull request has been merged. The commit message ("Fix: 303027") lacked the "#".

Fix version