If selection containing a glissando is copied into a staff which has another staff linked to it, the glissando is copied into the first staff but not cloned into the linked staff.
Original issue: http://musescore.org/en/node/49856
Partial, cheap fix: if pasting a note-anchored spanner into a staff which has other linked staves, the spanner is ignored.
This at least ensures that the linked staves are consistent among themselves after the pasting; also, as correct cloning of manually added spanners across all the linked staves is properly supported, the un-copied spanner can be added later by the user without structural issues.
If a cross-staff spanner goes from a lower to a higher staff, the start point is saved **after** the end point.
When reading it back, the end point is ignored because a matching start point has not been met yet.
This applies for instance to glissandi from the bass to the treble staff of a grand staff.
Fixed by adding to the XML reader spanner map a temporary place-holder spanner with the end point data, to be looked for when meeting the start point.
This fix only deals with note-anchored spanners.
Entering edit mode on a glissando and trying to move the grips results in crash.
Fixed by disabling glissando editing altogether, as it does not make sense until proper support for grip nudging and anchor note selecting is added.
- Implemented as a sub-class of `SLine`.
- Anchor type changed from CHORD to NOTE: allows to attach glissando start and end points to individual notes, rather than generically to chords (with note within the chord chosen by the program).
- The Glissando element is now stored in the `Note::_spannerFor` list.
- `Chord::_glissando` has been removed and replaced by a `bool _endsGlissando`, recording whether the chord is at the end of glissando (as gliss.-end chords require more space if mid-measure or system-initial).
- Debugger UI for `Chord` updated accordingly.
- Glissando in now save into score file as a spanner, within the initial note, and with appropriate `<endSpanner>` tag in the Glissando ending note.
- Existing scores with the old Glissando file format are correctly read back.
Notes:
- MusicXML import/export of the new Glissando implementation NOT IMPLEMENTED.
- This version can read scores from older versions, but older versions **cannot read** scored from this version (they do not expect a <Glissando> tag within a Note). Does this require a NEW FILE VERSION NUMBER?
- This implementation would allow rather easily to move the start and end anchors around (as for slurs) to override the note/chord chosen by the program when the glissando is initially created; but the UI for this is not implemented yet.
Feature has been requested and discussed at length in the forum thread: http://musescore.org/en/node/31016
To implement this, the fret-to-pitch relation has been made dependent of the staff, as each staff may have an individual transposition value in addition to the string data. And -- in addition -- on tick, in preparation of dealing with ottavas and capos.
Also, improve physical-to-visual string conversion for physical strings without a visual tab line and vice versa, to return the nearest existing string or line.