Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt6-lottie for openSUSE:Factory checked in at 2025-02-03 21:43:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt6-lottie (Old) and /work/SRC/openSUSE:Factory/.qt6-lottie.new.2316 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-lottie" Mon Feb 3 21:43:03 2025 rev:32 rq:1242052 version:6.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/qt6-lottie/qt6-lottie.changes 2024-12-05 17:07:43.015271985 +0100 +++ /work/SRC/openSUSE:Factory/.qt6-lottie.new.2316/qt6-lottie.changes 2025-02-03 21:43:08.837574942 +0100 @@ -1,0 +2,6 @@ +Fri Jan 31 10:22:55 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 6.8.2 + https://www.qt.io/blog/qt-6.8.2-released + +------------------------------------------------------------------- Old: ---- qtlottie-everywhere-src-6.8.1.tar.xz New: ---- qtlottie-everywhere-src-6.8.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt6-lottie.spec ++++++ --- /var/tmp/diff_new_pack.IqDMI4/_old 2025-02-03 21:43:09.665609120 +0100 +++ /var/tmp/diff_new_pack.IqDMI4/_new 2025-02-03 21:43:09.665609120 +0100 @@ -16,7 +16,7 @@ # -%define real_version 6.8.1 +%define real_version 6.8.2 %define short_version 6.8 %define short_name qtlottie %define tar_name qtlottie-everywhere-src @@ -28,7 +28,7 @@ %endif # Name: qt6-lottie%{?pkg_suffix} -Version: 6.8.1 +Version: 6.8.2 Release: 0 Summary: QML API for rendering graphics and animation # LICENSE.GPL3-EXCEPT only applies to the conan recipe which is not used ++++++ qtlottie-everywhere-src-6.8.1.tar.xz -> qtlottie-everywhere-src-6.8.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/.cmake.conf new/qtlottie-everywhere-src-6.8.2/.cmake.conf --- old/qtlottie-everywhere-src-6.8.1/.cmake.conf 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/.cmake.conf 2025-01-24 10:11:36.000000000 +0100 @@ -1,4 +1,4 @@ -set(QT_REPO_MODULE_VERSION "6.8.1") +set(QT_REPO_MODULE_VERSION "6.8.2") set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1") set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1") list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/.tag new/qtlottie-everywhere-src-6.8.2/.tag --- old/qtlottie-everywhere-src-6.8.1/.tag 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/.tag 2025-01-24 10:11:36.000000000 +0100 @@ -1 +1 @@ -5b27990e3fd9921df68ce766e2b42adc386a8cac +d7768914706b1275c493746393642c2df1f6b867 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/dependencies.yaml new/qtlottie-everywhere-src-6.8.2/dependencies.yaml --- old/qtlottie-everywhere-src-6.8.1/dependencies.yaml 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/dependencies.yaml 2025-01-24 10:11:36.000000000 +0100 @@ -1,7 +1,7 @@ dependencies: ../qtbase: - ref: 0db4321f2f13c6870283f3fcc0f1a462fd7cf663 + ref: f1136de66638060b8a1ab9bc0cdf1a91dcb5ec01 required: true ../qtdeclarative: - ref: b34fca34941ecdbf99819bbf58b45332ac9e6fa7 + ref: 75534f3e7fff24ed7ccb364e2ed9950a73da879f required: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmbase.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmbase.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmbase.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmbase.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -72,6 +72,11 @@ m_children.push_front(child); } +void BMBase::insertChildBeforeLast(BMBase *child) +{ + m_children.insert(qMax(m_children.size() - 1, 0), child); +} + void BMBase::appendChild(BMBase *child) { m_children.push_back(child); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmbase_p.h new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmbase_p.h --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmbase_p.h 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmbase_p.h 2025-01-24 10:11:36.000000000 +0100 @@ -53,6 +53,7 @@ const QList<BMBase *> &children() const { return m_children; } void prependChild(BMBase *child); + void insertChildBeforeLast(BMBase *child); void appendChild(BMBase *child); virtual BMBase *findChild(const QString &childName); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmellipse.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmellipse.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmellipse.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmellipse.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -62,11 +62,11 @@ QPointF pos = QPointF(m_position.value().x() - m_size.value().width() / 2, m_position.value().y() - m_size.value().height() / 2); - m_path = QPainterPath(); + m_path.clear(); m_path.arcMoveTo(QRectF(pos, m_size.value()), 90); - m_path.arcTo(QRectF(pos, m_size.value()), 90, 360); + m_path.arcTo(QRectF(pos, m_size.value()), 90, -360); - if (m_direction) + if (hasReversedDirection()) m_path = m_path.toReversed(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmfreeformshape.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmfreeformshape.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmfreeformshape.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmfreeformshape.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -140,7 +140,7 @@ m_path.setFillRule(Qt::WindingFill); - if (m_direction) + if (hasReversedDirection()) m_path = m_path.toReversed(); } @@ -201,7 +201,7 @@ m_path.setFillRule(Qt::WindingFill); - if (m_direction) + if (hasReversedDirection()) m_path = m_path.toReversed(); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmlayer.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmlayer.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmlayer.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmlayer.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -98,7 +98,7 @@ QJsonArray effects = definition.value(QLatin1String("ef")).toArray(); parseEffects(effects); - if (m_td > 1) + if (m_clipMode > 2) qCWarning(lcLottieQtBodymovinParser) << "BM Layer: Only alpha mask layer supported:" << m_clipMode; if (m_blendMode > 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmproperty_p.h new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmproperty_p.h --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmproperty_p.h 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmproperty_p.h 2025-01-24 10:11:36.000000000 +0100 @@ -479,11 +479,16 @@ protected: T getValue(const QJsonArray &value) override { - if (value.count() > 3) - return T(value.at(0).toDouble(), value.at(1).toDouble(), - value.at(2).toDouble(), value.at(3).toDouble()); - else + if (value.count() >= 3) { + // Assuming color value, so limit values to [0, 1] and default alpha to 1. + qreal x = qBound(qreal(0), value.at(0).toDouble(), qreal(1)); + qreal y = qBound(qreal(0), value.at(1).toDouble(), qreal(1)); + qreal z = qBound(qreal(0), value.at(2).toDouble(), qreal(1)); + qreal w = value.count() > 3 ? qBound(qreal(0), value.at(3).toDouble(), qreal(1)) : 1; + return T(x, y, z, w); + } else { return T(); + } } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmrect.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmrect.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmrect.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmrect.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -79,7 +79,7 @@ m_path.addRoundedRect(QRectF(pos, m_size.value()), m_roundness.value(), m_roundness.value()); - if (m_direction) + if (hasReversedDirection()) m_path = m_path.toReversed(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmround.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmround.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmround.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmround.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -60,7 +60,7 @@ m_path.arcTo(QRectF(center, QSizeF(m_radius.value(), m_radius.value())), 90, -360); - if (m_direction) + if (hasReversedDirection()) m_path = m_path.toReversed(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmshape_p.h new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmshape_p.h --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmshape_p.h 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmshape_p.h 2025-01-24 10:11:36.000000000 +0100 @@ -57,6 +57,7 @@ virtual void applyTrim(const BMTrimPath& trimmer); int direction() const; + bool hasReversedDirection() const { return m_direction == 3; } protected: QPainterPath m_path; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmstroke.cpp new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmstroke.cpp --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmstroke.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmstroke.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -18,6 +18,10 @@ m_capStyle = other.m_capStyle; m_joinStyle = other.m_joinStyle; m_miterLimit = other.m_miterLimit; + m_dashOffset = other.m_dashOffset; + m_dashLength = other.m_dashLength; + m_dashGap = other.m_dashGap; + m_isDashed = other.m_isDashed; } BMStroke::BMStroke(const QJsonObject &definition, const QVersionNumber &version, BMBase *parent) @@ -72,6 +76,24 @@ QJsonObject color = definition.value(QLatin1String("c")).toObject(); color = resolveExpression(color); m_color.construct(color, version); + + QJsonArray dashes = definition.value(QLatin1String("d")).toArray(); + if (dashes.size()) { + auto it = dashes.cend(); + while (it != dashes.cbegin()) { + --it; + QJsonObject dashSpec = it->toObject(); + QJsonObject val = resolveExpression(dashSpec.value(QLatin1String("v")).toObject()); + QString n = dashSpec.value(QLatin1String("n")).toString(); + if (n == QLatin1String("o")) + m_dashOffset.construct(val, version); + else if (n == QLatin1String("g")) + m_dashGap.construct(val, version); + else if (n == QLatin1String("d")) + m_dashLength.construct(val, version); + } + m_isDashed = true; + } } BMBase *BMStroke::clone() const @@ -84,6 +106,11 @@ m_opacity.update(frame); m_width.update(frame); m_color.update(frame); + if (m_isDashed) { + m_dashOffset.update(frame); + m_dashLength.update(frame); + m_dashGap.update(frame); + } } void BMStroke::render(LottieRenderer &renderer) const @@ -102,6 +129,10 @@ pen.setCapStyle(m_capStyle); pen.setJoinStyle(m_joinStyle); pen.setMiterLimit(m_miterLimit); + if (m_isDashed) { + pen.setDashOffset(m_dashOffset.value() / width); + pen.setDashPattern({m_dashLength.value() / width, m_dashGap.value() / width}); + } return pen; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmstroke_p.h new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmstroke_p.h --- old/qtlottie-everywhere-src-6.8.1/src/bodymovin/bmstroke_p.h 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/bodymovin/bmstroke_p.h 2025-01-24 10:11:36.000000000 +0100 @@ -49,6 +49,10 @@ Qt::PenCapStyle m_capStyle; Qt::PenJoinStyle m_joinStyle; qreal m_miterLimit; + BMProperty<qreal> m_dashOffset; + BMProperty<qreal> m_dashLength; + BMProperty<qreal> m_dashGap; + bool m_isDashed = false; }; QT_END_NAMESPACE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/imports/rasterrenderer/batchrenderer.cpp new/qtlottie-everywhere-src-6.8.2/src/imports/rasterrenderer/batchrenderer.cpp --- old/qtlottie-everywhere-src-6.8.1/src/imports/rasterrenderer/batchrenderer.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/imports/rasterrenderer/batchrenderer.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -266,10 +266,10 @@ if (layer) { layer->setParent(rootElement); // Mask layers must be rendered before the layers they affect to - // although they appear before in layer hierarchy. For this reason - // move a mask after the affected layers, so it will be rendered first + // although they appear after in layer hierarchy. For this reason + // move a mask in front of the affected layer, so it will be rendered first if (layer->isMaskLayer()) - rootElement->prependChild(layer); + rootElement->insertChildBeforeLast(layer); else rootElement->appendChild(layer); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtlottie-everywhere-src-6.8.1/src/imports/rasterrenderer/lottierasterrenderer.cpp new/qtlottie-everywhere-src-6.8.2/src/imports/rasterrenderer/lottierasterrenderer.cpp --- old/qtlottie-everywhere-src-6.8.1/src/imports/rasterrenderer/lottierasterrenderer.cpp 2024-11-21 04:33:51.000000000 +0100 +++ new/qtlottie-everywhere-src-6.8.2/src/imports/rasterrenderer/lottierasterrenderer.cpp 2025-01-24 10:11:36.000000000 +0100 @@ -70,7 +70,7 @@ else { // Clipping is not applied to paths that have // not setting clipping parameters - m_painter->setClipPath(QPainterPath()); + m_painter->setClipping(false); } m_buildingClipRegion = false; m_clipPath = QPainterPath();