Commit Graph

42385 Commits (817e47fbcde21ab54d353efd647685159cb437a9)

Author SHA1 Message Date
Marc Mutz 817e47fbcd QBuffer: fix the setData() API re: int/qsizetype
The setData(ptr, n) overload was still taking the size as int.

Widen it.

Task-number: QTBUG-103525
Change-Id: If1d6d6404d62bbae5e0defea9a2115648c1fd5da
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2022-08-20 21:22:29 +02:00
Volker Hilsheimer 3be99799a6 Don't access QObjectPrivate::declarativeData unguarded
The QObjectPrivate::declarativeData member is stored in a union with
currentChildBeingDeleted. The QObject destructor always sets the
currentChildBeingDeleted member of the union. It also sets the
isDeletingChildren bool, which is the only way to find out which union
member we can safely access.

While the QObject destructor is deleting children and isDeletingChildren
is set, we must not access the declarativeData member of the union.

Add a test case that initializes the function pointers for the
declarative handlers and constructs a situation where an object
emits a signal while it is destroying children.

Fixes: QTBUG-105286
Pick-to: 6.4 6.3 6.3.2 6.2 5.15
Change-Id: Iea5ba2f7843b6926a8d157be166e6044d98d6c02
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-20 03:55:12 +02:00
Mikolaj Boc 503018ae07 Do not invalidate the entire window on window move on WASM
The invalidate on window move is redundant - the previous texture can
be reused for the window. Just request another refresh on the compositor
and don't update the window texture. Makes window moves smoother.

Pick-to: 6.4
Change-Id: Ied2922a000d3c8e6143e64d029154d74bc4f3480
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-08-20 02:51:34 +02:00
Mikolaj Boc 2a23652bbb Avoid image format conversion when drawing window nonclient area
This radically speeds up window resizing and dragging.

Fixes: QTBUG-105709
Pick-to: 6.4
Change-Id: I844601a5b139d21024db0c373482af18f350d0eb
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-20 01:16:41 +02:00
Alexey Edelev a2809d9ec1 Fix Multi-ABI builds when CMAKE_<C/CXX>_COMPILER_LAUNCHER contains list
Add list-escaping for CMAKE_<C/CXX>_COMPILER_LAUNCHER variables when
passing them to an external ABI-specific Android project.

Amends c7231177df

Pick-to: 6.3 6.4
Change-Id: I0c98eee6594c395dc6a37465a99ea32b1af39b84
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-08-19 23:53:11 +02:00
Mårten Nordheim 50f8a9578d QSslServer: Re-enable read notifications when a client times out
Otherwise new clients will not be handled when they try to connect

Amends 29a1fe72a0

Pick-to: 6.4
Change-Id: Ifff052d1bf27682df2782faa285a257c9b41d86f
Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2022-08-19 23:53:11 +02:00
Ivan Solovev 18f0484a0e Rename QT_DEPRECATED_WARNINGS_SINCE -> QT_WARN_DEPRECATED_UP_TO
The new name describes the behavior in a better way.

[ChangeLog][Build System] The QT_DEPRECATED_WARNINGS_SINCE macro is
renamed to QT_WARN_DEPRECATED_UP_TO. The old name is deprecated, but
is still recognized if it is defined during configuration and the
new name is not defined.

Fixes: QTBUG-104944
Change-Id: I320c033010dfab120db6922598454f95169657f7
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-08-19 23:52:05 +02:00
Ivan Solovev 3226c82740 Rename QT_DISABLE_DEPRECATED_BEFORE -> QT_DISABLE_DEPRECATED_UP_TO
The new name describes the behavior in a better way.

[ChangeLog][Build System] The QT_DISABLE_DEPRECATED_BEFORE macro is
renamed to QT_DISABLE_DEPRECATED_UP_TO. The old name is deprecated, but
is still recognized if it is defined during configuration and the new
name is not defined.

Task-number: QTBUG-104944
Change-Id: Ifc34323e0bbd9e3dc2f86c3e80d4d0940ebccbb8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-19 23:52:05 +02:00
Edward Welbourne b9baa42b62 Break out overflow-calculations into semantically-named inlines
Adding days to seconds or millis, or seconds to millis, involves
scaling one and adding the other, so has to check for overflow. The
std::integral_constant boilerplate and the complications of calling
mul_overflow() and add_overflow() rather hid what was going on, so
package them in inlines so that their calls are more intelligible.

Change-Id: I1e90de8fcb81eb84920868c7e4bd217ee353fc54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-19 14:29:22 +02:00
Sona Kurazyan acb2faf1fe qcompilerdetection.h: modernize the check for exception support
Use C++98's __cpp_exceptions to check if exceptions are enabled by gcc
and clang. Q_CC_GNU is always defined when Q_CC_CLANG is, so simplify
the condition and check only for Q_CC_GNU.

Change-Id: I1e15643ded9684f9e4e6eba1be9479665b526766
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-19 14:19:38 +02:00
Sona Kurazyan d773fbe0dc Move warning suppression macros from qglobal.h to qcompilerdetection.h
Task-number: QTBUG-99313
Change-Id: I54f1c48591b448a7b697720018e565a8c865a18b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-19 14:19:28 +02:00
Sona Kurazyan c201c5aedf Extract header qtclasshelpermacros.h
Move the class helper macros from qglobal.h and Q_DECLARE_SHARED from
qtypeinfo.h there.

Task-number: QTBUG-99313
Change-Id: I8c8b6241a76916176a48c09fbaf4effc87683770
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2022-08-19 14:19:24 +02:00
Tor Arne Vestbø 23ecaf897f Don't assume that QtFontFamily::ensurePopulated() will populate
The WASM platform populates a family asynchronously, so we can't
assume that a family will be populated straight after calling
ensurePopulated().

By adding a bool return to the function we can teach all the call
sites to behave as if the font family does not exist yet if the
font was not populated.

The WASM platform will then invalidate the font database when the
populated font's data comes in asynchronously, and then be ready
for another call to ensurePopulated, which this time will succeed
to populate the family.

Change-Id: I4e0e6211c10e5c1123beebd77aca28ac82ba7186
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io>
2022-08-19 14:04:28 +02:00
Tor Arne Vestbø a8b49216d0 freetype: Propagate font data from font database to engine if available
QFreeTypeFontDatabase allows registering fonts either by filename,
ending up with FT_New_Face, or via raw data, resulting in a
FT_New_Memory_Face. We then register the font with QFontDatabase
using a custom FontFile handle, where store the filename.

When then getting a callback to QFreeTypeFontDatabase::fontEngine
we would pull out the filename from the handle and call
QFontEngineFT::create with this filename.

This meant that if a font was registered with raw data, the font
engine creation would only work if there was a corresponding valid
file name/path. The only reason this works for addApplicationFont
is that QFreetypeFace::getFace() has a hard-coded workaround for
:qmemoryfonts where it uses qt_fontdata_from_index to get at the
original data.

Luckily for us QFontEngineFT::create already takes a QByteArray
data argument, which is plumbed to QFreetypeFace::getFace as well,
so all we need to do is fix the first part of the plumbing by
adding the original data to the FontFile handle and passing it
on in QFreeTypeFontDatabase::fontEngine.

This would potentially allow us to remove the hard-coded logic
for qmemoryfonts, but this has not been further investigated.

QPlatformFontDatabase also has another fontEngine overload that
takes a QByteArray directly, but this code path is only used by
QRawFont for now. A future improvement would be to unify some
of this logic.

Finally, it's unclear why the FT font database uses a custom
FontFile as a handle, instead of the original FT_Face that was
already created in addTTFile(). As a result of the current
approach we end up creating the face both when registering it,
and when creating a font engine for it. Investigating this is
left for later.

Change-Id: I7e01820a82d2664e8f34c3553bdcebe6a7afa078
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2022-08-19 14:04:27 +02:00
Sona Kurazyan 4842cc1768 Remove qtnamespacemacros.h and use qtconfigmacros.h instead
Change-Id: Ibae6e6e255c1bb1ee52839a051d585de81833bf9
Pick-to: 6.4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-19 09:16:11 +02:00
Sona Kurazyan 0329792602 Extract header qexceptionhandling.h from qglobal.h
As a drive-by, remove the unused include for std::bad_alloc from
qglobal.cpp.

Task-number: QTBUG-99313
Change-Id: I4b26b4413e6fe7ac3b1e285d0db5b81b429a4713
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-08-19 09:15:39 +02:00
Sona Kurazyan 7d22847371 Move QT_NO_EXCEPTIONS define to qcompilerdetection.h
Task-number: QTBUG-99313
Change-Id: I952267f18fd7ed001162aba7589c0040dbb9560e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-19 09:15:35 +02:00
Thiago Macieira 73dbc1fdf6 QMetaObject: export the invokeImpl inner method
For other modules that wrap invokeMethod and equivalent, like
qtwebchannel.

Task-number: QTBUG-105596
Change-Id: Ic6547f8247454b47baa8fffd170bbca806b04d8f
Reviewed-by: Arno Rehn <a.rehn@menlosystems.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-19 00:09:10 -07:00
Mikolaj Boc 86bb62f2e7 Use popup() instead of exec() for file dialog's context menu
There are seemingly no differences in how the menu operates and this
fixes WASM without asyncify hanging on menu open attempts.

Fixes: QTBUG-104963
Change-Id: If4364f08acb75947e03ecced85d77af9af0498ba
Pick-to: 6.4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-19 07:07:49 +00:00
Michael Weghorn 0131dbd2f9 a11y atspi: Drop commented out "say hello to d-bus" code
This looks like a remnant of previous WIP code and was
added in commit 8e1ff45e74
("Add Linux Accessibility Bridge").

Change-Id: I8fab2c3554af101ed134715a4d4a494bdb01fc98
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-19 04:43:01 +02:00
Michael Weghorn e6599bfa61 a11y atspi: Send correct D-Bus reply for GetAttributeValue
Only return a string for the attribute value
(an empty string if the attribute is not set).

The previous implementation was based on the incorrect
signature in the XML spec for the AT-SPI Text interface from
before the AT-SPI commit that removed the extra out params [1]:

    commit 8786849ce6e9914383aa766ff9ce7e00f5b2178d
    Author: Patryk Kaczmarek <patryk.k@samsung.com>
    Date:   Mon Sep 28 14:23:15 2015 +0200

        Fixed atspi_text_ functions

          * atspi_text_get_text_attribute_value
              Fixed dbus signature in _atspi_dbus_call function
              and add missing argument for string.

          * atspi_text_get_default_attributes
              Receiving return value by reference from hash table

        https://bugzilla.gnome.org/show_bug.cgi?id=755731

[1] 8786849ce6

Fixes: QTBUG-105752
Pick-to: 6.4
Change-Id: I66d3c484ecc4b469684635723242c915e4365e6a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-19 02:43:00 +00:00
Michael Weghorn c2289ca582 a11y atspi: Add missing closing tag in introspection XML
Pick-to: 6.4
Change-Id: I4497353ef33a10b94141b24b9cda3fa7ee3e17b9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-19 02:42:58 +00:00
Ilya Fedin b5457082bb QGtk3Theme: Support setting dialog parent on Wayland
This adds support for setting parent window for GTK dialogs on Wayland
using the new API added for portals

Change-Id: I29085c926ce4338ff2ad75728d566ec843d3aa5a
Reviewed-by: Liang Qi <liang.qi@qt.io>
2022-08-19 02:15:02 +04:00
Tatiana Borisova 6a3509baa2 Put code related to timezone functionality under QT_CONFIG(timezone)
Pick-to: 6.4 6.3
Change-Id: I0d1573dbb4ae4f9740fc19546950ae4316aa4c0c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-18 18:05:09 +00:00
Richard Moe Gustavsen 0250f9364f iOS: use NSProcessInfo to resolve timestamps in simulator builds
We currently build Qt for simulator using X86_64, even
on ARM based macs. This results in the simulator running
on ARM, while the app is running inside it using Rosetta.
And with this combination, the event.timestamp, which is
documented to be in seconds, looks to be something else, and
is not progressing in sync with a normal clock.

Sending out mouse events with a timestamp that doesn't follow
normal clock time will cause problems for mouse-, and pointer
handlers that uses them to e.g calculate the time between a
press and release, and to decide if the user is performing a tap
or a drag.

For that reason, we choose to ignore UIEvent.timestamp under
the mentioned condition, and instead rely on NSProcessInfo.
Note that if we force the whole simulator to use Rosetta
(and not only the Qt app), the timestamps will progress normally.

Fixes: QTBUG-105810
Pick-to: 6.4 6.3 6.2
Change-Id: Ib4e60593cac3230567ebc53d634f434fcefc98d0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-18 19:53:21 +02:00
Mikolaj Boc 1b4a792071 Make it clear that a hyphen may be used to log to stdout in qtest
Clarify that the hyphen is the actual character that one can use.
The way the documentation was written might have been misleading.

Pick-to: 6.4
Change-Id: I55a9ede9903a8ac5bd33d8e138b3a0a21a820406
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2022-08-18 07:57:15 +02:00
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
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 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
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
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 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