aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qquickvaluetypes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/util/qquickvaluetypes.cpp')
-rw-r--r--src/quick/util/qquickvaluetypes.cpp70
1 files changed, 57 insertions, 13 deletions
diff --git a/src/quick/util/qquickvaluetypes.cpp b/src/quick/util/qquickvaluetypes.cpp
index 888a9e9ce5..265c763566 100644
--- a/src/quick/util/qquickvaluetypes.cpp
+++ b/src/quick/util/qquickvaluetypes.cpp
@@ -788,6 +788,19 @@ QQuickPlanarTransform::QQuickPlanarTransform(QObject *parent)
}
/*!
+ \qmlmethod matrix4x4 PlanarTransform::identity()
+
+ Returns a matrix4x4 for the identity transform.
+
+ This is equivalent to \l Qt::matrix4x4().
+*/
+
+QMatrix4x4 QQuickPlanarTransform::identity()
+{
+ return QMatrix4x4();
+}
+
+/*!
\qmlmethod matrix4x4 PlanarTransform::fromAffineMatrix(real scaleX, real shearY,
real shearX, real scaleY,
real translateX, real translateY)
@@ -925,27 +938,45 @@ QVariant QQuickFontValueType::create(const QJSValue &params)
setFontProperty(ret, &QFont::setPixelSize, QStringLiteral("pixelSize"), params, &ok);
setFontProperty(ret, &QFont::setPointSize, QStringLiteral("pointSize"), params, &ok);
setFontProperty(ret, &QFont::setStrikeOut, QStringLiteral("strikeout"), params, &ok);
+ setFontProperty(ret, &QFont::setStyleName, QStringLiteral("styleName"), params, &ok);
setFontProperty(ret, &QFont::setUnderline, QStringLiteral("underline"), params, &ok);
setFontProperty(ret, &QFont::setWeight, QStringLiteral("weight"), params, &ok);
setFontProperty(ret, &QFont::setWordSpacing, QStringLiteral("wordSpacing"), params, &ok);
setFontProperty(ret, &QFont::setHintingPreference, QStringLiteral("hintingPreference"), params, &ok);
setFontProperty(ret, &QFont::setKerning, QStringLiteral("kerning"), params, &ok);
- const QJSValue vlspac = params.property(QStringLiteral("letterSpacing"));
- if (vlspac.isNumber()) {
- ret.setLetterSpacing(QFont::AbsoluteSpacing, vlspac.toNumber());
- ok = true;
+ {
+ const QJSValue vlspac = params.property(QStringLiteral("letterSpacing"));
+ if (vlspac.isNumber()) {
+ ret.setLetterSpacing(QFont::AbsoluteSpacing, vlspac.toNumber());
+ ok = true;
+ }
}
- const QJSValue vshaping = params.property(QStringLiteral("preferShaping"));
- if (vshaping.isBool()) {
- const bool enable = vshaping.toBool();
- const QFont::StyleStrategy strategy = ret.styleStrategy();
- if (enable)
- ret.setStyleStrategy(QFont::StyleStrategy(strategy & ~QFont::PreferNoShaping));
- else
- ret.setStyleStrategy(QFont::StyleStrategy(strategy | QFont::PreferNoShaping));
- ok = true;
+ {
+ const QJSValue vshaping = params.property(QStringLiteral("preferShaping"));
+ if (vshaping.isBool()) {
+ const bool enable = vshaping.toBool();
+ const QFont::StyleStrategy strategy = ret.styleStrategy();
+ if (enable)
+ ret.setStyleStrategy(QFont::StyleStrategy(strategy & ~QFont::PreferNoShaping));
+ else
+ ret.setStyleStrategy(QFont::StyleStrategy(strategy | QFont::PreferNoShaping));
+ ok = true;
+ }
+ }
+
+ {
+ const QJSValue typoMetrics = params.property(QStringLiteral("preferTypoLineMetrics"));
+ if (typoMetrics.isBool()) {
+ const bool enable = typoMetrics.toBool();
+ const QFont::StyleStrategy strategy = ret.styleStrategy();
+ if (enable)
+ ret.setStyleStrategy(QFont::StyleStrategy(strategy & ~QFont::PreferTypoLineMetrics));
+ else
+ ret.setStyleStrategy(QFont::StyleStrategy(strategy | QFont::PreferTypoLineMetrics));
+ ok = true;
+ }
}
return ok ? ret : QVariant();
@@ -1209,6 +1240,19 @@ void QQuickFontValueType::setContextFontMerging(bool enable)
v.setStyleStrategy(static_cast<QFont::StyleStrategy>(v.styleStrategy() & ~QFont::ContextFontMerging));
}
+bool QQuickFontValueType::preferTypoLineMetrics() const
+{
+ return (v.styleStrategy() & QFont::PreferTypoLineMetrics) != 0;
+}
+
+void QQuickFontValueType::setPreferTypoLineMetrics(bool enable)
+{
+ if (enable)
+ v.setStyleStrategy(static_cast<QFont::StyleStrategy>(v.styleStrategy() | QFont::PreferTypoLineMetrics));
+ else
+ v.setStyleStrategy(static_cast<QFont::StyleStrategy>(v.styleStrategy() & ~QFont::PreferTypoLineMetrics));
+}
+
QVariant QQuickColorSpaceValueType::create(const QJSValue &params)
{
if (!params.isObject())