From c73d7520d3e3633631e03939244558b5cc1eb699 Mon Sep 17 00:00:00 2001 From: rettinghaus Date: Tue, 18 Feb 2025 13:01:26 +0100 Subject: [PATCH] move into line style function --- .../musicxml/export/exportmusicxml.cpp | 48 ++++++++----------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/src/importexport/musicxml/internal/musicxml/export/exportmusicxml.cpp b/src/importexport/musicxml/internal/musicxml/export/exportmusicxml.cpp index 47a02b0e3d5e3..3ec527c4a88cc 100644 --- a/src/importexport/musicxml/internal/musicxml/export/exportmusicxml.cpp +++ b/src/importexport/musicxml/internal/musicxml/export/exportmusicxml.cpp @@ -796,6 +796,25 @@ static String slurTieLineStyle(const SlurTie* s) rest += String(u" placement=\"%1\"").arg(s->up() ? u"above" : u"below"); } rest += color2xml(s); + + if (ExportMusicXml::configuration()->exportLayout()) { + const SlurSegment* front = s->frontSegment(); + const SlurSegment* back = s->backSegment(); + const int spatium = s->spatium(); + if (front) { + const PointF start = front->ups(Grip::START).pos(); + const PointF bezier = front->ups(Grip::BEZIER1).pos(); + tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - start.x()) / spatium); + tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium); + } + if (back) { + const PointF end = back->ups(Grip::END).pos(); + const PointF bezier = back->ups(Grip::BEZIER2).pos(); + tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - end.x()) / spatium); + tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium); + } + } + return rest; } @@ -920,15 +939,6 @@ void SlurHandler::doSlurStart(const Slur* s, Notations& notations, XmlWriter& xm tagName += u" type=\"start\""; tagName += slurTieLineStyle(s); - const SlurSegment* front = s->frontSegment(); - const int spatium = s->spatium(); - if (front && ExportMusicXml::configuration()->exportLayout()) { - const PointF start = front->ups(Grip::START).pos(); - const PointF bezier = front->ups(Grip::BEZIER1).pos(); - tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - start.x()) / spatium); - tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium); - } - if (i >= 0) { // remove from list and print start m_slur[i] = 0; @@ -973,16 +983,6 @@ void SlurHandler::doSlurStop(const Slur* s, Notations& notations, XmlWriter& xml m_started[i] = false; notations.tag(xml, s); String tagName = String(u"slur type=\"stop\" number=\"%1\"").arg(i + 1); - - const SlurSegment* back = s->backSegment(); - const int spatium = s->spatium(); - if (back && ExportMusicXml::configuration()->exportLayout()) { - const PointF end = back->ups(Grip::END).pos(); - const PointF bezier = back->ups(Grip::BEZIER2).pos(); - tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - end.x()) / spatium); - tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium); - } - xml.tagRaw(tagName); } else { LOGD("no free slur slot"); @@ -993,16 +993,6 @@ void SlurHandler::doSlurStop(const Slur* s, Notations& notations, XmlWriter& xml m_started[i] = false; notations.tag(xml, s); String tagName = String(u"slur type=\"stop\" number=\"%1\"").arg(i + 1); - - const SlurSegment* back = s->backSegment(); - const int spatium = s->spatium(); - if (back && ExportMusicXml::configuration()->exportLayout()) { - const PointF end = back->ups(Grip::END).pos(); - const PointF bezier = back->ups(Grip::BEZIER2).pos(); - tagName += String(u" bezier-x=\"%1\"").arg(10 * (bezier.x() - end.x()) / spatium); - tagName += String(u" bezier-y=\"%1\"").arg(-10 * bezier.y() / spatium); - } - xml.tagRaw(tagName); } }