| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The user can switch pressure sensitivity level in the driver,
which will make our saved values invalid (this option is provided
by Wacom drivers for compatibility reasons, and it can be adjusted
on the fly).
See the bug: https://bugs.kde.org/show_bug.cgi?id=391054
Pick-to: 5.15
Change-Id: I6cfdff27eaf5a587bf714871f1495a7ea150c553
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Amends 07b6d3367debd8f15974abf0f5cdf48f0fe3a536
Change-Id: I8d5922af13903c6a10f967035bca70a89b19f86f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: If35f3e2a67b94e403210c564bf337b54d621f8c5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
| |
It was used for the deprecated HI-based theming, removed
in 50428e97270ad7c87439af599dce33b697c8cc44.
Change-Id: Ic0c216c2c056de81c85bcb1e724c0b8ecb8ac7ec
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
| |
The QMacQuartzPaintDevice implementation was removed in c0065187d7c.
Change-Id: I852c688601f105646d39c95341232512ee57a10d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
| |
Change-Id: If17acc230fc7669e46956ac2150a5a395694666c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I283771624b513f4e8844c6130898ddf2531df0f1
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the porting from Qt 4 to Qt 5 an assumption was made in QKeyMapper
that the underlying platform implementation needed the native scan
code to be able to resolve the possible keymaps for an event.
As a result, the macOS platform plugin started sending key events
with a fake native scan code of 1, so that it would still be allowed
to map key events.
Which in turn led to the documentation of QKeyEvent::nativeScanCode()
getting an exception for macOS.
Let's clean up this by removing the original assumption, and leave it
up to the platforms to decide what information from the key event
is needed.
QKeyMapperPrivate::possibleKeys() will still call extractKeyFromEvent
as a fallback if the platform layer doesn't return any possible keys.
Change-Id: I122a45bcec658c45ccc0b2c0671eb264d85d7be6
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The [NSEvent charactersByApplyingModifiers:] API only supports key
down events, but we might get into QCocoaKeyMapper::keyMapForKey for
modifier key presses as well (even if QShortcutMap::nextState tries
to filter out modifier keys).
Change-Id: I02f163edac2baa9052f34b4d5d31b6a627d3d85c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Try to get rid of APIs that use raw 'const {char, QChar} *, length'
pairs. Instead, use QByteArrayView or QStringView.
As QStringConverter is a new class, simply change the API to what we'd like
to have. Also adjust hidden API in QStringBuilder and friends.
Change-Id: I897d47f63a7b965f5574a1e51da64147f9e981f6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On a horizontal split the current rectangle is split along the y-axis,
creating two children with the dimensions [x, y, width, height / 2]
and [x, y + height / 2, width, height / 2] respectively. When the
BSP tree is initialized, the type of the root node is set to
"Horizontal". However, the offset of the root node is wrongly
initialized with a split along the x-axis instead of the y-axis.
This leads to wrong behavior on QGraphicsScenes with a non square
aspect ratio. E.g on a QGraphicsScene with an apsect ratio favoring
the y-axis, every item between yItem = sceneWidth/2 and
yItem = sceneHeight/2 will be added to the wrong leaf.
[ChangeLog][QWidgets][QGraphicsScene] Fixed a bug in the initialization
of BSP trees to increase the performance of QGraphicsScenes with non
quadratic scene rectangles.
Fixes: QTBUG-87174
Pick-to: 5.15
Change-Id: I360033e94e22eb961f820278993754d10bfc1e45
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This did not account for macOS dark mode, with hardcoded white,
but now it correctly updates the colors from palette whenever
the theme is changed.
Additionally changed some bool checks to make sure the code
runs on macOS theme updates.
Do note that this change affects Qt Maintenance Tool (in a
good way).
Pick-to: 5.12 5.15
Change-Id: I6fb92d3f6c15a7ff83d0d8a30cf82477b6aba126
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This lets the registry's populate() avoid recursing into constructors
that are typically what (indirectly) called it. This, in turn, makes
it possible to assert the constructor from enum gets what it expects.
Pick-to: 5.15
Change-Id: I190f9dcfe405e3ee1c6a3f0926fa33cf9ddf64e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
| |
Remove an unused one, and add a used one.
Pick-to: 5.15
Change-Id: Ic8b2fc7d0fa1e703b7cbbc622b98a626dd0f6ced
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a bunch of helper functions to manipulate compiler
flags and linker flags for the
CMAKE_<LANG>_FLAGS_<CONFIG>
and
CMAKE_<LINK_TYPE>_LINKER_FLAGS_<CONFIG>
CMake variables.
These variables can be assigned and modified either in the cache
or for a specific subdirectory scope, which will apply the flags
only to targets in that scope.
Add qt_internal_add_optimize_full_flags() function which mimics
qmake's CONFIG += optimize_full behavior.
Calling it will force usage of the '-O3' optimization flag on supported
platforms (falling back '-O2' where not supported).
Use the function for the Core and Gui subdirectories, to enable full
optimization for the respective Qt modules as it is done in the qmake
projects.
To ensure that the global qmake-like compiler flags are assigned
eveywhere,
qt_internal_set_up_config_optimizations_like_in_qmake() needs
to be called after Qt global features like optimize_size and
optimize_full are available.
This means that qtbase and its standalone tests need some special
handling in regards to when to call that function.
Task-number: QTBUG-86866
Change-Id: Ic7ac23de0265561cb06a0ba55089b6c0d3347441
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
List primary and alternative key sequences and ids together, making the
logic cleaner.
Change-Id: I4eb07f9828f2b15dc66c34ceb2c4f800df73e800
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous fix didn't actually work, as it kept a reference
into a container which could have been muted by the time the
reference was going to be used.
Use an index instead.
Amends 32c09ea5b0f529418eece63de5c3b2c206f62896.
Change-Id: Ib855b4a663c281467e46536b98a0ce2b961f19ee
Pick-to: 5.15
Task-number: QTBUG-87143
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Use the default logicalDpi() implementation, which now
returns logicalBaseDpi() and ensures a default device
pixel ratio of 1.
Change-Id: Idd408261c90b112a093c82695ff9e0078e90ac41
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove code which computes logical DPI from the screen’s
physical size.
Return a DPI of 100 instead (this value was previously
returned if the physical size was not available), and
add a matching logicalBaseDpi() implementation which
gives a device pixel ratio of 1.
Task-number: QTBUG-87035
Change-Id: Ib20afbbd24fd6b57c8ffb2fd697f1becba283cba
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
| |
It doesn't actually need Q_DECLARE_PRIVATE (it never uses Q_D),
it just needs to give friendship to the private class.
Change-Id: I32ac128118a0c319a374e510a18ccf0edf323da7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
| |
The same function was declared, as friend, a few lines above.
Change-Id: I28368202c68242f2d30d25bd38f2f0e530a60082
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
| |
Change-Id: I599e4b7338172de5936b191f5e16383c1c31104c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
g++ 10.2 complains here that a comparison of "Last" with
"std::numeric_limits<quint8>::max()" is always false when "Last" is
an int greater than 256. This is because
"std::numeric_limits<quint8>::max() returns an quint8. Since parts of
Qt are built with -Werror, the build fails.
Fixed by adding a unary plus (+).
Change-Id: I16a6b9f6952aeddf0a2a04d87746e433927122bf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QUrl hostnames must be compliant with STD3, but we must somehow accept
file paths that begin with double slash but aren't valid hostnames.
Because the file URI spec requires us to start with "file://" anyway, we
can represent those with four slashes. Note that on Unix "//X/y" is a
valid but local file path. If given to QUrl::fromLocalFile(), if the
path at the root does parse as a hostname, we will still try to
normalize (the above becomes "file://x/y").
[ChangeLog][QtCore][QUrl] Changed QUrl::fromLocalFile() to accept
Windows UNC paths whose hostname component is not a valid Internet
hostname. This makes QUrl able to accept extended-length paths (\\?\),
device namespace (\\.\), WSL (\\wsl$), etc.
Pick-to: 5.15
Fixes: QTBUG-86277
Change-Id: I3eb349b832c14610895efffd1635759348214a3b
Reviewed-by: David Faure <david.faure@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Also add the very same operators to the QBasicUtf8StringView
class to overcome the compiler issues seen on gcc.
Fixes: QTBUG-86481
Change-Id: I12484455ebd3b7b38d4ad67c38977d76f9b3ddfa
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ibe2c450aa69ac7ea6db1e6a2174e17f31b4be9a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
| |
Change-Id: Ifc754a639fcdb45a1b1b8721393de9356504342f
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
| |
This function is no longer in use - Qt Gui now computes
scale factors based on logicalDpi() and logicalBaseDpi()
instead.
Change-Id: Ieb4b75ef4e1563694a8e12b7cdd1f60c419d5bf2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the code which calculates physical DPI and
call logicalBaseDpi() instead.
This will make sure that Qt gets a device pixel ratio
of 1.0 by default, for the cases where the platform
plugin does not implement logicalDpi() itself.
Task-number: QTBUG-87035
Change-Id: I08433c9465be03d27b3decccb0e2e7e5e6aff0ae
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Declaring and implementing out of line a specialization for
QESDP's destructor is needed if we have an implicitly shared
type and we want to provide an inline move constructor for it.
The code is however a bit heavy on the eyes, and the full
implementation for the destructor must be provided (read:
copy and pasted) -- the specialization destructor cannot
just "reuse" the one from the primary template.
This patch adds a few macros to streamline the above, so
that we can start using the same pattern in more places.
These macros are completely private for the moment being;
we don't want to push this solution for our users.
Port QPixmap to the new macros.
Change-Id: Ia6a51ad988483e44c9d97c0eca2fb003b6bd21e3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
| |
deprecated constructor"
Change-Id: Icf07bc475ba8f8f9cbe76169dc3dede9ba703292
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also adjust the QString constructor from QByteArray to ignore
\0 characters in the string (and not terminate conversion there).
[ChangeLog][QtCore][QString] Constructing a QString from a QByteArray
will not stop at intermediate '\0' (null) characters in the string as
in Qt 5, but will convert all characters in the byte array.
Change-Id: I1f6bfefe76dfa9072b165903fec7aa4af1abd882
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This nicely optimizes a hot spot when our HTML parser was loading
Qt documentation. This change improves the loading time of the
Qt Concurrent overview page by 30%, both over the previous commit
and 5.15.
Fixes: QTBUG-86354
Change-Id: I4f401c2e6048096444e482c7724e3e3a6c71516e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is a performance bottleneck as the parse nodes are huge and
we don't want to reallocate them all the time.
Fixes: QTBUG-86354
Change-Id: Ia437acbb5b2c8af1723932d2cd96ba2ae48a871b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Inline the QString versions. One const QString & variant remains in
each case: the date-time parser keeps a copy of the string it's been
given, so the methods calling it have a hybrid method taking the
string as the text to parse along with a view as the format. This
avoids copying the string when the caller has an actual QString to
pass in; the version with QStringView for both parameters has to
toString() the text to be parsed, at some point on the way into the
parser, but we can avoid that in the QString-accepting ones.
Fixes: QTBUG-86172
Change-Id: I6a4390df90945af74a5eac2f0a752febd925ad62
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
aeshash() has a heap-buffer-overflow when the passed in buffer length is
less than 16 bytes (and I expect there's a similar issue when we process
the tail when length is not divisible by 16). Despite being a real issue,
the code has guarding mechanisms to make sure that:
1) no crash happens
2) out-of-range bits are not used in the computation
Disabled the usage of aeshash() under Clang's sanitizer similarly to how
it was done for GCC (apparently it uses its own preprocessor mechanism).
Likely, this will pop up again with MSVC, but I have no clue which
defines it uses
Task-number: QTBUG-87112
Task-number: QTBUG-86051
Change-Id: I614d7b3082e91c9d16e0441649d6a153b222bd2e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
| |
Use QT_QPA_DEFAULT_EGLFS_INTEGRATION for setting the default eglfs
device integration plugin, which can be overwritten at runtime using
QT_QPA_EGLFS_INTEGRATION environment variable.
Change-Id: I1c3ac0c58cdbbb7bb08c2f0ea5abe4d04eb8d61a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add needed define for egl_viv compile test and generate CMakeLists
for the egl_viv plugins.
Task-number: QTBUG-77809
Change-Id: I3b354faee36cbb85adcee895430eb5e8998108e1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
| |
Members grouped and reordered for better alignment, all booleans
initialized in the constructor's member initialization list, and snake
case names changed to camel case for consistency.
Change-Id: Ib59ed770a3d4e307296722270cd991a9a53c72ce
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
| |
Use C++17 attribute directly
Change-Id: Id853e7a5117065e4adb549f81303c1820fe198ce
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment we have two main strategies for dealing with move
assignment in Qt:
1) move-and-swap, used by "containers" (in the broad sense): containers,
but also smart pointers and similar classes that can hold user-defined
types;
2) pure swap, used by containers that hold only memory (e.g. QString,
QByteArray, ...) as well as most implicitly shared datatypes.
Given the fact that a move assignment operator's code is just
boilerplate (whether it's move-and-swap or pure swap), provide two
_strictly internal_ macros to help write them, and apply the macros
across corelib and gui, porting away from the hand-rolled
implementations.
The rule of thumb when porting to the new macros is:
* Try to stick to the existing code behavior, unless broken
* if changing, then follow this checklist:
* if the class does not have a move constructor => pure swap
(but consider ADDING a move constructor, if possible!)
* if the class does have a move constructor, try to follow the
criteria above, namely:
* if the class holds only memory, pure swap;
* if the class may hold anything else but memory (file handles,
etc.), then move and swap.
Noteworthy details:
* some operators planned to be removed in Qt 6 were not ported;
* as drive-by, some move constructors were simplified to be using
qExchange(); others were outright broken and got fixed;
* some contained some more interesting code and were not touched.
Change-Id: Idaab3489247dcbabb6df3fa1e5286b69e1d372e9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
| |
Change-Id: Id698d71fbadf5bd0301a346b3216847d0b2f0b54
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
| |
Fix the constructors and the signature of swap().
Change-Id: Ib294bb2c054510170b166b5c8bd3180d22177efc
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
| |
Fix remaining places that still exercised it.
Task-number: QTBUG-85700
Change-Id: I84562f53439197141343831c0b9f88983689e6bf
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Rename Android package name org.qtproject.qt5.android to
org.qtproject.qt.android to avoid inconsistency with Qt 6 name.
Also, we include the major version number in the jar target.
Task-number: QTBUG-86969
Change-Id: Ibb68947289be1079911b34ea157bf089cc52c47f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the ISO time format would tolerate trailing cruft at the
end in various cases even though there might be an offset specifier
after the time, which should *not* be separated from it by anything
(not even the spaces we originally planned to still tolerate).
The RFC date format is forgiving about space, as is suitable for
parsing of RFC-822 headers, but the other formats should match the
handling in QDateTimeParser, which rejects any dangling cruft.
At the same time, since this required a re-write of
fromIsoTimeString() in any case, add support for the ISO format that
gives the hour a fractional part and skips minutes and
seconds. Previously we only had support for fractional minutes (with
no seconds). The hour without even a fractional part is also valid.
Reworked the documentation of Qt::DateFormat as it was wrong in
places, inconsistent in its formatting and incomplete. Adjusted some
tests to match the new behavior. A fraction separator with no
following digits should have been recognized as an error previously
and now is.
[ChangeLog][QtCore][QDateTime] The ISODate and ISODateWithMs formats
now reject trailing cruft (including spaces) at the end of a time
string. They also gain support for parsing hour-only formats,
including the hour-with-fractional-part format.
Task-number: QTBUG-86133
Change-Id: I38ad1479ae033407f7df97ffbeb7c4bcd463d04a
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
As a C++ attribute it must be on the beginning of the line or after
the function name however. And for friend declarations can only
be on the definition.
Change-Id: I456884428f36e1f1c621089c7b1addee13ada0fe
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
It is not used in public API any more since
0f8848b7e25e4d8fb9265ff6e0aa31946addd741.
Replace by an internal Windows-specific Q_PROCESS_INFORMATION typedef.
Change-Id: Ia6dcc83ca667c40ac5d678c00d143c09d650e42a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
| |
Change-Id: I9fb8120a68daaa41c153010a52f7a3e99087153b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I30b541f28ba8271eb4234c7f642485a1614808bf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|