Properties are also sorted in alphabetical order for easier identification.
No attempt made to evaluate what to include and what to exclude from documentation: anything which is currently documented is retained. Case by case decisions can always be made.
Also completed update for `Accidental`.
Updated figured bass export and import according to the MusicXML 3.0 specification. Specifically, the following features were changed/added:
- Figures held over multiple notes are no longer treated as prolonged durations, but exclusively as extension lines (is backward compatible).
- Extend tags now specify type: <extend type="..." />
- Changing figures under a single note can now be exported and imported, utilizing the duration tag.
- The "cross" and "backslash" modifiers can now be exported and imported as prefix or suffix tags.
Also added test files.
- Measure:
-- firstSegment
-- lastSegment
- MeasureBase:
-- nextMeasure
-- nextMeasureMM (new)
-- prevMeasure
-- prevMeasureMM (new)
- Score:
-- firstMeasure
-- firstMeasureMM (new)
-- (for firstSegment(), see special cases below)
-- lastMeasure
-- lastMeasureMM (new)
-- lastSegment
- Segment:
-- next (renamed from `next1`)
-- nextInMeasure (renamed from `next`)
-- prev (renamed from `prev1`)
-- prevInMeasure (renamed from prev)
Special cases:
- Cursor: The prototype of the `Q_INVOKABLE Ms::Note* Cursor::addNote(int pitch)` was wrong: corrected in `Q_INVOKABLE void Cursor::addNote(int pitch)`.
- QmlPlugin: `Q_INVOKABLE Score* QmlPlugin::readScore()` and `Q_INVOKABLE Score* QmlPlugin::newScore()` has been kept, as they are intended to be called from QML; code has been added to ensure the C++ ownership of the returned object.
- Score: `Q_INVOKABLE Segment* Score::firstSegment(Segment::Type segType)` is kept (as it needs a parameters), but code is added to ensure C++ ownership of the returned Segment*.
- Segment: `Ms::Element* Segment::element(int track)` has been made NOT Q_INVOKABLE; a variant `Q_INVOKABLE Ms::Element* elementAt(int track)` has been added specifically for QML with code to ensure the C++ ownership of the returned Element* (this was the cause for the crash of the Walk plug-in).
- FiguredBass: `Q_INVOKABLE Ms::FiguredBassItem* FiguredBass::addItem()` has been removed; plugin interface for FiguredBass needs to be redesigned anyway.
The few occurrences in the supplied plug-ins of the methods whose names did change have been updated.
reformatting, removing some comments that are irrelevant to plugin
framework in a way that DoxyGen should still find them, documenting the
enums and fully qualify all types that are specific to MuseScore,
After the recent changes to Text styling and editing, FiguredBass has been broken. This patch attempts to fix it.
As the current Text in-place editor insists in inserting spurious (and sometime wrong) HTML markup and styling which jeopardize the parsing of FiguredBassItem's, I have modified the FiguredBass endEdit() callback function to discard all HTML and keep only the plain text.
This may reduce the flexibility of entering extra indications in FiguredBass elements, but ensure that properly structured texts are parsed and recognized.
The patch also corrects two points in text.cpp which forced extra HTML formatting to be inserted.