| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crashes happened because somebody was calling processEvents() from
a mouse/touch event handler that was running for a long time.
If we called processEvents() from the onPressed handler, and we released
the mouse while still not having returned from the onPressed handler, it
meant that we were actually delivering the release event before the
press event was fully delivered...
This should normally not be a problem, but QQuickWindow is reusing the
QQuickPointerEvent object for each incoming QEvent, which meant that
when we were delivering the release event, it would reuse (and overwrite)
the QQuickPointerEvent that the press event handler is still using....
This then caused some assumptions that the code made to be wrong.
This only avoids the crashes, and doesn't really fix the "out-of-order"
delivery and the state inconsistency that this can lead to (e.g. mouse
button states might be still wrong).
But on the other hand, it is not the recommended way of making a
long-running handler not block the application. The proper way is to
create a thread that will run in the background, so that there would be
no need to call processEvents() in the event handler.
Change-Id: I6fa5d4f5748ef30d082a210f03ef382922bd4b29
Task-number: QTBUG-65454
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If there is an invisible window that will not be rendered but
is constantly requested to render, updatePending is always set.
This prevented purging of already unneeded textures, and meant
endSync() was never called and m_texturesToDelete was never cleared.
Added a fix to clear the updatePending flag regardless of visibility.
Task-number: QTBUG-66116
Change-Id: Ib8bf453a3dee18d3d43342580c619664b701acae
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
The page that we link to used to contain a list of the colors, but it
doesn't anymore, so we'll add our own.
Change-Id: I1160e3de7f4ab0ead727b0261edafda30cce3270
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
|
|
|
|
|
|
|
|
| |
The section titles cause links that should target QML types to link to
the page sections. Renaming the section titles to link correctly.
Task-number: QTBUG-59445
Change-Id: Idde600c87621d270c4e25a5dac0a55fbfc7a96ef
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt Quick has a dependency to gui, but there is no way to disable an
entire configure module from the configure system. Add module checks
to configure.json so that it passes even without the gui module
present.
Fixes "Unknown feature object movie in expression 'features.movie'."
Task-number: QTBUG-56656
Change-Id: I16355b7e218c32cab33e8ef9a6012da3e55656bb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-60913
Change-Id: I3a9d8925337a12a849e39a70f168dbfc7f007e5f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
A property never has const pointer as its type. Getting this wrong also
causes problems with the QML type registration not matching the actual type.
Task-number: QTBUG-61749
Change-Id: Ic3c47499cc4dff6df0beecf5b1413c76509ca6f5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
* Rename two section titles that caused confusion for the autolinker.
* Add see also link to correct location from SpriteSequence QML type.
Task-number: QTBUG-58640
Change-Id: I62b941d00198ac56d998ca14b926c7bb37f6c91e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit cf0b965aaab0ea7e777c1f8e8d35de3a73d7d08e because it
causes crashes in qtquickcontrols tst_extras.
Change-Id: I3809f2da84cf24b990b017a44837c02fc6c776d1
Task-number: QTBUG-69497
Task-number: QTBUG-38099
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I2dd5877754b3ccbc975e5cdae5e80d1db28f8e48
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a running transition does not finish of natural causes (reached
the end state due to e.g. the timer finishing), it can happen that it
will never be marked as finished. Specifically, when an transition is
running (e.g. an add animation for a ListView), and that transition is
replaced by another transition (a displace transition, because another
item got added to the ListView before the add transition was finished),
the first animation was never marked as stopped. The effect was that
the running property would stay "true" for forever.
Task-number: QTBUG-38099
Change-Id: Id7d7053cb2fc1912127d9f5e71f27eb984ba7435
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-69438
Change-Id: I4ac191029eccc97e7b9947ec56bf008562c9f4ef
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Ie11e86be997d749e6f82f0fb81a82bb0b50ab1f1
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: Idf3aecf88319a2967ca51985003be32c7e7ef42a
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
| |
Change-Id: I6ae5be8480ff817651c66a1617dceeefb96e5712
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
- Clarify that anchors are fine for layouts that are not children of a
layout.
- Remove redundant list item.
Change-Id: I187875ff3970620a6089716c5d9f41cc80997b07
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The section currently doesn't have any content, and as such, it doesn't
provide much value. The coding conventions link in the related
information sub-section is useful information to have, however, so we
should keep that.
Change-Id: Idc62b41d098528898cc8d65bfaf73879caa14b86
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Only create source component in loadFromSource if it does not already exist.
Previously toggling the active status when loading from source would create
a new source component every time active became true.
[ChangeLog][QtQuick][Loader] Don't leak components when changing source url.
Change-Id: I1e4cfd5613e3851fcb4f3f55e78981f7c070cc77
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
| |
This makes it easier to visualize how the properties work.
Change-Id: I04cb1a99a1f831e5c892cb27e4a0cd127fe450e0
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
| |
Conditionally excluding such statements is required
to avoid irrelevant content in documentation in some
cases.
Change-Id: If6751608dc438de6f7cc0376ffc36f8d994afba6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
| |
It uses the parent argument as both a visual parent and a QObject
parent.
Change-Id: Ib6c645c072462501c77f27085cba7538703c5966
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I3c09f8172fd79f3517b338e2d097bdbd88f325d6
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I5e3a3ebd36d49fdf649eec5a3fb0a8fdb048ce0d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The TabBar auto tests in Qt Quick Controls 2 repeats the following
process very quickly for several data rows:
1. Creates a TabBar (PathView, when using the Universal style)
2. Moves items in its QQmlObjectModel
3. Deletes the TabBar
When run with ASAN, this test would fail, because the TabButtons
(which are child items of the PathView) would try to access a deleted
QQuickItemChangeListener upon their destruction.
The underlying issue is that QQuickPathView::modelUpdated() is called,
and before a refill() can happen, the view is deleted.
QQuickPathView::refill() was the only execution path that was releasing
the cached items (QQuickPathViewPrivate::itemCache), and since part of
releasing an item involves removing the QQuickPathView as a change
listener from the item, the item would access the deleted view
(listener) when the item was being destroyed.
This patch fixes the issue by also releasing cached items in
QQuickPathViewPrivate::clear(), which is always called by the
destructor.
Task-number: QTBUG-68964
Change-Id: Ic5bf0943be79948c86bf7c07ef13ecd1a7b971ba
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
| |
Change-Id: Iff45ea6cf414717fd1cb0a194eef390a9f153838
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: I17671563f2beebe16ae1d08552854eaf44ae43ee
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
qsgtexturefilehandler_p.h is included through other headers that depend
on QT_CONFIG(opengl).
Change-Id: Ic87482289332cb1a0215ca74362207f9941239d7
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-68933
Change-Id: Ibb5aa227e82825085e7214e17dcffcb17fd44157
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In addition to d868bb4f3e4b0424fd4a2989ff1c82692b0f014c this
removes the check for scrollingPhase in movementEnding.
If movementEnding is invoked by some codepath other than timerEvent
(e.g. setContentY) and scrollingPhase is true this will again prevent
any further invocation of movementStarting from within the drag method
(see d868bb4).
As this check was introduced together with the movementEnding timer
(QTBUG-63026) and scrollingPhase is now checked inside the timerEvent
there should be no need for the check in movementEnding.
Task-number: QTBUG-67460
Change-Id: I88ad6e3ee56b88a66bb61798b8876324f4842f1e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Scale the subrect to fit image dpr.
Task-number: QTBUG-68490
Task-number: QTBUG-68582
Change-Id: I6b0a9af73013dc6cf2b65103d5868f45da8e338e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replace the link to the more specific "Integrating QML and C++" page
with a link to "Choosing the Correct Integration Method Between C++
and QML", as the flowchart is a much quicker way for users to
determine the correct approach for their use case.
Change-Id: Ia2c269f9149d801644407bba7388624d69a75564
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling grabberItem() to get the old grabber must come before setting
m_exclusiveGrabber. Then we call oldGrabberItem->touchUngrabEvent()
or oldGrabberItem->mouseUngrabEvent() as appropriate. Now the
responsibility for this is moved from QQuickItem::grabMouse()
to QQuickEventPoint::setGrabberItem() (which it calls).
Task-number: QTBUG-65648
Change-Id: Ia6219cb798d7f671ccc4006d51eeb87dbdbda3ef
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The parameters for createRadialGradient indicate the position and radius
for the two circles. Therefore the radius arguments should be used with
their respective circle positions.
Task-number: QTBUG-67960
Change-Id: Ifacba4d43939bafeed451e713250f716a11d30d1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the input method event contains a commit text that ends with a
newline, text, the commit string is inserted first. This changes the
current block.
This change makes sure that we apply the formatting changes (including
removing the old preedit text) to the old block in this specific
case.
This is a copy of change 6cece0f43a18dc8c9dbf5bc49ce515714f090725 in
qtbase, since the code is duplicated.
Task-number: QTBUG-67836
Change-Id: I531d3f1dce51d840acc0ef7fda9e7affb3192327
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
| |
Change-Id: Id2fb6419be9a35ddaa24106d3022e72070cb908d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
|
|
|
|
|
|
| |
Correction to 499ec43937e926e4f2fa57a9baa455fcb3862262
Change-Id: I9f9fb7cf3a0a04611e7f0a31f57147fbbc03c1a5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
clearGrabbers() will also clear QQuickWindow::mouseGrabberItem(), so we
have to retrieve a copy of the mouse grabber item in advance of calling
clearGrabbers().
This could happen when a filtering parent actually called grabMouse() on
mouse release(!) event.
Change-Id: I287214dbdff802707be625d73c38dd9c5d723aef
Task-number: QTBUG-68030
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
| |
Change-Id: Id4be19faa05e272ad9bf967516e0b49727016e2b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QMovie emits the signals updated() and frameChanged(), and restarts
right after its timer to prepare for the next frame. Since AnimatedImage
destroys its underlying QMovie when its source changes, the lines after
emit frameChanged() in QMovie will use free'd memory and will most of
the time produce a crash.
This fix delays the destruction of the underlying QMovie of
AnimatedImage using deleteLater() to prevent this kind of behavior from
happening without impact/behavior change in the code of QMovie. Unit
tests added as well to cover this situation.
This commit also fixes a similar crash when Component.onCompleted is
called and when the source changes in the associated callback.
Task-number: QTBUG-67427
Change-Id: Ic6568a1bc251e5fa2ee1cf8e5f50eaa56c3007db
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Louis du Verdier <louis.du.verdier@free.fr>
|
|
|
|
|
|
|
|
|
|
| |
We have to correct for the fact that sub-rects of images in QPainter
are in source coordinates.
Change-Id: I457527b4ff7c1df5f6b662c3ed4d690e05efb4fb
Task-number: QTBUG-40366
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: Ieb14322c104d816842e04e521b556bfc11855f1c
Task-number: QTBUG-67024
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
| |
So that it shows up on http://doc.qt.io/qt-5/best-practices.html
Change-Id: I0968362dc055adb6b882c1b7dc6a4a4d7f8b6351
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
QQuickPointerTouchEvent::m_event is 0 when calling
QQuickPointerTouchEvent::isPressEvent(). Add a convenience function
with a check returning the Qt::TouchPointStates.
Task-number: QTBUG-44976
Change-Id: I2433ec3c56adeda2de190ca46aed8413a1357c55
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: I472f61241d1875daf0de0a597bf27c019314f48f
Task-number: QTBUG-50119
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If lists had spacing, snapping would have gaps where snapItemAt would
return nullptr eventhough there were items above and below in the list.
I.e. if we have a list with items of size 100, and a spacing of 100, and
scroll to 110 (right below the first item), then the first item would fail
because this is false:
itemTop+itemSize()/2 >= pos (50 >= 110)
And the next item (the one we should have snapped to), would fail because
this is false:
itemTop-prevItemSize/2 < pos (200-100/2 < 110)
The meaning of first part was probably to see if the middle of the current
item is inside the view.
The meaning of the second part was probably to see if the middle of the
previous item is outside the view.
This patch refactors the code so it's more visible what's happening and
fixes the bug by taking the spacing into account when computing the position of
the halfway positions.
Task-number: QTBUG-59852
Change-Id: I60eec0d16e91d2f22d70b97d11bcde5d88ac2997
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch partially reverts 098ba086530ccd555369a9ea88f3c6668726ab81.
Only QtWebGL will use separate buffers for indices and vertices. This
patch gives a performance boost.
Task-number: QTBUG-66191
Task-number: QTBUG-67147
Change-Id: I58b4db2bdf44cd954390e85e079de82031caf9e5
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Since commit 214fbaa57b73296a0 the latest minor version of the
import is automatically the Qt minor version, so let's also document
this.
Change-Id: Ie2fe1d172898bd0d51f0841c078abd1f8ab8d744
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Since commit 214fbaa57b73296a0 the latest minor version of the
import is automatically the Qt minor version, so let's also document
this.
Change-Id: I4131a399cca7c66b0e9df549f14be43eeaa94af3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Since commit 214fbaa57b73296a0 the latest minor version of the
import is automatically the Qt minor version, so let's also document
this.
Change-Id: I9443be62da5cc9fc281e167f38fa299c73115eda
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-67786
Change-Id: Ie371d4c931ce31f728cdd960ad454e26c40cc4ed
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|