Commit Graph

47036 Commits

Author SHA1 Message Date
Cristian Adam
6b488d8950 Configure.json: Do not link to pthread on Android on feature testing
pthread has been removed from the NDK and the cxx11_feature detection
fails.

Fixes: QTBUG-72330
Change-Id: I22a97814b7e95011ad3944327f02343348c72b91
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-12 16:12:48 +02:00
Konstantin Ritt
95946222e6 QtFontStyle: Add missing const to non-mutable operators
and once I touch these lines anyways, either add noexcept ;)
Fixes-up 8bdbb7f226

Change-Id: Ibfaedcff82c041293220408ab7ae739b3cbd2a4f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-12 16:13:15 +03:00
Richard Moe Gustavsen
1d4457da13 cmake, README: clearify the usage of '-' in feature names
It's not immediately obvious that you need to use
all underscores for the feature name, so add a
line that explaines it.

Change-Id: I508eaf909c808fb0a93442f6e71428c18559b965
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-12 14:51:18 +02:00
Alexandru Croitor
bc0f5f5d1a CMake: Expose public info about whether Qt is a shared lib build
We expose it in the private QtBuildInternals package, but we need it
also as public information for consumption in qt_import_qml_plugins()
to decide whether it should do anything.

Change-Id: If135ae596b4edaf8e2c458f6a2518b968c6d01c4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-12 14:20:44 +02:00
Alexandru Croitor
81ea5f1906 CMake: Prepare ground work for static Qml plugins importing
For qt_import_qml_plugins to work, it needs to have access to the Qml
plugin targets by the time find_package(Qt6Qml) is called.

To do that, we modify the generation of Qml plugin Config, Targets and
Dependencies files to go into a special 'QmlPlugins' subfolder of the
Qml package.

The Qml package will then GLOB include all the Config files in that
folder, to make them available whenever find_package(Qt6Qml) is
called.

This is similar to how the Qt plugins were glob included in the CMake
integration of Qt 5.15. In fact that glob including is missing in Qt 6
for regular Qt plugins, and should be implemented in a following
change. Currently the Qt Plugins config files that are included are
hardcoded to the list of known plugins at Qt configuration time.

As a drive-by to make this all work, the naming of the various Config
and Dependencies files has been normalized to include the Qt6 prefix.
This is done for both regular Qt plugins and Qml plugins.

Task-number: QTBUG-85961
Change-Id: Id20da72337ca2945fa330ea6fb43535e44a83292
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-12 14:20:40 +02:00
Robert Loehning
3e3fdbe831 QXmlStreamReader: Don't resize readBuffer to a size it already has
Resizing it to 0 will cause it to allocate memory. This will then
cause append() to copy the data from the other string instead of
using copy on write.

Task-number: oss-fuzz-24347
Pick-to: 5.12 5.15
Change-Id: I581bd109f9b973e1c70b7b41b1f610a2ad5725b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-12 14:18:30 +02:00
Edward Welbourne
ca034e4e50 Inline two macros in the unicode tables
They were only used by one function each, in unicodetables.cpp, so
don't need to be macros.

Change-Id: I3e7f9f661568862d0a0d265bb8f657a8e0782b13
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-12 13:47:56 +02:00
Kai Koehne
e6ac26ea60 Windows: Remove method not existing in base class
Change-Id: Ifd016eabb07849fb3f310593ebe5301d3a9b09c1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-08-12 12:52:55 +02:00
Mårten Nordheim
27b1d1a1b2 HTTP/2: Don't handle Remote Disconnected if we haven't switched yet
In that case we haven't created the h2 handler yet, so it will
crash when trying to access various members.

Task-number: QTBUG-85902
Change-Id: Id0699ff06ef67748a16622703f731db0b0867771
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-12 11:38:00 +02:00
Samuli Piippo
7448884bb4 QNX: fix build
Remove unused argument and use default contructor for the flags.

Change-Id: I09d319bc58199ed713333055a2fdd519c249f831
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
2020-08-12 12:17:16 +03:00
Samuli Piippo
b92ea7db49 QNX: register mouse input device
Use the new QWSI APIs that take a registered input device.

Task-number: QTBUG-85852
Change-Id: Iefb8239a60ff819172ba64f35f120cdc6975257f
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-08-12 12:17:10 +03:00
Ulf Hermann
3e25d09b08 QDecompressHelper: Change order of encodings
Before the introduction of QDecompressHelper gzip was preferred over
deflate. The change seems to be accidental. Amends commit
7b76379a89.

Change-Id: I70f33d551912465d63f49ea3db1ac3575d19a92d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-12 08:27:09 +00:00
Eirik Aavitsland
4db44bc32f Allow smooth curve stroking for very wide lines
The earlier limit set on the curve threshold turned out to be too
strict, leading to visibly bad rendering in reasonable use cases.
Ref. 5322998a0b

As a drive-by, add a missing fixed-to-real conversion. (This is a
no-op in a default build, where qfixed==qreal.)

Fixes: QTBUG-85193
Pick-to: 5.15 5.12
Change-Id: I7cc3543d7aa4e90643b275686372400879decef2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-12 07:10:23 +02:00
Paul Wicking
7bd965258e Doc: Remove outdated documentation
We don't have this class in Qt anymore.
Drop the related snippet as well.

Pick-to: 5.15
Change-Id: I5149e2f9da483b9ad678a6d414a278cb7e107f10
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-12 05:04:56 +02:00
Andy Shaw
295e98915d Introduce maximumIdentifierLength to return database limits for names
Since Interbase/Firebird has a limit for column and table names then
this function can be used by QSqlRelationalTableModel to make sure that
the aliases created are within that limit.

Change-Id: I0cb1c65b34befcb3690ccad3f081556dd2691344
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-11 22:13:13 +02:00
Thiago Macieira
e790af0e0a QJsonDocument: fix comparison of valid vs default
[ChangeLog][QtCore][QJsonDocument] Fixed a bug that caused
QJsonDocument's equality operator to crash if one of the operands was
default-constructed and the other wasn't.

Pick-to: 5.15
Fixes: QTBUG-85969
Change-Id: I5e00996d7f4b4a10bc98fffd1629f835f570ef6b
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-08-11 13:00:47 -07:00
Edward Welbourne
d5ef011b73 Document how keyboard tracking can prevent use of a date/time editor
This follows up on commit 580e9eedf783ccbdcb67baa3d1a9dcdd53922f86; if
the allowed range is narrower than some time interval whose end it
straddles, users can only access the later part of the range if
keyboard tracking is disabled.

Pick-to: 5.15
Task-number: QTBUG-65
Change-Id: Ie8882bd65bda603133abaa82ad83eb1cdd91f175
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-11 21:46:25 +02:00
Alex Trotsenko
8f53d66e3e Introduce QIODevice::skipData()
QIODevice::skip() called a virtual QIODevicePrivate::skip() to
implement an efficient skipping on I/O devices for the internal
subclasses. The user subclasses cannot inherit QIODevicePrivate, so
this functionality was not externally accessible.

This patch replaces QIODevicePrivate::skip() with a virtual protected
QIODevice::skipData(). While the basic implementation simply discards
the data by reading into a dummy buffer, users can reimplement this
function to improve the performance in their subclasses.

[ChangeLog][QtCore][QIODevice] Added virtual protected skipData().
Now, subclasses can implement device-specific skipping of data.

Change-Id: I9522f7f7ab9d03ac06e972a525f8ec2fa909a617
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-11 17:21:45 +03:00
Laszlo Agocs
a99cee1c7b Remove old CBOR-based format from QShader
We only support version 4 and 5 in Qt 6.0. 1 and 2 are already gone
(due to being based on binary JSON), now we remove 3 as well.

Task-number: QTBUG-81346
Change-Id: I3627dcc0587f1e36f11e93edf7172889e911d64e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-11 13:45:09 +02:00
Edward Welbourne
fed97b9264 Sort out the overflow cases in tst_QDateTime
Use the actual minimum value, rather than minus the maximum, and adapt
the overflow expectations so that they're correct west of Greenwich as
well as east.

Change-Id: I7a5f4510db0fdea3855b5b2bd4c4a86882030efd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 11:21:46 +02:00
Edward Welbourne
72d14fe32f Fix handling of last second in 1969
Due to a limitation of mktime(), we would have declared it invalid.
Tidied up qt_mktime() slightly in the process.

Change-Id: I25469e314afee6e0394e564bc69a98883005d4ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 11:20:43 +02:00
Edward Welbourne
1f96709fdb Tidy up use of local variables and add an assertion
Petty tidy-up, narrowing the scopes and asserting that localtime_r()'s
return, when non-null, is the pointer we gave it.

Change-Id: I6c0959524260028ca9b234f6d33eae78f27c1412
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 11:19:44 +02:00
Morten Johan Sørvig
1b4a5af63f wasm: detect canvas resize using ResizeObserver API
The ResizeObserver API is now available on the major
desktop browsers (Safari, Chrome, Firefox), and can
be used to handle canvas resize.

(Previously, we got a callback on viewport resize
only)

Pick-to: 5.15
Change-Id: I8737285416bef70641f90da793c85efcb24f3623
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-08-11 06:43:18 +00:00
Giuseppe D'Angelo
d7205a7cae Add degree<->radians conversions for long double and integral types
For long double: they're just missing, so add them for completeness.

For integral types: follow the advice of C11's trigonometric
functions; first convert the angle to double, then do the actual
conversion. This is offered only for the degree->radians conversions,
as someone may legitimately want to call e.g. qDegreesToRadians(90).

On the other hand, it seems extremely unlikely that someone may
want to do a radians->degree conversion starting from integral
datatypes, so I'm not adding it for the moment being (instead,
I'm leaving a note).

[ChangeLog][QtCore][QtMath] qDegreesToRadians now also accepts
long double and integral types. A value of integral type will be
casted to double before the conversion to radians.

[ChangeLog][QtCore][QtMath] qRadiansToDegrees now also accepts
long double.

Change-Id: Ib1576be5193ae09bb6cb4a70d7a31702955df2c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 04:24:12 +02:00
Lorn Potter
20db9a0d7f wasm: fix natural scrolling on mac
Pick-to: 5.15
Change-Id: Icc41b2c54a2e8d0da11ba5068bdde1a0c20686e0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-08-11 10:26:30 +10:00
Andy Shaw
6379b697a6 Interbase: Don't call toUpper() on the names as they are escaped
Interbase is case sensitive when tables/fields are escaped so we should
ensure that we pass the value as is.

Pick-to: 5.15
Change-Id: Ia6c4edc9c1e675bd95913c85d47bf22c418d2113
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-08-10 18:51:11 +00:00
Giuseppe D'Angelo
7406a8b45a QMultiMap: add constructors from QMap
We can provide those. They don't lose information, do not have the
problem we face at offering ranged constructors (namely the order of
duplicate keys), and have a distinct advantage over ranged constructors:
a non-shared rvalue QMap can be "upgraded" to a QMultiMap without
allocating memory for the multimap.

Change-Id: Ic23c83927c05a210bc1f0050006c9f26365d3916
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-10 16:35:59 +02:00
Giuseppe D'Angelo
046ad5a442 Improve QMultiMap docs a bit
Change-Id: I170dc5de15dac61620aaed94f32226c158092dce
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-10 16:35:53 +02:00
Volker Hilsheimer
3657405fe7 QFileInfo: make stat method public
Forcing the reading of all file system attributes is generally useful in
multi-threaded applications, and has at least one more use case in Qt.

Using it in QFileSystemWatcher on Windows avoids several file system
accesses.

Task-number: QTBUG-41373
Change-Id: Ib3c3243fd083142393ad46d62f49cb4f7bfda17c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-10 13:17:01 +02:00
Fabian Kosmale
7b3a2f5e3d cmake support for tst_moc
We use qt_wrap_cpp instead of AUTOMOC so that we can easily find the
json files.
Getting autorcc to run only after json file has been generated was
deemed too tricky.  Therefore the test is slightly modified to check for
the json files in its directory instead of the resource, if the qrc file
does not exist.

Change-Id: Id1aabb117c8bab3ff81156da1f66d64e796bf18b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-10 12:59:46 +02:00
Michael Weghorn
3e09c28101 Filechooser portal: Implement "current_filter"
This adds supports for setting and retrieving the selected
MIME and name filter for 'QXdgDesktopPortalFileDialog'.

For preselecting a filter [1]:

> current_filter (sa(us))
>
>     Request that this filter be set by default at dialog creation. If
>     the filters list is nonempty, it should match a filter in the list
>     to set the default filter from the list. Alternatively, it may be
>     specified when the list is empty to apply the filter
>     unconditionally.

The "current_filter" return value was added in xdg-desktop-portal
commit [2].

[1] https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.portal.FileChooser
[2] 35fca7fae8

Fixes: QTBUG-85658
Pick-to: 5.15
Change-Id: I8651c1a8942dfd358895b7826730729c4d22e680
Reviewed-by: Jan Grulich <jgrulich@redhat.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-10 12:33:10 +02:00
Alexandru Croitor
ecc72bc63d CMake: pro2cmake: Specify library versions for 3rd party libs part 2
Embed package versions into the qt_find_package calls for various
Linux specific packages.

Task-number: QTBUG-82917
Change-Id: I5d1cb623f81932dfae4658b8a3a89eedb71ea3af
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-10 11:56:54 +02:00
Alexandru Croitor
3c52f8af9d CMake: pro2cmake: Specify library versions for 3rd party libraries
If certain 3rd party libraries have a version that's not suitable for
Qt, the configure summary should say so, rather than use them and fail
at build time.

With the current situation, we have to duplicate the version
information from the configure.json files in helper.py, by assigning
the version number as an extra find_package variable.

Rerunning configurejson2cmake then embeds this version info into the
qt_find_package calls in configure.cmake.

Some of the Find modules are rewritten to take the  specified version
into account when looking for the libraries.
This involves moving around the code for creating a target, after
calling find_package_handle_standard_args() so we know if a good
enough version was found.

Task-number: QTBUG-82917
Change-Id: I139748d8090e0630cda413362760034dc3483e11
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-10 11:56:54 +02:00
Giuseppe D'Angelo
7e7796fb00 QLayout: minor tidy in the docs
Change-Id: Ifc2aa62a9c9480c85cc36f60941411e920066db8
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2020-08-10 11:56:54 +02:00
Kai Koehne
177f040c6c Fix build with mingw gcc 9 and -Wsuggest-override
Change-Id: I780b0761a7f6b19022116b738efa7aca1378b715
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-10 11:56:54 +02:00
Allan Sandfeld Jensen
7c861a36f9 Fix compilation in C++20 mode
The comparisons with pointer were ambiguous as the comparisons could
be done between iterators or pointers.

Change-Id: I0484946931502d04bd63519fcd6e886c732758d3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-08 19:09:09 +02:00
Allan Sandfeld Jensen
cabc248667 Avoid UB in 64bit compositions
Multiplying 65535 by 65535 would exceed the precision of an int, so
use 65535U instead.

Change-Id: I066e552fb7db03ce867bcbfbd0b555ac98ca4bbf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-08 19:08:07 +02:00
Robert Loehning
7fa5fdae5c QBezier: Don't try calculating a unit vector when length is null
It's undefined and causes a division by zero.

Fixes: oss-fuzz-24273
Pick-to: 5.12 5.15
Change-Id: I3d34d5c43cccff9255abaf87af265ddea3fe6d95
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-08-07 16:21:16 +00:00
Edward Welbourne
315257eabe QSettings: purge deprecated API
Since 5.13: setSystemIniPath(), setUserIniPath()

Change-Id: Ie02fa96e652c10ac1a276016bd556474030fe0f5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:45:31 +02:00
Edward Welbourne
563a8d628f QStandardPaths: purge deprecated API
Since 5.2: enableTestMode(bool)

Change-Id: Ibfd5958b6383491d9297d3f0e815ad4679fb57f5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:45:18 +02:00
Edward Welbourne
8b7bde6c49 QFileInfo: inline the file-time methods
As instructed in a // ### Qt6 comment
Added missing #include for QDateTime.

Change-Id: Ic1f9e6ec42ecae07d037b84943444785847bdf98
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:45:03 +02:00
Edward Welbourne
fe6a1d34dc QFileInfo: purge deprecated API
Since 5.10: created()
Since 5.13: readLink()

Change-Id: I9722f81750dd92315a67a1c38df41a95ae63e0db
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:44:51 +02:00
Edward Welbourne
4ef723c82d QFile: purge deprecated API
Since 5.0: set{En,De}codingFunction()
Since 5.13: readLink()

Change-Id: I5386d0accf2724d84550c9bfdbbe914937194be2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:44:40 +02:00
Edward Welbourne
f369be93a1 Purge deprecated API from QDir
Assignment from QString and addResourceSearchPath(), both deprecated
since 5.13.

Change-Id: I25f08ffadc7b9dfd7895a9199255ca5f1948bd47
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-07 17:44:26 +02:00
Edward Welbourne
5a682b04ce Purge QResource of some deprecated API
Removed isCompressed(), deprecated since 5.15, and (since 5.13)
addSearchPath() and searchPath().

Change-Id: I4b6fb8077c02bbe322334e474eaf0a2a7caf0004
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:44:13 +02:00
Edward Welbourne
7ce27430a7 tst_QStringConverter: fix some deprecation warnings
QString's fromUtf16() prefers char16_t data over ushort.

Change-Id: Ib20c5afa09ceabb4e91fe434b6a057edb4739a53
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:44:01 +02:00
Edward Welbourne
74a35a509c QQueue: clean up 5.14's deprecation
Follows up on commit 9dc1edb314, giving
the relevant advice on what to use instead and protecting with the
appropriate version-check deprecation macro.

Pick-to: 5.15
Change-Id: I4191493e6c43448c4390bf22be1571611b172950
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:43:48 +02:00
Edward Welbourne
a450f331fc QSharedData: remove #include relating to deprecation
The header pulled in qhash.h for no readily apparent reason.
It did so subject to deprecation #if-ery, so rip it out.

Change-Id: I00529dd2b2de11d9a997b6fa766901f5b2f4b254
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 17:37:20 +02:00
Giuseppe D'Angelo
3f6afac6b1 QPolygon: streamline constructors and special member functions
Employ RO0; inherit the constructors from the base class; and
do some code tidies as a drive by.

The inherited constructors bring in goodies like initializer_list
support.

Change-Id: Ia00a3f9b0ccbf182bf837bc65ba2305110c8dc60
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-07 15:01:26 +02:00
Lars Knoll
096e268764 Avoid UB in moc generated code
Introduce a Q_OFFSETOF() macro that uses the optional support of
offsetof() for non standard layout types and disables the
corresponding compiler warnings. All our supported compilers
support offsetof() on non standard layout types.

Use the macro to do the offset calculations required in moc
generated code to replace a manual offset calculation that
was dereferencing a null pointer.

Change-Id: I4aab3af3c8bbaa90372f2234aa1cf8399d023c22
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-07 13:35:45 +02:00