From 62be04398b60eb6658f6d8b14ff967f992d3f4c5 Mon Sep 17 00:00:00 2001 From: JD Dean Date: Tue, 19 Dec 2023 10:08:13 -0800 Subject: [PATCH] squashed commits --- src/svg/qsvghandler.cpp | 8 ++------ src/svg/qsvgstyle_p.h | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp index e4d1264..0e74383 100644 --- a/src/svg/qsvghandler.cpp +++ b/src/svg/qsvghandler.cpp @@ -1380,12 +1380,8 @@ static void parseFont(QSvgNode *node, } if (!fontStyle) fontStyle = new QSvgFontStyle; - if (!attributes.fontFamily.isEmpty() && attributes.fontFamily != QT_INHERIT) { - QString family = attributes.fontFamily.toString().trimmed(); - if (family.at(0) == QLatin1Char('\'') || family.at(0) == QLatin1Char('\"')) - family = family.mid(1, family.length() - 2); - fontStyle->setFamily(family); - } + if (!attributes.fontFamily.isEmpty() && attributes.fontFamily != QT_INHERIT) + fontStyle->setFamily(attributes.fontFamily.toString().trimmed()); if (!attributes.fontSize.isEmpty() && attributes.fontSize != QT_INHERIT) { // TODO: Support relative sizes 'larger' and 'smaller'. diff --git a/src/svg/qsvgstyle_p.h b/src/svg/qsvgstyle_p.h index 0086333..fcf1282 100644 --- a/src/svg/qsvgstyle_p.h +++ b/src/svg/qsvgstyle_p.h @@ -367,9 +367,19 @@ public: m_textAnchorSet = 1; } - void setFamily(const QString &family) - { - m_qfont.setFamilies({family}); + void setFamily(const QString &fontFamilyAttribute) + { + // parse the comma-separated list of font families + // see also qfontdatabase familyList() + QStringList families = fontFamilyAttribute.split(QLatin1Char(','), Qt::SkipEmptyParts); + for( auto& family : families) + { + family = family.trimmed(); + if ((family.startsWith(QLatin1Char('"')) && family.endsWith(QLatin1Char('"'))) + || (family.startsWith(QLatin1Char('\'')) && family.endsWith(QLatin1Char('\'')))) + family = family.mid(1, family.length() - 2); + } + m_qfont.setFamilies(families); m_familySet = 1; } -- 2.37.3.windows.1