diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2018-11-21 11:05:32 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2019-01-08 05:43:50 +0000 |
commit | fc22576e66649784a314796f41b01f5a065b0ef7 (patch) | |
tree | 416dbd73b3ca3d5ed3ebbfb3a6e530aa08407c5b /src/runtime/q3dsuippresentation.cpp | |
parent | b7376164f8a7f54963acddade4403345022db6a1 (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.cpp | 25 |
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) { |