MuseScore/mscore3.txt

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

393 lines
15 KiB
Plaintext
Raw Permalink Normal View History

2016-02-07 11:08:22 +01:00
====================================================================
2016-03-18 09:29:16 +01:00
Remarks for MuseScore Version 3
design goals/changes
2016-01-04 14:48:58 +01:00
====================================================================
- Optimize horizontal layout by allowing overlapping segments.
2016-02-07 11:08:22 +01:00
- Compute an outline (Shape) for every Staff/Segment.
2016-01-04 14:48:58 +01:00
- Use the outline to compute the minimum distance between Segments.
- this also avoids collisions between Lyrics and ChordNames
- Automatically increase vertical space between staves to avoid collisions.
- Use the segment shapes to compute the minimum distance between staves.
2016-03-18 09:29:16 +01:00
Use the minimum distance if its bigger than the style distance;
2016-01-04 14:48:58 +01:00
2016-03-08 09:46:33 +01:00
- Implement a way to (re-)layout only the modified part of the score.
2016-03-18 09:29:16 +01:00
A reorganization of layout is needed for this. Layout should work in one pass in
an incremental way.
2016-04-14 11:45:12 +02:00
The pattern to trigger incremental layout is:
score->startCmd();
...
score->setLayout(tick1); // tick position of score change
...
score->setLayout(tickn); // another change at a different position
...
score->endCmd();
setLayout(int tick) records the min+max value of all calls and feeds it
to score->doLayoutRange(int minTick, int maxTick);
2016-03-08 09:46:33 +01:00
2016-01-04 14:48:58 +01:00
- Do not allow more than one System on a line. In 2.x a horizontal box splits
a line into two systems. In 3.x a horizontal box is handled as a special measure.
2016-02-07 11:08:22 +01:00
This simplifies page layout a lot.
2016-01-04 14:48:58 +01:00
- System bar lines are moved into measures in a special segment type "BeginBarLine".
- Do not undo/redo add/removal of "created" elements.
- It speeds up doLayout() and consumes less memory.
2016-03-18 09:29:16 +01:00
In 2.x all Segments changes must be on the undo/redo stack to keep the history
2016-01-04 14:48:58 +01:00
consistent, This was necessary as Segments were referring to
previous/next segments to find the proper insertion point.
2016-02-07 11:08:22 +01:00
In 3.x Undo knows were to (re-)insert Segments by only checking type and tick
2016-01-04 14:48:58 +01:00
position.
2016-03-18 09:29:16 +01:00
- evaluate the possibility of implementing "Continuous View" as a real "view" change
without changing the score (no undo/redo change)
2017-03-16 12:13:19 +01:00
- move compatibility code into separate modules.
2016-03-02 13:20:19 +01:00
2016-01-04 14:48:58 +01:00
2016-08-03 17:29:52 +02:00
====================================================================
New Features
====================================================================
Timewise insert/delete notes/rests
-----------------------------------
- Ctrl+Shift+[cdefg]
Insert note with current duration.
This increases the duration of the actual measure independent of the
current time signature making it an irregular measure.
- Ctrl + left mouse button in note entry mode
Inserts note/rest with current duration
- Ctrl+Del
Removes the selected Chord/Rest decreasing the duration of the measure.
2016-08-06 11:36:51 +02:00
Extend this to selection ranges.
2016-08-03 17:29:52 +02:00
2016-08-06 10:33:32 +02:00
- drop barline
2016-08-09 17:17:27 +02:00
This inserts a barline into the current measure or changes the current barline.
2016-08-06 10:33:32 +02:00
- ctrl + drop barline
2016-08-09 17:17:27 +02:00
Splits the current measure at the new barline.
2016-08-06 10:33:32 +02:00
2016-08-09 17:17:27 +02:00
- ctrl + delete barline
2016-08-06 10:33:32 +02:00
This joins the current measure with the next measure.
- show irregular measures
This displays a "+" or "-" in the upper right corner of a measure if the measure
length is different from the current time signature.
Functions which may be removed:
- split measure: replaced by dropping a barline
- join measure: replaced by deleting a barline
- adjusting the actual measure length in measure properties; this
2016-08-06 10:33:32 +02:00
can be achieved by inserting/deleting notes/rests in the measure.
2016-08-06 11:36:51 +02:00
- delete measure timewise: replaced by Ctrl+Del of selection ranges
2016-08-06 10:33:32 +02:00
2016-08-03 17:29:52 +02:00
2016-10-29 12:32:58 +02:00
Palette handling
-------------------------------
- shift+drag allows to move a palette element in the palette
- ctrl+drag is drag operation with special semantic
2018-07-19 13:03:25 +02:00
Lyrics
-------------------------------
- lyrics can be placed above a staff by changing the Placement property to "Above".
Spelling (#11566) * spelling: above Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: accessibility Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: accessible Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: account Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: action Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: activated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: active Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: again Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: allegro Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: alternative Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: amplitude Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: and Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: annotation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appended Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appending Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appropriate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arbitrarily Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: architecture Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arpeggio Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arranger Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: assumed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: asynchronous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: automatically Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: availability Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: available Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: backslashes Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: before Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: beginning Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: between Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bounding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bracket Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: builtin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: calculated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: categories Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: check Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: class Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: clearance Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: column Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: combinations Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: completed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: composer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: compression Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: consideration Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: constraints Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: container Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: continuous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: contrabass Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: control Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: convergence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: conversion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: convert Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: coordinates Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: correctly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: corresponds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: counting Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: crescendo Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: customizable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: cutout Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: deep Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denom Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denominator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: diagram Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: diminished Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: direction Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: directories Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: disconnected Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: doesn't Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dotted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: easeinout Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: eighth Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: element Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: elements Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: enabled Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: engraving Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: evenly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exactly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exceed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: excerpts Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: excessively Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exclusive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extension Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extrapolated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: farthest Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fits Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: friends Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: function Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: glissando Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: global Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: grid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: halved Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: happen * spelling: harmonies Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: have Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: header Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: height Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: iabbrev Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ideally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: implementation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: in Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: incoming Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: incomplete Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: increase Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: indentation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: individual Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: infer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initial Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initially Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: inputted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: instrument Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: instruments Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: invalid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: invocation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: iplugin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: javascript Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: label Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: laid out Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: languages Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: length Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: linked Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: lyrchord Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: lyricist Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: managed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: manually Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mappings Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: margins Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: measure Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metric Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metronome Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: military Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: milliseconds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: minimum Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: modifiers Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: moving Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: multi Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: namespace Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: navigate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: necessary Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: needs Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: newly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: notation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: numerator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occasionally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurrence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: omitted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: or Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: oriented Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: originally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ornament Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ornaments Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: output Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: outputted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: outside Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: overlapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: overridden Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: package Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: padding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: parameter Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: percussion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: placement Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: playthrough Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: positive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: preceded Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: precision Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: previous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: process Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: property Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: proximity Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: publish Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rasgueado Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: read Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: receive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: received Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rectangle Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: regarding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: register Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: registry Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rehearsal Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: related Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: repeat Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: repeatp Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: replacements Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: represent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: representation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: responses Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rhythm Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: section Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: selected Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: selection Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: shortcuts Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: signatures Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: simile Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: slurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: sound Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: staccato Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: staff Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: stuff Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: style Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: suffix Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: supported Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: symbol Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: symbols Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: system Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tablature Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tcp_invalid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: that Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: the Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: thickness Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tibetan Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: of Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: to Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transparent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transpose Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tremolo Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ultimately Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unassigned Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: underscore Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unhandled Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: uninstall Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unknown Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unnamed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: useful Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: usually Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: vertical Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: violin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: visible Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: when Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: whether Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: with Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: within Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: without Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: would Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: writing Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: written Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: xmlns Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Remove unused avaiableArticulationTypesChanged Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: firstSystemIndentation [API] Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Enable testIncompleteTuplet Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Drop stray comment Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Update license header in module.cmake per https://github.com/musescore/MuseScore/pull/11566#discussion_r870550003 Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-05-15 16:35:32 +02:00
Verse numbers are counted from top to bottom. If you change for example the placement
2018-07-19 13:03:25 +02:00
of a lyric in verse 3 to Above then all lyrics in verse 1-3 are placed above, verse 4+
will stay below.
- 'x' (flip) changes the placement of a lyric.
- up/down moves a lyric to the previous/next verse. If there is already a lyric, the text
is swapped.
- the style values "Position above" and "Position below" determine the default lyric position.
- lyrics are move up or down when a collision with other score elements are detected. The style
value "Autoplace vertical align range" tells mscore to align other lyrics measure or system wide.
2016-10-29 12:32:58 +02:00
2016-02-06 22:03:43 +01:00
====================================================================
Programming Style Changes in MuseScore 3
====================================================================
* Instead of
if (e->type() == Element::Type::Chord)
...
write
if (e->isChord())
...
2016-02-08 15:10:03 +01:00
This is shorter and easier to read. Similar
if ((s.segmentType() == Segment::Type::ChordRest))
...
can be written as
2016-03-02 13:20:19 +01:00
if (s.isChordRestType())
2016-02-08 15:10:03 +01:00
...
2016-02-06 22:03:43 +01:00
2016-02-17 14:54:23 +01:00
* Use safer type conversion: instead of
2016-02-06 22:03:43 +01:00
Chord* chord = static_cast<Chord*>(e);
write
2016-02-17 14:54:23 +01:00
Chord* chord = toChord(e);
2016-02-06 22:03:43 +01:00
This adds an Q_ASSERT to make sure e is really a Chord().
* Prefer vector container over list:
- Instead of QList use QVector or even better std::vector if possible.
* Prefer stl style over Qt style when using container:
- use list.push_back(xx) instead of list.append(xx) or
- use list.empty() instead of list.isEmpty()
- etc.
2016-02-15 12:23:28 +01:00
2016-03-18 09:29:16 +01:00
(see https://marcmutz.wordpress.com/effective-qt/containers/)
Caution when replacing Qt container with stl container as the semantic
may be different. Especially in a "for (xxx : yyy)" loop the Qt container
2016-08-03 17:29:52 +02:00
is copied (copy on write) and the stl container not. That means that you can modify a
2016-03-18 09:29:16 +01:00
Qt container (inserting/deleting elements) in this for loop. This will usually not
work for a stl container.
2016-02-06 22:03:43 +01:00
2016-02-08 15:10:03 +01:00
* In iterating a SegmentList instead of
for (Segment* s = segments->first(); s; s = s->next())
...
you can write
2016-02-15 12:23:28 +01:00
for (Segment& s : segments)
2016-02-08 15:10:03 +01:00
...
2016-03-02 13:20:19 +01:00
* enums
2017-06-22 12:48:41 +02:00
To export enums for scripting we collect them in types.h and use the new
qt feature Q_NAMESPACE.
2016-03-18 09:29:16 +01:00
* debug messages
- use qWarning(), qCritical() and qFatal()
- if debug messages are used, it should be possible to switch them off and they
should be removed in release mode
- don't use qDebug(), instead use a log category and call qCDebug(logCategory, ...)
(see undo.h undo.cpp for example usage)
TODO: check if they can be removed in system mode
* path separator
Spelling (#11566) * spelling: above Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: accessibility Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: accessible Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: account Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: action Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: activated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: active Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: again Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: allegro Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: alternative Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: amplitude Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: and Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: annotation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appended Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appending Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appropriate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arbitrarily Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: architecture Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arpeggio Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arranger Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: assumed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: asynchronous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: automatically Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: availability Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: available Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: backslashes Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: before Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: beginning Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: between Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bounding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bracket Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: builtin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: calculated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: categories Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: check Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: class Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: clearance Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: column Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: combinations Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: completed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: composer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: compression Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: consideration Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: constraints Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: container Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: continuous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: contrabass Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: control Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: convergence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: conversion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: convert Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: coordinates Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: correctly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: corresponds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: counting Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: crescendo Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: customizable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: cutout Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: deep Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denom Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denominator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: diagram Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: diminished Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: direction Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: directories Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: disconnected Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: doesn't Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dotted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: easeinout Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: eighth Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: element Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: elements Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: enabled Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: engraving Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: evenly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exactly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exceed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: excerpts Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: excessively Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exclusive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extension Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extrapolated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: farthest Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fits Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: friends Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: function Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: glissando Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: global Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: grid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: halved Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: happen * spelling: harmonies Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: have Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: header Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: height Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: iabbrev Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ideally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: implementation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: in Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: incoming Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: incomplete Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: increase Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: indentation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: individual Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: infer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initial Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initially Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: inputted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: instrument Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: instruments Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: invalid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: invocation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: iplugin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: javascript Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: label Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: laid out Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: languages Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: length Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: linked Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: lyrchord Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: lyricist Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: managed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: manually Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mappings Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: margins Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: measure Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metric Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metronome Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: military Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: milliseconds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: minimum Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: modifiers Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: moving Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: multi Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: namespace Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: navigate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: necessary Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: needs Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: newly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: notation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: numerator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occasionally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurrence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: omitted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: or Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: oriented Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: originally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ornament Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ornaments Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: output Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: outputted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: outside Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: overlapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: overridden Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: package Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: padding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: parameter Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: percussion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: placement Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: playthrough Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: positive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: preceded Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: precision Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: previous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: process Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: property Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: proximity Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: publish Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rasgueado Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: read Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: receive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: received Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rectangle Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: regarding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: register Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: registry Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rehearsal Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: related Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: repeat Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: repeatp Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: replacements Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: represent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: representation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: responses Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rhythm Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: section Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: selected Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: selection Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: shortcuts Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: signatures Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: simile Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: slurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: sound Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: staccato Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: staff Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: stuff Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: style Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: suffix Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: supported Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: symbol Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: symbols Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: system Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tablature Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tcp_invalid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: that Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: the Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: thickness Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tibetan Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: of Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: to Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transparent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transpose Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tremolo Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ultimately Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unassigned Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: underscore Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unhandled Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: uninstall Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unknown Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unnamed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: useful Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: usually Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: vertical Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: violin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: visible Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: when Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: whether Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: with Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: within Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: without Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: would Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: writing Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: written Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: xmlns Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Remove unused avaiableArticulationTypesChanged Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: firstSystemIndentation [API] Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Enable testIncompleteTuplet Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Drop stray comment Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Update license header in module.cmake per https://github.com/musescore/MuseScore/pull/11566#discussion_r870550003 Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-05-15 16:35:32 +02:00
Don't use QDir::separator(), but "/", see https://doc.qt.io/qt-5/qdir.html#separator
and http://agateau.com/2015/qdir-separator-considered-harmful/
2016-03-18 09:29:16 +01:00
====================================================================
some rules
====================================================================
2018-03-15 11:52:17 +01:00
Element type system
Every class derived from ScoreElement which implements
virtual ElementType type() const = 0;
should have set the class attribute "final" to make sure no other class will be derived
from this one. This avoids ambiguities in the internal type system.
2017-03-16 12:13:19 +01:00
Layout
2016-03-18 09:29:16 +01:00
- After loading a score, the score data can only be modified in a "undo" function during editing.
The score is "dirty" if there is an undo stack entry.
- Flags/data which describe what kind of relayout/update the score needs are collected in
Score->CmdState. They can only be set in an "undo" function.
2017-03-16 12:13:19 +01:00
Score File
2016-03-18 09:29:16 +01:00
- "created" elements are not written out into the score file. For example bar lines are usually created
by layout. They are marked as created and therefore do not appear in the score file.
- Element properties are only written if they differ from their default value which usually is the
style value if they are styled.
2017-03-16 12:13:19 +01:00
paint() method in Element
paint() should never paint something or not conditionally. If you want something not to be
2017-03-16 12:13:19 +01:00
painted, then set the bounding box of the element to zero in layout() and paint will not
be called. This works better with smart layout and collision detection.
2016-03-18 09:29:16 +01:00
====================================================================
2016-10-18 15:41:00 +02:00
Implementation Details
2016-03-18 09:29:16 +01:00
====================================================================
2016-10-18 15:41:00 +02:00
Measure layout
Spelling (#11566) * spelling: above Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: accessibility Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: accessible Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: account Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: action Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: activated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: active Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: again Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: allegro Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: alternative Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: amplitude Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: and Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: annotation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appended Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appending Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: appropriate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arbitrarily Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: architecture Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arpeggio Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: arranger Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: assumed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: asynchronous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: automatically Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: availability Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: available Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: backslashes Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: before Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: beginning Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: between Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bounding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bracket Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: builtin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: calculated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: categories Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: check Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: class Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: clearance Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: column Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: combinations Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: completed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: composer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: compression Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: consideration Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: constraints Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: container Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: continuous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: contrabass Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: control Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: convergence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: conversion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: convert Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: coordinates Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: correctly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: corresponds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: counting Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: crescendo Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: customizable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: cutout Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: deep Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denom Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: denominator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: diagram Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: diminished Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: direction Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: directories Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: disconnected Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: doesn't Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dotted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: easeinout Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: eighth Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: element Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: elements Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: enabled Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: engraving Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: evenly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exactly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exceed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: excerpts Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: excessively Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exclusive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extension Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extrapolated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: farthest Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: fits Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: friends Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: function Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: glissando Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: global Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: grid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: halved Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: happen * spelling: harmonies Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: have Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: header Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: height Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: iabbrev Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ideally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: implementation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: in Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: incoming Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: incomplete Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: increase Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: indentation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: individual Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: infer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initial Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: initially Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: inputted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: instrument Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: instruments Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: invalid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: invocation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: iplugin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: javascript Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: label Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: laid out Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: languages Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: length Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: linked Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: lyrchord Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: lyricist Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: managed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: manually Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mappings Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: margins Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: measure Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metric Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: metronome Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: military Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: milliseconds Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: minimum Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: modifiers Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: moving Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: multi Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: namespace Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: navigate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: necessary Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: needs Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: newly Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: notation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: numerator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occasionally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurrence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: omitted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: or Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: oriented Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: originally Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ornament Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ornaments Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: output Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: outputted Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: outside Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: overlapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: overridden Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: package Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: padding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: parameter Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: percussion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: placement Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: playthrough Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: positive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: preceded Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: precision Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: previous Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: process Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: property Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: proximity Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: publish Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rasgueado Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: read Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: receive Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: received Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rectangle Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: regarding Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: register Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: registry Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rehearsal Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: related Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: repeat Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: repeatp Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: replacements Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: represent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: representation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: responses Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: rhythm Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: section Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: selected Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: selection Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: shortcuts Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: signatures Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: simile Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: slurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: sound Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: staccato Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: staff Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: stuff Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: style Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: suffix Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: supported Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: symbol Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: symbols Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: system Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tablature Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tcp_invalid Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: that Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: the Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: thickness Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tibetan Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: of Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: to Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transparent Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: transpose Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: tremolo Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ultimately Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unassigned Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: underscore Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unhandled Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: uninstall Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unknown Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unnamed Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: useful Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: usually Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: vertical Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: violin Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: visible Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: when Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: whether Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: with Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: within Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: without Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: would Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: writing Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: written Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: xmlns Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Remove unused avaiableArticulationTypesChanged Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: firstSystemIndentation [API] Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Enable testIncompleteTuplet Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Drop stray comment Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * Update license header in module.cmake per https://github.com/musescore/MuseScore/pull/11566#discussion_r870550003 Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-05-15 16:35:32 +02:00
A measure is laid out in four different contexts:
2016-10-18 15:41:00 +02:00
- first measure in a system
- the measure is prepended by a system header
- last measure in a system
- the measure has a system trailer
- in the middle of a system
- is the only measure in a system
- the measure has a system header and a system trailer
BarLine handling
A measure can have four kind of barlines, contained in a special typed Segment:
- BeginBarLine
this barline is also called the "systemic barline"
- automatically created for every System
- a BarLine can be dropped on a horizontal frame which adds
a BeginBarLine to the next measure
- overrides the EndBarLine of a previous measure in the system
- StartRepeatBarLine
- after a horizontal frame it overrides a BeginBarLine
- is prepended by a system header if in the first system measure
- sets the _repeatStart measure flag
- BarLine
- is in the middle of a measure and has no semantic (repeat etc.)
(tick > start tick of measure and tick < end tick of measure)
- EndBarLine
- is created automatically
- maybe not the last Segment in a Measure (cautionary elements can follow)
2016-03-18 09:29:16 +01:00
2016-03-02 13:20:19 +01:00
2016-11-18 14:28:53 +01:00
Ottava
Ottavas have no placement style. Placement depends on the ottava subtype and is hardcoded.
Dynamics
Default vertical reference position for Placement "below" (dynamicPosBelow = 0.0) is the last
staff line + text line height.
2016-11-18 14:28:53 +01:00
2018-03-15 11:52:17 +01:00
==============================================================
2018-07-13 12:43:55 +02:00
Styles
2018-03-15 11:52:17 +01:00
==============================================================
2017-01-16 20:51:12 +01:00
2018-07-13 12:43:55 +02:00
A style is part of a score. Its a list of style values.
Style values are identified by the enumeration Sid.
A style is initialized with a set of build in hard coded values. This build in style can be
modified by a style set in preferences (if set).
The style associated with a score can be modified by the user in the UI.
If the user resets a style value in the UI, it is set to the hardcoded build in value;
Only style values which differ from the build in values are saved in a score.
==============================================================
Properties
==============================================================
Properties are identified by the enumeration Pid.
2017-01-16 20:51:12 +01:00
2018-03-15 11:52:17 +01:00
Some properties are associated with a Style. This styled properties have
2018-07-13 12:43:55 +02:00
a state (enumeration PropertyFlags):
NOSTYLE:
The property has no associated style.
STYLED
The property has the value of the associated Style. If the style changes, the value
of all styled properties also change.
If the user changes a styled property in the inspector it is set to UNSTYLED. That means
that it does not follow any style changes anymore but stays on the user modified value.
A reset of the property in the inspector resets it to its styled value and also sets
its state from UNSTYLED to STYLED.
UNSTYLED
The property has an associated style but does not follow any style changes.
Only the local value of the property is valid.
Every element has a list of styled properties. Usually this list points to an element type specific
static list. Some element types can change their style and therefore have a local copy of the static list.
2017-01-16 20:51:12 +01:00
2018-03-15 11:52:17 +01:00
Element Interface
Setter/Getter
virtual QVariant getProperty(P_ID) const;
virtual bool setProperty(P_ID, const QVariant&);
Default
A property can have a default value.
virtual QVariant propertyDefault(P_ID) const;
virtual void resetProperty(P_ID id);
Reset property to default value. Also if the property has an associated style value,
sets the property state to STYLED.
Undo/Redo:
virtual void undoChangeProperty(P_ID id, const QVariant&, PropertyFlags ps);
void undoChangeProperty(P_ID id, const QVariant&);
void undoResetProperty(P_ID id);
void undoPushProperty(P_ID);
Serialization:
void ScoreElement::writeProperty(XmlWriter& xml, P_ID id) const;
2018-03-28 17:49:08 +02:00
2018-03-15 11:52:17 +01:00
bool Element::readProperty(const QStringRef&, XmlReader&, P_ID);
2018-03-28 17:49:08 +02:00
This sets the property state to UNSTYLED if it is a styled property.
2018-03-15 11:52:17 +01:00
Human-readable representation:
virtual QString propertyUserValue(Pid) const;
Returns the value of the property in a human-readable representation.
2018-03-15 11:52:17 +01:00
Styled properties:
virtual StyleIdx getPropertyStyle(P_ID) const;
virtual void styleChanged();
Helper functions:
virtual PropertyFlags& propertyFlags(P_ID);
virtual void setPropertyFlags(P_ID, PropertyFlags);
Helper functions:
void Element::initSubStyle(SubStyle st)
bool Element::custom(P_ID id) const
return true if property is != default value
virtual const StyledProperty* ScoreElement::styledProperties() const;
virtual PropertyFlags* ScoreElement::propertyFlagsList();
2016-02-08 15:10:03 +01:00
2016-02-10 13:40:34 +01:00
2018-03-15 11:52:17 +01:00
Macros:
2017-12-08 09:01:18 +01:00
2018-03-15 11:52:17 +01:00
M_PROPERTY (type, getter_name, setter_name)
helper macro to define a styled ScoreElement property
2017-12-08 09:01:18 +01:00
2018-03-15 11:52:17 +01:00
usage example:
class Text : public Element {
M_PROPERTY(bool, bold, setBold)
...
};
this defines:
bool _bold;
const bool& bold() const { return _bold; }
void setBold(const a& val) { _bold = val; }
2017-12-08 09:01:18 +01:00
2016-02-10 13:40:34 +01:00
2018-03-28 17:49:08 +02:00
Functions which must be implemented for any new ScoreElement:
2017-09-29 16:45:26 +02:00
2018-03-15 11:52:17 +01:00
virtual QVariant getProperty(P_ID propertyId) const override;
virtual bool setProperty(P_ID propertyId, const QVariant&) override;
virtual QVariant propertyDefault(P_ID) const override;
2017-09-29 16:45:26 +02:00
==============================================================
Element position
==============================================================
The position of an element is notated relative to its parent element so it has
a local coordinate system starting with zero. The draw position of an element is the
sum of Element->_pos + Element->_offset.
For some element types _offset is styled. The style value gives the default position of an
element. Each element can separately moved by the user by changing the _offset value.
If an element is "autoplaced" then Element->_pos is changed to move the element to a position without
colliding with other element.