summaryrefslogtreecommitdiffstats
path: root/src/runtime/q3dsuippresentation.cpp
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2018-11-21 11:05:32 +0200
committerTomi Korpipää <tomi.korpipaa@qt.io>2019-01-08 05:43:50 +0000
commitfc22576e66649784a314796f41b01f5a065b0ef7 (patch)
tree416dbd73b3ca3d5ed3ebbfb3a6e530aa08407c5b /src/runtime/q3dsuippresentation.cpp
parentb7376164f8a7f54963acddade4403345022db6a1 (diff)
Add support for fixed size text areas
Task-number: QT3DS-2110 Change-Id: Ib2fc628ef069cca70a5ccdf3308417759487b901 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/runtime/q3dsuippresentation.cpp')
-rw-r--r--src/runtime/q3dsuippresentation.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/runtime/q3dsuippresentation.cpp b/src/runtime/q3dsuippresentation.cpp
index 3649ad8..59da42b 100644
--- a/src/runtime/q3dsuippresentation.cpp
+++ b/src/runtime/q3dsuippresentation.cpp
@@ -1067,6 +1067,12 @@ bool parseFontSizeProperty(const V &attrs, Q3DSGraphObject::PropSetFlags flags,
return ::parseProperty<float>(attrs, flags, typeName, propName, Q3DS::FontSize, dst, [](const QStringRef &s, float *v) { return Q3DS::convertToFloat(s, v); });
}
+template<typename V>
+bool parseSizeProperty(const V &attrs, Q3DSGraphObject::PropSetFlags flags, const QString &typeName, const QString &propName, QVector2D *dst)
+{
+ return ::parseProperty<QVector2D>(attrs, flags, typeName, propName, Q3DS::Float2, dst, [](const QStringRef &s, QVector2D *v) { return Q3DS::convertToVector2D(s, v); });
+}
+
struct StringOrInt {
QString s;
int n;
@@ -1227,6 +1233,12 @@ bool parseProperty(const V &attrs, Q3DSGraphObject::PropSetFlags flags, const QS
return ::parseProperty<Q3DSTextNode::VerticalAlignment>(attrs, flags, typeName, propName, Q3DS::Enum, dst, [](const QStringRef &s, Q3DSTextNode::VerticalAlignment *v) { return Q3DSEnumMap::enumFromStr(s, v); });
}
+template<typename V>
+bool parseProperty(const V &attrs, Q3DSGraphObject::PropSetFlags flags, const QString &typeName, const QString &propName, Q3DSTextNode::WordWrap *dst)
+{
+ return ::parseProperty<Q3DSTextNode::WordWrap>(attrs, flags, typeName, propName, Q3DS::Enum, dst, [](const QStringRef &s, Q3DSTextNode::WordWrap *v) { return Q3DSEnumMap::enumFromStr(s, v); });
+}
+
// Resolving of object references should be deferred. setProperties() is
// expected to just store the string, and only look up the object in
// resolveReferences() using this helper.
@@ -3533,6 +3545,8 @@ void Q3DSTextNode::setProps(const V &attrs, PropSetFlags flags)
parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowoffset"), &m_shadowOffset);
parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowhorzalign"), &m_shadowHorzAlign);
parseProperty(attrs, flags, typeName, QStringLiteral("dropshadowvertalign"), &m_shadowVertAlign);
+ parseSizeProperty(attrs, flags, typeName, QStringLiteral("boundingbox"), &m_boundingBox);
+ parseProperty(attrs, flags, typeName, QStringLiteral("wordwrap"), &m_wordWrap);
// Different default value.
parseProperty(attrs, flags, typeName, QStringLiteral("name"), &m_name);
@@ -3562,6 +3576,7 @@ int Q3DSTextNode::mapChangeFlags(const Q3DSPropertyChangeList &changeList) const
|| it->nameStr() == QLatin1String("dropshadowoffset")
|| it->nameStr() == QLatin1String("dropshadowhorzalign")
|| it->nameStr() == QLatin1String("dropshadowvertalign")
+ || it->nameStr() == QLatin1String("boundingbox")
|| it->nameStr() == QLatin1String("size")
|| it->nameStr() == QLatin1String("font")
|| it->nameStr() == QLatin1String("horzalign")
@@ -3638,6 +3653,16 @@ Q3DSPropertyChange Q3DSTextNode::setShadowVerticalAlignment(VerticalAlignment v)
return createPropSetter(m_shadowVertAlign, v, "dropshadowvertalign");
}
+Q3DSPropertyChange Q3DSTextNode::setBoundingBox(const QVector2D &v)
+{
+ return createPropSetter(m_boundingBox, v, "boundingbox");
+}
+
+Q3DSPropertyChange Q3DSTextNode::setWordWrap(WordWrap v)
+{
+ return createPropSetter(m_wordWrap, v, "wordwrap");
+}
+
Q3DSAliasNode::Q3DSAliasNode()
: Q3DSNode(Q3DSNode::Alias)
{