${QT6_HOST_INFO_BINDIR} is returning an empty string making
the tools paths unusable, and android apps building fails.
Partially revert 09ac1bdfc5.
Task-number: QTBUG-86557
Change-Id: I1522b3a4b45fbcb41894ea3bd7c714f7a79eb954
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Not forwarding the native virtual key code when sending key events
in the flagsChanged handler caused a number of problems, e.g. the
inability to determine which of the Alt or Shift keys were pressed.
Use handleExtendedKeyEvent to include the native virtual key code.
Patch inspired by Nyan Pasu.
Fixes: QTBUG-69608
Change-Id: I15e9ff1069528d4b50ee4638ab2d8a6fd279db0b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Changed QString to use implicit element reserved by QArrayData
Task-number: QTBUG-84320
Change-Id: If517500b3f0e71bb8d2989c64815a634aa8dd554
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Changed QByteArray to use implicit element reserved by QArrayData
Task-number: QTBUG-84320
Change-Id: I2a0091c814a47a5c052da7a83d10cb641834c7bd
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Fixes B5/B6 order and removes abandoned documentation for a removed duplicate.
Change-Id: I7647ee31a4ef4aa754058c8a6f68b4d4304e0043
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Merging QAbstractPrintDialog with QPrintDialog, as proposed in the
removed comment, seems to have little value, given that the platform
specific implementations rely on the current abstraction.
Adjust examples and tests; with the QAbstractPrintDialog test now
testing the QPrintDialog::options API, the corresponding test function
can be removed from the QPrinter test.
Change-Id: Ia8906627898332e8590ea9b27e3d71dfcc6e8d71
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Returning physical DPI from logicalDpi() is problematic,
as explained in commit 77e04acb.
The most predictable implementation is to never return
physical DPI from QPlaformScreen::logicalDpi(). Other
platform plugins already does this, and this change
brings xcb in line with the rest of Qt.
We have the QPlatformScreen::physicalSize() API which
covers returning physical DPI (indirectly); Options
for selecting which one to use can be implemented on
top of these (see QT_USE_PHYSICAL_DPI).
Change-Id: Ifc41229fa63734a2eb06b3acefd97b2ed3e57c2d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Document the new base classes QPointerEvent and QSinglePointEvent,
and move relevant documentation to be located under them.
* Replace linking to deprecated functions with their new counterparts.
* Remove non-existent function and parameter documentation.
* Document QEventPoint::State enum.
* Prefer \obsolete over \deprecated and fix the usage.
* Document the Capabilities enum in the correct location and
add docs for the missing enum values.
Change-Id: Ic8f2732f2e90ecbf522cd744c601cedcc574825c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Updated moveNonPod function to behave correctly under
exceptions being thrown. This is the version that was implemented
at some point but then got changed prior to merge. Added tests for
moveInGrowthDirection (which uses moveNonPod in general case) to
verify that range movements are correctly done
Updated QCommonArrayOps access modifier from private to protected
to allow testing of internal stuff by subclassing
Task-number: QTBUG-84320
Change-Id: Idb994a72ee601762e32248670cdc7819aaca0088
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
We plan to move storage of the grabbers into QPointingDevice so that
QEventPoint will store only data that does not need to persist between
deliveries of individual events. These API changes prepare for that.
addPassiveGrabber/removePassiveGrabber is a better API than
setPassiveGrabbers(), because it will never require constructing a
temporary QList just to call the function. Eventually we need to emit
signals to notify about grab changes, so it's better to have incremental
changes to the list rather than needing to iterate and find differences.
Fix up the docs.
QEventPoint IDs are no longer written in hex in debug output.
That was done in Qt 5 because an ID was a composite of device ID
with the OS-provided touchpoint ID; but since the QPointingDevice
is always available, it's more readable if the IDs are in decimal.
Change-Id: I86b9016d9b28c331ca05c7c108d9788de93fb642
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reorder, and remove ### Qt 6 comment
It would be nice to have a way to statically assert that the order
of StandardPageSizes (and their id) matches the order of the enum,
but it's not possible (or at least very cumbersome) to do so.
Change-Id: Id0d0a58958f1e17151725cbe8f8068db64f84939
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The inLoop boolean is unused, so remove it. At the same time, there is
another boolean that might just as well become a bitflag, so that we
can add more members in the future, should the need arise after all.
Since we then need to explicitly initialize the member, add a standard
QObject constructor.
Change-Id: I51245829c1b1192fde62592fb972da6ea2a88e11
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
- Use nullptr instead of 0
- Pass directory to chroot that is not in /etc
- Set umask to a sensible value (0 is insecure)
Change-Id: I1dba29bc0f454df09ca1fffd161801257f9ccb3c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
If we require complete types when generating the list of metatypes, then
we also need to require them when generating each entry, and vice versa.
Change-Id: I68394f8628bb6cd89f77bb829b1d4b5ab35071a0
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
As directed by ### Qt 6 comment.
Task-number: QTBUG-85700
Change-Id: Iae4179b017840efe4902de2b1529cf7ec0606865
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Scoped GrowsBackwards-optimized erase to only be applied
when erase starts at the beginning of the element range.
In other cases, old "left-shifting" erase is used to align
with std::vector::erase invalidation policy
Task-number: QTBUG-84320
Change-Id: I2e7f3b96b056bc371119eb2d36cc7c74af52c394
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Gives it its own changed signal, and simplifies setting from group,
while fixing an inconsistency in propagation.
Change-Id: I22b243210260a8878144fa4b60204df46f847f37
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This reverts commit c7ec07d401.
Reason for revert: This causes a memory leak on program termination.
The initial commit was an attempt to fix a deadlock where the user
destroys object from a thread that does not own the object. This is
an unsupported case and should be treated as an invalid report.
Pick-to: 5.15
Change-Id: I4957784b86a0361adb65b9d023542f96480f00ba
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
It really could only manifest itself if you started a request and then
immediately cancelled it and then started another one to the same
site. But only if in a certain race outcome - the connection that the
backend was establishing had to finish connecting after aborting but
before a new request had been queued!
Change-Id: I7cad2cf4ac1f64cc838498cefa076cd2c6d26701
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Mostly related to qstrlen().
Change-Id: I69e2052c83766e4fc466ed398d0d0eac011a77ec
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Address a ### Qt6 comment from change
283008e123, and start using
QStyledItemDelegate in more places, so those get proper
look and feel.
Change-Id: I39767ba99b7942faada1fba0ac241deb35563b63
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
I still have doubts that QEventPoint can't be made small enough that
copying would be cheaper than reference-counting and all the indirections
in now-noninline accessors, but this gives us the usual freedom to
change the data members later on.
Change-Id: I792f7fc85ac3a9538589da9d7618b647edf0e70c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
While it's possible to instantiate safe_delete using a nullptr, the
check in if-statement is 99.9(9) % of time redundant and equal
to if (true && object). Some compilers will issue a compilation
error (if warnings are treated as errors for example).
Change-Id: Ib593dc53deb6d2e4b77ea5c896610dc536c61b7c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
[ChangeLog][Source-Incompatible Changes] QProcess::setupChildProcess()
was removed. To execute code in a child process, use
QProcess::setChildProcessModifier()
[ChangeLog][QtCore][QProcess] Added setChildProcessModifier() function
with which one can provide code to be run in the Unix child process
between fork() and execve(). With this function, it is no longer
necessary to derive from QProcess in order to execute actions in the
child process.
Another reason is that we can tell whether the std::function carries a
valid target much more easily than we can tell whether QProcess was
overridden.
The setupChildProcess() virtual function does not need to be marked
final, since no overrider could ever return an inaccessible private
class. This also makes sure the error presented to the user is about the
return type, not about attempting to override a final.
Clang:
error: virtual function 'f' has a different return type ('void') than the function it overrides (which has return type 'QProcess::Use_setChildProcessModifier_Instead')
GCC:
error: conflicting return type specified for 'virtual void MyProcess::setupChildProcess()'
note: overridden function is 'virtual QProcess::Use_setChildProcessModifier_Instead QProcess::setupChildProcess()'
ICC:
error: return type is neither identical to nor covariant with return type "QProcess::Use_setChildProcessModifier_Instead" of overridden virtual function "QProcess::setupChildProcess"
MSVC is not relevant since it doesn't compile to Unix.
Change-Id: Ia8b65350cd5d49debca9fffd15f801161363aea7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
The implementation can be more efficient with two 32-bit fields instead
of just one, but it depends on whether operations on 64-bit atomics are
locked or not.
Quick check for the following architectures does not reveal any
problems, but someone needs to investigate more. Notably, GCC and Clang
generate a call to libatomic's __atomic_load_n / __atomic_store_n / etc.
32-bit std::atomic<uint64_t>
Arch ::is_always_lock_free .is_lock_free()
ARMv7-A false true
i386 false true
MIPS false true
PPC false true
RISC-V false true
SPARC false true
Change-Id: Ia2273af1172d493092d6fffd163251a99064c51b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This reverts commit ff69227a49.
Reason for revert: 64-bit atomics on 32-bit systems are often
(but not always) worse than the 32-bit semaphore as it was
implemented. Plus the High32 and Low32 functions are returning
the same thing, forgetting the endianness check.
Change-Id: I5d5ade6e9bc7086600ff2302546385151e32142b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Android 11's SELinux rules block the RTM_GETLINK requests that
qnetworkinterface_linux.cpp needs to make. So disable this completely
and fall back on the older rimplementation. Bionic has some workarounds
in their getifaddrs() implementation to make this work.
Fixes: QTBUG-86394
Pick-to: 5.15 5.15.1
Change-Id: I87447a0ecdee4dc7b506fffd163180c2b1db7835
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
... and the associated enumeration.
Using them is almost always a certain mistake.
1) op+ between two enumerators of the same enumeration yields int,
not QFlags, so removing the type safety that QFlags is supposed to
give and breaking the semantics of bitwise operations.
2) op+ between two enumerators of different enumerations is
deprecated in C++20 (already flagged by GCC10), and again yields
int. This is a code smell. Dedicated classes (holding a combination
of unrelated enums) should be used instead.
3) op+ between an enumerator and its QFlags loses the semantic
meaning of bitwise operations. If the real meaning was to use
operator|, then use that instead; operator+ hides the intent,
and can introduce bugs by creating a result not expressible via
OR combinations of enumerators:
enum E { A = 0x01, B = 0x02 };
QFlags<E> f = E::A;
f + E::A; // ???
f + E::B; // ???
Identical reasoning applies for operator-. Technically the
other arithmetic operators could be disabled as well, but I
really don't expect any real-world usage for them.
This has spotted bugs in Qt.
[ChangeLog][Potentially Source-Incompatible Changes][QFlags] Using
operator+ or operator- with a QFlags object or with an enumeration
that has a corresponding QFlags object will now result in a
compile-time error, because it's a generally unsafe operation.
Use the proper bitwise operations instead (|, &, ~); or cast
the enumeration to a integral type before attempting arithmetic
manipulations on it.
Change-Id: I5eabc5195dec3d3082bc9da10dbc8cf5dff3e1eb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
QDateTime::toString uses the C locale since 5ba66c5622
So don't expect locale specific day- and month-names.
Task-number: QTBUG-80441
Change-Id: I08f53b6b33ed9e7eaaa58df4ca6a966c4ba9ef24
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Change QWindowsWindow::format() to return the QWindow's requested
format instead of storing it as do the other platforms. This will
cause the alpha (layered flag) to be adapted in
QWindowsBackingStore::flush(). Note that it does not fix
the issue; the window does not update correctly after
changing WS_EX_LAYERED.
Pick-to: 5.15
Task-number: QTBUG-60822
Change-Id: I3facd93f993b3b422b6818d55c1bce884fb57234
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Because we removed public setters from QTouchEvent and QEventPoint in
4e400369c0 and now it's proposed to give
QEventPoint a d-pointer again, the implementation of QTouchEventSequence
needs to start using QMutableEventPoint: being a friend will no longer
be enough, because the member variables won't be accessible in the future.
But because we have separate test libs for Gui and Widgets, it needs to
be further refactored into two classes.
Change-Id: I0bfc0978fc4187348ac872e1330d95259d557b69
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Remove compile warning for -Wdeprecated-declarations.
Change-Id: I747c8a390f26cfc4626e40c4684034c394bbf3c9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Lars Schmertmann <lars.schmertmann@governikus.de>
The fix ensures that it can find the column for the array correctly
when reading/writing and also handles the integer typed arrays correctly
too.
Pick-to: 5.15
Fixes: QTBUG-83409
Change-Id: I92d982bdf0927e6ebc6dce84fec9ad6c44c26c25
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
The optimization resulted in losing out on window focus changes when
for example a native file dialog was shown, resulting in the cursor
blinking both in the parent window, and in the native file dialog.
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I9c1f9df20fbc5c4b80f906ded70d9a2658b70438
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
As the connection could be lost and then reconnected for the same driver
instance then it should just do the LISTEN query as it will not do
anything if it is already subscribed.
Fixes: QTBUG-84356
Change-Id: I6179bca3991c3828ccee066fd96a6e5003c522be
Pick-to: 5.15
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>