Skip to content

Commit 32ec33d

Browse files
authored
Merge pull request #30331 from cbjeukendrup/port/4.6.1
2 parents af9674e + d18df2e commit 32ec33d

File tree

17 files changed

+72
-89
lines changed

17 files changed

+72
-89
lines changed

buildscripts/packaging/Linux+BSD/org.musescore.MuseScore.appdata.xml.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
</kudos>
117117
<!-- Only <releases> below this point please! -->
118118
<releases>
119-
<release date="2025-10-06" version="4.6.1">
119+
<release date="2025-10-07" version="4.6.1">
120120
<url>https://musescore.org/en/4.6.1</url>
121121
</release>
122122
<release date="2025-09-30" version="4.6">

src/engraving/dom/dynamic.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,17 @@
2121
*/
2222
#include "dynamic.h"
2323

24-
#include "types/translatablestring.h"
2524
#include "types/typesconv.h"
2625

27-
#include "anchors.h"
2826
#include "dynamichairpingroup.h"
2927
#include "expression.h"
3028
#include "hairpin.h"
3129
#include "measure.h"
32-
#include "mscore.h"
3330
#include "score.h"
3431
#include "segment.h"
3532
#include "system.h"
3633
#include "tempo.h"
34+
#include "textedit.h"
3735
#include "undo.h"
3836

3937
#include "log.h"
@@ -597,8 +595,8 @@ String Dynamic::screenReaderInfo() const
597595

598596
bool Dynamic::isEditAllowed(EditData& ed) const
599597
{
600-
if (ed.key == Key_Tab) {
601-
return false;
598+
if (!dynamic_cast<TextEditData*>(ed.getData(this).get())) {
599+
return EngravingItem::isEditAllowed(ed);
602600
}
603601

604602
return TextBase::isEditAllowed(ed);

src/engraving/dom/property.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ static constexpr PropertyMetaData propertyList[] = {
222222
{ Pid::GLISS_SHIFT, false, "glissandoShift", P_TYPE::BOOL, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "glissando shift") },
223223
{ Pid::GLISS_EASEIN, false, "easeInSpin", P_TYPE::INT, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "ease in") },
224224
{ Pid::GLISS_EASEOUT, false, "easeOutSpin", P_TYPE::INT, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "ease out") },
225-
{ Pid::DIAGONAL, false, "", P_TYPE::BOOL, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "diagonal") },
225+
{ Pid::DIAGONAL, false, "diagonal", P_TYPE::BOOL, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "diagonal") },
226226
{ Pid::GROUP_NODES, false, "", P_TYPE::GROUPS, PropertyGroup::NONE, QT_TRANSLATE_NOOP("engraving/propertyName", "groups") },
227227
{ Pid::LINE_STYLE, true, "lineStyle", P_TYPE::LINE_TYPE, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "line style") },
228228
{ Pid::LINE_WIDTH, false, "lineWidth", P_TYPE::SPATIUM, PropertyGroup::APPEARANCE, QT_TRANSLATE_NOOP("engraving/propertyName", "line width") },

src/engraving/playback/metaparsers/notearticulationsparser.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,9 @@ ArticulationType NoteArticulationsParser::articulationTypeByNoteheadGroup(const
133133

134134
void NoteArticulationsParser::parsePlayingTechnique(const RenderingContext& ctx, mpe::ArticulationMap& result)
135135
{
136-
const std::pair<timestamp_t, PlayingTechniqueType> tech = ctx.playbackCtx->playingTechnique(ctx.score, ctx.nominalPositionStartTick);
136+
int chordPosTickWithOffset = ctx.nominalPositionStartTick + ctx.positionTickOffset;
137+
138+
const std::pair<timestamp_t, PlayingTechniqueType> tech = ctx.playbackCtx->playingTechnique(ctx.score, chordPosTickWithOffset);
137139
const mpe::ArticulationType articulationType = articulationFromPlayTechType(tech.second);
138140
if (articulationType == ArticulationType::Standard || articulationType == ArticulationType::Undefined) {
139141
return;
@@ -149,7 +151,7 @@ void NoteArticulationsParser::parsePlayingTechnique(const RenderingContext& ctx,
149151

150152
if (tech.second == PlayingTechniqueType::HandbellsLV) {
151153
const timestamp_t dampTime = ctx.playbackCtx->findPlayingTechniqueTimestamp(ctx.score, PlayingTechniqueType::HandbellsDamp,
152-
ctx.nominalPositionStartTick);
154+
chordPosTickWithOffset);
153155
timestamp = tech.first;
154156
duration = dampTime > 0 ? dampTime - timestamp : mpe::INFINITE_DURATION;
155157
}

src/engraving/rw/read400/tread.cpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3572,20 +3572,13 @@ bool TRead::readProperties(SLine* l, XmlReader& e, ReadContext& ctx)
35723572
ls->setVisible(l->visible());
35733573
} else if (tag == "length") {
35743574
l->setLen(e.readDouble());
3575-
} else if (tag == "diagonal") {
3576-
l->setDiagonal(e.readInt());
3577-
} else if (tag == "anchor") {
3578-
l->setAnchor(SLine::Anchor(e.readInt()));
3579-
} else if (tag == "lineWidth") {
3580-
l->setLineWidth(Spatium(e.readDouble()));
3575+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DIAGONAL)) {
3576+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::ANCHOR)) {
3577+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::LINE_WIDTH)) {
35813578
} else if (TRead::readProperty(l, tag, e, ctx, Pid::LINE_STYLE)) {
3582-
} else if (tag == "dashLineLength") {
3583-
l->setDashLineLen(e.readDouble());
3584-
} else if (tag == "dashGapLength") {
3585-
l->setDashGapLen(e.readDouble());
3586-
} else if (tag == "lineColor") {
3587-
l->setLineColor(e.readColor());
3588-
} else if (tag == "color") {
3579+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DASH_LINE_LEN)) {
3580+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DASH_GAP_LEN)) {
3581+
} else if (tag == "lineColor" || tag == "color") {
35893582
l->setLineColor(e.readColor());
35903583
} else if (!readProperties(static_cast<Spanner*>(l), e, ctx)) {
35913584
return false;

src/engraving/rw/read410/tread.cpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3766,20 +3766,13 @@ bool TRead::readProperties(SLine* l, XmlReader& e, ReadContext& ctx)
37663766
ls->setVisible(l->visible());
37673767
} else if (tag == "length") {
37683768
l->setLen(e.readDouble());
3769-
} else if (tag == "diagonal") {
3770-
l->setDiagonal(e.readInt());
3771-
} else if (tag == "anchor") {
3772-
l->setAnchor(SLine::Anchor(e.readInt()));
3773-
} else if (tag == "lineWidth") {
3774-
l->setLineWidth(Spatium(e.readDouble()));
3769+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DIAGONAL)) {
3770+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::ANCHOR)) {
3771+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::LINE_WIDTH)) {
37753772
} else if (TRead::readProperty(l, tag, e, ctx, Pid::LINE_STYLE)) {
3776-
} else if (tag == "dashLineLength") {
3777-
l->setDashLineLen(e.readDouble());
3778-
} else if (tag == "dashGapLength") {
3779-
l->setDashGapLen(e.readDouble());
3780-
} else if (tag == "lineColor") {
3781-
l->setLineColor(e.readColor());
3782-
} else if (tag == "color") {
3773+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DASH_LINE_LEN)) {
3774+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DASH_GAP_LEN)) {
3775+
} else if (tag == "lineColor" || tag == "color") {
37833776
l->setLineColor(e.readColor());
37843777
} else if (!readProperties(static_cast<Spanner*>(l), e, ctx)) {
37853778
return false;

src/engraving/rw/read460/tread.cpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3636,20 +3636,13 @@ bool TRead::readProperties(SLine* l, XmlReader& e, ReadContext& ctx)
36363636
ls->setVisible(l->visible());
36373637
} else if (tag == "length") {
36383638
l->setLen(e.readDouble());
3639-
} else if (tag == "diagonal") {
3640-
l->setDiagonal(e.readInt());
3641-
} else if (tag == "anchor") {
3642-
l->setAnchor(SLine::Anchor(e.readInt()));
3643-
} else if (tag == "lineWidth") {
3644-
l->setLineWidth(Spatium(e.readDouble()));
3639+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DIAGONAL)) {
3640+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::ANCHOR)) {
3641+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::LINE_WIDTH)) {
36453642
} else if (TRead::readProperty(l, tag, e, ctx, Pid::LINE_STYLE)) {
3646-
} else if (tag == "dashLineLength") {
3647-
l->setDashLineLen(e.readDouble());
3648-
} else if (tag == "dashGapLength") {
3649-
l->setDashGapLen(e.readDouble());
3650-
} else if (tag == "lineColor") {
3651-
l->setLineColor(e.readColor());
3652-
} else if (tag == "color") {
3643+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DASH_LINE_LEN)) {
3644+
} else if (TRead::readProperty(l, tag, e, ctx, Pid::DASH_GAP_LEN)) {
3645+
} else if (tag == "lineColor" || tag == "color") {
36533646
l->setLineColor(e.readColor());
36543647
} else if (!readProperties(static_cast<Spanner*>(l), e, ctx)) {
36553648
return false;

src/framework/uicomponents/qml/Muse/UiComponents/IncrementalPropertyControl.qml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Item {
3434

3535
property alias isIndeterminate: textInputField.isIndeterminate
3636
property real currentValue: 0.0
37+
property alias currentText: textInputField.currentText
3738

3839
property real step: 0.5
3940
property int decimals: 2

src/notation/qml/MuseScore/NotationScene/internal/StringTuningsPopup.qml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,8 @@ AbstractElementPopup {
214214
Layout.preferredHeight: parent.height - ui.theme.borderWidth * 2
215215
Layout.preferredWidth: 64
216216

217-
currentValue: modelData["valueStr"]
217+
currentValue: modelData["value"]
218+
currentText: modelData["valueStr"]
218219

219220
minValue: 0
220221
maxValue: 127
@@ -223,12 +224,10 @@ AbstractElementPopup {
223224
navigation.row: index
224225
navigation.column: 3
225226

226-
canIncrease: modelData["value"] < maxValue
227227
onIncrement: function() {
228228
return stringTuningsModel.increaseStringValue(currentValue)
229229
}
230230

231-
canDecrease: modelData["value"] > minValue
232231
onDecrement: function() {
233232
return stringTuningsModel.decreaseStringValue(currentValue)
234233
}
@@ -237,8 +236,8 @@ AbstractElementPopup {
237236
var ok = stringTuningsModel.setStringValue(index, newValue)
238237
if (!ok) {
239238
//! NOTE: reset the text entered by the user
240-
currentValue = modelData["valueStr"]
241-
currentValue = Qt.binding( function() { return modelData["valueStr"] } )
239+
currentText = modelData["valueStr"]
240+
currentText = Qt.binding( function() { return modelData["valueStr"] } )
242241
}
243242
}
244243
}

src/notation/view/abstractnotationpaintview.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1271,10 +1271,15 @@ bool AbstractNotationPaintView::event(QEvent* event)
12711271

12721272
if (isContextMenuEvent) {
12731273
QContextMenuEvent* contextMenuEvent = dynamic_cast<QContextMenuEvent*>(event);
1274+
if (contextMenuEvent && contextMenuEvent->reason() == QContextMenuEvent::Mouse
1275+
&& m_inputController->ignoreNextMouseContextMenuEvent()) {
1276+
return true;
1277+
}
12741278
QPointF pos = contextMenuEvent && !contextMenuEvent->pos().isNull()
12751279
? mapFromGlobal(contextMenuEvent->globalPos())
12761280
: fromLogical(m_inputController->selectionElementPos()).toQPointF();
12771281
showContextMenu(m_inputController->selectionType(), pos);
1282+
return true;
12781283
} else if (eventType == QEvent::Type::ShortcutOverride) {
12791284
bool shouldOverrideShortcut = shortcutOverride(keyEvent);
12801285

0 commit comments

Comments
 (0)