| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In complicated cases where the model moves rows around while
the view is running slow (perhaps during high CPU load),
there were cases when Repeater would call
movedItem->stackBefore(deleteableItem), but deleteable items
can be null, so there was often an error
QQuickItem::stackBefore: Cannot stack before 0x0, which must be a sibling
and occasionally a crash. Now we check both the callee and the
parameter to stackBefore to make sure neither of them are null.
Task-number: QTBUG-54859
Change-Id: I45a8b2939c16b9bbe3a802ddd348dc55f51061a7
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\
| |
| |
| | |
refs/staging/5.9
|
| |\
| | |
| | |
| | | |
Change-Id: Ic6457df47bed359fd43653e73726f1896944241c
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-64562
Change-Id: I52e07b0d8b7a5d1cc960431dcbd1a90dd3e7e518
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a regression introduced by commit
e22b624d9ab1f36021adb9cdbfa9b37054282bb8, where the object that owns the
QML context would destroy the context upon destruction. Now the context
may live longer and thus the context->contextObject pointer would become
a dangling pointer.
Task-number: QTBUG-64166
Change-Id: I1df631fa11187abdeff735d8891ad7907e8d4a3d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-64397
(cherry picked from commit 5f16aa795d39969d93b520861a1e86729c7db90e)
Change-Id: I28268ea87b81dd1f7dbf8bb5a8eb421962cc5f31
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-64181
Change-Id: I85a6150e00143b379143c353a37e844cb9708627
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The code used by QQC to deserialize the IR requires setting the
javaScriptCompilationUnit member in order to connect the generated C++
code. Knowledge of the QmlIR::Document data structure layout on the side
of the generated code (thus application) has its downsides though (see
referenced bug). We can avoid that dependency easily by doing the entire
de-serialization on the QtQml library side.
The old "API" (load member function) is still around until the qqc
change is also in.
Task-number: QTBUG-63474
Change-Id: I239838afacc71474c86114b5b05679ff36e4c2e2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows Qt Quick Controls 2 to defer the execution of certain
building blocks until needed. For example, a button control can
defer its background item so that the default background is not
executed at all when replaced by a custom background.
First of all, this gives a massive performance boost for customized
controls. Secondly, this avoids the most burning issue in QQC2,
problems with asynchronous incubation ("Object destroyed during
incubation").
Task-number: QTBUG-50992
Change-Id: If3616c9dac70e3a474a20070ad0452874d267164
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The implicitly assumed flags are removed if any explicit flag beyond
Window, Dialog, or Tool is added. Thus the inspected window lost its
decoration when it was WindowStaysOnTop was set.
Change-Id: Ic155283fd17ed069790875679b150f2c37b7fe1a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-64674
Change-Id: I48ed1a51f66ef8d55cc026f140d270baaca04fbf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous fix for nested clip regions introduced a regression which
broke nested clipping cases that involved one of the clip nodes being
null regions because they were offscreen.
The clip region stack can either have an null QRegion or be empty as an
initial state (depends on what is being rendered). We made a special
check for these two states, but it is not enough to check if the top
item is null for the null region case beacuse at any point in time a
null clip region node could have been added. So to fix this the null
initial state also requires a count of 1.
Task-number: QTBUG-63743
Change-Id: Ib0d17026f1d5a663e819412e11d25d9ad8b445ff
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
if the scene is rendered by a QQuickRenderControl and we have a different
target window (for instance QQuickWidget) we check the target window of
the render control instead of the own window, this fixes window keyboard
shortcuts for QQuickWidget
Task-number: QTBUG-64548
Change-Id: I7614be580f2a707c752189e4c9b53a5d5f0159d7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On QQmlImportsPrivate::updateQmldirContent we need to check if the new
module has actually been established after figuring out that it doesn't
have any components or scripts. If it has, then we shouldn't fail, as
obviously a plugin has been loaded. We don't need to check the component
and script versions in that case, as plugins don't have separate
versions.
Change-Id: Ie328b59038fe65c3f6a2eeecfe969927bba6cd68
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to intercept the URL when it is created. This relieves us of the
need to hack around in it when actually retrieving the content of the
qmldir file and prevents the futile attempt to load remote qmldir files
via the code path that should load local ones (or vice versa).
The back and forth conversion between URLs and strings is unfortunate,
but can only be solved by using QUrl rather than QString where we
actually mean URL. This would be a bigger change which is unsuitable for
5.9. Mind that nothing changes for code that doesn't use URL
interceptors.
Task-number: QTBUG-36773
Change-Id: I6bff3ae352009fdc0a17ec209691c7b390367f11
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Documentation has been missing since the beginning.
Making it an uncreatable type provides the opportunity to associate
the C++ type with the QML type so that the latter can be used in the
QML documentation, as opposed to simply registering the C++ type
with no QML name as was done before.
Task-number: QTBUG-47290
Task-number: QTBUG-63143
Change-Id: Ib82cc7b27c9591eaf2c7997d2781a2b4246cfbff
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |
| |
| |
| |
| | |
Change-Id: I89b36ee7d03ac6b8d07b24c656d3311728e8f9c3
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-64397
Change-Id: I28268ea87b81dd1f7dbf8bb5a8eb421962cc5f31
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The test has not been run in the CI, so the problem went unnoticed for
a long time.
Change-Id: I42a44a5fb89c0bd78e8997d4841e85672c73acdb
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The following auto tests have not been run in the CI at all:
- tst_qquickanimatedsprite
- tst_qquickframebufferobject
- tst_qquickopenglinfo
- tst_qquickspritesequence
- tst_qquickshadereffect
Change-Id: Iacc832563fd2c002eef480fa4d42469d852adc0f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The expected signal counts were not matching. Since the test has not
been run in the CI, it went unnoticed. Furthermore, the test crashed
due to a missing null pointer check.
Change-Id: Iff80a2ea17832eb7bc531ac9eb2fc482f2c69e38
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's such a common mistake to observe that they normally go to zero at
the top-left corner, but fail to realize that they won't always do that.
Task-number: QTBUG-64219
Task-number: QTBUG-22894
Task-number: QTBUG-27884
Change-Id: I6bc81d4761debdaff8fb3366bf1e944241207157
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- don't use QTRY_VERIFY or QTRY_COMPARE if there's nothing to wait for,
because it will always wait a short time and add needless delay to the test
- QVERIFY(QSignalSpy::wait())'s should perhaps not be done in sequence,
in case the second signal already happened while we were waiting for the first.
QTRY_VERIFY(QSignalSpy::count() > 0) should be more reliable in such a case,
as long as we are sure the count started at zero before the behavior
which was supposed to make the signal be emitted.
- 1000ms is probably not long enough to wait for ListView velocity change
on a slow CI system.
- according to the comment "verify that currentIndexChanged is triggered"
we need another spy for that signal.
Change-Id: I99d93a849b674ce6c81acbe91639f03933025117
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
| |
Sticky headers and footers weren't accounted for when calculating new
view position causing the requested item to be left behind them.
Task-number: QTBUG-63974
Change-Id: Id69579643a942e8558960b2c8b0fee980fa86947
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pointer event instances are QObject-children of QQuickWindow, meaning
that they remain alive after ~QQuickWindow(), until execution reaches
~QObject(). Make sure the pointer event instances are cleaned up in
~QQuickWindow() to avoid accessing them later during the destruction
phase.
Task-number: QTBUG-61434
Change-Id: Icd4576e7581524773a3eb33864fdd64df821e0e8
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Normally, this was not a problem, but it is problematic during
QQuickWindow destruction:
The list of pointer event instances are destroyed, but later the grabber
is removed (through call to removeGrabber()). This queries the
mouseGrabberItem(), which would create a new pointer event instance.
It also has the benefit that d->pointerEventInstances are now only
populated due to actual incoming events.
Task-number: QTBUG-61434
Change-Id: I4e7b6f5643f3b971138a1f7c7237ee734d29783c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
By passing the enter and leave events to the offscreen window it will
enable mouse areas inside a QQuickWidget to know when the mouse has
actually entered or left the area if it is covering the whole item.
Task-number: QTBUG-45557
Change-Id: I670ebe30e367e919c73fed449bf2bed7ca42b5fd
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
|
|
|
|
|
|
|
|
| |
The variable wasn't initialized in any constructor. This
didn't cause issues in practice, as it always got set in
optimizeRenderList().
Change-Id: I37459bb2d51bbe2bb881aaefffd6972a5345c75d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
Change-Id: Ic4fd2bde745e7dfaf0909e8cc575441bb04cefa3
Task-number: QTBUG-64017
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Bhushan Shah <bshah@kde.org>
|
|
|
|
|
|
|
|
|
| |
We should not operate on invalid QML contexts and once we have
established a context to be valid we don't have to check the result of
QQmlContextData::get anymore.
Change-Id: I9106115ddf925c3572048f1fd334bdfd9a9cfca7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
| |
And check whether nine patch pixmaps are opaque as well.
Change-Id: I23f2cb675b923eace849a1c0ad71efe1446c86c4
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
If the content of a layer completely covers every pixel of
it, mark that layer as opaque so that we can avoid alpha
blending where possible.
Change-Id: Ia0be4e7a96ecddd31a26f353509de976bcc9e397
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-30716
Change-Id: I0c6829ae496850d6a2cdcc349c496dfbf4e8adbb
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: Ic433a832190ff3e89fae696e1eabf0c7dfa57cec
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Index based scrolling does not enable moving and flicking properties.
Task-number: QTBUG-34576
Change-Id: Ief06d37115ca389027670c97ce6c0457a74d4872
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The animation was not being performed if the delayRemove attached
property was changed by the handler of the remove() attached signal.
We need to run the delayed transitions not only if we have an animation
for the target item, but also if we have an animation for the items
being displaced.
(The flag variables can safely be obtained outside of the for loop,
given that their value should not change during the loop iteration)
Task-number: QTBUG-57225
Change-Id: I8c138677d7dcdf63e0932ec5cf7738c0caeb2ab8
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In QQuickItemViewPrivate::applyModelChanges(), if
moveReason = QQuickItemViewPrivate::Other,
then QQuickItemView::trackedPositionChanged() will fail to call
d->setPosition(pos), which is normally what keeps the Flickable
moving for a while. Leave the reason as-is (it will be SetIndex in
this case), so as not to forget that we were actually trying to move
down. Updating the model was just a side-effect of that: either
because some QML code was trying to append to the model or because
fetchMore() was called.
Task-number: QTBUG-61269
Task-number: QTBUG-62864
Change-Id: I3fd402469950d6c12e6a8d6e42be83ea4f54776a
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
| |
Sequential call of setWidth() and setHeight() results in outdated height on
widthChanged() signal. Use setSize() to set width and height at once.
Change-Id: I013f5e1fcfc65a8606f9596ddc196b633873dc98
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If all the items currently in the view are being removed,
lastVisibleIndex will be -1. This caused an unwanted repositioning
of all the deleted items, which got moved to a wrong location.
Therefore, when all visible items are removed, we should avoid
recomputing any item's position.
Task-number: QTBUG-57225
Change-Id: I9909748a9cccb5e6a3726306e250921ce69fcba9
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
And help avoid that we draw the same pixel multiple times.
Change-Id: I56dccfeffe6865d0aaa252c84ae693380c3bbb5b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression introduced by commit
e22b624d9ab1f36021adb9cdbfa9b37054282bb8, where the object that owns the
QML context would destroy the context upon destruction. Now the context
may live longer and thus the context->contextObject pointer would become
a dangling pointer.
Task-number: QTBUG-63733
Change-Id: Idc660116752d312917a0a149110b92a042ccfb17
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
| |
Change-Id: I5340dfb214de63ad848b2c9c322c89a19b770fc2
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QtQml] Qt.platform.os returns "qnx" when running
on QNX platforms.
Task-number: QTBUG-52515
Change-Id: Ie46f235248f7832fff12906cf858e8527e8060b1
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Otherwise we may get called back when the window's scene graph is ready,
but we don't have a controller anymore then. This leads to a crash.
Change-Id: I8075619e1fd3c69ca0f7d0b1d72952b8cc5040f8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's flaky: on the CI machines, the first three windows are shown
stacked on top of each other, and none of them has focus, because
the terminal which is running the tests continues to have focus.
If this happened to a user, he would just click in whichever window
he wants to have focus. (Good thing it's visible, at least.)
So this looks like broken window manager behavior. Ubuntu will switch
to Gnome soon anyway; then maybe the behavior will be different.
Task-number: QTBUG-62604
Change-Id: Id0db8a61e8335e7f591a38e07c488c055b236239
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
| |
Change-Id: I64a7b7cb7fa6c5fe53019ed42b19989a0f8a0da2
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We take references to types when sending events to the other thread. If
we don't process the events, the references are kept, which leads to
memory leaks. Therefore, when shutting down a QML engine, we have to
make sure the event queues are emptied.
Change-Id: Id8b0440029cfd7d03a9e540747eaedbcaa7c9ff3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
Sequential call of setWidth() and setHeight() results in outdated height on
widthChanged() signal. Use setSize() to set width and height at once.
Change-Id: I86ff5cef2da912a8855c66a614d5d7d2e71f1de8
Reviewed-by: Risto Avila <risto.avila@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
| |
The class is useful for other tests
Change-Id: Iea287ee7659a7504800763c45ae5dc744360eaa0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-62449
Change-Id: I523d86d5c1744ee269080cb169990fdb3d8f93ef
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|