diff options
Diffstat (limited to 'src/quick/util/qquickvaluetypes.cpp')
-rw-r--r-- | src/quick/util/qquickvaluetypes.cpp | 70 |
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 ¶ms) 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 ¶ms) { if (!params.isObject()) |