Commit Graph

63030 Commits

Author SHA1 Message Date
Fabian Kosmale
ca4633f243 QAccessibleWidget: Remove pointless ZWSP in warning message
There doesn't seem to be reason for it to exist, and apparently it
causes compilation failures with icc.

Pick-to: 6.6 6.5 5.15
Fixes: QTBUG-116517
Initial-patch-by: Yorick Bosman
Change-Id: Ic2ed1d4318d522851278afa7f9791441af4fa709
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-08-30 14:40:45 +02:00
Anton Kudryavtsev
e1d00dce31 QTimer: avoid needless allocation
It was introduced in 4368179c37

Use QBAV to trim operation and then make QBA

Change-Id: I578305e5b5254c66052d8a11815aaa7209e629bb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-30 12:40:44 +00:00
Olivier De Cannière
f9dccd05d3 QLocale: Add Q_ENUM registration for some enums
Fixes: QTBUG-116527
Pick-to: 6.5 6.6
Change-Id: If04bd5f504b3a8a39a35b9ba7024cdc9eb2d154a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2023-08-30 09:04:23 +02:00
Timur Pocheptsov
a323f05c5e tst_QSslSocket: don't use deprecated RSA api
OpenSSL 3.1.2 can be configured with no-deprecated option, in this
case test fails to build.

Pick-to: 6.6 6.5 6.2
Change-Id: Icaf457f55fb001b632922856dbe4bbb5bdba220e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-29 20:15:05 +02:00
Anton Kudryavtsev
a6886859ad hpack: use QBAV more
While touching code, use constexpr more

Change-Id: I1c5d80f257f742a2999147c12340bba38e8b1e2f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2023-08-29 18:15:05 +00:00
Thiago Macieira
2c86903704 Doc: update QTimer::start() to say that it sets the interval
I thought it went without saying...

Fixes: QTBUG-116218
Pick-to: 6.6
Change-Id: I964c2b1e6b834feb9710fffd177c8338f8f1e618
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
2023-08-29 07:41:26 -07:00
Thiago Macieira
a93f02e3ad CMake: remove test for eventfd, replace with __has_include
This also removes the configure option and therefore makes the feature
not disable-able. Saves 350 ms of CMake time.

Change-Id: Ifbf974a4d10745b099b1fffd17775528767595d4
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-08-29 07:41:11 -07:00
Thiago Macieira
9c70e11711 QString: use qustrlen() in the QChar* constructor
Instead of a manual loop, which was there since at least Qt 4.5.1
(beginning of the public history).

Pick-to: 6.5 6.6
Change-Id: Ifa1111900d6945ea8e05fffd177dd3dfea450a67
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2023-08-29 07:39:03 -07:00
Thiago Macieira
bed203a6fc QVariant: de-duplicate customConstructShared()
Commit 3ad9f94ff2 (Feb 2023) moved it to
qvariant_p.h but commit 79ae79d05c
(authored Sep 2022 but committed June 2023) brought it back, probably by
accident due to conflict resolution during rebasing.

For some reason, no compiler in our CI complains about it, but ICX 2023
(based on unrelased Clang versions) did:

variant_p.h(101,23): error: call to 'customConstructShared' is ambiguous

Pick-to: 6.6
Fixes: QTBUG-116496
Change-Id: Ifa1111900d6945ea8e05fffd177eab656a2dc507
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-29 07:38:36 -07:00
Alexey Edelev
7e84a04563 Allow generating deprecated header files cross-module
If some header files were moved to another module within same repo it
makes sense to allow deprecating them. 'syncqt' now is able to detect
this kind of header files if the 'foreign' module is specified in
qt_deprecates pragma as part of the deprecated header name.

Pick-to: 6.5 6.6
Task-number: QTBUG-116483
Change-Id: I479ea60e71de112b67c281722600cd818aac7762
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-08-29 16:35:09 +02:00
Thiago Macieira
ac8fe3e645 QtNetworkSettings: narrow down hasIPv6 to specific OSes
It's currently conditional on two features used in QNetworkInterface.
The fact that QNetworkInterface misses those two features is probably
correlated to the failures observed on QNX, but is not the cause, so
this code was actually wrong and was possibly disabling the execution of
similar content on other OSes.

Therefore, this commit removes them and changes the conditional to
exclude the OS that is failing (QNX).

I find this situation unacceptable.  IPv6 support is mandatory for any
application after 2011-01-31, the date when IANA delegated its last IP
block, and definitely after 2019-11-25, when RIPE NCC ran completely
out. But since there's no SDK available for it, I'll grudgingly accept a
grandfathered exception because there's nothing I can do about it (I
tried to fix it; look at the change history of this patch set). I will
block any new OSes in that situation, though.

Task-number: QTBUG-116503
Change-Id: Ifa1111900d6945ea8e05fffd177ed6979c3e5916
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-29 07:20:51 -07:00
Thiago Macieira
fd924ab0b6 tst_QUdpSocket: move up the search for IPv6-capable interfaces
Let's do it in initTestCase(), where we're already searching for IPv6
addresses, instead of storing the information in a local static.

Pick-to: 6.6
Change-Id: Ifa1111900d6945ea8e05fffd177efb6a055aaa58
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-29 07:20:50 -07:00
Thiago Macieira
2e51fbf89a tst_QNetworkInterface: enable IPv6 detection for Windows
This was disabled in d0d1d74033, I guess
accidentally, by a too-wide conditional. The change the same commit
applied to QtNetworkSettings didn't make the same mistake.

I am also opportunistically updating the conditional to QT_CONFIG (I
missed this in 9d4579c1cd) and adding the
Linux-specific check, as the AF_NETLINK implementation does not rely on
getifaddrs() or if_nametoindex().

Drive-by fix indentation.

Pick-to: 6.6
Change-Id: Ifa1111900d6945ea8e05fffd177ef8fcb11b4e1e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-29 07:20:49 -07:00
Timothée Keller
695948fad0 Revert "Windows QPA: Change monitor index detection"
This reverts commit f4d6d04898.

Reason for revert: EDID serial numbers can be shared across monitors, so the move to EDID serial number for screen index detection does not work as intended,and breaks monitor detection.

Fixes: QTBUG-116499
Pick-to: 6.6 6.5
Change-Id: I6995b21788eb632e38eeef3a93492dbe0740da4a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2023-08-29 13:27:06 +00:00
Krzysztof Sommerfeld
44d274a29f Add 'thread_local' definition as it is not available in C mode for VxWorks
Task-number: QTBUG-115777
Change-Id: I42c54ac2a34817f3b0a9b687ee282b97123b78c9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-29 13:27:06 +00:00
Antti Määttä
1909e1e14c CTF: Add zstd support for streaming
Adds zstd support for CTF streaming. The client can select which
compression scheme to use in the trace request.

Change-Id: I21423eda2c8223fd5d23eb5adaf216eb61a25501
Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
2023-08-29 16:27:06 +03:00
Assam Boudjelthia
4721721f60 Android: fix handling of tree content uri with sub-document
Check for the index of last '/' from the non-encoded path.

Amends ea75e34d69.

Pick-to: 6.6 6.5 6.2 5.15
Change-Id: I3ef5d454a46c711a85fe7ef01ea9d3d93a2d574f
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2023-08-29 16:21:56 +03:00
Hatem ElKharashy
70869c1459 Add getters for QGraphicsFrameCapture
Add getters for path and prefix

Change-Id: Ifb243a0a15b8907e07bb821b7057bfbe0d350647
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
2023-08-29 11:35:28 +03:00
Thiago Macieira
19673b6cf9 tst_qdnslookup: fix the location of the opcode in the header
We were reading the wrong byte with the wrong shift count.

 4.1.1. Header section format

 The header contains the following fields:

                                    1  1  1  1  1  1
      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                      ID                       |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    QDCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ANCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    NSCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ARCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

This diagram is big-endian, so bit 0 is the MSB.

Change-Id: I964c2b1e6b834feb9710fffd177bb72110bb77e7
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-28 20:09:41 -07:00
Christian Ehrlicher
fd96e11bb1 QTextFormat: documentation fix
The QTextFormat description refers to setDirection() but this function
does not exist. The correct function name is setLayoutDirection() even
in Qt4.

Pick-to: 6.6 6.5 6.2 5.15
Change-Id: I2d1f49fba558874b5875d8d93ef61d6208134609
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-08-28 21:18:16 +00:00
Ievgenii Meshcheriakov
d865e3ef1d QDBusServer: Remove private slot
Use QMetaObject::invokeMethod() to schedule call to
QDBusConnectionPrivate::_q_newConnectioni() instead.
This also gets rid of a by name signal/slot connection.

Change-Id: I8725c4e3815c5580c5561bdddda0ab722b06346e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-28 22:03:03 +02:00
Ievgenii Meshcheriakov
f87d214000 QDBusPendingCall: Remove private slot
Use connection to a lambda instead. This makes
QDBusPendingCallWatcherPrivate obsolete and it is also removed.

Change-Id: I3d80ff2da25609c694322e5fef4231600ba346b4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-28 22:03:02 +02:00
Laszlo Agocs
80520c2f52 Enable QWidget::grab() with QRhiWidget in the widget tree
This involves reimplementing QWidgetPrivate::grabFramebuffer().
Widgets call this function whenever a texture-based widget is
encountered.

This implies however that we rename QRhiWidget's own, lightweight
grab function, grab(), because it kind of shadows QWidget's grab().
Switch back to grabFramebuffer() which is what QQuickWidget and
QOpenGLWidget both use.

Supporting QWidget::grab() is particularly important when grabbing
an ancestor of the QRhiWidget, because that has no alternative.
Right now, due to not reimplementing the QWidgetPrivate function,
the place of the QRhiWidget is left empty.

In addition, grabFramebuffer() is now const. This is consistent
with QQuickWidget, but not with QOpenGLWidget and QOpenGLWindow.

Change-Id: I646bd920dab7ba50415dd7ee6b63a209f5673e8f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2023-08-28 21:14:28 +02:00
Andreas Eliasson
41f032e358 Doc: Remove links to removed examples
These examples have been removed as part of the examples revamp project.

Pick-to: 6.6 6.5
Change-Id: I2a8237334a2acae2735c2dbd86004048d288896a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-08-28 18:55:12 +00:00
Anton Kudryavtsev
6cc1a84005 qnetworkrequest: reduce branches in loop
Unconditionally append separator and then chop last one

Change-Id: I33d004df07ce0c3c0076dc374ae7a2f8c413aeba
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-28 19:11:15 +03:00
Mikolaj Boc
5c5c9dd830 Main thread-proxy localStorage oprations in native WASM QSettings
localStorage is unavailable on workers. Operations will now get proxied
to the main thread instead.
This - among other benefits - makes tst_QSettings::testThreadSafety
pass.

Task-number: QTBUG-115509
Change-Id: Iebbe5e9f9069948f8728e0a82628cc082b30de12
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2023-08-28 17:53:29 +02:00
Elias Hautala
39a5ed4bdd Exclude some examples from Android build
Excludes  dnslookup, waitconditions, semaphores, cbordump, savegame,
convert, pingpong and complexpingpong examples from Android build
because of missing Qui and Quick dependenies.

Task-number: QTBUG-111933
Pick-to: 6.5 6.6
Change-Id: Ied01f62ee61a9220dcb44c13fda46f6a5e158293
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2023-08-28 16:00:45 +03:00
Piotr Wierciński
c95555e9f7 CI: Enable tests under auto/wasm on Wasm platform
Change-Id: Ib017f59b06cc5a7df73ad9f9a0c036670d6458b0
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-08-28 14:10:02 +02:00
Laszlo Agocs
735a864360 QRhiWidget: Use QRhiRenderTarget as the return type for renderTarget
There is no point in using the more specialized derived class
(QRhiTextureRenderTarget), even though that is what the rt always is.

None of the example and test code needs changes since relying on
QRhiTextureRenderTarget specifics is very rare in practice (now it will
need a static_cast), whereas in the majority of cases the return value
is passed on to other functions, for example, beginPass(), that take
a QRhiRenderTarget.

Change-Id: Ifaebb6320a156ec6a9013e72fede04e520aa9aaf
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2023-08-28 14:10:02 +02:00
Ivan Solovev
39b39f0d5f Update gradle to 8.3.0
The latest version of gradle was released on August 17, 2023

This update ignores most of the changes to gradle.properties file,
as we do not really use most of the variables which are set by the
upstream release.

Task-number: QTBUG-116236
Pick-to: 6.6
Change-Id: If66e1a264328b772e742473b859ed9240f77b9c6
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-08-28 14:10:02 +02:00
Laszlo Agocs
fa89173486 rhi: vulkan: Handle the Display P3 enum value
For parity with Metal. VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT is
mapped to kCGColorSpaceExtendedLinearDisplayP3 by MoltenVK.

Change-Id: Idba4ed56c029c1dea166e278ec6fc3f41e5ac471
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2023-08-28 14:10:02 +02:00
Laszlo Agocs
38b13e562b Reduce swapchain dependencies in QBackingStoreDefaultCompositor
Instead of passing around the QRhiSwapChain, pass the objects queried
from it. There is no point in tying the helper code to a swapchain
when all that can function with other (texture-based) render targets as
well.

Change-Id: I0b14853f537c2d641eb67815c10edfe72e958fdf
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2023-08-28 14:10:02 +02:00
Ahmad Samir
be0e81d493 Gui: fix CMake warning about unconditionally installed headers
qaccessible.h and qplatformaccessibility.h are supposed to always be
installed as public headers, regardless of QT_FEATURE_accessibility.
Their contents are wrapped in "#if QT_CONFIG(accessibility)", so
installing them even if QT_FEATURE_accessibility is not enabled
shouldn't be an issue.

The warning was about uncoditionally installed header files,
"CONDITION_INDEPENDENT_SOURCES", being in a
"qt_internal_extend_target(Gui CONDITION QT_FEATURE_accessibility"
call. Thanks to Alexandru for confirming my vague suspicions about the
issue in the bug report.

This amends commit 9f36ab1f8d.

Task-number: QTBUG-111785
Pick-to: 6.6
Change-Id: I5e5950f341d6729e15961d6fb3d3f8fe85007e38
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-08-28 15:10:01 +03:00
Safiyyah Moosa
3b187f14a1 Doc: Add \examplecategory to qtgui
Task-number: QTBUG-116068
Pick-to: 6.5 6.6
Change-Id: Ia0bdc2122434adac51b37ba2207a2b0b993cf19b
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2023-08-28 13:49:36 +02:00
Anton Kudryavtsev
3730212312 qnetworkrequest: port parseMatchImpl to QBAV
to save allocations, and use tokenize to avoid temp container

Change-Id: I2a43612b9d15538a93d4afd2c544714507141f0f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-28 14:49:36 +03:00
Anton Kudryavtsev
8db5896bbe qnetworkrequest: port parseHeaderName to QBAV
Change-Id: I39af8649468636d09db46aac770f5df7a3582b50
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-28 12:47:16 +03:00
Christian Ehrlicher
49e52e8dd6 SQLite: Update SQLite to v3.43.0
[ChangeLog][Third-Party Code] Updated SQLite to v3.43.0

Pick-to: 5.15 6.2 6.5 6.6
Fixes: QTBUG-116248
Change-Id: I039f572d21a8506faa5e29a48cdc7e40f990d946
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2023-08-28 05:23:05 +00:00
Anton Kudryavtsev
e3bb75340e qnetworkrequest: extract method
for If-Match and If-None-Match parsing

Change-Id: I523f5c639a01bafe6f25f13c0d25b3c62fa75282
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-27 15:09:13 +03:00
Anton Kudryavtsev
881260f9e4 qnetworkrequest: use new parseCookies overload
While touching code, replace split with tokenize

Change-Id: I3382ab6937892b0d6ba37591fbe3697a958c69bb
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-27 06:30:34 +00:00
Anton Kudryavtsev
d253156687 QAuthenticator: replace split with tokenize
to avoid needless allocations

Change-Id: I39eb90ef073db5359e7a559e33233b1e75b7461c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-27 09:29:45 +03:00
Anton Kudryavtsev
3273c03b51 QHostAddress::toString: use QSB more
Change-Id: Id7d9675c5a8dd09d0edaaa34a28a07fead068109
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-27 06:28:49 +00:00
Anton Kudryavtsev
98e7da8e32 QNetworkCookie: add QBAV overload for parseCookies
Rewrite impl to reduce allocations by QL1S::tokenize

Change-Id: I8d131ef6d7fe9a1a9daa438efea026392deb5e55
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-27 01:01:10 +03:00
Anton Kudryavtsev
5442ebe5e8 QNetworkHeadersPrivate::findRawHeader: use algorithms more
No raw loops

Change-Id: Ieeaff911f4c6f2c88d358fd1bc1250ffe75f5c6f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-26 21:47:15 +03:00
Anton Kudryavtsev
449f975566 QHttpNetworkHeader::headerField: port to QBAV
In QHttpNetworkRequest and QHttpNetworkReply this method is used with const char* literals, so no need to create QByteArray

Change-Id: Ifef7cb23aa434577455625077ef1adaab085c8ae
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-26 18:45:00 +00:00
Anton Kudryavtsev
a10c8647b3 qhttpnetworkreques: use range based for more
to improve readability

Change-Id: I4d4342f45296e2d6f439c6a74292c6c922e95194
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-26 18:35:40 +00:00
Ievgenii Meshcheriakov
a6027d4c59 QtDBus: Use invokeMethod accepting member functions with arguments
This makes the code slightly more readable.

Rename one overload of QDBusConnectionManager::doConnectToBus to
avoid using qOverload.

Change-Id: Id878e5baade539c3f748b5bf66a5aff726604b89
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-08-26 17:24:19 +02:00
Ievgenii Meshcheriakov
712149802b QDBusconnectionPrivate: Replace permanent connections with invokeMethod
Change-Id: Ife8d4495a98e34c8364293f3423b52f65ac187c4
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-26 17:24:13 +02:00
Fabian Kosmale
7f9d213765 moc: Drop support for function declaration without type specifier
Neither C++ nor modern C allow omitting the type (which used to be
equivalent to an "int" return type).
moc should not try to parse functions in C code, as they cannot be
meta-methods. So there is no point in supporting it.

Change-Id: I2b3a492988f29e8139311db64be110581cc1a4de
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-08-26 12:13:08 +02:00
Lorn Potter
91d3c48d3d wasm: remove 'shift' from being inputed on touchscreens
Fixes: QTBUG-116231
Pick-to: 6.6 6.5
Change-Id: Icbbe80877c2c21c3e82ba2c27909b6679b72e498
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2023-08-26 12:57:55 +10:00
Thiago Macieira
a0550df6d9 tst_QFile: extend virtualFile() to test in unbuffered mode too
Change-Id: Ifbf974a4d10745b099b1fffd1777acb752350375
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-25 15:54:15 -07:00