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 2026-02-03 21:30:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-lottie (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-lottie.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-lottie"

Tue Feb  3 21:30:22 2026 rev:39 rq:1330585 version:6.10.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-lottie/qt6-lottie.changes    2025-11-25 
15:54:22.690353191 +0100
+++ /work/SRC/openSUSE:Factory/.qt6-lottie.new.1995/qt6-lottie.changes  
2026-02-03 21:31:37.176958951 +0100
@@ -1,0 +2,6 @@
+Sat Jan 31 08:10:37 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.10.2:
+  * https://www.qt.io/blog/qt-6.10.2-released
+
+-------------------------------------------------------------------

Old:
----
  qtlottie-everywhere-src-6.10.1.tar.xz

New:
----
  qtlottie-everywhere-src-6.10.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-lottie.spec ++++++
--- /var/tmp/diff_new_pack.NbjV4d/_old  2026-02-03 21:31:37.800985157 +0100
+++ /var/tmp/diff_new_pack.NbjV4d/_new  2026-02-03 21:31:37.808985493 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package qt6-lottie
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.10.1
+%define real_version 6.10.2
 %define short_version 6.10
 %define short_name qtlottie
 %define tar_name qtlottie-everywhere-src
@@ -28,7 +28,7 @@
 %endif
 #
 Name:           qt6-lottie%{?pkg_suffix}
-Version:        6.10.1
+Version:        6.10.2
 Release:        0
 Summary:        QML API for rendering graphics and animation
 # LICENSE.GPL3-EXCEPT only applies to the conan recipe which is not used
@@ -42,8 +42,8 @@
 BuildRequires:  cmake(Qt6GuiPrivate) = %{real_version}
 BuildRequires:  cmake(Qt6Qml) = %{real_version}
 BuildRequires:  cmake(Qt6Quick) = %{real_version}
-BuildRequires:  cmake(Qt6QuickPrivate) = %{real_version}
 BuildRequires:  cmake(Qt6QuickControls2) = %{real_version}
+BuildRequires:  cmake(Qt6QuickPrivate) = %{real_version}
 BuildRequires:  cmake(Qt6QuickTest) = %{real_version}
 BuildRequires:  cmake(Qt6QuickVectorImageGeneratorPrivate) = %{real_version}
 %if "%{qt6_flavor}" == "docs"
@@ -89,7 +89,6 @@
 
 ### Private only library ###
 
-
 %package -n libQt6LottieVectorImageGenerator6
 Summary:        Qt 6 LottieVectorImageGeneratorPrivate library
 

++++++ qtlottie-everywhere-src-6.10.1.tar.xz -> 
qtlottie-everywhere-src-6.10.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtlottie-everywhere-src-6.10.1/.cmake.conf 
new/qtlottie-everywhere-src-6.10.2/.cmake.conf
--- old/qtlottie-everywhere-src-6.10.1/.cmake.conf      2025-11-13 
21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/.cmake.conf      2026-01-22 
20:42:02.000000000 +0100
@@ -1,4 +1,7 @@
-set(QT_REPO_MODULE_VERSION "6.10.1")
+set(QT_REPO_MODULE_VERSION "6.10.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")
+set(QT_EXTRA_INTERNAL_TARGET_DEFINES
+    "QT_NO_CONTEXTLESS_CONNECT=1"
+    "QT_NO_FOREACH=1"
+    "QT_NO_QASCONST=1"
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtlottie-everywhere-src-6.10.1/.tag 
new/qtlottie-everywhere-src-6.10.2/.tag
--- old/qtlottie-everywhere-src-6.10.1/.tag     2025-11-13 21:37:09.000000000 
+0100
+++ new/qtlottie-everywhere-src-6.10.2/.tag     2026-01-22 20:42:02.000000000 
+0100
@@ -1 +1 @@
-f5ccb0bd1f7287039f8500b50852a77aa74dbd63
+9ba84605866dbfe5abb58d7f025b1eb88c2cc3a5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtlottie-everywhere-src-6.10.1/CMakeLists.txt 
new/qtlottie-everywhere-src-6.10.2/CMakeLists.txt
--- old/qtlottie-everywhere-src-6.10.1/CMakeLists.txt   2025-11-13 
21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/CMakeLists.txt   2026-01-22 
20:42:02.000000000 +0100
@@ -19,6 +19,7 @@
         Quick
         QuickShapesPrivate
         QuickTest
+        QuickTestUtilsPrivate
         QuickVectorImageGeneratorPrivate
         QuickControls2)
 qt_internal_project_setup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtlottie-everywhere-src-6.10.1/dependencies.yaml 
new/qtlottie-everywhere-src-6.10.2/dependencies.yaml
--- old/qtlottie-everywhere-src-6.10.1/dependencies.yaml        2025-11-13 
21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/dependencies.yaml        2026-01-22 
20:42:02.000000000 +0100
@@ -1,7 +1,7 @@
 dependencies:
   ../qtbase:
-    ref: 90b845d15ffb97693dba527385db83510ebd121a
+    ref: 000d6c62f7880bb8d3054724e8da0b8ae244130e
     required: true
   ../qtdeclarative:
-    ref: 22fb5e739a2ea700448b22d34ade0d5c1927cb48
+    ref: 09c70541c76659bcd8c49f05841b0e778c9ffd4c
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/src/lottiegenerator/qlottievisitor.cpp 
new/qtlottie-everywhere-src-6.10.2/src/lottiegenerator/qlottievisitor.cpp
--- old/qtlottie-everywhere-src-6.10.1/src/lottiegenerator/qlottievisitor.cpp   
2025-11-13 21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/src/lottiegenerator/qlottievisitor.cpp   
2026-01-22 20:42:02.000000000 +0100
@@ -85,6 +85,24 @@
     m_generator->generateRootNode(info);
 }
 
+QString QLottieVisitor::scrub(const QString &raw)
+{
+    QString res(raw.left(80));
+
+    if (!res.isEmpty()) {
+        constexpr QLatin1StringView legalSymbols("_-.:/[](){}*| "); // No 
quot. mark or backslash!
+        qsizetype i = 0;
+        do {
+            if (res.at(i).isLetterOrNumber() || 
legalSymbols.contains(res.at(i)))
+                i++;
+            else
+                res.remove(i, 1);
+        } while (i < res.size());
+    }
+
+    return res;
+}
+
 void QLottieVisitor::fillCommonNodeInfo(const QLottieBase *node, NodeInfo 
*info)
 {
     Q_ASSERT(node);
@@ -153,10 +171,7 @@
 
     StructureNodeInfo info;
     info.stage = StructureNodeStage::Start;
-    if (layer.type() == LOTTIE_LAYER_PRECOMP_IX)
-        info.nodeId = 
layer.definition().value(QLatin1String("refId")).toString();
-    else
-        info.nodeId = layer.name();
+    info.nodeId = scrub(layer.name());
     
info.transform.setDefaultValue(QVariant::fromValue(m_currentPaintInfo.transform));
     info.isDefaultTransform = m_currentPaintInfo.transform.isIdentity();
 
@@ -214,7 +229,7 @@
         if (groupHasTransform) {
             StructureNodeInfo info;
             info.stage = StructureNodeStage::Start;
-            info.nodeId = group.name();
+            info.nodeId = scrub(group.name());
             
info.transform.setDefaultValue(QVariant::fromValue(m_currentPaintInfo.transform));
             info.isDefaultTransform = 
m_currentPaintInfo.transform.isIdentity();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/src/lottiegenerator/qlottievisitor_p.h 
new/qtlottie-everywhere-src-6.10.2/src/lottiegenerator/qlottievisitor_p.h
--- old/qtlottie-everywhere-src-6.10.1/src/lottiegenerator/qlottievisitor_p.h   
2025-11-13 21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/src/lottiegenerator/qlottievisitor_p.h   
2026-01-22 20:42:02.000000000 +0100
@@ -107,6 +107,7 @@
     void collectTransformAnimations(const QLottieBasicTransform *transform,
                                     bool isShapeTransform = false);
     void enumerateLayerChildren(const QLottieBase *node);
+    QString scrub(const QString &raw);
 
     QString m_lottieFileName;
     QQuickGenerator *m_generator;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/src/plugins/vectorimageformats/lottie/main.cpp
 
new/qtlottie-everywhere-src-6.10.2/src/plugins/vectorimageformats/lottie/main.cpp
--- 
old/qtlottie-everywhere-src-6.10.1/src/plugins/vectorimageformats/lottie/main.cpp
   2025-11-13 21:37:09.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/src/plugins/vectorimageformats/lottie/main.cpp
   2026-01-22 20:42:02.000000000 +0100
@@ -44,7 +44,7 @@
 
         static int frameNo = qEnvironmentVariableIntValue("QLT_FRAMENO");
 
-        if (!root.parseSource(jsonSource, fileName)) {
+        if (root.parseSource(jsonSource, QUrl::fromLocalFile(fileName)) >= 0) {
             if (frameNo < 0)
                 frameNo = root.startFrame() + (root.endFrame() - 
root.startFrame()) / 2;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/CMakeLists.txt 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/CMakeLists.txt
--- old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/CMakeLists.txt 
2025-11-13 21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/CMakeLists.txt 
2026-01-22 20:42:02.000000000 +0100
@@ -1 +1,7 @@
 add_subdirectory(shape)
+
+if(TARGET Qt::QuickPrivate
+   AND TARGET Qt::QuickShapesPrivate
+   AND TARGET Qt::QuickVectorImageGeneratorPrivate)
+    add_subdirectory(vectorimage)
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/CMakeLists.txt 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/CMakeLists.txt
--- 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/CMakeLists.txt 
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/CMakeLists.txt 
    2026-01-22 20:42:02.000000000 +0100
@@ -0,0 +1,61 @@
+# Copyright (C) 2025 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
+    cmake_minimum_required(VERSION 3.16)
+    project(tst_vectorimage LANGUAGES CXX)
+    find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
+endif()
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+    RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+    data/*)
+list(APPEND test_data ${test_data_glob})
+
+qt_internal_add_test(tst_vectorimage
+    SOURCES
+        tst_vectorimage.cpp
+    LIBRARIES
+        Qt::CorePrivate
+        Qt::Gui
+        Qt::GuiPrivate
+        Qt::Qml
+        Qt::QmlPrivate
+        Qt::QuickPrivate
+        Qt::QuickTestUtilsPrivate
+    TESTDATA
+        ${test_data}
+    DEFINES
+        QT_QMLTEST_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data"
+)
+
+file(GLOB_RECURSE test_data_glob_lottie_original
+    RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../../baseline/data/original/*)
+list(APPEND lottie_data ${test_data_glob_lottie_original})
+
+qt_add_resources(tst_vectorimage lottieoriginal
+    PREFIX /json
+    BASE ${CMAKE_CURRENT_SOURCE_DIR}/../../../baseline/data/original/
+    FILES
+        ${lottie_data}
+)
+
+file(GLOB_RECURSE test_data_glob_lottie_docsamples
+    RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../../baseline/data/docsamples/*)
+list(APPEND lottie_data ${test_data_glob_lottie_docsamples})
+
+qt_add_resources(tst_vectorimage lottiedocsamples
+    PREFIX /json
+    BASE ${CMAKE_CURRENT_SOURCE_DIR}/../../../baseline/data/docsamples/
+    FILES
+        ${lottie_data}
+)
+
+qt_internal_extend_target(tst_vectorimage CONDITION ANDROID OR IOS
+    OR QT_FORCE_BUILTIN_TESTDATA
+    DEFINES
+    QT_QMLTEST_DATADIR=":/data"
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/json/broken.json
 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/json/broken.json
--- 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/json/broken.json
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/json/broken.json
      2026-01-22 20:42:02.000000000 +0100
@@ -0,0 +1,327 @@
+{
+    "ddd": 0,
+    "h": 400,
+    "w": 400,
+    "fr": 30,
+    "op": 15,,
+    "meta": {
+        "g": "@lottiefiles/toolkit-js 0.57.2-beta.0"
+    },
+    "layers": [
+        {
+            "ty": 4,
+            "sr": 1,
+            "st": 0,
+            "op": 15.666666666666668,
+            "ip": 0,
+            "ln": "13",
+            "hasMask": false,
+            "ao": 0,
+            "ks": {
+                "a": {
+                    "a": 0,
+                    "k": [
+                        0,
+                        0
+                    ]
+                },
+                "s": {
+                    "a": 0,
+                    "k": [
+                        100,
+                        100,
+                        100
+                    ]
+                },
+                "p": {
+                    "a": 0,
+                    "k": [
+                        200,
+                        200
+                    ]
+                },
+                "r": {
+                    "a": 0,
+                    "k": 0
+                },
+                "o": {
+                    "a": 0,
+                    "k": 100
+                }
+            },
+            "shapes": [
+                {
+                    "ty": "gr",
+                    "it": [
+                        {
+                            "ty": "rc",
+                            "d": 1,
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 0,
+                                "k": 0
+                            },
+                            "s": {
+                                "a": 0,
+                                "k": [
+                                    100,
+                                    100
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "st",
+                            "lc": 1,
+                            "lj": 1,
+                            "ml": 4,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            },
+                            "w": {
+                                "a": 0,
+                                "k": 2
+                            },
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    1,
+                                    1,
+                                    1
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "fl",
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    1,
+                                    0.0818
+                                ]
+                            },
+                            "r": 1,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        },
+                        {
+                            "ty": "tr",
+                            "a": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "s": {
+                                "a": 0,
+                                "k": [
+                                    100,
+                                    100
+                                ]
+                            },
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 0,
+                                "k": 0
+                            },
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        }
+                    ]
+                },
+                {
+                    "ty": "gr",
+                    "it": [
+                        {
+                            "ty": "rc",
+                            "d": 1,
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 0,
+                                "k": 0
+                            },
+                            "s": {
+                                "a": 0,
+                                "k": [
+                                    100,
+                                    100
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "st",
+                            "lc": 1,
+                            "lj": 1,
+                            "ml": 4,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            },
+                            "w": {
+                                "a": 0,
+                                "k": 2
+                            },
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    1,
+                                    1,
+                                    1
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "fl",
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0.0119,
+                                    1
+                                ]
+                            },
+                            "r": 1,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        },
+                        {
+                            "ty": "tr",
+                            "a": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "s": {
+                                "a": 1,
+                                "k": [
+                                    {
+                                        "s": [
+                                            102.027,
+                                            102.027
+                                        ],
+                                        "i": {
+                                            "x": [
+                                                0.97,
+                                                0.97
+                                            ],
+                                            "y": [
+                                                5.296,
+                                                5.296
+                                            ]
+                                        },
+                                        "o": {
+                                            "x": [
+                                                0.03,
+                                                0.03
+                                            ],
+                                            "y": [
+                                                0.293,
+                                                0.293
+                                            ]
+                                        },
+                                        "t": 0
+                                    },
+                                    {
+                                        "s": [
+                                            200,
+                                            200
+                                        ],
+                                        "i": {
+                                            "x": [
+                                                1,
+                                                1
+                                            ],
+                                            "y": [
+                                                1,
+                                                1
+                                            ]
+                                        },
+                                        "o": {
+                                            "x": [
+                                                0.167,
+                                                0.167
+                                            ],
+                                            "y": [
+                                                -0.182,
+                                                -0.182
+                                            ]
+                                        },
+                                        "t": 10.333333333333334
+                                    }
+                                ]
+                            },
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 1,
+                                "k": [
+                                    {
+                                        "o": {
+                                            "x": 0.167,
+                                            "y": 0.167
+                                        },
+                                        "i": {
+                                            "x": 0.833,
+                                            "y": 0.833
+                                        },
+                                        "s": [
+                                            0
+                                        ],
+                                        "t": 0
+                                    },
+                                    {
+                                        "s": [
+                                            45
+                                        ],
+                                        "t": 10.333333333333334
+                                    }
+                                ]
+                            },
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        }
+                    ]
+                }
+            ],
+            "ind": 1
+        }
+    ],
+    "v": "5.7.0",
+    "ip": 0,
+    "assets": []
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/json/ok.json
 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/json/ok.json
--- 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/json/ok.json
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/json/ok.json
  2026-01-22 20:42:02.000000000 +0100
@@ -0,0 +1,327 @@
+{
+    "ddd": 0,
+    "h": 400,
+    "w": 400,
+    "fr": 30,
+    "op": 15,
+    "meta": {
+        "g": "@lottiefiles/toolkit-js 0.57.2-beta.0"
+    },
+    "layers": [
+        {
+            "ty": 4,
+            "sr": 1,
+            "st": 0,
+            "op": 15.666666666666668,
+            "ip": 0,
+            "ln": "13",
+            "hasMask": false,
+            "ao": 0,
+            "ks": {
+                "a": {
+                    "a": 0,
+                    "k": [
+                        0,
+                        0
+                    ]
+                },
+                "s": {
+                    "a": 0,
+                    "k": [
+                        100,
+                        100,
+                        100
+                    ]
+                },
+                "p": {
+                    "a": 0,
+                    "k": [
+                        200,
+                        200
+                    ]
+                },
+                "r": {
+                    "a": 0,
+                    "k": 0
+                },
+                "o": {
+                    "a": 0,
+                    "k": 100
+                }
+            },
+            "shapes": [
+                {
+                    "ty": "gr",
+                    "it": [
+                        {
+                            "ty": "rc",
+                            "d": 1,
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 0,
+                                "k": 0
+                            },
+                            "s": {
+                                "a": 0,
+                                "k": [
+                                    100,
+                                    100
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "st",
+                            "lc": 1,
+                            "lj": 1,
+                            "ml": 4,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            },
+                            "w": {
+                                "a": 0,
+                                "k": 2
+                            },
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    1,
+                                    1,
+                                    1
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "fl",
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    1,
+                                    0.0818
+                                ]
+                            },
+                            "r": 1,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        },
+                        {
+                            "ty": "tr",
+                            "a": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "s": {
+                                "a": 0,
+                                "k": [
+                                    100,
+                                    100
+                                ]
+                            },
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 0,
+                                "k": 0
+                            },
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        }
+                    ]
+                },
+                {
+                    "ty": "gr",
+                    "it": [
+                        {
+                            "ty": "rc",
+                            "d": 1,
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 0,
+                                "k": 0
+                            },
+                            "s": {
+                                "a": 0,
+                                "k": [
+                                    100,
+                                    100
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "st",
+                            "lc": 1,
+                            "lj": 1,
+                            "ml": 4,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            },
+                            "w": {
+                                "a": 0,
+                                "k": 2
+                            },
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    1,
+                                    1,
+                                    1
+                                ]
+                            }
+                        },
+                        {
+                            "ty": "fl",
+                            "c": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0.0119,
+                                    1
+                                ]
+                            },
+                            "r": 1,
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        },
+                        {
+                            "ty": "tr",
+                            "a": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "s": {
+                                "a": 1,
+                                "k": [
+                                    {
+                                        "s": [
+                                            102.027,
+                                            102.027
+                                        ],
+                                        "i": {
+                                            "x": [
+                                                0.97,
+                                                0.97
+                                            ],
+                                            "y": [
+                                                5.296,
+                                                5.296
+                                            ]
+                                        },
+                                        "o": {
+                                            "x": [
+                                                0.03,
+                                                0.03
+                                            ],
+                                            "y": [
+                                                0.293,
+                                                0.293
+                                            ]
+                                        },
+                                        "t": 0
+                                    },
+                                    {
+                                        "s": [
+                                            200,
+                                            200
+                                        ],
+                                        "i": {
+                                            "x": [
+                                                1,
+                                                1
+                                            ],
+                                            "y": [
+                                                1,
+                                                1
+                                            ]
+                                        },
+                                        "o": {
+                                            "x": [
+                                                0.167,
+                                                0.167
+                                            ],
+                                            "y": [
+                                                -0.182,
+                                                -0.182
+                                            ]
+                                        },
+                                        "t": 10.333333333333334
+                                    }
+                                ]
+                            },
+                            "p": {
+                                "a": 0,
+                                "k": [
+                                    0,
+                                    0
+                                ]
+                            },
+                            "r": {
+                                "a": 1,
+                                "k": [
+                                    {
+                                        "o": {
+                                            "x": 0.167,
+                                            "y": 0.167
+                                        },
+                                        "i": {
+                                            "x": 0.833,
+                                            "y": 0.833
+                                        },
+                                        "s": [
+                                            0
+                                        ],
+                                        "t": 0
+                                    },
+                                    {
+                                        "s": [
+                                            45
+                                        ],
+                                        "t": 10.333333333333334
+                                    }
+                                ]
+                            },
+                            "o": {
+                                "a": 0,
+                                "k": 100
+                            }
+                        }
+                    ]
+                }
+            ],
+            "ind": 1
+        }
+    ],
+    "v": "5.7.0",
+    "ip": 0,
+    "assets": []
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/vectorimage.qml
 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/vectorimage.qml
--- 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/vectorimage.qml
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/vectorimage.qml
       2026-01-22 20:42:02.000000000 +0100
@@ -0,0 +1,13 @@
+// Copyright (C) 2025 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick
+import QtQuick.Shapes
+import QtQuick.VectorImage
+
+VectorImage {
+    width: 440
+    height: 220
+    source: fileName
+    assumeTrustedSource: true
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/vectorimage_noassumetrustedsource.qml
 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/vectorimage_noassumetrustedsource.qml
--- 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/data/vectorimage_noassumetrustedsource.qml
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/data/vectorimage_noassumetrustedsource.qml
 2026-01-22 20:42:02.000000000 +0100
@@ -0,0 +1,13 @@
+// Copyright (C) 2025 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick
+import QtQuick.Shapes
+import QtQuick.VectorImage
+
+VectorImage {
+    width: 440
+    height: 220
+    source: fileName
+    assumeTrustedSource: false
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/tst_vectorimage.cpp
 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/tst_vectorimage.cpp
--- 
old/qtlottie-everywhere-src-6.10.1/tests/auto/lottie/vectorimage/tst_vectorimage.cpp
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlottie-everywhere-src-6.10.2/tests/auto/lottie/vectorimage/tst_vectorimage.cpp
        2026-01-22 20:42:02.000000000 +0100
@@ -0,0 +1,155 @@
+// Copyright (C) 2025 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QtTest/QTest>
+#include <QtTest/QSignalSpy>
+#include <QtCore/qfileinfo.h>
+#include <QtCore/qdiriterator.h>
+#include <QtQml/qqmlcontext.h>
+#include <QtQml/qqmlengine.h>
+#include <QtQml/qqmlcomponent.h>
+#include <QtQuick/qquickitem.h>
+
+#include <QtQuickTestUtils/private/qmlutils_p.h>
+#include <QtQuickTestUtils/private/viewtestutils_p.h>
+#include <QtQuickTestUtils/private/visualtestutils_p.h>
+
+class tst_VectorImage : public QQmlDataTest
+{
+    Q_OBJECT
+public:
+    tst_VectorImage();
+
+private slots:
+    void parseFiles_data();
+    void parseFiles();
+    void parseBrokenFile();
+    void parseNoAssumeTrustedSource();
+};
+
+tst_VectorImage::tst_VectorImage()
+    : QQmlDataTest(QT_QMLTEST_DATADIR)
+{
+}
+
+void tst_VectorImage::parseFiles_data()
+{
+    QTest::addColumn<QString>("fileName");
+
+    {
+        QDirIterator it(QStringLiteral(":/json"),
+                        { QStringLiteral("*.json") });
+        QVERIFY(it.hasNext());
+
+        while (it.hasNext()) {
+            QFileInfo info(it.next());
+
+            QString fileName = info.fileName();
+            QByteArray rowName = fileName.toUtf8();
+
+            QTest::newRow(rowName) << fileName;
+        }
+    }
+
+    {
+        QDirIterator it(QStringLiteral(":/json/precomp"),
+                        { QStringLiteral("*.json") });
+        QVERIFY(it.hasNext());
+
+        while (it.hasNext()) {
+            QFileInfo info(it.next());
+
+            QString fileName = QStringLiteral("precomp/") + info.fileName();
+            QByteArray rowName = fileName.toUtf8();
+
+            QTest::newRow(rowName) << fileName;
+        }
+    }
+
+    {
+        QDirIterator it(QStringLiteral(":/json/mod"),
+                        { QStringLiteral("*.json") });
+        QVERIFY(it.hasNext());
+
+        while (it.hasNext()) {
+            QFileInfo info(it.next());
+
+            QString fileName = QStringLiteral("mod/") + info.fileName();
+            QByteArray rowName = fileName.toUtf8();
+
+            QTest::newRow(rowName) << fileName;
+        }
+    }
+}
+
+void tst_VectorImage::parseFiles()
+{
+    QFETCH(QString, fileName);
+
+    QQmlEngine engine;
+    engine.rootContext()->setContextProperty(QStringLiteral("fileName"), 
QStringLiteral("qrc:/json/%1").arg(fileName));
+
+    QQmlComponent c(&engine, testFileUrl("vectorimage.qml"));
+    QQuickItem *item = qobject_cast<QQuickItem *>(c.create());
+    auto cleanup = qScopeGuard([&item] {
+        delete item;
+        item = nullptr;
+    });
+
+    QVERIFY(item != nullptr);
+    QVERIFY(!item->childItems().isEmpty());
+    QVERIFY(!item->childItems().first()->size().isNull());
+}
+
+void tst_VectorImage::parseBrokenFile()
+{
+    QQmlEngine engine;
+    engine.rootContext()->setContextProperty(QStringLiteral("fileName"), 
testFileUrl("json/broken.json"));
+
+    QQmlComponent c(&engine, testFileUrl("vectorimage.qml"));
+    QQuickItem *item = qobject_cast<QQuickItem *>(c.create());
+    auto cleanup = qScopeGuard([&item] {
+        delete item;
+        item = nullptr;
+    });
+
+    QVERIFY(item != nullptr);
+    QVERIFY(!item->childItems().isEmpty());
+    QVERIFY(item->childItems().first()->size().isNull());
+}
+
+void tst_VectorImage::parseNoAssumeTrustedSource()
+{
+    QQmlEngine engine;
+    engine.rootContext()->setContextProperty(QStringLiteral("fileName"), 
testFileUrl("json/ok.json"));
+
+    {
+        QQmlComponent c(&engine, testFileUrl("vectorimage.qml"));
+        QQuickItem *item = qobject_cast<QQuickItem *>(c.create());
+        auto cleanup = qScopeGuard([&item] {
+            delete item;
+            item = nullptr;
+        });
+
+        QVERIFY(item != nullptr);
+        QVERIFY(!item->childItems().isEmpty());
+        QVERIFY(!item->childItems().first()->size().isNull());
+    }
+
+    {
+        QQmlComponent c(&engine, 
testFileUrl("vectorimage_noassumetrustedsource.qml"));
+        QQuickItem *item = qobject_cast<QQuickItem *>(c.create());
+        auto cleanup = qScopeGuard([&item] {
+            delete item;
+            item = nullptr;
+        });
+
+        QVERIFY(item != nullptr);
+        QVERIFY(!item->childItems().isEmpty());
+        QVERIFY(item->childItems().first()->size().isNull());
+    }
+}
+
+QTEST_MAIN(tst_VectorImage)
+
+#include "tst_vectorimage.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlottie-everywhere-src-6.10.1/tools/lottietoqml/main.cpp 
new/qtlottie-everywhere-src-6.10.2/tools/lottietoqml/main.cpp
--- old/qtlottie-everywhere-src-6.10.1/tools/lottietoqml/main.cpp       
2025-11-13 21:37:09.000000000 +0100
+++ new/qtlottie-everywhere-src-6.10.2/tools/lottietoqml/main.cpp       
2026-01-22 20:42:02.000000000 +0100
@@ -121,7 +121,7 @@
     if (f.open(QIODevice::ReadOnly)) {
         QByteArray jsonSource = f.readAll();
 
-        if (!root.parseSource(jsonSource, inFileName)) {
+        if (root.parseSource(jsonSource, QUrl::fromLocalFile(inFileName)) >= 
0) {
             root.setStructureDumping(true);
             for (QLottieBase *elem : root.children()) {
                 if (elem->active(frameNo))

Reply via email to