Commit Graph

57333 Commits

Author SHA1 Message Date
Mikolaj Boc
fb8832de9c Make the promises js-less using a newly introduced thunk pool
Since we cannot rely on the clients specifying a suitable CSP that will
not forbid execution of js injections, we have to refrain from using
any explicit <script> elements. To keep the promise system working, a
thunk pool was introduced which keeps track of a limited pool of promise
callback exports. In case the resources are busy, pending calls are
enqueued. This works since the JS Promise.then/catch/finally always fire,
even on ready/failed promises.
As the situation of full thunk pool allocation is unlikely to happen
en masse IRL, the solution should not adversely affect the performance.
Heavy unit tests were created to confirm the solution works as expected.

Task-number: QTBUG-99611
Change-Id: I0e6982d4ee76a4263b59e72b004b3ff2f167e4df
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-07-07 06:28:13 +02:00
Ilya Fedin
dbe858bf80 QGtk3Theme: Respect xcb_xlib config option
Pick-to: 6.4 6.3 6.2
Change-Id: I4b01a694e8a13a6f009296d8ccfa8f8eb21043e4
Reviewed-by: Liang Qi <liang.qi@qt.io>
2022-07-07 02:06:14 +04:00
Ilya Fedin
3d45f23b02 QGtk3Theme: Ensure gtk uses the same windowing system as Qt
Fixes: QTBUG-69354
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I254c5bf98bc3b2cc2577159e475a2105438bb96b
Reviewed-by: Liang Qi <liang.qi@qt.io>
2022-07-07 01:48:59 +04:00
Allan Sandfeld Jensen
f1a3069afb Unify QFontEngine::boundingRect for coretext and Windows
They were both using the same algorithm, and also both had the same
mistake of not handling left-bearing. This unifies them and adds left
bearing handling.

Change-Id: Id06392abde0bfeb8b49faf4632082b2e25352497
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2022-07-06 20:46:53 +02:00
Joerg Bornemann
d754e43721 Make WrapOpenSSLHeaders an optional dependency of the OpenSSL plugin
When configuring Qt statically with OpenSSL support on macOS,
configuring a user project would fail, because WrapOpenSSLHeaders could
not be found.

Configuration fails, because we don't record OPENSSL_ROOT_DIR anywhere,
and WrapOpenSSLHeaders is a required dependency of the OpenSSL plugin.

Make the WrapOpenSSLHeaders dependency optional like WrapVulkanHeaders
for QtGui.

Note that when Qt is statically configured with -openssl-linked on
macOS, configuration of user projects will still fail like described
above.

Pick-to: 6.4
Fixes: QTBUG-96283
Change-Id: I0893e18767387ea849c7e5661f5421b71e3f64ab
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-06 18:41:32 +02:00
Sona Kurazyan
a6acb2453f QRegularExpression: fix a typo in docs
Pick-to: 6.4 6.3 6.2
Change-Id: Id7db7d0b833fc6b6000a04ff7ee8a5a7d164d7de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-06 18:41:32 +02:00
Sona Kurazyan
ed715cf8a7 Porting guide: recover the missing section title
4cc1d81d79 accidentally removed the
section title, recover it.

Pick-to: 6.4 6.3 6.2
Change-Id: Idb4e5732f181505b8b9eebb1bf3635741a084657
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-06 18:41:32 +02:00
Sona Kurazyan
6ad481c31f Revert "QFutureCallOutEvent: de-export again"
QFutureCallOutEvent is used externally, so it needs to be exported.

This reverts commit 3141a13b2a.

Fixes: QTBUG-104732
Pick-to: 6.4
Change-Id: I82c9e7414192ee948f78259bd74a404691a7805a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-07-06 18:41:31 +02:00
Ilya Fedin
edee40a179 QGtk3Theme: Use GDK X11-specific API only built with X11
And respect xlib config option

Pick-to: 6.4 6.3 6.2
Change-Id: I596097259ed008357e739c3cfe41ab2fc4e18db7
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2022-07-06 20:41:31 +04:00
Samuli Piippo
6eda4919f2 rcc: teach qmake not to use zstd when not available
The zstd feature might have different values between the host
and target, in which case qmake must tell rcc not to use zstd
when the feature is disabled.

Amends 14546d1816

Fixes: QTBUG-103794
Pick-to: 6.4 6.3 6.2
Change-Id: Ia0378742a50e2a85f59985dea2506d3dda5f28e8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-07-06 19:41:31 +03:00
Morten Sørvig
1c0a56a2f3 Apply ScaleFactorRoundingPolicy to QT_SCREEN_SCALE_FACTORS
QT_SCREEN_SCALE_FACTORS in many cases set on behalf of the user,
instead of by the user, so we should make it less sharp and more
in line with standard high-dpi configuration.

Specifically, make it subject to the rounding policy set by
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(). This
means that applications which support integer scale factors
only will see integers only, also when QT_SCREEN_SCALE_FACTORS
specifies a fractional factor.

Users who want to override can set

  QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough

to restore the default Qt rounding behavior.

[ChangeLog][QtGui] The high-DPI scale factor rounding policy (settable with
QGuiApplication::setHighDpiScaleFactorRoundingPolicy() or
QT_SCALE_FACTOR_ROUNDING_POLICY) now applies to scale factors set
with QT_SCREEN_SCALE_FACTORS.

Pick-to: 6.4
Fixes: QTBUG-95930
Fixes: QTBUG-99546
Change-Id: Ibb0aa5cb9d3a356d33429d0efe69d984b2530728
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-07-06 15:56:58 +00:00
Morten Sørvig
bc6dea891e High-dpi: Add test for setting the scale factor rounding policy
Test setting both via QGuiApplication property and environment.

Change-Id: Iaccc920adb6294d610b02d4c844aa5b15eb7eecd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-07-06 17:56:58 +02:00
Morten Sørvig
e1c8ad359d Reset highDpiScaleFactorRoundingPolicy in QGuiApplication destructor
Make sure we start with the default state if the app object is deleted
and created again, like for the other static variables.

Change-Id: Ie97a73022298d21c9fbaaefcae3091b637264401
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-07-06 17:56:58 +02:00
Morten Sørvig
5b23f08b81 wasm: use simpler syntax for EXPORTED_RUNTIME_METHODS
Recents emsdk versions support specifying the method list without
using brackets. Switch to this syntax since that avoids any quoting issues.

Pick-to: 6.4
Change-Id: Ib7bf8ec3f0d2ef67e8222a23e7af9b368ee99a00
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-07-06 17:56:58 +02:00
Morten Sørvig
36fa489cb8 wasm: remove message handler lock
We have now upgraded the minimum emsdk to one where Emscripten properly
synchronizes stdout/stderr output.

Pick-to: 6.4
Change-Id: I537897b31916a52303a3fdb1d255f03b4aeaffef
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-07-06 17:56:58 +02:00
Morten Sørvig
9be0f2945d wasm: begin work on accessibility backend
Implement a11y support by adding html elements of the
appropriate type and/or with the appropriate ARIA attribute
behind the canvas.

Also add a simple manual-test.

Change-Id: I2898fb038c1d326135a1341cdee323bc964420bb
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2022-07-06 17:56:58 +02:00
Morten Sørvig
25c2d05340 wasm: don't access deleted settings objects
The emscripten_idb_async_ functions are async, so there
is no guarantee that the QSettings object which made
the request will be live by the time the completion
callback is made.

Keep track of live QWasmSettingsPrivate objects, return
early from the callbacks if userData does not point
to a valid QWasmSettingsPrivate.

Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Ia319b1875dcf2c329ba27954e3f026e004fe0aac
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2022-07-06 17:56:58 +02:00
Marc Mutz
c84897c137 QDebug: add op<< for std::initializer_list
We need it in QtHttpServer.

[ChangeLog][QtCore][QDebug] Can now stream std::initializer_list.

Change-Id: I3e940215fb4f4778bd782ea9b30960754ac23d47
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
2022-07-06 17:56:58 +02:00
Marc Mutz
0587d4752d Remove uses of Q_ATOMIC_INT{8,16,32}_IS_SUPPORTED
It's always true these days, assert so in qatomic.cpp and
tst_QAtomicInteger.

Update the docs.

Pick-to: 6.4
Change-Id: I3684cff96c1d2e05677314e29514cc279bd6b1a1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-06 17:56:58 +02:00
Marc Mutz
c0385f0cee QAtomicInteger docs: mention bool and char8_t as 8-bit types
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: If673ba1e891e034dfe5e441b1e3427f3365320e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-06 17:56:58 +02:00
Marc Mutz
0231971b3e tst_QGraphicsScene: fix -Wsuggest-override
Add the override keyword.

Amends 2e12479e06.

Pick-to: 6.4 6.3 6.2
Change-Id: Ic62dd33b1ee52983481e39e862b9bd87695f5044
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-06 17:56:57 +02:00
Marc Mutz
20a1526a23 moc: fix GCC -Wuseless-cast warnings
When being queried for QMetaObject::IndexOfMethod, qt_static_metacall
would compare the argument with each of the class' methods'
addresses. Taking the address of an overloaded function is ambiguous
unless you cast to the right type, which the moc-generated code did
using explicit static_cast<>s. If the function is not overloaded, GCC
would warn about the static_cast<> being "useless", which isn't wrong.

Fix by using an implicit cast to a local variable of the correct type
instead of an explicit cast. Since there's no explicit cast anymore,
GCC doesn't warn.

Code before the change:

  using _t = void(Counter::*)(int );
  if (*reinterpret_cast<_t*>(_a[1]) == static_cast<_t>(&Counter::valueChanged)) {
                                       ^--------------------------------------
				              -Wuseless-cast
      *result = 0;
      return;
  }

After:

  using _t = void(Counter::*)(int );
  if (_t _q_method = &Counter::valueChanged; *reinterpret_cast<_t*>(_a[1]) == _q_method) {
      *result = 0;
      return;
  }

Since we're using a C++17 construct, we can't pick to 5.15.

Pick-to: 6.4 6.3 6.2
Fixes: QTBUG-71938
Change-Id: If6ba4bf17b3bf7f64e9662ba9d085273882fb460
Reviewed-by: Mate Barany <mate.barany@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-06 17:56:57 +02:00
Marc Mutz
480a459f65 QLocale: move some static_assert()s from _p.h into .cpp
There's no point in having each TU that includes this header unit-test
the ascii_isspace function anew.

Amends 7f9398fd4d.

Pick-to: 6.4
Task-number: QTBUG-97601
Change-Id: I17addc3256f4afafb8ec6a86116654b0099efcda
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2022-07-06 17:56:57 +02:00
Marc Mutz
2b355017a2 QMetaType: remove useless public: access specifier
We're already in the public section.

Change-Id: I0d3a04f71574110b7f68edf978ccde9586b18759
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
2022-07-06 17:56:57 +02:00
Mikolaj Boc
3c07f12415 Port promise tests to qtwasmtestlib
The promise tests have been ported to qtwasmtestlib so that they do not
have to use asyncify anymore.

Task-number: QTBUG-99611
Change-Id: Id1b5742c90e36a89540e7a2387cb4110c21ace9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-07-06 17:56:57 +02:00
Joerg Bornemann
df764df3ea Fix potentially wrong version in Windows resources of Qt plugins
qt_internal_add_plugin calls qt_set_target_info_properties with the
TARGET_VERSION argument and passes arg_VERSION.  However, the function
qt_internal_add_plugin does not have a VERSION argument.

If arg_VERSION is set before calling qt_internal_add_plugin, that value
will be used, and that could be wrong for the plugin.

Remove the TARGET_VERSION argument from the
qt_set_target_info_properties call.

Pick-to: 6.4
Change-Id: I0ae9e0e6636d74fdc20e6ab9ca525c5a9126000c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-06 12:20:40 +02:00
Piotr Srebrny
1e02c4acbf Enable access to QWindowsScreen from QScreen
This patch adds access to the QWindowsScreen interface from QScreen with
the aim to provide the native handle of QScreen. This handle will be
used in QtMultmedia to find DXGI interfaces related to that screen.

Change-Id: I93f066b3f0d4d70331aeedab36bb0db111a34556
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-07-06 12:20:39 +02:00
Thiago Macieira
3622fc81ea x86/RDSEED: Work around QNX compiler missing the rdseed intrinsic
Since it's no big deal, we can disable this. Making it use rdseed via
inline assembly or detect when the compiler is fixed is Someone Else's
Problem.

Fixes: QTBUG-104697
Change-Id: I89c4eb48af38408daa7cfffd16feabb5408e2fbf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-07-06 03:20:38 -07:00
Mårten Nordheim
1e4673e8b0 Compiler macros: remove accidental undefs
I'm not sure why they're here, but they only undo the work
from earlier.

Spotted in the API review

Amends 20104bb237.

Pick-to: 6.4
Change-Id: Ifc0fa66a304f819c1f59ef8e4e498ab14f859ef8
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-06 09:46:54 +00:00
Rami Potinkara
8bf9769d54 Update Gradle to 7.4.2 and Android Gradle Plug-in (AGP) to 7.2.1
Gradle 7.4.2 and AGP 7.2.1 versions are the latest at the moment.

Fixes: QTBUG-103711
Pick-to: 6.4
Change-Id: I871d1331e0340e1cda7dbbc0799bb2c20aed6146
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-07-06 11:43:56 +03:00
Morten Sørvig
63a9430664 wasm: delete unused requestUpdate() code path
Commit 5359d4 made it so that the window will always have a valid
compositor pointer, which means that we don't have to keep the
"no-compositor" fallback code path around.

Change-Id: Id226e272937a7d488b27ea08dbc575fd9a039ac6
Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io>
Reviewed-by: David Skoland <david.skoland@qt.io>
2022-07-06 06:59:59 +02:00
Tor Arne Vestbø
b692d7b268 iOS: Explicitly link to IOKit
We use it to implement QSysInfo::machineUniqueId()

Pick-to: 6.2 6.3 6.4
Change-Id: I9303001cbc3e5e6716ee57ce9ae785dba08ba88f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-06 03:01:57 +02:00
Tor Arne Vestbø
337f28c9ab Darwin: Replace deprecated symbol kIOMasterPortDefault with equivalent
We can't use the replacement kIOMainPortDefault yet, as it's not
available in operating system versions we still support, but the
kIOMasterPortDefault documentation explicitly says that passing
NULL as a port argument indicates "use the default".

As the underlying type of a mach_port_t is potentially either
a pointer or an unsigned int, we initialize the default to 0.

Pick-to: 6.2 6.3 6.4 5.15
Change-Id: I288aa94b8f2fbda47fd1cbaf329799db7ab988a0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-06 03:01:57 +02:00
Mikolaj Boc
a50590370f Create the Qt File Filter => showOpen/SaveFilePicker options mapper
As a preparatory measure for using showXFilePicker, the Qt file
filter has to be transformed to the format used by the showXFilePicker
(sXFP) options. A class structure reflecting the options was created. Based on
an input in the form of a qt file filter, it will parse the filter to
the sXFP options format. Unit tests were added and the code is not yet
used in non-test env, next change will use it.

Task-number: QTBUG-99611
Change-Id: I277286467a7b5ce6f323c19bdd31740a41b6a6be
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-07-05 22:22:54 +02:00
Mike Achtelik
d48ebb02fb Android A11Y: Add content change type to content change event
This fixes a problem where the accessibility tree is not correctly
updated, when using e.g. a StackView. The problem was, that sometimes
when pushing items of the previous view where still selectable via
TalkBack. When popping this sometimes lead to some views not being
selectable because the subtree wasn't updated. To solve this, lets tell
android directly that the subtree changed when invalidating a view.

Fixes: QTBUG-102825
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Ifbf8da1b95f02935b9bcffabfe821547b1128103
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-07-05 22:08:21 +02:00
Ilya Fedin
49d2944045 Make EGL use Qt X connection without xcb_xlib with EGL_EXT_platform_xcb
This allows to create EGL context without involving Xlib.
This extension was created a year ago and is present in Mesa since 21.0

Change-Id: I7cb0aece1e67b4db59d453cbcfbd317bb5d9c777
Reviewed-by: Liang Qi <liang.qi@qt.io>
2022-07-05 23:53:31 +04:00
Mikolaj Boc
3ca167a30e Enhance the qtwasmtestlib with comparison functions and status reporting
Added the functionality to report text statuses from tests, reporting
file and line of assertion failures. Refactored the qtwasmtestlib.js
for improved stability.

Task-number: QTBUG-99611
Change-Id: I717e0cc38ac7f155fe870710f6b5e4bfb81b9317
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-07-05 21:18:30 +02:00
Doris Verria
77fcd47feb iOS plugin: Add support for wheel events
Use UIPanGestureRecognizer to handle mouse and trackpad scroll.

Task-number: QTBUG-99795
Change-Id: I5db7fabf55b6f2e6f7ba90a0b90ecb08734e2329
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-07-05 19:23:56 +02:00
Mike Achtelik
ac984bd876 Android A11Y: Fix deadlock in QtAndroidAccessibility::runInObjectContext()
On android the event loop is normally blocked, when the application
is suspended, e.g. when it enters the background or when the screen is
locked (see android.app.background_running). This leads to a problem
when we try to process events after this happens, e.g. when android
sends us an ACTION_CLEAR_ACCESSIBILITY_FOCUS event after the event loop
is suspended. While handling it we eventually call
QtAndroidAccessibility::runInObjectContext() which tries to do a
blocking call on the object context, however, with the event loop being
suspended we run into a deadlock which leads to an ANR.  So we need to
make sure to never make a blocking call while the event loop is
suspended.

Task-number: QTBUG-102594
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I33f0440a3da84fb4bdae5ab0fc10d514c73f23ad
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2022-07-05 18:31:47 +02:00
Yuhang Zhao
100d5bd582 Windows: Fix OpenGL window's screen
The "GpuDescription::detect().gpuSuitableScreen" is a device
name like "\\.\DISPLAY1", not a user-friendly name.

Amends commit qtbase/75f22702933bad4f0da2b63a94ea183021771e4c

Pick-to: 6.4
Change-Id: I525ecd026f3ee3bc467834449ae023ebfa1138c1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-06 00:31:47 +08:00
Yuhang Zhao
6af63c8256 CMake: Update description of the Intel CET feature
Use a more detailed description instead.

Also adds the missing part of the GCC parameter.

Amends commit qtbase/42287255d38bf493b5731396b99bc9cd7b1baba4

References:
https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Instrumentation-Options.html#Instrumentation-Options

Change-Id: I94a22ac7dfa80644e92fe01021f7868dfa02dd69
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-06 00:31:47 +08:00
Inho Lee
03849286f0 QRhi: support uniforms of int and ivec arrays in GLES2 backend
Uniforms of int and ivec arrays are supported from GLES v2.0.

Change-Id: I9a08db18f584e39b4f71b7348a2a1fe4089bfce4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2022-07-05 15:36:03 +00:00
Timur Pocheptsov
7949dab8ab tst_QSslKey: prepare for the migration to OpenSSL v3
Many algorithms (ciphers etc.) had become 'legacy' in OpenSSL v3,
meaning they are not available by default. Since we don't mess with
loading providers and don't load the 'legacy' one, we have to
skip tests involving such algorithms.

Pick-to: 6.4 6.3 6.2 5.15
Fixes: QTBUG-104232
Change-Id: Ieceabeb080e531aeb24f733cb8c83ad08a25049c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-07-05 17:36:03 +02:00
Allan Sandfeld Jensen
d85dff3775 Remove Q_DECL_VECTORCALL when SSE2 is not available
It expands to sseregparm in gcc, and then can't build with SSE2
disabled.

Pick-to: 6.4 6.3 6.2
Fixes: QTBUG-104726
Change-Id: I063ed87ed7f7ba683a19cd3f6e8a25c5111ef72a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-05 16:25:55 +02:00
Tor Arne Vestbø
f7b4eaba59 macOS: Ignore deprecation for kOnSystemDisk icon domain
There's no good replacement yet, so for now ignore the deprecation.

Pick-to: 6.2 6.3 6.4 5.15
Change-Id: I56928b73c47b677e3fdafd35cc5ae558e5285314
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-05 16:25:55 +02:00
Ulf Hermann
af6b6c8e7c QStringConverter: Do not use std::optional::value()
value() can potentially throw an exception. We know that it doesn't in
this case, but the compiler doesn't know. And our code checker doesn't
know either and generates lots of false positives. Also, without the
exception propagation code the resulting binary is probably smaller.

Coverity-Id: 386110
Coverity-Id: 384314
Coverity-Id: 383835
Coverity-Id: 383784
Pick-to: 6.4
Change-Id: Icdacf8e003fd3a6ac8fd260ed335239a59de3295
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-05 15:38:17 +02:00
Tang Haixiang
551127209e QListview: PageDown/Up infinite loop
When item.height > viewport.height, the next item is not found
correctly, resulting in an infinite loop.

In this case, move directly to the next item.

Pick-to: 6.4 6.3 6.2
Change-Id: I67a40a079ca9dd9189bf84ae550758c685b83d75
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-05 11:55:19 +00:00
Tang Haixiang
c2a63b4014 tst_qwindow: modify some abnormal touch tests
Under normal circumstances, when the second point is touched, the
first point has not been released, and the message at this time
should contain two touch points. We are simulating the case where
the message is lost when the popup is closed by touch. Amends
efc02f9cc3

Pick-to: 6.4 6.3 6.2
Change-Id: Ic722e3dbd615c46076ede26611d0107501c5e274
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-07-05 13:55:19 +02:00
Joerg Bornemann
fc3e0885a6 CMake: Fix missing include directories from qmake support files
The include paths in QMAKE_INCDIR_FOO entries in qt_lib_XXX.pri files
are filtered to not contain implicit include directories.

We must enclose the regular expression with ^...$ to avoid catching too
many paths like any subdirectory of /usr/include.

Fixes: QTBUG-104736
Change-Id: I2d40e6ec6d3f3421d591fed90b4dd9ebbbeb59f4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-05 13:55:19 +02:00
Alexandru Croitor
7d6f1ee5a7 CMake: Create and include plugin packages in shared builds
Previously QtModulePlugins.cmake files were only created and
included in static library Qt builds.

Having the targets available in shared library builds would be
useful for custom project deployment purposes. One could query
the location of the plugins or use various generator expressions
referencing their location.

Ensure we always generate and include the QtModulePlugins.cmake files
regardless of the build type.

Allow opting out of including the files by setting
QT_SKIP_AUTO_PLUGIN_INCLUSION to ON, just like we allow for Qml
plugins with QT_SKIP_AUTO_QML_PLUGIN_INCLUSION.

Pick-to: 6.4
Fixes: QTBUG-94066
Change-Id: I69a5dc17762a8e43265578fc33b82b5c4b7a1f5c
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-07-05 13:04:09 +02:00