Amends 118f2210c6. That commit added
#ifdef Q_OS_UNIX
if (test == "assert"
|| test == "crashes"
|| test == "failfetchtype"
|| test == "faildatatype")
return; // Outputs "Received signal 6 (SIGABRT)"
#endif
Which duplicated 4 out of the 5 tests in the block:
#ifdef Q_OS_LINUX
// QEMU outputs to stderr about uncaught signals
if (QTestPrivate::isRunningArmOnX86() &&
(test == "assert"
|| test == "crashes"
|| test == "faildatatype"
|| test == "failfetchtype"
|| test == "silent"
))
return;
#endif
But as Linux is Unix, we never got to that second block for those 4
tests.
Pick-to: 6.6
Change-Id: I2b24e1d3cad44897906efffd177fb4b5507d190a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
These features are now only used for qnetworkinterface_unix.cpp, so they
aren't needed for Windows or for Linux with AF_NETLINK support. This
commit removes the last couple of placess outside of that file where
they were used (the qnativesocketengine_unix.cpp code looked stale
anyway).
These tests cost us approximately 1300 ms during CMake time. This commit
does not change that because the tests are checked even if the condition
has already been forced OFF by previous conditions.
[ChangeLog][Build system] The QT_NO_GETIFADDRS and QT_NO_IPV6IFNAME
macros are deprecated. On a standard Linux build, they will be defined
to 1, even if the system does support getifaddrs() and ifnametoindex().
Task-number: QTBUG-107248
Task-number: QTBUG-115705
Change-Id: Ifbf974a4d10745b099b1fffd17775822a1a6e55f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Initially, DH functions were deprecated, but when OpenSSL v3 was released,
they changed their mind (now they changed it again). OpenSSL must
be configured with 'no-deprecated'.
Pick-to: 6.6 6.5 6.2
Fixes: QTBUG-83733
Change-Id: I69f14929e91f5fc147f9297f6fff20674e81b6f1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
QString::fromJsString -> QString::fromEcmaString()
QString::toJsString() -> QString::toEcmaString()
For API naming compatibility with QByteArray::fromEcmaUin8Array()
Pick-to: 6.6
Change-Id: If6e2121e31e630d6728ed24e41d14b763f395aaa
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
When QWindowsUiaTextProvider::RangeFromPoint was
called with a point that is not over any
character, it was previously returning S_OK
and a nullptr for the text range.
This is contrary to what the
ITextProvider::RangeFromPoint documentation [1]
says:
> If this method succeeds, it returns S_OK.
> Otherwise, it returns an HRESULT error code.
and
> The property never returns NULL.
Therefore, setting pRetVal to NULL and returning
S_OK at the same time is problematic.
Return UIA_E_ELEMENTNOTAVAILABLE instead for that
case, and only return S_OK when actually
setting a valid text range provider as well.
Ideally, this should return an empty range for
the character that is closest to the given point.
That one could be identified by iterating over all
characters and calculating their distance to the
given point, but that would be too expensive.
[1] https://learn.microsoft.com/en-us/windows/win32/api/uiautomationcore/nf-uiautomationcore-itextprovider-rangefrompoint
Fixes: QTBUG-115801
Pick-to: 6.6 6.5
Change-Id: Ib08d02677935a45517c937613785f1e3f53ee032
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
at-spi2-core commit [1]
commit ed16f50e4930e32c29f80552eb698baa35b4677e
Author: Fushan Wen <qydwhotmail@gmail.com>
Date: Thu Jul 21 21:49:32 2022 +0800
Add `ATK_ROLE_PUSH_BUTTON_MENU`
This role allows to specify a button will open a menu. It's widely used
in Hamburger buttons, and Qt has QAccessible:ButtonMenu role for it.
added a new ATSPI_ROLE_PUSH_BUTTON_MENU role to AT-SPI,
so map to that from QAccessible::ButtonMenu when building
against a recent enough AT-SPI version.
Note that only a follow-up fix [2] for the above-mentioned
at-spi2-core commit increased ATSPI_ROLE_COUNT accordingly:
commit b0a062fd02c0cef5cc73b67aae282216856b8d8a
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Jul 13 14:15:33 2023 +0200
Increase ATSPI_ROLE_COUNT after ed16f50e4
commit ed16f50e4930e32c29f80552eb698baa35b4677e
Date: Thu Jul 21 21:49:32 2022 +0800
Add `ATK_ROLE_PUSH_BUTTON_MENU`
added a new role, so increase the role count
accordingly.
[1] ed16f50e49
[2] b0a062fd02
Change-Id: If7082c7478c95c6cc68d1c735de47933599f8d2b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Take a copy as the loop may end up calling QCoreApplication::postEvent()
which in turn could invoke unknown code that results in modifying the
QHash that is being iterated over.
Task-number: QTBUG-115803
Change-Id: I5f8aabb13ef7f60b470d0d3a986063775e787036
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
The container is childWindows in all cases:
- place(): queries the windows' geometries
- setChildActivationEnabled(): sets a bool member in subwindow->d
- subWindowList(): {pre,ap}pends windows pointers to a separate QList
Pick-to: 6.6 6.5
Task-number: QTBUG-115803
Change-Id: I0fdd5f22f29f085b71bf46f68bf9ec04c45c9317
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Take a copy of the member container as the loop may modify the container
(either by moving/reordering the Rearranger elements or by appending).
Pick-to: 6.6 6.5
Task-number: QTBUG-115803
Change-Id: Iaf891b29e9c7cdfdb3dc82e03ed94defb8d0cf4c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
QWidget already handles this, but it might be useful for non-Widget
object hierarchies as well, such as in Qt Quick.
The flag is opt in, and as QWidget already handles these events by
itself (without checking any flags), we assert that we don't end up
in this code path, instead of enabling it for QWidget. The latter
would mean refactoring the QWidget code, with possible regressions.
Docs and header comments have been updated to reflect that this
event is not widget specific. (This is an issue with other events
as well, that are documented to say "widget", since they came
from a time when there was only QWidget, but nowadays apply to
e.g. QWindow as well. That's something for another fix though).
Change-Id: Ib71962131d6011c17dcce8c01bd8adcdaa58d798
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Unconditionally append separator and then chop last one
Change-Id: I33d004df07ce0c3c0076dc374ae7a2f8c413aeba
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
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>
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>
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>
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>
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>
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>
to save allocations, and use tokenize to avoid temp container
Change-Id: I2a43612b9d15538a93d4afd2c544714507141f0f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>