| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
Amends: d023d149d934897515a532a483def76801b93585
Pick-to: 6.5 6.5.1
Change-Id: I54adf85c1ff7da2d6cc1aa13b9c9c5e1a334c1d8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If Flickable has an exclusive grab (e.g if it's being dragged), and
at the same time, a child has a passive grab (e.g a TapHandler inside
a child of the content item), Flickable ends up getting the same pointer
events twice.
The reason this happens is because Flickable has a childMouseEventFilter.
So the flickable will first get all the pointer events since it has an
exclusive grab, just to see that the filter will receive the same
events once more, as they next are delivered to the passive grabbers.
The result is that Flickable will handle all pointer events
(move, release etc) twice when it has en exclusive grab, which will
even cause the flickable from stop flicking prematurely if the mouse
release ends up outside the bounds of the flickable (because of a double
call to handleReleaseEvent(), which will set stealMouse to false too
early).
To fix this, this patch will make sure that we don't handle any pointer
events in the childMouseEventFilter if we already have an exclusive grab.
After all, having an exclusive grab means that we're already getting the
events the "normal" way, and shouldn't handle the same events once more.
Fixes: QTBUG-104987
Pick-to: 6.5 6.4 6.2
Change-Id: Iaed49cb860cf50ea38a70a6e546d9dcf25cce444
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
|
|
|
|
|
|
|
|
|
| |
In qgfxsourceproxy_p.h, we can use the modern Q_ENUM. In
QQuickStyleOption, he usage of Q_ENUMS did not make sense to begin with,
as the class is neither a QObject nor a Q_GADGET (nor a Q_NAMESPACE).
Change-Id: I5b85a46f57033442504a27bf2e1a05d7b0aaac48
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
The usage is not clear from the implementation.
Change-Id: Iaa94bb88a6c190dcd7d3dcfcc4d1a396cb3affde
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Implement and test the DOM representation of a JS return statement.
Task-number: QTBUG-100084
Task-number: QTBUG-111415
Change-Id: I2c11c0b9be3c93cf5be2bd9db5575335d4be19c1
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename the getter from {setQ,q}QmlJSScope() to {setS,s}emanticScope().
Set the semantic scope in the script elements where needed.
Test that BlockStatements contain their semantic scope.
Task-number: QTBUG-100084
Task-number: QTBUG-111415
Change-Id: If8b34c7edaac6aaf42a1cb2c47b12820358709e5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
Add a benchmark for DomConstruction using the scriptexpressions.
Task-number: QTBUG-92876
Change-Id: Ieab942a194d82933601424247d6ab71bce0540e2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the Dom representation for some constructs, like:
* Literals (string and numbers)
* IdentifierExpressions (variableNames appearing in expressions)
* VariableDeclarations and VariableDeclarationEntries
* ForStatements
* BlockStatements
* IfStatements
Introduce the namespace QQmlJS::Dom::ScriptElements that will contain
the Dom representation of javascript statements and expressions.
To incorporate the new DomItem wrappers in the Dom, extend the
qqmldomastcreator to also visit the corresponding javascript AST parts.
Like this, it can create the new Dom script elements using its stack:
visit() pushes new elements on the stack while endVisit() collects the
children of the current element from the stack (note: in the reverse
order they were pushed on the stack). The implementation uses two stacks
to avoid having to check every time if the top of the stack is a
QmlStackElement or a ScriptStackElement, but logically both stacks work
as one stack, containing first all QmlStackElements and then all
ScriptStackElements.
In case non-implemented script elements are encountered by
QQmlDomAstCreator, it will disable the script expression
construction and print a warning, instead of asserting and making a lot
of unrelated tests fail. This mechanism can be removed once all script
elements are implemented in the DOM.
Wrap script element pointers into a ScriptElementVariant variant that
can be used to contain any script element.
Added a flag to enable script element construction during DOM
construction.
Task-number: QTBUG-92876
Change-Id: I24b070ca3ff6ce916036842280cf91a21d049f30
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This prepares qqmldomastcreator for the introduction of
ScriptStackElements in a later commit.
Task-number: QTBUG-92876
Change-Id: Ice74f05129c2935aa13bf68189cee211eaa72c7a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I92030ae5bbce5f61aa14ef0dad53e2338531ba77
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Pick-to: 6.5
Task-number: QTBUG-113227
Change-Id: Icd2ca482ef8656d544c7c560ca05b9dd222f9c0a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I5c4d7df079346e9750b521e19bff3f34b6c81306
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This prevents unnecessary CPU and GPU usage with the iOS and Fusion
styles.
It's not currently possible to test this without adding objectNames to
each animation, which relies on us remembering to do so. Even then, not
all styles use QML animations in their BusyIndicator implementations -
some use e.g. QQuickAnimatedNode). Also, there is no QML API to find
QObject children of a given type (animations) - I've created
QTBUG-113264 to propose such an API.
Task-number: QTBUG-50161
Pick-to: 6.5
Change-Id: Ieafb5f2f1a9703d4dc26e4f934dbcc86e2709445
Reviewed-by: Doris Verria <doris.verria@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If there are multiple moves between touch down and release,
but they are merged, or if there is only one move,
flick occurs but no movement signal is generated.
So, send movementStarted if the view is moving in
handleReleaseEvent
Fixes: QTBUG-112924
Pick-to: 6.2 6.4 6.5
Change-Id: I774799bac2a00296a72005dcfa9ade6683836d08
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
So far we can only deal with methods that don't change the source array
and don't use iterators or functions as parameters. We also omit
concat() for now. However, indexOf(), lastIndexOf(), includes(),
join(), slice() and toString() are possible already now.
Task-number: QTBUG-112722
Change-Id: Id19c74e8ad25af876bc954c040c767823b7e3259
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was a stop-gap solution on the way to actual list type support. It
creates problems because it's a sequence type but doesn't have a value
type.
Add an assert to catch related problems earlier in the future.
Fixes: QTBUG-113265
Change-Id: Iae955ab6c5ca41113095b523a5d6b9bcfd4d2396
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
The function sets the required CMake variables and policies.
Pick-to: 6.5
Task-number: QTBUG-112685
Change-Id: Idae8f19eca28bac764480130dc679df1c1273598
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The signal allows to track when a dial is wrapped around (jumping from end to
start or vice verse) and count the full rotations of the dial.
[ChangeLog][Controls] The dial element emits the wrapped() signal when it is
wrapped around.
Change-Id: I6e4cb29b0ddf96a7819b51cff3b21e1755edf765
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The start and end angle of the Dial element were hard coded before. Now
they can be set by the application developer using the new properties
startAngle and endAngle. The angle property is set to an angle between
those values, even if it is >360 or <0. The setter functions make sure
that the relation between angle and value is unique. Further, values for
start and endAngle are limited to [-360, 720]. Wrap works as before.
Tests have been updated.
All styles have been updated to the new functionality except the Imagine
style (see task QTBUG-112387).
[ChangeLog][Controls] The start and end angle of the dial element are
made customizabe.
Fixes: QTBUG-57822
Change-Id: I941837008d4f9b4dde1979e91db5adb624bcbe41
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While a normal QML scene should not feature extremely deep object trees,
one can still encounter them in some test cases.
Those test cases might then run out of (C++) stack space with the
previous recursive version of markAsDeleted.
Thus, we change the implementation to use an explicit workqueue instead
of relying on recursion. This changes the visitation order, but code is
not supposed to rely on the order of Component.onDestroyed calls anyway
(and we keep at least the order in so far that the parent emits the
"signal" before it's children.
Pick-to: 6.5
Change-Id: I93b30cc26b984d1a21cff92df1dd68cd45e67477
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
pinchHandlerOnFlickable fail with QTBUG-112924.
Blacklist it for now.
It will be handled in QTBUG-113226
Fixes: QTBUG-113226
Fixes: QTBUG-112924
Pick-to: 6.2 6.4 6.5
Change-Id: I58c646f957fb6f397405dc477d00eee770602e80
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
saveWindowPosition() uses QSettings which uses
the special file engine, which does not exist
at destructor time anymore.
This resulted in a crash.
QQmlPreviewPosition idea is that saveWindowPosition()
is called when there was a move event.
Also saving it at the constructor was just a nice to
have.
Pick-to: 6.5
Change-Id: I650176691acf8ad1ef9ae46b76f61dafee82a56d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes various kinds of objects in lists of various kinds. We
just dynamically create a metaobject that includes all keys we've seen
so far.
For example, you can now pass an array of JavaScript objects as model
to a ComboBox and it will retrieve the correct textRole:
ComboBox {
model: [
{ name: "Apple", color: "red" },
{ name: "Orange", color: "orange" },
{ name: "Banana", color: "yellow" }
]
textRole: "color"
}
This will create the entries "red", "orange", and "yellow".
Amends commit 86794e82ea92cff3b36bbb58f813b625f0230e51.
Change-Id: I3df1f0b43ca1496f7eaed1165731d871c354ac1a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
Combined with qt.gui.shortcutmap, this makes it possible to see why a
Shortcut isn't activated, as you can now see which popup blocked it.
Change-Id: Ieadcfd47300bd41d8ca42116650d94ab711f59d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Using qt_internal_add_test for a benchmark gives it a _check target, not
a _benchmark target. Use qt_internal_add_benchmark instead, link against
QuickTest, and set the QUICK_TEST_SOURCE_DIR variable explicitly.
Pick-to: 6.5
Change-Id: Id72f2623b7edaa538ef3ff2cb3f505506652ee5a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Otherwise we leak a lot of memory if any of the exit() calls is
triggered.
Change-Id: I338abe2ef63217e6b80ffc2f8fe65d9cac03d994
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-113148
Change-Id: I9dfdc5601b684b2c54c6436ab86cd2f633c432b5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I0eb05e0a2d4fb50a2d5181b0f3c5e3c94b20f530
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As shown in the ComboBox test, it is possible for a context object to
coexist with required properties. We have to check if the context object
is the same as the model object.
Amends commit e9f650cad82e7eff2234cdf2d37bb9b1bb25d27d
Task-number: QTBUG-111176
Task-number: QTBUG-110980
Task-number: QTBUG-104752
Change-Id: Idfee277b5c3b78c514b2d239d73fcb6809577678
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
|
|
|
|
|
| |
Change-Id: I4ea406cac1acc138c4a1097795ba9347f21d9530
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Now that the type is available from qmltypes we can just use it.
Task-number: QTBUG-112180
Change-Id: I315372da0925f19c209f676226f450863b0d3ea5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The text role data can be retrieved with model[textRole] in all cases
these days. The delegate components should be bound and the model and
index properties should be required.
Also adapt the documentation to not explain the isArray() hack anymore.
Task-number: QTBUG-112291
Change-Id: Ife323b4de1b081168bb02e2564a67203741818e0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an item is inserted or deleted at an index less than or equal to the
current index, StackLayout.currentIndex will be updated in order to
reflect which is the current visible item. This is consistent with
QStackedLayout, QStackedWidget and TabBar
[ChangeLog][QtQuick][Layouts] StackLayout will now update currentIndex
if an Item is inserted or removed at an index less than or equal to the
current index.
Task-number: QTBUG-112691
Pick-to: 6.5
Change-Id: Id1d687e309c8f199a4f68698b53ca7c169f17dcd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.5
Change-Id: Ieacfa716b657ac221a75cd5a0dd75d5099962e91
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Some tests link to Qt::QuickTestUtilsPrivate which depends on Qt::Quick
target. In case qtdeclarative is built without qtshadertools, qtquick is
not build and cmake fails for those tests. Add Qt::QuickTestUtilsPrivate
check and also remove the duplicate dependency.
Change-Id: Ifafe567a8d61fe4174d31fc0ab7a6a3148fdd4c9
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The idea being that setting QSG_RHI_PROFILE=1 will not just enable
debug markers (which is only actively used in Quick 3D right now),
but also timestamps, and then we can start showing GPU frame times
from the GPU side with Vulkan, Metal, and D3D11 atm.
(the only catch is that the value is heavily asynchronous and is
always referring to a previous frame, usually current - 2, but may
be up to current - 4 etc.)
In addition to the env.var., the setter/getter API is added to
QQuickGraphicsConfiguration. In the end they all maps to the
QRhi::Timestamps flag.
Once enabled, the renderloop timing log, both with threaded and
basic, will start including a new line, as long as the underlying
3D API supports timestamp queries or similar. (in practice this is
implemented for Metal, Vulkan, and D3D11 for now)
[ChangeLog][QtQuick][Scenegraph] The scenegraph render loop timing
logs can now show GPU-side times as well, as long as the application
is launched with the env.var. QSG_RHI_PROFILE=1 or the feature is
enabled via the new APIs in QQuickGraphicsConfiguration.
Change-Id: I42202882b418e12028d6a287c19352a8fb893365
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
| |
Change-Id: I9155f0a78443a8bbd11dc6ddb05cbc4f21bf6c00
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
The properties modified by this condition are booleans, that have been
set, so there is no need to && true them to ensure they are boolean.
Change-Id: I94f166c91549a5c212de5f694901896657cd04e0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: Ib6f8fedcf77e647021f3d3d7a4ca0464739c7558
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Use string concatenation for the long test names.
Split data rows are more << markers.
Change-Id: I502bcc615a53169a4175a09af08ae5f2c3133668
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I68acc7df09a99961f895c1763df2d6cecb292604
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This both makes the list of headers more readable and keeps the line
of code within our 100-column limit.
Change-Id: I7d53cca5beeeb9f6dd2b2a7c3311362750695d10
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only one XHR test expects Keep-Alive, Upgrade, HTTP2-Settings as the
Connection: header, which fails when I run it locally, and I can see
no reason why that test [0] would expect it, where all the others just
give "Keep-Alive{{Ignore}}" (or "close") in their .expect files, so do
the same for [0] as well.
[0] sendPropfind:Send PROPFIND "allprop" request for collection.
Pick-to: 6.5
Change-Id: I09cafcf282861b87693b5782f34e2fb84c888ff1
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We know that 'this' is a QObject* since the metatypes stack frame
mandates it. Whenever you pass 'this' to anything it's loaded from the
special 'This' stack slot which then triggers a DTZ check. A DTZ check
is a noop if we can prove that the type is statically known, though.
In QmlCompiler, if we have a valid register content, then the register
has been set in all code paths that lead to the instruction in question.
Fixes: QTBUG-111439
Change-Id: I81d1cd140eea63f85628c3bef3a8f6db0a12096d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The \include command includes the source in its entirety when the
second parameter is omitted. This pulled in also the license header
which was visible in the generated documentation.
Add snippet tags and use them to extract only the content we need.
Pick-to: 6.5
Task-number: QTBUG-113138
Change-Id: Ie3fe2fede1e81d08201ec4353352ef069aebc388
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When siblings in a StackLayout are reordered, we need to react, since
the sibling order corresponds to the "stack order"
Fixes: QTBUG-112691
Pick-to: 6.5
Change-Id: Ie768af34bf5ee9d15ca67d61a64115f3df31990f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
isReady() will only return true *after* componentComplete() and *before*
destruction is about to happen
There is no point in rebuilding the layout when an item is added or
removed before the component is ready, because there will be a full
layout rebuild as soon as the component is completed.
This is a preparation for fixing QTBUG-112691
Pick-to: 6.5
Change-Id: I6e19578d847c6d4518479bc00f21442333e0fb07
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a bug in the following sequence:
- user opens a window
- the window is hidden whilst under the mouse
- later the window is reopened without the mouse being under the window
- with the lastMousePosition set an item underneath where the mouse
used to be gets activated.
On X11 we get a Leave event for the hidden window, this is not true for
wayland.
Pick-to: 6.5
Change-Id: Ib14e8dbe29f1ad9a71a488b671d226be1d017b8d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
To avoid confusion, all macros that take a class name as an argument should specify that the class name needs to be fully qualified, even
if you're already inside the namespace.
Fixes: QTBUG-110718
Pick-to: 6.5
Change-Id: Icaed4be5df44e8d35ef382a918246ed03b0bb0c5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I1ee1efe31985b24923c024658adb2968dd2dfae2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|