<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/tests/auto/quick/qquickshape/tst_qquickshape.cpp, branch 6.5</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Fix division by zero in QQuickSvgParser</title>
<updated>2025-04-23T07:01:04+00:00</updated>
<author>
<name>Mitch Curtis</name>
<email>mitch.curtis@qt.io</email>
</author>
<published>2025-04-01T05:25:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=98edc631a960bca758dde79ec5e63496eaed1b55'/>
<id>98edc631a960bca758dde79ec5e63496eaed1b55</id>
<content type='text'>
df97b6b2de6282bd6422f1e531a42475dadc980d in Qt Base added an
assert which detected this.

This patch adds an early return if we're about to divide by zero,
similar to 7ca1222296a9650f24979df57cc2c974a7e571ed. It also
amends that patch to move the start point == end point check
to pathArc(), since it's called from more places.

Fixes: QTBUG-135387
Pick-to: 5.15
Change-Id: If9c5655d5e736825e98d3e93201bf889a1785e49
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
(cherry picked from commit 8d597bea22728268beff583a79e2005b1df423bf)
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
(cherry picked from commit 503cbb4ad07a06941761607f46964c9540595225)
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
(cherry picked from commit 5482f67da7705ede34c987c61ee45e3221d7b2b7)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
df97b6b2de6282bd6422f1e531a42475dadc980d in Qt Base added an
assert which detected this.

This patch adds an early return if we're about to divide by zero,
similar to 7ca1222296a9650f24979df57cc2c974a7e571ed. It also
amends that patch to move the start point == end point check
to pathArc(), since it's called from more places.

Fixes: QTBUG-135387
Pick-to: 5.15
Change-Id: If9c5655d5e736825e98d3e93201bf889a1785e49
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
(cherry picked from commit 8d597bea22728268beff583a79e2005b1df423bf)
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
(cherry picked from commit 503cbb4ad07a06941761607f46964c9540595225)
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
(cherry picked from commit 5482f67da7705ede34c987c61ee45e3221d7b2b7)
</pre>
</div>
</content>
</entry>
<entry>
<title>Port from container::count() and length() to size()</title>
<updated>2022-10-07T21:38:48+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2022-10-05T05:29:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=958cd3ee1094a068b6d0ff27c73a4b3caff088ad'/>
<id>958cd3ee1094a068b6d0ff27c73a4b3caff088ad</id>
<content type='text'>
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:

  auto QtContainerClass = anyOf(
      expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
      expr(hasType(namedDecl(hasAnyName(&lt;classes&gt;)))).bind(o));
  makeRule(cxxMemberCallExpr(on(QtContainerClass),
                             callee(cxxMethodDecl(hasAnyName({"count", "length"),
                                                  parameterCountIs(0))))),
           changeTo(cat(access(o, cat("size"), "()"))),
           cat("use 'size()' instead of 'count()/length()'"))

a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.

Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:

  auto QtContainerClass = anyOf(
      expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
      expr(hasType(namedDecl(hasAnyName(&lt;classes&gt;)))).bind(o));
  makeRule(cxxMemberCallExpr(on(QtContainerClass),
                             callee(cxxMethodDecl(hasAnyName({"count", "length"),
                                                  parameterCountIs(0))))),
           changeTo(cat(access(o, cat("size"), "()"))),
           cat("use 'size()' instead of 'count()/length()'"))

a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.

Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use SPDX license identifiers</title>
<updated>2022-06-11T06:05:15+00:00</updated>
<author>
<name>Lucie Gérard</name>
<email>lucie.gerard@qt.io</email>
</author>
<published>2022-05-13T13:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0dc4fd240a2897c5c443a0ef6d84c416843e4938'/>
<id>0dc4fd240a2897c5c443a0ef6d84c416843e4938</id>
<content type='text'>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix test file inclusion in tst_qquickshape</title>
<updated>2022-05-03T08:06:26+00:00</updated>
<author>
<name>Andreas Buhr</name>
<email>andreas.buhr@qt.io</email>
</author>
<published>2022-05-02T13:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8c217e4e20708ba5608cc8bfce9d8a358fbc122b'/>
<id>8c217e4e20708ba5608cc8bfce9d8a358fbc122b</id>
<content type='text'>
Test file paths were generated using testFileUrl("foo").toLocalFile().
This does not work on Android. This patch fixes it.

Pick-to: 6.2 6.3
Task-number: QTBUG-103094
Task-number: QTBUG-101865
Change-Id: I24c8f0f1965b652fe66b5902368d54241bfec565
Reviewed-by: Assam Boudjelthia &lt;assam.boudjelthia@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Test file paths were generated using testFileUrl("foo").toLocalFile().
This does not work on Android. This patch fixes it.

Pick-to: 6.2 6.3
Task-number: QTBUG-103094
Task-number: QTBUG-101865
Change-Id: I24c8f0f1965b652fe66b5902368d54241bfec565
Reviewed-by: Assam Boudjelthia &lt;assam.boudjelthia@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Enable passing tests that were skipped on offscreen</title>
<updated>2022-03-07T17:19:43+00:00</updated>
<author>
<name>Volker Hilsheimer</name>
<email>volker.hilsheimer@qt.io</email>
</author>
<published>2022-02-06T23:16:22+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b1d0136192b7451788dee79c865dede02438f96e'/>
<id>b1d0136192b7451788dee79c865dede02438f96e</id>
<content type='text'>
grabWindow is now implemented for the offscreen plugin, so a large
number of tests relying on that functionality don't need to be skipped
any longer.

Change-Id: I85bfc9e4b327389055041b6187a54f88d9cf81d2
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
grabWindow is now implemented for the offscreen plugin, so a large
number of tests relying on that functionality don't need to be skipped
any longer.

Change-Id: I85bfc9e4b327389055041b6187a54f88d9cf81d2
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Skip the shapes tests on offscreen platform</title>
<updated>2022-01-23T17:41:18+00:00</updated>
<author>
<name>Shawn Rutledge</name>
<email>shawn.rutledge@qt.io</email>
</author>
<published>2022-01-21T09:52:48+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=5d2ffc03f89d092f46ae14e958bedf9fc441b7ec'/>
<id>5d2ffc03f89d092f46ae14e958bedf9fc441b7ec</id>
<content type='text'>
Replace QEXPECT_FAIL with QSKIP so that grabWindow can be fixed in the
offscreen plugin without XPASS-failing tests in qtdeclarative.

Task-number: QTBUG-99962
Pick-to: 6.3
Change-Id: I470061a324c963e09b9ebcb48daabdf8d960ff90
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace QEXPECT_FAIL with QSKIP so that grabWindow can be fixed in the
offscreen plugin without XPASS-failing tests in qtdeclarative.

Task-number: QTBUG-99962
Pick-to: 6.3
Change-Id: I470061a324c963e09b9ebcb48daabdf8d960ff90
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Consolidate test helpers into private libraries</title>
<updated>2021-09-13T19:17:04+00:00</updated>
<author>
<name>Mitch Curtis</name>
<email>mitch.curtis@qt.io</email>
</author>
<published>2021-08-06T10:27:35+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e310dadef779b28845b41fb091634cd001cda9de'/>
<id>e310dadef779b28845b41fb091634cd001cda9de</id>
<content type='text'>
Previously each test would include and build sources from the shared
folder. Now we make those sources a library, build it once, then have
each test link to it instead.

We also take the opportunity to move some helpers that qtquickcontrols2
had added into the quicktestutils library where it makes sense, and
for the helpers that don't make sense to be there, move them into
quickcontrolstestutils.

We add the libraries to src/ so that they are internal modules built as
part of Qt, rather than tests. That way we can use them in a standalone
test outside of qtdeclarative.

Task-number: QTBUG-95621
Pick-to: 6.2
Change-Id: I0a2ab3976fdbff2e4414df7bdc0808f16453b80a
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously each test would include and build sources from the shared
folder. Now we make those sources a library, build it once, then have
each test link to it instead.

We also take the opportunity to move some helpers that qtquickcontrols2
had added into the quicktestutils library where it makes sense, and
for the helpers that don't make sense to be there, move them into
quickcontrolstestutils.

We add the libraries to src/ so that they are internal modules built as
part of Qt, rather than tests. That way we can use them in a standalone
test outside of qtdeclarative.

Task-number: QTBUG-95621
Pick-to: 6.2
Change-Id: I0a2ab3976fdbff2e4414df7bdc0808f16453b80a
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename setSceneGraphBackend to setGraphicsApi</title>
<updated>2020-06-22T14:10:52+00:00</updated>
<author>
<name>Laszlo Agocs</name>
<email>laszlo.agocs@qt.io</email>
</author>
<published>2020-06-22T11:00:03+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4e266103ad8b75d71fb176a2f774faf71997123d'/>
<id>4e266103ad8b75d71fb176a2f774faf71997123d</id>
<content type='text'>
...and fix up the docs.

The string-based setSceneGraphBackend() stays of course (the docs have
been enhanced, however). The GraphicsApi enum-based overload is now
renamed to setGraphicsApi().

Using the same name for both functions is a historical artifact, reflecting
the evolution (5.0 - 5.8 - 5.14). In 6.0 we can give it a more appropriate
name, since it does not have much to do with "backends" from the user's
perspective.

Change-Id: Id75dbf81f50a148797e5b5de9be4000153737473
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
...and fix up the docs.

The string-based setSceneGraphBackend() stays of course (the docs have
been enhanced, however). The GraphicsApi enum-based overload is now
renamed to setGraphicsApi().

Using the same name for both functions is a historical artifact, reflecting
the evolution (5.0 - 5.8 - 5.14). In 6.0 we can give it a more appropriate
name, since it does not have much to do with "backends" from the user's
perspective.

Change-Id: Id75dbf81f50a148797e5b5de9be4000153737473
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix copy-pasted typo minimimal -&gt; minimal</title>
<updated>2020-03-18T21:03:50+00:00</updated>
<author>
<name>Allan Sandfeld Jensen</name>
<email>allan.jensen@qt.io</email>
</author>
<published>2020-03-18T13:24:29+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=056016a1d88e6d03efed871b3aa62a633c07872b'/>
<id>056016a1d88e6d03efed871b3aa62a633c07872b</id>
<content type='text'>
Change-Id: I4afef3fdbb9e3c3ec20ba5d00307992131b9ba3e
Reviewed-by: Friedemann Kleint &lt;Friedemann.Kleint@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I4afef3fdbb9e3c3ec20ba5d00307992131b9ba3e
Reviewed-by: Friedemann Kleint &lt;Friedemann.Kleint@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PathMultiline: handle directly-bound QVector&lt;QPolygonF&gt;</title>
<updated>2019-09-03T15:33:32+00:00</updated>
<author>
<name>Shawn Rutledge</name>
<email>shawn.rutledge@qt.io</email>
</author>
<published>2019-09-02T20:28:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e81ff5732f7884c5c1d9efb1f63ac7ad0dabbcb5'/>
<id>e81ff5732f7884c5c1d9efb1f63ac7ad0dabbcb5</id>
<content type='text'>
The autotest in 811b15bd161d12e5c85e093f9f492a0c4fa278d6 only tested
what happens if the vector of polygons is passed via a QVariant to the
PathMultiline paths property.  But the intention (as documented) was to
literally support an object with Q_PROPERTY(QVector&lt;QPolygonF&gt; paths ...)
and binding that paths property to PathMultiline.paths.  In that case
it appears in QQuickPathMultiline::setPaths() as a QVariant&lt;QJSValue&gt;,
canConvert&lt;QVector&lt;QPolygonF&gt;&gt;() returns false, then
canConvert&lt;QVariantList&gt;() returns true.  Nevertheless each variant
in the QVariantList is a QPolygonF, as expected.  So we need another
check to detect this case.  Also added a test specifically for that.

Fixes: QTBUG-77929
Change-Id: I84d0a45326d5f007b8ba3cc9bb1fbccf0345d812
Reviewed-by: Paolo Angelelli &lt;paolo.angelelli@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The autotest in 811b15bd161d12e5c85e093f9f492a0c4fa278d6 only tested
what happens if the vector of polygons is passed via a QVariant to the
PathMultiline paths property.  But the intention (as documented) was to
literally support an object with Q_PROPERTY(QVector&lt;QPolygonF&gt; paths ...)
and binding that paths property to PathMultiline.paths.  In that case
it appears in QQuickPathMultiline::setPaths() as a QVariant&lt;QJSValue&gt;,
canConvert&lt;QVector&lt;QPolygonF&gt;&gt;() returns false, then
canConvert&lt;QVariantList&gt;() returns true.  Nevertheless each variant
in the QVariantList is a QPolygonF, as expected.  So we need another
check to detect this case.  Also added a test specifically for that.

Fixes: QTBUG-77929
Change-Id: I84d0a45326d5f007b8ba3cc9bb1fbccf0345d812
Reviewed-by: Paolo Angelelli &lt;paolo.angelelli@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
