Commit Graph

57279 Commits

Author SHA1 Message Date
Mårten Nordheim
85f4679dbd tst_qsslsocket: remove schannel workarounds for old certificate
The certificate was updated recently and doesn't have the same
deprecated hash functions and small key size as the old one did.

Change-Id: I301ad50a96a30483b92a6e30f61e78e8d6b955ca
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-07-28 14:05:05 +02:00
Edward Welbourne
efce4dee09 Simplify and tidy up various trivia in Q*SettingsPrivate
Eliminate needless linebreaks. Use ranged-for to simplify a loop. Use
a startsWith() check for BOM and sliced() to take it into account. Use
ternary in initializers rather than initializing a bool to then use in
a ternary. Make explicit that some values are const. Use std::move()
on a QVariant to save copying.

Change-Id: Ie97da14906357803f8d5ada2e376b809f14bba54
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2022-07-28 10:44:09 +02:00
Thiago Macieira
990c18d9c7 tst_QMetaObject: add a test for using Q_ARG with a non-const ref
This is in use in tst_qdbusinterface.cpp, so let's have it here to make
sure it works:

    QVERIFY(QMetaObject::invokeMethod(&iface, "ping",
                                      Q_RETURN_ARG(QDBusVariant, retArg),
                                      Q_ARG(QDBusVariant, arg),
                                      Q_ARG(QDBusVariant, arg2),
                                      Q_ARG(QDBusVariant&, retArg2)));

Change-Id: I36b24183fbd041179f2ffffd170271424c048292
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 21:09:58 -07:00
Thiago Macieira
b01051dda7 tst_QMetaObject: make sure we don't mix references with non-refs
We should fail to even find the method. `QString' and `QString&` are not
compatible.

Change-Id: I36b24183fbd041179f2ffffd170259bcf07fd459
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 21:09:57 -07:00
Thiago Macieira
48ce496c50 tst_QMetaObject: add some tests for passing and receiving pointers
Change-Id: I36b24183fbd041179f2ffffd170259a81d65a36e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 21:09:56 -07:00
Thiago Macieira
06c3de5ee3 tst_QMetaObject: change tests to forward-declared-only
The type MyUnregisteredType needs to be only forward-declared for the
trick to work. The issue is not about registration, because since commit
fa987d4441 ("MetaObject: Store the
QMetaType of the methods"), we will record the meta type of the type
anyway, which will eventually allow the meta object to actually find
this type.

Instead, the tests are valid for a type that is only forward-declared.

Change-Id: I36b24183fbd041179f2ffffd1702182746f7c1b2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 21:09:55 -07:00
Thiago Macieira
1b96b645ec QMetaType: prevent memory leak on create() if the constructor throws
The #ifdef wasn't necessary because destroy() had been using
__STDCPP_DEFAULT_NEW_ALIGNMENT__ without #if.

Change-Id: I3859764fed084846bcb0fffd17039570283d3eaf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 14:51:58 -07:00
Thiago Macieira
3695b35dfc QMetaType: re-fix them for pointers
Instead of placing the error deep into IsPointerToTypeDerivedFromQObject
with a message about weird the sizes, move them closer to the front-end
so we get a proper error message like:

 <stdin>:1:56:   required from here
 qmetatype.h:1131:45: error: static assertion failed: Meta Types must be fully defined

 <stdin>:1:50:   required from here
 qmetatype.h:1132:29: error: static assertion failed: Meta Types cannot be non-const references or rvalue references.

 <stdin>:1:56:   required from here
 qmetatype.h:1136:55: error: static assertion failed: Pointer Meta Types must either point to fully-defined types or be declared with Q_DECLARE_OPAQUE_POINTER(T *)

This does not apply to the meta type list stored in a meta object, as
meta method parameters may be opaque pointers or even forward-declared
only.

Change-Id: I36b24183fbd041179f2ffffd17025f10f38e04e6
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 14:51:50 -07:00
Thiago Macieira
2d0c31e7d9 QMetaType: fix QMetaTypes for non-const references
Namely, they shouldn't be supported. Even trying to create such a type
(as in QMetaType::fromType<int &>()) should fail, because for the
purposes of the meta type, they are not the same.

However, they were being registered in the meta objects' meta type list
as a mistake since commit cb43aaca11
("Introduce QMetaObject::metaType"), including for output parameters in
D-Bus remote objects' meta objects. despite the comment saying "type id
not available".

[ChangeLog][Potentially Source-incompatible Changes] Made meta types for
non-const references fail to compile. Previously, QMetaType::fromType
allowed this to compile, but returned the meta type for the base type,
which was incorrect. Const references are understood to be the same as
the base type.

[ChangeLog][Important Behavior Changes] The meta type for non-const
reference parameters in extracted methods (signals, slots, etc.) is no
longer available in QMetaMethod. This used to be the case in Qt 4.x and
5.x, but due to a mistake in Qt 6.0-6.3, QMetaMethod would incorrectly
report the base (non-reference) type. Additionally, both the reference
and the non-reference types may have been reported in different APIs.

Pick-to: 6.4
Change-Id: I36b24183fbd041179f2ffffd1702384d2b64a5f9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-07-27 14:51:46 -07:00
Thiago Macieira
7211771c64 QMetaType: move is_complete template further up
Alongside the rest, makes the code better organized.

Pick-to: 6.4
Change-Id: I36b24183fbd041179f2ffffd17025ca7fe988a5a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 14:51:44 -07:00
Thiago Macieira
6b3c6155e9 Remove qvariant_p.h
Change-Id: I3859764fed084846bcb0fffd1704480153e34973
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
2022-07-27 14:51:31 -07:00
Fabian Kosmale
708e4ea235 QVariant: prepare removal of nullptr_t special casing in Qt 7
customConstruct has to do an additional check to ensure that
QVariant::fromValue(nullptr) returns null.
We can get rid of it by special casing nullptr_t in a fromValue overload
instead, reducing the amount of work that needs to happen at runtime.

Change-Id: I2aea6aecfee0a9404cbd78dbea01a1d5d3047ca0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-27 23:51:17 +02:00
Thiago Macieira
2f0a625fd4 QVariant: add noexcept to Qt types with noexcept copy constructors
QHash, QString, QByteArray, and QDateTime are explicitly noexcept, while
QList, QMap, and QModelIndex are implicitly noexcept because all their
members are explicitly nothrow-copyable.

There are a couple more Qt types that ought to be nothrow-copyable too,
like QBitArray and QUrl.

Change-Id: I3859764fed084846bcb0fffd17044b5ebb046ee9
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 14:51:14 -07:00
Thiago Macieira
de7894ce3c QVariant: update constructors for trivially copyable types
Make them all noexcept and ensure they are all passed by value.

Unfortunately for QRectF and QLineF, they're too big when qreal==double,
so QVariant needs to allocate memory itself. Strictly speaking, they're
too big for passing by value too, but the codegen is identical, so we
may as well. For Qt 7, enlarging QVariant::Private would be a good idea.

Change-Id: I3859764fed084846bcb0fffd17044ac379b3c1d2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
2022-07-27 14:51:11 -07:00
Thiago Macieira
211f13b089 QVariant: move the privates up
With very minor code style fixes. Moved up so they can be used in some
methods below.

Change-Id: I3859764fed084846bcb0fffd17044f8e61886e2c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
e2e2412d59 QVariant::PrivateShared: move create() and free() into the .cpp
They don't need to be in the header. They're still inline though.

Change-Id: I3859764fed084846bcb0fffd17044f49031feefc
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
5ee253e188 QVariant::Private: remove unused internalStorage()
Change-Id: I3859764fed084846bcb0fffd17044f1814357d5d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
c66a51b9e4 QVariant::Private: remove old typeId() function
Use type().id() instead.

Change-Id: I3859764fed084846bcb0fffd17044f0fe10b6ff7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
36b4aa1118 QVariant::Private: replace QMetaType constructor with interface
And move it into the .cpp file, to hide the ugliness.

Change-Id: I3859764fed084846bcb0fffd17044729e361a42e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
3da89227fe QVariant: replace v_construct with a Private template constructor
It's effectively the same and no one is using v_construct().

Change-Id: I3859764fed084846bcb0fffd1704470801c9e6e7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
b665ffbce2 QVariant: optimize copying for trivially copyable payloads
If the payload is trivially copyable and is using the internal space,
then it's already been copied by the copying of QVariant::Private. No
further work is needed.

Change-Id: I3859764fed084846bcb0fffd170446a4e474efb7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
011570285a QVariant: use QtMetaTypePrivate directly instead of QMetaType
This suppresses a few duplicated checks that both QMetaType and QVariant
has (and QVariant's are stricter), and allows for customConstruct() to
perform a tail-call optimization, if it doesn't get inlined.

Change-Id: I3859764fed084846bcb0fffd1703a503ffb01f8f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
8738d9a6a8 QVariant: move the check for std::nullptr_t a bit up in customConstruct
Avoids having to do work after QMetaType::construct() returns. That
can't get the tail-call optimization right now because it is a non-
inline non-static member function, so the QMetaType must be spilled to
the stack.

Change-Id: I3859764fed084846bcb0fffd1703a3ffc723f43f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
27b1026139 QVariant: split the warning from customConstruct()
In one of the three calls to customConstruct() -- QVariant::detach() --
we've already checked that the type is valid, so don't re-emit the
warning there.

Change-Id: I3859764fed084846bcb0fffd1703a3c7c0fb3164
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
2e6398bd46 QMetaType: don't record trivial construction function pointers
We can implement the trivial {default,copy,move} construction outselves
inside qmetatype.cpp and qvariant.cpp, simplifying the QMetaType
interface object, removing up to three relocations per QMTI.

This adds the testing for QMetaType::isXxxConstructible and
isDestructible that couldn't be added before.

Change-Id: Ic44396b31ba04712aab3fffd16ff0a28f541d507
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:50 -07:00
Thiago Macieira
cfdaf9226d QVariant: delegate more to QMetaType
Instead of duplicating the checks and methods that it already has.

Change-Id: I3859764fed084846bcb0fffd170355bf3dc597c8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 12:35:49 -07:00
Axel Spoerl
effc8be3ce Add nullptr guard in QStyleSheetStyle::drawPrimitive(PE_PanelLineEdit)
Drawing PE_PanelLineEdit in QStyleSheetStyle with the default argument
widget = nullptr causes a segfault.

drawPrimitive tries to fall back to a container widget's render rule
and therefore calls containerWidget() - which crashes when called with
nullptr.

Container widget fallback is pointless when drawPrimitive() is called
with widget == nullptr. This patch skips it in that case.

Fixes: QTBUG-104917
Pick-to: 6.4 6.3 6.2
Change-Id: I09e57dccfebb81a308944c233846d5b9ef58819e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-27 21:35:49 +02:00
Alexandru Croitor
818a15234c CMake: Make sure qtbase examples are installed into the correct path
The find_package calls need to happen after we set INSTALL_EXAMPLEDIR
to ensure that INSTALL_EXAMPLEDIR is overridden if necessary.

Pick-to: 6.2 6.3 6.4
Task-number: QTBUG-102879
Change-Id: I3c2e6c5a68a8c6ff9b98b79dbd6c83445d8da052
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-07-27 16:37:54 +02:00
Alexandru Croitor
22c3b87b14 CMake: Mark PlatformCommonInternal as a Qt6 package
Add PlatformCommonInternal to the list of packages
compared in qt_internal_is_lib_part_of_qt6_package

It gets rid of the following warnings when configuring
standalone tests

 CMake Warning at cmake/QtFindPackageHelpers.cmake:406 (message):
 Could not find target Qt6::PlatformCommonInternal to query its
 package name. Defaulting to package name Qt6PlatformCommonInternal.
 Consider re-arranging the project structure to ensure the target
 exists by this point.

 CMake Warning at cmake/QtFindPackageHelpers.cmake:374 (message):
 Could not determine package version of target
 PlatformCommonInternal. Defaulting to project version 6.5.0.

Amends 606124c5cc
Amends dd1030a450
Amends dffcc2370e

Pick-to: 6.4
Task-number: QTBUG-104998
Change-Id: I65c23c20b3c1b70dbfd54edd4f5b83c6781f5e6f
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-07-27 16:24:10 +02:00
Alexandru Croitor
0e0352ab4d CMake: Fix install destination of in-tree examples
Previously we called _qt_internal_override_example_install_dir_to_dot
in Qt6CoreConfigExtras.cmake as part of a
find_package(Qt6 COMPONENTS Core) call, and we assumed that the
Extras file would always be included in each example project.

But our package dependencies handling code skips calling
find_package(Qt6Core) if Qt6Core_FOUND is already set to TRUE,
which will definitely happen due to root-scope find_package
calls when configuring other repos.
That means we wouldn't override INSTALL_EXAMPLEDIR to "."
and the install destination would end up being something like
${CMAKE_INSTALL_PREFIX}/example_relative_path/example_relative_path
aka a double nested path.

Make sure we call the
_qt_internal_override_example_install_dir_to_dot function
in Qt6ConfigConfig.cmake in addition to Qt6CoreConfig.cmake.

That way, even if Qt6Core is skipped during dependency resolution,
it's still handled by the Qt6 package itself.

Because the function is defined in the Core package, guard the call
with an if(COMMAND) and only call the function if it wasn't previously
called within the current or ancestor scopes.

Amends ac4a913f33

Pick-to: 6.2 6.3 6.4
Fixes: QTBUG-102879
Change-Id: Id47e3ce06faec6d156ae1473942dae0f9b90cb46
Reviewed-by: Christophe Giboudeaux <christophe@krop.fr>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-07-27 16:24:10 +02:00
Alexandru Croitor
578f4ba00c CMake: Add per-target support for iOS launch screens
To support per-target iOS launch screens we need a way to specify
custom Info.plist entries without using cache variables, which we were
forced to use due to the implicit configure_file done for
MACOSX_BUNDLE_INFO_PLIST.

We now introduce an extra configure_file call done in a finalizer,
before we hand off the Info.plist file to MACOSX_BUNDLE_INFO_PLIST.

This extra configure_file call allows us to insert / substitute
additional Info.plist entries that CMake does not allow setting.

If a custom Info.plist file is provided, the finalizer will simply
skip the logic for creating a new one.

Amends e5b3436255

Pick-to: 6.4
Fixes: QTBUG-101064
Change-Id: I65496da146c9430a949a8163817021d54da28386
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-07-27 16:24:10 +02:00
Alexandru Croitor
f62412e6ec CMake: Add shared library plugin names to the QT_PLUGINS property
Otherwise we don't create a Qt6FooPlugins.cmake file in shared Qt
builds.

Adjust comment.

Amends f68e2c92cc
Related to 7d6f1ee5a7

Change-Id: I9c66d81197a4867039d5c53daf1b7edf0391c701
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-07-27 15:43:18 +02:00
Mikolaj Boc
19507dc678 Deliver non-client area mouse events to WASM windows
QWasmCompositor now delivers non-client area mouse events to windows as
it should, which fixes a lot of issues with window manipulation. One of
such issues is re-docking of dock widgets.

Fixes: QTBUG-105092
Change-Id: I9de45b7e1b1a80b64387031eb0cc0b31a4be2571
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2022-07-27 14:08:08 +02:00
Albert Astals Cid
434595865b Doc: be more explicit about when a MEMBER property NOTIFY signal is emitted automatically
Change-Id: Ied5eb0c218d11872fbf590d735a88a11b5cd1c3e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2022-07-27 10:51:08 +02:00
Thiago Macieira
999654fec7 QByteArray: inline QByteArray::isNull()
Keeping it out-of-line is unnecessary and has been since 5.0. In Qt 4.x,
it was necessary to compare to the shared_null, which for QByteArray was
a static variable. The one for QString has always been inline because
the shared null was a static member of QString (in Qt 3, QString::null
was a QString variable).

See:
https://code.qt.io/cgit/qt/qt.git/tree/src/corelib/tools/qbytearray.cpp#n3249
https://code.qt.io/cgit/qt/qt.git/tree/src/corelib/tools/qstring.h#n505

Pick-to: 6.4
Change-Id: I89c4eb48af38408daa7cfffd16fdd7696520f1b6
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-27 06:43:00 +00:00
Thiago Macieira
37aa9a9cef WindowsFaultHandler: print the backtrace to stderr, not stdout
Otherwise the contents that vary per architecture and build will make it
impossible to self-check (tst_selftests)

Change-Id: Ibcde9b9795ad42ac9978fffd16f2cbc352c3503c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-07-27 08:43:00 +02:00
Thiago Macieira
764d82ceb5 QMetaType: add is{Default,Copy,Move}Constructible and isDestructible
Unit tests will come after I've fixed the flags themselves. At this point,
they are wrong.

[ChangeLog][QtCore][QMetaType] Added isDefaultConstructible(),
isCopyConstructible(), isMoveConstructible() and isDestructible().

Change-Id: I3859764fed084846bcb0fffd170353109378e34c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-26 20:12:45 -07:00
Thiago Macieira
74fac865cf QMetaType: add registerType() and qRegisterMetaType(QMetaType)
This also rewrites QMetaType::id() on top of the helper, with the benefit
of calling a member static function, so QMetaType doesn't need to be
spilled onto the stack. In some upcoming changes I need to ensure that
QMetaTypes are registered so they can be found by name and I'd like to
have a dedicated function name for that, instead of calling .id().

Since I needed to add docs for the new function, I've updated for the
old one too.

[ChangeLog][QMetaType] Added QMetaType::registerType() and an overload
of qRegisterMetaType() taking QMetaType (the two functions do the same
thing). These two functions ensure a given QMetaType is registered with
the Qt global registry, so they can be found by name later. Using
qRegisterMetaType<T>() also accomplishes the same thing, but is slightly
better for completely generic code because it will avoid emitting the
registration for built-in types.

Change-Id: I3859764fed084846bcb0fffd170351d606034c22
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-26 20:12:30 -07:00
Thiago Macieira
b1d9331c15 QMetaType: fix isRegistered()
It's not registered until an ID is assigned.

Pick-to: 6.4
Change-Id: I3859764fed084846bcb0fffd17034f5b369c5b4d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-26 14:33:21 -07:00
Thiago Macieira
51905f8e76 tst_QMetaType: suppress most warnings
It's not warning-free, but it's much better.

Pick-to: 6.3 6.4
Change-Id: I3859764fed084846bcb0fffd170323c9ed12dd23
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-26 14:33:21 -07:00
Thiago Macieira
aae882b02f tst_QMetaType: merge flags and flagsStaticless
And rewrite them with templates. QMetaType::typeFlags() simply calls
flags() anyway.

Pick-to: 6.3 6.4
Change-Id: I3859764fed084846bcb0fffd170323f9d8c80466
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-07-26 14:33:21 -07:00
Thibaut Cuvelier
fecb278dc9 Remove an extraneous section in the documentation of QRomanCalender
This section didn't even have a title. History suggests that it never
had a title and does not indicate why it is needed. Commit introducing
the change: aa8393c94f

Also, improve the wording of the class description.

Change-Id: I95dbb851f10e6562f3c8875cb0e237fa4334ffc1
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-07-26 20:28:03 +02:00
Dimitrios Apostolou
57be602fde Fix test being flaky on Linux
The cause is that the first EXPOSE event comes with the window not
having focus yet. See QTBUG-105177.

Also remove processEvents() as events are always processed when doing
qWaitFor...().

Task-number: QTBUG-105177
Change-Id: I2260d1885388bbf7091c423bc9b4c16e2ed0090f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-26 16:33:41 +02:00
Dimitrios Apostolou
2f8127f526 Test fails always on Android, so skip it
Previously the failure was been ignored because of the very generic
"linux" entry in the BLACKLIST file

Task-number: QTBUG-105201
Change-Id: I6914fe350f78266fc18541eb8fcd881f5a4ac511
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-26 16:33:34 +02:00
Dimitrios Apostolou
b1891e86d7 Test is no longer flaky
+ I could not reproduce the flakiness on OpenSUSE Tumbleweed.
+ No significant flakiness can be seen for this test in our testresults
  statistics.
+ Ubuntu-16.04 is no longer part of our CI

Change-Id: I7a18fc3fe2e58af8533171ebae0457b08424e810
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-07-26 16:33:27 +02:00
Dimitrios Apostolou
83090e16cb Fix flakiness of test on OpenSUSE/KDE
The cause is that the first EXPOSE event comes with the window not
having focus. See QTBUG-105177.

Fixes: QTBUG-67254
Task-number: QTBUG-105177
Change-Id: I04789d0a173979d9a60893989f76566b617c6576
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2022-07-26 16:33:22 +02:00
Eli Schwartz
d8f9ac784e CMake: include the libexecdir in generated pkg-config files
In Qt6, the installed tools can be in one of two different locations,
depending on whether it is considered a helper or not. This means that
when migrating from Qt5 to Qt6, the pkg-config files no longer reliably
described where to find tools such as moc, uic, and rcc, which
third-party projects need to know about in their build systems.

Add this information in, to match qmake -query and Qt6CoreConfigExtras.cmake

Task-number: QTBUG-105051
Pick-to: 6.2 6.3 6.4
Change-Id: I6692a76e0491a1c5e28982aa5fbe8b8aec8dec56
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-07-26 10:18:01 -04:00
Alexandru Croitor
84c9a79a69 CMake: Make tst_qdbusabstractadaptor depend on qmyserver
Pick-to: 6.2 6.3 6.4
Change-Id: I8a38c6e2de7639ac8cd07e36a4f6d79830d34dc8
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2022-07-26 14:33:42 +02:00
Alexandru Croitor
12629c6b80 CMake: Ensure build instructions are always shown the first time
Regardless of the current log level.

Somewhat similar to dd5c860a7b

Amends e2a0ddbb69

Pick-to: 6.2 6.3 6.4
Change-Id: Ib7bc87f07e195125c858dcece2df6e82303dd01c
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2022-07-26 11:10:28 +02:00
Marc Mutz
d76bf64531 QByteArray: fix base64 round-trip w/more than 2GiB data
There was an explicit int cast in fromBase64Encoding() which was never
ported to qsizetype and therefore truncated the result.

Fix by removing the int cast.

Add a test, optimize it for as low memory usage as possible, given we
need to work in input and output data each in excess of 2GiB.

Fixes: QTBUG-104985
Pick-to: 6.4 6.3 6.2
Change-Id: I9c0924957e62e5cb3003132cd811b8b0315d8ac1
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-07-26 02:06:17 +02:00