This commit adds virtual functions treeChild, treeParent and
treeChildCount to ScoreElement and implements them in most non-leaf-node
classes. An iterator is also added to ScoreElement class to iterate over
the children of any element.
In this model, Spanners, Beams and Ties are given a single parent, which
is the starting element of the spanner, beam or tie. Also, to ensure
consistency in the model, spanners, beams, and ties appear in the
children list only for their starting element. Children of spanner
elements are SpannerSegments, one for each system the spanner appears
in.
* Found via `codespell -q 3 -S ./share/locale,./thirdparty -L ba,cann,clas,dur,foto,iff,nd,ois,ot,pres,possibile,snaped,strack,tage,te,uint,thru,valu`
* Some revisions made per feedback given during review.
* Follow-up typos for review
* Add revisions per feedback
- Move Qml plugin engine out of libmscore
- Add Pid::TICK handling to Element class
- Make tick QML property correspond to absolute tick in all contexts
That is a temporary solution though, a proper solution would
require revising Pid::TICK handling
- Move plugins API to api directory
- Rename ElementW -> Element (PluginAPI namespace)
- Remove Qt meta-object macros from Score in libmscore
- Remove string-based access to properties from QML
- Remove unused functions from Note
- Rename QML properties names to camel case
Two reasons:
- They were named so in MuseScore 2.X.
- Using underscored_names is less consistent with MuseScore
coding style.
This commit adds:
- ScoreElement::propertyId for obtaining property ID by its XML name
within the context of the respective element
- ScoreElement::propertyUserValue to obtain values of the properties
in a human-readable representation
This commit includes also the following changes needed for correct
work of the changed links reading code:
- Correct current reading position when reading multimeasure rests
- Assign track number for Fingering while reading MSCX
Those changes include:
- Add a possibility to write comments to MSCX files
- Add Element::findMeasureBase and constant version of Element::findMeasure
- Store index of the currently read measure in XmlReader. Correct behaviour of MeasureBase::index.
- Minor spanners-related additions to elements creation and conversion