Commit graph

62 commits

Author SHA1 Message Date
Werner Schweer
6ef95da0d6 first simple implementation of slur autoplace 2016-11-15 16:33:38 +01:00
Werner Schweer
2dada2ab3c don't write broken slurs 2016-10-26 11:33:51 +02:00
werner
3d6dfaf883 fix regressions for hairpin+dynamics 2016-07-20 12:45:34 +02:00
werner
e8b3f95fd0 fix layout of cautionary timesig 2016-07-18 15:04:49 +02:00
werner
3172717cbb autoplace for volta 2016-07-10 12:00:57 +02:00
werner
863c9ac1fd slur cleanups 2016-07-04 13:21:52 +02:00
werner
073529e737 impl. incremental layout of spanner line segment 2016-06-30 17:27:13 +02:00
werner
8ec8b50fc8 implement autoplace for ottava 2016-06-15 16:11:17 +02:00
werner
1a8cdf1da4 remove many setLayoutAll() calls; cleanups 2016-06-14 10:32:34 +02:00
ws
84cf28089b fix some regressions, mtest 2016-04-13 11:38:08 +02:00
ws
492709f203 code cleanups 2016-04-13 11:10:17 +02:00
Maurizio M. Gavioli
49edb8d0c3 Fixes #19155, #22861 (duplicate of the former) and #23100.
__References__:
Issues:	https://musescore.org/en/node/19155 https://musescore.org/en/node/22861 https://musescore.org/en/node/23100

__Description__:
Allows to change the start and end note to which a glissando is anchored after it has been entered. Either anchor can be changed independently.

The user interface follows the current working of other 'snappable' lines. Once either the start or end grip is selected:
- `[Shift]+[Left]` snaps the anchor to the previous chord, defaulting to its top note.
- `[Shift]+[Right]` snaps to the next chord, defaulting to its top note.
- `[Shift]+[Up]` snaps to the note above (possibly in a chord, voice or staff above the current one).
- `[Shift]+[Down]` snaps to the note below (possibly in a chord, voice or staff below the current one).

This permits to set the anchor points of a glissando to any note in the score, allowing several glissandi between the notes of the same two chords and other complex configurations (glissandi skipping intermediate chords, start and end notes in different voices or staves, and so on).

It is possible to move the anchor to a different staff of the same instrument, but not to a different instrument; also, it is not possible to 'cross' a change of instrument in the same staff.

__Known limitations__:
- The `[Shift]+[Up]` and `[Shift]+[Down]` use the same note-finding functions as the `[Alt]+[Up]` and `[Alt]+[Down]`actions which move the selection cursor to the above and below note, even across voices or staves. Occasionally, in particular if the note immediately above or below is not time-aligned, the algorithm has little expected results; however, the behaviour is already known to the user. Improving the algorithm would benefit both uses.

__Notes__:
- Most of the added infrastructure is not specific to glissando but to any spanner anchored to notes, then it should also add after-the-fact "snap to" note support to note-anchored text line.
- When moving an anchor, the algorithm usually prefers a note in the same voice/staff of the old note if it exists; if there is none, it tries other voices of the same staff.
- The change of anchor is undoable.
- The fix corrects the management of the `Chord::_endsGlissando` flag, taking into account that a chord can be the ending point of several glissandi and removing one of them not necessarily means the chord no longer ends a glissando (another glissando may still exists).
- The fix also improved the rendering of the glissando wavy line, with better alignment with anchor notes and, with glissando text, better text-line spacing.
2015-09-30 09:16:47 +02:00
Maurizio M. Gavioli
d4488e443c Plugin Manual - Documentation update for classes S-Z
Updates the documentation for classes named from S to Z to proposal A) in http://dev-list.musescore.org/Plugin-documentation-generated-manual-td7579164.html

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.

Description of some methods for `Score` (in file libmscore/score.h) are stubs.
2015-07-13 11:38:28 +02:00
Nicolas Froment
403631279e Merge pull request #1917 from mgavioli/Plugins_expose_spanner_start_and_element
Plug-ins: expose Spanner::startElement and ::endElement
2015-04-01 15:27:06 +02:00
ws
0918b463ea fix #51201 Voltas dont respond to CTRL-R 2015-03-30 10:06:53 +02:00
Maurizio M. Gavioli
2b1096bf30 Plug-ins: expose Spanner::startElement and ::endElement
Makes the `Spanner::startElement` and Spanner::endElement` available in the `Spanner.startElement` and `Spanner.endElement` read-only properties.

Use cases include navigating across ties (rather than simply learning that a note has a tie) or working on spanners according to extrema properties.
2015-03-27 11:31:40 +01:00
Maurizio M. Gavioli
59ba1b5f10 Fix #48436 - Lyrics melisma and deleting measures / Fix #48491 - Lyrics melisma and time change
**Deleting measures** When measures are deleted, spans of lyrics melismas and dashes involved (`LyricsLine`s) were not correctly adjusted.

Also fixes the general case of removing or adding some time span intersecting `LyricsLine` spans.

**Rewriting measures** while rewriting measures (as for time changes), existing `LyricsLine`s were left over and then re-added. Now they are deleted while removing measures (`InsertRemoveMeasures::removeMeasures()`).
2015-03-10 11:38:27 +01:00
Maurizio M. Gavioli
65973bb245 Fix #48721 - Glissando cloning
When a glissando is added to a staff which has linked clones (either linked staves or excerpts), the cloned `Glissando` added to the cloned staff is left with the same start and end element of the original `Glissando`.

Added a little of `Spanner` infrastructure to manage note-anchored spanners.
2015-03-04 18:22:50 +01:00
ws
e1a97cea80 fix #36661 Buts with grayed out fields in the Inspector 2015-02-02 14:52:13 +01:00
ws
16764d4614 fix #44466: Crash extending volta over mmrest starting a new system + other cleanups 2015-01-19 12:41:16 +01:00
Maurizio M. Gavioli
c69d2a9262 Lyrics multi-system melisma and dashes
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.
2015-01-11 10:16:19 +01:00
AntonioBL
b0098ee2c6 fix #22779 : Slur color change not showing in the score 2014-10-01 15:47:59 +02:00
ws
f2ea47bc3a fix for #28761 and #29511 2014-08-22 13:33:46 +02:00
Andrei Tuicu
6460485d3f Score accessibility system.
Provides screen-reader feedback for the selected element.
2014-08-19 00:09:13 +03:00
Andrei Tuicu
9caa98b130 Added 4 new navigation commands:
- next element
- previous element
- first element
- last element
2014-08-17 17:25:21 +03:00
ws
9e93f15037 fix #29511 2014-08-13 15:42:55 +02:00
ws
618d6cebbd fix #25681 2014-08-07 10:19:11 +02:00
ws
548fa0b736 fix #25806 2014-07-31 16:30:19 +02:00
ws
17910f7441 remove id from spanner class 2014-07-21 14:28:37 +02:00
ws
8fcdf0d29b fix #22988 2014-07-10 14:32:04 +02:00
ws
3816d17e05 change slur implementation to handle slurs to/from grace notes 2014-07-05 12:05:43 +02:00
Joachim Schmitz
38a16b115b some cosmetic changes to plugin documentation 2014-06-26 11:57:52 +02:00
Joachim Schmitz
75623c53dc move ElementType to Element::Type
needed to make it available to the Plugin framework
2014-06-26 11:57:35 +02:00
Joachim Schmitz
c79ae39d0e convert enum Anchor into enum class 2014-05-26 20:48:27 +02:00
Joachim Schmitz
4d52881f70 convert enum SpannerSegmentType into enum class 2014-05-26 20:38:22 +02:00
Joachim Schmitz
fcbc3e21c2 leftover improvements to plugin documentattion... 2014-05-16 15:58:57 +02:00
Joachim Schmitz
54ede6a1f6 improve builtin plugin documentation
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,
2014-05-16 13:58:30 +02:00
Joachim Schmitz
27ba0bada7 some purly cosmetic changes
adding semicolons for Q_DECLARE_METATYPE() and
Q_DECLARE_OPERATORS_FOR_FLAGS(), removing semicolons from Q_PROPERTY()
(QtCreator complains about them) and fixing a comment, reformatting for
alignment
2014-05-12 12:28:07 +02:00
ws
50c77c9986 fix #25650 2014-05-07 12:10:28 +02:00
Joachim Schmitz
2481872bbf improve, fix and extend plugin dosumentation
not sure about the changes in mstyle though
2014-01-12 12:51:51 +01:00
ws
a3c03f364d fix spanner regressions 2013-10-14 11:56:54 +02:00
ws
eee9f5fa17 add track2 to spanner 2013-09-27 11:20:12 +02:00
ws
ec77df240c fix ottava reset 2013-08-28 11:10:46 +02:00
ws
9dba0be445 updates&fixes for tie editing 2013-08-22 12:18:37 +02:00
ws
416e7ddff7 change spanner to use closed interval tick-tick2 2013-08-12 10:38:07 +02:00
ws
3f63dcd6d4 use interval tree for list of spanners 2013-07-05 11:24:14 +02:00
ws
f227ab77d1 fix import regressions; remove debug code 2013-06-25 14:29:18 +02:00
ws
48965a09c5 fix regressions 2013-06-19 16:25:29 +02:00
wschweer
705307a034 updates 2013-06-16 23:33:37 +02:00
ws
a7904c31f5 refactoring spanner, part I 2013-06-10 11:03:34 +02:00