From 00600432b7215a22e1e673c50992984f884f8b50 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 22 May 2023 11:05:35 +0200 Subject: Qt Designer: Add QFont::HintingPreference to .ui schema Task-number: QTBUG-113670 Change-Id: Ib71ecbf72bc73dab2383e82fc1ca5259c13ca2b0 Reviewed-by: Jarek Kobus (cherry picked from commit a2d1de9f9828fe791e71af53a250514055b91c4e) Reviewed-by: Qt Cherry-pick Bot --- src/designer/data/generate_shared.xsl | 1 + src/designer/data/ui4.xsd | 1 + src/designer/src/lib/uilib/ui4.cpp | 18 ++++++++++++++++++ src/designer/src/lib/uilib/ui4_p.h | 9 ++++++++- 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/designer/data/generate_shared.xsl b/src/designer/data/generate_shared.xsl index 586f44ecb..674343666 100644 --- a/src/designer/data/generate_shared.xsl +++ b/src/designer/data/generate_shared.xsl @@ -48,6 +48,7 @@ pointSize strikeOut styleStrategy + hintingPreference hSizeType vSizeType horStretch diff --git a/src/designer/data/ui4.xsd b/src/designer/data/ui4.xsd index e1dc35d49..6e5208cd6 100644 --- a/src/designer/data/ui4.xsd +++ b/src/designer/data/ui4.xsd @@ -309,6 +309,7 @@ + diff --git a/src/designer/src/lib/uilib/ui4.cpp b/src/designer/src/lib/uilib/ui4.cpp index 4d1e6299d..b964d7062 100644 --- a/src/designer/src/lib/uilib/ui4.cpp +++ b/src/designer/src/lib/uilib/ui4.cpp @@ -3121,6 +3121,10 @@ void DomFont::read(QXmlStreamReader &reader) setElementKerning(reader.readElementText() == u"true"_s); continue; } + if (!tag.compare(u"hintingpreference"_s, Qt::CaseInsensitive)) { + setElementHintingPreference(reader.readElementText()); + continue; + } reader.raiseError("Unexpected element "_L1 + tag); } break; @@ -3166,6 +3170,9 @@ void DomFont::write(QXmlStreamWriter &writer, const QString &tagName) const if (m_children & Kerning) writer.writeTextElement(u"kerning"_s, (m_kerning ? u"true"_s : u"false"_s)); + if (m_children & HintingPreference) + writer.writeTextElement(u"hintingpreference"_s, m_hintingPreference); + writer.writeEndElement(); } @@ -3229,6 +3236,12 @@ void DomFont::setElementKerning(bool a) m_kerning = a; } +void DomFont::setElementHintingPreference(const QString &a) +{ + m_children |= HintingPreference; + m_hintingPreference = a; +} + void DomFont::clearElementFamily() { m_children &= ~Family; @@ -3279,6 +3292,11 @@ void DomFont::clearElementKerning() m_children &= ~Kerning; } +void DomFont::clearElementHintingPreference() +{ + m_children &= ~HintingPreference; +} + DomPoint::~DomPoint() = default; void DomPoint::read(QXmlStreamReader &reader) diff --git a/src/designer/src/lib/uilib/ui4_p.h b/src/designer/src/lib/uilib/ui4_p.h index 93f1ebe05..1e4a7f983 100644 --- a/src/designer/src/lib/uilib/ui4_p.h +++ b/src/designer/src/lib/uilib/ui4_p.h @@ -1645,6 +1645,11 @@ public: inline bool hasElementKerning() const { return m_children & Kerning; } void clearElementKerning(); + inline QString elementHintingPreference() const { return m_hintingPreference; } + void setElementHintingPreference(const QString &a); + inline bool hasElementHintingPreference() const { return m_children & HintingPreference; } + void clearElementHintingPreference(); + private: // child element data @@ -1659,6 +1664,7 @@ private: bool m_antialiasing = false; QString m_styleStrategy; bool m_kerning = false; + QString m_hintingPreference; enum Child { Family = 1, @@ -1670,7 +1676,8 @@ private: StrikeOut = 64, Antialiasing = 128, StyleStrategy = 256, - Kerning = 512 + Kerning = 512, + HintingPreference = 1024 }; }; -- cgit v1.2.3