Commit Graph

48353 Commits

Author SHA1 Message Date
Mitch Curtis
98d65f2ff4 Add an example to the documentation of QImage::scanLine()
I couldn't find any examples in Qt's documentation of this when I was
trying to use it in a project.

Pick-to: 5.15 5.12
Change-Id: Ic7b7b71f219b2c1012829980866940b9a77bd11f
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2020-10-12 13:00:43 +02:00
Mitch Curtis
418389c3ed Link to qAlpha in qRgb() and qRgba() docs
Pick-to: 5.15 5.12
Change-Id: I5a3b8573123e82f4c8c92fa7a2e1af06e2e84eb2
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2020-10-12 13:00:43 +02:00
Mitch Curtis
8095829758 Improve QRgb documentation
- Add examples of how to create QRgb values
- Link to qRgba()

Pick-to: 5.15 5.12
Change-Id: I2a86b1c8e00137ba868426b8157a3aa0d924d7a6
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2020-10-12 13:00:43 +02:00
Allan Sandfeld Jensen
0aa8925f1a Protect QImage work on shutdown
If the thread pool was not created, or already deleted, make sure
the QImage routines can still run as they could before.

Fixes: QTBUG-87320
Pick-to: 5.15
Change-Id: I4105a68b6ae0637faf82cdda5f5ae44298759396
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-10-12 13:00:42 +02:00
Robert Loehning
1d778a59f7 Avoid heap-buffer-overflow
[ChangeLog][QCosmeticStroker] Avoid a heap-buffer-overflow found by oss-
fuzz as issue 25243.

Pick-to: 5.12 5.15
Change-Id: I36112f183241679e172ad1ee531e1b929d6f3815
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2020-10-12 10:14:52 +02:00
Jan Grulich
316bf12443 FileChooser portal: skip empty filters to avoid rejection from portals
Xdg-desktop-portal will reject any OpenFile request if there is an empty
filter. We will just simply skip it to avoid the rejection so users get
a file dialog.

Pick-to: 5.15
Change-Id: I85c056f46b22cdbc9e14010bc3c49206b6f8f002
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-12 10:14:52 +02:00
Laszlo Agocs
2189e0f2fc rhi: Make the new direct buffer update available for non-uniform buffers
The original restriction to UniformBuffer was due to the GL backend
where there is no GL buffer object for QRhiBuffers with usage
UniformBuffer. However, we can still implement this for cases when
there is a true GL buffer object underneath. With other backends it
should all work as-is already.

This becomes useful when one has buffers with usage Vertex that need
full updates every frame. (f.ex. instance data)

Unfortunately this involves renaming the function. But while at it, add
an autotest case as well.

Change-Id: Iff59e4509a8bae06654cc92fe8428bd79eb012fb
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-12 07:55:37 +02:00
Allan Sandfeld Jensen
e7c456d339 Cleanup qshareddata.h noexcept status
Set noexcept on functions where it applies.

Change-Id: I5efa632bd1652e1215e9c6d3b06dc40c948420d3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-11 19:57:54 +02:00
Laszlo Agocs
8116df5331 rhi: d3d: Save a few cycles in bindShaderResources
Change-Id: Ib11ea33eb695d4599f4f040415d497aaf19cb15b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:59:05 +02:00
Laszlo Agocs
755f24f153 rhi: d3d: Calculate dynamic offset usage upfront
Also remove an unnecessary buffer type test.

Change-Id: I6f8312f03d3fe1729fa9b2eb95f6bfbeeccd0d4f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:59:02 +02:00
Laszlo Agocs
fe5f2c8bff rhi: vk: Avoid shadowing local variable
Change-Id: I7ad14ff05a1ff10113f5d3985662970d74e68ead
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:59 +02:00
Laszlo Agocs
0eb8a332af rhi: Regenerate shaders for some manual tests
The qsb files seem to be out of date for those two.

Change-Id: Id832e872667cac4d364e13c440011109a6dbdc7f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:56 +02:00
Laszlo Agocs
22de21a26c rhi: vk: Skip buffer/texture registration on read-after-read
Change-Id: I22027cfc227d3c09e446d193e6b2903b8df34eb2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:53 +02:00
Laszlo Agocs
8c9dfd7914 rhi: gl: vk: Pre-calculate the flags for dyn.offset
...instead of doing a loop in setShaderResources() just for this.

Change-Id: Iac8d4517783967c6b8bca4926cceca918f7dcdec
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:50 +02:00
Laszlo Agocs
b540c78355 rhi: gl: d3d: Reduce the size of the Command struct
Copied by value so the size matters.

Change-Id: I17eae99212801a4fb390a0e298b361123644d17d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:47 +02:00
Laszlo Agocs
f26e329c47 rhi: Add a many cubes manual test
Draw 25000 cubes while doing a uniform buffer update for each.

Change-Id: I2216641c8bf7c6ea147fe3edd679317b472e1f04
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:44 +02:00
Laszlo Agocs
9d804a54ae rhi: gl: Move some code out of the inner loops
Change-Id: I96c71ef45b93ab95250a2a3f0e9c10e8bc86d650
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:41 +02:00
Laszlo Agocs
2ac2809ec3 rhi: Add support for full, direct buffer updates
Change-Id: I02c1f8c32c08d39cde9845d20ba8b02541d9d325
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-11 10:58:37 +02:00
Allan Sandfeld Jensen
cd0b5bba9a Make the named QColorSpace constructor thread-safe
Avoid accessing the shared pointer table without using atomic.

Cleans up the shared table on exit for leak tracking utilities.

Pick-to: 5.15
Change-Id: Ia2d6d79dea1c8be02bae2d8111e290f49eedf409
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-10-10 15:52:07 +02:00
Sona Kurazyan
1613eff15e Add porting section for QtConcurrent and related classes
Task-number: QTBUG-87096
Change-Id: Ie143db6c0d1e81f7a089799996d468360c44e2ca
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-10-09 17:05:06 +02:00
Andrei Golubev
2bbbd47929 Make result finding procedure in ResultStore a free-standing function
Moved the logic of finding a result in ResultStore to separate function
and parameterized it with QMap<...>. This is a pre-step to make find
procedure uniform regardless of the storage we are looking in (either
visible or pending as of now)

Change-Id: I41641d70751925f223e992f52fbc7814085c452d
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-10-09 16:26:05 +02:00
Andrei Golubev
c22aabe9bc Clear pending results in ResultStore
Pending results were never cleared by result store. This led to memory
leaks when the results never transitioned to "visible" results

Change-Id: I674302eb51542ad5f4d918da68d616428c73ae9f
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-10-09 16:26:01 +02:00
Cristian Adam
27499d25fb MinGW: Fix static build using PCH
The value of NTDDI_VERSION is computed from _WIN32_WINNT. It makes
sense to keep these two in sync.

The value used to create the PCHs for _WIN32_WINNT is 0x601, and
qwindowspointerhandler.cpp requires for MinGW 0x603. Since the
precompile header value cannot be undefined while compiling the
source file, it's better not to use the PCH for this particular
source file.

These problems surface in a static build, in a regular build for
some reason the PCH for plugins is not used.

Change-Id: Id724490deb9c695ac00b26cd300f9d2382019ea2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-09 16:15:17 +02:00
Edward Welbourne
df1309c83a Clean up tst_QLocale::testNames(), give better message on failure
It was previously casting enum values to int, which produced unhelpful
answers when a test failed. Better to have them as enum values that
get printed as their names, which are actually informative.

Change-Id: I1bf2971b1426bdbbc321bb48f45ee3e5799e76ec
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-10-09 14:40:37 +02:00
Edward Welbourne
48ab30e02a Update util/locale_database/'s README and timezone script instructions
The script told me the wrong path to pass as first argument, so
correct that; and the README didn't mention the need to run it.
CLDR v37 makes no change to the actual generated data, though.
Tweaked wording of a comment in the script.

Task-number: QTBUG-84669
Change-Id: I56b510c666f414d9719cef650aeec6192c4fde6e
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-10-09 14:39:55 +02:00
Kai Koehne
4de97909b2 CMake: Do not use versionless targets in examples (Qt Core)
This is confusing, especially because it's not used in the whole snippet.

Pick-to: 5.15
Change-Id: Ibd59646da2c77ac19a38441021c5e99f52015c95
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-09 14:17:27 +02:00
Lars Knoll
c2fde55976 Fix a compile error on Android in debug builds
Android uses -Werror,-Wsign-compare.

Change-Id: I4e861ebd6ea00914223358629f8e898c2aa67cd0
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-10-09 12:52:23 +02:00
Alessandro Portale
23189a9068 Fix warning: 'open' has superfluous mode bits; missing O_CREAT?
Adding mode flags doesn't make sense if you don't create a file
but only open if for reading.

Change-Id: I9307b07cbbcddea565fff9258de7f7beb373a8ad
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-09 12:52:14 +02:00
Paul Olav Tvete
cb1004f94a Disable spurious warning with gcc 9.3
gcc 9.3 gives a warning when compiling with -O2:
‘strlen’ argument missing terminating nul [-Werror=stringop-overflow=]

This seems to be caused by a gcc bug that is not present in gcc 8
and fixed in gcc 10:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91490

Change-Id: Ice3c18efb7a41097521ecee22d060f175083c579
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-10-09 06:15:15 +00:00
Oliver Wolff
22b72a6f7a win: Set correct target mkspec for qmake builds for arm64 builds
As there is no other way of obtaining information about Qt's paths at the
moment, windeployqt is still querying qmake for these information. For a
cross compiled Qt, the proper target mkspec has to be set in this case.

Change-Id: I0b7b7719c9055d432576185ac4f7572a5ba1dd6b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-09 08:06:34 +02:00
Oliver Wolff
e88ba1159f rename win32-arm64-msvc2017 to win32-arm64-msvc
The mkspec works with msvc 2019 as well. As 2017 is no
longer supported, we should reflect this reality in the
mkspecs naming.

Change-Id: Ib1165343d43fd50eebc5e4e598e653ddc4a9b1ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-09 08:06:29 +02:00
Friedemann Kleint
1f2e6062d2 Windows Vista/XP Styles: Remove XP-specific code
WindowsXPStyle cannot be instantiated via style factory
since 5.0. The derived class QWindowsVistaStyle still uses
much of its code, though.

Remove the XP-specific code as determined by
- Adding debug output with the enums added to WindowsXPStyle's
  functions
- Run the widgets gallery example in Vista style
- Run the widgets gallery example in XP style
- From the lines not appearing in both logs
  (comm -3), remove the code present in WindowsXPStyle

drawComplexControl() QStyle::CC_ComboBox
drawComplexControl() QStyle::CC_ScrollBar
drawComplexControl() QStyle::CC_SpinBox
drawControl() QStyle::CE_ComboBoxLabel
drawControl() QStyle::CE_HeaderSection
drawControl() QStyle::CE_ProgressBarContents
drawControl() QStyle::CE_PushButtonBevel
drawPrimitive() QStyle::PE_FrameLineEdit
drawPrimitive() QStyle::PE_IndicatorBranch
drawPrimitive() QStyle::PE_IndicatorProgressChunk
drawPrimitive() QStyle::PE_PanelItemViewItem
drawPrimitive() QStyle::PE_PanelLineEdit
sizeFromContents() QStyle::CT_SpinBox
standardIcon() QStyle::SP_CommandLink
standardPixmap() QStyle::SP_ArrowRight
standardPixmap() QStyle::SP_CommandLink
styleHint() QStyle::SH_Header_ArrowAlignment

Change-Id: Ic6a19cabf39d1089328a7cb1afdc282a60a7cf21
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-10-09 05:36:48 +00:00
Joerg Bornemann
13c4dfb274 CMake: Fix tool targets for top-level cross-builds
When loading the tool packages from the host Qt we must ignore
QT_NO_CREATE_TARGETS. Otherwise tool targets like Qt6::moc are not
available.

Task-number: QTBUG-85080
Change-Id: I2c8c8e68863f28a4f1d9cd2f70090455c49d8df2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-09 07:28:10 +02:00
Edward Welbourne
92f0f99c23 Check validity before adding to a QDateTime
QDateTime's addDays(), addMonths() and addYears() neglected to check
for validity before doing their job, with the result that they could
produce "valid" (but wildly inappropriate) results if used on an
invalid date-time.  Added tests for this case (and the boundary).

Change-Id: I7b0d638501cb5d875a678cde213547a83ed7529e
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-09 01:11:20 +02:00
Edward Welbourne
2a6f2fe9ef Check against {und,ov}erflow in more QDateTime methods
QDateTime's range of possible values is wider than anyone generally
needs, but let's not do confusing things when someone does overflow
it.

Change-Id: Ifbaf7a0f02cd3afe7d3d13c829bf0887eba29f7f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2020-10-09 01:11:00 +02:00
Edward Welbourne
cb0ecd6b6d Check value is in range when setting a QDateTime
Previously, a QDate representing more than about 0.3 gigayears before
or after the epoch would overflow the millisecond count and produce a
"valid" date-time that didn't represent the date and time passed to
its constructor.  Changed to detect such overflow and produce an
invalid date-time instead, if it happens.

Corrected some tests that wrongly expected to be able to represent
extreme date-time values with every time-spec.  The (milli)seconds
since epoch are from UTC's epoch, so converting to another offset,
zone or local time may give a value outside the actual range.  Added
some tests for the actual exact bounds.

Task-number: QTBUG-68855
Change-Id: I866a4974aeb54bba92dbe7eab0a440baf02124f0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2020-10-09 01:09:42 +02:00
Edward Welbourne
83bff8951a Avoid repeated date-time formatting in test data naming
Also correct two comments which lied about the year being tested.

Change-Id: I5be491a2b2c1e0c3b49d6ff9a8de852e17321cff
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-10-09 01:09:24 +02:00
Lars Knoll
4ba3d67ee7 Fix a compiler warning on Android
Change-Id: Ia3d1ee6dccfbf335d689513d51c3920cfa102166
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-10-08 22:32:59 +02:00
Timur Pocheptsov
cd6d53610a tst_QTcpSocket::connectToHostError - increase the timeout
As suggested by the message from QTestLib. This, indeed, fixed the
sadistic test. Also, make sure resources are not leaked.

Pick-to: 5.15
Fixes: QTBUG-87009
Change-Id: Id693a5a562ea5ebacc853e5fc0ab9654ba851e72
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-10-08 22:09:44 +02:00
Allan Sandfeld Jensen
e5e89d17b3 Avoid double pixel-ratio scaling of dbus tray icons
QIcon::pixmap does automatic scaling to DPR by default, so
use QIconEngine API to access internal pixmaps directly instead.

Pick-to: 5.15
Task-number: QTBUG-83806
Change-Id: I3ccbed8387811a87bbea3f5d4ad9963e1be28a49
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-10-08 21:31:56 +02:00
Fawzi Mohamed
f69144471b Allow getting a const pointer out of a variant containing pointer
Currently
  A a;
  QVariant::fromValue(&a).value<const A*>() == nullptr;
Still casting non const to const is safe, and worked in Qt5.
After this change
  A a;
  QVariant::fromValue(&a).value<const A*>() == &a;

Change-Id: I257049d084c712b00a338a2943d379aa478e0981
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-10-08 18:13:34 +02:00
Andrei Golubev
6c7ed4c013 Make QADP capacity functions use qsizetype instead of size_t
Change types returned and accepted by capacity-related QArrayDataPointer
functions to qsizetype:

1) QArrayData (underlying d-ptr) works with qsizetype
2) QArrayDataPointer::size is of type qsizetype
3) All higher level classes that use QADP (e.g. containers)
   cast capacity to qsizetype in their methods

Additionally, fixed newly appeared warnings through qtbase

Change-Id: I899408decfbf2ce9d527be7e8b7f6382875148fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-08 16:52:28 +02:00
Ulf Hermann
6443c2215e pro2cmake: Translate qmake's install_qmltypes CONFIG option
We do want to install our qmltypes files ...

Change-Id: I9769da852f92fcd9b1b8a8d093931f8c27d8a3d8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-08 16:49:18 +02:00
Mårten Nordheim
335c5a8a6b QNetworkRequest: Close gap in enum
It was there for binary compatibility reasons, but it's not needed anymore

Change-Id: I659dadc710a5bcdbcba74f13fd4db6044a497cd2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-10-08 16:35:31 +02:00
Jerome Pasion
a80e1766d8 Add links to Qt 3D Studio and Qt Design Studio
Enables linking to them using QDoc \l command

Task-number: QTBUG-85517
Change-Id: I23073a5c7b2f06a8ecf66116c538dcd3fff08f61
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2020-10-08 16:29:14 +02:00
Kai Koehne
ab4acdbeb1 Do not build tests and examples by default for configure -cmake
Tests were never built by default, except for -developer-build.
Examples were build, but aren't anymore by default if you
run cmake directly.

Let the default be figured out by cmake, and only set
BUILD_EXAMPLES and BUILD_TESTING if the user has
expicitly passed them via -make or -nomake.

Task-number: QTBUG-87217
Change-Id: I37321d96cc1e9e184a711a858c860b0205d5b74f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-08 11:12:30 +00:00
Kai Koehne
0cb0119f43 CMake: Remove outdated info from README.md
3.17.0 is released since a while. ANyhow, the requirement for
3.17 for simulator_and_device builds is already mentioned
at the start.

Change-Id: Ic8813bb60b010feb97a47b878124c3e75658813d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-08 13:12:18 +02:00
Laszlo Agocs
56af9fb917 rhi: gl: Silence incorrect compiler warnings about uninitialized use
Change-Id: I09bd22f3ccb1231ad4ef123f581459ef5c1ac37c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-10-08 11:01:11 +02:00
Laszlo Agocs
14ddbba298 rhi: gl: Drop the unused WRAP_R member
If we do not use it for anything, do not spend time on comparing
and copying it either.

Change-Id: I3632792847010e5b73c48eb1ca88f5806f3ccd45
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-08 11:01:11 +02:00
Laszlo Agocs
ea227fb915 rhi: gl: Fix missing texture bindings
The block to update the cached state needs to be run also
when the texture parameters have changed.

Change-Id: Ifa80c142c6ff31c95a718a1a900ff3db0bbfe4bc
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-10-08 11:01:11 +02:00