Replace a combination of a mutex, atomic variable, and another variable
by a function-local variable initialized by lambda.
C++17 standard guarantees that the lambda is called only once and
that any other callers will waiting for initialization to complete.
Task-number: QTBUG-103559
Change-Id: If9af8584e648ddb9ec518498ce035105e52413a2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
QRegularExpression::isValid returns true on default constructed objects,
so the filter was always matching even though it was not meant to be
applied at all.
Fix this by checking that there is a non-empty pattern string set and
applying the filter only then.
Fixes: QTBUG-87764
Pick-to: 6.4
Change-Id: If37f8abaecacba3dc6f0b14da681a6e025367c10
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
A couple of variables contained "Destianation" instead of "Destination"
Change-Id: I98a15652347d1b0dad640bc49925ec296830147b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This way it is able to pick up all of the properties assigned to it
before finalization.
Change-Id: I9da635f8620859a669c4e4d589fff56a3ce42ab9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
[ChangeLog][QtCore][Meta Object] QMetaMethod::invoke(),
QMetaObject::invokeMethod(), and QMetaObject::newInstance() are no
longer limited to 10 arguments.
[ChangeLog][QtCore][Meta Object] The use of the Q_ARG macro is no longer
necessary when using QMetaMethod::invoke(), QMetaObject::invokeMethod(),
and QMetaObject::newInstance(). Types may now be passed
directly. Similarly, Q_RETURN_ARG can be replaced by the free function
qReturnArg().
[ChangeLog][Potentially Source-Incompatible Changes]
QMetaMethod::invoke(), QMetaObject::invokeMethod(), and
QMetaObject::newInstance() no longer support passing forward-declared
types in the argument list (it was possible to pass them by
const-ref). From Qt 6.5 onwards, all types in the argument list must be
fully defined.
[ChangeLog][Potentially Source-Incompatible Changes] Attempting to use
the internal types QArgument, QReturnArgument, QGenericArgument, or
QGenericReturnArgument directly with QMetaMethod::invoke(),
QMetaObject::invokeMethod() or QMetaObject::newInstance() may fail to
compile. Those are internal types that were never meant to be used
directly and will be removed in Qt 7. If really necessary, ensure all
arguments passed to those functions are directly using those classes and
not mixed with Q_ARG and Q_RETURN_ARG. Implementations of bindings to
other languages should contact the Qt development mailing list to
discuss options.
Change-Id: I36b24183fbd041179f2ffffd1701e3e8e47e0fba
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This amends 64e6233252.
Automoc complains:
AutoMoc warning
---------------
"SRC:/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp"
includes the moc file "qgtk3dialoghelpers.moc", but does not contain a Q_OBJECT, Q_GADGET, Q_GADGET_EXPORT, Q_NAMESPACE, Q_NAMESPACE_EXPORT or Q_ENUM_NS macro.
AutoMoc: /home/tjmaciei/src/qt/qt6/qtbase/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp:0:1: note: No relevant classes found. No output generated.
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Ic6547f8247454b47baa8fffd170ea8a8ce0ed06c
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Ilya Fedin <fedin-ilja2010@ya.ru>
This is kind of porting missing parts QX11Data::xdndHandleDrop()
in src/gui/kernel/qdnd_x11.cpp in Qt 4.
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I3a9d657c63dbca43e33262f49484861e60f59b58
Reviewed-by: Liang Qi <liang.qi@qt.io>
Replace hardcoded Qt6 prefix of module tools target when setting
the name of tools package.
Change-Id: Icb6f38cce766c9d32216a65a8a5ce9552d622b72
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The doc of QMetaEnum::valueToKey() says to use ::valueToKeys() instead
for flag types.
Pick-to: 6.4
Change-Id: I48e5ba47324137f2ce2710f1d876e93e7c562e9f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Move the docs types and macros from qlogging.h from qglobal.cpp to
qlogging.cpp. Generate the QtLogging forward header and update the
'\relates' commands accordingly.
Change-Id: I2abaf531b2749ff43909f835efd980e1fc98f278
Task-numer: QTBUG-106154
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Local file system files are difficult to reach on WASM. Build the test
data in so that it's reachable to WASM tests nevertheless.
Change-Id: I65022db7645248d040434759fb60c3076fd65bd8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
A fragment of inline code wasn't wrapped in \c{}.
Doing so made the quotes it was wrapped in redundant.
Documentation of of QSKIP's parameter claimed it does something it
should, but it's up to the client code using it to write a description
that lives up to that.
Pick-to: 6.4
Change-Id: Ib355b9b85c9986f244ae01479134245f182c912c
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
The testlib docs on how to skip whole tests was qmake-specific, so add
the missing details for CMake.
Pick-to: 6.4
Change-Id: I247d08262302dcedb98ffbf301932d6dd84d7ff7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Applied Q_CONSTINIT to variables with static storage duration, but
skipped the POD types with core constant initializers.
Task-number: QTBUG-100486
Change-Id: Iaabf824e9cb0f29a405a149912200d4e4b3573c1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Add documentation of usage of CBOR in convert and cbordump examples,
add a CBOR overview, and add links to them other places in the
documentation.
Task-number: QTBUG-85912
Change-Id: I518792db63647bf9ddd4507d8d4b7ef056192f82
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Fixes deploying libgcc, currently it fails to change the rpaths with the
following error:
ERROR: Could not parse otool output line:
"\t/usr/local/opt/gcc/lib/gcc/11/libgcc_s.1.1.dylib
(compatibility version 1.0.0, current version 1.1.0, reexport)"
Pick-to: 6.3 6.4
Change-Id: I5c866a375f88e3b222cbdbebc167b04174f753b2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
For the constructors, replace int with qsizetype. For the incorrect
return type in \fn of length(), drop the return type, the presence of
which violated DRY, stressing the importance of that SOLID principle.
Fixes: QTBUG-103531
Pick-to: 6.4 6.3 6.2
Change-Id: Ic7a8e1953333c28a2722fd7f753a0b5af6777395
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This includes QDBusReply, QProperty, and QStringBuilder expressions.
The new constructor subsumes the QStringBuilder case without requiring
jumping though hoops to delay the definition of the ctor the way we
had to for the explicit QStringBuilder constructor, so remove the
explicit QStringBuilder one again.
[ChangeLog][QtCore][QAnyStringView] Can now be constructed from
anything that implicitly converts to either QString or QByteArray.
Fixes: QTBUG-105389
Change-Id: I0e584dd3e20d591381609a3329ef47cec7356ecc
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Port ints to qsizetypes where they're not blatantly wrong. This
includes indexed loops that don't require the additional range,
because int these days is a code smell, so if we can save the next
code reader a few moments of digging to convince herself that the int
is ok even in 64-bit builds, then let's do it.
The Windows implementation only has the most obvious occurrences
ported, because I lack platform access. Created QTBUG-105100 to track
the missing changes. OSX should be fine, provided sizeof(long) == 8 on
64-bit OSX.
Pick-to: 6.4 6.3
Task-number: QTBUG-103531
Change-Id: I679183f28ed42e89e2879e29457e6a4e487fed0d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Unify the settings for single-threaded and multi-threaded builds;
Qt now always enables heap growth by default.
This means we don't have to reserve a large (1GB) fixed memory
size, but can instead set the smaller (50 MB) initial memory size,
like the single-threaded build does.
Enabling threads + memory growth can potentially cause
a performance regression when accessing heap memory from
JavaScript (https://github.com/WebAssembly/design/issues/1271).
We leave it for the application to decide if this applies,
and if the switch to fixed memory should be made.
Change-Id: I96988b072506456685086e55aca4007a146bd70f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Since qVersion() might be called also from C code, disable the parts of
qlibraryinfo.h that are relevant only for C++ code if __cplusplus is not
defined.
[ChangeLog][Potentially Source-Incompatible Changes] qVersion() is
moved from qglobal.h to qlibraryinfo.h, '#include <QtCore/QLibraryInfo>'
needs to be added where it's used.
Task-number: QTBUG-99313
Change-Id: I3363ef3fa4073114e5151cb3a2a1e8282ad42a4d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
And include qcore_mac_p.h where needed.
Task-number: QTBUG-99313
Change-Id: Idb1b005f1b5938e8cf329ae06ffaf0d249874db2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The existing code did not take into account that some of the controls
might be missing. Clicking on the window frame, just to the right of
the close button, would then maximize a window, even though this was
not the desired behavior.
Also, simplified most of the checks for existence of controls as
different idioms were used, which were equivalent. Now, all visibility
is computed at the makeTitleBarOptions stage and a single idiom of
tb.subControls.testFlag is used for checking control visibility.
Pick-to: 6.4
Change-Id: I5a94f20fbf527243ff1ae5e6886688d2dd793a6c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
This will tell developers if they are using the wrong version which may
not build or might cause other issues.
Pick-to: 6.4
Fixes: QTBUG-105922
Change-Id: Ic5c4549d5637182dce380e415f131e33a4da416f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
The function return value changed in commit e1f25b1c8. Anyhow, this
breaks the AUT probe of Squish on Windows, as long as it is built
against an older Qt version.
Squish can of course be adjusted eventually, but let's allow some
grace period.
Pick-to: 6.4
Fixes: SQUISH-15324
Change-Id: I289ed43bffcf292aa2eae3962a4661ed5c29100e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
The accessibility class associated with trees, tables and lists was
reporting a default/empty state, causing issues with accessibility
tools.
Fixes: QTBUG-92964
Pick-to: 6.4 6.3 6.2
Change-Id: I9c8ee5e7e582fd6b6a59cd70437eeddad0f4eb8e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
In 54f328f0e8 issues with dragging
dock widgets between screens were solved. However, it only
worked well if the widget was floating. It worked wrong when
dragging out a docked widget. That is fixed by this patch.
Pick-to: 6.4 6.3 6.2 5.15
Fixes: QTBUG-106064
Change-Id: I8d486d30a334719a2931828464ccaceb8ba2e019
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Since we had code to default to zstd as the default algorithm instead of
"Best", we ended up not compressing anything.
[ChangeLog][rcc] Fixed a bug that caused rcc not to compress files with
any compression algorithm if the --no-zstd option was present.
Pick-to: 6.2 6.3 6.4
Fixes: QTBUG-106012
Change-Id: Ic6547f8247454b47baa8fffd170fddae429f82d2
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
With OpenSSL 3.0.5 we see X509_print giving us the text representation
not matching any of previous ones - mostly a question of spaces
and formatting. Let's add a proper version to compare against and
remove useless 0.9.8, 1.0.0, 1.0.1, - we don't support them anymore
and thus QSslCertificate::toText() will never give a match.
Pick-to: 6.4 6.3 6.2 5.15
Task-number: QTBUG-106017
Change-Id: Ida11321c23e74c7313acc682237ab78408cf2803
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
leaf.p12 is using RC2 for encryption and it's disabled by default
in openssl v3.
Pick-to: 6.4 6.3 6.2 5.15
Fixes: QTBUG-106017
Change-Id: I4edd0d29506d1e50b2b618b6a00cceeb4b156204
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Fix possible undefined behavior in clear_thread_data.
The key used in pthread_setspecific must be obtained
from pthread_key_create or undefined behavior occurs.
Use set_thread_data to clear it since it ensures that
the key has been obtained using pthread_key_create
by calling pthread_once using
create_current_thread_data_key.
Fixes crash when closing threaded qt apps on NetBSD.
Pick-to: 5.15 6.2 6.3 6.4
Change-Id: I1c7d2628f4248e00a12724a952568f7d92011986
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The new batched test runner is now used for running the tests instead
of the wasm shell, which runs for single test cases.
Change-Id: I7b7e6dd7993ba7937124c5843356b6891301b893
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The test expects the helper libraries to contain the .dylib suffix
rather than .so.
Replace glob copying of the libraries (which depends on the underlying
shell) with manual copy calls.
This also ensures the libraries don't contain a _debug postfix in the
file name even in a debug build, which would break the tests.
Amends f8c1909320
Amends 1dff26dd95
Change-Id: I20361c33c4a1b9dd4b5273fcdb8cc79c9f266327
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
The DirectFB QPA plugin has not built since Qt 6, because it used
deprecated API which has been removed and private API which has
changed.
This change updates the handleMouseEvent() and
handleWheelEvent() calls with the contents of the deprecated
overloads the way they were in Qt 5.15.
In addition, it updates usage of GlyphAndSubPixelPosition to default to
vertical subpixel position of 0, and adds override qualifiers where
necessary.
Fixes: QTBUG-105061
Change-Id: Id7516f8e3c0a466d15b754f8e5f6df15a5f9526a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Because this version does not seem to like MD5 which old cert was using.
Fixes: QTBUG-106019
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: Id354d1e32acb0528685b2788ee9c7326c43397bd
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
The script is now able to:
- kill a test that is not responding after certain timeout
- multicast output to files/streams (tee-like, but not only on posix)
- forward requested format (xml/txt/etc.) to the test executable
- run a batched test from a batch test package
- interop with the js batched test runner
Change-Id: Ia189d78a078e11b9efd25865c5a0ddc6a62d9b85
Reviewed-by: David Skoland <david.skoland@qt.io>
Whenever a window's geometry changes, the scene has to be redrawn.
This has not been the case if the size didn't change.
Pick-to: 6.4
Change-Id: Ic85e1d75221134788ab2cf2e76bf2ba121f3335e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
[ChangeLog][QtCore][Meta Objects] The QMetaObject::invokeMethod() taking
a method name by string, QMetaObject::newInstance(), and
QMetaMethod::invoke() now support more than 10 arguments.
[ChangeLog][QtCore][Meta Objects] The use of the Q_ARG and Q_RETURN_ARG
macros is now optional with QMetaObject::invokeMethod(),
QMetaObject::newInstance(), and QMetaMethod::invoke(): the type name
will be obtained from the C++ type (the same as QMetaType). The function
qReturnArg() can be used in place of the Q_RETURN_ARG macro. The macros
are still useful in rare conditions where the type was typedef'ed from
its original name.
Change-Id: I36b24183fbd041179f2ffffd17022a2b48c7639b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>