| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a new package was installed, the D-Bus marshalling code for the
signal tried to serialize the contained applications' metadata via the
ids, but at that point, the ids are not known to the ApplicationManager
yet.
Instead we now do the same as in the PackageManager class: add a
function that can serialize an Application * (that doesn't need to be
known to the ApplicationManager).
Change-Id: I5989c1e1d449d38d634fd00e7ed33bf66e9430a3
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit 5146513f6bebeabc119d5ec330432b9f4ff61b1a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 7829162b8ca7745abea90089038023c400e43b32)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Plus there is a potential for a memory corruption, as that static
path variable could be accessed from multiple threads without any
protection.
Change-Id: Idbac6ef83eeb3e5259c4e7c7b232466da21adc61
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit 8a019b21f27b92a1bfdf0e232e115bc60ac67e37)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 6e749a325689f64de32f0a8b2c9a290f3fa302f6)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This amends commit a4c0ac1c5eda8c9cb7eb5cfb7f50f852eedccd3b, which
missed to take the "applicationProperties" field into account.
The ApplicationInstaller API is deprecated and cannot supply all the
information the newer PackageManager API can do, especially when
having packages with multiple apps.
In the case of single-app packages, the AI API should however report
everything it can to be as backwards compatible as possible.
Change-Id: I5d330ec4b5dccadce3e30ba3510865ad6e93c122
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit d37f9dbab83469f3ff16b99163df28285acc87b2)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If libyaml throws an error before it has detected the encoding, we
would instantiate an invalid QTextDecoder to print out the error
context from the YAML. This would then crash due to a nullptr codec.
This patch replaces the codec detection with a hard-coded UTF-8
encoding, the same way the Qt 6 version of the AppMan is doing this.
Yes we loose the ability to parse esoteric UTF16 YAML files, but we
can be sure to have a codec for parsing available.
Change-Id: Ibd4c50bc8162ba8a1d653171d9c55ce024cfff60
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
|
|
|
|
|
|
|
|
| |
Change-Id: Ic27d0b3a2b4002708b07a5840c2b071a32db2462
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 9936a7fcb6195f7a21c09c2c903c94d1a27e0b91)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit e78bdf3e944c817b6262d7807b604855be9e2a9c)
(cherry picked from commit 8bff5c5df045668adc87b467ae4ca15cd3c01e75)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ApplicationInstaller API is deprecated and cannot supply all the
information the newer PackageManager API can do, especially when
having packages with multiple apps.
In the case of single-app packages, the AI API should however report
everything it can to be as backwards compatible as possible.
Change-Id: I11341832a64734eaf87220b9cdd735c4ebbcd32f
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit a4c0ac1c5eda8c9cb7eb5cfb7f50f852eedccd3b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit c33b6c63daef0d494c80b18ac66fc55793a37c8c)
(cherry picked from commit aaf5b9a4fe716675d16a7a4c067e2bc9d3bd2b00)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The temporary Package and Application objects handed out by the
taskRequestingInstallationAcknowledge signal belonged to the worker
thread of the InstallationTask, which prevented any property from
being used in a QML binding, as the QML engine lives in the main
thread.
Change-Id: I6f49718984a78b781c4f7a98e0e38c4f9ac9ccea
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 271343bb90632cc05d5e62a60635b408a2ffb4b0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
| |
Change-Id: I1525dafed2929e7aae42857b16105096952e3cfe
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 7e176458bf7c591a59c93afa6213d9d6f671e5f9)
|
|
|
|
|
|
|
|
|
|
| |
Some compilers optimzed out the ProcessTitleInitialize function
in the .init_array section, since it isn't called explicitly.
Change-Id: Ifd1fbdf9afd9e991a28590aeab7068223f5a132a
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit 77abca601078e643550bb662d4d7e61b0647beed)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reference count has been fixed to properly terminate underlying GPU
memory tracing process, no warning is printed any more when the process
finishes and parsing intel_gpu_top output has been adapted to pick the
actual load value (subject to future changes in the tool).
Change-Id: I7f02e7b48b826da2d6b10f1d67470b560a3c7c21
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit 880837be13cec8784a771b0b32ebb30be6da676f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Manually constructing a socket path on macOS and legacy Linux was
wrong and prevent the start of the dbus-daemon:
/tmpam/... instead of /tmp/am/...
Change-Id: I101f74b50ba0477cbf49b59bfc76982c60dc7e0b
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 7381f5d848975729c87d66d91a53dfa1a28bb44a)
|
|
|
|
|
|
|
|
|
| |
Detect if we are running against an old D-Bus library where the
"unix:dir=..." syntax is not supported.
Change-Id: Icc4ac38868e0bc2ea2675d86384c4ff33aa11cdb
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit a2aed270244c872c58dfdd945d1e5452ab23d057)
|
|
|
|
|
|
|
|
|
|
|
| |
Different versions of libdbus handle the default listen address
(unix:tmpdir=/tmp) differently: you may get a file-based socket
(Debian/sid), but you also may get an abstract socket (Ubuntu 22.04).
Change-Id: I703679e5f9b0315027a4b2cabd5db1800870ab00
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 82b6a97147ff3e921998fcec269b79c842ee432f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Since switching to the new multiple-apps-per-package architecture, the
actual infos about the apps in the package were not exposed via the
requesting-acknowledge signal anymore.
Change-Id: Id535c5d8710998ce26043ec8e56cd1881961628d
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit a027b61a64160ca5fa1c3bc8d135a38c75a534a7)
|
|
|
|
|
|
|
|
|
|
| |
This extends the existing -c/--config-file option to also accept
directories, effectively expanding the argument to all *.yaml files
in the given directory.
Change-Id: I83f197e8f67ba363bf27b0f511c7821402bb7033
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit 6cc5230fd783802159aa3ca94c74b7ee1b27203a)
|
|
|
|
|
|
| |
Change-Id: I6ca98e219bf4c3de9a1eaaae5ddeb7e7cfa27107
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 0ae6d0a3637075fe8005361177eae3142eee0a77)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case the AM crashed or the bus died during an install-package
command, the appman-controller would have waited for a taskFail /
taskFinished signal infinitely.
We now detect a D-Bus service owner change (the AM crashed) and a
disconnected D-Bus (the bus died).
Even though the D-Bus daemon dying sounds unlikely, it is the norm
when running the AM with --dbus=auto (the default). If the AM crashes
(or gets terminated by an IDE), the private dbus-daemon just quits.
This makes the controller much more suitable for scripting.
Also fixed a bunch of clang/clazy warnings in this file.
Change-Id: I01a3772fd8773d707984a07d38cbce1d7ab36c94
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit ff5f0d9c4d14042eb020a8ba5cb9ee7e51195a65)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is very unlikely, but there is a race condition between the
installer thread and the main thread regarding the life time of the
Application object that is currently being uninstalled.
We have a clear backtrace from a production system pointing to this
error, but we cannot reproduce this problem in an unit test.
Change-Id: I290582f270455c64e8653813c5e9d47c294f60e1
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 3d36fe9fbdd18f635de8c3f01b3067d37e3014d7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the wayland socket didn't exist, the appman-launcher-qml would
terminate with an abort. This could happen for instance inside a
container when the socket file was not mapped. This has been
mitigated to only show a critical error message in the am.runtime.qml
logging category and exit gracefully (with an error return code).
Change-Id: Id29d0e79e260726d1ffd9b940eac806b483b8a19
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit 61e91284ade4ba7548e84e6550934aff5bcf1ca2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
| |
Change-Id: Ic84e3c14ef1f645095b0428c0da54215abdb1bbc
Fixes: QTCREATORBUG-27882
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ie6e3af20605135ba40ca4f59ac648d08e7c2f2fa
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit afe24a0d5f17fc267ff81fbd729351b6209c74c0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you were calling startApplication() and the runtime failed to
execute the app's binary in a container, it would call deleteLater() on
the failed runtime object. The problem was that if you immediately
called startApplication() once more in the same event loop iteration,
the Application object still had the to-be-deleted runtime attached,
which in turn prevents the allocation of a new container, so the
AM tried to start the application again, but this time with
"container" set to nullptr.
The actual fix is to NOT call deleteLater, but directly delete the
runtime object.
In addition, when startApplication() is called for an application,
we have to make sure that the application's runtime object can not
be in the state NotRunning: the AM could still end up in this state,
if a Container plugin is either not reporting shutdown correctly, or
if the container's "ready" state is delayed.
Change-Id: Ied1baec8c90d4e0a980c296cbc7cd87b12629524
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 5ae261864728678df3dd72f156efc6688dcf695d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I29142dccb62f4f9689a13f0dd5d9b1d4f9f81e05
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 95cec17f8da3972adab36ca8bfb10bcf755101e3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I4d6bf4d4d29133202c0b7dfd088d09cf2a64d1c0
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 50255bf75103520c288f7ed31d2eddc22bcb18a1)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: Ia71cf0b596b4e90d38fba0ca5d1c6134e96e721f
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit cb9e3ecefb5908b5a74854afcbb399b3241c1fc6)
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
|
|
|
|
|
| |
Change-Id: Ib6c40be32721c9d9ff8c22df9b82b48529874e63
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Not saving the result of IntentClient.sendIntentRequest could lead to
the GC deleting the IntentClientRequest before it was even delivered
to the receiver, leaving a dangling pointer.
Change-Id: I8972795d166fa46dd736005dd4df33b9a7ea2463
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit bb186192373c6ff796c9084f22d48b02d14886c7)
|
|
|
|
|
|
|
| |
Change-Id: I159db37d55dea3a85a52117013b24611cbbb8ac4
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit ca39c6d952c6812d5fa75913432d6fc9dd4e8a81)
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: I60637b5c782cdb38669d751991a8e1e879754906
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 18d10c730e27560eb691c2a0bae605dc4d3d226a)
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This improves performance in single-process mode, when an
ApplicationManagerWindow is fully transparent.
Change-Id: I87d35a76c4301b59b513bf19b4de01fb244e028e
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit 1b818ba23087fc57a4392a26f72861c9364d0ba8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow to build for QNX and run in single-process mode. There are a
few limitations, e.g. filesystem mount monitoring and startup timer
are not supported and there's only a rudimentary stack trace in case
of a crash, etc.
Since Qt Network doesn't provide a HW address it has to be passed
to qmake with, e.g.: -config hardware-id=dummyHwId
(this is a manual reimplementation of
Ia58d09d15a781666fe788f21dfe9c7af7a2a74ef and part of
I8057bc23fd0072c997c8a42539ef23a6c7a9e28a from the dev branch)
Change-Id: I8852e88e5de306e495a0772fbd82db945380b57b
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added an optional instance-id, which can be set via command line option
or via am-config.yaml in the appman process.
appman-controller also gained a new option --instance-id to address
the given instance, instead of the default, unnamed one.
Change-Id: I582d0ea69ed0697ee9ac7353725f93c50df05e34
Fixes: AUTOSUITE-1678
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 8f4fbe0665f7e83c89364e44711f01c4408ff59f)
|
|
|
|
|
|
|
| |
Change-Id: I7a537aa4b21e499ba7ca0a1d46314dce60266bfc
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
(cherry picked from commit 3da5d60c0e362504b18f9a567013504c9bdb1464)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem 1: A Qt plugin calls QDBusConnection::sessionBus() before we
fork off our own, private session bus. In this case, Qt caches the old
bus address and we try to register our objects on the wrong bus.
-> register on our own bus explicitly.
Problem 2: If "Problem 1" happened, every QML application would block
for 100 * ~25sec on startup, trying to call "Introspect" on the non-
existing Notification interface (on the wrong dbus). The delay loop
was written for the P2P case, which doesn't block in the QDBusInterface
constructor, resulting in a more reasonable 100 * 1msec timeout.
-> check if the service is available at all first and also check
for time-elapsed instead of trying 100 times.
Change-Id: I34ade2bee2da27753eda09b6c0f3562882f40bc3
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 6ffa6c7fa98336be9edc83e06f0c9ddad3769550)
|
|
|
|
|
|
|
|
|
|
|
| |
If a project is using the new applications/installationDirMountPoint
config option which might delay loading the package database, it also
needs a signal to tell it when that database is in a consistent state.
Change-Id: I4b250f08c6dade2c675c3b742fe663afd992c1bd
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit d7a64b2163a00330ddb8d84eb0ab6c4c8261e0e9)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenSSL3 doesn't like old certificates, but macOS doesn't like the new
ones. For the cross-platform signature auto test, we need to enable
handling of legacy certificates in OpenSSL3.
Also fixed the process to regenerate the test signatures (for when
macOS' SecurityFramework may catch up in the future)
Change-Id: Ie95ebb0878e4c6c4b96ef45263575bc2135197d0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 68170feaeefef6aa9764205bbcb10249b6a4a5c1)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test doesn't work if debug_and_release is set for the app lib
as the libs are created in subfolders in this case. Because of
the special coin test setup the pro files need to be split up.
The simple QML autotest doesn't need special handling on
windows anymore.
Change-Id: I73e0af8483438fa1ff249156d9f6e9f63eb229db
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
| |
Remove the specified timeout and rely on the default timeout instead.
Change-Id: I3232383877371db5961e713042b6572cfb68eff2
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
| |
Change-Id: I9310286ec2ef16a09fe65af369c675a74fc39ee0
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If tests are running into timeouts in the CI, we most of run into the
Wayland timeout before, messing up the tests' results.
Change-Id: I054f07ff860f77a1e8dfd6a411b049b92555dad0
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 26191b87f30dccff436736c13a62d19a665ae2a0)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
| |
Change-Id: I4f6fa847dc4dd41ac82ca0c829c0f22883f714db
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Also works around the problem of the single-process qml/windowitem
test crashing with just slightly more than idle CPU load.
Change-Id: Ie24c7565bbaa448844879f4a57f0921693db9ce8
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 5335074a0d432c98bb8ec8e62557e29b6ba1446d)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
| |
Because of different build environment used for qt5 builds,
we are not able to alter the test environment and have to build
in some hardcoded values for the CI.
Change-Id: I2211fa738e9cbe8d1cd728c1c024f70acdfdd1bd
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
| |
Change-Id: I63856500229ccf42cf89ac9ea311e9a2d66351b4
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
| |
Instead, set a well-known UTF-8 locale ourselves.
Change-Id: I67e4eaa9dbadf690924b091f93cf1d61425ea451
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 5f053ea7f609a269457ff1cd75aeb924a8a0d60f)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ic6a24d2d849a3d00e4e44f83ef6410bab4aca7c2
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit 5184cb19845e1b5bc25665e49e423f0dd8a25a5c)
|
|
|
|
|
| |
Change-Id: I1927f2896979e94feaa8e67b20809a99a803ea0a
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
| |
Coin uses a custom prf to detect what tests need to be executed
in the test phase. To make this custom prf happy we need to
adapt am-qml-testcase.prf accordingly.
Change-Id: Id32f8244ebf7efecd211c94ccfeb1f411be524a8
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The fix in bc06a04dd845d039ba802f94b5eae57519ec63a8 was not correct in
the package removal case.
Change-Id: I65645a1895b6e5cba6dfa6bd61be1b1a638fe67a
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit 074d1a70d273b72a369009a6105a7dcad2efc48b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before, this was only possible by running with the "noSecurity" flag,
which disabled all security checks completely.
Change-Id: I06fbd1cca414be518a19b2250b28e114687e7f93
Fixes: QTBUG-101703
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
(cherry picked from commit c1fbd8b4f27d810c70fad85d0a9365aee360becb)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|