diff --git a/ChangeLog.txt b/ChangeLog.txt index f5055bae2..75deb144a 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -5,6 +5,7 @@ - Duplicate controls for main path nodes. - Fix compatibility with macOS 12+. - Fix regression. Formula wizard dialog doesn't show item alias in a list. +- Fix parsing SVG fonts. # Valentina 0.7.53 June 25, 2024 - Fix layout sheet export with empty name. diff --git a/src/libs/vmisc/svgfont/vsvgfontreader.cpp b/src/libs/vmisc/svgfont/vsvgfontreader.cpp index e83e2b7d8..1b95011af 100644 --- a/src/libs/vmisc/svgfont/vsvgfontreader.cpp +++ b/src/libs/vmisc/svgfont/vsvgfontreader.cpp @@ -298,15 +298,7 @@ auto VSvgFontReader::ReadFont() -> VSvgFontEngine SetFontFace(&font); engine = VSvgFontEngine(font); } - else - { - skipCurrentElement(); - } - } - - while (readNextStartElement()) - { - if (name() == "missing-glyph"_L1 || name() == "glyph"_L1) + else if (name() == "missing-glyph"_L1 || name() == "glyph"_L1) { ParseSvgGlyph(&engine, attributes()); } @@ -362,7 +354,7 @@ void VSvgFontReader::SetFontFace(VSvgFont *font) QString const fontStyle = fontFaceAttr.value("font-style"_L1).toString(); QString const fontWeight = fontFaceAttr.value("font-weight"_L1).toString(); - QString fontName; + QString fontName = fontFamily; while (readNextStartElement()) { @@ -373,12 +365,15 @@ void VSvgFontReader::SetFontFace(VSvgFont *font) if (name() == "font-face-name"_L1) { fontName = attributes().value("name"_L1).toString(); + readElementText(); } else { skipCurrentElement(); } } + + readElementText(); } else { @@ -393,6 +388,8 @@ void VSvgFontReader::SetFontFace(VSvgFont *font) font->SetDescent(descent); font->SetStyle(ParseFontStyle(fontStyle)); font->SetWeight(ParseFontWeight(fontWeight)); + + readElementText(); } //---------------------------------------------------------------------------------------------------------------------