Use a stack buffer, and perform the recoding from L1 to U8 in chunks.
Solves the L1 case of
Task-number: QTBUG-109284
Pick-to: 6.5
Change-Id: Ia9ac7d8b27fd452d24d9e27f0575f9fc83b6dcbc
Reviewed-by: Mate Barany <mate.barany@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Add TARGET instruction in property setter, used in debug mode on macOS.
Task-number: QTBUG-107842
Task-number: QTBUG-109227
Change-Id: I8704b7009c36ea8ddbf8773abfaf2b5f34f728ac
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
We wasting time and resources by signing binaries that
are for internal use only.
Change-Id: Ic3271af7f11dac05979ff14a7ffa3f9075fe0ecb
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
This reverts commit 6a18bc8090.
Reason for revert: The reason for the original revert has been fixed
in c146d25a87.
Change-Id: I996960633dc75a7ef3ae12ab7f759658af7932c5
Reviewed-by: Xavier BESSON <developer@xavi-b.fr>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Any QHttp1Configuration object created has 'ShortData data' as active
member. std::exchange()ing or qt_ptr_swap()ping 'Private *d', then, is
accessing the inactive member of the union, and that's UB.
Fix by swapping and copying the whole union, as opposed to any of its
members, and, in the move constructor, activating Private *d.
This is now safe, as assigning to 'd' ends 'data's life-time and
starts 'd's. Even if we assign a well-formed object to a moved-from
object, we either swap or copy the whole union, so SEP. For
self-move-assignment in the moved-from state (Hinnant Criterion),
we're using std::swap() on the whole union, so SEP.
In addition, activating `Private *d` in moved-from objects means that
a future ~Public's use of unconditional 'delete d' won't invoke UB,
either.
Thanks to Peppe for insisting on fixing this.
Pick-to: 6.5
Change-Id: Ic1323b8416d6b17ae21768c625de1daba0944133
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The move-constructors for QTimeZone and QTimeZone::Data are trivial so
can be inlined. Requested by Marc Mutz in 6.5 API review.
Pick-to: 6.5
Change-Id: Id59dc95e0da061187d9db8cf0a5ab82fcece1694
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The {CF,NS}TimeZone declarations are only used when backends are in play.
Pick-to: 6.5
Change-Id: I17fd3fc90ce96f35bcb8f81b862cc5d3752e37e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This alone isn't enough:
Feature "xcb": Forcing to "ON" breaks its condition:
QT_FEATURE_thread AND TARGET XCB::XCB AND TEST_xcb_syslibs AND QT_FEATURE_xkbcommon_x11
Condition values dump:
QT_FEATURE_thread = "ON"
TARGET XCB::XCB found
TEST_xcb_syslibs = "FALSE"
QT_FEATURE_xkbcommon_x11 not evaluated
But when it says:
-- Performing Test XCB (extensions) - Failed because XCB::CURSOR not found
The user can know what to do.
Pick-to: 6.4
Change-Id: I810d70e579eb4e2c8e45fffd1719c0abf608ed30
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Removed some unused includes in the sql sources
Change-Id: Ifbe1df401e0f4042650f8ce9902cb9977d2aa484
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
The field is never set and thus never used meaningfully.
Change-Id: Ia45afa6339d38316d76766a736ba8cb1ce9f58fa
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This code is completely unused at this point.
Change-Id: Id0ecd0125e59b08904ae722ad4319c5ff15620a6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
A few things:
- Improved the documentation by adding a CMake section, briefly
describing the process of adding the plugin, and placing it where it
should be.
- Write a note about the case where the style may be overwritten at
launch, and how to set the a new style using a CLI
- Improved the CMake build such that it creates the App Bundle
correctly, and also works without an App Bundle as well.
- Changed the example, and plugin such that now instead of a QPushButton
we have a QTextEdit, and change the text color.
- Replaced the application screenshot
Fixes: QTBUG-107842
Fixes: QTBUG-109227
Change-Id: I161a91b27df016ff6230fac3871b79d2dfbdf18a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
It doesn't seem like that it is being used anymore, except an instance
in pro2cmake which I replaced by NO_GENERATE_METATYPES.
Pick-to: 6.5
Change-Id: I135cf47e6041e98b354fb684f0079dad30689dea
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This replaces the qt_parse_all_arguments macro with the built-in
`cmake_parse_arguments(PARSE_ARGV`. In addition, a new function,
_qt_internal_validate_all_args_are_parsed, can be used to check whether
any _UNPARSED_ARGUMENTS have been passed to the function.
Fixes: QTBUG-99238
Change-Id: I8cee83dc92dc6acdaaf747ea6ff9084c11dc649b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This overridden function is not used and also can't be triggered by a
synthetic input event in an auto test.
Change-Id: Id8b69b440a90c18cf5870e34804fae3e6607e49f
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
"src/corelib/kernel/qproperty.cpp" documents assignment operators over
`QPropertyBinding` for `QProperty` and `QPropertyAlias`.
Those operators were removed in 638df6138e
and are thus stale.
Similarly, an assignment operator for `QPropertyAlias<T>` over a `T&&`
is documented albeit it was removed in
927647cd03.
Due an incorrect implementation of QDoc, which has now been removed,
with regards to identifying copy/move assignment operators, and the more
superficial and incorrect way in which QDoc binds those kind of elements
to the clang AST, QDoc was unable to report the lack of a binding
declaration for those elements that were removed, producing incorrect
documentation instead.
As of the latest changes to QDoc this will correctly generate a warning.
To avoid the addition of new warnings and remove stale and incorrect
documentation, the document blocks were removed from the file.
Change-Id: I30e20f26d4c44e4589abf40546d8ebaa4e869638
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
QMake and qtpaths used qVersion() to report Qt's version number. This is
problematic if those tools are run in an environment where a different
Qt version is loaded (e.g. by setting LD_LIBRARY_PATH).
This reverts commit a783c3d574, which
changed the use of the QT_VERSION define to a qVersion() call in qmake.
Additionally, we use QT_VERSION in qtpaths too for consistency.
Pick-to: 6.5
Change-Id: I6c8a1aa6ee6169becd7c685a98ce23c22c3864c7
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
$<CONFIGURATION> is deprecated from CMake 3.0
Pick-to: 6.5
Change-Id: I1b19507a8cb3325095440e0a22fc54f9fde77e9b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
doubleconversion is not a feature user can disable
Change-Id: Ie430a88449a39885e9002322c3572ead9bc04bc1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Main purpose is to limit the number of keys a user can enter, so
let's be explicit about this. 'Truncation' seems to happen only if
the program programmatically sets a longer sequence to the edit,
which is arguably a programming error and also shows up as a
warning in the logging API.
Pick-to: 6.5
Change-Id: I7b2b74e8dab44c5ad16ffefc25c5610708139353
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
qwasmclipboard.cpp and qwasmdrag.cpp had the same logic that read
the js DataTransfer object implemented twice with small differences.
Use a single implementation in both.
This also introduces a clearer memory ownership model in the reader
code, and fixes a potential race condition by introducing a cancellation
flag.
Removed the useless QWasmDrag type which was in essence a SimpleDrag
and made the m_drag in QWasmIntegration a smart pointer.
Fixes: QTBUG-109626
Pick-to: 6.5
Change-Id: I5b76dd3b70ab2e5a8364d9a136c970ee8d4fae9c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
This got lost during the QStringView port that happend in Qt 6.0
(commit 548dcef089) because
QString::operator+=(QStringView) does not copy the nullness of the right
side, whereas QString::operator+=(const QString &) does.
Pick-to: 6.2 6.4 6.5
Fixes: QTBUG-84315
Change-Id: Ide4dbd0777a44ed0870efffd17399b772d34fd55
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Its objective is to copy uninitialized content and that's fine.
qcontainertools_impl.h:73:25: error: ‘~~~’ may be used uninitialized [-Werror=maybe-uninitialized]
73 | std::memmove(static_cast<void*>(out),
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
74 | static_cast<const void*>(first),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 | n * sizeof(T));
| ~~~~~~~~~~~~~~
Pick-to: 6.5
Change-Id: Ide4dbd0777a44ed0870efffd173917092b671dd0
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Allow setting the initial directory where the file dialog
will be opened.
Pick-to: 6.5 6.4 6.2 5.15
Change-Id: I1395b367c74d28fb2890ac53a90456c3ac4c1b05
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
We must explicitly set the GENERATED property on source files we
generate.
This amends commit f0a7d74e1d.
Change-Id: Ifab405cd98deece49a1566ae04220e2b5d576429
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The -no-rpath configure switch had no effect.
Pick-to: 6.5
Change-Id: I306ec33249a219066ce94d18da5f1ca3d92905e1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
__GlobalConfig_install_dir translates to lib/cmake/Qt6/ and 3rdparty
modules will be in lib/cmake/Qt6/3rdparty which seems to be a logical
place for them.
Pick-to: 6.5
Change-Id: I90c715b9502b0dfc666bb3202a838f20ba6110cf
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
QT_FEATURE_ltcg is TRUE if either of
CMAKE_INTERPROCEDURAL_OPTIMIZATION=ON or
CMAKE_INTERPROCEDURAL_OPTIMIZATION_<CONFIG>=ON are passed to the
configure, or the cmake command.
Pick-to: 6.5
Change-Id: Ibaece67de6cc6f89e505038fd02fb50008c47d48
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This replaces an ad-hoc solution.
As a drive-by, remove a check that was always true.
Pick-to: 6.5
Change-Id: I72166ee75a2c474dc91bc699c790f256b78b3b7a
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Because Python 2 reached end of life. I wonder how this even works on
macOS, as my Monterey doesn't even have "python" any more.
Pick-to: 6.2 6.4 6.5
Change-Id: Ibddb9b0ada5a4bbaa64bfffd173b239c6c4b66f3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
initializer_list is supposed to be cheap to copy, and passing by value
will avoid one further indirection (though the compiler can probably see
through it, anyway).
Pick-to: 6.5
Change-Id: I8ffbf5de4d8cf2c85f4cff76ef63d6cdeac4db5a
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
qTopLevelDomain() is misleading in the configure summary. The function
has been removed by commit 50b3097683
Also clean up the topleveldomain files.
Pick-to: 6.5
Change-Id: Ib577962909a83f4f41d1660a26fd80b37803ae18
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Otherwise we might conclude that we found a usage description when
PlistBuddy outputs "Error Reading File: /tmp/Info.plist" to stdout.
For CMake this is not an issue as we pipe stderr to a separate variable,
that contains "Cannot parse a NULL or zero-length data" in this case.
Fixes: QTBUG-109967
Pick-to: 6.5
Change-Id: I9d819b6de405b88bb7d1d75c22b6f5187f26e553
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
There was a plan to invert the API, but since the TODO, we are settled
on the non-inverted name, ie., GENERATE_CPP_EXPORTS.
Pick-to: 6.5
Change-Id: I84f531d870965e0b7d0d821d1ff08606ab8054ab
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
<out_var>_private_header_dir and <out_var>_private_module_header_dir are
documented to point to "the specific framework version and framework
bundle version".
Pick-to: 6.5
Change-Id: I00053f106ec9be88f7892c842ca75549cfc54124
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
ICU 50.1 was released May 11th, 2012. Despite of the restriction, all
currently supported operating systems will continue to be supported.
All mismatches described in QTBUG-99715 are fixed in this version.
Restricting to 72.1 (latest version as per January 2023) or 63.1 (2018)
would still exclude e.g. RHEL 9.0, which ships version 56.1.
Task-number: QTBUG-109505
Pick-to: 6.5
Change-Id: Ic5cd7927d6f5fb60a89423c305796a9ed311bfa2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
One of the examples were using a different version than the others.
Though QString's formatting probably didn't change since then so
it was no problem.
Anyway, pretend like we're releasing it now for the first time and
set 6.5 on all of them
Task-number: QTBUG-108875
Pick-to: 6.5
Change-Id: I28b496ab3d8ff54c503a032ba15882cdf3d5eccf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Ends up shortening the loop, making it easier to read at a glance.
Pick-to: 6.5
Task-number: QTBUG-108875
Change-Id: Ia12a994259b00e9b57f2de48124be9cb38553bf5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>