I somehow forgot that we build the pcre2 sources not only as part of
the bootstrap library and qmake, but also as separate library as well.
Apply the flags to the bundled library.
Amends 976fa5134a
Amends fa98adbd04
Change-Id: Ia1db3a8bd731c7e3ee4d7109be8e2ef98c594070
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Check that the sizes are even representable when checking if clipping is
necessary.
Fixes oss-fuzz 23630
Pick-to: 5.15 5.12
Change-Id: I95d6873d28b0e4f47aae7666f7ee96b745dc997b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
When the application is in multi window mode then when pausing it should
not suspend the application as it can still be visible in the
background.
Change-Id: I03a561459b2aa04c808b7d4220cd3e558671dd17
Pick-to: 5.15
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Add overloads for qMin and friends where the arguments are of different
type, but one can be easily promoted to the other. Return the promoted
type. Promotions are only allowed if both types are either signed,
unsigned or floating point numbers.
This should simplify writing code in many case (as for example
qMin(myint64, 1)) and also help reduce source incompatibilities between
Qt 5 and Qt 6, where the return types for sizes of our containers changes
from int to qsizetype.
Change-Id: Ia6bcf16bef0469ea568063e7c32f532da610d1cd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Fixes regression introduced in b4981f9d4c,
due to which it was possible to back-tab into a widget even though it or
its focusProxy had a NoFocus policy.
As a drive-by, split the complicated if-statement up a bit for improved
readability.
Change-Id: Ib0ac2604076e812e340b11534c23ae8ae958d082
Fixes: QTBUG-76924
Pick-to: 5.15 5.12
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Comparing threadIds is faster, especially if invoked from a non qt thread,
where QThread::currentThread() needs to create a QAdoptedThread/QThreadData first.
Pick-to: 5.15
Change-Id: I44b3013283754f1a5ac9d62debcf4c82be77c554
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When I wrote the QCborValue to QJsonValue conversion, I used
QJsonValue::Undefined because it allowed to keep some level of
compatibility in CBOR, despite the function documentation saying that
CBOR undefineds became JSON nulls. Which they did.
But when we converted QJson{Array,Object} to be backed by CBOR classes,
that Undefined meant the insertion into the array/object actually
deleted the entry.
[ChangeLog][JSON] Fixed a regression from 5.14 that caused values of
default-constructed QVariants in QVariantLists, QVariantMaps and
QVariantHashes to disappear when converting to JSON via
fromVariant{,List,Map,Hash}.
Fixes: QTBUG-84610
Pick-to: 5.15
Change-Id: Ic0987177fe463f352db9bd84993f116e2bdacc75
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
LibResolv uses a QLibrary which is a QObject that must be deleted
if the QCoreApplication is being destroyed to release the underlying library.
A Q_GLOBAL_STATIC won't release any memory and is not able to
manually release it.
Pick-to: 5.15
Task-number: QTBUG-84234
Change-Id: I97fe5faca309e9c1e85435f602ad7f8c3f633b48
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
An attempt to setSpec(TimeZone) gets treated as setSpec(LocalTime), as
the method has no parameter to carry *which* zone; this was done
silently, but should be brought to the caller's attention. So warn.
Moved a declaration closer to its use, folded an if/else into a single
assignment using ?: and removed a fatuous \fn just before the function
it desribed.
Change-Id: Ia35c87e0ba373675d3ae1e6ef3bf05016c06c48d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Most calls to localMSecsToEpochMSecs() happen from functions that
can't save the DST status it repots (due to the data being const); but
refreshDateTime() can and (given its name) clearly should.
Pick-to: 5.15
Change-Id: Ib53c88d2233925da275f0ac52f768cada92c5d2d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QHostInfoLookupManager has a QThreadPool as member.
QThreadPool is a QObject and must be deleted if the QCoreApplication
is being destroyed to release the underlying ThreadData.
A Q_GLOBAL_STATIC won't release any memory is not able to
manually release it.
Pick-to: 5.15
Task-number: QTBUG-84234
Change-Id: I96be4601c3af38fa7c753a6f7acb8273ee277a27
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Now that the bound values are kept in placeholder order we can
depend on that and not have to ensure that fieldSerial() would
give us something that is in alphabetical order should it end
up being sorted.
Change-Id: I3a3e443bef150a06f455e18e3502235b1ae4d242
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Use the overload-with-template trick from P1423 to avoid ambiguities
when existing callers pass 0 or nullptr.
Add a qdoc-ignored macro to hide the fact that the overload is a
template.
[ChangeLog][QtCore][QString] Added char8_t overload of fromUtf8().
Change-Id: Iaa2d365bfa161ef36cc73fa3bad50aabf34d01db
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QThreadPool is a QObject and must be deleted if the QCoreApplication
is being destroyed to release the underlying ThreadData.
A Q_GLOBAL_STATIC won't release any memory is not able to
manually release it.
Pick-to: 5.15
Task-number: QTBUG-84234
Change-Id: Ia82bcff2b564b753ed687f025ff86fa1bed1e64c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
All our tests were find() == end() or !=, which depends on the
evaluation order of the arguments to operator==(). If end() is called
first, then the detach happens before find() and all is well. But if
find() is called first, it may return end() before end() detaches.
[ChangeLog][QCborMap] Fixed a bug that could cause the iterator returned
from a failing key search with find() not to match end(). Now, every
call to find() will detach in shared QCborMaps; to avoid this, use
constFind() and constEnd().
Fixes: QTBUG-84583
Pick-to: 5.15 5.12
Change-Id: I552d244076a447ab92d7fffd161793496a8d03a8
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The next_in pointer in z_stream is defined as "z_const Bytef *" but
z_const is actually an empty macro in most builds. Since our data is
read-only constexpr, we need this const_cast to compile.
Fixes: QTBUG-84457
Pick-to: 5.15
Change-Id: Ied637aece2a7427b8a2dfffd1612a01ae46f7c1a
Reviewed-by: David Faure <david.faure@kdab.com>
Strawberry Perl has been found to ship a libfontconfig.
Change the exclusion to win32.
Fixes: QTBUG-85184
Change-Id: Ic953ba3226c275a204720ff83161fba138eae0cb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
A QVLA is copyable, so it should be movable, too.
Added a helper function a la P1144's uninitialized_relocate_n to deal
with the QTypeInfoQuery stuff. This way, the code is re-usable
everywhere it's needed. The same cannot be said for QArrayDataOps,
which only a parent can love...
[ChangeLog][QtCore][QVarLengthArray] Added missing move constructor
and move-assignment operator.
Task-number: QTBUG-39111
Change-Id: If0dc2aa78eb29062d73dcd3dc4647ba345ae39e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Needed for using native textures in WebEngine.
Task-number: QTBUG-78682
Change-Id: I8458b17767bb992357064d85f159781ea24e61dc
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Freetype's fake emboldening does not give good results for large font
sizes.
Pick-to: 5.15
Fixes: QTBUG-84570
Change-Id: I1a7722c1482e3450e5a549c31c9766d930fcd13a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
The comment says we don't need synthetic italic for oblique, but
synthetic italic actually *is* oblique, since there is no way to
synthesize italic. So just remove the comment as it is unclear
what its purpose is.
Change-Id: I72f727b958e817e376d73f6c001d410a5f55a152
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This is a commit in preparation for an upcoming change in QtQuick.
We want to store the resolved functions for managing VAOs somewhere;
the "least worst" choice is next to the all other function resolvers,
which are in QOpenGLContext(Private).
To avoid moving the VAO resolvers themselves, leave a hook in
QOGLCPrivate, similar to e.g. the texture function resolvers. The hook
gets populated when the VAO resolvers for a given context are
requested.
This removes memory management burden from the users of those functions
(again, just like other function resolvers), and makes the
initialization of the functions automatic.
Change-Id: I0eba30a85bf8ad82946a5d68e91009d8b4bd91cf
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Requires moving construction and destruction of the IConnectionPoint
(contained in QNetworkListManagerEvents contained in
QNetworkStatusMonitorPrivate) and the calls to CoInitialize and
CoUninitialize to start()/stop() so it can be taken down
and brought up in a reasonable way.
Partial squashed cherry pick of bde6b27882143acbafa8c0b2e8055c3808ae3dd4
and the following fixup patch 84be436ef0f8253af87cdd2742858107e54c228b.
Task-number: QTBUG-84031
Change-Id: I9d644261c6c730ea511e28d75da91bd34504bd03
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit bde6b27882143acbafa8c0b2e8055c3808ae3dd4)
(cherry picked from commit 84be436ef0f8253af87cdd2742858107e54c228b)
They were deprecated with replacements in QSslConfiguration proposed (and
some without alternative, which we'll provide if there is any demand
in such an API). Special thanks to M.N. for a nice hint on how to
amend the test without introducing a new API.
Change-Id: I7841a5b3f30469d8204b61cb65921c34275e0650
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
The idea was to keep nagging us to update all the platform plugins to
do device registration. But besides being annoying, it would cause
test failures if we start adding QTest::ignoreMessage() all over,
and then some platforms start doing device registration properly.
Change-Id: Ia0fbb64cf86f33532be032ec9eebe6e4ad607f20
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This enables the order of boundValues to be consistent as with a QMap
it could have been reordered which can be a problem for positional
bindings.
[ChangeLog][QtSQL] Changed signature of QSqlQuery::boundValues() to
return a QVariantList
Fixes: QTBUG-51609
Change-Id: I1c80fa8522fa7352723420b6fc9ec466406315fb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This code was introduced in 2011 as an experimental feature
and have been untested/unmaintained ever since. It's time to
remove it for the following reasons:
- It has never been documented in QGuiApplication under
"Supported Command Line Options". The intended command
line was: ./app -platform xcb:address:display
- I am not aware of other toolkits that would provide this
functionality - connecting to several X displays simultaneously.
- XCB plugin respects the "-display" command line and DISPLAY
envvar which should be sufficient. So the "workaround" to get
your window on 2 X displays is:
./app -display :0
./app -display :1
- There are no JIRA bugs where users would complain that this
feature does not work. AFAICT it has not worked for years.
Almost all functions care only about the "default" connection,
and don't attempt to support multi-connection.
- This will stop confusing people who want to contribute to
the XCB plugin.
[ChangeLog][Platform Specific Changes][X11] Connecting to multiple
X servers simultaneously within the same application is no longer
supported.
Task-number: QTBUG-52408
Change-Id: I61ce23480702bb89b02c6028fa0986fe63481978
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Even it was not marked as deprecated the replacement function initFrom()
is available since Qt4 times (and init() is deprecated since then)
Change-Id: I09a4ebbf66b01fbe7aec67691dc68d2e42d1cd78
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Android platform event of activating accessibility might be received,
before the platform plugin is initialized, thus disregarding the activation
step.
This change saves the activation event state and defers setting it in
platform integration.
Fixes: QTBUG-77320
Pick-to: 5.15 5.12
Change-Id: I06aab76159d1de0e72c0c535dbe80c2858f8e79b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
And name the main class QList. That's also the one we document.
This gives less porting pain for our users, and a lot less churn
in our API, as we use QList in Qt 5 in 95% of our API.
In addition, it gives more consistent naming with QStringList and
QByteArrayList and disambiguates QList vs QVector(2|3|4)D.
Fixes: QTBUG-84468
Change-Id: I3cba9d1d3179969d8bf9320b31be2230d021d1a9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Remote URLs were converted to local file urls and converted to relative
paths, which led to bugs when copying URLs from e.g. the web
sites and pasting them into the command line.
Original patch by Allan Sandfeld Jensen.
Task-number: QTBUG-80243
Change-Id: I2cd41635b34b2ead424441719795705ef19d37f2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
They were deprecated since Qt5.0 so it's time to go away.
Change-Id: Ib0192f9048ff15c9d47fb1a23046ccfe0ee7d807
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
It does not return anything and was already deprecated in Qt4.8 (and
already returned an empty QList back then)
Change-Id: I3a2f1b79081d3289d13ba9fdee346aa730d16114
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Assume UTF-8 on all Unix like systems
* Export some functions to be able to compile QTextCodec once
moved to Qt5Compat.
Task-number: QTBUG-75665
Change-Id: I52ec47a848bc0ba72e9c7689668b1bcc5d736c29
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
There is no reason for keep using our macro now that we have C++17.
The macro itself is left in for the moment being, as well as its
detection logic, because it's needed for C code (not everything
supports C11 yet). A few more cleanups will arrive in the next few
patches.
Note that this is a mere search/replace; some places were using
double braces to work around the presence of commas in a macro, no
attempt has been done to fix those.
tst_qglobal had just some minor changes to keep testing the macro.
Change-Id: I1c1c397d9f3e63db3338842bf350c9069ea57639
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
QStringView doesn't need to convert qsizetype parameters to int.
Change-Id: Iba8b5259ab3ed7a24a57bb6748446fd3e45bb182
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
In case drainOutputPipes() makes a recursion, setting 'dying' to true
should protect the code from reentering. But, the next call to
QProcessPrivate::cleanup() resets this variable, which allows a
secondary pass. So, we should postpone setting 'dying' to false until
a new process session is started.
Fixes: QTBUG-33731
Change-Id: I269ad3b8defa32aa714ea13f8803a07259f475dc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is useful information for people that want to use Qt in their
project with CMake.
Unfortunately there is no good way to actually set
CMAKE_OSX_DEPLOYMENT_TARGET automatically with the Qt provided value,
because it needs to be set before the first project() call in a
CMake project.
This means it can be set either on the command line, or manually by the
application developer in CMakeLists.txt before the first project()
call or via a CMake toolchain.
In Qt 6 we provide a CMake toolchain file with the deployment target
already set, so if the application developer uses the Qt generated
toolchain, they will get the value automatically.
In Qt 5 the value can only be read for informational purposes only,
from the QT_DARWIN_MIN_DEPLOYMENT_TARGET property on the
Qt5::Core target. The same property is set in Qt 6 for compatibility
resons.
Task-number: QTBUG-76167
Task-number: QTCREATORBUG-22466
Pick-to: 5.15
Change-Id: Id61d70dc9a1b7a0e7cdb90b1e679171ea178126b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
It is architecture defined whether .align means .palign or .balign. Use
.balign to make that explicit.
Change-Id: I8c7e3760b37edfb207b7088319a338a1f583255b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The addition of CMakeLists.txt in other directories made the reference
ambiguous. Also fix the Qt version.
Change-Id: I679d86a302ae6c41b84ded66e3f21c5320e4b325
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This was causing some bogus failures in Qt Quick autotests.
Existing APIs like QQuickWindow::mouseGrabberItem() are not really
compatible with the idea of a mouse-less system; but perhaps we can
revisit this later.
Task-number: QTBUG-85114
Change-Id: Id1c2e5894e5cf13a79998aaea28d5f42fad920cf
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Amends 6589f2ed0c to match the comment.
If the master device we found is a keyboard, then its own ID is the
keyboard ID, and the attachment is a pointer; but if the master device
we found is a pointer, then its attachment is the master keyboard.
In practice, this gives all devices the same seatId on normal
single-user sessions.
Change-Id: Ibe7d7cdee7b3fe642efacd0349c109271059cb36
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
We want every QInputEvent to carry a valid device pointer. It may be
some time until all QPA plugins are sending it, but it's necessary to
provide the functions for them to start doing that.
We now try to maintain the same order of arguments to all the functions.
handleTouchEvent(window, timestamp, device, the rest) was already there
(except "device" has changed type now), and is used in a lot of platform
plugins; so it seems easiest to let that set the precedent, and modify
the rest to match. We do that by adding new functions; we can deprecate
the older functions after it becomes clear that the new ones work well.
However the handleGestureEvent functions have only ever been used in
the cocoa plugin, so it's easy to change their argument order right now.
Modify tst_qwindow::tabletEvents() to test new tablet event API.
Task-number: QTBUG-46412
Change-Id: I1828b61183cf51f3a08774936156c6a91cfc9a12
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Documented QPromise. Added snippets under auto tests
to ensure they are compiled and run in CI.
Task-number: QTBUG-81586
Change-Id: I20084e38f9d2f6fc8540f95ee03ec3d2827177e8
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Change the meaning of Q_PRIVATE_QPROPERTY to imply that the property is
implemented using a QNotifiedProperty. That requires passing the owner
object instance to the value and binding setters.
Similarly, detect QNotifiedProperty members like QProperty.
Change-Id: If49bbb04c8ccd4a661973888c50d2d556c25034f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Try to align with the HTML standard as much as possible.
AlignBottom is now really the bottom of the line (not the text).
AlignMiddle is between AlignTop and AlignBottom.
Change-Id: Ia067b96209c2ab0becbff99cf15bb8ab193ee2c6
Fixes: QTBUG-84981
Pick-to: 5.15
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Change-Id: I8e29846db77581953d90c818060950744cb9f521
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
The onCreate function expects a Bundle variable to be passed in so it
needs to get a null Bundle in this aspect to prevent it from crashing
due to the lack of parameters.
Change-Id: I8cc4b62d9e8db170b957f7574360033e91ca3493
Pick-to: 5.15 5.12
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
If Gradle build fails on Windows, check for java files that exceed
the max length of 260 that Gradle can handle, then warn about the length
issue.
Pick-to: 5.15
Task-number: QTBUG-83875
Change-Id: Ia7462bc816b3efa4ba9fdd0f179fdc4c06e23248
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Using the environment variables QT_NO_SYNTHESIZED_BOLD
and QT_NO_SYNTHESIZED_ITALIC it is now possible to disable
the support for synthesized bold and italic, which is
used when the font doesn't support those variants.
Change-Id: Ic1a6984858e1260f252662689705553073859df4
Task-number: QTBUG-83124
Pick-to: 5.15
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Move it to qplatformfontdatabase.h.
Amends 6be9830d86.
Task-number: QTBUG-83255
Change-Id: I0a3807dc49128c8ddd1dfe7d725528c1a852950b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Since Q_DECL_ENUMERATOR_DEPRECATED can be explicitly set to something
other than QT_DEPRECATED, then it needs to be explicitly undefined
when QT_NO_DEPRECATED_WARNINGS is used to prevent it from showing a
warning.
Pick-to: 5.15
Change-Id: Ibe73ff5e7b5aa5eff93d0c4c0a38a33855a9a330
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
I removed the line locally, and then added it back for testing and
forgot to remove it again.
Amends a0bfa4e1f8.
Task-number: QTBUG-84907
Change-Id: I7d6d0237742f4c3fc3ca0a2532d776325f396aab
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Consistently use the macro from qcompilerdetection.h instead of manually
disabling the warning for three different compilers.
Change-Id: Id59d30047c8a504e1082d7e47c02f4746fddf9d6
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Those warnings can cause compile errors if someone instantiates the
equality operator.
Pick-to: 5.15
Change-Id: I95fab87a424b2d359a8f3e22134f9d3ff6219703
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This way we can take and return more datatypes than qreal,
just piggy-backing on the std:: functions (which take any
integral and any fp datatype).
This makes these functions pure ADL enablers (like qSwap).
A type (hi, QAngle!) that wants to have math related functions
simply needs those defined in its own namespace using the
"standard" names (sin, cos, etc.); and we'll find them
using the q-prefixed function.
qCeil and qFloor signatures however still return int
to avoid too much breakage.
The FP-related functions (qIsInf, etc.) have been left
alone. Those are "special"; a lot of care is in qnumeric
because some implementations define them as macros, which
blocks any possibility of user-defined overloads found via
ADL.
[ChangeLog][QtCore][QtMath] The math-related functions
(such as qSin, qCos, qPow and so on) can now take an
arbitrary parameter rather than just qreal. They will do
a ADL-enabled call to the respective free function, using
the functions in namespace std as a fallback. Moreover,
they will now return whatever datatype is returned by the
free function (e.g. long double if the call is placed on
a long double).
Change-Id: I111084eda52556663802e65a85e082187c2a6861
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
There was a decision to use QList consistently in public API, now that
it's supposed to perform as well as QVector. Amends
6589f2ed0c
Task-number: QTBUG-46412
Task-number: QTBUG-72167
Change-Id: I30004792667ee0581a433409ac2e20ffc645e952
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
We have seen during the Qt 5 series that QMouseEvent::source() does
not provide enough information: if it is synthesized, it could have
come from any device for which mouse events are synthesized, not only
from a touchscreen. By providing in every QInputEvent as complete
information about the actual source device as possible, we will enable
very fine-tuned behavior in the object that handles each event.
Further, we would like to support multiple keyboards, pointing devices,
and named groups of devices that are known as "seats" in Wayland.
In Qt 5, QPA plugins registered each touchscreen as it was discovered.
Now we extend this pattern to all input devices. This new requirement
can be implemented gradually; for now, if a QTWSI input event is
received wtihout a device pointer, a default "core" device will be
created on-the-fly, and a warning emitted.
In Qt 5, QTouchEvent::TouchPoint::id() was forced to be unique even when
multiple devices were in use simultaneously. Now that each event
identifies the device it came from, this hack is no longer needed.
A stub of the new QPointerEvent is added; it will be developed further
in subsequent patches.
[ChangeLog][QtGui][QInputEvent] Every QInputEvent now carries a pointer
to an instance of QInputDevice, or the subclass QPointingDevice in case
of mouse, touch and tablet events. Each platform plugin is expected to
create the device instances, register them, and provide valid pointers
with all input events. If this is not done, warnings are emitted and
default devices are created as necessary. When the device has accurate
information, it provides the opportunity to fine-tune behavior depending
on device type and capabilities: for example if a QMouseEvent is
synthesized from a touchscreen, the recipient can see which touchscreen
it came from. Each device also has a seatName to distinguish users on
multi-user windowing systems. Touchpoint IDs are no longer unique on
their own, but the combination of ID and device is.
Fixes: QTBUG-46412
Fixes: QTBUG-72167
Task-number: QTBUG-69433
Task-number: QTBUG-52430
Change-Id: I933fb2b86182efa722037b7a33e404c5daf5292a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
QWidget::screen() was added in b455a863a1
and this is another good use for it (in 5.15 and newer).
Amends c068edcecf
Pick-to: 5.15
Fixes: QTCREATORBUG-24195
Task-number: QTBUG-76162
Change-Id: Ifaafe9b45fafaae220da54bbf3bc7a568e7953f9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Since commit e343affd63 we're creating object libraries for Qt
resources in static libraries. Those must be reflected in the
generated .prl files for static builds of Qt.
In qt_add_resource, we now calculate the install locations of the
object files of rcc-generated C++ files and save them in the target
property QT_RCC_OBJECTS. This property is then passed to
QtFinishPrlFile to write the object file paths to the .prl file.
Change-Id: Ic383892d723d02fc91f712bc2dbcbc90babad074
Reviewed-by: Simon Hausmann <hausmann@gmail.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Since commit e343affd63 we're creating object libraries for Qt
resources in static libraries when building Qt or a Qt-based project
with CMake. The purpose of this is to remove the need for calling
Q_INIT_RESOURCE in static libraries.
Add a note to the documentation and a changelog entry.
[ChangeLog][CMake] Calling Q_INIT_RESOURCE in static libraries is not
strictly necessary anymore for CMake-based projects. There, for each
resource, an object library is created which is linked into consuming
projects. This ensures that the linker does not discard the resource's
object file, and its initializer is called automatically.
Change-Id: I70de439f964dc7257a2255683eda4d434fa451d0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This is needed as a preperation for introducing QByteArrayView, which
will use qsizetype instead of int for size. Since these methods will be
reused by QByteArrayView, they need to use qsizetype.
Change-Id: Ia2d94ec70742d4f9326de9548fd7534d56d3a5ac
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Warn about using an invalid type id in all cases. So far, only some
constructors of QVariant would warn. Move the warning over to
the place where we map a typeid to a QMetaTypeInterface to catch all
cases.
Change-Id: I4cd48a2b5d6c597dbf2afbeae9b811cd0819b768
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
And inline the copy constructor forwarding to another one.
Change-Id: I3c4f76f7b14edd84f512ef0687416b20940e333a
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
When the base platform theme is not set to a null pointer, then we might
assume it has been already constructed and later on try to access an
invalid address which will cause a crash.
Pick-to: 5.15
Change-Id: I6187336bca527e1feeb0902bcfb16f2fbec86d24
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
- Remove the DirectWrite1,2 features. Windows 10
should have them, only MinGW is missing directwrite3.
The feature directwrite now implies DirectWrite2.
- Remove the custom defines.
- Port over the configure tests from configure.json
and add missing ones for DirectWrite(2), DirectWrite3
and Direct2D and Direct2D 1.1, fix the conditions
and report them in the summary.
Task-number: QTBUG-83255
Fixes: QTBUG-83931
Change-Id: I1fc68997adc715bd5c6d7ec457f58c46e1f81c6a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The Vulkan spec changed the behavior for VkApplicationInfo::apiVersion
in 1.1, conveniently breaking compatibility with all existing 1.0 logic.
We can no longer assume that the 1.0 behavior, which was failing instance
creation with VK_ERROR_INCOMPATIBLE_DRIVER for an unsupported version,
is always in place. So do not rely on this in the test, and add a
reminder in QVulkanInstance docs as well.
Fixes: QTBUG-85040
Change-Id: I8f5c7a7830877b72d106c444aebfaea191083ee0
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Indicate that doing a QRhiResourceUpdateBatch::readBackTexture() for
texture formats other than RGBA/BGRA is not necessarily supported at
run time.
Change-Id: Ie9ca9546a3af9bff142b875f1ecf26bf26bcc442
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
The connectivity pre-check has been around for a long time, and it has
caused various issues in that time. Certain scenarios, like using
certain VPN configurations, might confuse the OS into thinking you don't
have and network connectivity at all and abort the connection.
Especially noticeable/frustrating when the connection was going to a
host inside the local network.
The negative impact of this change would at worst be that we might try
to connect and it will wait some amount of time before the OS tells us
the connection failed in situations where it would previously have been
aborted before it started. But the false-negatives are not really an OK
sacrifice in that case.
Fixes: QTBUG-84907
Change-Id: I37fc69051e39df3c1a1fecb56ef54521a4d3d0c3
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>