<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/tools/qmltc/qmltccodewriter.cpp, branch wip/iosstyle</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 qmltc prototype code (2/N)</title>
<updated>2022-03-08T17:35:23+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2022-03-03T13:03:58+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=44b95b3fb26013ff5dab75d4f894ca4f11298e3d'/>
<id>44b95b3fb26013ff5dab75d4f894ca4f11298e3d</id>
<content type='text'>
- Migrate to the newer output ir classes (with adjustments)
- Deduplicate code writer and remove now-unused output helpers
  from the prototype version
- Remove old output ir

Change-Id: Ie7fe5e6d47e18477c65af02cabd89a890628442c
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Migrate to the newer output ir classes (with adjustments)
- Deduplicate code writer and remove now-unused output helpers
  from the prototype version
- Remove old output ir

Change-Id: Ie7fe5e6d47e18477c65af02cabd89a890628442c
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: Learn to set QML context for objects</title>
<updated>2021-11-17T17:04:41+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-11-12T08:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=794051a115ca5d03b34fa2288eb3c019f75b34aa'/>
<id>794051a115ca5d03b34fa2288eb3c019f75b34aa</id>
<content type='text'>
Add the minimal test along the way. The most we can do at present
is to check that root object's context is set correctly. Comprehensive
tests require binding compilation

The QQmlParserStatus::classBegin() shenanigans are skipped for now

Change-Id: I5c28c8a4406753dcf0fc93d968800b4376ec6017
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the minimal test along the way. The most we can do at present
is to check that root object's context is set correctly. Comprehensive
tests require binding compilation

The QQmlParserStatus::classBegin() shenanigans are skipped for now

Change-Id: I5c28c8a4406753dcf0fc93d968800b4376ec6017
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: Compile QML properties into C++</title>
<updated>2021-11-17T17:04:41+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-10-29T09:56:25+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=a67eba2513504836348f3e07a47c855ea4be413e'/>
<id>a67eba2513504836348f3e07a47c855ea4be413e</id>
<content type='text'>
Update the QQmlJSScope::insertPropertyIdentifier along the way
since it doesn't mark a signal method as a signal

Task-number: QTBUG-84368
Change-Id: I4594520e46e2d85cc7fa82357d9cc1c62c66b732
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the QQmlJSScope::insertPropertyIdentifier along the way
since it doesn't mark a signal method as a signal

Task-number: QTBUG-84368
Change-Id: I4594520e46e2d85cc7fa82357d9cc1c62c66b732
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: Compile QML methods to C++</title>
<updated>2021-11-17T17:04:41+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-11-01T15:18:30+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=dd153ad17475ba561b02c343dd9f0ce95a41390b'/>
<id>dd153ad17475ba561b02c343dd9f0ce95a41390b</id>
<content type='text'>
This also requires some changes to the output IR + couple things
could also be fixed while at it

Task-number: QTBUG-84368
Change-Id: Ie1535cbbe36cd874e9787ea91fe85b638326de20
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This also requires some changes to the output IR + couple things
could also be fixed while at it

Task-number: QTBUG-84368
Change-Id: Ie1535cbbe36cd874e9787ea91fe85b638326de20
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: Compile QML enums into C++</title>
<updated>2021-11-17T17:04:41+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-10-29T10:43:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=590dd43c4d1bdb67a2db66081357390458f87de8'/>
<id>590dd43c4d1bdb67a2db66081357390458f87de8</id>
<content type='text'>
Task-number: QTBUG-84368
Change-Id: Idf6c724496c807477ce0914ab0d32a80a9b90b5a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Task-number: QTBUG-84368
Change-Id: Idf6c724496c807477ce0914ab0d32a80a9b90b5a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: support user-specified namespaces in the generated code</title>
<updated>2021-11-16T08:02:57+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-10-20T09:14:52+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=6ec7953257ef1155aef8a0a4b8379205ee850283'/>
<id>6ec7953257ef1155aef8a0a4b8379205ee850283</id>
<content type='text'>
Already during the prototyping phase, conflicts in class names were
encountered within Qt code base. Those could be avoided by namespaces.
Initial qmltc logic was using meaningless "q_qmltc" namespace, so let's
improve that by allowing user-specified namespaces + making Qt's own
QML files (compiled to C++) being available under QT_NAMESPACE. The
latter is achieved by providing (and using) the internal version of a
qmltc-invoking function

Task-number: QTBUG-84368
Task-number: QTBUG-96040
Change-Id: I99cdf1baba8838c093b6b469f6744869f72af093
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Already during the prototyping phase, conflicts in class names were
encountered within Qt code base. Those could be avoided by namespaces.
Initial qmltc logic was using meaningless "q_qmltc" namespace, so let's
improve that by allowing user-specified namespaces + making Qt's own
QML files (compiled to C++) being available under QT_NAMESPACE. The
latter is achieved by providing (and using) the internal version of a
qmltc-invoking function

Task-number: QTBUG-84368
Task-number: QTBUG-96040
Change-Id: I99cdf1baba8838c093b6b469f6744869f72af093
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: Introduce object creation infrastructure</title>
<updated>2021-11-15T11:00:55+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-10-22T10:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0990b892cab819f210120f8a9f9ca48522bde412'/>
<id>0990b892cab819f210120f8a9f9ca48522bde412</id>
<content type='text'>
The so-far strategy is the following:
* allocate a linear storage for the QObject pointers
  using QQmltcObjectCreationBase (to reference the
  to-be-created objects)
* "type-erase" the QQmltcObjectCreationBase into
  QQmltcObjectCreationHelper (so now we don't need to
  know the template specialization across different
  QML documents): non-document roots' ctors can accept
  QQmltcObjectCreationHelper as an input parameter
* use QQmltcObjectCreationHelper to set object pointers
  into the storage when creating all the objects (also
  from other QML documents)
* use QQmltcObjectCreationHelper later to retrieve
  necessary objects during creation finalization

Provide basic implementation for the first and second bullets
straight away

This model seems to allow to hide the details of QQmltcObjectCreationBase
interaction within the QML top-level document root (the type that we
instantiate in the user code), which is very convenient

Task-number: QTBUG-84368
Change-Id: I04cf64c54e48f169acfd4337cf93a58a05336b3b
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The so-far strategy is the following:
* allocate a linear storage for the QObject pointers
  using QQmltcObjectCreationBase (to reference the
  to-be-created objects)
* "type-erase" the QQmltcObjectCreationBase into
  QQmltcObjectCreationHelper (so now we don't need to
  know the template specialization across different
  QML documents): non-document roots' ctors can accept
  QQmltcObjectCreationHelper as an input parameter
* use QQmltcObjectCreationHelper to set object pointers
  into the storage when creating all the objects (also
  from other QML documents)
* use QQmltcObjectCreationHelper later to retrieve
  necessary objects during creation finalization

Provide basic implementation for the first and second bullets
straight away

This model seems to allow to hide the details of QQmltcObjectCreationBase
interaction within the QML top-level document root (the type that we
instantiate in the user code), which is very convenient

Task-number: QTBUG-84368
Change-Id: I04cf64c54e48f169acfd4337cf93a58a05336b3b
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: Learn to collect C++ includes for a type hierarchy</title>
<updated>2021-11-15T11:00:52+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-10-28T12:18:04+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=539a08d1f4e4a672c33ccb21e4db5770491ebadb'/>
<id>539a08d1f4e4a672c33ccb21e4db5770491ebadb</id>
<content type='text'>
We need this to be able to properly include types, properties, etc.
The strategy right now is very exhaustive but it seems necessary (afair)
to be able to support weird cases with non-trivial forward declarations

As a drive-by, fix some mistakes in QQmlJSScopeVisitor and its qmltc's
counterpart

Task-number: QTBUG-84368
Change-Id: I97719222598af85886821c0bf6e0e788770c8924
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need this to be able to properly include types, properties, etc.
The strategy right now is very exhaustive but it seems necessary (afair)
to be able to support weird cases with non-trivial forward declarations

As a drive-by, fix some mistakes in QQmlJSScopeVisitor and its qmltc's
counterpart

Task-number: QTBUG-84368
Change-Id: I97719222598af85886821c0bf6e0e788770c8924
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: learn to generate minimum amount of code</title>
<updated>2021-10-22T16:37:20+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-09-21T08:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ee469d528a350f1fbcebc12a3728f7ed6f4a1302'/>
<id>ee469d528a350f1fbcebc12a3728f7ed6f4a1302</id>
<content type='text'>
- Finish output ir and the writer for it
- Add simple compiler logic to generate dull class declarations

Task-number: QTBUG-84368
Change-Id: I75be0f44b84ad3cfb1d862072d58b3bf87063d31
Reviewed-by: Ulf Hermann &lt;ulf.hermann@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>
- Finish output ir and the writer for it
- Add simple compiler logic to generate dull class declarations

Task-number: QTBUG-84368
Change-Id: I75be0f44b84ad3cfb1d862072d58b3bf87063d31
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: add cmake api and simplest file writer</title>
<updated>2021-10-22T10:47:19+00:00</updated>
<author>
<name>Andrei Golubev</name>
<email>andrei.golubev@qt.io</email>
</author>
<published>2021-09-17T15:01:56+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8dab4a81a0bf6cf1765ecf15f6f8c5b9ac2f5100'/>
<id>8dab4a81a0bf6cf1765ecf15f6f8c5b9ac2f5100</id>
<content type='text'>
Also update tests to include the generated file. While the
content is meaningless, it's good enough to check that the file
is include-able at this stage

Task-number: QTBUG-84368
Task-number: QTBUG-96040
Change-Id: I155826a52090c5b13d14be6330813dc5a27f28e5
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also update tests to include the generated file. While the
content is meaningless, it's good enough to check that the file
is include-able at this stage

Task-number: QTBUG-84368
Task-number: QTBUG-96040
Change-Id: I155826a52090c5b13d14be6330813dc5a27f28e5
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
