diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2019-01-11 09:01:17 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2019-01-16 04:40:28 +0000 |
commit | 985d370e4750810633fa324a5f030e42607ffb93 (patch) | |
tree | 4c1bbc8d5838657480b06a430fd1da9017b07bef | |
parent | 5e9a1798cc697136aae4125a157e654d7e49530a (diff) |
Add horizontal and vertical offsets for text drop shadows
Keep support for old style offsets until UIP version is updated
next time. This change is not critical enough to update the UIP version.
Task-number: QT3DS-2755
Change-Id: Id82a27d4057892213b7562bbbe3926a965a185ab
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Jere Tuliniemi <jere.tuliniemi@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r-- | src/runtime/q3dstextrenderer.cpp | 7 | ||||
-rw-r--r-- | src/runtime/q3dsuippresentation.cpp | 29 | ||||
-rw-r--r-- | src/runtime/q3dsuippresentation_p.h | 32 |
3 files changed, 47 insertions, 21 deletions
diff --git a/src/runtime/q3dstextrenderer.cpp b/src/runtime/q3dstextrenderer.cpp index edc630f..cddca08 100644 --- a/src/runtime/q3dstextrenderer.cpp +++ b/src/runtime/q3dstextrenderer.cpp @@ -238,9 +238,10 @@ void Q3DSTextRenderer::renderText(QPainter *painter, Q3DSTextNode *text3DS) break; } - qreal shadowOffsetX = 0.; - qreal shadowOffsetY = 0.; - if (text3DS->shadow()) { + qreal shadowOffsetX = qreal(font->font.pixelSize() * text3DS->shadowOffsetX()) / 1000.; + qreal shadowOffsetY = qreal(font->font.pixelSize() * text3DS->shadowOffsetY()) / 1000.; + // To be removed in 2.x (when UIP version is next updated) + if (text3DS->shadow() && shadowOffsetX == 0. && shadowOffsetY == 0.) { const qreal offset = qreal(text3DS->shadowOffset()) / 10.; switch (text3DS->shadowHorizontalAlignment()) { case Q3DSTextNode::Left: diff --git a/src/runtime/q3dsuippresentation.cpp b/src/runtime/q3dsuippresentation.cpp index 260f4c4..f0424c8 100644 --- a/src/runtime/q3dsuippresentation.cpp +++ b/src/runtime/q3dsuippresentation.cpp @@ -3551,9 +3551,11 @@ void Q3DSTextNode::setProps(const V &attrs, PropSetFlags flags) parseProperty(attrs, flags, typeName, QStringLiteral("tracking"), &m_tracking); parseProperty(attrs, flags, typeName, QStringLiteral("dropshadow"), &m_shadow); parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowstrength"), &m_shadowStrength); - parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowoffset"), &m_shadowOffset); - parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowhorzalign"), &m_shadowHorzAlign); - parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowvertalign"), &m_shadowVertAlign); + parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowoffsetx"), &m_shadowOffsetX); + parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowoffsety"), &m_shadowOffsetY); + parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowoffset"), &m_shadowOffset); // To be removed in 2.x (when UIP version is next updated) + parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowhorzalign"), &m_shadowHorzAlign); // To be removed in 2.x (when UIP version is next updated) + parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowvertalign"), &m_shadowVertAlign); // To be removed in 2.x (when UIP version is next updated) parseSizeProperty(attrs, flags, typeName, QStringLiteral("boundingbox"), &m_boundingBox); parseProperty(attrs, flags, typeName, QStringLiteral("wordwrap"), &m_wordWrap); @@ -3582,9 +3584,11 @@ int Q3DSTextNode::mapChangeFlags(const Q3DSPropertyChangeList &changeList) const || it->nameStr() == QLatin1String("tracking") || it->nameStr() == QLatin1String("dropshadow") || it->nameStr() == QLatin1String("dropshadowstrength") - || it->nameStr() == QLatin1String("dropshadowoffset") - || it->nameStr() == QLatin1String("dropshadowhorzalign") - || it->nameStr() == QLatin1String("dropshadowvertalign") + || it->nameStr() == QLatin1String("dropshadowoffsetx") + || it->nameStr() == QLatin1String("dropshadowoffsety") + || it->nameStr() == QLatin1String("dropshadowoffset") // To be removed in 2.x (when UIP version is next updated) + || it->nameStr() == QLatin1String("dropshadowhorzalign") // To be removed in 2.x (when UIP version is next updated) + || it->nameStr() == QLatin1String("dropshadowvertalign") // To be removed in 2.x (when UIP version is next updated) || it->nameStr() == QLatin1String("boundingbox") || it->nameStr() == QLatin1String("size") || it->nameStr() == QLatin1String("font") @@ -3647,16 +3651,29 @@ Q3DSPropertyChange Q3DSTextNode::setShadowStrength(float v) return createPropSetter(m_shadowStrength, v, "dropshadowstrength"); } +Q3DSPropertyChange Q3DSTextNode::setShadowOffsetX(float v) +{ + return createPropSetter(m_shadowOffsetX, v, "dropshadowoffsetx"); +} + +Q3DSPropertyChange Q3DSTextNode::setShadowOffsetY(float v) +{ + return createPropSetter(m_shadowOffsetY, v, "dropshadowoffsety"); +} + +// To be removed in 2.x (when UIP version is next updated) Q3DSPropertyChange Q3DSTextNode::setShadowOffset(float v) { return createPropSetter(m_shadowOffset, v, "dropshadowoffset"); } +// To be removed in 2.x (when UIP version is next updated) Q3DSPropertyChange Q3DSTextNode::setShadowHorizontalAlignment(HorizontalAlignment v) { return createPropSetter(m_shadowHorzAlign, v, "dropshadowhorzalign"); } +// To be removed in 2.x (when UIP version is next updated) Q3DSPropertyChange Q3DSTextNode::setShadowVerticalAlignment(VerticalAlignment v) { return createPropSetter(m_shadowVertAlign, v, "dropshadowvertalign"); diff --git a/src/runtime/q3dsuippresentation_p.h b/src/runtime/q3dsuippresentation_p.h index 064456b..afdbeba 100644 --- a/src/runtime/q3dsuippresentation_p.h +++ b/src/runtime/q3dsuippresentation_p.h @@ -1549,9 +1549,11 @@ class Q3DSV_PRIVATE_EXPORT Q3DSTextNode : public Q3DSNode Q_PROPERTY(float tracking READ tracking WRITE setTracking) Q_PROPERTY(bool shadow READ shadow WRITE setShadow) Q_PROPERTY(float shadowStrength READ shadowStrength WRITE setShadowStrength) - Q_PROPERTY(float shadowOffset READ shadowOffset WRITE setShadowOffset) - Q_PROPERTY(HorizontalAlignment shadowHorzAlign READ shadowHorizontalAlignment WRITE setShadowHorizontalAlignment) - Q_PROPERTY(VerticalAlignment shadowVertAlign READ shadowVerticalAlignment WRITE setShadowVerticalAlignment) + Q_PROPERTY(float shadowOffsetX READ shadowOffsetX WRITE setShadowOffsetX) + Q_PROPERTY(float shadowOffsetY READ shadowOffsetY WRITE setShadowOffsetY) + Q_PROPERTY(float shadowOffset READ shadowOffset WRITE setShadowOffset) // To be removed in 2.x (when UIP version is next updated) + Q_PROPERTY(HorizontalAlignment shadowHorzAlign READ shadowHorizontalAlignment WRITE setShadowHorizontalAlignment) // To be removed in 2.x (when UIP version is next updated) + Q_PROPERTY(VerticalAlignment shadowVertAlign READ shadowVerticalAlignment WRITE setShadowVerticalAlignment) // To be removed in 2.x (when UIP version is next updated) Q_PROPERTY(QVector2D boundingBox READ boundingBox WRITE setBoundingBox) Q_PROPERTY(WordWrap wordWrap READ wordWrap WRITE setWordWrap) public: @@ -1597,9 +1599,11 @@ public: float tracking() const { return m_tracking; } bool shadow() const { return m_shadow; } float shadowStrength() const { return m_shadowStrength; } - float shadowOffset() const { return m_shadowOffset; } - HorizontalAlignment shadowHorizontalAlignment() const { return m_shadowHorzAlign; } - VerticalAlignment shadowVerticalAlignment() const { return m_shadowVertAlign; } + float shadowOffsetX() const { return m_shadowOffsetX; } + float shadowOffsetY() const { return m_shadowOffsetY; } + float shadowOffset() const { return m_shadowOffset; } // To be removed in 2.x (when UIP version is next updated) + HorizontalAlignment shadowHorizontalAlignment() const { return m_shadowHorzAlign; } // To be removed in 2.x (when UIP version is next updated) + VerticalAlignment shadowVerticalAlignment() const { return m_shadowVertAlign; } // To be removed in 2.x (when UIP version is next updated) QVector2D boundingBox() const { return m_boundingBox; } WordWrap wordWrap() const { return m_wordWrap; } @@ -1613,9 +1617,11 @@ public: Q3DSPropertyChange setTracking(float v); Q3DSPropertyChange setShadow(bool v); Q3DSPropertyChange setShadowStrength(float v); - Q3DSPropertyChange setShadowOffset(float v); - Q3DSPropertyChange setShadowHorizontalAlignment(HorizontalAlignment v); - Q3DSPropertyChange setShadowVerticalAlignment(VerticalAlignment v); + Q3DSPropertyChange setShadowOffsetX(float v); + Q3DSPropertyChange setShadowOffsetY(float v); + Q3DSPropertyChange setShadowOffset(float v); // To be removed in 2.x (when UIP version is next updated) + Q3DSPropertyChange setShadowHorizontalAlignment(HorizontalAlignment v); // To be removed in 2.x (when UIP version is next updated) + Q3DSPropertyChange setShadowVerticalAlignment(VerticalAlignment v); // To be removed in 2.x (when UIP version is next updated) Q3DSPropertyChange setBoundingBox(const QVector2D &v); Q3DSPropertyChange setWordWrap(WordWrap v); @@ -1633,9 +1639,11 @@ private: float m_tracking = 0; bool m_shadow = false; float m_shadowStrength = 80; - float m_shadowOffset = 10; - HorizontalAlignment m_shadowHorzAlign = Right; - VerticalAlignment m_shadowVertAlign = Bottom; + float m_shadowOffsetX = 0; + float m_shadowOffsetY = 0; + float m_shadowOffset = 10; // To be removed in 2.x (when UIP version is next updated) + HorizontalAlignment m_shadowHorzAlign = Right; // To be removed in 2.x (when UIP version is next updated) + VerticalAlignment m_shadowVertAlign = Bottom; // To be removed in 2.x (when UIP version is next updated) QVector2D m_boundingBox; WordWrap m_wordWrap = WrapWord; }; |