From d678f910e6f4c71cad0112d55feafcd5e963a97a Mon Sep 17 00:00:00 2001 From: James Mizen Date: Tue, 11 Nov 2025 16:41:43 +0000 Subject: [PATCH] Fix newlines in instrument names --- src/engraving/dom/instrument.cpp | 5 ---- src/engraving/dom/instrument.h | 1 - src/engraving/rw/read460/tread.cpp | 1 + src/engraving/rw/write/twrite.cpp | 6 +++-- src/importexport/mei/tests/data/label-01.mscx | 9 ++----- .../tests/data/testFinaleInstr_ref.mscx | 3 +-- .../tests/data/testSystemBrackets3_ref.mscx | 24 +++++++------------ 7 files changed, 16 insertions(+), 33 deletions(-) diff --git a/src/engraving/dom/instrument.cpp b/src/engraving/dom/instrument.cpp index 78747fbfaa034..1766ff3917c15 100644 --- a/src/engraving/dom/instrument.cpp +++ b/src/engraving/dom/instrument.cpp @@ -884,11 +884,6 @@ String StaffName::toPlainText() const return TextBase::unEscape(m_name); } -StaffName StaffName::fromPlainText(const String& plainText, int pos) -{ - return { TextBase::plainToXmlText(plainText), pos }; -} - //--------------------------------------------------------- // operator== //--------------------------------------------------------- diff --git a/src/engraving/dom/instrument.h b/src/engraving/dom/instrument.h index 58827d8b7636a..47d42e51991ed 100644 --- a/src/engraving/dom/instrument.h +++ b/src/engraving/dom/instrument.h @@ -54,7 +54,6 @@ class StaffName StaffName(const String& xmlText, int pos = 0); String toPlainText() const; - static StaffName fromPlainText(const String& plainText, int pos = 0); bool operator==(const StaffName&) const; String toString() const; diff --git a/src/engraving/rw/read460/tread.cpp b/src/engraving/rw/read460/tread.cpp index b4c67c29e0fbc..0e899e33a6f6f 100644 --- a/src/engraving/rw/read460/tread.cpp +++ b/src/engraving/rw/read460/tread.cpp @@ -4032,6 +4032,7 @@ void TRead::read(StaffName* item, XmlReader& xml) { item->setPos(xml.intAttribute("pos", 0)); String name = xml.readXml(); + lineBreakFromTag(name); if (name.startsWith(u"")) { // compatibility to old html implementation: name = HtmlParser::parse(name); diff --git a/src/engraving/rw/write/twrite.cpp b/src/engraving/rw/write/twrite.cpp index f758023cc45ce..50c66d8e474f4 100644 --- a/src/engraving/rw/write/twrite.cpp +++ b/src/engraving/rw/write/twrite.cpp @@ -2145,10 +2145,12 @@ void TWrite::write(const MidiArticulation* item, XmlWriter& xml) void TWrite::write(const StaffName& item, XmlWriter& xml, const char* tag) { if (!item.name().isEmpty()) { + String name = item.name(); + lineBreakToTag(name); if (item.pos() == 0) { - xml.writeXml(String::fromUtf8(tag), item.name()); + xml.writeXml(String::fromUtf8(tag), name); } else { - xml.writeXml(String(u"%1 pos=\"%2\"").arg(String::fromUtf8(tag)).arg(item.pos()), item.name()); + xml.writeXml(String(u"%1 pos=\"%2\"").arg(String::fromUtf8(tag)).arg(item.pos()), name); } } } diff --git a/src/importexport/mei/tests/data/label-01.mscx b/src/importexport/mei/tests/data/label-01.mscx index 12d2369ca1f8f..63172093413dd 100644 --- a/src/importexport/mei/tests/data/label-01.mscx +++ b/src/importexport/mei/tests/data/label-01.mscx @@ -30,13 +30,8 @@ - Very long -Instrument Name -that does not -fit within -one line - Vl. -I/II + Very long
Instrument Name
that does not
fit within
one line
+ Vl.
I/II
keyboard.piano diff --git a/src/importexport/musicxml/tests/data/testFinaleInstr_ref.mscx b/src/importexport/musicxml/tests/data/testFinaleInstr_ref.mscx index 46f13211b418f..e1ec76b5d20a5 100644 --- a/src/importexport/musicxml/tests/data/testFinaleInstr_ref.mscx +++ b/src/importexport/musicxml/tests/data/testFinaleInstr_ref.mscx @@ -1206,8 +1206,7 @@ Tuba (String Bass) - Tuba -(String Bass) + Tuba
(String Bass)
Tuba Tuba (String Bass) diff --git a/src/importexport/musicxml/tests/data/testSystemBrackets3_ref.mscx b/src/importexport/musicxml/tests/data/testSystemBrackets3_ref.mscx index 8bace71f90123..933270347b061 100644 --- a/src/importexport/musicxml/tests/data/testSystemBrackets3_ref.mscx +++ b/src/importexport/musicxml/tests/data/testSystemBrackets3_ref.mscx @@ -31,8 +31,7 @@ Backing Vocals - Backing -Vocals + Backing
Vocals
B. Vx. Voice 38 @@ -126,10 +125,8 @@ Vocals Electric Guitar 1 - Electric -Guitar 1 - Elec. -Gtr. 1 + Electric
Guitar 1
+ Elec.
Gtr. 1
Electric Guitar 40 88 @@ -256,10 +253,8 @@ Gtr. 1 Electric Guitar 2 - Electric -Guitar 2 - Elec. -Gtr. 2 + Electric
Guitar 2
+ Elec.
Gtr. 2
Electric Guitar 40 88 @@ -385,10 +380,8 @@ Gtr. 2 Acoustic Guitar - Acoustic -Guitar - Ac. -Gtr. + Acoustic
Guitar
+ Ac.
Gtr.
Acoustic Guitar 40 84 @@ -483,8 +476,7 @@ Gtr. Piano 2 Piano 2 - Pno. -2 + Pno.
2
Piano 21 108