Commit Graph

57604 Commits

Author SHA1 Message Date
Marc Mutz
3e1c6e7496 QTextBoundaryFinder: fix a flawed buffer size calculation
There were two problems:

1. The cast to uint truncates the input qsizetype bufferSize mod
   UINT_MAX, which, if the original value was qsizetype(UINT_MAX) + 1,
   would yield a false negative check, so remove the cast.

2. The multiplication of the input string size with
   sizeof(QCharAttributes) looks like it could overflow, esp. on
   32-bit platforms. It can't, because sizeof(QCharAttributes) == 1
   atm, but the next attribute that's added to the struct will turn
   that into sizeof 2, so play it safe and use division on the LHS
   instead of multiplication on the RHS to avoid this arithmetic 101
   antipattern.

Task-number: QTBUG-103531
Pick-to: 6.4 6.3
Change-Id: Icae3bea1c3cb52a235b8aae181af35c86c3f5d6f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-12 07:54:38 +02:00
Marc Mutz
48c8072bb8 Finish porting cross-platform parts of QStringConverter to qsizetype/size_t
There are still problems with platforms-specific APIs that are 32-bit
only (cf. QTBUG-105105), but this patch finishes the port of the
cross-platform parts of QStringConverter.

None of these changes have a user-visible effect. They just avoid the
Code Smell that int has become since Qt 6.0.

Pick-to: 6.4
Task-number: QTBUG-103531
Change-Id: I267e2e1268a18c130892fa2fd80d1b5dabb3d9b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-12 07:53:58 +02:00
Marc Mutz
eb55e2980e QStringConverter: make a narrowing conversion explicit
Int variables are a code smell these days, so make the narrowing
conversion (from ptrdiff_t to int) explicit and add a comment.

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-105105
Change-Id: Ia4e14f1cc132ca36d15e9684bfcb4605d7b9251f
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-12 07:53:37 +02:00
Marc Mutz
42fbd063e2 QStringConverter: fix -Wc++20-compat
GCC 13 warns:

  qstringconverter_p.h:29:6: warning: identifier ‘char8_t’ is a keyword in C++20 [-Wc++20-compat]
     29 | enum char8_t : uchar {};

Fix by calling the replacement qchar8_t (and making it a typedef to
char8_t when the latter is available).

Pick-to: 6.4 6.3 6.2
Change-Id: If59a9d55667bf1f5245e3a34189687995b000daa
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-12 07:53:23 +02:00
Marc Mutz
32c0d32a4f QString: fix arg() for >2Gi repeated lowest-escape-sequence-numbers
Building on 15a80cf8a9, this patch fixes
the case where there are more than INT_MAX occurrences of the
lowest-escape-sequence number, as in

   QString("%0").repeated(qsizetype(INT_MAX) + 1).arg(42);

by replacing the corresponding int variables with qsizetype ones.

Task-number: QTBUG-103531
Pick-to: 6.4 6.3
Change-Id: I6f4593a86d8d605031bc1d6520a247676091b2c2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-12 02:42:27 +02:00
Lorn Potter
1f9c1f032c wasm: allow apps to override EXPORT_RUNTIME_METHODS
Developers can add to Emscripten's EXPORT_RUNTIME_METHODS
by defining their own using:
QT_WASM_EXTRA_EXPORTED_METHODS

Which will add on to Qt's default exported runtime methods
of UTF16ToString,stringToUTF16

for cmake:
set_target_properties(<target> PROPERTIES QT_WASM_EXTRA_EXPORTED_METHODS "ccall,cwrap")
or
set(QT_WASM_EXTRA_EXPORTED_METHODS "ccall,cwrap")

for qmake:
QT_WASM_EXTRA_EXPORTED_METHODS = ccall,cwrap

Done-with: Mikolaj Boc
Fixes: QTBUG-104882
Pick-to: 6.4
Change-Id: I9678bdb7b077aaa8527057212ea4e161c0be0b60
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-08-12 10:13:51 +10:00
Sona Kurazyan
97f6878afd Move Q_OF_ELF/Q_OF_MACH_O macros to qsystemdetection.h
Task-number: QTBUG-99313
Change-Id: I373fad6f8339a0bad1ebc5d81386b18794bf32cc
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
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-08-11 21:13:31 +02:00
Sona Kurazyan
85414ac6c0 Move Qt 6/7 specific macros to qtversionchecks.h
Task-number: QTBUG-99313
Change-Id: I57032bf5d0edcb7345267512e12837b1d90d1485
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-08-11 19:13:23 +00:00
Ivan Solovev
df1db826cb Move qMin/qMax/qBound() to a separate qminmax.h header
Also replaced qMin() uses in qnumeric.h with QtPrivate::min().
Including qassert.h in qminmax.h leads to indirect include of qglobal.h
(through qcompilerdetection.h), which in turn leads to qMin() declaration
not being available at the point the compiler sees qFuzzyCompare()
definitions in qnumeric.h. This makes the headersclean build fail.

Task-number: QTBUG-99313
Change-Id: I824422698b06f94a4a62e2f19d4507c87f90334e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-11 21:13:16 +02:00
Sona Kurazyan
fc3441101b Extract header qtypes.h from qglobal.h
And move the related checks from qglobal.cpp to qtypes.cpp.

This requires removing the unnecessary include statement for qglobal.h
from qprocessordetection.h, that now needs to be included in qtypes.h.

Task-number: QTBUG-99313
Change-Id: Ifd72b956326909be82c162f37854cad0878010e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-11 21:13:10 +02:00
Marc Mutz
a8e6a0e546 [docs] Fix return value of QStringIterator::next()
It's char32_t these days, not uint.

Task-number: QTBUG-103531
Pick-to: 6.4 6.3 6.2
Change-Id: Iaa03f97d0d1266a6763eb858edb45ae0f2a4729d
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-11 20:44:16 +02:00
Marc Mutz
8dbc569538 QUnicodeTools: fix truncation in debug statements
Instead of casting to int, cast to qlonglong, which is guaranteed to
be able to hold all qsizetype values.

Task-number: QTBUG-103531
Pick-to: 6.4 6.3 6.2
Change-Id: I3e89892defd091fa6ef305b8ed5c3819a2cc13da
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-11 20:44:16 +02:00
Marc Mutz
7d021e3173 QUnicodeTools: fix data race in initialization of libthai symbols
The facilities of qunicodetools.cpp are not limited to the GUI thread,
so initialization must be thread-safe.

The old code wasn't, though, and contained several data races

- non-atomic initialized was read while another thead may write it
- th_brk and th_next_cell were read while another thead may write them

Fix by using Double-Checked Locking. This also prepares the code for
an eventual port to th_brk_find_breaks() (th_brk is deprecated).

The function pointers don't need to be atomic, because all reads from
them are guaranteed to happen-after the writes to them (as long as all
users call init_libthai() and don't proceeed if it returns false; this
could be ensured by returning a struct with the function pointers from
init_libthai() instead of maintaining them as statically-visible
globals, but that's outsize the scope of this patch).

As a drive-by, remove a pointless static_cast<int>(~~int expression~~).

Fixes: QTBUG-105543
Pick-to: 6.4 6.3 6.2
Change-Id: I492acd7e9a257e5c4b91f576e9bc448b6bb96ad1
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-11 20:44:16 +02:00
Marc Mutz
50d1a8a377 QUnicodeTools: fix types used around th_brk()
Libthai's th_brk() takes the breakpoints array lengths as size_t, so
use that.

This still doesn't fix thaiAssignAttributes() for ≥ 2 Gi characters,
because th_brk returns break positions in an array of int, thus
limiting any results to the first INT_MAX characters. Created
QTBUG-105541 to track this.

Task-number: QTBUG-103531
Pick-to: 6.4 6.3 6.2
Change-Id: Iba468cc9389f4533401bc18dd326c4ca7e85a5da
Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-11 20:44:16 +02:00
Marc Mutz
ea1e005cb1 QUnicodeTools: fix types used around th_next_cell
Libthai's th_next_cell takes and returns lengths as size_t.

- pass size_t, not qsizetype (the value can never be negative)
- receive size_t, don't cast to uint

As a drive-by, scope variables tighter.

Task-number: QTBUG-103531
Pick-to: 6.4 6.3 6.2
Change-Id: Ib1eeb1f0e8974ee8b0f88d080d06136b307c324f
Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2022-08-11 20:44:16 +02:00
Maximilian Goldstein
6f976a4c7d qlocale: Fix some flags not being exposed to the metatype system
This caused it to be unavailable in metatypes and thus to not work in
qml.

Change-Id: I22b6fa3b43fe609bdc1167dc081290eb93845491
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-11 20:36:40 +02:00
Dimitrios Apostolou
d68da61564 Wait for window focus instead of expose event
This fixes the flakiness seen in OpenSUSE KDE/X11 desktop.

Fixes: QTBUG-70590
Task-number: QTBUG-105177
Change-Id: I7c2431e58b2a60ea04e26d4e70c0f2867d544ff2
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2022-08-11 19:09:09 +02:00
Andy Nichols
4cf30d8c1b RHI: Take advantage of Apple GPU specific features when available
Pick-to: 6.4
Change-Id: Ie59405bd8cf235086f7e9a675270ed25beb8aedc
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2022-08-11 15:21:44 +02:00
Assam Boudjelthia
edc024e826 Android: handle quoted args passed to an app
Currently, arguments passed to the app through applicationArguments
extra bundle treat every space as an argument separator. This then
doesn't handle the case where an argument is a space separated quoted
multi-word. This is more apparent when androidtestrunner is passing
test arguments to the app where an argument can be a test case with
a data tag that contains a space, which then is treated as two separate
tag names.

This change makes sure that androidtestrunner quotes each argument,
and the app doesn't split the arguments list by spaces, but rather
passed the argument string directly to c++ where
QProcess::splitCommand() is used to get the correct set of arguments
that will be passed to main().

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-104730
Change-Id: I45d8ca979d90f2a383c84623f0eb2eec29bba727
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2022-08-11 13:21:44 +00:00
Joerg Bornemann
55af91f822 CMake: Put Qt-internal targets into a dedicated FOLDER
When loading a Qt CMake project in an IDE like Visual Studio, many
Qt-internal targets are visible, right next to the user's targets.  This
is inconvenient and confusing.

Use CMake's FOLDER concept, and put Qt-internal targets into a dedicated
FOLDER.

For that we introduce the new global property QT_TARGETS_FOLDER that,
analoguous to AUTOGEN_TARGETS_FOLDER, is the folder name for Qt-internal
targets.  By default, it's not set, nor is folder support enabled.

Change qt_standard_project_setup() to
- enable folder support
- initialize QT_TARGETS_FOLDER if unset
- initialize AUTOGEN_TARGETS_FOLDER to the same value if unset

Set the FOLDER property of qtbase's internal targets for user projects
to the value of QT_TARGETS_FOLDER.

Task-number: QTBUG-99808
Change-Id: I880ac7731f88faa83a384dcdec98b1b88ac6cc2e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-08-11 13:47:15 +02:00
Alexey Edelev
548440dd4b Remove HEADER_MODULE from qt_internal_extend_target
The current qt_internal_extend_target interface expects that the caller
will pass the HEADER_MODULE argument on each call. This is not correct,
since the argument doesn't affect the target internals, but only help to
decide how to modify the target according to its type. The target type
meanwhile can be always read from target properties. So this solution is
more consistent.

Change-Id: Ie84a2226ceb71cb5272670e5d43bdfc7a101360a
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-11 13:47:15 +02:00
Sona Kurazyan
c77c5b391e Move Q_STATIC_ASSERT* macros to qassert.h
This requires moving the include statement for qassert.h in qglobal.h
up, outside the #if defined(__cplusplus) check, to make the macros
available when __cplusplus isn't defined.

Also move qt_noop() up, before the include of qassert.h, this will later
go to a separate header.

Task-number: QTBUG-99313
Change-Id: I0f3f1ca77819a86623eebaf8adeba226c190fd37
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-11 09:43:30 +02:00
Sona Kurazyan
43b59a842a Move QT_SHARED, QT_STATIC and QT_CONFIG macos to qtconfigmacros.h
Change-Id: Icf4621fa22f41355f98ed38b47560706258b41b7
Pick-to: 6.4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-11 09:42:03 +02:00
Sona Kurazyan
22b16a1db1 Rename qtnamespacemacros.h -> qtconfigmacros.h
But keep qtnamespacemacros.h for now, some modules include it
explicitly, so need to change those to include qtconfigmacros.h first.

The plan is to move QT_SHARED, QT_STATIC and QT_CONFIG macros there too.

Change-Id: I945b3dfffbd9cd394a6cf42a36df6657d1703d5b
Pick-to: 6.4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-11 09:41:03 +02:00
Giuseppe D'Angelo
b779b8062c QTranslator: generalize a UNIX-only path
QTranslator builds a list of "candidate" names in order to find out
the translation file to load. Part of the name comes from the UI
languages, as determined by the QLocale object passed to load()
(via QLocale::uiLanguages()).

On UNIX this list of languages is processed by adding a lowercase
version of each language. In other words, if the list is something
like:

{"en-Latn-US", "en-US", "en"}

then it is changed to contain:

{"en-Latn-US", "en-latn-us", "en-US", "en-us", "en"}

(The last element is not needlessly duplicated, since it's already
fully lowercase.)

I am not sure why this is done only on UNIX: the commit introducing
this behavior predates public history. If I have to take a guess, it's
done because the language is then used to assemble a file name that
QTranslator tries to open. On UNIX file names are case sensitive, so
if the translation file is called "translations_en_us.qm" it would
fail to load under a "en-US" locale (the "-" -> "_" processing is done
later).

But what about Windows? In principle, turning the names in lowercase
is not necessary as Windows' filesystem is case insensitive; a
translation file called "translations_en_us.qm" will still be loaded
if opened as "translations_en_US.qm"...

... *except* if the file is in the resource system! In that case,
filesystem access is still case sensitive, and will fail to load the
translation file (which instead would load just fine on UNIX).

Plug this silly cross-platform difference by also lowercasing on
Windows.

Change-Id: I2573721e33d9da08f60a5bb56e35e4553cbe4efe
Pick-to: 5.15 6.2 6.3 6.4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2022-08-10 23:21:55 +02:00
Ivan Solovev
c4fabe37b9 Remove QSqlTableModel::setQuery(const QSqlQuery &)
... and simply use the public methods of the base class instead.

We can't completely remove it, so we just add it to removed_api.cpp

By removing the setQuery() method in the QSqlTableModel class, we
open up name lookup to the base class, where the const ref overload
was already deprecated in 14f9f00fdb,
and the proper replacements were provided.

[ChangeLog][QtSql][QSqlTableModel] The setQuery(const QSqlQuery &)
method is removed, because QSqlQuery cannot be copied correctly.
Use the public setQuery() overloads of the base QSqlQueryModel class
instead. They allow passing of QSqlQuery by rvalue ref, or creation
of the query by specifying query string and database object.

Task-number: QTBUG-105048
Change-Id: I6f47067af6b4769578d4de9dbdbbbc7504ddf4ad
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-08-10 22:38:24 +02:00
Ivan Solovev
2ca3044083 Make QSqlQueryModel::query() return a reference to the const QSqlQuery
Returning QSqlQuery instance by value does not make much sense,
because it cannot be copied correctly. Also, its copy constructor
and copy-assignment operators are deprecated from Qt 6.2.

[ChangeLog][Potentially Source-Incompatible Changes][QSqlQueryModel]
QSqlQueryModel::query() now returns a reference to the const QSqlQuery
object associated with the model.

Task-number: QTBUG-105048
Change-Id: I04a2aa377b17d770d2a9855040f8c730190484d8
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-08-10 22:38:24 +02:00
Ivan Solovev
62859ccaa6 QtSql: establish removed_api.cpp for upcoming QT_SQL_REMOVED_SINCE
Pick-to: 6.4
Change-Id: I6614ed13deee733e0cc53b3d8bb6514b2c000a9b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-08-10 22:38:24 +02:00
Ivan Solovev
7ba39fff8d QSqlQueryModel: guard the definition of deprecated method
... to prevent compilation errors when built with
QT_DISABLE_DEPRECATED_BEFORE >= 0x060200

This commit amends 14f9f00fdb

Task-number: QTBUG-105048
Pick-to: 6.4 6.3 6.2
Change-Id: I33c586508353ccb4c0af3f5da0cdaf9abe9f590e
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2022-08-10 22:38:24 +02:00
Dimitrios Apostolou
5b2b30a9c7 Try to stabilize window activation on macOS
Use activateWindow() that is documented as the right way to raise a window.

Task-number: COIN-892
Change-Id: Ic9aadee0d3a526fd8e46e5b1099b5b0861700207
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2022-08-10 21:44:40 +02:00
Dimitrios Apostolou
c1e8c99464 Test is stable on OpenSUSE, un-blacklist it
Task-number: QTBUG-74760
Change-Id: I78ca3779407d1076a11d0a948b61f4438d1ab4cc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-10 21:44:40 +02:00
Dimitrios Apostolou
1aff079db5 Test is no longer flaky, unblacklist it
I can't reproduce the test failing after hundreds of iterations on
OpenSUSE, and the test hasn't flaked at all in our CI in the last 6
months according to our dashboards.

Fixes: QTBUG-70612
Change-Id: I2397f3db5caf97f674de7d75fd99bd14c14166a4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-10 21:44:39 +02:00
Dimitrios Apostolou
6ee0c79352 Test is not flaky any longer
I can't reproduce the issue after hundreds of iterations on OpenSUSE,
and the test hasn't flaked at all in the last 3 months according to our
dashboards.

Task-number: QTBUG-66371
Change-Id: I9c4daf851e09fbcb47a6ab39418e7b213ccd9dfe
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2022-08-10 21:44:39 +02:00
Mikolaj Boc
7485213930 Deliver correct key code on key release on WASM
Changed the behavior in which key events are delivered to targets.
Before the change, in case of a EMSCRIPTEN_EVENT_KEYUP event, the key
code and text were not filled in correctly as they should. This resulted
in wrong behavior when event targets expected these codes being available.

Fixes: QTBUG-105213
Change-Id: Ie66b5d6d395d08af655fcb00f1f616ad43d6bea4
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2022-08-10 20:58:32 +02:00
Paul Wicking
998bd0b528 Doc: Remove repetition of word in text
While dropping the extra "does", rewrite as "doesn't"
as common contractions are preferable in particular in
negations. Reflow the remainder of the paragraph.

Fixes: QTBUG-105517
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I1ad2d5ca753cb1d3a38cf96bdd6e52d2af80151b
Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
2022-08-10 18:00:35 +00:00
Alexey Edelev
d2edee6152 Add the output of qlalr to the consuming target source files
The qlalr outputs need to be added to the consuming target.

Change-Id: I9600729103298cf7e0a712d5f3dc49c5f4c729f5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
2022-08-10 20:00:35 +02:00
Joerg Bornemann
a29af6656f CMake: Fix detection of system double-conversion
...if the double-conversion CMake package cannot be loaded.

The find_path call must specify the header exactly as it is included.

The select_library_configurations call always failed, because the
command expects the presence of DOUBLE_CONVERSIONS_LIBRARY_DEBUG,
DOUBLE_CONVERSIONS_LIBRARY_RELEASE, or both.

Upstream double-conversion's MSVC build system does not specify a naming
scheme for the debug build, and there are no debug/release binaries to
download that suggest a naming scheme.  Therefore we assume the usual
'd' suffix for the debug library like we do everywhere else.

Lastly, we need to set DOUBLE_CONVERSION_INCLUDE_DIRS.

Fixes: QTBUG-105501
Pick-to: 6.2 6.3 6.4
Change-Id: I71ff5238f353541b8bf5ac6792b86134deba20d1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2022-08-10 19:32:06 +02:00
Sona Kurazyan
64ac64ba6b Remove redundant define for QT_LARGEFILE_SUPPORT
It's unconditionally set in qconfig.h by configure.cmake.

Pick-to: 6.4 6.3 6.2
Change-Id: If10b5a34111856f4c279a1cf7bfc4ea3a995ef2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-10 17:35:37 +02:00
Sona Kurazyan
33a8772e58 Generate forward headers for Q{,Const, NonConst}Overload
These headers were generated before extracting qoverload.h. This amends
ff8de321e2.

Change-Id: I8f0e8dc3725f9776b8f6dc96782c97b0b5566b9d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-08-10 17:35:37 +02:00
Fabian Kosmale
879d30394a QSqlQuery: Do not use deleted constructor in docs
QVariant(QMetaType::Type) is deleted since Qt 5 (sic!). Suggest usage of
the constructor taking a meta-type instead.

Pick-to: 6.2 6.3 6.4
Change-Id: I50949dac9dfc35c80108debdeabc791afe0998b6
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2022-08-10 13:51:23 +02:00
Mikolaj Boc
784555cc2f Refactor QWasmEventTranslator for added readability
Change listing:
- change names of abbreviated structures/variables (e.g. KeyTbl
-> WebToQtKeyCodeMappings)
- add constants for commonly used magic strings ("Dead", StringTerminator)
- use common idioms for common tasks (find_if, std::optional)
- use binary search as facilitated by the sorted array instead of a full
search - this optimizes the code at no cost
- remove dead code (double translateEmscriptKey in
QWasmEventTranslator::getKey, remove sticky dead key support as it was
write-only, remove the dead setIsMac and g_usePlatformMacSpecifics,
remove the dead getWindowAt).
- cull the public interface on QWasmEventTranslator as some functions are
only used internally (translateEmscriptKey)
- simplify / shorten functions by short-circuiting
- modernize definitions (= default)
- auto-format the changes using clang-format

The file is now much easier to read and understand.

Change-Id: I5ea2bdafd9b9abc009feeb5516ddd87fb0ca212e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2022-08-10 12:25:36 +02:00
Laszlo Agocs
595526e446 vulkan: Port to VK_EXT_debug_utils
Fixes: QTBUG-89762
Change-Id: Ie32043578968cbeda7c7f87990b98c10f5d06ff8
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-10 09:09:36 +02:00
Laszlo Agocs
525a3f08e8 rhi: vulkan: Log instance extensions
Change-Id: I7968268c1c536a0ebcdea00f2f6ab7f5b008be18
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-10 09:09:33 +02:00
Laszlo Agocs
74b185c1c4 rhi: vk: d3d: Zero init most structs normally
No need for the memset here. = {} works too, these are all C structs in
practice.

Change-Id: I44e407d38ef8808412cfef232db7e325a44ce9d1
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-10 09:09:30 +02:00
Laszlo Agocs
8197da007e rhi: vulkan: Adjust API version based on the physical device
Change-Id: I453d0dc12dbe86cf2153888f84b72c748ef47296
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-10 09:09:26 +02:00
Laszlo Agocs
ba30155638 rhi: vulkan: Enable all core features on the device
...except robustness.

Have the appropriate compile and runtime checks. This way we still
compile with any older (1.0, 1.1, 1.2) headers, and can function
at runtime with a plain 1.0 implementation. With Vulkan 1.2+ we
can start filling out the additional, version-specific (1.1, 1.2,
1.3) feature structs.

Task-number: QTBUG-105158
Change-Id: I0ba87f0f467bc11782e9203ff11f1ce494aaaf63
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-10 09:08:58 +02:00
Sami Shalayel
cec3b3b4f9 Remove assertion from ownMethodIndex that breaks tests
ownMethodIndex works for all kind of methods, also for constructors.
Therefore, remove the assertion there (that checks for non constructors)
and add a test in qtbase so it does not happen again.

The test broken by the assertion is in qtdeclarative:
tst_QJSEngine::newQMetaObject().

Also rename QMetaMethodPrivate::ownConstructorIndex() to
ownConstructorMethodIndex() as the previous naming implied that
ownMethodIndex() could not be used for constructors.

amends b73ab954df

Task-number: QTBUG-105360
Change-Id: I0244993ed79bee055645b5443f5d02e1c089a6c6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-08-10 00:48:31 +02:00
Thiago Macieira
395c9ac731 Tests: remove #define COMMA
Those were workarounds to passing a comma to a macro, but there are ways
around it. The simplest is to just use variadic macros; another, which
has been applied to Q_DECLARE_METATYPE for a long time, is to define an
alias to the thing you're trying to use.

Change-Id: Ie4bb662dcb274440ab8bfffd17097fbf0c53eabc
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-08-09 12:13:26 -07:00
Friedemann Kleint
c49bf9fe27 Documentation: Fix "Using Model Indexes" in Model View Programming guide to work
The code introduced by 54d5ca0c27
did not work since the variables parentIndex/numRows
were local to the lambda and the outer code would not wait.
Move the widgets population into the lambda to fix this.

Modernize the remaining code a bit.

Pick-to: 6.4 6.3 6.2
Change-Id: I2a09878987df9edb9ff04f0ac4ad82af1a8b52c8
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2022-08-09 18:34:19 +02:00
Mikolaj Boc
b7812bbbb6 Add missing characters with diacritics to the WASM mapping table
There are three characters with diacritics that have been missing from
the mapping table+ I acute, I grave and Y acute. Added those to the
mapping table in QWasmEventTranslator.

Pick-to: 6.4
Change-Id: Iab53e79b84cee39e4a050b05b9eff54f3ad64f6c
Reviewed-by: David Skoland <david.skoland@qt.io>
2022-08-09 17:31:12 +02:00