When a syll. dash is too short to fit between two syllables, it is skipped. This looks badly at system end, where room for a short dash is usually available within the note-to-barline distance + barline width.
With this patch, a syll. dash at the end of a system is always drawn with at least the shortest acceptable length (or more, if more room is available), even if under normal conditions it would not fit. In a position where the in-word status of a syllable is not easy to guess, the occasional dash (very) slightly extending beyond the bar line seems more acceptable that no dash at all.
This patch also limits the `LyricsLine`-specific correction in `SLine::linePos()` to melisma only, using common processing for syllabic dash lines.
While entering a melisma, the first underscore has no specific visual effect.
This patch displays a short melisma after the first underscore, by setting a conventional non-0 lyrics `_ticks` value.
Note: If no second underscore is entered (edit mode is exited or a new syllable is entered in the following chord), the short melisma is left behind as a left-over. It may be the case to reset to 0 the melisma ticks (= no melisma at all) for instance when the score is saved, or read back.
The melisma line had an undershooting length correction; with the latest change, it is now too short.
Correction changed to overshoot the chord by `minNoteDistance`, as it is definitely less massive than the chord itself.
Also removed a useless test in `line.cpp`.
Implements melisma and dash lines for lyrics spanning several systems.
The melisma and dash line is based on the `SLine` class and its segments on the `LineSegment` class. Both the whole line and its segments are not selectable, marked as generated and not saved in the score file, which is not changed in any way.
For very wide dash segments, several dashes are drawn; the distance between the dashes is not configurable.
Lyrics layout code in `Measure` class and in `layout.cpp` file has been commented out as the lyrics line layout is all contained in the lyrics.cpp file
The line is registered with the `Score` (to have its layout delayed until all elements are positioned) with a mechanism similar to other `Spanner`'s, but in a different container (`_unmanagedSpanner`), as the owning `Lyrics` should decide when create, register, unregister and delete its line.
The line segments are registered with the `System` they belong to (to have them drawn), in the same way as other `Spanner`'s.
There is code for using the dash metrics of the lyrics font, but it is turned off via a conditional directive, as there does not seem to be a reliable way to determine the dash metrics; conventional values (determined by trials and errors and based on my taste!) are used when the conditional directive is off.