<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/quick/designer, branch wip/qquickdeliveryagent</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Remove the qmake project files</title>
<updated>2021-01-15T14:34:22+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2021-01-15T12:37:58+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=78ab4b8d8b75fed240cded1a3f182048e56a8823'/>
<id>78ab4b8d8b75fed240cded1a3f182048e56a8823</id>
<content type='text'>
Remove all qmake project files, except for examples which are used to
test that qmake continues to work.

Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac
Reviewed-by: Joerg Bornemann &lt;joerg.bornemann@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove all qmake project files, except for examples which are used to
test that qmake continues to work.

Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac
Reviewed-by: Joerg Bornemann &lt;joerg.bornemann@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove QQmlCleanup</title>
<updated>2021-01-13T13:32:34+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2021-01-13T11:33:06+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=cfe0b08b5439a27b4fdd14c29620e0492543f506'/>
<id>cfe0b08b5439a27b4fdd14c29620e0492543f506</id>
<content type='text'>
The only place where it was still used is QQmlOpenMetaObjecType. The
only effect of QQmlCleanup is that clear() is eventually called by the
engine. In the case of QQmlOpenMetaObjectType the only effect of that
was that the "engine" member was reset. However, the only place where
that member was used was in setCached(), and in that place it was
irrelevant. There is no reason why setCached() should be prohibited when
there is no engine. We may be worried that the property cache assigned
to the open metaobject might go away somehow if there is no engine, but
the cleanup mechanism clearly demonstrates that checking for the engine
on setCached() does not protect against this.

Fixes: QTBUG-90004
Change-Id: I05445eaeb53a64c70de366090ea2ee4aecf2bad8
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The only place where it was still used is QQmlOpenMetaObjecType. The
only effect of QQmlCleanup is that clear() is eventually called by the
engine. In the case of QQmlOpenMetaObjectType the only effect of that
was that the "engine" member was reset. However, the only place where
that member was used was in setCached(), and in that place it was
irrelevant. There is no reason why setCached() should be prohibited when
there is no engine. We may be worried that the property cache assigned
to the open metaobject might go away somehow if there is no engine, but
the cleanup mechanism clearly demonstrates that checking for the engine
on setCached() does not protect against this.

Fixes: QTBUG-90004
Change-Id: I05445eaeb53a64c70de366090ea2ee4aecf2bad8
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DesignerSupport: Don't skip already inspected objects</title>
<updated>2021-01-04T11:54:17+00:00</updated>
<author>
<name>Miikka Heikkinen</name>
<email>miikka.heikkinen@qt.io</email>
</author>
<published>2020-12-15T10:43:40+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=44f74f56e693a51b34076bf5e5950d4e05ed8ebc'/>
<id>44f74f56e693a51b34076bf5e5950d4e05ed8ebc</id>
<content type='text'>
Already inspected objects should not be skipped when determining their
properties, as recursive call will always have different base name for
the properties.

Internally we don't need inspectedObjects list at all anymore, but
it's kept to avoid changing API and in case the caller is interested
in inspected objects.

Fixes: QDS-3301
Change-Id: I76198b96d420e2a5ae6b13cfee65df4bce22d8f5
(cherry picked from commit 5e0ba6b797ca7843609fc19d8c4c96f6f26aacd2)
Reviewed-by: Mahmoud Badri &lt;mahmoud.badri@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Already inspected objects should not be skipped when determining their
properties, as recursive call will always have different base name for
the properties.

Internally we don't need inspectedObjects list at all anymore, but
it's kept to avoid changing API and in case the caller is interested
in inspected objects.

Fixes: QDS-3301
Change-Id: I76198b96d420e2a5ae6b13cfee65df4bce22d8f5
(cherry picked from commit 5e0ba6b797ca7843609fc19d8c4c96f6f26aacd2)
Reviewed-by: Mahmoud Badri &lt;mahmoud.badri@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use QMetaType instead of metatype-id, take 2</title>
<updated>2020-12-03T09:38:43+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2020-11-27T12:48:11+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=77c02343e2c86bd80994882d709fe12f745705ba'/>
<id>77c02343e2c86bd80994882d709fe12f745705ba</id>
<content type='text'>
This time, the ValueTypeFactory gets converted. As a consequence, many
callers get touched again.

Task-number: QTBUG-88766
Change-Id: I3a8b7d5cfeb7fac85daf1702febba205971d4256
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This time, the ValueTypeFactory gets converted. As a consequence, many
callers get touched again.

Task-number: QTBUG-88766
Change-Id: I3a8b7d5cfeb7fac85daf1702febba205971d4256
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQmlListProperty: Use qsizetype rather than int for sizes</title>
<updated>2020-11-09T17:09:30+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2020-11-09T09:46:07+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d7008c79d4ec023527ebfc118ad47f40075f244d'/>
<id>d7008c79d4ec023527ebfc118ad47f40075f244d</id>
<content type='text'>
[ChangeLog][QtQml] The QQmlListProperty callback functions use qsizetype
now as type for the size of a list. This is in line with the containers
that you might use to back the list.

Fixes: QTBUG-88269
Change-Id: Ia38403cb32f241e6c70e1a580dbeff1d6d694331
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ChangeLog][QtQml] The QQmlListProperty callback functions use qsizetype
now as type for the size of a list. This is in line with the containers
that you might use to back the list.

Fixes: QTBUG-88269
Change-Id: Ia38403cb32f241e6c70e1a580dbeff1d6d694331
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix wrong optimization on ARM64 ubuntu qemu</title>
<updated>2020-08-13T17:31:43+00:00</updated>
<author>
<name>Fawzi Mohamed</name>
<email>fawzi.mohamed@qt.io</email>
</author>
<published>2020-08-13T13:19:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=aaabbf3a7da5dcd729689fc5fa9a31d6f8f2610a'/>
<id>aaabbf3a7da5dcd729689fc5fa9a31d6f8f2610a</id>
<content type='text'>
in QQuickDesignerSupportProperties::propertyNameListForWritableProperties
inspected object is initialized with a stack variable in the first
iteration:

    if (inspectedObjects == nullptr)
        inspectedObjects = &amp;localObjectList;

Subsequently inspectedObjects-&gt;contains(object) is called.
This crashes on ubuntu ARM64 QEMU unless one performs other operations
before that call (just in optimized code without debug information).
As the contains will return false in the first iteration doing it only
in subsequent recursions (by putting it in an else clause) does not
change the expected execution, but avoid the optimization bug that was
blocking CI integration of qdeclarative (a crash cannot be blacklisted).

Change-Id: I2d14ecc78673ad06073825c094e4e1dcd935e73a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in QQuickDesignerSupportProperties::propertyNameListForWritableProperties
inspected object is initialized with a stack variable in the first
iteration:

    if (inspectedObjects == nullptr)
        inspectedObjects = &amp;localObjectList;

Subsequently inspectedObjects-&gt;contains(object) is called.
This crashes on ubuntu ARM64 QEMU unless one performs other operations
before that call (just in optimized code without debug information).
As the contains will return false in the first iteration doing it only
in subsequent recursions (by putting it in an else clause) does not
change the expected execution, but avoid the optimization bug that was
blocking CI integration of qdeclarative (a crash cannot be blacklisted).

Change-Id: I2d14ecc78673ad06073825c094e4e1dcd935e73a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add ; to Q_UNUSED and UNUSED_PARAM</title>
<updated>2020-06-26T17:18:03+00:00</updated>
<author>
<name>Lars Schmertmann</name>
<email>Lars.Schmertmann@governikus.de</email>
</author>
<published>2020-06-26T12:43:02+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e79281533d61dda90d1c5995345a66e6089c7501'/>
<id>e79281533d61dda90d1c5995345a66e6089c7501</id>
<content type='text'>
This is required to remove the ; from the macro with Qt 6.

Task-number: QTBUG-82978
Change-Id: Iead53d18fd790fb2d870d80ef2db79666f0d2392
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is required to remove the ; from the macro with Qt 6.

Task-number: QTBUG-82978
Change-Id: Iead53d18fd790fb2d870d80ef2db79666f0d2392
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make render loops OpenGL clean</title>
<updated>2020-06-08T12:10:45+00:00</updated>
<author>
<name>Laszlo Agocs</name>
<email>laszlo.agocs@qt.io</email>
</author>
<published>2020-06-05T10:10:06+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=433dc99229c7c980f410b6692c1df17734c95385'/>
<id>433dc99229c7c980f410b6692c1df17734c95385</id>
<content type='text'>
Task-number: QTBUG-84718
Task-number: QTBUG-84623
Change-Id: I14392c365a52ecc410362500bbe29b4dd7953007
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Task-number: QTBUG-84718
Task-number: QTBUG-84623
Change-Id: I14392c365a52ecc410362500bbe29b4dd7953007
Reviewed-by: Andy Nichols &lt;andy.nichols@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Get rid of Q_OPENGL_ES* macros</title>
<updated>2020-04-17T05:27:56+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2020-04-15T11:48:38+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ac009a9671ad97e9bc599676c35acd4628e45e7b'/>
<id>ac009a9671ad97e9bc599676c35acd4628e45e7b</id>
<content type='text'>
These macros are no longer defined, and we will use QT_CONFIG
instead, since that is more robust (it checks against
misspellings).

This also removes some dead code from the WebKit code in
Qt QML. The condition never resolved to true in our case
since Qt QML does not depend on Qt GUI, so even before
the macro would not be set. This is just a leftover
anyway, as the graphical parts are not used in QML.

Task-number: QTBUG-83467
Change-Id: I2c4b7f928538cc75ce408deb357f8fd92a84d8e4
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These macros are no longer defined, and we will use QT_CONFIG
instead, since that is more robust (it checks against
misspellings).

This also removes some dead code from the WebKit code in
Qt QML. The condition never resolved to true in our case
since Qt QML does not depend on Qt GUI, so even before
the macro would not be set. This is just a leftover
anyway, as the graphical parts are not used in QML.

Task-number: QTBUG-83467
Change-Id: I2c4b7f928538cc75ce408deb357f8fd92a84d8e4
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Encapsulate QQmlContextData</title>
<updated>2020-03-23T11:00:33+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2020-02-26T15:04:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d51c007ecc8aa6256cb95cf3992e5ac34a70fa3f'/>
<id>d51c007ecc8aa6256cb95cf3992e5ac34a70fa3f</id>
<content type='text'>
This class is not a private detail of QQmlContext. And it is incredibly
hard to see who owns what in there. Let's add some civilization ...

We enforce refcounting for QQmlContextData across the code base, with
two exceptions:

1. QQmlContextPrivate may or may not own its QQmlContextData.
2. We may request a QQmlContextData owned by its parent QQmlContextData.

For these two cases we keep flags in QQmlContextData and when the
respective field (m_parent or m_publicContext) is reset, we release()
once.

Furthermore, QQmlContextData and QQmlGuardedContextData are moved to
their own files, in order to de-spaghettify qqmlcontext_p.h and
qqmlcontext.cpp.

When the QQmlEngine is deleted, any QQmlComponents drop their object
creators now, in order to release any context data held by those.
Before, the context data would be deleted, but the object creators would
retain the dangling pointer.

[ChangeLog][QML][Important Behavior Changes] QQmlContext::baseUrl() does
what the documentation says now: It prefers explicitly set baseUrls over
compilation unit URLs. Only if no baseUrl is set, the CU's URL is
returned. It used to prefer the CU's URL.

Change-Id: Ieeb5dcb07b45d891526191321386d5443b8f5738
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This class is not a private detail of QQmlContext. And it is incredibly
hard to see who owns what in there. Let's add some civilization ...

We enforce refcounting for QQmlContextData across the code base, with
two exceptions:

1. QQmlContextPrivate may or may not own its QQmlContextData.
2. We may request a QQmlContextData owned by its parent QQmlContextData.

For these two cases we keep flags in QQmlContextData and when the
respective field (m_parent or m_publicContext) is reset, we release()
once.

Furthermore, QQmlContextData and QQmlGuardedContextData are moved to
their own files, in order to de-spaghettify qqmlcontext_p.h and
qqmlcontext.cpp.

When the QQmlEngine is deleted, any QQmlComponents drop their object
creators now, in order to release any context data held by those.
Before, the context data would be deleted, but the object creators would
retain the dangling pointer.

[ChangeLog][QML][Important Behavior Changes] QQmlContext::baseUrl() does
what the documentation says now: It prefers explicitly set baseUrls over
compilation unit URLs. Only if no baseUrl is set, the CU's URL is
returned. It used to prefer the CU's URL.

Change-Id: Ieeb5dcb07b45d891526191321386d5443b8f5738
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
