Commit graph

295 commits

Author SHA1 Message Date
Dmitri Ovodok
a4bb2d0beb Remove unused SpannerEditData 2020-02-27 09:35:51 +02:00
James Thistlewood
48693311d4 fix #300635: crash when dropping symbol on text that had just been moved
This happened because the acceptDrop check wasn't checking that the
editData it had for the text element was TextEditData. So, if the text
had been moved before, then it would have ElementEditData, and
acceptDrop would incorrectly return true.

This fixes the problem by adding a type() method to ElementEditData and
its derived classes so a proper check can be carried out in acceptDrop.
2020-02-09 09:25:11 +00:00
Dmitri Ovodok
2f443cf898 Fix inability to horizontally move hairpin with its middle or left handle with mouse 2019-12-24 14:16:06 +02:00
Dmitri Ovodok
5c3b407dae Move setting up grips out of Element::startEdit() 2019-12-24 14:16:06 +02:00
Dmitri Ovodok
f84f889d8e Basic implementation of single-click access to editing elements with grips 2019-12-24 14:15:35 +02:00
Dmitri Ovodok
4deac5f6d0 EditData cleanup
- Remove unused EditData::init() function
 - Remove unused EditData::duration field
 - Prevent memory leaks with ElementEditData descendants
2019-12-24 14:14:55 +02:00
Dmitri Ovodok
83fe78e58a fix #296171: fix triggerLayoutAll() for spanners
Fixup for 99c7b0d746
triggerLayout() and triggerLayoutAll() implementations in Element
have an optimization that allows to avoid triggering layout for
elements not yet added to a score by checking the element's parent.
This optimization is not suitable for spanners since they don't have
a parent even when added to a score. This commit adds a missing
implementation of Spanner::triggerLayoutAll() that takes this into
account.
2019-10-28 00:08:45 +02:00
Dmitri Ovodok
99c7b0d746 Add more information to setLayout() 2019-10-25 16:18:41 +02:00
Dmitri Ovodok
8a28bd8714 Add initial version of redesigned palettes 2019-08-31 14:16:19 +03:00
Dmitri Ovodok
f8718a8b42 Remove unused code
- Remove disabled and largely outdated continuous view layout code
 - Remove declarations of functions which have no definition
 - Remove unused global libmscore variables
 - Remove some excessive forward declarations
2019-08-03 15:52:09 +03:00
Marc Sabatella
d1b2714fac fix #291491: tuplet autoplace issues 2019-07-01 16:41:34 -06:00
Dmitri Ovodok
4594cbdffd Allow specifying placement for autoplace*Element() functions explicitly 2019-06-10 16:43:59 +02:00
Marc Sabatella
a27bc1f2f0 manage minDistance when moving away from staff 2019-05-14 17:32:34 -06:00
Marc Sabatella
ea2bc3d85a add spanners except hairpins, also fix fingerings 2019-05-09 22:46:59 -06:00
Marc Sabatella
cd8384f595 more refactoring; spanners next... 2019-05-09 22:46:59 -06:00
Marc Sabatella
e92aff138b partial refactor; lyrics, dynamics, fingering 2019-05-09 22:46:59 -06:00
Marc Sabatella
ef300d1cea implement minDistance per element 2019-05-09 22:46:58 -06:00
Marc Sabatella
e3d7986b22 working other than some undo glitches 2019-05-09 22:46:58 -06:00
Marc Sabatella
fafa6cadcc working version 2019-05-09 22:46:58 -06:00
Marc Sabatella
cf52824b67 remove ABS_OFFSET property + collect_artifacts 2019-05-09 22:46:58 -06:00
Marc Sabatella
77f908bc58 allow autoplaced elements to cross into skyline 2019-05-09 22:46:58 -06:00
Marc Sabatella
6b7f33ec64 fix #278999, fix #288474: autoplace customization 2019-05-01 07:52:11 -06:00
Dmitri Ovodok
c789322faa Allow copy-pasting hairpins and hairpin+dynamics combinations 2019-03-27 10:24:08 +02:00
anatoly-os
c2d382241e remove redundant TODOs 2019-03-07 13:37:26 +02:00
ws
ec3be9a99a Replacd integer midi tick values by fractions.
- tick names a position on the time axis
- tick is always a Fraction()
- only Measure() and Segment() (and Tuplet?) have a tick value
- tick() for an generic element return only a sensible value if isMeasure() or isSegment() or isSegment(parent())

- "ticks" names a duration stored in a Fraction()
- the tick value for an Segment is relative to its measure

- rename "duration" to "ticks"
- rename afrac() to tick()
- rename rfrac() to rtick()
- rename some variables, changing "fraction" into "tick"
  (example: actualFraction() into actualTicks())

- Lyrics ticks are written as Fraction, on read if xmlreader sees a "/" it reads a fraction
  else midi ticks for backwards compatibility
2019-02-18 11:46:05 +01:00
Dmitri Ovodok
acdc76f958 fix #280775: fix inserting text elements on MM rest via shortcut 2018-12-28 12:22:20 +03:00
Dmitri Ovodok
8e2ad3b40d Record placement related properties when autoplacement gets switched on 2018-11-26 01:59:12 +02:00
ws
d2e452040b fix #278099 Crash when inserting a symbol from master palette 2018-11-13 13:32:33 +01:00
Dmitri Ovodok
6ae48c8b32 Extend properties framework for score comparison related needs
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
2018-10-29 17:04:24 +02:00
Dmitri Ovodok
3eafcc57be Add type check and conversion functions for Element, Score, Part 2018-10-29 16:30:18 +02:00
ws
96af32eee7 fix regressions: layout of misc. elements 2018-10-25 15:44:21 +02:00
ws
4cc247ea4a fix text position in palette 2018-10-22 11:43:54 +02:00
ws
d77183b3bb refactoring of Element::userOff and TextBase::offset 2018-10-18 11:56:23 +02:00
Matt McClinch
6708adfeb5 fix #276869: Adding barline with ctrl+doubleclick does not create a split. 2018-10-11 22:23:55 -04:00
Dmitri Ovodok
c354eb24c3 Remove read300 functions 2018-09-19 01:57:37 +03:00
anatoly-os
588a4bad76 add TODOs to rename pos() and ipos()
Element::pos() and Element::ipos() unclear and error prone semantic led to 382b7d79d8.
SpannerSegment::pos2() and SpannerSegment::ipos2() are not good as well.
I didn't apply renaming because active work is in progress.
2018-09-18 21:55:21 +02:00
ws
58618db581 fix autoplacement for Jump and Marker 2018-09-12 12:05:17 +02:00
Dmitri Ovodok
2c28195c1c Add a framework to read/write connectors using relative positions instead of IDs
Try to reconnect broken connectors while reading MSCX files
2018-08-16 19:10:28 +03:00
Dmitri Ovodok
b4da00bae2 Miscellaneous changes used for MSCX format rework
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
2018-08-16 19:08:45 +03:00
Dmitri Ovodok
55bef706b8 Add API for retrieving positions of elements in terms of fractions
Rename fpos -> rfrac
Merge Element::ftick with Element::afrac
2018-08-16 19:08:45 +03:00
Dmitri Ovodok
8fa920b7df Backup old MSC read functions, add a test for fileformats compatibility
Use old read functions for reading 1.x and 2.x fileformats

Assign version number 3.01 to the new MSCX format flavor
2018-08-16 19:08:45 +03:00
ws
10ebbb9080 update text style implementation 2018-08-01 11:46:35 +02:00
ws
10d1ae0529 add method propertyDelegate() to Element 2018-07-24 15:48:24 +02:00
ws
1fb2fc2d9b fix #264594 lyrics update 2018-07-19 13:03:38 +02:00
Matt McClinch
d0c189b622 fix #117066: Selecting notes in triplet quavers embedded in triplet crotchet 2018-07-12 22:57:20 -04:00
ws
175d5aadb3 cleanup ElementFlags interface, use more Placement properties on mxml import/export 2018-07-04 12:41:14 +02:00
ws
6b8a6461f3 fix #272380 Rehearsal marks from palette are not generated automatically 2018-06-19 14:00:00 +02:00
ws
6a4bcb2dd1 fix #272379 Incorrect empty rectangle for rehearsal marks 2018-06-01 12:22:39 +02:00
ws
984e6ee761 fix lineVisible property 2018-05-07 11:28:50 +02:00
ws
af29311ec4 remove Element->_readPos 2018-04-30 16:08:25 +02:00