Commit Graph

53458 Commits

Author SHA1 Message Date
Edward Welbourne
faa99aac43 Remove spurious QTestResult::setCurrentTestData(nullptr);
Calls to QTestResult::setCurrentTestData() are handled via an RAII
class, QTestDataSetter, that ensures this final call passing nullptr
was redundant.

Change-Id: I7788e3ce898e5628d5590ef9d34182f05e85fe50
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-22 16:31:11 +02:00
Fabian Kosmale
b7f2019357 QThreadPrivate: Remove threadForId
The thread build variant is not implemented; the no-thread one simply
returns the current thread. As this has no utility at best and
misleading at worst, remove those functions.

Change-Id: I93ee45ae7d55e3a7ad1f03168b14149a5d4c9253
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2021-09-22 15:40:30 +02:00
Ievgenii Meshcheriakov
fe46cd59ce Add isValidUtf8() methods to QUtf8StringView and QByteArray{,View}
The new methods return true if the string contains valid UTF-8
encoded data, or false otherwise.

[ChangeLog][QtCore][QByteArray] Added isValidUtf8() method.

[ChangeLog][QtCore][QByteArrayView] Added isValidUtf8() method.

[ChangeLog][QtCore][QUtf8StringView] Added isValidUtf8() method.

Task-number: QTBUG-92021
Change-Id: I5d0cb613265d98b1f189c5f5cc09c1f7db302272
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-22 15:40:30 +02:00
Mårten Nordheim
9e770e3572 QNetworkInformation: Request all supported feature when loading by name
When we load by name we used to pass an empty QList to the backend as
the list of requested features. That's not ideal if a backend were to
selectively initialize components, so let's just pass the list of
supported features.
Not a problem in any current backend but it looks weird.

Pick-to: 6.2
Change-Id: Ib022778b08d32e4057103a86bfdda9e17e6ebdaf
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2021-09-22 13:55:58 +02:00
Allan Sandfeld Jensen
0728e88be6 Remove redundant semi-colons
Causes warnings with clang-cl

Change-Id: I57395819debe07aecd045c5a8c747632e6c04fc1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-22 09:36:34 +02:00
Joerg Bornemann
ad4faa25a5 qmake: Print error when iOS simulator device could not be found
A qmake project built for iOS-simulator tries to find suitable devices
in xcodebuild.mk.

If no suitable device could be found, the build failed with
  xcodebuild: error: missing value for key 'id' of option 'Destination'
which isn't that helpful.

Detect the situation in xcodebuild.mk and print an error message.

Pick-to: 5.15 6.2
Fixes: QTBUG-77222
Change-Id: I02f9ab0dd7b8f234bcd8d0ea387927f31ca092e0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-22 00:01:30 +02:00
Alex Trotsenko
a320b54bb6 QLocalSocket: reorder device closing
To allow reading from a slot connected to the aboutToClose() signal,
we should call QIODevice::close() just before closing the inner device.

This patch amends 21f3ff65b8.

Pick-to: 6.2
Change-Id: Ic8cd00497e1bdf923b980c26e9ca874b77e82f89
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2021-09-21 21:40:27 +00:00
Mårten Nordheim
8910a01c72 Fix loading certificates on Android with OpenSSL
Fixes: QTBUG-96606
Change-Id: Ic2a55fa65c5dc3c057a4da25c218af5a9861410e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 504df6b135d4ac17aa2290e1aa943d216fb7ef55)
2021-09-21 20:49:33 +02:00
Tor Arne Vestbø
ab4fb3ffd4 macOS: Don't re-send key event through input method on focus object change
In 0c2ca26cd9 we started re-sending the
key event through the input method when we detected a focus object change,
to support the use-case of QAbstractItemView opening an editor and changing
focus in response to the first QEvent::InputMethod event.

Unfortunately this doesn't work as a general approach, because we don't
know what the reason was for the change in focus object. For example,
a client might respond to a Qt::Key_Return press by changing the focus
to the next input element, and re-sending the key event would in that
case insert a new-line in the new focus object -- counter to the
expectations of the client.

Since we can't know the reason for the changed focus object we can't
assume re-sending the key event is safe.

Task-number: QTBUG-54848
Fixes: QTBUG-96726
Pick-to: 6.2 6.2.0
Change-Id: Iea8b166385925cd1a05ef62d5cf763638d9f8a67
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-09-21 20:49:00 +02:00
Fabian Kosmale
388e7504be QVariant::Private: select storage in get at compile time
Change-Id: I82b0a7ec28400dac64ea785ba6766ca488e615aa
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-21 19:22:33 +01:00
Fabian Kosmale
3f9d19b17b QVariant: write less haphazardly to data
While the data subobject is at the same position in memory as the
QVariant::Private, using d.data actually activates the union member.

Change-Id: Ie6879b588c8e830ae8b34cfcd8e9ddff8b60b3a6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-21 19:22:33 +01:00
Tatiana Borisova
dbab926883 locale: INTEGRITY does not define LC_MEASUREMENTS
- It does however use the Unix backend for system locale, so don't entirely
  skip setting environment variable, only leave out LC_MEASUREMENTS.

Pick-to: 6.2
Change-Id: If292f1077851b29da2a21af7c46f4db9c0e4ed19
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-21 17:56:54 +00:00
Fabian Kosmale
01d94760d8 tst_qmetatype: Fix operator< detection for std::optional
Amends ca54b741d6.
operator< is not constrained in MSVC's standard library, either.

Pick-to: 6.2
Fixes: QTBUG-96690
Change-Id: Ibcbb9e53a1f9e8b13786f6d8c01489c61d8d2d7f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-09-21 19:27:50 +02:00
Laszlo Agocs
4cc5428548 Cater for upstream changes in eglplatform.h
EGL_NO_X11 has been replaced with USE_X11, thus breaking all existing
code out there, including Qt:
https://github.com/KhronosGroup/EGL-Registry/pull/130

Fix this by defining USE_X11 whenever we do not define EGL_NO_X11.

Fixes: QTBUG-96392
Pick-to: 6.2
Change-Id: If8b68caa8c9022477d87169ca2e2a0121a9313e0
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2021-09-21 16:21:01 +02:00
Alexey Edelev
68ad67b6fa Use only supported values when setting internal QT_FEATURE_ values
When setting QT_FEATURE_ values we need to convert the user-provided
FEATURE_ values to the one that is supported by QT_FEATURE_.

Pick-to: 6.2
Fixes: QTBUG-96300
Change-Id: Idd19fbf7f23f351a6c1cfdcedccfaaf6b0aa6e44
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-09-21 16:05:22 +02:00
Edward Welbourne
080bbb9f8b Improve version-related docs in qglobal.cpp
Give a more pragmatic illustration for QT_DEPRECATED_BEFORE.
Make various minor tweaks to wording, use slightly less antique
versions in examples. Make usage of "runtime" standard in qglobal.cpp,
at least, since "run-time" seems to be less used generally.

Change-Id: I1db4950d0d0e97903b1586d98ecba75576493b1c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-21 14:52:43 +02:00
Pasi Petäjäjärvi
3635acd27a locale: QNX does not define LC_MEASUREMENTS
Pick-to: 6.2
Change-Id: I01ce03e578173f53639927e70f49e6d9b0d08d20
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-21 14:36:18 +03:00
Thiago Macieira
8cc6c7cd6e QProperty: attempt to fix compilation with GCC 10
Somehow it's not expanding properly in constexpr time.

qproperty_p.h:554:30: error: \u2018(QItemSelectionModelPrivate::modelChanged != 0)\u2019 is not a constant expression
         if constexpr (Signal != nullptr) {
                       ~~~~~~~^~~~~~~~~~

Fixes: QTBUG-96659
Change-Id: I3eb1bd30e0124f89a052fffd16a69d2eb4b45784
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-09-21 04:10:25 -07:00
Morten Johan Sørvig
67b2c84992 Make QWindow respect minimumSize again on Windows
Commit 6336b535 accidentally removed a call to
applyToMinMaxInfo(). Add it back.

Task-number: QTBUG-96441
Pick-to: 6.2.0 6.2
Change-Id: I26a5d121ed3b4cd9e49e3dd8b371abe71d9a482c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-21 11:10:25 +00:00
Luca Di Sera
28157cf24e Doc: Repair broken link to the XDND protocol
The documentation for QTGUI's `Drag and Drop` links to the XDND
protocol, which is used to manage Drag and Drop on X11.

The previous link seems to have been broken for a few years and was thus
replaced with a link to XDND on Jhon Lindal's site, who is the author of
the protocol.

Task-number: QTBUG-96127
Pick-to: 6.2 6.2.0
Change-Id: Ia46b10c7461129491934eb74355f107f96e04383
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2021-09-21 12:51:06 +02:00
Alex Trotsenko
b362279e86 Refactor QWindowsPipeWriter::writeCompleted()
Change-Id: Id44215d6a96e7841330181c94cc54b6b677a153d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2021-09-21 11:07:12 +03:00
Iikka Eklund
66b1b80642 Conan: Fix invalid options for package_id checksum
The android specific options were plain wrong:
  - android_sdk_path -> android_sdk
  - android_ndk_path -> android_ndk

These reflect the Qt configure options.

Pick-to: 6.2
Change-Id: I0b9283b6603aff8243208216baffe263d37b6541
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2021-09-21 10:41:01 +03:00
Iikka Eklund
9cd87a778d Conan: Exclude 'headersclean' option from package_id
This option should not affect the binary compatibility thus it should
not be part of the package_id of the created Conan package.

Pick-to: 6.2
Change-Id: I6d09cc3933cd28c306ef011bb26346a0993ffcd3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-09-21 10:41:01 +03:00
Iikka Eklund
d96fe5e753 Conan: Filter cmake_args that should not be included in package_id
The qtbase Conan recipe has 'cmake_args_qtbase" option to pass cmake
arguments. Some of the cmake arguments should not be included in the
package_id checksum of the Conan package. Filter these out when
generating the package_id.

Examples:
  - -DCMAKE_C_COMPILER_LAUNCHER=sccache
  - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
  - -DFEATURE_headersclean=..
  - -DPostgreSQL_ROOT=..

Those arguments which are specific to Qt CI build environment are
filtered out. This makes the pre-built Conan binary packages more
usable for the end users because Conan would enforce a build
from sources if the checksum(s) would not match.

Pick-to: 6.2
Task-number: QTBUG-96230
Change-Id: I076a57427614fdf4bf9138402e247d63f1ce15d9
Reviewed-by: Toni Saario <toni.saario@qt.io>
2021-09-21 10:41:01 +03:00
Craig Scott
30e2f51dab Add docs for qt_allow_non_utf8_sources()
Task-number: QTBUG-95712
Pick-to: 6.2 6.2.0
Change-Id: Ie09785ced5b2bf8098ccff3467f32244f32f9195
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-21 14:02:52 +10:00
Craig Scott
9a7c552831 Add docs for qt_disable_unicode_defines()
Task-number: QTBUG-95712
Pick-to: 6.2 6.2.0
Change-Id: I37a50d9e8a62c7d9c30014692d99ffe2eb9b90fb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-21 14:02:46 +10:00
Povilas Kanapickas
2d5541d6c3 3rdparty: Fix forwards-compatibility bug in bundled xinput xcb module
libxcb thinks that it knows about all device class types sent by the X
server XInput extension. With the addition of touchpad gestures in
XInput 2.4 and X server 21.1 this is no longer the case and libxcb fails
horribly by thinking that the protocol was malformed.

The X server currently has a workaround, but it would not address the
following situation:

- there are multiple modules within the same X client (e.g. part of the
application uses Qt, another part talks to X server via another library)
 - both of the modules talk to XI
 - at least one module requests for XI 2.4 protocol support.

The request for XI 2.4 disables the workaround on the X server and Qt
side would crash horribly.

This bug is being fixed upstream in these MRs:
https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/merge_requests/23
https://gitlab.freedesktop.org/xorg/lib/libxcb/-/merge_requests/20

Change-Id: Idf345271340031152b512ef59f619313be5ec226
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-09-20 23:10:26 +03:00
Mårten Nordheim
1479f057f3 QNetworkInfo(Win): cleanups
One signal emission was not labelled emit.
Removed some unnecessary braces

Change-Id: I1c0adde869e559056e60671619bfca33b1966d1e
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-20 19:00:01 +00:00
Mårten Nordheim
810e4e56bd QNetworkInformation: Actually compare names case insensitively
The docs (10 lines above) say it will find the backend case
insensitively. Thus the comparison should also be case-insensitive.

Pick-to: 6.2
Change-Id: I65901ed81b7d8bdfcf76f5b6c7b40efe63245503
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-20 21:00:01 +02:00
Giuseppe D'Angelo
bf5d5bfc0c QScoped(Array)Pointer: use the rule of 5
CodeChecker complains regarding the two classes not having all
the special 5 declared, so do it.

Change-Id: I76d562c52f89a24aec9f155c2be62f8844f1f4a7
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-09-20 20:18:06 +02:00
Giuseppe D'Angelo
b32698b3a9 DBus: do not mix QList iterators and raw pointers
In Qt 5, QVector::iterator was actually a raw pointer. In Qt 6,
QVector = QList, and QList::iterator isn't a pointer, but converts
to one (for backwards compatibility).

Some code in QtDBus exploits this by mixing iterators and raw
pointers. In preparation for deprecating conversions between them,
adjust this code by "converting" explicitly when needed.

Change-Id: I1efab72b33d27742b339cf848cefd5cc258cd215
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-20 19:21:53 +02:00
Friedemann Kleint
710842f075 uic: Add QWebEngineView
This is required to generate the correct import for Python.

Pick-to: 6.2 6.2.0
Task-number: QTBUG-63235
Change-Id: I6aaff82058e3f0a5453da15d8d470f06ad9a5a16
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2021-09-20 17:00:05 +00:00
Joerg Bornemann
fb656c036d Remove .qmake.conf from this repository
This file was necessary for the qmake build and the CI.  The qmake
build is history, and the CI does now read .cmake.conf (see
QTQAINFRA-4392).

In addition to being superfluous, the existence of .qmake.conf
triggers QTBUG-76140 when building Qt examples with qmake.  Removing
the file alleviates the symptoms of this bug.

"Interestingly", to make the qmake build of examples work in the CI, we
have to adjust the dbus examples to not use nmake inference rules.  The
absence of .qmake.conf results in a different order of inference rules
in the Makefile, and nmake/jom pick up generated source files from the
source dir.  These are incompatible with the correct generated source
files in the build dir.  See QTBUG-96513 for details.

Fixes: QTBUG-92271
Task-number: QTBUG-96513
Change-Id: I4076fae2eeb993956b54aced2c9c844ae2577a4a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-20 19:00:05 +02:00
Volker Hilsheimer
3714e51436 QWidgetWindow: Stabilize test on Xcb
Showing, hiding, and showing a window can result in the Xcb QPA plugin
warning about

qt.qpa.xcb: internal error:  void QXcbWindow::setNetWmStateOnUnmappedWindow()
called on mapped window

The point of the test is to verify that we get a paint event on a window
that is shown again after having been hidden, not to verify that async
windowing systems can handle a show/hide/show sequence. So wait for the
window being exposed before we hide it.

Pick-to: 6.2 5.15
Change-Id: If91a9926613645e78e332dacff34bd57e4034b6f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-20 19:00:05 +02:00
Volker Hilsheimer
6dc587dfdd Un-blacklist quitOnLastWindowClosedMulti test on macOS in CI
After the recent refactoring in 28b14b966f
this test should run stable on all platforms. However, the way the test
was written made it quite flaky. Simplify it to verify that closing one
window doesn't prevent a second timer to fire (which it would if closing
the first window already quit the application).

Change-Id: I0306792cd7573ebd3418d1aabffe2b78700ec2d9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-20 19:00:05 +02:00
Volker Hilsheimer
8fcfd7f591 Eat expected warning messages in QGuiApplication test
Verifies that we get the messages we want, and makes it easier to see
relevant debug output.

Pick-to: 6.2
Change-Id: Ide92959b120f325badbf200236cdc85f72226e1e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-20 19:00:05 +02:00
Alexey Edelev
2483931e25 Add missing framework paths to header check targets
CMake doesn't add framework include paths for the includes if
add_custom_command is used. When all Qt modules are installed to a
single directory, frameworks could be found under
QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX, but for Conan builds
each module is installed to the separate directory. These directories
need to be listed in the QT_ADDITIONAL_PACKAGES_PREFIX_PATH variables
family. This takes into account directories that are listed in the
QT_ADDITIONAL_PACKAGES_PREFIX_PATH variables and considers they
can contain frameworks.

Pick-to: 6.2
Fixes: QTBUG-96511
Change-Id: I664381df4859a2e85c399cd94dc2f3996e452c03
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-20 17:54:12 +02:00
Tatiana Borisova
766904bf5b Compile autotests for Integrity
- process environment/DNS are OFF for INTEGRITY

Task-number: QTBUG-96176
Pick-to: 6.2
Change-Id: I189a97f88c96a428586c31a66b8d250e04482900
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-20 17:29:04 +03:00
Assam Boudjelthia
e6892f38a0 Android: Fix path of qmake_qmake_immediate.qrc in single_abi with qmake
With single_android_abi, the file qmake_qmake_immediate.qrc is laid
directly into the root of the build dir and not under different abis
dirs.

Pick-to: 6.2.0 6.2 5.15
Fixes: QTBUG-87669
Fixes: QTBUG-95202
Fixes: QTBUG-95235
Change-Id: Ie13cccdf2fc323e8fd725a94f3aacab465fa1287
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-09-20 13:05:36 +00:00
Edward Welbourne
c608bdfb25 Fix assorted misindented end-comment markers in qglobal.cpp
Change-Id: I240e7d32c4aa004f2bd7dd8cafd39b7c7d64e014
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2021-09-20 15:05:36 +02:00
Edward Welbourne
44028a227e Encourage use of QT_VERSION_CHECK()
Document that QT_VERSION should normally be compared against it,
rather than raw hex, and mildly update the example versions used in
docs. (Left the snippets testing old version, since the code in which
the #if-ery is used might actually make sense for those versions.)

Improve related documentation in the process.

Change-Id: Id3e97f41bfb0f81a117cf7b3a3ccd5f244e2a99a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-20 15:05:36 +02:00
Edward Welbourne
7943480f0f Fix QDateTimeParser's handling of 't' format to match serialization
This amends commit 68f19fb630 to only
consume one 't' from the format string, to match qlocale.cpp's
serialization of time-zone specifiers, which only consumes one, so
will repeat the time-zone specifier as many times as unquoted t
appears in the format. It's hard to imagine why anyone would want this
behavior, but it's what our serialization has always done and parsing
should match serialization.

Add test-cases for double time-zone specifier.
Delete a lie in the process.

Task-number: QTBUG-95966
Change-Id: I574896040a74085dee89a4fefd8384be44ad827b
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-20 15:05:36 +02:00
Dimitrios Apostolou
a5d501000e Blacklist flaky test
Task-number: QTBUG-96270
Pick-to: 6.2 5.15
Change-Id: I3feb604c0c2f394b2915b3d98d3b02f469331a18
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-09-20 15:05:36 +02:00
Allan Sandfeld Jensen
129dae5dbd Pass CMAKE compiler flags to arch detection
This fixes the detection of always available architecture based on
user set CMAKE flags.

Change-Id: I541ac9569766a0fe05f4395c06f2ee3bcd77b035
Fixes: QTBUG-91090
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-20 13:19:02 +02:00
Craig Scott
46438c91f7 Fix main() not being visible on Android
A recent change refactored the call to qt_internal_add_executable(),
but that had the unintended side-effect of changing the symbol
visibility from public to hidden. That meant that main() became hidden,
so while apps still built successfully, they could not be run. Restore
the original symbol visibility to fix this regression.

Amends d47278fd09

Pick-to: 6.2
Change-Id: I27d84ab2b0dd013d5c38dcfe55e88f307c4bc5dd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-20 21:19:02 +10:00
Joerg Bornemann
63dcb31049 Don't bootstrap rcc
The rcc tool doesn't contribute to the build of QtCore anymore.
There's no need to link it against the bootstrap lib.

Change-Id: I5272d439a05f852eeea88b3a6b95c5ad6dd4e987
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-09-20 13:19:02 +02:00
Laszlo Agocs
481bc82d59 rhi: Remove Q_RELOCATABLE_TYPE for types with QVLA in them
QVLA itself is non-relocatable due to self references. (ptr pointing
to array[Prealloc] as long as capacity < Prealloc)

Seems we shot ourselves in the foot in multiple places with this.

Pick-to: 6.2 6.2.0
Fixes: QTBUG-96619
Change-Id: I57a2ce539b671326cd352dbe57a1f3d4c46a6456
Reviewed-by: Tobias Koenig <tobias.koenig@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-09-20 12:25:37 +02:00
Ivan Solovev
b4bb3a5415 Introduce QDoubleValidator::setRange overload with two parameters
The QDoubleValidator::setRange() used to have 3 parameters, with
the third one (the number of decimals) having a default value of 0.
Such default value does not make much sense for a *double* validator.
Also, since a default value was used, omitting the decimals was
silently overwriting the previous decimals value, discarding the
value that could be previously explicitly specified by user.

[ChangeLog][QtCore][QDoubleValidator][Important Behavior Changes] The
QDoubleValidator::setRange() method now has two overloads.
The first overload takes 3 parameters, but does not support a
default value for decimals.
The second overload takes only two parameters, not changing the
number of decimals at all.
Hence, the number of decimals will only be changed if the user
explicitly specifies it.
To maintain the old behavior of setRange(), pass 0 as the 3rd
argument explicitly.

Note that it is a source-incompatible change. But it should be fine,
because using QDoubleValidator with 0 digits after decimal point does
not make much sense and so, hopefully, is not that common.

At the same time, change the default-constructed QDoubleValidator
to use -1 for decimals, which allows arbitrarily many digits in
the fractional part. The value was previously 1000, which allowed
more than anyone would reasonably use, so this should make no
practical difference.

Some more unit tests to cover the behavior of the setRange()
overloads are also added.

As a dirve-by: remove unnecessary QValidator::State to int conversions
in the unit tests. QCOMPARE is capable of comparing these enums and
provides a better output in case of failure for enums.

Task-number: QTBUG-90719
Change-Id: I523d6086231912e4c07555a89cacd45854136978
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-20 09:39:13 +02:00
Craig Scott
fa9f13f130 Handle empty string args for versionless wrappers of dbus CMake commands
CMake silently drops empty list items when passing ${someVar} to a
function unquoted. The versionless wrapper functions typically use
${ARGV} or ${ARGN} to pass through arguments from the caller to the
versioned implementation, but this doesn't preserve empty arguments.
For qt_add_dbus_adaptor() in particular, this was problematic because
that meant arguments after the empty arg effectively "moved left" and
were interpreted as the wrong arguments.

Use named arguments and pass through each one explicitly for the
qt_add_dbus_adaptor(). This takes advantage of the implementation of
the versioned function, which also checks each optional positional
argument explicitly. We can only do this because we know the upper
bound on the number of arguments, so it is possible to represent each
argument with its own variable. A more general solution that didn't
need to know the number of arguments would require the
cmake_language(EVAL) command, but that requires CMake 3.18 or later.

Fixes: QTBUG-96594
Pick-to: 6.2
Change-Id: Ibb1de19217191768ca5ead969b20a1d28c466868
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-20 14:23:14 +10:00
Giuseppe D'Angelo
c578d9943a Plaster [[nodiscard]] on some RAII classes
The idea is to prevent silly mistakes such as

  QMutexLocker(mutex);
  doSomething();

where the locker is constructed and destroyed immediately. Compilers
don't normally warn in these cases (as the constructor/destructor
pairs involved do have side effects), but we can mark the type as
[[nodiscard]] to encourage warnings.

There is another couple of classes for which this would make sense
(notably, the R/W lockers), but unfortunately those are exported
classes, and GCC has a bug where one can't mix two different attribute
syntaxes on the same entity [1], so I'm skipping those.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102399

Change-Id: I75a2443dc71e6b80613b8edd52a04d3379355728
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2021-09-19 18:04:06 +02:00