Skip to content

Fix duplicate "To coda (symbol)" items in palette #29380

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Aug 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/engraving/dom/property.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ static constexpr PropertyMetaData propertyList[] = {
{ Pid::PLAY_UNTIL, true, "playUntil", P_TYPE::STRING, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "play until") },
{ Pid::CONTINUE_AT, true, "continueAt", P_TYPE::STRING, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "continue at") },
{ Pid::LABEL, true, "label", P_TYPE::STRING, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "label") },
{ Pid::MARKER_TYPE, true, "markerType", P_TYPE::INT, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "marker type") },
{ Pid::MARKER_TYPE, true, "markerType", P_TYPE::MARKER_TYPE, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "marker type") },
{ Pid::MARKER_SYMBOL_SIZE, true, "markerSymbolSize", P_TYPE::REAL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "marker symbol size") },
{ Pid::MARKER_CENTER_ON_SYMBOL, true, "markerCenterOnSymbol", P_TYPE::BOOL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "marker center on symbol") },
{ Pid::ARP_USER_LEN1, false, "arpUserLen1", P_TYPE::REAL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "length 1") },
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/rw/read410/tread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,8 @@ PropertyValue TRead::readPropertyValue(Pid id, XmlReader& e, ReadContext& ctx)
return PropertyValue(TConv::fromXml(e.readAsciiText(), AutoOnOff::AUTO));
case P_TYPE::PARTIAL_SPANNER_DIRECTION:
return PropertyValue(TConv::fromXml(e.readAsciiText(), PartialSpannerDirection::OUTGOING));
case P_TYPE::MARKER_TYPE:
return PropertyValue(TConv::fromXml(e.readAsciiText(), MarkerType::USER));
default:
ASSERT_X("unhandled PID type");
break;
Expand Down
7 changes: 3 additions & 4 deletions src/engraving/rw/read460/tread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,8 @@ PropertyValue TRead::readPropertyValue(Pid id, XmlReader& e, ReadContext& ctx)
return PropertyValue(TConv::fromXml(e.readAsciiText(), ParenthesesMode::NONE));
case P_TYPE::AUTO_CUSTOM_HIDE:
return PropertyValue(TConv::fromXml(e.readAsciiText(), AutoCustomHide::AUTO));
case P_TYPE::MARKER_TYPE:
return PropertyValue(TConv::fromXml(e.readAsciiText(), MarkerType::USER));
default:
ASSERT_X("unhandled PID type");
break;
Expand Down Expand Up @@ -1697,21 +1699,18 @@ void TRead::read(Accidental* a, XmlReader& e, ReadContext& ctx)

void TRead::read(Marker* m, XmlReader& e, ReadContext& ctx)
{
MarkerType mt = MarkerType::SEGNO;

while (e.readNextStartElement()) {
const AsciiStringView tag(e.name());
if (tag == "label") {
AsciiStringView s(e.readAsciiText());
m->setLabel(String::fromAscii(s.ascii()));
mt = TConv::fromXml(s, MarkerType::USER);
} else if (readProperty(m, tag, e, ctx, Pid::MARKER_TYPE)) {
} else if (readProperty(m, tag, e, ctx, Pid::MARKER_CENTER_ON_SYMBOL)) {
} else if (readProperty(m, tag, e, ctx, Pid::MARKER_SYMBOL_SIZE)) {
} else if (!readProperties(static_cast<TextBase*>(m), e, ctx)) {
e.unknown();
}
}
m->setMarkerType(mt);
}

void TRead::read(Jump* j, XmlReader& e, ReadContext& ctx)
Expand Down
1 change: 1 addition & 0 deletions src/engraving/rw/write/twrite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2292,6 +2292,7 @@ void TWrite::write(const Marker* item, XmlWriter& xml, WriteContext& ctx)
xml.startElement(item);
writeProperties(static_cast<const TextBase*>(item), xml, ctx, true);
xml.tag("label", item->label());
writeProperty(item, xml, Pid::MARKER_TYPE);
writeProperty(item, xml, Pid::MARKER_CENTER_ON_SYMBOL);
writeProperty(item, xml, Pid::MARKER_SYMBOL_SIZE);
xml.endElement();
Expand Down
3 changes: 3 additions & 0 deletions src/engraving/rw/xmlwriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,9 @@ void XmlWriter::tagProperty(const AsciiStringView& name, P_TYPE type, const Prop
case P_TYPE::PARENTHESES_MODE: {
element(name, TConv::toXml(data.value<ParenthesesMode>()));
} break;
case P_TYPE::MARKER_TYPE: {
element(name, TConv::toXml(data.value<MarkerType>()));
} break;
default: {
UNREACHABLE; //! TODO
}
Expand Down
5 changes: 5 additions & 0 deletions src/engraving/tests/compat114_data/markers-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
<style>repeat_left</style>
<text><sym>segno</sym></text>
<label>segno</label>
<markerType>segno</markerType>
</Marker>
<voice>
<Clef>
Expand Down Expand Up @@ -112,6 +113,7 @@
<style>repeat_left</style>
<text><sym>coda</sym></text>
<label>codab</label>
<markerType>codab</markerType>
</Marker>
<voice>
<Rest>
Expand All @@ -128,6 +130,7 @@
<style>repeat_left</style>
<text><sym>codaSquare</sym></text>
<label>varcoda</label>
<markerType>varcoda</markerType>
</Marker>
<voice>
<Rest>
Expand All @@ -148,6 +151,7 @@
<style>repeat_left</style>
<text><sym>coda</sym><sym>coda</sym></text>
<label>codetta</label>
<markerType>codetta</markerType>
</Marker>
<voice>
<Rest>
Expand Down Expand Up @@ -292,6 +296,7 @@
<style>repeat_right</style>
<text>To Coda</text>
<label>coda</label>
<markerType>coda</markerType>
</Marker>
<voice>
<Rest>
Expand Down
5 changes: 5 additions & 0 deletions src/engraving/tests/compat206_data/markers-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
<style>repeat_left</style>
<text><sym>segno</sym></text>
<label>segno</label>
<markerType>segno</markerType>
</Marker>
<voice>
<TimeSig>
Expand All @@ -100,6 +101,7 @@
<style>repeat_left</style>
<text><sym>segnoSerpent1</sym></text>
<label>varsegno</label>
<markerType>varsegno</markerType>
</Marker>
<voice>
<Rest>
Expand All @@ -116,6 +118,7 @@
<style>repeat_left</style>
<text><sym>coda</sym></text>
<label>codab</label>
<markerType>codab</markerType>
</Marker>
<voice>
<Rest>
Expand All @@ -136,6 +139,7 @@
<style>repeat_left</style>
<text><sym>codaSquare</sym></text>
<label>varcoda</label>
<markerType>varcoda</markerType>
</Marker>
<voice>
<Rest>
Expand Down Expand Up @@ -168,6 +172,7 @@
<style>repeat_right</style>
<text>To Coda</text>
<label>coda</label>
<markerType>coda</markerType>
</Marker>
<voice>
<Rest>
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/tests/partialtie_data/coda-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@
<style>repeat_right</style>
<text>To Coda</text>
<label>coda</label>
<markerType>coda</markerType>
</Marker>
<LayoutBreak>
<eid>J_J</eid>
Expand Down Expand Up @@ -234,6 +235,7 @@
<style>repeat_left</style>
<text><sym>coda</sym></text>
<label>codab</label>
<markerType>codab</markerType>
</Marker>
<voice>
<Chord>
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/tests/partialtie_data/volta_coda-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@
<style>repeat_right</style>
<text>To Coda</text>
<label>coda</label>
<markerType>coda</markerType>
</Marker>
<LayoutBreak>
<eid>F_F</eid>
Expand Down Expand Up @@ -304,6 +305,7 @@
<style>repeat_left</style>
<text><sym>coda</sym></text>
<label>codab</label>
<markerType>codab</markerType>
</Marker>
<voice>
<Spanner type="Volta">
Expand Down
32 changes: 0 additions & 32 deletions src/engraving/tests/utils/scorecomp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,6 @@ bool ScoreComp::saveCompareScore(Score* score, const String& saveName, const Str
}
bool val = compareFiles(ScoreRW::rootPath() + u"/" + compareWithLocalPath, saveName);

if (!val) {
copyFile(saveName, ScoreRW::rootPath() + u"/" + compareWithLocalPath);
return false;
}

return val;
}

Expand All @@ -54,33 +49,6 @@ bool ScoreComp::saveCompareMimeData(muse::ByteArray mimeData, const muse::String
return compareFiles(ScoreRW::rootPath() + u"/" + compareWithLocalPath, saveName);
}

bool ScoreComp::copyFile(const String& fullPath1, const String& fullPath2)
{
QString cmd = "cp";
QStringList args;
args.append(fullPath1);
args.append(fullPath2);

QProcess p;
p.start(cmd, args);
if (!p.waitForFinished()) {
QTextStream outputText(stdout);
outputText << "copy failed finished";
return false;
}

int code = p.exitCode();
if (code) {
QByteArray ba = p.readAll();
QTextStream outputText(stdout);
outputText << String(ba);
outputText << String(" <cp %1 %2 failed, code: %3 \n").arg(fullPath1, fullPath2).arg(code);
return false;
}
LOGD() << "Copy succeeded: " << String(" <cp %1 %2>\n").arg(fullPath1, fullPath2).arg(code);
return true;
}

bool ScoreComp::compareFiles(const String& fullPath1, const String& fullPath2)
{
QString cmd = "diff";
Expand Down
1 change: 0 additions & 1 deletion src/engraving/tests/utils/scorecomp.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class ScoreComp
static bool saveCompareScore(Score*, const String& saveName, const String& compareWithLocalPath);
static bool saveCompareMimeData(muse::ByteArray mimeData, const String& saveName, const String& compareWithLocalPath);
static bool compareFiles(const String& fullPath1, const String& fullPath2);
static bool copyFile(const String& fullPath1, const String& fullPath2);
};
}

Expand Down
2 changes: 2 additions & 0 deletions src/engraving/types/propertyvalue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ QVariant PropertyValue::toQVariant() const
case P_TYPE::RH_TAPPING_SYMBOL: return static_cast<int>(value<RHTappingSymbol>());
case P_TYPE::PARENTHESES_MODE: return static_cast<int>(value<ParenthesesMode>());
case P_TYPE::PLAY_COUNT_PRESET: return static_cast<int>(value<RepeatPlayCountPreset>());
case P_TYPE::MARKER_TYPE: return static_cast<int>(value<MarkerType>());

case P_TYPE::VOICE_ASSIGNMENT: return static_cast<int>(value<VoiceAssignment>());
case P_TYPE::AUTO_ON_OFF: return static_cast<int>(value<AutoOnOff>());
Expand Down Expand Up @@ -301,6 +302,7 @@ PropertyValue PropertyValue::fromQVariant(const QVariant& v, P_TYPE type)
case P_TYPE::RH_TAPPING_SYMBOL: return PropertyValue(RHTappingSymbol(v.toInt()));
case P_TYPE::PARENTHESES_MODE: return PropertyValue(ParenthesesMode(v.toInt()));
case P_TYPE::PLAY_COUNT_PRESET: return PropertyValue(RepeatPlayCountPreset(v.toInt()));
case P_TYPE::MARKER_TYPE: return PropertyValue(MarkerType(v.toInt()));

// Other
case P_TYPE::GROUPS: {
Expand Down
4 changes: 4 additions & 0 deletions src/engraving/types/propertyvalue.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ enum class P_TYPE : unsigned char {
NOTELINE_PLACEMENT_TYPE,
LYRICS_DASH_SYSTEM_START_TYPE,
PARTIAL_SPANNER_DIRECTION,
MARKER_TYPE,

LH_TAPPING_SYMBOL,
RH_TAPPING_SYMBOL,
Expand Down Expand Up @@ -348,6 +349,9 @@ class PropertyValue
PropertyValue(const AutoCustomHide& v)
: m_type(P_TYPE::AUTO_CUSTOM_HIDE), m_data(make_data<AutoCustomHide>(v)) {}

PropertyValue(const MarkerType& v)
: m_type(P_TYPE::MARKER_TYPE), m_data(make_data<MarkerType>(v)) {}

bool isValid() const;

P_TYPE type() const;
Expand Down
38 changes: 19 additions & 19 deletions src/engraving/types/typesconv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3025,21 +3025,21 @@ GlissandoType TConv::fromXml(const AsciiStringView& tag, GlissandoType def)
}

static const std::vector<Item<JumpType> > JUMP_TYPES = {
{ JumpType::DC, "", muse::TranslatableString("engraving", "Da Capo") },
{ JumpType::DC_AL_FINE, "", muse::TranslatableString("engraving", "Da Capo al Fine") },
{ JumpType::DC_AL_CODA, "", muse::TranslatableString("engraving", "Da Capo al Coda") },
{ JumpType::DS_AL_CODA, "", muse::TranslatableString("engraving", "D.S. al Coda") },
{ JumpType::DS_AL_FINE, "", muse::TranslatableString("engraving", "D.S. al Fine") },
{ JumpType::DS, "", muse::TranslatableString("engraving", "D.S.") },

{ JumpType::DC_AL_DBLCODA, "", muse::TranslatableString("engraving", "Da Capo al Doppia Coda") },
{ JumpType::DS_AL_DBLCODA, "", muse::TranslatableString("engraving", "Dal Segno al Doppia Coda") },
{ JumpType::DSS, "", muse::TranslatableString("engraving", "Dal Doppio Segno") },
{ JumpType::DSS_AL_CODA, "", muse::TranslatableString("engraving", "Dal Doppio Segno al Coda") },
{ JumpType::DSS_AL_DBLCODA, "", muse::TranslatableString("engraving", "Dal Doppio Segno al Doppia Coda") },
{ JumpType::DSS_AL_FINE, "", muse::TranslatableString("engraving", "Dal Doppio Segno al Fine") },

{ JumpType::USER, "", muse::TranslatableString("engraving", "Custom") }
{ JumpType::DC, "dc", muse::TranslatableString("engraving", "Da Capo") },
{ JumpType::DC_AL_FINE, "dcalfine", muse::TranslatableString("engraving", "Da Capo al Fine") },
{ JumpType::DC_AL_CODA, "dcalcoda", muse::TranslatableString("engraving", "Da Capo al Coda") },
{ JumpType::DS_AL_CODA, "dsalcoda", muse::TranslatableString("engraving", "D.S. al Coda") },
{ JumpType::DS_AL_FINE, "dsalfine", muse::TranslatableString("engraving", "D.S. al Fine") },
{ JumpType::DS, "ds", muse::TranslatableString("engraving", "D.S.") },

{ JumpType::DC_AL_DBLCODA, "dcaldblcoda", muse::TranslatableString("engraving", "Da Capo al Doppia Coda") },
{ JumpType::DS_AL_DBLCODA, "dsaldblcoda", muse::TranslatableString("engraving", "Dal Segno al Doppia Coda") },
{ JumpType::DSS, "dss", muse::TranslatableString("engraving", "Dal Doppio Segno") },
{ JumpType::DSS_AL_CODA, "dssalcoda", muse::TranslatableString("engraving", "Dal Doppio Segno al Coda") },
{ JumpType::DSS_AL_DBLCODA, "dssaldblcoda", muse::TranslatableString("engraving", "Dal Doppio Segno al Doppia Coda") },
{ JumpType::DSS_AL_FINE, "dssalfine", muse::TranslatableString("engraving", "Dal Doppio Segno al Fine") },

{ JumpType::USER, "user", muse::TranslatableString("engraving", "Custom") }
};

const muse::TranslatableString& TConv::userName(JumpType v)
Expand All @@ -3060,10 +3060,10 @@ static const std::array<Item<MarkerType>, 11> MARKER_TYPES = { {
{ MarkerType::CODETTA, "codetta", muse::TranslatableString("engraving", "Doppia Coda") },
{ MarkerType::FINE, "fine", muse::TranslatableString("engraving", "Fine") },
{ MarkerType::TOCODA, "coda", muse::TranslatableString("engraving", "To coda") },
{ MarkerType::TOCODASYM, "", muse::TranslatableString("engraving", "To coda (symbol)") },
{ MarkerType::DA_CODA, "", muse::TranslatableString("engraving", "Da Coda") },
{ MarkerType::DA_DBLCODA, "", muse::TranslatableString("engraving", "Da Doppia Coda") },
{ MarkerType::USER, "", muse::TranslatableString("engraving", "Custom") }
{ MarkerType::TOCODASYM, "codasym", muse::TranslatableString("engraving", "To coda (symbol)") },
{ MarkerType::DA_CODA, "dacoda", muse::TranslatableString("engraving", "Da Coda") },
{ MarkerType::DA_DBLCODA, "dadblcoda", muse::TranslatableString("engraving", "Da Doppia Coda") },
{ MarkerType::USER, "user", muse::TranslatableString("engraving", "Custom") }
} };

const muse::TranslatableString& TConv::userName(MarkerType v)
Expand Down
6 changes: 6 additions & 0 deletions src/importexport/guitarpro/tests/data/directions.gp-ref.mscx
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,7 @@
<style>repeat_right</style>
<text>Da Coda</text>
<label>coda</label>
<markerType>dacoda</markerType>
</Marker>
<voice>
<Rest>
Expand Down Expand Up @@ -612,6 +613,7 @@
<style>repeat_right</style>
<text>Da Doppia Coda</text>
<label>coda</label>
<markerType>dadblcoda</markerType>
</Marker>
<voice>
<Rest>
Expand Down Expand Up @@ -644,6 +646,7 @@
<style>repeat_left</style>
<text><sym>segno</sym></text>
<label>segno</label>
<markerType>segno</markerType>
</Marker>
<voice>
<Rest>
Expand Down Expand Up @@ -676,6 +679,7 @@
<style>repeat_left</style>
<text><sym>segnoSerpent1</sym></text>
<label>varsegno</label>
<markerType>varsegno</markerType>
</Marker>
<voice>
<Rest>
Expand All @@ -695,6 +699,7 @@
<style>repeat_left</style>
<text><sym>coda</sym></text>
<label>codab</label>
<markerType>codab</markerType>
</Marker>
<voice>
<Rest>
Expand All @@ -714,6 +719,7 @@
<style>repeat_right</style>
<text><sym>codaSquare</sym></text>
<label>varcoda</label>
<markerType>varcoda</markerType>
</Marker>
<voice>
<Rest>
Expand Down
Loading
Loading