summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2019-01-11 09:01:17 +0200
committerTomi Korpipää <tomi.korpipaa@qt.io>2019-01-16 04:40:28 +0000
commit985d370e4750810633fa324a5f030e42607ffb93 (patch)
tree4c1bbc8d5838657480b06a430fd1da9017b07bef
parent5e9a1798cc697136aae4125a157e654d7e49530a (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.cpp7
-rw-r--r--src/runtime/q3dsuippresentation.cpp29
-rw-r--r--src/runtime/q3dsuippresentation_p.h32
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;
};