| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: Ia60d01835108b0a461791e56388eb3dfe90649e2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickWindow::QQuickWindow(QQuickRenderControl *control)
should be part of the public API. The user can use
QQuickRenderControl with QQuickWindow to control the
scenegraph rendering. This constructor is used in the
QQuickRenderControl example.
Change-Id: I1bb38d64173c24ba835137897ef915dfde83b1f3
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 7454d3b612eab92b8e91741fc1c51311cf80c3a2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|\|
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: I7b6e0ef657d1278405738f682b2795f8c345c3d4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch fixes a crash using a S-Pen with QML TapHandler on Qt 5.15.
The reason it was happening was because the item->window() was nullptr
when it tried to run the mapToGlobal function. The item->windows becomes
nullptr on handlePointerEvent function, so switching both lines is
enough to fix this crash.
Fixes: QTBUG-86805
Change-Id: I25f20650e97b5ad094a99c810379fb412fdb4222
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\|
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: I91d2b178e7111d0802ea973bccf230b264c30c96
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a PointerHandler with a custom cursor deactivates, the cursor
wasn't restored until the next mouse move.
I was writing a test to ensure that there were no bugs analogous
to QTBUG-85303 with a handler that uses its active state to change
the cursor (unlike HoverHandler which changes it whenever the
mouse is hovering) and found this new bug.
Fixes: QTBUG-85325
Task-number: QTBUG-85303
Change-Id: I4ea8dbd267046c8e972e723cc491bd44bbbfd7f2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 8bd6342639721b7db08acf554c6bcd3e7ab04cb6)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: I6e107095a7dbd074e076ac6762f18cecf484691f
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
(cherry picked from commit 22e4f38858db25b939c4efdc6dae1f2fe6b52774)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickWindowPrivate::pointerEventInstance() needs to know the device
type, to create the right kind of event. QTabletEvent::NoDevice exists,
and platform plugins may use it, unfortunately. Now
QQuickPointerDevice::tabletDevice() will assume that any device claiming
to be a Pen is also a Stylus.
Fixes: QTBUG-97771
Change-Id: I6c3f369025be5848e092a50f420b05fbd4e17cbd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|\|
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: I2e0f34eea87c1393dff82f153650eccf5048248f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This function is called for delivering other types of pointer events
than mouse and touch: tablet, wheel and native gesture events mainly.
It calls item->window()->mapToGlobal() so a crash is theoretically
possible in rare complex cases if pointerTargets() somehow found
items that are not in the window; so we add a null pointer check to
avoid crashing.
Fixes: QTBUG-82013
Change-Id: Id5b167a685a3ee7ae2d94338ce312930430e081b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-95798
Change-Id: I6142d63c1d82248493e02cdeb0e1abafcaa7798e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\|
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: Ic3ca76460360cbab866a4e881c4848e6deeaf7d7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We connect to the signal when the screens change (in
QQuickWindow::handleScreenChanged), but never for the initial screen.
Not connecting means that changing the DPR of the initial screen doesn't
re-render QQuickItems with the new DPR, which was in particular visible
for QQuickImage when displaying SVGs.
Task-number: QTBUG-94622
Change-Id: I44ff3f8f3713d5a7bba8b6b8b4d5ca14530fe373
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 7e39a2204382a78ac6ff1e32dfe29dcbce65004c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|\|
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: I39595f8b7ad212c842709b939226d95531819391
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Connections could accumulate. Because the newest one was invoked
last due to how signal-slot invocations are ordered, rendering
was correct, but the stale connections caused unnecessary updates
(and wasted a small amount of memory).
This comes from a misunderstanding I had at the time about how
QMetaObject::Connection works. Destroying or overwriting one does
not affect the actual connection.
While at it, also modernize the connect().
Change-Id: Idde81bdbff8947ed517bf2740d623a395c0acb74
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 9f8292d48913c5bc50377749c2b3e030cf16d703)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|/
|
|
|
|
|
|
|
|
|
| |
This reverts commit 7b1331c789df0ac12d7cf5aa5f8967b8651a4cfa.
Revert of commercial license headers is required for Qt 5.15.3
opensource release.
Task-number: QTBUG-91108
Change-Id: I47eb004523bdb3beb16e9fd51e40da6f738f9f34
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In some cases, when the QGuiApplication is shutting down while there
is an active QAnimationDriver and an incubating object, the
QQuickWindowIncubationController will try to access an already
destroyed QSGRenderLoop. So use a QPointer to guard the QSGRenderLoop
access.
Fixes: QTBUG-90489
Change-Id: I528e06ff22dfcad804593db6771d9163b21808f4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit bac93541ba324e75c532c1987e861109e1c5b131)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated header.COMM to the files in tqtc-qtdeclarative.
Examples, documentation files or tests are not updated.
The commercial license header may contain some
additional lines so that its line count equals with
the earlier license header. Reason for this is that
some autotests use hard coded line numbers and a
change in the line count causes failures in tests.
Task-number: QTQAINFRA-4161
Change-Id: Ic1d011aa01b1fe7242bcbbf72d5ab454d1015cf9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added check into deliverMatchingPointsToItem method for Android device.
In QT_VERSION below 6.0.0 touchEnabled for QtQuickItems is set by default to true
It causes delivering touch events to Items which are not interested
In some cases it may cause a crash. For example using Material Style in Android.
QQuickShaderEffectSource may be deleted and then try to handle touch
Fixes: QTBUG-85379
Change-Id: Ia2c4e016db57ef9c86fcc31d4cfba6154068a546
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit a14e4fcdf94d26774490b26a4ef77981594f583f)
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@siili.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes multiple windows focused if there is a single window per
screen assuming that windows across screens don't compete the keyboard
focus.
Task-number: QTBUG-83361
Change-Id: Id6f6fd0c95747b03d56c5e535f1313c27d67ab24
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit a2c5f5abff3cafc5769588b573bb04cf950a0450)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I2230e2dcb7bc2497b5dbe71a22c21d84176b5e57
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
(cherry picked from commit fd105380eb4f43c08578b6fe5ce3e5c6dd4b35d6)
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The visual cursor feedback was inconsistent with the hovered property
when a margin is set.
Amends 1c44804600ad3dbeb60d1f5209ce9cf937d30ab3
Fixes: QTBUG-85303
Task-number: QTBUG-68073
Change-Id: I25506baecaecbd6450a0e95786f103024b46b1b8
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit b1493678fc295765ce93e565c5194e860e746436)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts the commit 6f84a09 partially which generates a synthetic
hover event on a frame update. Such hover event has never been expected
in webOS and messes up the existing logic.
Change-Id: I7b855d27d1d44f2fab240707ef1ec79cdbcff6e5
Task-number: QTBUG-83119
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit a06e873a1e80eda2f8e946ebe4e2f7631c78f53d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing warning was pretty much useless since it would only warn
after having looped INT_MAX times. In addition, it didn't actually
detect if polish() was called from within updatePolish().
Instead, the counting is changed to be strictly more correct:
The counter is now only increased when polish() is called within the
updatePolish(). It will reset back to 1 if that does not occur.
Effectively, the counter will reflect how many consecutive polish loops
we have processed.
This patch will show diagnostics after having reached 1000 consecutive
polish loops. It will only warn for the next 5 items in order to not be
too verbose...(most likely they will be the same 5 items).
If the counter reaches 100,000, we break out of the loop:
This might be important for e.g. CI runs so that the process can actually
terminate in order to get some useful diagnostics.
Note that the item that calls polish() within updatePolish() doesn't
have to be the same item as updatePolish() was called on. We also want
to track these since there might be several items working in tandem to
create the loop.
With this change it will now give the following output:
main.qml:10:5: QML Row: possible QQuickItem::polish() loop
main.qml:10:5: QML Row: Row called polish() inside updatePolish() of Row
(This is when Row called polish() from within its own updatePolish())
Fixes: QTBUG-40220
Task-number: QTBUG-83856
Change-Id: Ib8a7242908082c70d8cf71efbbe1fa148dbfada0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 1c8bce285522e0dcfd13fe6c514f4756d6d6438c)
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The events were not handled at all on window level, so input from e.g
the macOS Emoji keyboard never arrived in the Qt Quick items.
Since the input method is likely to use a separate window, the
QQuickWindow is likely to not have an active focus item when the input
method event arrives. In order to deliver the event to the correct item,
walk the scopedFocusItem chain starting with the contentItem as a fall
back.
[ChangeLog][QtQuick][QtQuickWindow] Pass input method events on
to the focus item.
Change-Id: I452bb73e13f9cd398c2302303f52a92bda2bb0e3
Fixes: QTBUG-70319
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit dfa51b69bf1f7a6bb3acc0b5cf406039a9e05e83)
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid possible misunderstanding where true actually mean
"can not".
Fixes: QTBUG-35922
Change-Id: I27a119bc236db2c575d5356ce7a457e7ebce7967
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 525fe67ac2eefd37c1758a64fc519e9886475983)
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As there is some confusion over what resetOpenGLState() actually resets,
then this clarifies it to be clearer on that it only resets the
internally changed states.
Change-Id: Ie6f27e4772bd757d7d435575dcd9d711a1c6a9d7
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
| |
Followup to 0124f73dfb779924e46eb8b319358dbbd5af2577
Change-Id: I8fa2e2fc8eae7a789a9d5e846f34c767c688b0e1
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-82705
Change-Id: I78a614c47a0f7d95b2a215d94e964c1202d89bcf
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling updateTexture() from an updatePaintNode() implementation means
we are still in the synchronization phase, with the render step (as in
QQuickWindow::renderSceneGraph()) not started yet. Make sure the
QRhiCommandBuffer is sent around early enough, so it is usable by
QSGRhiLayer already during sync.
There is no use case for this in Qt Quick itself since all standard
items invoke updateTexture() from QSGNode::preprocess() (which is part
of the render, not the sync, step), but Qt Quick 3D relies on this in
Texture.sourceItem.
This should fix the sourceitem manual test in Qt Quick 3D, so that it
will not crash anymore when running with RHI enabled.
Task-number: QTBUG-82927
Change-Id: I38adf512e49b1c6eef4730cd23663d351725d6cd
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
QDoc will generate these notes automatically.
Task-number: QTBUG-37355
Change-Id: I8ed058ecbbcc630ad0351f6ce167c3fa61936f6f
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: I19b3a78ddbde481af8847a3d340e62d56240de29
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTBUG-78141
Task-number: QTBUG-82020
Change-Id: Id47f8efe77cd3f6bfd330c8759059e19de5a86d2
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Amends 8e822e981d91e688799c8670f11dfdf6aaf9e0d1.
Fixes: QTBUG-82168
Change-Id: I8d849747a3394ca05d62b674a725d45165f081eb
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4engine.cpp
Change-Id: I61f41672e2dfe7e542ca30fed5f173d0a9ee3412
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Afaik there currently is no case in a regular execution where the
renderer would actually be null, but for the sake of correctness add a
null check as this seems to be the only code location that actually
assumes the renderer to be non-null.
Additionally, in order to en-/disable custom render modes at runtime,
GammaRay actually needs to recreate the renderer and therefore resets
the renderer to null in order for QQuickWindowPrivate::syncSceneGraph to
recreate it. Thus we need a null check to make sure we don't crash in
the short time frame where the renderer is null.
Change-Id: Ief5c405f3bc8725d55e22cd33f2164830764e33d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At this time, there are not yet any specialized handlers to
do anything specifically with tablet events; but we demonstrate
how to use HoverHandler to detect the type of stylus in use,
and how to use PointHandler to draw on a Canvas.
Unfortunately, events of types TabletEnterProximity and
TabletLeaveProximity are not delivered to the window, only to
QGuiApplication. So HoverHandler can detect when the stylus is moved
out of its parent Item (as long as it's still hovering over the tablet
surface), but cannot detect when the stylus leaves the tablet completely.
In Qt 5 that would require a custom application subclass
(see qtbase/examples/widgets/widgets/tablet/tabletapplication.cpp).
Fixes: QTBUG-79660
Change-Id: I81fdb99082dc41c0455085e6b6d3952402bf8742
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-79263
Change-Id: If518f644b5b9eddbacfb1cb16fbb557127ffcfb2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also, QQuickItemPrivate::setHasCursorInChild() was unable to check
the QQuickItemPrivate::hasCursor variable, because the function
argument hasCursor was shadowing that, even though the comment
"nope! sorry, I have a cursor myself" hints that the intention
was to check that. So this change exposed a problem there, and
we have to fix that too, in order to keep the tst_qquickwindow::cursor()
test passing.
[ChangeLog][Event Handlers] Pointer Handlers now have a cursorShape
property to set the cursor when the handler is active and the mouse is
hovering, and restore to the previous cursor when the mouse leaves.
Fixes: QTBUG-68073
Change-Id: Ib5c66bd59c4691c4210ee5465e1c95e7bdcf5ae1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-79268
Change-Id: I70f60ddf6e97e0b082f4df77e26a33f9305a4f0c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes the QTextStream usages.
Change-Id: I0c009a82fb644a9f3c3d42ec410d18b680977f23
(cherry picked from commit 1c5c5f7aadc2dcc73a21eeb818e95c4e1b7de70f)
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also update the implementation of setTextureFromNativeObject
to use the new API from QRhi
Task-number: QTBUG-78570
Change-Id: Ic43371c4bb7a1dd14bfe5ef0d8ce2ef50e1d25d6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So on Windows one now gets a message box with a reasonable message,
instead of the OpenGL nonsense. Then the application closes when pressing
Abort etc.
On other platforms there is a qFatal, printing the same message.
Involves simplifying the OpenGL version a bit since passing isES type of
flags through multiple layers is not justified here.
Task-number: QTBUG-80365
Change-Id: Ie3ea1e9395a283f7e95eda78c1d3894797ff0acf
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-80365
Change-Id: I929fb76eb8d023ab048f6d1c91be078de3cfe750
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Amends 744e77b841878fb017c0f2d60607090008f28180.
Change-Id: I16e37aaf503eb62f67fca0e48be4c92c4a72ae46
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/qml/qqmlextensionplugin.cpp
tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
Change-Id: Ic58d36a8532015bae30f2690063db9829b3bf372
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There were a lot of documentation warnings introduced by the
separation of QtQml.Models and QtQml.WorkerScript modules
from the QtQml documentation project into their own
sub-projects.
Fix the above, and also ensure that the experimental
Qt.labs.qmlmodels QML types are listed in the documentation,
and add them also on the QML module page for QtQml.Models.
A few warnings remain, they may be indicative of issues
not in the scope of this commit.
Fixes: QTBUG-79812
Change-Id: Idc25c976e4c96feab4aae893519d6c9245f57a64
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So no matter if Quick goes directly to OpenGL, or via QRhi,
QQuickFramebufferObject will still work.
Also fix up the fboitem example to use a ShaderEffect that works with
both rendering paths.
With graphics APIs other than OpenGL the item will be empty, as QQuickFbo
is not something we can support there.
Task-number: QTBUG-79222
Change-Id: I52177d3a75f619f7075a2fc829573c17031eded1
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I6e69a235f50472b8f7ac19e133a3c071ea8c4d7a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The "and graphics API other than OpenGL" note is clearly wrong.
All that applies to the RHI in general, regardless of the backend.
Also highlight more why connecting to beforeRendering() is problematic
on the RHI path.
Task-number: QTBUG-79221
Change-Id: I4875ff197f53ecb76c796b35f2ddf28bed1dc12c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|