SysStaff.y() when calculating the vertical position of the SysStaff because
in case of single line staves, SysStaff.y() the returned value includes an
offset. This resulted in wrong initial spacing between staves when one of
he staves was a single line staff.
SysStaff.bbox().y() returns the uncorrected Y-coordinate which is required
to calculate the correct spacing between staves.
Will return the correct bottom y coordinate in case a SysStaff contains only a horizontal frame.
In this case the SysStaff doens't have a valid skyline and the initial (far too large) maximum value is returned.
This is solved by returning the height of the SysStaff in case the skyline is invalid (has no segments).
Use the explicit 'W' (wide) symbols from the Windows API to provide
Unicode support regardless of whether UNICODE is defined:
- SetFileAttributesW
- LPCWSTR
Define UNICODE anyway for the sake of thirdparty code that uses the
aliases, which only work properly when UNICODE is defined:
- SetFileAttributes
- LPCTSTR
If UNICODE is not defined then the aliases refer to the narrow symbols:
- SetFileAttributesA
- LPCSTR
But the explict 'W' symbols are still available. The aliases are only
needed for compatibility with code written prior to Windows NT.
When a Painter object goes out of scope, its endTarget() method will be executed, which in turn calls the endTarget() method of the concrete subclasses of IPaintProvider. But if the Painter has already called endDraw(), then BufferedPaintProvider::endObject() will already have been called, and must not be called again. BufferedPaintProvider::endTarget() must only call endObject() if m_isActive is true.
Resolves: https://musescore.org/en/node/318772.
When checking whether an image is used in a given score, also check whether the image's parent actually contains the image. If not, this means that the image has been removed, but is being kept alive in the undo stack, and should not be saved in the MSCZ archive.
Details: all fragments in TextBase will have ScoreText font after init and TextBase will have Edwin as its default. After calling styleChanged() to all fragments will be applied Edwin even if symbols of those fragments missed in Edwin