Commit Graph

34475 Commits (b9873b7dde4042445dbb5ff3c46cea96b2dea4aa)

Author SHA1 Message Date
Fabian Kosmale ca54b741d6 qtypeinfo: Improve container check
Smart pointers like QSharedPointer<T> do have a value_type, but their
equality does not depend on T being comparable. Therefore, instead of
simply checking for T::value_type, test for a few other container
requirements.
This also required to add an additional check for std::optional, as that
one has an unconstrained operator== on MSVC.

Change-Id: Iefd048f7aa360f4713ecd79f80acd7dae72ee18c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-14 17:06:47 +02:00
Fabian Kosmale 8cdaeb2655 moc: allow wrapper generation for QProperty in pimpl class
Previously, only QNotifiedProperty was supported. As moc cannot
determine by itself whether the backing property is a QProperty or a
QNotifiedProperty, allow NOTIFY false to indicate that it is a plain
QProperty. For symmetry, NOTIFY true is also allowed and means that the
backing property is a QNotifiedProperty.

Change-Id: I66f3105c976ef084198ce8658bc07499a3cb1cd8
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-14 17:06:46 +02:00
Edward Welbourne bb6a73260e Support digit-grouping correctly
Read three more values from CLDR and add a byte to the bit-fields at
the end of QLocaleData, indicating the three group sizes. This adds
three new parameters to various low-level formatting functions. At the
same time, rename ThousandsGroup to GroupDigits, more faithfully
expressing what this (internal) option means.

This replaces commit 27d1391280 with a
fuller implementation that handles digit-grouping in any of the ways
that CLDR supports. The formerly "Indian" formatting now also applies
to at least some locales for Bangladesh, Bhutan and Sri Lanka.

Fixed Costa Rica currency formatting test that wrongly put a separator
after the first digit; the locale (in common with several Spanish
locales) requires at least two digits before the first separator.

[ChangeLog][QtCore][Important Behavior Changes] Some locales require
more than one digit before the first grouping separator; others use
group sizes other than three. The latter was partially supported (only
for India) at 5.15 but is now systematically supported; the former is
now also supported.

Task-number: QTBUG-24301
Fixes: QTBUG-81050
Change-Id: I4ea4e331f3254d1f34801cddf51f3c65d3815573
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-14 14:52:08 +02:00
Edward Welbourne 19ed60d703 Refactor QLocale's integer formatting
Break out some shared code in the integer formatting to save
duplicating it. Simplify what's left.
Renamed some variables to match Qt style.

Change-Id: I369a013802a267a94725302de0d1d33291c29538
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-14 14:52:08 +02:00
Edward Welbourne 0b0bc0ce20 QLocalePrivate: rearrange number format statics and tools
Instead of passing lots of instance data around among public static
methods and functions in qlocale_tools, do the work in instance
methods that can access the relevant attributes of the locale when
they need them. Incidentally reduces clutter in the global namespace.
Add a signPrefix() to handle a repeated computation. Keep new internal
methods private.

Change-Id: I9556a960acac9fb645872337c61f509fb902984e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-14 14:52:08 +02:00
Edward Welbourne 3f8eae848e Fix floating-point 'g'-format's choice between 'e' and 'f' forms
During review of a refactor (coming shortly), Thiago wondered what the
magic numbers were. On closer examination, I concluded that they were
wrong and wrote some tests to prove it. This commit adds those tests;
replaces the misguided old code with something that passes them; and
documents the reasons for the various parts of its decisions.

In the process, tidy up QLocaleData::doubleToString() somewhat and
rename some of its variables to conform to Qt coding style.

Change-Id: Ibee43659b1bdb0707639cdb444cfe941c31d409f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-14 14:52:08 +02:00
Edward Welbourne 3809643093 Simplify qlocale_win's currency formatting
Use QLocaleData::c()'s instance method, rather than QLocaleData's
static method, to format integers. This avoids the need to duplicate
various arguments as literals, that the C locale provides as default.
It also future-proofs against changes to the static methods.

Change-Id: I5bba407cfc29e3f33d1e9fa878ddf35fff3b113c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-07-14 14:52:08 +02:00
Jarek Kobus cd787dbac9 QtConcurrent: Get rid of multi-inheritance inside RunFunctionTaskBase
Use aggregation instead. Prepare for using QPromise instead of QFutureInterface.

Task-number: QTBUG-84702
Change-Id: Ic88564dca8c83a178a281cb843032292210a6d25
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-07-14 14:52:08 +02:00
Joerg Bornemann 97741a9590 CMake: Fix call to qvkgen for cross-builds with tools
We must not call the qvkgen tool that was built for the target but the
one that's located in QT_HOST_PATH.

Change-Id: I6d23a8e3abd84d449517630f3b9f0d50e333c327
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-14 10:25:47 +02:00
Friedemann Kleint a158dc2e76 QtGui: Clean up event headers, #3
- Remove unimplemented CT of QTabletEvent

Task-number: QTBUG-72173
Change-Id: I22f88bc2962f2cf92cf33c9cba7081c0436affe6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-14 08:25:47 +00:00
Friedemann Kleint 37d5aaa4b4 Change QWindow/QWidget::map(To/From)(Global/Parent) to operate in float
Change the functions to operate in float and add the
QPoint versions as overload calling them. This is
more in-line with the event accessors using float
and allows for removing some workarounds using a delta when
converting touch points.

Leave QPlatformWindow::map(To/From)Global() as is
for now and add helpers for float.

Change-Id: I2d46b8dbda8adff26539e358074b55073dc80b6f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-14 10:25:47 +02:00
Assam Boudjelthia 80f7494e8a Android: add missing printStackTrace() in catch statements
Pick-to: 5.15
Change-Id: Id50743113fcdd450932111cfe1a563276f152bb1
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-07-14 11:25:47 +03:00
Tor Arne Vestbø 8fdd400d99 Don't flatten link color in QTextHtmlParser::declarationsForNode
It's still flattened in the next step, when the parser calls
QTextHtmlParserNode::applyCssDeclarations, but this at least
makes it clear where the problem is.

Task-number: QTBUG-85567
Change-Id: I1ecc7d808c58297f40f6cf8de86dfa7035e167c9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-07-14 10:25:47 +02:00
Tang HaiXiang 61fced375a Fix gif parsing error for large images
A very large GIF image resulted in cropping of image updates, due to
the handler trying to protect against very large values.

Increase that size from 200 to 16384, which is also the value used
in the withinSizeLimit method.

Fixes: QTBUG-85340
Pick-to: 5.15
Change-Id: I70888d76b378ee4f49694e90d7d753fae817ff2a
Reviewed-by: Lu YaNing <luyaning@uniontech.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-14 08:25:47 +00:00
Lu YaNing 1ac7bf1ed4 Linux: fix crash in AtSpi adaptor when handling window activation
fix The window has been quickly activated or disabled will cause a crash .

Fixes: QTBUG-84643
Pick-to: 5.15
Change-Id: I0fd0918a3fc1898ddffd97009a4e92702ecd9ed4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-14 12:33:23 +08:00
Samuel Gaist ae81055fe2 Doc: make cleanup on error more prominant in SQL driver instructions
The concerned paragraph is one that is very important as there are a
lot of people building the MySQL and PostgreSQL plugins that are not
successful on the first try. However, this text not being emphazized,
many if not all miss the fact that just re-running qmake will give them
the same result if the cleanup is not applied. This patch makes this
point more visible.

Pick-to: 5.15
Change-Id: Ib2b97e128a5dab3dc6d771b16b5315e4ad95a9b7
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2020-07-13 22:06:26 +00:00
Volker Hilsheimer 7b6beed743 Remove support for users to create their own Qt::Desktop type widgets
[ChangeLog][QtWidgets][QWidget] Creating QWidget instances with the
Qt::Desktop window type set is no longer supported.

Change-Id: I712861d7104c4ae5cbdd5d54cd0134bf69eb144e
Task-number: QTBUG-62094
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-13 22:57:14 +02:00
Friedemann Kleint ed3ac187b5 QtGui: Clean up event headers, #2
- Remove unimplemented  functions of QEventPoint
- Remove forward declaration of devices

Task-number: QTBUG-72173
Change-Id: I40e0451a6380ea7fbe58c49fe8fab1b432558c52
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-13 22:08:06 +02:00
Friedemann Kleint ee0198a018 Move eglconvenience to QtGui
Task-number: QTBUG-83255
Change-Id: I8a008d8906308dd73a0793db5b88d3a1b6fdaf5c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-13 22:07:46 +02:00
Steffen Kieß 6d880185b1 Fix passing QDBusUnixFileDescriptors over peer-to-peer connections
Passing QDBusUnixFileDescriptors over peer-to-peer connections currently
does not work, because QDBusConnectionPrivate::setPeer() does not set
this->capabilities (unlike QDBusConnectionPrivate::setConnection()
which is executed for bus connections).

Keep track of whether the connection already has been authenticated, and
once the connection does get authenticated, update this->capabilities.

Note that sending a message directly after connecting (before any
message has been received from the peer) might still fail if the message
contains a QDBusUnixFileDescriptor.

Pick-to: 5.15
Fixes: QTBUG-85396
Change-Id: Ib83213ebcd3255fb091c6faefb3618745b8d736c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-13 20:45:20 +02:00
Joerg Bornemann 2a5ad75ec8 Fix sporadic build failures of eglfs_kms_vsp2
The eglfs_kms_vsp2 subproject depends on eglfs_kms_support.
Add the missing build dependency.

Pick-to: 5.15
Fixes: QTBUG-85486
Change-Id: I1110d0f02166d9cdec1d734de679e2d36c6b026a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-07-13 20:31:45 +02:00
Jarek Kobus b91a5d053d QtConcurrent: Get rid of code repetition for RunFunctionTask::run()
Change-Id: If270982e54d2b11be00c71b9d012af629d181dfe
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2020-07-13 19:55:20 +02:00
Tor Arne Vestbø 974e55bd70 macOS: Use Cocoa to map key events to possible shortcut key sequences
For now we just verify that the Cocoa API produces the same keymaps
as we get from Carbon. Once that's verified we can solidify the code.

Change-Id: I0d2aa1bb0a006d29c0149e3ff2fd5299ba922326
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-13 14:57:16 +02:00
Tor Arne Vestbø fab3dfff7d macOS: Modernize QCocoaKeyMapper key map
Change-Id: I3e8a4cfa611b6ae575466c493aac438dc831e89a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-13 14:57:13 +02:00
Laszlo Agocs 351d42175d rhi: Allow null resources in srb
In this case the srb represents the layout only, and can still be used
to create a pipeline. For setShaderResources() one will then need to use
another, layout compatible, srb that references valid resources.

Change-Id: I3ea5b63df3be8847540ca4c0c40fbd29dbed8fb7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-07-13 14:54:30 +02:00
Edward Welbourne e8d5000026 Use numeric_limits instead of hand-coded equivalents
As a comment noted, the reason for QLocaleData rolling its own values
describing the ranges of digits and exponents in a double were all
about std::numeric_limits's constants not being constexpr - which they
have now been since C++11, so we can do away with our own.

One of the constants was used in two places in the same way; so
abstract that use out into an inline function in qlocale_tools, to
save duplication and give somewhere to document it.

Change-Id: I7e3740ece9b499c0ec434de18d70abe69e1fe079
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-13 12:05:32 +02:00
Sona Kurazyan 361dc074f2 Move QRegExp and its remaining mentions out of QtCore
Task-number: QTBUG-85235
Change-Id: Ibd6c98d952c1bb9916b64715c6430fb0d3fe3843
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-13 10:53:23 +02:00
Robert Loehning 3094bcc3c5 Check returns of hex2int in get_hex_rgb
Avoids undefined behavior when trying to shift negative values.

Fixes: oss-fuzz-21860
Fixes: oss-fuzz-23968
Pick-to: 5.15 5.12
Change-Id: I879c97624e3f8ba9cf01e0a3a682379cd8c4a199
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-13 10:26:25 +02:00
Friedemann Kleint 3dff5e6316 QtGui: Clean up event headers
- Remove unimplemented  QSinglePointEvent()
- Remove forward declaration of QTouchEventTouchPointPrivate
- Update copyright and add comment to qevent_ph.h

Task-number: QTBUG-72173
Change-Id: Ie64b6071f2611001dcd8e3deec2f5ed382bb2312
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-13 10:15:08 +02:00
Giuseppe D'Angelo 43fa292ff6 QVariant::setValue(): enable move semantics
Given we optimize for the case where the new value is of the
same type of the one already stored in the variant, enable move
assignment for that case.

As a drive-by, avoid a path to detach() for data() if we know
we're detached.

Change-Id: I9abbdc10637ce77ebb747b49d83e1ef914d997bb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-13 01:32:53 +02:00
Giuseppe D'Angelo 23444d4b26 QCryptographicHash: explicitly activate the used union member
A union member lifetime does not start automatically if one
takes a pointer to a union member and writes into the member.
Only the subscript syntax in an assignment features such
automatic lifetime start [class.union§6].

In the other cases, one is allowed to get a pointer to the
storage ([basic.life§6]) but has to start lifetime explicitly
via placement new. Hence, do so, or we end up in UB land.

We're left with the problem of reset() which may be called
multiple times. I think we can actually just create a new
object in the same storage without destroying the pre-existing
object by exploiting [basic.life§5]: reusing the storage causes
lifetime end for the old object. Moreover, since the union
is over trivial datatypes (C structs), there's no side effects
in the destructor of the old object, so there is no need
to call it.

Drive by fix, apply some DRY for SHA3.

Change-Id: Idc351568635e59d45421311f043956ab3aabf389
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Linus Jahn <lnj@kaidan.im>
2020-07-12 21:48:18 +02:00
Giuseppe D'Angelo 20848f6e83 QVLA: use std::aligned_storage
Remove the hand-rolled union used only to achieve alignment.

Change-Id: I8e635fa0d09042f30fd67d589db9bc384c0ec8ef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-12 21:48:11 +02:00
Linus Jahn 1ecc884bfd QStringView: Remove outdated note about usage with QList
Change-Id: Id1cef09642ccde701e57e8f0a3a3d0e5fcf47e5c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-12 21:07:05 +02:00
Tor Arne Vestbø 2f8df4d1a8 Disable PCRE2 JIT on macOS ARM64
It's already disabled for many other ARM platforms, and upstream
support for Apple Silicon is still pending, so we disable it for
now. See: https://bugs.exim.org/show_bug.cgi?id=2618

Fixes: QTBUG-85528
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I42b6e5efaa07c9b832cd05a47436eb86a214e9bf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 23:34:33 +00:00
Robert Loehning e80be8a43d Fix buffer overflow
Fixes: oss-fuzz-23988
Pick-to: 5.15 5.12
Change-Id: I4efdbfc3c0a96917c0c8224642896088ade99f35
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-10 22:55:28 +02:00
Lars Knoll 744e55b85a Remove that casts to int/uint that shouldn't be there anymore
Remove casts that truncate a qsizetype or size_t in qstring.cpp

Change-Id: Ibc1515f9906d5a0840254e60e2e7dfca716b63b5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 19:04:11 +02:00
Tor Arne Vestbø 7931d96aeb Clarify relation between Qt::Keys and Unicode ranges
The Qt::Keys have been re-ordered and comments added to reflect
the layout of the enum values in relation to the Unicode ranges.

Bits 0x00200000, 0x00400000, and 0x00800000 have been reserved
in case we want to use them for Qt::ModifierKey later on. Doing
so would require changing Qt::Key_unknown to not overlap with
these bits, or to accept that Modifier + Qt::Key_unknown is not
a supported usecase.

Change-Id: I580a01b0a47a28948a0f0018c47931395933b8f2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-10 15:56:40 +02:00
Lars Knoll 9f33ad904a Move all the QProperty related code into one compilation unit
And mark some methods as inline.

Performance is critical for our new property system. Compiling
it in one unit makes it possible for the compiler to do a much
better job at inlining and generating optimized code.

Improves performance of binding evaluations by another 20%.

Change-Id: I5a2aa93c74d2b68418b0a9d2e34d8199bb71e3ad
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-10 15:07:22 +02:00
Lars Knoll e5a38facf6 Cache whether a property is a boolean
We have the space anyway, and this cuts away another couple
of percent during binding evaluation to avoid a call that
checks whether the type is bool.

Change-Id: I41c320f93bf0a33f0cb15962a154c59a2e47fd7a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-10 15:07:17 +02:00
Lars Knoll bbfecdee1e Significantly improve performance of binding evaluation
Avoid any QVariant or type dependent code in the cpp files.
Instead, let the binding wrapper determine if the value
has changed and return true/false accordingly.

This required also some reworking of the guard mechanism
for notified properties, where the guard function wrapper
now calls first the binding evaluation function and then
passes the result to the guard.

Change-Id: I350d07a508ccc0c5db7054a0efa4f270b6a78ec3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-10 15:07:12 +02:00
Lars Knoll be1ce6b269 Separate the error case when evaluating bindings
There's no point in returning a usually empty error when
evaluating bindings, adding overhead to the regular code
path.

Instead, the error can be set on the currently evaluating
binding if required. This streamlines the functor used to
wrap the binding and should thus expand to less code and
execute faster in the regular case.

To achieve this, expose a pointer to the currently evaluating
binding in the private API (as QtQml needs it to be able to
report errors).

The error case now requires one additional TLS lookup, but
we don't really care about performance in that case anyway.

Change-Id: Iecb450e765244930a41d813fcf8eb4013957a6a3
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-10 15:07:07 +02:00
Lars Knoll 0d1208f0f0 Cleanup QPropertyBindingError
Remove location(). The method would always return an empty value. If you need the location,
the binding itself has it.

Remove setDescription() and require that the description gets passed
in the constructor. Never create a d pointer if type is NoError, so we
can quickly check for it inline.

Change-Id: I7eb8a94786281069d6ea2d82567c09aa50c52ef6
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-10 15:07:02 +02:00
Shawn Rutledge 4e400369c0 Refactor pointer event hierarchy
Some goals that have hopefully been achieved are:
- make QPointerEvent and QEventPoint resemble their Qt Quick
  counterparts to such an extent that we can remove those wrappers
  and go back to delivering the original events in Qt Quick
- make QEventPoint much smaller than QTouchEvent::TouchPoint, with no pimpl
- remove most public setters
- reduce the usage of complex constructors that take many arguments
- don't repeat ourselves: move accessors and storage upwards
  rather than having redundant ones in subclasses
- standardize the set of accessors in QPointerEvent
- maintain source compatibility as much as possible: do not require
  modifying event-handling code in any QWidget subclass

To avoid public setters we now introduce a few QMutable* subclasses.
This is a bit like the Builder pattern except that it doesn't involve
constructing a separate disposable object: the main event type can be
cast to the mutable type at any time to enable modifications, iff the
code is linked with gui-private. Therefore event classes can have
less-"complete" constructors, because internal Qt code can use setters
the same way it could use the ones in QTouchEvent before; and the event
classes don't need many friends. Even some read-accessors can be kept
private unless we are sure we want to expose them.

Task-number: QTBUG-46266
Fixes: QTBUG-72173
Change-Id: I740e4e40165b7bc41223d38b200bbc2b403e07b6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-10 14:32:56 +02:00
Tor Arne Vestbø 9ac5273d03 Remove unused method QKeyMapper::clearMappings()
The plumbing from QKeyMapper to the platform specific key mappers
via QPA was never done, so this method is unused. The code path
in QKeyMapper that would trigger it would be changeKeyboard(),
but that's already handled in QCocoaKeyMapper, and wouldn't be
initiated from the cross platform code in any case.

Change-Id: Ibc0c419627fc0430d028945038c1f2fbafe42d4b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:17:06 +02:00
Tor Arne Vestbø f08c15c3de macOS: Simplify dead key handling
Change-Id: Ie2e2c6e1b1daf08146fd42f3ce58194ee1918794
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:17:03 +02:00
Tor Arne Vestbø 3dedb5292d macOS: Simplify Ctrl+LeftMouse->RightMouse handling
Change-Id: I080bfaec273ea45809d72e513add16b7114c7bbb
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:17:00 +02:00
Tor Arne Vestbø 5db69cb5de macOS: Merge keySequenceToKeyEqivalent into call site
Change-Id: Iae33f627ad6abfc9bbba9b098417bd13caee00f8
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:16:57 +02:00
Tor Arne Vestbø 7917f9b7f5 macOS: Add QCocoaKeyMapper::toCocoaModifiers
Change-Id: I489c64733275260bb041f8df5cc5ff4a571d4e9c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-10 12:16:54 +02:00
Andy Shaw 0ef46b41d8 Android: Enable configuring for a single abi architecture
Fixes: QTBUG-80938
Pick-to: 5.15
Change-Id: Id87202e6b2520b18c6b06b71675157f588a28bd6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-10 09:38:13 +00:00
Andy Shaw c92528b6cc Mark gradlew with Unix eol endings as it is a script
Since this could end up being copied from a Windows machine to another
when it is part of a project using Android then we should make sure the
line endings are preserved to be on the safe side. This avoids a strange
problem when deploying due to gradle failing to run.

Change-Id: Ie170461a351c9279092b58d4e8353b81cc8561d3
Pick-to: 5.15 5.12
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-07-10 11:38:00 +02:00
Allan Sandfeld Jensen acc3f19038 Fix one check for AVX2
We should check for the haswell set of features here as well, as we
do in the main switch.

Not that there are supposed to be any processors with AVX2 without the
full set though.

Pick-to: 5.15
Change-Id: Ifa648d605a50748cff21ae0a0c75ae47f620d9c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 11:10:05 +02:00
Andrei Golubev d9c40cf90e Remove the setting of GrowsBackwards from QList
The flag is practically unused, there is no logic that relies on its
existence. From experience of prototyping prepend optimization (where
the flag actually makes sense), it is better to temporarily remove it:
QList is, in fact, unaware of how to correctly use it at the moment

Once GrowsBackwards-using code is implemented at the lower levels,
the usage of the flag will be reintroduced to QList along with the
changes that ensure correct behavior

Task-number: QTBUG-84320
Change-Id: I618adfcd69b15c76ddafd78cca5e9aa0073e4c91
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 11:49:05 +03:00
Dimitrios Apostolou 14a8fb2321 Rename local variables masking parameters
As found by LGTM.com.

Change-Id: I9a237899dc50009da5643c49c590f3b15bb817bf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:37:11 +02:00
Dimitrios Apostolou b800f74fe0 Rename local variable hiding parameter
As found by LGTM.com.

Change-Id: If3024bdaad06cafcd401b4ee04524ad03bd69a97
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:37:02 +02:00
Dimitrios Apostolou a5e6e0dd2e Rename local variable hiding global one with the same name
As found by LGTM.com.

Change-Id: Ic4c38c02529e7cc7eb7c79c3936b7d5f030fd84f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:36:47 +02:00
Dimitrios Apostolou 89e3a426a8 Remove local variable masking a global one
As found by LGTM.com.

Change-Id: Ied926a9eace9044ec9abc859557cd28178e5defb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:36:33 +02:00
Giuseppe D'Angelo 8a13aa0e02 QArrayDataPointer: use move and swap in move assignment
Not plain swap; QADP does not hold just memory but arbitrary
state (depending on T).

Change-Id: I3560577e4109607a51b2c72b67e22e38813977b3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-10 02:16:09 +02:00
Friedemann Kleint 6758f73bb7 Move glxconvenience into QtGui
OpenGL is not quite as dead as initially assumed.

Task-number: QTBUG-83255
Change-Id: I953040149812a5258caad5fe6bac0835e1982dd0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-10 00:47:56 +02:00
Allan Sandfeld Jensen 60d72b7ab6 CMake: Fix incorrect SIMD arch_haswell and avx profile conditions
Fix the conditions in qt_add_simd_part for arch_haswell and the
avx512 profiles to mimic what simd.prf does.

Add missing SIMD flags in QtCompilerOptimization for arch_haswell.

Compute the compile flags for the avx512 profiles from the
profile dependencies.

Remove the special case in Gui that hardcoded the compilation of
qdrawhelper_avx2.cpp to be conditional on avx2 being enabled
instead of arch_haswell. The Gui project already has another
qt_add_simd_part that is enabled if arch_haswell is enabled, which
will now work correctly due to the fixes in qt_add_simd_part.

Change-Id: I7a61a03b5565d4fa438f22b329e0d9dd7acd9273
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 23:02:39 +02:00
Ulf Hermann f9e1674094 moc: For non-STORED QProperties, expect a pointer
This way we can return a nullptr for cases where the class does not want
to provide a property at all. For example outside of bindings when
reading the default value. The moc-generated code can check for such
nullptrs and handle them.

Change-Id: I7ff478cb254012147bb7aed3feb160e3e679cb6d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-09 22:34:46 +02:00
Sona Kurazyan 577558daf5 Fix QByteArray::count implementation for longer data
The issue has been introduced when refactoring QByteArray::count
implementation (see 631127126c).

Because the last argument of QByteArrayMatcher::indexIn() method
has a defult value, it has been compiling without issues, but was being
called with incorrect size parameter. Fixed it to pass the length of the
input data correctly.

Change-Id: Ic9c2f33733131ec17276aa889f2d7ea40ec79b01
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-09 18:38:33 +02:00
Giuseppe D'Angelo c023b025ee Qt::Modifier: do some cleanups
Qt::UNICODE_ACCEL had no effect since at least Qt 4.0. We can drop
it in Qt 6. The whole Qt::Modifier enumeration is still widely
used, so we can't drop it yet, but we should aim at doing so in
Qt 7. Add a note.

[ChangeLog][QtCore][Qt::Modifier] The Qt::UNICODE_ACCEL enumerator
has been removed. It had no effect since Qt 4.0.
[ChangeLog][QtCore][Qt::Modifier] Usage of the enumerators in
the Qt::Modifier enumeration is discouraged. The enumeration
will likely get removed in the next major version of Qt.

Change-Id: If25f30d920878d32903b91a38044f5da042c7eab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-09 18:38:14 +02:00
Jarek Kobus 89ecbf0978 Use QList instead of QVector
Task-number: QTBUG-84469
Change-Id: Ia365c958e3b2d0c8210f5d693d907bb2012887c2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-09 16:10:11 +02:00
Alexandru Croitor b1f8ca8032 CMake: Fix various issues with the Android build
Certain resources and compiled jar files have to be copied into the
non-prefix build dir location. They were previously only installed,
which doesn't do anything in a non-prefix build.

Change pro2cmake to generate code that places the compiled java
jars into QT_BUILD_DIR, so that non-prefix builds work.

Place the module dependencies xml files into lib folder in non-prefix
builds.

Don't special case the output and install location of the Android QPA
plugin.

Task-number: QTBUG-85399
Change-Id: I4ac9d3929ea8ecc95ec99a77e621ad2121b68832
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-09 11:56:31 +02:00
Friedemann Kleint f4e4ad6d2b Silence some warnings about fallthrough
src/corelib/text/qunicodetools.cpp:1243:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/corelib/text/qunicodetools.cpp:1247:55: warning: this statement may fall through [-Wimplicit-fallthrough=]

Change-Id: I441000db46cb6d85a5dcd0534ea2168b39a3f3bd
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-09 08:32:23 +02:00
Andy Shaw 418901e3f8 Android: Don't depend on the OpenGL module
It is not using this for anything in the code anyway so we can just
drop it. This avoids a need to have the platform plugin depend on
OpenGL if it is configured to be on.

Change-Id: I87de162800be93db00c5022bef85c235b3655528
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2020-07-09 08:01:47 +02:00
Shawn Rutledge f941555420 Register a generic keyboard device on cocoa
It's not yet clear how to get any more specific information about it,
or how to detect multiple keyboards.

Task-number: QTBUG-46412
Change-Id: Ib7d6e00e1f6f120b3b8c71cb5d74a8411d61dc00
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-08 20:32:54 +02:00
Friedemann Kleint e3ce7c87e2 Move qglxconvenience to QtOpenGL
Task-number: QTBUG-83255
Change-Id: I7640caf8afbae0a7310a264f333bb3a6cfa3c6ed
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-08 19:34:10 +02:00
Giuseppe D'Angelo d6a724a9b2 QCalendarWidget: code tidies for the internal model
The table model inside a QCalendarWidget was violating
a few QAIM principles:

* returning illegal values from row/columnCount by not checking
the parent index

* not keeping invariants on row/column manipulation.

Pick-to: 5.15
Change-Id: I2c51e59ea2d89e73884bad20f3c06fbb808a26c5
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-07-08 19:19:32 +02:00
Giuseppe D'Angelo 8a78830b0d Item widgets: fix crash in mimeTypes()
*Always* check the result of a dynamic/qobject cast. I'm not positive
if the cast is correct (or should it just be a static cast),
but in principle these models can be used with a different view.

Change-Id: I37108cbb2744b6bf0fb46392d1cc9883f2d0b60e
Pick-to: 5.15
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
2020-07-08 19:19:17 +02:00
Tor Arne Vestbø 17b1c7e6b3 macOS: Exclude 32-bit builds by checking pointer size
Task-number: QTBUG-85279
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I984ec21b9c5ed5e2bd02b3a8b52bbeb72953e454
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-08 19:18:05 +02:00
Tor Arne Vestbø b10f8ba350 macOS: Don't assume platform has objc_msgSendSuper_stret
It's not used on arm64, and the template magic is not enough to
avoid compilation failures due to references to the undefined
function.

Pick-to: 5.15
Pick-to: 5.12
Task-number: QTBUG-85279
Change-Id: Iac94f59a863c7be1860b51def0fc2de2d8812cf8
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-08 19:18:02 +02:00
Kai Koehne 03de9a41da CMake: Fix dependency in qt_add_big_resources
Ensure that the second rcc pass is executed whenever the
object file changes.

Patch provided by Hongpeng Liu <lhpzwd@163.com>

Fixes: QTBUG-85186
Pick-to: 5.15
Change-Id: I6e52ec15048ab286efd85500ca535b2b8b01c270
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-08 17:14:11 +02:00
Fabian Kosmale 986d89c2ee Automatically register comparison operators in QMetaType
This removes the fully manual registration of comparison operators in
QMetaType and replaces it with an automatic registration through
Q_DECLARE_METATYPE().

[ChangeLog][QMetaType] The QMetaType::registerComparator() and
QMetaType::registerEqualsComparator() have been removed.
Q_DECLARE_METATYPE() now automatically registers any
operator==() and/or operator<() for a type visible where
it is used on that type, as part of declaring its meta-type.

Change-Id: I3df451b652b735c093533838bf32f3cc785439f8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-07-08 14:13:59 +02:00
Lars Knoll 0e2cfdedf2 Constrain the comparison operators for our container classes
This had already been in very few places, where we ran into issues with
this before. More generic constraints here will significantly reduce the
amount of error messages a user has to parse in case he tries to instantiate
an operator by accident (or with a lacking comparison operator for one of
it's template arguments).

Change-Id: I1521d19c55d99732d9742402bd534c390a8e4242
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-08 14:13:56 +02:00
Lars Knoll 16bc995fd1 Add type traits to safely determine the existence of comparison operators
Containers often define an operator==() or operator<() which is very useful
for generic code. But those operators can usually not be instantiated if
the template argument doesn't implement the operator.

This sometimes leads to the compiler trying all possible template expansions
and implicit conversions for the type, giving extremely long error
messages. The traits support can be used to safely constrain those
operators.

Being able to safely detect this will also allow us to fold the comparison
support that is currently a large cludge for user types directly into
QMetaType.

Change-Id: Ib84afb5348c3eb0be5161d6ba9d5fe237709c65f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-08 14:13:55 +02:00
Lars Knoll b038575a89 Get rid of one call into the TLS when evaluating bindings
Store a pointer to the TLS in the BingingEvaluationState. Like this,
we can save us one TLS lookup in the destructor. Shaves off a couple
of percent during binding evaluation.

Change-Id: Idc9dc5b0ea202aaeb68cdc063700b8e4968753dc
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-08 11:02:03 +02:00
Andy Shaw 3439113984 MySQL: Remove anything that refers to lower than MySQL 5.6
Since MySQL 5.6 is currently the lowest version still supported on any
platform then we can safely assume this to be the lowest version that
we support now.

Fixes: QTBUG-683
Change-Id: I177bd87053e9aa6c302164ccb3a4aee444aa3701
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 11:01:38 +02:00
Ulf Hermann 0cd3820e4d moc: Allow out-of-line storage for Q_PRIVATE_QPROPERTY
If you pass "STORED false" the name is interpreted as function to be
invoked in order to access the property. This allows storage of a
property in a lazily allocated data type.

Change-Id: I4d3a9cac6985c6419ce687868cb74b91921595a6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-07-08 11:01:38 +02:00
Assam Boudjelthia eacf83594a Android: check for debug mode before fetching extraappparams
In pre Qt 5.14, the assets folder used to have the file
"--Added-by-androiddeployqt--/debugger.command", that indicate debug
mode, however, in Qt 5.14+ the assets are compressed into one file, so
this current check is obsolete. Qt Creator uses extraappparams to pass
QML debugger args, without it the debugger won't start.

Pick-to: 5.15
Task-number: QTCREATORBUG-24155
Change-Id: Ib3037f4dc8c55af6932d598c6491a046efe13033
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-07-08 07:07:15 +00:00
Sona Kurazyan 631127126c Introduce QByteArrayView
Created a QByteArrayView in symmetry with QStringView.
Added the basic tests symmetrical to QStringView tests.

Moved the implementations of non-modifying methods of QByteArray to
namespace QtPrivate, to be reused inline from both QByteArray and
QByteArrayView. Changed QByteArray's counterparts of those methods to
take QByteArrayView as argument instead of QByteArray. Removed
QByteArray's operator QNoImplicitBoolCast(), because it was causing
ambiguity when calling those methods with QByteArray argument (it was
there to perevnt if(!ba)/if(ba) from compiling, but currently that would
be ambiguous and won't compile anyway).

[ChangeLog][QtCore][QByteArrayView] New class.

Task-number: QTBUG-84321
Change-Id: I05f92e654cf65c95f2bb31b9c9018746ac110426
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-08 08:45:49 +02:00
Tor Arne Vestbø 45d4e4b06c macOS: Map Qt::KeyboardModifier to a single Carbon modifier
The modifier is passed to UCKeyTranslate, and we don't need to turn
e.g. Qt::ShiftModifier into both shiftKey and rightShiftKey. One is
enough to map the virtual key to a unicode character.

Change-Id: I33c46c016df03ecf17b5d87885d80a6d581767bc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 01:09:39 +02:00
Tor Arne Vestbø 055c2bebda macOS: Don't rely on Carbon for QCocoaKeyMapper::queryKeyboardModifiers()
The semantics of the Cocoa API matches that of the Carbon API we are
replacing, in that it reflects the "state of devices combined with
synthesized events at the moment, independent of which events have
been delivered via the event stream.", which is the same semantics
as QGuiApplication::queryKeyboardModifiers() expects.

Change-Id: Ic00ccbb3e8ae571522245df30924952aa2cc71de
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 01:09:39 +02:00
Tor Arne Vestbø b982385bcf macOS: Simplify QCocoaKeyMapper::fromCocoaModifiers
Change-Id: I6c25c1cfd4253d13623b2706c3b93632711fc577
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 01:09:39 +02:00
Tor Arne Vestbø f67fe01ac6 macOS: Use helper method in QCocoaKeyMapper for swapping Ctrl and Cmd
Centralizes the logic for swapping the two modifiers. The debug logging
for modifier mapping has been removed as that level of granular logging
is overkill.

Change-Id: Ib4818c77f5b32ff20c9fe6df56528a120e5bd80e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 01:09:38 +02:00
Tor Arne Vestbø 1c8953e520 macOS: Move AA_MacDontSwapCtrlAndMeta logic out of QPlatformTheme
Change-Id: Ia36f60587d98902406de7de8acdc3c4521cfd05a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 01:09:38 +02:00
Tor Arne Vestbø e255146183 Replace use of deprecated Q_OS_MACX in favor of Q_OS_MACOS
Change-Id: I1059d56f67be28a4cc1a66b744e81df6d0b5d00d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-08 01:09:38 +02:00
Volker Hilsheimer 4f952aaea1 Move method only used in keypad navigation to a better place
QDesktopWidget in particular doesn't use that code anymore.

Change-Id: I8eed752175c5478663b25872c7ffe78c814245d7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-07 23:09:38 +00:00
Lars Knoll a2cef41a31 Extend QSharedMemory to work with qsizetype for sizes
This allows larger than 2G memory segments to be allocated.

Fixes: QTBUG-76995
Change-Id: I95309eeea511fadb28724c7592298c2fcc6f1d1a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-07 20:38:57 +00:00
Tor Arne Vestbø 9ad1c6d835 Rewrite AA_MacDontSwapCtrlAndMeta documentation
Change-Id: Ifc41d0d341aed029e89baa3fc20f9535c1fb01d9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-07 22:01:58 +02:00
Volker Hilsheimer 359616066e Refactor QTabBarPrivate::Tab and much of its usage in QTabBar
The type was broken in that it pretends to be a value, but didn't
implement the necessary operators for save copy, move, or comparison.
Tabs are supposed to be managed by Tab instance, as the crazy
implementation of operator== demonstrated.

Refactor the code to use it as a pointer consistently, even though this
means additional allocations for each tab. This is however acceptable
since there are not millions of tabs, and there is only a single place
where tabs are removed from the list.

Also use ranged for where possible, and never access the tabList using
operator[] to avoid detaches.

Use a std::unique_ptr for the animation in the tab, which implicitly
protects against attempts to copy a Tab, and allows us to use the
compiler generated default destructor. Add Q_DISABLE_COPY_MOVE for good
measure, the compiler-generated move semantics would not work either
due to the back-pointer from animation to the tab.

Change-Id: I8e8c071472f8f1f401b0f4f1dde074d800842934
Fixes: QTBUG-85394
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-07 21:40:50 +02:00
Lars Knoll 652459afde Improve performance of property binding evaluation
Improves performance of binding evaluation by ~20% for
simple C++ bindings by simplifying and inlining the code
that clears the array of property observers.

Change-Id: I829ac1895f1673367d737944d950360015a5b435
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-07 21:20:04 +02:00
Tor Arne Vestbø 086ca457b5 Fix no-EGL build
Fixes: QTBUG-85464
Change-Id: If3a3acfb514c9b787bc3e9350da378d2f5d1bfa5
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
2020-07-07 21:07:58 +02:00
Tor Arne Vestbø 357966a72c Make QGuiApp::platform(Function|NativeInterface) internal
Task-number: QTBUG-83252
Change-Id: I3d53114f6cf43aa482d0c30938dabc86bb05ea67
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-07 21:07:52 +02:00
Giuseppe D'Angelo 1e8d623340 QThread::create: remove the pre-C++17 codepaths
As we require C++17 now. The configure-time test checking for
future/async is left in for the moment being.

Change-Id: Ifde39d420673f70a2277f5a645bfaad30935a381
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-07-07 20:54:12 +02:00
Jarek Kobus 471e4fcb22 Use QList instead of QVector in gui implementation
Task-number: QTBUG-84469
Change-Id: I366e845249203d80d640355a7780ac2f91a762f1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-07 20:35:05 +02:00
Daniel Kahn Gillmor 7f400522c3 Clarify warning message about PIC/PIE
As noted in discussion at https://dev.gnupg.org/T4982#135524, when
there is a mismatch between position-independence of the Qt library
and other compilations, the warning produced by Qt is confusing.

It should say explicitly that -fPIE should not be passed.

Change-Id: I66394f86230a6598ac383bfd7bb14ab8cbbf6245
Pick-to: 5.15
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-07 21:35:04 +03:00
Shawn Rutledge c7c28b3406 Separate QPD::tabletDevice into priv tabletDevice and queryTabletDevice
There doesn't seem to be any reason users will need to query tablet
devices by their IDs, because every event comes with a complete
instance already, and we have QInputDevice::devices() to list them all.

QPointingDevicePrivate::tabletDevice() can create a new instance if a
matching one is not found (and complains about that); it's intended
for use in QtGui, as a way to find the device if it was not part of the
QWSI event. Now it sets the parent of those auto-created instances
to QCoreApplication to avoid a memory leak.

On the other hand, queryTabletDevice() is intended for use in platform plugins
that need to check whether an instance exists; but they will take care
of creating new instances themselves, and thus have more control over the
parent and the details being stored. Now that the systemId can also be given,
the search is more likely to have a unique result, on window systems
that provide device IDs.

Rename id() to systemId() to clarify that it's a system-specific unique
device ID of some sort, not the same as the uniqueId that a stylus has.
However it seems that in practice, this will often be 0; so clarify that
if it's not unique, QInputDevicePrivate::fromId() and queryTabletDevice()
may not always find the right instance.

Clarify the function usage via comments.

Change-Id: I82bb8d1c26eeaf06f07c290828aa17ec4a31646b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-07 16:14:58 +00:00
Pengfei Zhang 8936918a65 Fix rendering error in some glyphs
Caused by a spelling mistake in the calculation.

Pick-to: 5.15
Pick-to: 5.12
Change-Id: I69445fcd8a45b60c34d51aa09d778d4fee447065
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-07-07 13:35:05 +00:00
Lars Schmertmann 6ce2f3f26b Add ; to Q_UNUSED
This is required to remove the ; from the macro with Qt 6.

Task-number: QTBUG-82978
Change-Id: I3f0b6717956ca8fa486bed9817b89dfa19f5e0e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-07 11:51:48 +02:00
Jani Hautakangas d9cc149995 Fix floating point clip rectangle rounding in raster and opengl paint engine
Fixes: QTBUG-83229
Pick-to: 5.15
Change-Id: If94028f27c9085e391acb9c423cde1b7c12bca36
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-07-07 11:50:09 +02:00
Volker Hilsheimer 7e2fded55e Remove usage of QDesktopWidget(Private) from most places in QtWidgets
Call QGuiApplication and QScreen APIs directly to get geometries, and
make use of QScreen::grabWindow grabbing the screen it's called on when
called with WId == 0.

This assumes that QGuiApplication::screen and QWidget::screen never
return nullptr, which is already assumed in other places.

In QSplashScreen, simplify the code to operate on the screen of the
QSplashScreen itself. Remove the case that handles a QDesktopWidget
parent - QSplashScreen doesn't have a constructor that takes a
QWidget* parent anymore.

In the QEffect implementation, we can rely on the widget pointer
not being nullptr (it's tested in the free functions client code
uses).

Includes a few drive-by changes to coding style and logic in
qtooltip.cpp, where the tip label placement now prefers the screen
of the widget the label is created for, and uses the position only
as a fallback.

What remains is the special handling of QDesktopWidget and the
Qt::Desktop type in QWidget and QApplication.

Change-Id: I30b67bab8ae82ddfcc7bbbec3c10f6e935b74f06
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-07-07 11:49:32 +02:00
Tor Arne Vestbø bcbc4d4de2 macOS: Get rid of QCocoaWindowFunctions
The functionality is now directly available in the QCocoaWindow platform
interface, instead of going through the indirection of the platform headers
and native interface.

Task-number: QTBUG-84220
Change-Id: Ifc48263c83806705b44364f7727d317847737ab4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-07 11:49:31 +02:00
Tor Arne Vestbø d7fc2fb5c6 macOS: Remove QMenu indirection via QPlatformNativeInterface
Task-number: QTBUG-83252
Change-Id: I0c750d2b1912ced343d96ea0ca081c3319be2889
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-07 11:49:27 +02:00
Volker Hilsheimer 82cb1ecca2 Fix another printf format warning with qsizetype
As done in 939f5112a1 elsewhere, use %zd
and cast explicitly to size_t.

Change-Id: I2fc7607725829f80cc125568246503af341749f1
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-07 11:48:45 +02:00
Jarek Kobus 77bb50de8f Use QList instead of QVector in qtbase
Fixes all other QVector occurrences

Task-number: QTBUG-84469
Change-Id: I5f9311298d341a9a3061a6a640539583d1618939
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-07 11:48:45 +02:00
Volker Hilsheimer d2e3f00367 Clean up data members and initialization in QAbstractSpinBox
Group the bit flags together and generally order roughly by size to
give the compiler better packing options.

Change-Id: I9468d5aaef96e115ad363c59222e626d792a0edc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-07 06:29:07 +02:00
Volker Hilsheimer bb5171fb54 Remove unused virtual method QWindowPrivate::allowClickThrough
Always returned true, also in the QWidgetWindowPrivate override.

Change-Id: I01d11ae6f85882b52ce397125f994eea663ffcb5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-07 01:09:30 +02:00
Friedemann Kleint 23282ac23d SPI Accessibility: Remove global variable
Change it into a member variable of QSpiAccessibleBridge.

Task-number: QTBUG-83255
Change-Id: Ia781a7c86723e343680bf804be6393640f83a516
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-06 22:23:49 +02:00
Lars Knoll 563fbe79e5 Try to workaround bogus compiler warning in gcc 9 for ARMv7
../../src/corelib/io/qurlidna.cpp: In function ‘QString qt_ACE_do(QStringView, AceOperation, AceLeadingDot)’:
../../src/corelib/io/qurlidna.cpp:2543:23: error: ‘int __builtin_memcmp_eq(const void*, const void*, unsigned int)’
     reading 8 bytes from a region of size 2 [-Werror=stringop-overflow=]
              if (memcmp(result.constData() + prevLen, acePrefixUtf16, sizeof acePrefixUtf16) == 0)
                  ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors

In function ‘bool operator==(const QByteArray&, const QByteArray&)’,
     inlined from ‘virtual void (* QLinuxFbIntegration::platformFunction(const QByteArray&) const)()’
          at ../../src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp:185:18:
 include/QtCore/../../../../src/corelib/text/qbytearray.h:571:45: error:
     ‘int __builtin_memcmp_eq(const void*, const void*, unsigned int)’ reading 17 bytes from
          a region of size 1 [-Werror=stringop-overflow=]

The warnings/errors are bogus. Fix them by using QStringView::sliced() and de-inlining the
comparison operator for QByteArray.

Change-Id: I24956fe74a7989e75cd03d717570b8fca493ab23
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:31:40 +02:00
Lars Knoll 9117e3850b Rename from() to sliced()
After API discussions, agreement was that from(n) is a bad name
for the method. Let's go with sliced(n) instead.

Change-Id: I0338cc150148a5008c3ee72bd8fda96fb93e9c35
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:31:35 +02:00
Lars Knoll e5fbe10647 Small fixes to the QList documentation
Change-Id: Ic839f7859912eb48bb192755d6f10536a0a73f8e
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2020-07-06 21:31:30 +02:00
Lars Knoll 792cb3989a Add support for first(n), last(n) and sliced() to QList
This keeps the API symmetric with what we have in our string
classes.

Change-Id: I94c5b39b718ca2472f9ca645e7a42e4314636f67
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:31:25 +02:00
Lars Knoll 9a9a1a2a2e Port QString to qsizetype
Change-Id: Id9477ccfabadd578546bb265a9483f128efb6736
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:31:20 +02:00
Lars Knoll df853fed66 Use qsizetype in QList
The change creates a slight source incompatibility. The main
things to take care of are

* code using printf statements on list.size(). Using qsizetype in
printf statements will always require a cast to work on both 32
and 64 bit.
* A few places where overloads now get ambiguous. One example is
QRandomGenerator::bounded() that has overloads for int, uint and
double, but not int64.
* Streaming list.size() to a QDataStream will change the format
depending on the architecture.

[ChangeLog][QtCore][QList] QList now uses qsizetype to index into
elements.

Change-Id: Iaff562a4d072b97f458417b670f95971bd47cbc6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:31:14 +02:00
Lars Knoll 3711bf85ae Help qtestlib with int -> qsizetype changes
Make sure we can handle qsizetype as an integer when appending
test data. This is required for backwards compatibility with Qt 5,
so people don't have to rewrite all their test cases.

QCOMPARE can handle mixed types, tthe only method that requires manual
changes now is QTEST(list.size(), "testrow_expecting_int").

Change-Id: I40723b239e0160cefc05745aa35a75de8599ac08
Reviewed-by: Mårten Nordheim <marten.nordheim@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>
2020-07-06 21:31:09 +02:00
Lars Knoll 215ca73534 Allow allocating more than 2G items in a vector
Also adjust qCalculateBlockSize() to be able to handle large
allocations.

QVector::length() is currently still limited to 2G items, that will
get changed in a later commit.

Change-Id: I3a92fbfd7f281d30844c5fafa3b9a474bc347c19
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:31:01 +02:00
Lars Knoll ded37aedc9 Implement a proper iterator for QTypedArrayData
This avoids ambiguities in our API when someone e.g. writes
vector.insert(0, ...).

It requires a slight workaround in qlalr, where std::search()
for libc++ doesn't like that our difference_type is qsizetype.

Change-Id: I40aa1040781ffbdd12d04410078207969b3bde53
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:54 +02:00
Lars Knoll 0341bf2e97 Make QArrayDataPointer::size a qsizetype
This is a next step towards making QList, QString
and QByteArray able to deal with large sizes.

Change-Id: Icad49b33f503401ac4912678b2f88584c6f91a63
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:47 +02:00
Lars Knoll c129362b4d Add a couple of noexcept
Change-Id: I993da2094482092540388ee72be3262bac94fad7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:40 +02:00
Lars Knoll fbce2e58e6 Get rid of QArrayData::sharedNull()
Remove the last places where those got used and avoid
allocations when we resize to 0.

Change-Id: Ib553f4e7ce7cc24c31da15a55a86d18bdf1cc5c3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:33 +02:00
Lars Knoll c01804bd1e Get rid of QArrayData::isMutable()
Change-Id: Ifb6368b83cd12ec3897c6b6b846d71bffa1f74b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:27 +02:00
Lars Knoll f8a53388a7 Get rid of unused flags in QArrayData
Change-Id: I3ea754b44fb33e33baba0781d9ae15b7f3b3d8eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:19 +02:00
Lars Knoll a8d5f38537 Avoid allocating a d-pointer for empty strings
Those can simply be handled as compile time constant strings
pointing to the empty (Q)Char.

Change-Id: I1f6f6ab923a30c68a720003ca68c34c572aa29da
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:30:12 +02:00
Lars Knoll a46caf087c Simplify Q_ARRAY_LITERAL
And clean up some unused pieces of code.

Change-Id: I285b6862dc67b7130af66d3e08f652b1a56b990e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-06 21:30:06 +02:00
Lars Knoll 76004502ba Get rid of shared null for QByteArray, QString and QVector
As a side effect, data() can now return a nullptr. This
has the potential to cause crashes in existig code. To work
around this, return an empty string from QString::data()
and QByteArray::data() for now.

For Qt 6 (and once all our internal issues are fixed), data()
will by default return a nullptr for a null QString, but we'll
offer a #define to enable backwards compatible behavior.

Change-Id: I4f66d97ff1dce3eb99a239f1eab9106fa9b1741a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-06 21:29:58 +02:00
Giuseppe D'Angelo 2e51686746 QList: improve the range constructors
In case of forward iterators, call std::distance just once and not
twice. In case of non-forward iterators, don't call
reserveIfForwardIterator -- as the name says, it doesn't make sense
on non-forward iterators.

Change-Id: I7e6a603205286c05f7bc7c47fd1f1e0d92705b20
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-06 17:59:07 +02:00
Giuseppe D'Angelo 95326a2977 QList: go for the rule of zero
The hand-written special member functions did exactly what the
compiler generated ones would do anyhow.

Change-Id: I66439178460d30957135aac44680dd3109ada62a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-06 17:59:00 +02:00
Giuseppe D'Angelo bb02b9696e Q*Iterable::const_iterator: pass by const reference
The iterators are quite heavy objects (>100bytes), don't pass them
by value.

Change-Id: I4c9d1f64d14419a35bd067884d7e8bca2589f9b9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-07-06 17:58:55 +02:00
Friedemann Kleint ffb8464cef Windows: Fix trailing blank in native file dialog filter
Strip trailing blanks when not filtering by suffix.
Amends 76735f3fa0.

Pick-to: 5.15
Fixes: QTBUG-85423
Task-number: QTBUG-42405
Change-Id: Ic13a4e7718f7f1935b1fc329a7beaf1d357fd44d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-06 13:57:03 +00:00
Tor Arne Vestbø f02dde3d74 Simplify QMainWindow::setUnifiedTitleAndToolBarOnMac
Task-number: QTBUG-83252
Change-Id: Ib6f7dcfe21407603d4cfd5d33f6615d8623db940
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-06 15:48:23 +02:00
Tor Arne Vestbø de307a8ece Remove documentation reference to standalone KMS plugin
Change-Id: Idfc714340703af3faea17d2f1c4933902710f36d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2020-07-06 15:43:13 +02:00
Tor Arne Vestbø 1f0299b029 Remove OpenWFD platform plugin
It was added in 2011 and has not seen any development since, and was
never included in the build system.

The OpenWFD use-case is covered by EGLFS, which has a dedicated
OpenWFD backend.

Change-Id: Id08c505e2d869a96255163cae2ede51b9efeb73f
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2020-07-06 15:41:25 +02:00
Andy Shaw 96cea3b168 Export the letter and word spacing settings set on the default format
When the default format has letter and word spacing set then these
should be exported in the HTML's body tag. This also adds support
for the reading of letter-spacing and word-spacing set too, so that
the same html outputted can be read back in.

Fixes: QTBUG-83718
Change-Id: Ic4afca21eb05efb779dbf99c6b3c13373e851f15
Pick-to: 5.15
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-06 14:35:57 +02:00
Jarek Kobus 60c6f4a51a Use QList instead of QVector in statemachine
Task-number: QTBUG-84469
Change-Id: I2b1399c34ebcc2237ca2662d97b54e81f11cb7af
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-06 14:06:13 +02:00
Timur Pocheptsov c163ec1dbf qnetworkproxy_mac - do not use the deprecated API
CFURLStringByAddingXXX was deprecated, so we use QUrl combined
with existing QString-based converters (from/to CFStringRef).

Pick-to: 5.15
Task-number: QTBUG-83992
Change-Id: I6f1a3fdafa9532bb7816a1262169df3421169cb7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-06 13:54:11 +02:00
Jarek Kobus 1e25b81e0d Use QList instead of QVector in plugins
Task-number: QTBUG-84469
Change-Id: Ic86f4a3000592a1c9ae62e4a83f4fe39832a6b24
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-06 13:43:20 +02:00
Jarek Kobus 23b7e7972e Use QList instead of QVector in platformsupport
Task-number: QTBUG-84469
Change-Id: I8e4e6626cc840bc9c8bce014c595da9080025dd8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-06 13:43:11 +02:00
Jarek Kobus d17f259174 Use QList instead of QVector in printsupport
Task-number: QTBUG-84469
Change-Id: I540b5574e358b100a595eb1676b051dfe25cb640
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-06 13:20:55 +02:00
Shawn Rutledge 546e44d473 Add QInputDevice::availableVirtualGeometry()
This property tells what part of the virtual desktop the input device
can access.

This is not a one-to-one mapping with a QScreen, because a Wacom tablet
might be configured to access a whole desktop, a whole screen, or an
area corresponding to the drawing area of one window; a mouse normally
can access the whole desktop (so QScreen::virtualGeometry() would be
identical to QInputDevice::availableVirtualGeometry()); a touchscreen
normally is mapped to one screen but could be mapped differently; etc.
It's possible to find the intersection of the rectangular area with the
screen(s) that it overlaps, though.

Task-number: QTBUG-78839
Change-Id: I9040e20fb5a3dec8a9a0dd827735826c4c1eea38
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2020-07-06 10:09:02 +00:00
Tor Arne Vestbø 8dd6957cd7 Make QtPlatformHeaders a private module
The APIs will be reintroduced as part of the new platform interface
API where appropriate.

Clients that still depend on the platform headers can include it
via QT += platformheaders-private.

Change-Id: Ifbd836d833d19f3cf48cd4f933d7fe754c06d2d9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-06 11:52:14 +02:00
Lars Schmertmann 18cfabafa6 Remove unnecessary ; after function implementations
Task-number: QTBUG-82978
Change-Id: Iea3bcaec1ef9f4bd0f73e5dccca33354650f5bf4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-07-06 11:46:39 +02:00
Lars Knoll a5025efccf Fix a crash in QClipBoard when copying utf16 data
Properly use the new QStringConverter API and not an internal
qFromUtfEncoded method that was buggy after the changes.

Take the oppportunity to clean up and remove qFromUtfEncoded, as
QClipboard was its only user.

Fixes: QTBUG-85417
Change-Id: I8540d12056bf3f448c1f628ce0bd0ad462a6447d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-06 11:31:43 +02:00
Lars Schmertmann cd67fe5821 Cleanup qtestspontaneevent.h for Qt 6
This change is motivated by the comment from bc087db59:
Qt 6: remove everything except QSpontaneKeyEvent::setSpontaneous()

Task-number: QTBUG-82978
Change-Id: I5f46ca366c193c06235f88022ec22c6848fbb7b0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-07-06 09:30:22 +00:00
Lars Schmertmann 4d661884d9 Use Q_DECL_UNUSED_MEMBER instead of Q_UNUSED
Task-number: QTBUG-82978
Change-Id: I7ff71e10b61cf5c2528ebef81cc49c648385fc33
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-07-06 11:29:39 +02:00
Friedemann Kleint 9e733622a6 Move linuxaccessibility to QtGui
Change some too-generic file names.

Task-number: QTBUG-83255
Change-Id: I4497ee2508bc323566f4061d4547707b7bda7a77
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-06 11:15:08 +02:00
Friedemann Kleint 864466d2e5 Move xkbcommon to QtGui
Task-number: QTBUG-83255
Change-Id: Ia1c6a49af6be4aaa6b988537c38db3a2c0a646a5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-04 20:46:07 +02:00
Mike Achtelik 90f1ef14aa Fix workaround in pthread destructor
Amends dcdfb6908d which failed to take the
workaround in destroy_current_thread_data into account.

Since pthread_getspecific was completely replaced with the thread_local variable
currentThreadData, the workaround has no effect anymore. Therefore we need to
replace it with a workaround that makes sure currentThreadData is set inside of
the destructor function.

This prevents a leak, where QThreadPrivate::finish() tries to access the
thread data, but since it already is null, recreates it without ever deleting it.

Pick-to: 5.15
Change-Id: I3811d262a411a6bde9d6eb90f8d17e0bbc5de657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-04 17:56:11 +02:00
Paul Wicking f172f0dee9 Doc: Fix connect syntax in snippet
Pick-to: 5.15
Fixes: QTBUG-85390
Change-Id: I67dbacd977acb6abdafb3b57818f24bf4a2dd302
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-07-04 08:10:03 +02:00
Volker Hilsheimer a10bf2ec5a Improve data member ordering and initialization in some private classes
Put bit fields together, and generally order by size to maximize the
compiler's ability to pack data. Initialize in declaration where
possible.

Change-Id: I49d4a3d2271229d671aeaf3eb17e6b7ecdc5099e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-04 02:51:35 +02:00
Lars Schmertmann ae890390e5 Avoid use of Q_UNUSED by eliminating the parameter names
This change only happens to files touched
by the commit to add missing ; to Q_UNUSED.

Task-number: QTBUG-82978
Change-Id: I10e6993a2bb3952cf9a262708b8573550e0dbe63
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-03 21:10:09 +02:00
Tor Arne Vestbø af3f5b8746 CMake: Re-run pro2cmake on gui, platformheaders
platformsupport and plugins/platforms

Change-Id: Id123bc4165387aa867bf4b61ffc3e9dabc2d4780
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-03 15:48:03 +02:00
Alexandru Croitor ab8b8c96ef CMake: Regenerate rest of projects under src/
Change-Id: I7d7692306a80deb9e8d2a90454dad4b39320f380
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-03 15:47:48 +02:00
Tor Arne Vestbø 939f5112a1 androiddeployqt: Fix format specifier warnings
Fixes: QTBUG-85344
Change-Id: I298370ef04b9be502c54bfee729e97379ad81231
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
2020-07-03 11:14:11 +02:00
Tor Arne Vestbø 7b2cc3fc75 macOS: Fix mapping of Qt to Carbon modifiers with AA_MacDontSwapCtrlAndMeta
The macOS platform plugin function toCarbonModifiers is based on a
mapping table with already swapped modifiers, where Qt::MetaModifier
maps to controlKey.

We were using the Carbon fooKeyBit constants instead of the fooKey
constants, so the logic for mapping from Qt to Carbon modifiers
when AA_MacDontSwapCtrlAndMeta was set to true would fail to reverse
the swap from the mapping table.

Since the command and control modifiers rarely produce different
unicode characters from the base keyboard layout, at least not in
the tested key layouts, and the AA_MacDontSwapCtrlAndMeta is not
commonly used, this bug was not that visible.

The logic maintains the behavior of mapping a single Qt modifier
to multiple Carbon modifiers (both left and right command e.g.).
This is a bit weird, but existing behavior that should be looked
at in a followup.

Change-Id: I8b30854770d1230a47f5144bf3245d0ac1493b51
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-03 11:14:11 +02:00
Lars Schmertmann fdc5e91dcf Only use one macro per line
Also add a ; where it is missing.

Task-number: QTBUG-82978
Change-Id: Ic5d2a07363c25ab641d234baca89bc62238458cb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-03 11:14:11 +02:00
Friedemann Kleint 2eea8e0754 QDBusReply<void>: Fix warning about implicit copy constructor
Provide a copy constructor, fixing:

src/corelib/kernel/qmetatype.h:2702:11: warning: implicitly-declared QDBusReply<void>::QDBusReply(const QDBusReply<void>&) is deprecated [-Wdeprecated-copy]

Pick-to: 5.15
Change-Id: I725be78ace9d1b31fa2de9a23a82f92d5969dc27
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-03 05:39:35 +00:00
Friedemann Kleint 3fb31819fd Windows QPA: Refactor touch device creation
There was duplicated code in QWindowsMouseHandler::ensureTouchDevice() and
QWindowsPointerHandler::ensureTouchDevice() which caused deprecation
warnings since the setters of QInputDevice were deprecated.

Join the 2 functions into a single creation function and add simple getters
and setters.

Fix deprecation warnings:
qwindowscontext.cpp:357:108: warning: 'void
QPointingDevice::setCapabilities(QInputDevice::Capabilities)' is deprecated: Use the constructor
qwindowsmousehandler.cpp:132:97: warning: 'void QPointingDevice::setType(QInputDevice::DeviceType)' is deprecated: Use the constructor
qwindowsmousehandler.cpp:136:41: warning: 'void QPointingDevice::setCapabilities(QInputDevice::Capabilities)' is deprecated: Use the constructor
qwindowsmousehandler.cpp:137:49: warning: 'void QPointingDevice::setMaximumTouchPoints(int)' is deprecated: Use the constructor

Change-Id: Iab5385e84d600e45b60f38225175f25ef043c3eb
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-07-03 07:39:14 +02:00
Tor Arne Vestbø 39d99c714b Fix no-OpenGL build after introducing QOpenGLContext platform interface
Change-Id: I355f43c200adb3a12e71e0b02aa10060672bb9e4
Reviewed-by: Nodir Temirkhodjaev <nodir.temir@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-07-03 00:21:38 +02:00
Volker Hilsheimer dd34ac5c34 Keep track of mouse button state in QTabBar
Get rid of call to QGuiApplication::mouseButtons

Task-number: QTBUG-73829
Change-Id: I7cc706b5e037c68ecf3c778b824ae8c93e5cfe38
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-02 22:43:07 +02:00
Volker Hilsheimer 01d30f8399 Pass modifier and button information down the call stack
Gets rid of calls to QGuiApplication::mouseButtons and
QGuiApplication::keyboardModifiers.

Task-number: QTBUG-73829
Change-Id: Idba978fe8db21622ca05c4882c74fd2792b119e5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-02 22:42:49 +02:00
Volker Hilsheimer 117a5aa744 Maintain keyboard modifier state in QAbstractSpinBox's input event handlers
Gets rid of calls to QGuiApplication::keyboardModifiers. Need to handle
key and mouse events, since the spin buttons may be clicked on without
the spinbox having focus.

Task-number: QTBUG-73829
Change-Id: I455c42987f19bb5b7997dc8d61272863d7bc394e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-02 22:42:25 +02:00
Jarek Kobus 2a6cdec718 Use QList instead of QVector in widgets
Task-number: QTBUG-84469
Change-Id: I3007734f8e4f164ece9dd8850ef007cbef9e12ef
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2020-07-02 21:57:06 +02:00
Lars Schmertmann d4c04acc65 Remove deprecated empty macro
Change-Id: Ib2a646ee22a7f97dae584e6f068f17378fe2b494
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-02 20:51:52 +02:00
Thiago Macieira 0d55d1c640 Doc: improve documentation about QVariant to JSON lossy conversions
Fixes: QTBUG-85299
Pick-to: 5.15
Change-Id: I24006db8360041f598c5fffd161c77638a54a27e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-07-02 10:32:13 -07:00
Volker Hilsheimer 634ce491e8 Manage keyboard modifier state in QPlainTextEdit
Gets rid of a call to QApplication::keyboardModifiers, at the expense
of some more bytes in QPlainTextEditPrivate.

Task-number: QTBUG-73829
Change-Id: I0394cb773034e832cffe5fa643ac308493f815b4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-07-02 19:28:29 +02:00
Tor Arne Vestbø b5ae228aa0 macOS: Simplify QCocoaKeyMapper::(to/from)CocoaKey
Change-Id: I8daf735e9b49b24b8144b2aab8966b6313dfa3fa
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-02 15:35:18 +02:00
Tor Arne Vestbø fcd3d4fb71 macOS: Move key mapping from QtCore to platform plugin
There's a bunch of similar and overlapping logic in QCocoaKeyMapper
already. Moving it to the same place allows us to easier find ways
to reduce the overlap.

None of the exported functions were used outside of the plugin.

Change-Id: I6953690cdfda5ee8265b33ccbf919184c3a1700f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-02 15:35:18 +02:00
Tor Arne Vestbø 0a52eba3c0 macOS: Move Cocoa modifier mapping logic to QCocoaKeyMapper
Along with similar logic for Carbon.

Change-Id: Ie32f8ffa336006387d50d3b9e8491816aba4ea04
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-07-02 15:35:18 +02:00
Edward Welbourne 1708bc731c Add a note to qurlidna.cpp about IDNA's Unicode version being frozen
It looked a lot like it needed an update to its Unicode data (in
tables and functions) but Thiago tells me this would be misguided,
although we do need an upgrade to IDNA 2008, at some point.
So document why this doesn't get updated along with UCD.

Task-number: QTBUG-85371
Task-number: QTBUG-85323
Change-Id: I764667db9c24bf05371e8a3c2601ccbf48f99711
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-07-02 15:35:18 +02:00
Edward Welbourne 057329c24c Make feature datetimeparser depend on feature datestring
No client of QDateTimeParser actually uses it unless datestring was
enabled, nor is it any use without datestring. Various methods
conditioned on datestring are broken unless datetimeparser is enabled.
We can't condition public API on datetimeparser, as it's a private
feature, but client code can condition use of it on the private
feature. All string-to-date/time conversions that use a string format
(this includes all locale-specific formats) depend on feature
datetimeparser.

Change #if-ery (or add it) in all client (including test) code to test
the right feature.

Tidied up some code in the process. Killed some already-redundant
textdate #if-ery. Renamed a test whose name claimed it involved
locale, which it doesn't, in the course of #if-ing it.

This simplifies the condition for feature datetimeedit (which overtly
depended on textdate, redundantly since it depends on datestring which
depends on textdate; its dependence on datetimeparser now makes its
dependency on datestring also redundant).

It also removes the need for assorted datestring checks in
QDateTimeParser itself.

Change-Id: I5dfe3a977042134b2cfb16cbcc795070634e7adf
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-07-02 15:35:18 +02:00
Volker Hilsheimer e278d72192 Add keyboardModifiers member to QStyleOptionSlider, and use it for mac
Gets rid of a call to QApplication::keyboardModifiers in a method that
is anyway only called from an input event handler, where we have that
information already.

Task-number: QTBUG-73829
Change-Id: I81753d6bf725e9db4918d831fac5b03a0b1940b9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-02 11:42:12 +02:00
Volker Hilsheimer dbe179e959 Doc: make paragraph about access of QStyleOption members consistent
Slight language simplification, and consistent usage of paragraph for
all QStyleOption subclasses.

Change-Id: I06a0480fc963d4457d5397b11df3acf62bc6912a
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-07-02 11:42:11 +02:00
Lars Knoll 800c49097d Remove method declaration that's not used or implemented
Change-Id: If8c03c08b7bfc162908510cac278ce9267b61cdf
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-02 11:42:11 +02:00
Lars Knoll 1480aa895b Move the reallocate() method from QArrayDataPointer to the Ops class
And only implement it for QPodArrayOps, as that's the only case where
we should be using it.

Change-Id: If48f3e4b142c322d3451309d6d1cf68aee569ea2
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-02 11:42:11 +02:00
Lars Knoll 6dd9c0720b Small cleanup
Change-Id: Ic8ed50a05a9723ed252f0762d86e41fe719fc3ef
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-07-02 11:29:11 +02:00
Alexandru Croitor 6a47b5850b Revert "Remove pthread storage for thread local data"
The change introduced crashes in some tests that only surfaced
in certain CMake configurations.

This reverts commit 76c3eee402.

Pick-to: 5.15
Task-number: QTBUG-85357
Change-Id: Ief93aa41e2d487d73b879133e7df0fd5ce0451bd
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-07-02 10:57:20 +02:00
Tor Arne Vestbø 6ff79478a4 Introduce platform API abstraction for QOpenGLContext
The API is available by including qopenglcontext.h as usual,
but scoped in the QPlatformInterface namespace. The namespace
exposes platform specific type-safe interfaces that provide:

 a) Factory functions for adopting native contexts, e.g.

    QCocoaGLContext::fromNative(nsContext, shareContext);

 b) Access to underlying native handles, e.g.

    openGLContext->platformInterface<QCocoaGLContext>->nativeContext()

 c) Platform specific functionality, e.g.

    static QWGLContext::openGLModuleHandle()

    openGLContext->platformInterface<QEGLContext>->doSomething();

The platform interfaces live close to the classes they extend,
removing the need for complex indirection and plumbing, and
avoids kitchen-sink modules and APIs such as the extras modules,
QPlatformFunctions, or QPlatformNativeInterface.

In the case of QOpenGLContext these platform APIs are backed
by the platform plugin, so dynamic_cast is used to ensure the
platform plugin supports the requested interface, but this is
and implementation detail. The interface APIs are agnostic
to where the implementation lives, while still being available
to the user as part of the APIs they extend/augment.

The documentation will be restored when the dust settles.

Task-number: QTBUG-80233
Change-Id: Iac612403383991c4b24064332542a6e4bcbb3293
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-02 10:27:50 +02:00
Eskil Abrahamsen Blomfeldt 037dce81fc Support glyphs larger than 255x255 with Freetype engine
We used chars for the width and height of glyphs when caching
them in the Freetype engine. This was okay for Qt Widgets because
we would fall back to QPainterPath when the fonts were too big
anyway (though this has since become configurable).

But in Qt Quick, when NativeRendering is in use, we will always cache
glyphs, because they need to be uploaded to the GPU. Also 255 is
no longer a large font size with current screen sizes, so we need to
upgrade our maximum. The new maximum size is 65535x65535.

[ChangeLog][QtGui][Text] Fixed a bug where glyphs would be clipped
at very large sizes.

Fixes: QTBUG-85259
Pick-to: 5.15
Change-Id: I9a01a707b274e5f12e49c1b0bd58f743abae9f5e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-07-02 09:53:38 +02:00
Timur Pocheptsov 9b36f48f59 QMacStyle - draw inverted vertical slider correctly
Without double-inverting it (and having a knob and the blue filling
mirroring each other relative to the center of the slider's bar).

Pick-to: 5.15
Fixes: QTBUG-85342
Change-Id: I4f0e8dd6d76e5e078a2db5c2ca63ba6bb2a661ed
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-02 07:31:33 +00:00
Jean-Michaël Celerier b9588a800b rhi: add support for D24 / D24S8 formats
Change-Id: I7ba14d30fa57bcb92cd764aed6c85cde853935b4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-07-02 08:05:42 +02:00
Nico Vertriest 05b60631a2 Doc: Make dbus snippets compilable
Task-number: QTBUG-84470
Change-Id: Idfe86ae0f38e43678cc5e746e30e5eeaf8eb72dc
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
2020-07-02 05:49:32 +02:00
Wang Chuan c513b1214e QTabBar: make sure the tab is repainted after releasing mouse
The tab has to be repainted even f the mouse release event happened
outside the tab bar, otherwise it will look like the tab is still
pressed.

As a drive-by, replace the repaint() call with update(); there is
no need for synchronous painting in an event handler.

Pick-to: 5.15
Fixes: QTBUG-81637
Change-Id: Ia55182be906511ac3b462f00add8a621c6c05fc3
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-02 04:17:52 +02:00
Christian Ehrlicher 843b403286 QTextOption: remove deprecated function QTextOption::tabStop()
Change-Id: I7d647088aacb83d16c3e3cc4d831162a95771083
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-01 22:19:16 +02:00
Ulf Hermann 5a5c20ad40 QFactoryLoader: Do not call unload() automatically
QPluginLoader does not call unload() on the QLibraryPrivate without an
explicit call to QPluginLoader::unload(). QFactoryLoader should behave
the same. We want to avoid unload() if possible as we generally don't
unload plugins and the resulting behavior varies between platforms. In
particular, macOS does make the address space of libraries only the
plugin links to inaccessible on close() even if RTLD_NODELETE is given.

For code that actually wants to unload(), an explicit function to do so
could be added. As QFactoryLoader is private API, there is no need to do
that until such a case is found.

Change-Id: I4e57259a9dcb4ceb60dfbfeda55abc0b995f436a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-01 19:08:24 +02:00
Tor Arne Vestbø fecfa0a014 Fix define indentation in qopengl.h
Change-Id: I7894fcadf1a0abecbd8206abae1b035c823d52c4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-01 16:09:53 +02:00
Tor Arne Vestbø b2bd2708b6 macOS: Remove PPD deprecation warning
We're not going to replace these any time soon, so remove the warning.

Change-Id: If020d2d3cf752e9a11558a55df5d05e2d2b3c567
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-01 15:16:15 +02:00
Kai Koehne 63e2acec00 Documentation fixes for QStringTokenizer
Task-number: QTBUG-85343
Change-Id: Ib647d90ba3cfa1181690dc745249637031c7ad67
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-07-01 15:10:54 +02:00
Tor Arne Vestbø 9ca731ed48 In-class initialize QWindowsGLContext members
Change-Id: Icd84e96706d5779656d7311755596110494eacd8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-01 15:05:09 +02:00
Tor Arne Vestbø a94b4f1b14 Remove explicit tracking of QOpenGLContext in QWindowsGLContext
QPlatformOpenGLContext takes care of that via QPlatformOpenGLContextPrivate,
which is set up in QOpenGLContext::create().

Change-Id: I1088c2e18efe6023c8e76f126d967a607746e980
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-01 15:05:02 +02:00
Alexandru Croitor bb5757f0cd CMake: Add "cmake" keyword for test blacklisting
Certain tests fail only on CMake configurations. We need the
capability to ignore these failures, without removing the
qmake-built-Qt coverage for now.

The keyword is enabled when Qt is built with CMake. So it doesn't
matter if the final test is built with CMake or qmake.

Task-number: QTBUG-85364
Change-Id: I157fe3d9254b589ef1e84022c01f4487ff834d27
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-01 14:55:26 +02:00
Volker Hilsheimer ab6861b01f Fix delivery of MouseMove events to newly opened popup windows
Amend d934fd7f54, which was too naive in
assuming that any change to the popup stack while a popup had been
pressed into should result in mouse move events to be delivered without
buttons.

Instead, add a new flag that is set explicitly when the qt_popup_down
widget is closed, and remove buttons from the move move events only when
that flag is set.

Add the sorely missing test case as well, even if we have to accept that
not all behavior can be tested reliably. Ie. on macOS, the simulated
mouse event differs from the event we do get from the QPA plugin or the
system; on Xcb, some of the behavior depends on the window manager.
This is something we could try to clean up for Qt 6.

Change-Id: Ibf0a0a6fb7d401915057365788947e5a35aa20c3
Fixes: QTBUG-84926
Task-number: QTBUG-82538
Pick-to: 5.15
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2020-07-01 14:52:49 +02:00
Timur Pocheptsov 37d9e44cd0 QSslConfiguration::setCiphers - introduce the overload taking QString
We had such an overloaded version in QSslSocket, it was deprecated without
providing any alternative. Now this function has some use and may be
introduced in Qt6, as QSslConfiguration::setCiphers(const QString &).
Last but not the least - a useless and strange auto-test was removed
(it was creating a list of 5 QSslCiphers each with isNull() == true).
That's becasue '!MD5' or 'ALL' (for example) is not a cipher to be found
in supportedCiphers.

Change-Id: I47eb4c0faa9b52885e883751dd992cd9cb3d26fe
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-07-01 11:26:15 +02:00
Joerg Bornemann 4fbb040f75 CMake: Hard-code QT_CONFIGURE_CROSSBUILD to 0
The qmake we're building is always built for the target platform.
Therefore, QT_CONFIGURE_CROSSBUILD can always be set to a falsy value.

Change-Id: I0f03c4ce0c75d3b4e97be5141adf742276131dcb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-01 11:22:46 +02:00
Volker Hilsheimer 980795dc55 Let QScreen::grabWindow's winId parameter default to 0 and add test
The platform plugins are implemented to grab the entire screen if
no window ID is provided. They do not grab the entire virtual
screen, just the screen the method is called on.

On macOS, the implementation ignored the window parameter, and
always grabbed the entire virtual screen. This change fixes the
cocoa implementation. The test passes in local tests (with two
displays with different dpr). Since grabbing a screen returns an
image with managed colors, we need to convert it to sRGB color
spec first, otherwise displaying a grabbed image will produce
different results. This will need to be changed once Qt supports
a fully color managed flow.

The test does not cover the case where a window spans multiple
displays, since this is generally not supported at least on macOS.
The code that exists in QCocoaScreen to handle that case is
untested, but with the exception of the optimization it is also
unchanged.

Done-with: Morten Sørvig <morten.sorvig@qt.io>
Change-Id: I8ac1233e56d559230ff9e10111abfb6227431e8c
Fixes: QTBUG-84876
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-01 07:09:24 +02:00
Shawn Rutledge 836c0b5a24 Make QDebug operator<< polymorphic for QPointingDevice
At least it will look polymorphic by doing dispatch internally.
Adding pointingDeviceType avoids the need for qobject_cast,
and will probably also be useful in other contexts.

Change-Id: I3b6d13765bdf3add9a8208de6f0e98018e40cc42
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-01 06:53:14 +02:00
Friedemann Kleint acbe4190e9 Move the EDID parser into QtGui
As a drive by, fix recursive inclusion in qxcbscreen.h.

Task-number: QTBUG-83255
Change-Id: Ia008921b559ef450c07aa17ca554c6b35e0a88bd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-01 00:46:59 +02:00
Liang Qi b92a41ea21 xcb: increase XCOORD_MAX to 32767
Align with int16_t in xcb_create_window() and xcb_get_geometry_reply_t.

Fixes: QTBUG-85275
Pick-to: 5.15
Change-Id: Ibbc0fab6b3d725a96ac4545857a4f04b026c4175
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-06-30 21:41:30 +02:00
Giuseppe D'Angelo 16a5206c78 QLoggingRegistry: remove an always true test
idx has already been tested for being >=0, so it's pointless
retesting it.

Change-Id: I2f5d7e1b7a70097de2601c1ed83752f6aa707cd9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-30 18:54:57 +02:00
Giuseppe D'Angelo b1ec50c96d QByteArray::insert: do not assert that pos must be non-negative
The insert() overloads have generally a very wide contract. The very
next line accepts negative positions, so remove the related assert.

Change-Id: I89b67615c59287825942047a28572bf896cf30e3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-30 18:54:57 +02:00
Giuseppe D'Angelo 5fa016f284 QUrl: do not retest if a codepoint is less than 0xFFFF
It's already tested in the surrounding if.

Change-Id: I37e13406cfd4865731ce06ed097c03294a75c592
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-30 18:54:57 +02:00
Giuseppe D'Angelo 6ed9b484da QRgba: code tidies
Fix the signature of an assignment operator.

Change-Id: I125c0129bb2607e5d8beb932da843a0393f2cfeb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-06-30 18:54:57 +02:00
Tor Arne Vestbø 9db36a7143 glx: Pull out screen numnber from GLXFBConfig instead of QXcbScreen
Change-Id: I6b87bb1c3c501613bc147c5f88e0f2d2222b0a50
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-06-30 18:54:57 +02:00
Tor Arne Vestbø 69d581736c glx: Remove assumption about supporting multiple displays
We only support one display (X server connection), so there's no reason
to have the user pass in the display. We can always use the one we know
from the QXCbScreen (which also matches the QXcbIntegration connection).

Change-Id: Ifc43dac4c74ba16490d3dee25fc3d43ee053a7d5
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-06-30 18:54:57 +02:00
Laszlo Agocs bed8c5d678 Switch to qvla where it makes sense in rhi
For all of these we know in advance that the vast majority of usages
will not exceed a certain number of elements. Also, none of these are
copied or moved ever.

Change-Id: I48aedf143e221dc178d661e23454d1e4fb7a271b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-06-30 15:24:43 +02:00
Timur Pocheptsov d81d3d5f92 QMacStyle - stop using the deprecated API
Namely, -calcSize method of NSControl (we're calling it for NSSlider).
The documentation recommends overriding -layout instead, but we don't
inherit NSSlider thus cannot override anything. Also, he documentation
says that -calcSize call its cell's -calcDrawInfo: if needed.
The default -calcDrawInfo: in NSCell is documented to be a noop and
it would appear NSSliderCell does not override it. Thus we remove
this call.

Pick-to: 5.15
Change-Id: Ic3e8bf742b50528a0616fb73494ec340fcd57e25
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-30 13:37:26 +02:00
Samuli Piippo b3146d2bb8 Use std::memmove
... and add include for it.
Amends ffb73175e6

Change-Id: I709a5aed13f6f62017b9e4116a03a4dfaae4bb13
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-06-30 14:30:19 +03:00
Laszlo Agocs 18eb51b813 Switch to qvla where makes sense in opengl
For all of these we know in advance that the vast majority of usages
will not exceed a certain number of elements. Also, none of these are
copied or moved ever.

Change-Id: I265afec154939c2fd0d1f902d97a86315ec7bc20
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-06-30 13:01:35 +02:00
Shawn Rutledge f1ccccb7dd Fix formatting in QDebug operator<< for QPointingDevice
It was missing some spaces.  Now looks like
 QPointingDevice("Wacom Intuos3 6x8 Pen stylus", type=Stylus, id=b, seat=30002, pointerType=Pen, capabilities=Position|Pressure|MouseEmulation|Hover|XTilt|YTilt, maximumTouchPoints=1, uniqueId=4c00079)

Change-Id: I4a8203a2a5ee1f8c5c53a6a85b40ec1d25a3c2c0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-06-30 12:59:10 +02:00
Tor Arne Vestbø a5c6329829 Pass correct modifier to QCocoaKeyMapper::toKeyCode()
The modifierKeyState variable is based on the Carbon modifiers, and
then further mangled to match the expected format of UCKeyTranslate.
But inside QCocoaKeyMapper::toKeyCode() we compare the modifiers to
Qt::KeyboardModifiers.

To ensure the logic works as expected we need to pass in the Qt
modifiers. This fixes shortcut sequences based on "Backtab".

Change-Id: I089fe601f0fe7a92f746e0a6447e2de0d974d0b2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-06-30 12:58:33 +02:00
Tor Arne Vestbø 3021b1ecb7 Simplify QCocoaKeyMapper by always returning a valid keymap
QCocoaKeyMapper::updateKeyMap would always end up creating a
valid key map, so the logic in CocoaKeyMapper::possibleKeys
for dealing with missing keymaps was not needed, and was
likely copied from one of the other key map implementations.

Since we know that we have a key map we might as well return
it after possibly updating it.

Change-Id: If83974f4ddedae8b1acefbadef48da3ee326eadd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-30 12:58:32 +02:00
Tor Arne Vestbø d962de314b macOS: Modernize QCocoaKeyMapper
Paying off technical debt from Qt 4 times, and preparation for removing
Carbon dependency.

 - Proper variable names (m_ prefix, titleCase, fullyWrittenOut)
 - Modern data structures for lookups
 - Removal of dead code/variables
 - Categorized logging
 - Built in constants instead of magic numbers
 - Typed variables instead of naked integers

Change-Id: Ie14621e0da8ed61e2185fa05373047204dc4ea62
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-30 10:11:23 +02:00
Nico Vertriest d0ccacaf28 Doc: Update docs with cmake package information
Task-number: QTBUG-85179
Change-Id: I70dda9b906ecd0b8d8f4d88b0562af8e6c428143
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-06-30 10:11:23 +02:00
Tor Arne Vestbø c36fb76bed Fix warning about missing QT_BEGIN_NAMESPACE in qsimd.h
Change-Id: I80d5ec671b08e74856b27922b10e0b31007a62c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-30 10:11:23 +02:00
Thiago Macieira 4e2f467036 forkfd: remove FFD_VFORK_SEMANTICS
This will never work, not unless libc implements it
themselves, since the child process is not allowed to return
from the function that does the vfork(), as subsequent use
of the stack would trash the frozen parent's return address,
and in our case that's syscall(). Instead, we may add a
vforkfd() function that takes a callback function that will
be called in that context, like the glibc clone(3) wrapper
does.

Pick-to: 5.15
Change-Id: I1dba29bc0f454df09ca1fffd161800b453c00593
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-06-30 08:11:23 +00:00
Tor Arne Vestbø ae28fbd8cc Fix QShortcutMap::createNewSequences debug logging
We don't need to include the possible keys in the log output
as that's handled by the call site in QShortcutMap::find.

Change-Id: Ie0635f63a4304fde40a8b671385518dd1e42e2dc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-06-30 10:11:23 +02:00
Jarek Kobus 9fa3cf15c8 Use QList instead of QVector in gui
Applied to headers only. Source file to be changed separately.

Task-number: QTBUG-84469
Change-Id: Ic08a899321eaffc46b8461aaee3dbaa4d2c727a9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-06-29 19:19:47 +02:00
Jarek Kobus c70c4e4266 Use QList instead of QVector in corelib docs
Task-number: QTBUG-84469
Task-number: QTBUG-85221
Change-Id: Ieb0ba7d82409e3c053a5788a01e92ea495505643
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-06-29 18:00:13 +02:00
Timur Pocheptsov 45c0f45e04 Move QAlertLevel and QAlertType enums into the namespace QSsl
Not to pollute the global namespace with rather generic names
(especially in case QT_NAMESPACE is none); also drop the
(now)redundant 'Q' prefix in the names.

Change-Id: I57ea7e3996cced705f7ddbdbc1e0231191b31c43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-06-29 17:08:13 +02:00
David Faure eb54646984 Fix QUrl::toDisplayString(PreferLocalFile) returning an encoded path
It's supposed to return the same as toLocalFile(), for local files,
which means passing QUrl::FullyDecoded just like QUrl::toLocalFile()
does.

But a few code paths were testing component formatting options without masking
other FormattingOptions like RemovePassword, so this had to be fixed.

Fixes: QTBUG-84594
Change-Id: I82f15148b6d93516200f9ad6258d474e7f10924a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-29 16:45:31 +02:00
Tor Arne Vestbø 76f45e6e97 Remove leftover QT_WARNING_POP
Amends ab1e0961d4.

Change-Id: I460d650e70dc5635cb377569aa976f11fc206d63
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-06-29 16:31:32 +02:00
Albert Astals Cid ee6aadcff4 QByteArray::operator[] no longer resizes
Fix the documentation

Change-Id: I328d9dd9255f15225992502dc35ae8877fe206a1
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2020-06-29 13:24:11 +02:00
Jarek Kobus b0f9c06a9b Use QList instead of QVector in corelib implementation
Omitting state machine and docs for now.

Task-number: QTBUG-84469
Change-Id: Ibfa5e7035515773461f6cdbff35299315ef65737
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-06-29 12:35:09 +02:00
Mike Krus 428115340b Fix UITouch event handling on tvOS
On tvOS touchesEnded: occasionally gets called with touches that have
not been passed via the touchesBegan:. When this happens previously
cached touch event (that HAVE been passed to touchesBegan:) are no
longer valid.
This causes a crash when testing if new touches contain old ones (since
NSSet dereferences the needle which is no longer valid).

Fix uses the unique (unsigned int) hash that UIKIT assigns to the
UITouch instance so cached copies are never accessed.

Furthermore, tvOS only supports single touch so now just clearing cache
when touch has ended.

Task-number: QTBUG-84383
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I7592cdde74ce834285e7b14196171f6b57736cc8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-06-29 11:24:41 +01:00
Alexandru Croitor 7fcc9cf055 CMake: Create a Find module wrapper for OpenGL
Our .prl files embedded an absolute path to the OpenGL.tbd file. This
obviously breaks their usage when used on another machine when no SDK
exists.

To fix that we need to use a "-framework OpenGL" linker flag instead
of linking against the absolute path library.
To convince CMake to do that, we have to create a wrapping
OpenGL target which sets an appropriate INTERFACE_LINK_LIBRARIES
property.

So create a FindWrapOpenGL find module to do that on darwin platforms.
Adjust helper.py and our build system to use it.

This tangentially amends 38cd18384f
because it recreates the FindWrapOpenGL module, but for a different
purpose.

Task-number: QTBUG-85240
Task-number: QTBUG-84781
Change-Id: I3498c19157ae31db5099e6edfb9d71490187f1d3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-29 12:22:49 +02:00
Edward Welbourne cd74c867d3 Remove some long-deprecated methods of QLibraryInfo
Change-Id: If5e85f813921b44971ca8572858051b53e1127a8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Sune Vuorela <sune@vuorela.dk>
2020-06-29 09:37:39 +02:00
Lorn Potter f1638edf45 wasm: fix handling on int dead keys on mac
Q_OS_MAC is not defined when building wasm on mac, so we need
to use a runtime check.

Pick-to: 5.15
Change-Id: I1e9c5ec4e11aae94c9d8e918b5f1f1526723c782
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-06-29 12:20:40 +10:00
Lorn Potter 4ed01f5d23 wasm: do not close QIODevice on error
Closing it early means the user may get this message when reading data
without checking for error:
'QIODevice::read (QNetworkReplyWasmImpl): device not open'

Change-Id: I377fc3da68e9d9f14f8504ace5addbb4f8e3c539
Fixes: QTBUG-85176
Pick-to: 5.15
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-06-29 09:43:50 +10:00
Lorn Potter 0707b85cda wasm: search emscripten key first
This fixes key lookups with different keyboard layouts

Pick-to: 5.15
Fixes: QTBUG-84494
Change-Id: I18f1643331961d9bfc1ac6977181f8959e76449d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-06-29 09:39:19 +10:00
Mike Achtelik 76c3eee402 Remove pthread storage for thread local data
The thread specific QThreadData is currently referenced as a thread_local
variable and using a thread specific value via pthread_setspecific.

Having both is not necessary, as the pthread value is never directly accessed
and only used in the pthread destructor. Using a holder, we can achieve the same
and get rid of the pthread handling altogether.

This also fixes a bug, where the thread_local currentThreadData is already null,
when entering the pthread destructor. In this case it would lead to a new QThreadData
being created, when finishing an adopted thread.

Pick-to: 5.15
Change-Id: Ib23b840f804637e6b7cebd89016672a34a575380
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-28 19:12:32 +02:00
Joerg Bornemann 8c97ae0c1f CMake: Make the path variables in Qt6CoreConfigExtras.cmake relative
To be consistent with the Qt6HostInfo package, we're providing paths
without prefix in the variables like QT6_INSTALL_BINDIR.
The full path can be easily obtained by combining the relative path with
the QT6_INSTALL_PREFIX variable.

Also, the value of QT6_INSTALL_SYSCONFDIR was wrong. It usually is
located outside of the prefix.

Change-Id: I0035633a8c1c865d86d5ffc8b36565ceb2e7ea25
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-06-28 17:16:02 +02:00
Richard Moe Gustavsen 040a7cfa93 macOS: Clean up modal sessions after each pass of processEvents()
The Qt macOS event dispatcher defers modal session cleanup until
the next runloop pass. But as it stood, we never did do so for
stand-alone qApp->processEvents() calls. The result was
that a NSModalSession would be kept alive longer than necessary, which
would impact the activation state of other QWindows.

Change-Id: I054f3084132c9d20a29a3f5823c19b7123ef40bf
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-06-27 21:18:05 +00:00
Christian Ehrlicher ab1e0961d4 QFileDialog: remove deprecated mode QFileDialog::DirectoryOnly
Change-Id: Ia06e80c1bbed3e5bb80793aebd0a4780eb81a36b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-06-26 22:40:34 +02:00
Giuseppe D'Angelo b40f36603d QList: use =default for its default constructor
Change-Id: Id5270eac2464bf2d3810de18579d4dc295e98b38
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-26 20:51:21 +02:00
Eirik Aavitsland 95b5a56071 Improve deprecation message for QLine::angle(QLine)
angleTo() always gives an answer measured ccw, so between 0 and 360
degrees. The deprecated angle() would give either cw or ccw,
depending on which is smaller, so between 0 and 180 degrees.

Help users porting by showing a simple way to achieve the angle()
behavior in the deprecation message.

Change-Id: I66f77d2b4e688562e443428209737aa3332a448f
Pick-to: 5.15
Fixes: QTBUG-85087
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-06-26 13:24:17 +00:00
Eirik Aavitsland 1a63409579 QImageIO: use the new allocation checker in the format handlers
Change-Id: I604d99ce476d4758a1e20b78257082911f1f1546
Task-number: QTBUG-85037
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-06-26 15:24:05 +02:00
Eirik Aavitsland 5dea4fe956 Introduce a settable allocation limit on image loading
[ChangeLog][QtGui][QImageReader] Introduced a settable allocation
limit on image loading to limit resource usage from corrupt image
files.

Change-Id: Ibed7b0cac32798125a060e6db80b17ebc5e70759
Task-number: QTBUG-85037
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-06-26 15:23:58 +02:00
Jarek Kobus b043871d2b Use QList instead of QVector in opengl
Task-number: QTBUG-84469
Change-Id: I26c1cfab7f2d9aa5c71847ae02bfe0cf15c04a1b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-06-26 15:09:17 +02:00
Tor Arne Vestbø f529f94132 macOS: Close popups on mouse down using synchronous QPA delivery
Change-Id: I5ccb5ca4f9b9f7a480c575c5a2710ec20361cf88
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-06-26 14:58:45 +02:00
Friedemann Kleint 7789c0dc86 SSL configure test: Fix confusing warning
Remove quote character, fixing:

Performing C++ SOURCE FILE Test HAVE_openssl_headers succeeded with the following output:
Run Build Command(s)
src.cxx 8 88: warning: missing terminating ' character
    8 | #  error OpenSSL was reported as >= 1.1.1 but is missing required features, possibly it's libressl which is unsupported

which makes one think the test failed.

Change-Id: I0ac02deee4282ef7c953186b820a31309e82b5e1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-06-26 14:49:08 +02:00
Laszlo Agocs d8bf71026c Fix up QVulkanWindow docs
Pick-to: 5.15
Change-Id: I5a37a57245b8d859adf02810d3954e7532e4a475
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-06-26 14:42:47 +02:00
Jarek Kobus 0e6f6507d5 Use QList instead of QVector in network
Task-number: QTBUG-84469
Change-Id: I7827da68e73ca8ff1e599c836f2157894c452b63
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-06-26 14:42:43 +02:00
Laszlo Agocs db61e43c81 rhi: Enable specifying just an adapter or phys dev
Required by OpenXR. A VkPhysicalDevice or an adapter LUID + feature
level pair should be adoptable while leaving the rest (device, queue,
etc. setup) to QRhi as normal.

Change-Id: Iada0972671b037b4efb03e7831b7c9b8c5f2393d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-06-26 14:42:42 +02:00
Assam Boudjelthia 6f837d6f07 Android: fix QDesktopServices::openUrl() error for file scheme path
If the url is a "file:" scheme url don't check for permissions
which the file won't have, and then disable StrictMode for API >= 24
to be able to pass the "file:" path to the openUrl intent.

Pick-to: 5.15
Fixes: QTBUG-67877
Change-Id: Ia3fecc24a67069dc76f866455277bf8b929e7697
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-06-26 12:41:42 +00:00
Lars Knoll e81330d327 Add explicit encode()/decode() methods to QStringConverter
The functional style interface is nice, but does feel alien in some
contexts, so better also have explicit encode and decode methods.

Change-Id: Ic07ced15f65cdb3a7f1cf044041e341d2ef87f79
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2020-06-26 14:41:42 +02:00
Giuseppe D'Angelo d4bce57340 Unexport QModelIndex
It is entirely inline.

Change-Id: I626d6e4f6338dabfcc1e34127c898ed13c5a513b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2020-06-26 14:41:41 +02:00
Tor Arne Vestbø 28f6892717 macOS: Check that platform window is valid after delivering close event
Fixes: QTBUG-78814
Pick-to: 5.15
Change-Id: I551024c5d777999f7c79d21fd7b7de061c18f971
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-06-26 14:41:41 +02:00
Thiago Macieira e7d76d79e8 QThread: Fix unnecessary stricter accesses to QThreadData::thread
Commit ec6556a2b9 changed the member from
a plain pointer to a QAtomicPointer. Not all accesses were caught.

Pick-to: 5.15
Change-Id: I3d4f433ff6e94fd390a9fffd161b4ff25508c48d
Reviewed-by: David Faure <david.faure@kdab.com>
2020-06-25 18:03:34 -07:00
Jarek Kobus 48c8322a61 Use QList instead of QVector in dbus
Omitted type replacement in qDBusParametersForMethod() for now.

Task-number: QTBUG-84469
Change-Id: Ieb9fbb30b431c5e4183ad57acd35640e9556bf6c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-06-25 22:31:13 +02:00
Jarek Kobus 0475460102 Use QList instead of QVector in corelib
Applied to headers only. Source file to be changed separately.
Omitted statemachine for now to avoid conflicts.
Omitted qmetatype.h for now - to be handled later.

Task-number: QTBUG-84469
Change-Id: I317376037a62467c313467d92955ad0b7473aa97
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-06-25 22:30:59 +02:00