Commit Graph

57598 Commits

Author SHA1 Message Date
JiDe Zhang
a6b55b3c46 Allow specify distance to plane for QTransform
The default camera to plane distance is 1024, when rotating a big image
along the x or y axis, some areas of the screen may move above the
camera, causing the rotation to fail. A new rotation interface has been
added to allow users to specify the distance from the camera to the
plane themselves when rotating the QImage. Also, this support has been
added to QMatrix4x4::projectedRotate.

[ChangeLog][QtGui][QTransform] Added overloads to rotate() and
rotateRadians() that allow specifying of the distance to the rotation
plane.

Fixes: QTBUG-105088
Change-Id: I81f629916ddd9b6ab84e0282191e4284a88a85f5
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2022-08-18 10:40:42 +08:00
Volker Hilsheimer
371214dea7 Remove network dependency for tests with UNC paths
Windows VMs are provisioned with shared folders that are available as

\\${COMPUTERNAME}\testshare(writable)

so we don't need to access a remote SMB server over network anymore just
to test whether our string-parsing code handles UNC paths correctly.

Add a QTest::uncServerName() helper function to the shared filesystem.h
header and use that instead of QtNetworkSettings::winServerName. The
latter is now only used in tst_NetworkSelfTest::smbServer().

Pick-to: 6.4
Change-Id: Id0da66369ad0f4a980d612de2a31a391f1192253
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-17 23:48:00 +02:00
Mårten Nordheim
1ee75e4740 QSslServer: Make sure maxPendingConnections applies to all sockets
Not just the ones we added to the pending sockets list

Pick-to: 6.4
Change-Id: I0a0016fe39df7ca2fc3f0c4e4111195bc6d90198
Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-17 21:55:19 +02:00
Mårten Nordheim
29a1fe72a0 QSslServer: Implement handshake timeouts
If a client doesn't send any data then we would leave the socket open
for as long as it needed, wasting resources. Add timeouts to limit the
amount of time this can happen for.

Since there is a limit on number of sockets that the server will have
queued, having idle sockets stick around forever is a vector for ddos.

Pick-to: 6.4
Change-Id: Ida6251c92c625eeadf2065861b840b14255654b8
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-17 21:55:19 +02:00
Mårten Nordheim
1b68e0b717 QSslServer: Check that first byte is ClientHello
SecureTransport ignores any content that comes in until it is large
enough to be a handshake. So a plaintext client may be left hanging
while it is waiting for a response.

Pick-to: 6.4
Change-Id: I501ae61d89d516765c7ba5f0d916d9246fde5d4d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2022-08-17 19:55:18 +00:00
Mårten Nordheim
fb4123f36a QSslServer: pass 'this' as a context to connections to socket
Then we don't have to do a 'global' disconnect() on the socket object
just to disconnect the QSslServer from the socket.

Pick-to: 6.4
Change-Id: Ie3c9680db2717e21a0c548c74374a58d533534fe
Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2022-08-17 21:55:18 +02:00
Alexandru Croitor
9e3e167223 CMake: Add simple widgets qmake iOS build test
Build a simple widgets qmake project when targeting iOS in the CI.
This ensure we don't introduce basic regressions in the .pri / .prl
file generation.

Make sure to target the ios simulator, so we don't require any
code signing or provisioning profiles.

Pick-to: 6.4
Fixes: QTBUG-96058
Change-Id: I1a5564e838a5ce3cac89a37a5a4ddee74d3400f3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-17 21:21:57 +02:00
Alexandru Croitor
e76286fd4b CMake: Add function to create qmake build tests
Uses CMake's add_test and fixtures to call qmake and make,
thus allowing to create tests that ensure that building qmake projects
works.

Pick-to: 6.4
Task-number: QTBUG-96058
Change-Id: I6f03c4389896f9571bb4f9551f93295075c3d8e1
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-17 21:21:57 +02:00
Alexandru Croitor
459f714662 CMake: Add COMMAND_ECHO option to _qt_internal_create_command_script
Pick-to: 6.4
Change-Id: I7884855b7934c1f65d8699759408f5c89632ba11
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-17 21:21:57 +02:00
Alexandru Croitor
edb88a3b29 CMake: Move _qt_internal_create_command_script to a public file
It's needed for creating qmake build tests.

CMake / CTest has a limitation of not allowing to create single-config
tests when using a multi-config generator using the add_test(NAME)
signature.

Using add_test(NAME) forcefully creates per-config tests, which means
that it's not possible to just run ctest to execute tests, without
specifying a -C parameter, which we do in the CI.

qmake tests need to use the add_test(NAME) signature
to specify the WORKING_DIRECTORY option.

Because of the above limitation, a work around is to not use the
add_test(NAME) signature, but instead delegate the working directory
assignment to a generated cmake script, which
_qt_internal_create_command_script can already do.

Pick-to: 6.4
Task-number: QTBUG-96058
Change-Id: I6f439165994671724157f0edb7a71e351271e329
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-08-17 21:21:57 +02:00
Michael Weghorn
5145d3899d a11y atspi: Support AT-SPI table cell interface
QAccessibleTableCellInterface provides everything
needed to support the AT-SPI TableCell interface [1].

Therefore, expose that AT-SPI interface and implement
handling of the corresponding methods.

[1] https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/master/xml/TableCell.xml

Fixes: QTBUG-104793
Change-Id: Ie7068c029eaf911186daf3956f11cfd4eb2800a6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 18:12:50 +02:00
Sona Kurazyan
2df6fd5ea0 CMake: fix the sorting order in CMakeLists.txt
Change-Id: I27c2140102bdf4831915337002974ab1987e2426
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
2022-08-17 17:02:27 +02:00
Marc Mutz
f40679dcdd QAbstractFileEngine: port indexed to ranged loop
... fixing a int/qsizetype mismatch in the process.

As a drive-by, replace SESE with an early return.

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-103525
Change-Id: I961728ba818c4cb43c0e2c9056c70c8f37ad042e
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2022-08-17 17:02:27 +02:00
Marc Mutz
634a76eb32 [docs] QAbstractItemEngine: fix signature of seek()
It takes qint64, not int.

This is not public documentation, so not picking to older branches.

Task-number: QTBUG-103525
Change-Id: I4303af326bb6054ae0cccd87aa337354ad11209b
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2022-08-17 17:02:27 +02:00
Alexandru Croitor
74d6ca2768 CMake: Allow building and running tests targeting iOS in other repos
Allow building iOS tests in other repos, if DisableTests is not
specified.

The reordering in coin_module_build_template_v2.yaml is done to match
the same order that's in coin_qtbase_build_template_v2.yaml.

The change in coin_module_test_template_v3.yaml is just cosmetic.

Amends 80705298ca

Pick-to: 6.4
Task-number: QTBUG-96056
Change-Id: Ic69ef938cb9319fa9a0eb063046b009de34bebc1
Reviewed-by: Toni Saario <toni.saario@qt.io>
2022-08-17 17:02:27 +02:00
Sona Kurazyan
e684c25b85 QDomDocument: deprecate old setContent() overloads in favor of new ones
And use the new overloads in examples and tests.

[ChangeLog][QtXml][QDomDocument] Deprecated the old setContent()
overloads in favor of the new ones that take ParseOptions and
ParseError.

Task-number: QTBUG-104507
Change-Id: I61b37eba2fe3002c03bddc90f6877676d539f7ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-17 17:02:27 +02:00
Joerg Bornemann
2f7a78cd7b CMake: Allow for CMAKE_INSTALL_BINDIR set to . in deployment API
Esp. on Windows, it can be desirable to deploy an application and its
DLLs directly in the install prefix, without a bin directory.  To do
that, one must set CMAKE_INSTALL_BINDIR to ".", but that resulted in a
faulty prefix entry in the generated qt.conf.

Check for this case when generating qt.conf to write the correct prefix.

Fixes: QTBUG-105583
Pick-to: 6.3 6.4
Change-Id: I0e8295c70b48b991c19f58f6b3f2ed132112dd29
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-08-17 17:02:26 +02:00
Michael Weghorn
f350956548 a11y atspi: Forward change of focused state
The focused state exists in both, Qt
(QAccessible::State::focused) and AT-SPI, so forwarding
changes to that state is straightforward.

However, so far, changes to the focused state in a
QAccessible::StateChanged event were just ignored
and not forwarded to the AT-SPI layer.

While announcing focus changes to Qt's own widgets works
without that because it uses events of type QAccessible::Focus
instead of QAccessibleStateChangeEvent with the focused
state set, this is not exactly the same and just ignoring the
focused state in QAccessible::StateChanged events e.g. turned out to
be one cause for the Orca screen reader not announcing UI elements
when they received focus in the Qt-based UI variant of LibreOffice,
which uses QAccessible::StateChanged with the focused flag
set (s.a. LibreOffice commit [1]).

[1] https://git.libreoffice.org/core/commit/8c3e8af0e60865ec6d38e2117efdb4ed2f10a20c

Change-Id: If226af28960048c56af32979477605d6860e30e9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 15:02:26 +00:00
Ilya Fedin
64e6233252 Remove unneeded QWindow from QGtk3Dialog
It seems QWindow here is only for making the dialog modal,
but QDialog already handles that and this makes two modals
block each other depending on the order they created with

Task-number: QTBUG-98988
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I6847cfab480395f62eaa0ebf79acf8b024192178
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2022-08-17 19:02:26 +04:00
Michael Weghorn
e97b9ddcb0 a11y atspi: Drop unused forward-declaration QSpiAccessibleInterface
Change-Id: I9f9212ae1af2bde603e6bb1f8f7e606031aa3784
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 15:02:26 +00:00
Michael Weghorn
ee35afc117 a11y atspi: Drop 'if (0)' branch
Change-Id: Ie175405298ed03752b48a8b74d23bd5f1b0b148e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 17:02:26 +02:00
Mårten Nordheim
c684b8e939 QAuthenticator: Fix crash when using NTLM / Negotiate
With NTLM/Negotiate we delete the context used to generate replies once
we get SEC_E_OK. Due to some faulty logic in the http backend we could
end up trying to generate another response. Qt would then pass
references to some offsets of nullptr into the API calls causing it to
crash. Add some sanity checks before the "sspi continue" calls to make
sure this won't happen, and update the condition in the http
backend to check that we have not already sent our credentials.

As a drive-by: correct the initialization of the handles to use
SecInvalidateHandle instead of memset to 0.

Pick-to: 6.4 6.3 6.2 5.15
Fixes: QTBUG-102359
Change-Id: I884ff8fc70609fe8746b99a1d56eeafcda9d2620
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-17 15:14:52 +02:00
JiDe Zhang
90ad4d10ef xcb: Propagate a few theme hint changes to QGuiApplication
When the xsettings value of relevant style hints is changed
we propagate it to QGuiApplication via handleThemeChange.

Change-Id: I316c90e776f52e92c1249aa4e1fcb3ced331f8f5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 21:14:52 +08:00
Michael Weghorn
7594e8ca4d a11y atspi: Send D-Bus reply for "GetCaption" in expected format
Just like for the "GetSummary" case, the argument in the
reply for this AT-SPI table method needs to
be wrapped in a variant.

Fixes this warning from the output of the client side
using libatspi:

> (accerciser:181933): dbind-WARNING **: 11:50:36.394: atspi_dbus_get_property:
> expected a variant when fetching Caption from interface org.a11y.atspi.Table; got (so)

Fixes: QTBUG-105520
Pick-to: 6.4 6.3 6.2
Change-Id: I18167359e4cd3bb14a94289ac7481f9e39a18ad0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 10:49:36 +02:00
Michael Weghorn
a32a3aa388 a11y atspi: Add support for ATSPI_COORD_TYPE_PARENT
So far, only screen coordinates (`ATSPI_COORD_TYPE_SCREEN`)
and coordinates relative to the widget's top-level window
(`ATSPI_COORD_TYPE_WINDOW`) were supported.

In at-spi 2.30, a third coordinate type, describing
coordinates relative to the widget's immediate parent,
was added: `ATSPI_COORD_TYPE_PARENT` (commit: [1])

This commit adds the handling to convert to and
from that coord type as well and unifies the
existing handling to convert to/from screen coordinates
by introducing two static helper methods
(`AtSpiAdaptor::translateToScreenCoordinates` and
`AtSpiAdaptor::translateFromScreenCoordinates`) and
making use of those wherever conversion needs to
be done.

In addition, also add a check to only handle
requests using a coordinate type that is one of those
that is actually supported instead of returning
incorrect values (for the case that new coord types
should be introduced in AT-SPI in the future).

[1] 737c9853b6

Fixes: QTBUG-105313
Change-Id: Ia8752bd6a35328cc2de33ecad08f2964735f41ae
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 10:48:59 +02:00
Morten Sørvig
4d6decf628 wasm: always build asyncify tests for eventloop_auto
Add a runtime test for asyncify availability; skip tests
if asyncify is not available. Add new build target which
builds with asyncify enabled.

Change-Id: Idaeff0a24aa01525927b012af2a0ba135c7839c3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:52:46 +02:00
Morten Sørvig
ad0cb1f32d wasm: add "skip" support to qtwasmtestlib
We're not looking to skip faulty tests, but there are cases
where we would like to indicate that a test function exists
but can't run because some precondition is not met.

Pick-to: 6.4
Change-Id: Ifaaafcfa7a55beaaf56d8b25fabbe3dc2566350f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
2022-08-17 04:52:46 +02:00
Morten Sørvig
83cf2985e9 wasm: streamline the exec warning
State the problem and suggest possible solutions for the
app developer.

Pick-to: 6.4
Change-Id: I0484c4eb31020ec0016005f43f910f32a319b850
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:52:46 +02:00
Morten Sørvig
f347682fd5 wasm: include asyncify support unconditionally
Emscripten's option for enabling asyncify (-sASYNCIFY) is a link-time
option, which means there is no requirement to have a separate asyncify
build, at least for static builds.

Replace the current QT_HAVE_EMSCRIPTEN_ASYNCIFY compile-time option
with a run-time option which checks if the asyncify API is available.

Keep support for configuring with "-device-option QT_EMSCRIPTEN_ASYNCIFY=1"
for backwards compatibility and for the use case where want asyncify
support to be on by default for a given Qt build.

Enable asyncify for the asyncify_exec example.

Pick-to: 6.4
Change-Id: I301fd7e2d3c0367532c886f4e34b23e1093646ad
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:52:46 +02:00
Morten Sørvig
238e90cd58 wasm: remove dead qt_asyncify_yield() code
The call to this function was behind a broken #define and
was never enabled. It also does not work, so remove it.

This means that calling processEvents() in a loop (as opposed
to calling exec()) most likely does not work either, which
is something we want to revisit.

Pick-to: 6.4
Change-Id: I90802a69d3a48e7f2b5d0b657d89452c09d9571a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:52:46 +02:00
Michael Weghorn
fa0e24b641 a11y atspi: translate coords for GetOffsetAtPoint the right way
The coordinate type for "GetOffsetAtPoint" describes the
coordinate type of the input coordinates and
`QAccessibleTextInterface::offsetAtPoint` expects the
coordinates in screen coordinates.

Therefore, if window-relative coordinates are given,
the screen coordinates of the window need to be added
(not subtracted) to the window-relative coordinates of the point
in order to calculate the screen coordinates of the point.

Fixes: QTBUG-105281
Pick-to: 6.4 6.3 6.2
Change-Id: I5517335c0c0d6a47b8c45c7e4f8f8b5a91f0fcd7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:46:59 +02:00
Michael Weghorn
49c966bc85 a11y atspi: Take dialog into account as top-level window
Since a dialog is also a top-level window, it should be taken
into account when trying to find the accessible's top-level
window, relative to which the position will be calulated for
`ATSPI_COORD_TYPE_WINDOW`.

Fixes: QTBUG-105042
Pick-to: 6.4 6.3 6.2
Change-Id: I74fae096fd886bab04187c122f268c26c91b86ab
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 02:46:59 +00:00
Michael Weghorn
d40dacf5f4 a11y atspi: Fix incorrect use of x instead of y position
Fixes: QTBUG-105031
Pick-to: 6.4 6.3 6.2
Change-Id: I26fcbfbd5a90982b87dda89b2880efe937f099d8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:46:59 +02:00
Jaroslaw Kubik
e16f742479 Provide a native interface instance in minimal platform plugin
The minimal platform plugin does not have any native APIs it could offer
through that interface, but needs to provide an instance anyway. A lot
of code within Qt assumes that a native interface is always available
and does not check the pointer value, which leads to segfaults when used
with the minimal plugin.

Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I625bd95afd49872cff3a34b29ceb0ffbbcd39db7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-17 04:46:59 +02:00
Alexandru Croitor
64b84977eb qmake: Fix tool paths generated for androiddeployqt json file
They should contain the executable suffix .exe when
androiddeployqt is run on Windows, because androiddeployqt does not
add the suffix itself when the tool paths read from the json file.

Amends 4fc14b1933
Amends 176136ce60

Pick-to: 6.4
Fixes: QTBUG-105133
Fixes: QTCREATORBUG-27868
Change-Id: I8c5bac2fa6c82d122f8a70c5ff2a561298327a34
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-08-17 04:38:43 +02:00
Alexandru Croitor
cf3535fdf2 CMake: Add manual test for various iOS asset handling
Includes:
- setting a custom Info.plist
- Bundling non-image assets
- Bundling image assets using asset catalogs
- Bundling app icons
- Bundling a launch screen

Projects added for both qmake and CMake.
The executable uses testlib to check that non-image assets,
icons and asset catalogs were successfully bundled upon deployment
to a device.

Task-number: QTBUG-104519
Change-Id: Iaab6112e31e1098dcd2548e18b58bed5b64e6f83
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-17 01:05:45 +02:00
Dimitrios Apostolou
753c352af0 Unblacklist tests that are no longer flaky
Couldn't reproduce flakiness on OpenSUSE KDE/X11 and can't see any
history of flakiness in the last 3 months in our testresults database.

Task-number: QTBUG-62967
Task-number: QTBUG-63262
Change-Id: Id50291798eda922283e04b45205ae9105e9fdab2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-17 01:05:45 +02:00
Dimitrios Apostolou
7524a36a26 Stabilize test by not activating window
Window activation is not working reliably on X11 when combined with
X11BypassWindowManagerHint, see QXcbWindow::requestActivateWindow().

The test itself counts repaints, so qWaitForWindowExposed() shouldn't be
needed.

This way we don't need to QSKIP() the test if window activation fails.

Fixes: QTBUG-98921
Change-Id: I849b7261c757fb7cbcde73f11bbe1a74a862cb9c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-17 01:05:45 +02:00
Dimitrios Apostolou
74f3bc263a Update BLACKLIST for tst_qgraphicsview
Removed entries that do not reproduce on OpenSUSE and that are no
longer flaky in our CI according to our testresults statistics database.

Adjusted entry for resizeAnchor testcase which has been seen flaky in
RHEL-8.4 and cursor2 which is very flaky on macOS.

Task-number: QTBUG-105249
Task-number: QTBUG-105247
Change-Id: I3e258f81d6bbf540a4b3dec763fdfd4bdc511847
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-17 01:05:45 +02:00
Dimitrios Apostolou
228ee98025 Unblacklist tests that are no longer flaky
Can't reproduce in OpenSUSE, and no flakiness has been seen in the past
6 months in our testresults statistics database.

Task-number: QTBUG-63260
Change-Id: I465aa4b9f82726e9685f64b0dc235d3235c4bd9c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-17 01:05:44 +02:00
Dimitrios Apostolou
dff9fa2ee1 Fix testcase that fails when run individually
Executing the tst_qgraphicsitem::sorting() testcase individually always
fails on my KDE/X11 desktop. The window never seems to have focus and
the call to qWaitForWindowActive() returns error after a few seconds.

It seems qApp->setActiveWindow(&view) never succeeds in giving focus to
the window containing the widget.

Fixes: QTBUG-105221
Task-number: QTBUG-74760
Change-Id: I148dab09d0fb592376b3902e4ed10799f9a52274
Done-with: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2022-08-17 01:05:44 +02:00
Thiago Macieira
1022922037 QSemaphore: Fix warnings about shift exceeding size on 32-bit
error: right shift count >= width of type [-Werror=shift-count-overflow]

Pick-to: 6.4
Fixes: QTBUG-105687
Change-Id: Ic6547f8247454b47baa8fffd170bd9cd0e2a8ca3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2022-08-16 16:05:25 -07:00
Thiago Macieira
e163c49435 qdbusxml2cpp: remove the old "In"-for-signal compatibility code
This led to an infinite recursion in case the annotation was completely
missing. Instead of trying to fix that, I'm simply implementing the
"### Qt6" request from c62f717226 .

[ChangeLog][qdbusxml2cpp] Removed the old compatibility code that
accepted "In" annotations for signal argument names, introduced in Qt
5.8.

Pick-to: 6.4
Fixes: QTBUG-104722
Change-Id: Ie4bb662dcb274440ab8bfffd1709bfc3daf0846d
Reviewed-by: David Faure <david.faure@kdab.com>
2022-08-16 16:05:25 -07:00
Thiago Macieira
478b1afbe1 qdbusxml2cpp: be consistent in the annotation suggestion
Some lines were suggesting the method name as context, while most of the
others were the parameter or property name.

Pick-to: 6.4
Change-Id: Ie4bb662dcb274440ab8bfffd1709c0a71abc27dc
Reviewed-by: David Faure <david.faure@kdab.com>
2022-08-16 16:05:25 -07:00
Tor Arne Vestbø
ed631011fa Rename QPlatformFontDatabase::handleAvailableFontsChanged()
The function name was easy to mistake for a function you should call
after adding fonts via e.g. registerFont or registerFontFamily, but
in reality it's meant to be used when the platform font database
knows that fonts have changed in a way that needs a full populate.

Pick-to: 6.4
Change-Id: I4a897944aaa5df891562f729440b5d98b54f61e0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2022-08-16 17:12:44 +00:00
Mikolaj Boc
1007964f2d Maintain the window z-order properly in wasm compositor
The old stack structure used to keep track of windows has been improved
to conform to the actual windowing assumptions: there shall be one root
window, which is always at the bottom. The first created window
immediately becomes the root window. Should the root window be removed,
all windows are non-root, i.e. any of them can become the top-level window

Fixes: QTBUG-105094
Pick-to: 6.4
Change-Id: Ic553244fa9f5bc3ee590b702935e66cfc62d5f8f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-08-16 16:08:38 +00:00
Laszlo Agocs
878328c6ab rhi: Enhance internal docs about buffer and image load/store
Comparing the backends revealed that one cannot expect that
exposing a storage buffer or a texture to a shader with
bufferLoad, imageLoad, bufferStore, imageStore, etc. will
always be functional in any graphics and compute pipeline
stage. In fact the only place where this is universally
supported are compute shaders.

In other shaders some backends will not expose the resources
at all, e.g. because in D3D11 unordered access views (for a
buffer or image used with load/store) have limitations on the
API level, whereas others may have runtime limits, e.g. with
OpenGL ES an implementation may just say
GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS is 0 meaning no SSBOs in
vertex shaders. (apparently the case on some embedded GPUs,
presumably due to the tiled architecture, e.g. on Mali)

So for now add a note to all the relevant
QRhiShaderResourceBinding functions.

It should be possible to make it work with fragment shaders
to a degree at least, but for D3D we then have to deal with
OMSetRenderTargetsAndUnorderedAccessViews and some remapping
of binding points, whereas elsewhere they may be issues with
missing or incorrect barriers. So do not go there now.

Change-Id: Ib18949e0184626a9abf5bb72c6ef72bc1cb2e1fa
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-16 18:08:38 +02:00
Richard Moe Gustavsen
b90fd5f707 doc: QEventPoint::timeHeld is reported in seconds, not milliseconds
Pick-to: 6.4 6.3 6.2
Change-Id: I71b6fdffe7f7177069c8fe3989e8547102a7e3a6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-08-16 16:00:15 +02:00
Laszlo Agocs
e025b07c64 vkkhrdisplay: Create the platform window always
No matter what the surface type was. We only support VulkanSurface, so
if the type is something else, then a a qWarning is in order, but instead
of returning nullptr (which will almost certainly cause a fail or crash
in some form), we can just carry on normally. The resulting window
will not be renderable from the application of course, but that is
not always needed in fact, plus failing gracefully is nicer.

The tst_qrhi autotest can now be run on the RPi4 also with
-platform vkkhrdisplay. While there are some odd messages occurring
from Mesa and co., the run now completes normally, with no failures.

Change-Id: I77bd249096aede8e05458559458581d702054540
Pick-to: 6.4
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-16 16:00:15 +02:00
Laszlo Agocs
2de14b81a9 rhi: tst_qrhi: Check for OpenGL cap on the platform
Running tst_qrhi -platform eglfs will pass on RPi4 / Mesa 22.
This does not test Vulkan of course since the platform plugin cannot
create a Vulkan instance.

Running tst_qrhi -platform vkkhrdisplay will enable Vulkan but will
still try OpenGL since the autotest does not query the platform
integration about OpenGL support. Make this nicer by skipping most of
the GL test if the platform integration we have cannot handle OpenGL
stuff anyway.

For some tests the data-driven approach has to be removed since doing
QFETCH without any rows will crash. These two OpenGL-specific tests
now check OpenGL support directly and QSKIP if needed.

While we are at it, fix up the Vulkan instance API version as well.

Pick-to: 6.4
Change-Id: I2891c04540bc2dfd0ccf475629bd23542bff15f5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-16 16:00:15 +02:00