| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: I2963c1209316fb6755f572969f368970450d7991
|
| |
| |
| |
| |
| | |
Change-Id: I56b9d3abdbc6663a2d514f12aa20f2f574042bc1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Also added QtQml import for Component.onCompleted.
Change-Id: Ic54a7827c82b8dfd7a1b2f36af4d944bae54bdec
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It called QQmlEngine::setImportPathList() which removed
E:/dev/qt-5d/qtbase/qml from the import path, which again caused it to
fail loading because it could not find QtQml module.
It worked by accident since other tests before it (such as qtqmlModule)
already had QtQml loaded.
Change-Id: Ife94fe0c6d5cf612350dd782b12648dcea42608a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\ |
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
.qmake.conf
Change-Id: I20ad6f8a260f387a3b73566a32c35a5772b401a5
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
.qmake.conf
Change-Id: Icd05d016de5b4cf9af5234cb47b5c3fd0f6a053e
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Setting the KeyNavigation.up property of an item to another item will
implicitly set the reverse (KeyNavigation.down) property on that other
item pointing back to the item. Once the item is destroyed, you will
have an invalid pointer stored in the other item pointing to the
destroyed item.
Using QPointer<> instead of raw pointers fixes that issue, because
they will become null on QObject's destruction.
Added QQuickItem test that verifies the issue is solved.
Fixes: QTBUG-75399
Change-Id: Ibb3e976c4eb9fcd81604bcc2eb757257d3653930
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Commit 7cb6dce1f3e140ea68d6b05281950f212fc99d38 introduced an
optimization to remove bindings that after their initial evaluation had
no dependencies or errors (such as when accessing properties not set
yet). However when accessing a context property in a silent way -- using
typeof -- then no error state is set and the binding is removed. Any
later change of the context property results therefore in no binding
re-evaluation. This patch skips the optimization on bindings that are
associated with a context that has unresolved names. This fixes the
concrete bug at the expense of disabling further optimizations in the
context if other bindings access unresolved context properties. However
since context properties are discouraged anyway, this may be an
acceptable price to pay.
Change-Id: I95e120a4f71e8ebe0ec1fc44e8703c75f920dd28
Fixes: QTBUG-76796
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I2745d3df4fca77483313c70e5433339c444c7fd4
Fixes: QTBUG-76627
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Binary compatibility files added.
Change-Id: I3c8b0055db550c3e72713c2de6f13ee541271e5e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Be more strict in parsing version numbers
This also makes it easier to access the version number in other places
using the Visitor interface, like (soon) the linter and avoids reparsing
the text twice.
Potential disadvantages: previously allowed import statements will
rejected at parse time, e.g.
import QtQuick 0b10
Potential further advantage: Weird import statements like
import QtQuick 0b10
will be rejected earlier
Change-Id: Ifcd187b79a90952bc964c688afa4ea9b158e5109
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Java-style iterators are scheduled to be deprecated, or at the very
least banned from use in Qt's own implementation.
Change-Id: I6a1aeceb22dfa13c4ed7443296455b60abed7d67
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As the properties were missing their context, we could not get the
correct QMetaObject and would trigger an assertion in canConvert. We now
always set the context when creating QQmlProperties in qqmlbind.
Fixes: QTBUG-40487
Change-Id: I766c5697dc33fc1e18c2316e28d944975e84ae3c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Opt in via environment variables:
QSG_RHI=1 -> enable using QRhi instead of GL
QSG_RHI_BACKEND -> set to vulkan, metal, d3d11, gl to override the default
(the default is d3d11 on Windows, metal on Mac, gl elsewhere)
Or force a given rhi backend via the existing
QQuickWindow::setSceneGraphBackend().
Otherwise the default behavior is the same as before, the rhi code path
is never active by default.
-no-opengl builds are supported in the sense that they work and default
to the software backend. However, the rhi code path cannot currently be
used in such builds, even though QRhi from qtbase is fully functional
with Vulkan, D3D, or Metal even when qtbase was configured with
-no-opengl. This cannot be utilized by Quick atm due to OpenGL usage
being all over the place in the sources corresponding to the default
backend, and those host the rhi code path as well. This will be cleaned up
hopefully in Qt 6, with the removal all direct OpenGL usage.
Other env.vars.:
QSG_RHI_DEBUG_LAYER=1 -> enable D3D debug or Vulkan validation layer
(assuming the system is set up for this)
QSG_RHI_SHADEREFFECT_DEBUG=1 -> print stuff from ShaderEffect
QSG_SAMPLES=1,2,4,... -> MSAA sample count (but QSurfaceFormat works too)
QT_D3D_ADAPTER_INDEX=0,1,... -> D3D adapter index
QT_VK_PHYSICAL_DEVICE_INDEX=0,1,... -> Vulkan physical device index
QSG_RHI_UINT32_INDEX=1 -> always use uint index data (both
merged/unmerged, convert when needed - with some rhi backends this is
implicit)
QSG_RENDER_LOOP -> to override the render loop as usual. The default
with RHI is threaded for Metal, threaded for Vulkan on Windows, basic
for Vulkan on Linux and Android (to be checked later), while the existing
rules apply for OpenGL.
Not supported when running with QRhi:
- particles
- compressed atlases (though this is transparent to the apps)
- QSGRenderNode
- QQuickRenderControl
- QQuickFramebufferObject
- certain QQuickWindow functionality that depends directly on OpenGL
- anisotropic filtering for textures
- native text may lack some gamma correction
- QSGEngine applicability unclear
- some QML profiler logs may be incorrect or irrelevant
Change-Id: I7822e99ad79e342e4166275da6e9e66498d76521
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-73512
Change-Id: I97b9c17fd895f643806d006c57a868a476536894
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Move the qml code to a separate localeAsCppProperty.qml in order for the
qmlimportscanner to see what deployment dependencies it has.
Change-Id: Ic4eba3e0f2ffed69a2cd213d16b2c9142a522d12
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes: QTBUG-55027
Task-number: QTBUG-76879
Change-Id: Id0c7b33cf22827ebc984c4ee848ef4f63c359b20
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
You cannot call QUrl::fromLocalFile() with a resource path, since the
resource is not local.
":/data" ended up having the path "file:://data", which
QQmlImportsPrivate::addFileImport() had problems deciphering.
Task-number: QTBUG-73512
Change-Id: Iada0788892c1069e512a89b4eb5f9462d1208ed3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes: QTBUG-76346
Change-Id: Ie21f831a775489f0f2ac2e296136ed4932f5154f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QQuickState used to store "when" as a QQmlBinding to reduce state
oscillation.
It is unclear whether this is still an issue, but it breaks if a user
sets "when" to a primitive value like "true" or "1".
Fixes: QTBUG-76838
Change-Id: If400e5b1283687838ed252be2dfa52067f44564e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We're not running the qmlMinify() test when cross-compiling, so there is no
reason to produce a failure when preparing to run that
test in initTestCase()..
For the record, we got this failure on Android:
(FAIL! : tst_qmlmin::initTestCase() qmlmin executable not found (looked
for /home/qt/work/install/bin/qmlmin)
Change-Id: I84c8bb96ff067b818dfb3d3ba23856fe1fd76a7b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QVERIFY(!comp.isError()) gives very little diagnostics:
FAIL! : tst_foo::bar() '!comp.isError()' returned FALSE
instead we now use
QVERIFY2(!comp.isError(), qPrintable(comp.errorString()))
which outputs:
FAIL! : tst_foo::bar()
'!comp.isError()' returned FALSE.
(file:///data/cppsignal.qml:42 No such file or directory
)
Task-number: QTBUG-75567
Change-Id: If3527cd6cf38284d5a9d24c0ae476210bec53508
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/imports/imports.pro
src/qml/qml/qqmlmetatype.cpp
Change-Id: I308436caf55402cb2246cb591c6ac8f83e1febf8
|
| | |\|
| | | |
| | | |
| | | | |
Change-Id: I59343fe228ca6b823b61577e5a0907e7381899c2
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The refill() method would bail out early on an empty model. Make sure
that it at least updates the header and footer in such situations.
Fixes: QTBUG-31677
Change-Id: I1f3a1848ff263a8f7f9ccfc3b20f16b61348f57b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The cause was that fast flicking kicked items in and out of viewport,
while in transition, they would abruptly having tracking data structure
, i.e. releasePendingTransition of QQuickItemViewPrivate, got iterator
invalidated. This also helps to resolve QTBUG-44308.
Fixes: QTBUG-76433
Fixes: QTBUG-44308
Change-Id: If14533d3f6b1acd7b6ca0c5c723347c0cb3f54dc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Just like resolving the lookup initially, we need to set the base also
when hitting the cached lookup code path. The base is then used as this
object.
Fixes: QTBUG-76656
Change-Id: I6f6be05bc9875ddccc6e112e91176a0fa24a8fa1
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
At the point the plugin is actually unloaded the hook turns into a
dangling pointer.
Fixes: QTBUG-71387
Change-Id: Ib8ccee3f9a86d4700fbea7e87c666cd8f30f71e4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-76652
Change-Id: I46cd17a925f61585c65199f88342ea872a4a371a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These tests have not failed on the removed platforms for at least 60 days
Task-number: QTBUG-76608
Change-Id: Ifad6dfed42ad5a832f50b705a0e9312413c0eb61
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We rely on the qmlimportscanner to find out what to deploy, but it
is limited to scanning .qml files.
This test creates the QML code from C++, so qmlimportscanner fails to
detect those dependencies.
Therefore, we add a dummy_imports.qml file that has the sole purpose
of giving qmlimportscanner which additional dependencies the test has.
Change-Id: I97d706396f70b30558bb3f0e2303d39c9f321a2d
Fixes: QTBUG-73572
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes: QTBUG-76749
Change-Id: Ie5eed240e8190a7297f71f5e40870a007e737d1d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
So it can be used in QML. Useful in combination with ShapePath,
in order to add graphics along a Shape.
[ChangeLog][QtQuick][Shapes] Exposed QQuickPath::pointAtPercent
as invokable in QML.
Change-Id: Ia8aeb2b74003410ce16d9d2a0c62d79a021530af
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This way we get a header-only representation usable for the QmlCommon
module.
Change-Id: Ia75e445ffbee0c3b2d473a2a3a6309b2f12e8eea
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes: QTBUG-76527
Change-Id: I4044ae833eff61a3f06c2366597c1623b26794b0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
And show our users some love.
[ChangeLog][QtQuick][Path] Added QQuickPathPolyline.
Change-Id: I0fb78ae3e4e7c65e81e100595dc1eb16f88a68ed
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QGradient isn't meant to have a wide contract and filter out
garbage. Since we're parsing ints / strings as gradients, do
the validation at this level.
Change-Id: I271b5ed1b908d698a2d2c871abf5e61d1e565451
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We only need two classes to describe all possible diagnostics:
* A low-level private POD DiagnosticMessage. This is easily copied and
passed around internally. It doesn't need to adhere to a stable API
and it doesn't carry any extra baggage.
* The high-level public QQmlError with its stable interface. This can
internally also use a DiagnosticMessage as storage.
Change-Id: I52be88d9b5d9855a661b8032b01eedb43a0fb0b3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-76491
Change-Id: If8dbbc129a07bedc5970b82c6698cfcfad755b49
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |\| |
| | | |
| | | |
| | | | |
Change-Id: I71b1212085da85f03f4ff0e3ee5cb56a401998ae
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
.qmake.conf
src/imports/sharedimage/qsharedimageloader.cpp
src/quick/items/qquickitemviewfxitem_p_p.h
Change-Id: I12ce7c32788f4a394188a934e689b4ebac78138b
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The root cause was that the QAbstractAnimationJob::finished() might delegate its
destruction to change.listener->animationFinished(this), and the original author
was aware of that and provided a RETURN_IF_DELETE macro to return early if itself
got deleted. In the bug's case, change.listener->animationFinished(this)
dispatched to QQuickItemViewPrivate::animationFinished() which called
QQuickItemViewPrivate::release() and deleted the QAbstractAnimationJob object
itself in the end.
However, any objects derived from QAbstractAnimationJob, or holding a pointer
to a QAbstractAnimationJob, may potentially fall into the code path calling
QAbstractAnimationJob::finished(). Any QAnimationJobChangeListener that directly
or indirectly deletes QAbstractAnimationJob should be very suspicious to this
kind of "heap-use-after-free" bug. Should ensure that the QAbstractAnimationJob
won't be referenced after deletion.
In the bug's case, within the code path triggered by ListView displacement
animation, the other affected classes by QAbstractAnimationJob are:
QQuickItemViewFxItem, QQuickItemViewTransitionableItem, QQuickTransitionManager.
To fix this, a new SelfDeletable class is factored out to simplify the self-deletion
test logic. Any affected classes are made to have a public member m_selfDeletable.
Any code paths that finally reach QAbstractAnimationJob::finished() are
wrapped with related util macro.
Change-Id: Idd33fc3f2d529fd7d8bb088c329101b1e70dd6c0
Task-number: QTBUG-44308
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
[ChangeLog][QtQuick][QQuickMouseArea] mouseX and mouseY will now
be synchronized after dragging the target item
Fixes: QTBUG-75993
Change-Id: I0b56f6bd494791f9e2fe55a0cf059a7bad2d63dc
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tests/auto/qml/qjsengine/tst_qjsengine.cpp
Change-Id: I34df194046a91ee8a076ce28022eb99d68e7f362
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/jsruntime/qv4memberdata.cpp
Change-Id: I4e9ffc89d65279a42516f5547e93fb47fb571834
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't use the accumulator in that method. It could contain any random
value.
Fixes: QTBUG-75642
Change-Id: I41f958c1174cce76d0d77e14d5617d441aaf1e11
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QVariants are commonly passed around between threads and QVariants can
wrap QJSValues. Therefore we need to allow this. The persistent value is
freed immediately if we're still in the same thread. Otherwise a
message is passed to the QJSEngine that owns it. If there is no
QJSEngine we assume that we can free the value immediately. As such a
thing can only happen via private API we can make sure this assumption
holds.
Fixes: QTBUG-75939
Change-Id: I14c09fd5d6ef7ba689f66656f2bcbb5c88bacf89
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ia34d3980e48d2978c8c77e65b1ee2aa7f71fd985
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QLatin1Literal is an undocumented and deprecated typedef
for QLatin1String, just use the original.
Change-Id: Ib6e2b7ac369be12aed0e455c91cf31b807eae4ed
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|