Add System lines
Reported version
3.4
Type
Functional
Frequency
Few
Severity
S5 - Suggestion
Reproducibility
Always
Status
closed
Regression
No
Workaround
Yes
Project
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 |
Fix version
3.6.0
Comments
Not a regession, as it never existed, and voltas as the workaround
Hm, implementing a new type, I'll give it a try.
More like a new property for existing types, like a 'system' flag. Like a
LineSegment()
with the 2nd or 3rd argument beingElementFlag::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 likeStaffText
is a kind ofSystemText
. This keep the code consistent with existing types. The main, if not only, difference betweenTextLine
andSystemTextLine
will be theElementFlag::SYSTEM
which is exact as inStaffText
andSystemfText
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).
https://github.com/musescore/MuseScore/pull/5965
Came up again in #308535: Implementing system lines
The pull request has been merged. The commit message ("Fix: 303027") lacked the "#".
Automatically closed -- issue fixed for 2 weeks with no activity.