Commit Graph

59748 Commits

Author SHA1 Message Date
Ahmad Samir
a67e7e3bb7 QLocale: add unittests for qstrtod of "NaN" and "nan"
The tests pass.

Drive-by change: Amend qstrntod API docs, the addition is heavily
inspired by cppreference's strtod docs.

Change-Id: Ic8e138e117a3249c752ae5ef2a8a21feb010befa
Task-number: QTBUG-74325
Pick-to: 6.5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-01-17 20:41:48 +02:00
Thiago Macieira
d079ca3429 QCborValue: fix build with GCC 13: extended FP support
qcborvalue.cpp:892:32: error: converting to ‘qfloat16::NativeType’ {aka ‘_Float16’} from ‘float’ with greater conversion rank [-Werror]

Pick-to: 6.5
Change-Id: Ide4dbd0777a44ed0870efffd173906b7cf7c1619
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2023-01-17 10:35:46 -08:00
Fabian Kosmale
1d43cbfede qarraydataops.h: Pass initializer_list by value in copyRanges
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>
2023-01-17 19:22:24 +01:00
Fabian Kosmale
aaa198cb5c qproperty.h: Make ctors explicit
Addresses comments from API review.

Pick-to: 6.5
Change-Id: I859079cc918aa67dffe0c780f6d0b9712652bb4a
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2023-01-17 19:22:24 +01:00
Peter Varga
56d72d36bf Update description of topleveldomain feature
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>
2023-01-17 18:21:26 +01:00
Tor Arne Vestbø
ada434e417 permissions: Take PlistBuddy exit code into account when reading Info.plist
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>
2023-01-17 16:53:57 +01:00
Amir Masoud Abdol
1b4aba0a59 Remove an obsolete TODO
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>
2023-01-17 16:15:11 +01:00
Tor Arne Vestbø
c8839448cc CMake: Tweak qt_internal_get_framework_info to match documentation
<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>
2023-01-17 16:15:11 +01:00
Alexey Edelev
3002816d77 Restrict the minimum supported ICU version to 50.1
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>
2023-01-17 15:15:11 +00:00
Mårten Nordheim
2fe69dbeb8 Fortune* Example: remove needless unset-ing of window flag
It's unset by default in Qt6.

Task-number: QTBUG-108875
Pick-to: 6.5
Change-Id: I3f1c6e4e6de54e9ca0ed8892f9da1d346d16d4c7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2023-01-17 16:15:11 +01:00
Mårten Nordheim
71cd3bc074 Fortune* Example: Bump QDataStream format version
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>
2023-01-17 16:15:11 +01:00
Mårten Nordheim
605eec7b55 Fortune* Example: convert simple for-loop to ranged-for
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>
2023-01-17 16:15:11 +01:00
Mårten Nordheim
45717db7a5 Threaded Fortune Example: update example to use qintptr for descriptors
Pick-to: 6.5
Task-number: QTBUG-108875
Change-Id: Ie635a3d2c4c61a59547e8fed0ec84da8538968a3
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2023-01-17 16:15:11 +01:00
Jan Arve Sæther
0280b7eb96 Painting examples: Don't mix const_iterator and non-const iterators
Reported by Clazy

Pick-to: 6.5
Change-Id: I80fce912b1e5390f0056b1fa9ae0d3cfcf39d045
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2023-01-17 16:06:08 +01:00
Marc Mutz
8ef22183d6 QStringView: remove pointless Q_ASSERT in toString()
QString and QStringView have the same size_type these days.

Pick-to: 6.5 6.4
Change-Id: I59ffe78f51e06ccc130562b1682fb4a672c3ec22
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-01-17 15:39:05 +01:00
Marc Mutz
cc236d5e0c [doc] QPermission: some fixes
- QPermission_s_ -> QPermission

- add a comma to make a text piece clearer

Pick-to: 6.5
Change-Id: I08469cca9a05b08772d101fdab4eccd6b9cfcab8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-01-17 14:39:05 +00:00
Jan Arve Sæther
1e790fb4db Compile easing curve example with -Weverything
As a consequence, also had to add some suppressions:
-Wno-padded         (this warning should almost never be responded to)
-Wno-c++98-compat   (we want to use c++17 features)
-Wno-weak-vtables   (IMO not worth fixing for an example)

Pick-to: 6.5
Change-Id: I28ae4456c0221ad2370879a691f6343affff138b
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2023-01-17 13:45:55 +00:00
Mikolaj Boc
6a9e89121d Concatenate blacklist files for test batch
This works by collecting the paths of all blacklist files
and deferring a call which ultimately reads all of the files and
glues them together to form a master blacklist file for the batch.

There might be conflicting function names inside the batch. For now
we ignore the problem, while keeping in mind that it exists.

Fixes: QTBUG-110016
Change-Id: I9c8412097418c6e93297ab89af718d7466e2e451
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2023-01-17 13:45:39 +00:00
Eskil Abrahamsen Blomfeldt
02effb2c37 Remove redundant scope for glyphRuns() default parameter
Noted in API review: Improves formatting and readability.

Pick-to: 6.5
Change-Id: I3a8f769899031410d00397a885f115adcca82f3b
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2023-01-17 11:59:36 +01:00
Eskil Abrahamsen Blomfeldt
6975dd38c1 Explicit type for new enum type
Noted in API review.

Pick-to: 6.5
Change-Id: I98ec47f4c934156990d67363b69ccd33617661de
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2023-01-17 11:59:36 +01:00
Tasuku Suzuki
d369eabc30 Fix build with -no-feature-menubar
Pick-to: 6.5
Change-Id: I72bd07dbdcfe07badaadce9f19949ee3e352b13e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 19:59:36 +09:00
Marc Mutz
8a96dee4cb QWindowsMimeConverter: fix copyright year
Noted in API review.

Pick-to: 6.5
Change-Id: I08a5cb5cec1d7a13d96c22b69c7999eccfb4f932
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 10:10:31 +01:00
Axel Spoerl
c84f3fd370 QCommonStyle code cleanup
Consistently use int (instead of uint) type for alignment/text
formatting flags passed to QStyle::drawItemText (and overrides).

Clean variables in QCommonStyle::sizeFromContents
- use self-explaining variable names
- rename misleading variables
- define one variable per line
- use consts whereever possible
- insert new lines to make code easier to read
- correct wrong indentations
- use auto in qstyleoption_castis to respect maximum of 100
characters per line

Pick-to: 6.5
Change-Id: Ie145c089606436213c813227154fac29962825d0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-01-17 08:56:44 +01:00
Tasuku Suzuki
c65834279c Fix build with -no-feature-dialogbuttonbox
Pick-to: 6.5
Change-Id: Ia6ac9e6acffda80794a5949793fddc3ab849a98a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 16:00:12 +09:00
Volker Hilsheimer
2951f72584 Remove mousebuttons examples
The example didn't show anything useful, and seemed more like a
manual test case.

Pick-to: 6.5
Change-Id: Ia71f39b26943aab04b6895e63b6eed50dd084bfd
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2023-01-17 06:42:04 +01:00
Tasuku Suzuki
ca772a8ffa Fix build with -no-feature-buttongroup
.../qabstractbutton.cpp: In member function ‘virtual void
QAbstractButton::keyPressEvent(QKeyEvent*)’:
.../qabstractbutton.cpp:1010:58: error: incomplete type
‘QGuiApplicationPrivate’ used in nested name specifier

Pick-to: 6.5
Change-Id: Ia71bb481d125087aa813c891f9508755f435f4d2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 05:07:07 +00:00
Tasuku Suzuki
cff65c860f Fix build with -no-feature-menu
Pick-to: 6.5
Change-Id: Ie18d896799dd99c74dcdf00cd43c2aedcd9b8d1c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 12:53:10 +09:00
Tasuku Suzuki
010a898771 Fix build with -no-feature-draganddrop
Pick-to: 6.5
Change-Id: I88ecd9a84d7fb9f6cb78027cc51e34089e211ff2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 12:53:10 +09:00
Tasuku Suzuki
1613975d95 Fix build with -no-feature-messagebox
Pick-to: 6.5
Change-Id: I4c34f6aa2106afc528f182d7925442acf82b7000
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 12:42:54 +09:00
Tasuku Suzuki
7774c1b079 Fix build with -no-feature-imageformat_png
Pick-to: 6.5
Change-Id: Ib742665b2c379ff600b6a99432c89567a3f7765b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 03:42:53 +00:00
Ievgenii Meshcheriakov
5679f9f82c QUnicodeTools: Use a global static to manage libthai state
Move all libthai symbol resolution and state management into a single
class. Create a single global static instance of this class. This allows
freeing of the state on program exit.

Task-number: QTBUG-105544
Pick-to: 6.5
Change-Id: I2610863f85f49f88e83f1fdaa200ea277c88c0ef
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2023-01-17 04:18:11 +01:00
Marc Mutz
800ebd84f5 QVarLengthArray: cope with vector<unique_ptr>'s copyability
Despite being move-only, std::vector<unique_ptr> advertizes
is_copyable:
  https://quuxplusone.github.io/blog/2020/02/05/vector-is-copyable-except-when-its-not/

Our combined reallocation and resizing function, reallocate_impl(),
runs afoul of this when it uses std::is_copyable in a constexpr-if to
implement resize(n, v) without running into problems with move-only
types: the trait is true, but actual instantation runs into a
static_assert in the STL implementation.

To fix, move the problematic resize functionality out of
reallocate_impl() and into the resp. resize_impl overloads. The shrink
functionality remains in reallocate_impl(), because there are many
more users, and it only requires destructible<T>, which isn't
constraining at all.

Amends a00a1d8806.

Fixes: QTBUG-109745
Pick-to: 6.5 6.4
Change-Id: Ibc5b9cf5375108eb3d8f6c8a16d4fd02dadd73b1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2023-01-16 22:44:13 +01:00
Tasuku Suzuki
03ed57afa0 Move QApplication::autoSipEnabled() to public scope
The method is not meant be a slot.

warning: getter QApplication::autoSipEnabled possibly mismarked as a
slot [clazy-const-signal-or-slot]

[ChangeLog][QtWidgets][Potentially Source-Incompatible Changes]
bool QApplication::autoSipEnabled() is no longer a slot. Code such as
using QObject::connect() to connect to it as a slot or accessing it
through meta object system will have to be rewritten.

Pick-to: 6.5
Change-Id: I892a51120478f3c90e5834c8e3e00bc836b84c52
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-16 20:30:28 +00:00
Tasuku Suzuki
e0a5915f88 Fix build with -no-feature-shortcut
qplatformtheme.h complains about Q_GADGET without <QtCore/QKeySequence>

Pick-to: 6.5
Change-Id: I7561bd3e2484c44842cd25ab12aacb9c00ebedfd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 03:59:09 +09:00
Tasuku Suzuki
b4efc552d8 Fix build with -no-feature-toolbar
Pick-to: 6.5
Change-Id: I9a76ff0896545dff0e945daaec0aeae2236c1e42
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 03:59:09 +09:00
Peter Varga
67fc186f9c Pass flags with dash to rc.exe when auto-generating win32 rc files
Fixes clang-cl build:
  clang-cl: error: no such file or directory: '/c65001'

Pick-to: 6.5 6.4
Change-Id: I9f134f866f17d1eeb12a28b72580151c409a98f6
Reviewed-by: Yuhang Zhao <yuhangzhao@deepin.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2023-01-16 19:59:09 +01:00
Amir Masoud Abdol
d4121dd876 Remove an unnecessary call to _qt_internal_generate_tool_command_wrapper
Alexandru mentioned that at the time qtdeclarative was still using the
variable, but from then, he replaced those as well, and I couldn't find
any usage anymore either.

Change-Id: I6a1893c2dfaa483dc8cb865f7bacf08cadca985b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-01-16 19:18:28 +01:00
Jörg Bornemann
f00dbe1035 Revert "Revert "coin: Build qmake examples in non-qtbase repos""
This reverts commit 0f5af511ea.

Reason for revert: Examples build locally with qmake.

Task-number: QTBUG-109383
Change-Id: Ief37cda919c32f8a6275ed7d8a5f1d38dc1b9ed9
Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-01-16 18:18:28 +00:00
Tasuku Suzuki
ce1506355f Fix build with -no-feature-cssparser
Pick-to: 6.5
Change-Id: I146ac61f92acdcd22c46ca27a1fca48c47817e3c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-17 03:18:28 +09:00
Kai Köhne
0d596bf53d Doc: Move documentation for QAI::selectionInterface to source file
qdoc doesn't allow documentation in headers.

Pick-to: 6.5
Change-Id: I25686572aa15395bb3eb94dd637e4674e7310afe
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2023-01-16 16:27:19 +01:00
Mikolaj Boc
cb20cbd3c8 Make qt cmake functions react properly to batch dummy targets
Stub targets introduced in 65b7aacb make the old batch target detecting
measure in qt_internal_extend_target,
qt_internal_undefine_global_definition, qt_internal_add_resource
obsolete, since now the targets actually exist in the build system.
Unconditionally fail if the target does not exist and if it does, query
for its inclusion in the batch

Change-Id: I1cd1d8cc7fbf4bdbd2289a1b38ecbea1e93a06c8
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2023-01-16 13:46:57 +01:00
Øystein Heskestad
fc3942114d Make const functions in QDir re-entrant by protecting mutable variables
QDir caches data in mutable variables. Because of no protection, two
threads calling for instance QDir::count on two independent but shared
copies of a QDir object caused a data race.

Running the tst_QDir_tree and tst_QDir_10000 three times with and
without this change show no change beyond the difference between
each result. For instance tst_QDir_tree::thousandFiles:"src" took
36/35/37 ms before the change and 35/35/35 ms after.

This makes sense because the time to handle mutexes is very little
compared the time to make file operations.

Fixes: QTBUG-105753
Change-Id: I6886f84521410f88cce2b25f0cce8cfc3fea1a0b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-01-16 13:17:42 +01:00
Øystein Heskestad
a5387f3c16 QDir: Refactor separate cache clearing functions into a single function
Task-number: QTBUG-105753
Change-Id: I7f3473ce21e71ccd04ff9f2575244167b5c3e3a4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-01-16 13:17:42 +01:00
Joerg Bornemann
c146d25a87 CMake: Fix exposing sources with absolute path to IDE
_qt_internal_expose_deferred_files_to_ide must add the source files to
the target exactly as they were passed to
_qt_internal_expose_source_file_to_ide. Otherwise, CMake might be fooled
into thinking that we're adding a new file here, and source file
properties would not be readable.

Instead of back-calculating the relative paths from the absolute paths,
we use the already existing list of relative paths.

Pick-to: 6.5
Fixes: QTBUG-109678
Change-Id: I81510f37eacb409eb5c03e3ff032926c3ca25a1f
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-01-16 12:11:50 +01:00
Kai Köhne
9ae91ac318 Doc: Mark qRegisterTestCase as new in Qt 6.5
Also remove reference to QTestCaseEvent loop class, which
is not documented.

Pick-to: 6.5
Change-Id: Ic09b3b102db535dfb090b9a4072ad29515a911ae
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
2023-01-16 08:38:52 +01:00
Tor Arne Vestbø
50218659a4 QStyleHints: Fix Q_PROPERTY declaration for keyboardAutoRepeatRateF
Pick-to: 6.5
Change-Id: I21d3280176d6c52daab0b3abfdafb404d42db9d0
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-01-14 07:48:14 +01:00
Friedemann Kleint
f5b1dbb8f6 QtWidgets: Disambiguate static functions/variables and defines
They cause clashes in CMake Unity (Jumbo) builds.
Properly prefixing the childWidgets() function also prevents
it from cluttering static builds.

Task-number: QTBUG-109394
Pick-to: 6.5
Change-Id: Idd2b1ec748f33cfae8f3213847c43b3fb0550377
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-01-14 00:20:34 +01:00
Marc Mutz
ce104cac50 QPermission: replace T data<T>() with std::optional<T> value<T>()
As discussed in API review, the default-constructed T() returned from
a mismatched data<T>() call is indistinguishable from a real T with
default state.

To make them distinguishable, return optional<T>. Call the new
function value<T>(), mimicking QVariant::value<T>(), and suggested in
API review, because data() is usually used to return raw pointers, not
values.

Remove the qWarning() on requestedType and actualType mismatch, as the
new function can be used in std::get_if/dynamic_cast-like if-then-else
chains, in which failure is part of the normal operation, and a
warning message misplaced:

  if (auto loc = perm.value<QLocationPermission>())
     ~~~ use *loc ~~~
  else if (auto con = perm.value<QContactsPermission>())
     ~~~ use *con ~~~
  ~~~ etc ~~~

Pick-to: 6.5
Change-Id: I799a58e930307323ebce8f9ac50a42455e9c017f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-01-13 21:07:18 +01:00
Mårten Nordheim
36619181fb Move QMetaMethod ctor back into a private section
Its symbol changed once it was changed to protected, so even if
it's unlikely to have been imported in any application let's just
change it back to private.

Pick-to: 6.5
Change-Id: I21b4a471caedb8edc8e1a04f706eae541b3c12fd
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-01-13 21:07:18 +01:00
Mikolaj Boc
2e97ccc8d0 Add QString<->emscripten::val conversion functions
Following the QRect, add functions converting the QString to native
emscripten::val and back: fromJsString, toJsString

Change-Id: I2d0625ede3bbf7249e2e91b8de298b5b91df8ba2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2023-01-13 21:07:14 +01:00