Package: musescore3 / 3.2.3+dfsg2-16
Metadata
| Package | Version | Patches format |
|---|---|---|
| musescore3 | 3.2.3+dfsg2-16 | 3.0 (quilt) |
Patch series
view the series file| Patch | File delta | Description |
|---|---|---|
| backports/46 ui ambitus.diff | (download) |
mscore/inspector/inspectorAmbitus.cpp |
13 9 + 4 - 0 ! |
fix #284344: ambitus not redrawn on update range |
| backports/47 ui ambitus.diff | (download) |
libmscore/ambitus.cpp |
4 2 + 2 - 0 ! |
fix #305941: changing octaves for ambiti doesn't work correctly |
| upstream/ottava size.diff | (download) |
libmscore/style.cpp |
2 1 + 1 - 0 ! |
fix #300738: ottava (8va/8vb) number is too big |
| upstream/pitch ottava.diff | (download) |
libmscore/note.cpp |
29 21 + 8 - 0 ! |
fix #293593 - issues with ottavas Corrects first problem: Status doesn't display the pitch of note that have an ottave line. This is solved in Note::tpcUserName(). . Solves the second problem in issue 293593: Accidentals do apply if 8va sign is added. This is solved in Note::updateAccidental(). All calculations are based on the effective pitch of the a note rather than the actual pitch. The solution now takes to ottava signs into account by using the actual pitch. . For easily find out whether an ottava is applied, a new method ottavaCapoFret() is added which returns the pitch offset by an ottava (or capo fret). To prevent code dublication, ppitch() also use this new ottavaCapoFret() method. |
| backports/50 layout divider.diff | (download) |
libmscore/layout.cpp |
30 16 + 14 - 0 ! |
fix #298273: divider not displayed in some cases Resolves: https://musescore.org/en/node/298273 . System dividers were not being displayed in certain cases: if a fixed spacer is used, or in single page view. In addition, dividers were displaying that shouldn't be if layout changes and a system that was formerly not last on page suddenly becomes last on page, This is due to a series of errors in layoutPage() where the dividers are managed. This fix involves a number of aspects: 1) checkDivider now takes an extra boolean parameter to force deletion 2) we always call checkDivider with that parameter set to true for the last system of a page 3) in the case where we don't stretch system distance (the clause checking sList, noVerticalStretch, or System layout mode), don't just remove dividers, but do the normal checkDivider call, which adds or removes dividers as appropriate 4) in the calls to checkDivider at the end of the function (which handle the normal case of non-final systems on the page), dion't skip the checkDivider calls if a system hasFixedDownDistance. I believe that check was added because it is appropriate in other places that also check vBox, so it may have looked like this code should match. But it shouldn't, there is no reason to skip dividers in this case. Only the stretch calculations should be skipped. |
| backports/51 paste hairpin.diff | (download) |
libmscore/chordrest.cpp |
15 6 + 9 - 0 ! |
fix #299768: hairpin: when copied, all custom settings are lost and the element resets to default Resolves: https://musescore.org/en/node/299768. |
| backports/52 ui enter whole note.diff | (download) |
libmscore/cmd.cpp |
5 4 + 1 - 0 ! |
fix #300926: problem selecting and entering a whole note Resolves: https://musescore.org/en/node/300926. . This allows a full measure rest to be changed into a "normal" rest even if the actual length of the rest is not being changed. |
| upstream/prefs radio.diff | (download) |
mscore/CMakeLists.txt |
2 2 + 0 - 0 ! |
fix #304466: the i/o tab of the preferences dialog should use radio buttons instead of checkboxes Fixed a UI problem with the I/O tab of the Preferences dialog that caused mutually exclusive options to be presented to the user as checkboxes instead of radio buttons. . The underlying technical reason for this was that the Qt framework does not allow group boxes to have radio buttons. This has been worked around by subclassing the QGroupBox class and rendering the checkboxes to look like radio buttons. This is sufficient for our purposes because the application already overrides the checkboxes' behavior to work like radio buttons. |
| upstream/pitch Cb B#.diff | (download) |
libmscore/note.cpp |
2 1 + 1 - 0 ! |
fix #290987: b# and cb octave change Resolves: https://musescore.org/en/node/290987. . Make sure that B#, B##, Cb, and Cbb describe themselves as being in the correct octave. This is accomplished by calculating the octave based on what the pitch would be if there were no accidental. Thus, there is no need to special-case certain tpcs. |
| backports/55 layout timesig.diff | (download) |
libmscore/timesig.cpp |
10 8 + 2 - 0 ! |
fix #282246: "other" appearance in time sig props not working. This bug occurs when the user chooses an "other" time signature property. This fix works by changing the implementation to be closer to MuseScore 2. This works by simply only checking to use the numbers if the numerator string is empty. This way, if the denominator string is empty, the numerator string which will have the custom symbol, will line up in the middle. This was how the implementation worked in MuseScore 2. |
| backports/56 layout spatium.diff | (download) |
mscore/pagesettings.cpp |
8 7 + 1 - 0 ! |
fix #188061: values in sp unit don't remain unchanged after changing spatium This is simply because `Score::spatiumChanged()` isn't called after applying changes in Page Settings dialogue. It is called for the preview score in the dialogue though, so the preview score has the correct display, but not the main score. |
| upstream/crash fontname.diff | (download) |
mscore/inspector/inspectorBase.cpp |
6 3 + 3 - 0 ! |
fix #303619: musescore crashing when entering font name Resolves: https://musescore.org/en/node/303619. . Passing an empty string to QWidget::setStyleSheet() causes the widget's current style sheet to be removed, thus causing the widget's style to be inherited from its parent. This creates a problem in QComboBox::showPopup(), where it becomes possible that a pointer to a QStyle object could used after the object itself has been destroyed. A style sheet of " " can be used to override any previous style sheet without invalidating the current QStyle object. |
| backports/58 blank lines.diff | (download) |
libmscore/textbase.cpp |
12 12 + 0 - 0 ! |
fix #292652: empty lines become smaller |
| backports/58b empty lines.diff | (download) |
libmscore/textbase.cpp |
32 26 + 6 - 0 ! |
fix #303087: Fixed a bug where the cursor would be on the wrong height after deleting all chars in a line |
| backports/59 blank lines.diff | (download) |
libmscore/textbase.cpp |
56 51 + 5 - 0 ! |
fix #307721: blank lines ignored at top of text elements |
| upstream/wmclass.diff | (download) |
build/Linux+BSD/mscore.desktop.in |
1 1 + 0 - 0 ! |
fix #307593: prevent duplicated icon on ubuntu |
| backports/62 measure count.diff | (download) |
libmscore/layout.cpp |
4 2 + 2 - 0 ! |
fix #306333 - various type of edits change the measure count After a modification, a re-layout is triggered starting at the beginning of the system. The measure number of the first measure of the system is taken adding 1 to the measure number of the last measure of previous system. However it was not taken into account whether that measure was excluded from measure count. |
| backports/63 minimise window.diff | (download) |
mscore/mixer.cpp |
30 19 + 11 - 0 ! |
fix #298820: fix inability to minimize musescore on linux with gnome-based desktop environments The issue happens if some QML view is opened, e.g. a plugin dock or, more importantly, Palettes panel. Fixes the issue by leaving the code in Mixer and Play Panel forcing a window to take focus only in cases when it might make sense: when opening the corresponding widget and when unminimizing MuseScore if the widget is in floating state (otherwise it won't take focus). This is enough to avoid triggering the issue which happens only if Play Panel or Mixer is docked. |
| backports/change staff name.diff | (download) |
mscore/editstaff.cpp |
46 29 + 17 - 0 ! |
fix #88861: allow mid-score staff name changes |
| backports/plugin remove el.diff | (download) |
mscore/plugin/api/elements.cpp |
45 45 + 0 - 0 ! |
fix #291790, fix #267604: restore chord.remove() and chord.add() methods. Restore the add and remove QML methods for the Chord object. Adds exposed Element.parent property. These existed in v2.x. Finally it adds a removeElement method to PluginAPI for general element disposal. |
| backports/plugin select.diff | (download) |
mscore/CMakeLists.txt |
2 2 + 0 - 0 ! |
fix #291708: expose score.selection object to access to gui selected elements. This commit exposes the Score.selection.elements list enabling QML scripts to manipulate on user selected score elements. The expectation is that additional selection information will be provided on this object in the future. |
| backports/plugin onRun.diff | (download) |
mscore/plugin/mscorePlugins.cpp |
8 7 + 1 - 0 ! |
fix #72416: fix onrun() being executed in a wrong instance of dock and dialog plugins |
| backports/plugin size.diff | (download) |
mscore/plugin/mscorePlugins.cpp |
6 6 + 0 - 0 ! |
fix dock plugins appearing with zero height Plugin should assign reasonable values to implicitHeight/implicitWidth (or, less preferably, height/width) properties for this to work properly. |
| backports/plugin qml.diff | (download) |
mscore/musescore.h |
2 1 + 1 - 0 ! |
fix #275268: don't list non-plugin qml files in plugin manager |
| backports/plugin parent.diff | (download) |
mscore/plugin/api/elements.cpp |
3 3 + 0 - 0 ! |
plugins: fix a crash on getting element's parent if parent is null |
| backports/5507.patch | (download) |
libmscore/cmd.cpp |
17 11 + 6 - 0 ! |
fix #292648: make courtesy accidentals stay if notes are changed using Ctrl+Up/Down |
| backports/crash F9.diff | (download) |
mscore/musescore.cpp |
7 2 + 5 - 0 ! |
fix #309333: crash hiding palettes Resolves: https://musescore.org/en/node/309333 . Crash happens on trying to set the focus upon closing the palette, we try to restore the previous focused widget. But it may no longer be valid. . Changed to return focus to the score view if possible, otherwise let Qt worry about it. |
| upstream/silence qdebug.diff | (download) |
libmscore/xmlreader.cpp |
1 0 + 1 - 0 ! |
silence some qdebug output |
| upstream/statusline pitch onofftime.diff | (download) |
libmscore/note.cpp |
21 19 + 2 - 0 ! |
indicate pitch and on/off time in the status line - indicate sounding pitch if the global concert pitch toggle is off and the current instrument has an actual pitch, i.e. not beat/rhythm slashes or drums; this will show the identical pitch for nn-transposing instruments by design (to show were currently in transposing pitch mode, but the current instrument is not transposing) which helps debugging - indicate tuning (if any) after the sounding pitch (either mode) - show on/off times if at least one of them is nn-standard . The first change partially addresses node #283120. The on/off time was requested in node #290900#comment-927933 (velocity is too hard, sorry about that). |
| upstream/improve mscore font.diff | (download) |
fonts/mscore/genttf |
17 14 + 3 - 0 ! |
merge parnassus accidentals into mscore and fix a couple of issues . Note: debian/upstream/mscore.ttf was generated by me with FontForge from the fully patched mscore.sfd; FontForge at package build time would have been more problematic |
| upstream/fix accidental paren pos.diff | (download) |
libmscore/accidental.cpp |
5 3 + 2 - 0 ! |
honour symbol advance width from font when drawing accidentals more specifically, accidentals in parenthess (or other enclosing symbols) now have the advance width of the enclosing glyph and the glyph from the accidental itself honoured fixing asymmetric render of a parenthesised |
| upstream/smufl fixes.diff | (download) |
fonts/gootville/metadata.json |
30380 15190 + 15190 - 0 ! |
update smufl metadata, fixing a typo and reducing indent plus drop redundant whitespace at EOL in JSON files and regenerate sym.* from it |
| upstream/sprintf.diff | (download) |
mscore/playpanel.cpp |
4 2 + 2 - 0 ! |
fix possible buffer overflow compiler warning, very unlikely to hit in production . Better fix would be QString::asprintf() but Qt discourages that for some unconceivable reason... |
| upstream/crash frame dblclick.diff | (download) |
mscore/editelement.cpp |
3 3 + 0 - 0 ! |
fix #300855: trying to add text to a vertical/horizontal
frame after double click causes crash
.
The crash is caused by ed.getData(t) failing and returning nullptr,
where t is the newly added text element and ed is the score edit data.
The interesting thing is that this didn't return nullptr when not in
edit mode already before adding the text - it was only a problem when
adding text when already in edit mode. The line of relevance that is
the root of this whole problem is, in ScoreView::changeState:
.
if (s == state)
return;
.
where s is the new state and state is the current one. This is right at
the start, so if we're already in edit mode, then the crucial
startEdit() call further down the function won't happen. Of course,
startEdit is the bit that's responsible for clearing the edit data and
adding the new edit data for the new text element. So, when it doesn't
run, there's no edit data for the new text. And when there's no edit
data, getData fails. And when getData fails, text->cursor(ed) crashes
on a Q_ASSERT.
|
| upstream/crash frame spacer.diff | (download) |
libmscore/system.cpp |
2 1 + 1 - 0 ! |
fix #303611: adding fixed spacer can clash with vertical frame below, causing a crash. |
| upstream/fix ins hframe.diff | (download) |
libmscore/box.cpp |
4 4 + 0 - 0 ! |
fix #306612: insert horizontal frame in front of frame using palette . Resolves: https://musescore.org/en/node/306612 . You can select a frame and insert any other type of frame in front using the palette, but you cannot insert a horizontal frame this way. Cause is simple: missing handler for this in acceptDrop() and drop(). Fix is trivial. |
| backports/fix add img to frame.diff | (download) |
mscore/propertymenu.cpp |
2 1 + 1 - 0 ! |
fix #307720: assertion failure adding image to vertical frame . Resolves: https://musescore.org/en/node/307720 . we are tryng to cast an element to an HBox that isn't necessarily one. No reason to do this; it works just fine without the cast. |
| upstream/crash voice tied.diff | (download) |
libmscore/undo.cpp |
2 1 + 1 - 0 ! |
fix #307900: crash when switching voices if notes are tied |
| backports/crash nested boxen.diff | (download) |
libmscore/measurebase.cpp |
26 26 + 0 - 0 ! |
fix #307841: crashes and more with hbox within vbox . Resolves: https://musescore.org/en/node/307841 . When adding an hbox within a vbox, we never set its tick, and as a result other operations that depend on the tick (like triggering layout) do not work correctly. This is fixed by overriding HBox::tick() to check the parent. It was also necessary to alter MeasureBase::triggerLayout(), as it actually did nothing for hbox-within-vbox, because it checks for prev() and next() which are nullptr here. That check is needed to avoid triggering layout for measurebases that are not yet added to the score. This problem is solved here by checking the parent, just as is done for the tick itself. |
| upstream/corrupt ins frame.diff | (download) |
libmscore/edit.cpp |
2 2 + 0 - 0 ! |
fix #307929: corruption when inserting frame in front of nested frame . Resolves: https://musescore.org/en/node/307929 . If you try to insert a frame in front of a horizontal frame that itself is nested within a vertical frame, the list of measurebases for the scores gets corrupted, since the horizontal frame is not actually part of the list. Solution here is to make sure we get the top level measurebase that contains the current measurebase. In most cases, it's the same thing, but this will return the vertical frame in the case at hand. |
| backports/fix frame breaks.diff | (download) |
libmscore/edit.cpp |
7 4 + 3 - 0 ! |
fix #288098, #307301, #305958, #295629: interactions between breaks and frames . Resolves: https://musescore.org/en/node/288098 Resolves: https://musescore.org/en/node/307301 Resolves: https://musescore.org/en/node/305958 Resolves: https://musescore.org/en/node/295629 . A number of bugs all turn out to be related to a single root cause, where we don't correctly handle checking for section breaks in the presence of frames. In the case of the long instrument name showing inappropriately, it's because in the case where the previous systems is just a frame, we don't see any measure, so we fall back to relying on the layout of the previous system having already set up the context for us. This isn't necessarily valid when doing partial layout. So we need to check more thoroughly here, accepting a frame if it has a section break itself, but otherwise searching backwards looking for frame with a break or a measure. That is, we need to skip break-less frames when looking to see if we are starting a section. I have therefore implemented such a function. . This turns out to also fix an issue with horizontal frames, where a break on a horizontal frame ending a system was being ignored for the purpose of setting long names. . The same applies to the new first system indent facility, so while these bugs are not recent regressions, they take on new importance in 3.6. . The new function is also used to fix a related by with measure numbers, where a frame could get in the way of resetting them after a section break. It is used again to solve the corresponding issue on MusicXML export. . Along the way I discovered a bug leading to an assertion failure when deleting breaks attached to frames, so I needed to fix that by making sure LayoutBreak::measure() doesn't assume its parent is in fact an actual Measure as opposed to a MeasureBase. |
| backports/fix frame breaks 2.diff | (download) |
libmscore/layout.cpp |
6 3 + 3 - 0 ! |
fix #317747: measure number appears after section break Resolves: https://musescore.org/en/node/317747#comment-1063687 . In implementing a bunch of related fixes for the behavior of section breaks followed by frames or breaks *on* frames* in https://github.com/musescore/MuseScore/pull/7026/, I introduced a new function designed to find relevant section breaks. However, I missed one opportunity to use this function (even though I left a TODO for this), and in one place where I did call the function, I neglected to actually use its return value. As a result, in one situation where it previously worked to place the section break on a frame but failed when placing the frame after the section break, my change merely reversed these two cases. . This commit fixes those two oversights. In these two places where the code previously assumed we had a MeasureBase that made sense to check for section breaks, we now call findPotentialSectionBreak() to look backwards. This ensures we don't miss breaks on or before frames in these two places in the code. |
| upstream/fix lyrics init.diff | (download) |
libmscore/lyrics.h |
4 2 + 2 - 0 ! |
fix initialization of lyricslinesegment members . Fixes random hanging on PNG export of some scores, see https://musescore.org/en/node/293523#comment-940874 |
| upstream/fix lyrics even style.diff | (download) |
libmscore/style.cpp |
12 6 + 6 - 0 ! |
fix #290947: lyrics: frame, border and highlight styling regressions . where these for even lyrics can't get set and if tried odd lyrics are getting set instead |
| upstream/fix lyrics yoff parts.diff | (download) |
libmscore/lyrics.cpp |
3 2 + 1 - 0 ! |
fix #295357: lyrics y offset in parts lost on save/reload . In 3.0 - 3.0.5, it was not possible to change the Y position of lyrics. You could try, and an offset would be recorded, but it would have no effect on layout. Starting with 3.1, it became possible to change the Y position for lyrics. For compatibility, we cleared the Y offset when reading 3.0 - 3.0.5 scores, since it would have been ignored originally. However, the code doing the version check fails in parts, because mscoreVersion() returns an empty string in that case. This change simply amends the check to use masterScore() rather than score(), so parts no longer return an empty version, and also adds an explicit check for the version being empty, so the check works correctly in test mode, where this field is often empty even for the master score. |
| backports/initElementStyle later.diff | (download) |
libmscore/articulation.cpp |
2 1 + 1 - 0 ! |
make sure initelementstyle() is called after initialising the member to provide style settings are overwritten by the member initialisation. |
| gh9000/c41a06bc809f0f17349988e8be764dc3c760722c.diff | (download) |
libmscore/rest.cpp |
2 1 + 1 - 0 ! |
fix #321809: crash when pasting note(head) onto mmrest |
| gh9000/745ae112a14dab30be263762f942136cc0629dcf.diff | (download) |
libmscore/noteentry.cpp |
24 13 + 11 - 0 ! |
fix #274126 crash when entering music on top of an unterminated slur by midi |
| gh9000/3681b72032f35e731ff3e2bc933528a9ae594777.diff | (download) |
libmscore/noteentry.cpp |
2 1 + 1 - 0 ! |
fix #321716: fix entering 8th notes in realtime midi input modes When comparing a Fraction (ticks2measureEnd) to the TDuration of the note being entered (is.duration()), the Fraction is implicitly converted by the TDuration(const Fraction&) ctor. Because of extra logic in TDuration, this can trigger a Q_ASSERT and crash Musescore in case the remaining Fraction cannot be exactly converted into a proper TDuration. In this case, this point is reached when ticks2measureEnd = 5/8 and is.duration() = 1/8. . Since what we really want here is to compare the Fraction to the exact note duration (and not the other way around), we can just do an exact comparison between is.duration().fraction() and ticks2measureEnd to achieve the same goal. |
| gh9000/994ca186ddac51f5f8b036b63d0cb29056b53c6e.diff | (download) |
libmscore/ambitus.cpp |
10 10 + 0 - 0 ! |
fix gh#9447: crash on removing accidental from ambitus Fixed by just ignoring the operation, i.e. not removing the accidental. Instead do this via the Inspector. |
| gh9000/fix divbyzero.diff | (download) |
libmscore/fraction.h |
2 1 + 1 - 0 ! |
part of a bugfix thats generally useful |
| gh9000/af53da9b4dae7e32edab41d1233e17331af6826a.diff | (download) |
libmscore/edit.cpp |
2 2 + 0 - 0 ! |
fix #328337: crash on deleting time signatures in front of multimeasure rests |
| gh9000/8c4b4f69264deb398dc4767c9d2cf1f4da3447c7.diff | (download) |
mscore/events.cpp |
9 9 + 0 - 0 ! |
fix #324840: ctrl+scrollwheel zoom on linux x11 With recent libinput versions zooming with Ctrl+Scrollwheel would zoom in huge steps. This change enforces the previous behavior for Linux only. |
| gh9000/f39e81f8d1f4ec7fb1367b2f175a887634474583.diff | (download) |
midi/midifile.cpp |
11 9 + 2 - 0 ! |
fix #310158: don't null terminate midi text meta events |
| gh9000/b359c3d4131cb58b868107f0dc64c9c0e705749c.diff | (download) |
mscore/alsa.cpp |
1 1 + 0 - 0 ! |
fix gh#10407: alsa sequencer device leaks when toggling midi on/off |
| gh9000/2c5901551af50cb703d182a684fc265ea6b7a4ee.diff | (download) |
libmscore/edit.cpp |
6 6 + 0 - 0 ! |
fix gh#10653: crash converting to whole note twice, on a certain score. |
| gh9000/3a2ebebd69744347677022862cadfad5f0b40923.diff | (download) |
libmscore/cmd.cpp |
2 1 + 1 - 0 ! |
fix #332925: half duration shortcut crashes musescore when time signature is 5/4 |
| gh9000/8bb0d3e12382aedc865730dc4047b1830c4d928f.diff | (download) |
libmscore/range.cpp |
2 1 + 1 - 0 ! |
fix #333979: crash when changing time signature on a 'hanging' slur |
| gh9000/c7c294cb7166f5e1ab0da445e9493d14ac01c9b6.diff | (download) |
libmscore/rendermidi.cpp |
2 2 + 0 - 0 ! |
fix #324232: after a midi export without expanding repeats, those are not played in the current session anymore either |
| gh9000/67826dec1a820bbfaa341ec5211c05215eb205e0.diff | (download) |
mscore/exportmidi.cpp |
18 10 + 8 - 0 ! |
fix #207346: restrict first track to timing events Currently, exported MIDI files will have data events in the first MIDI track. While this is not forbidden by the standard, the industry convention is to only put timing related events in the first track, in which case it is called a tempo track. MuseScore should follow that convention because a lot of the available software assumes this convention. This has been discussed and agreed upon in: https://musescore.org/en/node/207346 |
