| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/quick/quickwidgets/quickwidget/main.cpp
src/qml/jsruntime/qv4jsonobject.cpp
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/jsruntime/qv4qobjectwrapper_p.h
src/qml/qml/qqmlengine.cpp
src/qml/qml/qqmlpropertycache.cpp
src/qml/qml/qqmlpropertycache_p.h
src/quick/items/qquickanimatedsprite.cpp
src/quick/items/qquickitem.cpp
src/quick/items/qquickitem.h
src/quick/items/qquickitem_p.h
src/quick/items/qquickview_p.h
src/quick/scenegraph/qsgcontext.cpp
src/quick/scenegraph/qsgdefaultrendercontext.cpp
Change-Id: I172c6fbff97208f21ed4c8b6db3d1747a889f22b
|
| |\
| | |
| | |
| | | |
Change-Id: I081d9b15796b4133d2ba6f1a862f15b873a4846d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Getting the current time from QTime is expensive as it adheres
to the locale timezone. To measure elapsed time in a code block,
using the monotonic QElapsedTimer is much faster.
Change-Id: Ibea390d7bc5270a20cf35111dfc919e37be7001e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Scale the canvas image and texture buffer by the
target devicePixelRatio.
Task-number: QTBUG-37095
Change-Id: Ic432b278caa5c85cf3487d3108967cf3fcd2fa48
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Otherwise a re-use of the C++-owned QObject will have a back reference
to a possibly GCed QV4::QObjectWrapper, which results in exciting
behavior.
Task-number: QTBUG-46263
Change-Id: Iff0e36f9e67c01abd02cfb5a89605d0f26ddb0de
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I14eb860386dfad57ab8cf492cb782970497756b9
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ib026302143df82196fdfd70b9ea9923098adbc7c
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't need to deleteLater here, we can not be sure that the
response won't continue for a bit after this, and it's not even
needed since documentation says you need to emit finished in
all cases and this will call deleteLater on the response anyway.
Task-number: QTBUG-56056
Change-Id: I7cc90620f499beaaaaa61aac77d72d067308838c
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Error message:
Undocumented parameter 'image' in QQuickTextureFactory::textureFactoryForImage()
Change-Id: If7cb1e63091c23304b64c5688af0abe55fc37ff4
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
|
| |\|
| | |
| | |
| | | |
Change-Id: I48764527fa1ab6d8d59c24552394459b1cdc58ee
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This covers a whole host of missing cases, notably QUrl stored in a QV4::Value.
Task-number: QTBUG-50592
Change-Id: I8afd772046c7bfbbcf916a7e90a57be5257b9df8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Mark QQuickItem visual children directly in QQuickItem instead of
relying on the item being a (grand) child of a window.
[ChangeLog][QtQuick] Fix crash with QQuickItems created via JavaScript being
garbage collected sometimes when they're not assigned to a window.
This may happen even in qmlscene when between the creation of the root item and
the assignment to the QQuickWindow the garbage collector runs.
The previous approach of a persistent in QQuickView marking the visual item
hierarchy relies on the existence of a view. The only thing left to do in the
view and qml window implementation is enforcing the CppOwnership policy set on
the content item in QQuickWindow by ensuring the presence of the JS wrapper,
replacing the persistent with a weak value.
This also introduces a new internal mechanism for QObject sub-classes to
provide their own V4 JS wrapper types.
Task-number: QTBUG-39888
Change-Id: Icd45a636a6d4e4528fc19165b13f4e1ca7967087
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| |\ \ |
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tests/auto/quick/qquicktext/tst_qquicktext.cpp
Change-Id: I241cd418bb7e7b95e0a0a2ee4c465d48be2a5582
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The if statement in QQuickTextPrivate::setupTextLayout() was missing
an OR clause for the case where the line width is neither greater
nor less than the old width/natural width, but has actually changed.
If that sounds confusing, it's because it is. Basically, the outer
layouting loop in that function needs to run twice for this scenario,
so that's what this patch makes it do.
Change-Id: I13777667eb13506d50f05e9766785a1c2c46125c
Task-number: QTBUG-50738
Task-number: QTBUG-50740
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I8ec8c8eff41e77225ef42f7bd9e52f4558d00130
Task-number: QTBUG-55779
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This was occurring when using a physical mouse wheel: movementEnded
was emitted, then contentYChanged would still be emitted a few more
times.
Task-number: QTBUG-55886
Change-Id: Ib5e833d5d84633bb07b8c240ea3ccc9977e443f8
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We (incorrectly) didn't check the return value to make sure we had a valid self.
At the same time, rename the self variable to match up with other methods.
Task-number: QTBUG-53672
Change-Id: Ia0ae5a553e49c4c3b2834c7fdf649fe6373951a2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The velocity timeline does not need to drive the movement if we can
be sure that there are enough wheel events coming from the OS to
move the flickable smoothly. And when the velocityTimeline is not
active, the movementEndingTimer will emit the movementEnded signal,
as it should.
Task-number: QTBUG-55871
Change-Id: I5569be3aa6335d43ba162967ee03d08de3ba8096
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows for the OS to use 49 address bits. It also maps JS Undefined
to the C++ nullptr on 64bit.
Task-number: QTBUG-54822
Change-Id: I7cc90620f499be1506a61aac77d72d067308838c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
On some systems, glGetString returns null for some reason, which causes
a segfault here. Let's assume it's not one of the broken configurations
and hope for the best instead.
Task-number: QTCREATORBUG-15992
Task-number: QTBUG-56165
Change-Id: I83867e42f0fd8f576bf51ac0a2213e1348111ffd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-55935
Change-Id: I475c1bb3e7aae9499b1b07a52f3c10f54c8b3481
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-56036
Change-Id: Iad776f42cc776e0d397173b3d2f3922eb7914392
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This serves the same purpose as qtbase/corelib/global/qhooks.cpp,
but is meant to be in sync with changes in Qt Declarative internals.
Change-Id: I5a4a7d9ca5c340367581749e05d09380590c46fb
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We shouldn't be setting width and height for each square; we should
only need to set their side, which determines their width and height -
so that they're actually square !
More pertinently, this could later serve as an illustration of how to
use properties and bindings. Ideally, we'd do this in some way that
actually ensures setting width or height changes side; but the simple
approach will do for now.
Change-Id: I0df89e11221dde5d1d2930c4a779b59cf0d46654
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Qt 5.7 only deploys to macOS 10.8, so this code is never executed. Also,
QSysInfo will be deprecated in Qt 5.9 so this will fix a warning.
Change-Id: Iecebdb2aed3b0e31b0540621b16aa958031a8e81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Ignore mouseUngrabEvents() triggered by giving mouse grab to a child
item when replaying a delayed press event.
Change-Id: I6c8db61167e21bf10d533b17f7cc65e4754bd432
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Martin Jones <martin.jones@qinetic.com.au>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows for a compiler to do dead-store elimination for zero-
initialized memory that gets overwritten directly after the allocated
chunk is returned.
Change-Id: I6493aae8fdabc2306e7cfa1233f917b1775c4451
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Check that the destroy() method of Heap::Base was called when a Managed
object needs destruction. This checks if a call to the parent's
destroy() method was accidentally omitted.
Change-Id: Id025ecd6d4744bf3eab23503fbe317ed2a461138
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Any type that:
a, has exactly one reference (from the type cache)
b, has finished loading, and is thus either in Error or Complete state
c, either has no compiled data or again exactly one reference on the
compiled data (from the type)
is not needed anymore and can be trimmed.
The previous logic would not trim types with errors that have received
compiled data by loading from a file and it was generally harder to
understand.
Change-Id: Ieb9ce29599411ea5516742b874cbcf3dcab03bde
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
GCC6 might dead-store-eliminate out our secret write to Base::mmdata,
because it expects all memory content to be "undefined" before
constructor calls. Clang might take the same approach if the constructor
of Heap::Object is removed.
By making these structs trivial, it also makes them memcpy-able.
Change-Id: I055b2ad28311b997fbe059849ebda4d5894eaa9b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ia8eda67c9d59069d3a64363699720a79ba1348a1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This removes the destructors of subclasses of Base, making them nearly
trivial.
Change-Id: Ia6f7d467e87899b5ad37b8709a8f633a51689d59
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
So now VariantObject is nearly a trivial struct.
Change-Id: Ifc54c04d9686c03e12066c5287823dd3b1315d2a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows Qt Quick Designer to register a component with a custom parser
that can serve as a mockup for known C++ components registered
in e.g. main.cpp.
In many cases those components are the interface to the C++ backend.
While the C++ components itself are not relevant for the gui designer,
the user has to be able to instantiate gui components that use such C++
components.
Therefore we create mockup components with a custom parser, so all
property assignments are accepted.
Change-Id: I9c25752b0a5f11c2613346ffbbfd10e3b6eb3a6f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We keep track of the touch device and point ID, but didn't use them when
queried for the mouse grabber. When setting the grabber, also take touch
into account.
Qt Location's touch/mouse handling, when it called the grab
functions was not working correctly, because in QQuickWindow, we'd check
for the old grabber and due to not checking the device/id, we'd get the
wrong item, which would then result in the ungrab function not being
called.
When some item steals the grab for a touch point that was previously
accepted as a synthetic mouse point, there was a high chance we would
fail to deliver a mouse ungrab event.
Make sure to ungrab the mouse as soon as we find any point with the
corresponding ID. In addition, the multi point touch area tried to grab
ids which were invalid (-1), avoid that.
Task-number: QTBUG-55229
Task-number: QTBUG-56213
Change-Id: I73e4587bf4f94a65d88c5b60d93bc07743512e56
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickMultiPointTouchArea::childMouseEventFilter
Change-Id: I7b936bd13d9e797ea4ed76a72ae1ff87b0d5b640
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This expands the test and fixes the code.
Before this patch, items would see the press event, but get the press
stolen again immediately.
Change-Id: Iece1d5ffbc09a98fb4bec8d810c7ad78b0f50afe
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is the ultimate destination of all grab/ungrab functions, both the
legacy ones in QQuickWindow and the potential replacements. Since we
rearchitected event delivery significantly in 5.8, it will be important
to debug any behavior change issues that arise in the field; and in many
such cases it's important to track which eventpoint on which device
is being grabbed by which item.
It generates output like
[ 2.012 D] QQuickEventPoint::setGrabber - "Advanced Silicon" point 1c1 Updated : grab QQuickItem(0) -> MapComponent_QMLTYPE_7(0x25d0900, parent=0x23cb430, geometry=0,0 360x620)
[ 2.012 D] QQuickEventPoint::setGrabber - "core pointer " point 0 Updated : grab QQuickMouseArea_QML_10(0x25a3dd0, name="big MA", parent=0x25d0900, geometry=0,0 360x620) -> QQuickItem(0)
Change-Id: Ic98c3c91c719b430590530ba8c5a7eff8063d330
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Originally in the complicated version of this part of the code, the
event would always end up in the right place, since the grabber was kept
and events delivered reliably. Now we take device and point ID for the
grabs into account. When delivering a mouse event from a touch, we would
clear the pointer device and ID before trying to send the release, which
resulted in the release event never being delivered.
Change-Id: I9bc1b2a795023740f8fe3961d779bc8bff0dc35e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The keep grab property works in a "cooperative" way, items need to
respect it. Since we don't pre-grab any more, flickable would check the
wrong item for the property. It should simply take the receiver item
into account, which has to have the grab if anyone has it. If the
receiver didn't have the grab, it wouldn't be the receiver in the first
place.
Task-number: QTBUG-55229
Change-Id: If7d8b0c99bf912c0e09427cd20e89be1798ace5d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ifb58158cd8b9662b35fab6781a7844ce44ca546d
Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change also adds a check to the d() calls for Managed, verifies
that the object has been initialized. This is only done for debug
builds.
To prevent other code from tripping the check, a number of other classes
are either marked as trivial, or do initialization in the constructors.
Because of template function changes in them memory manager (those now
call init() instead of in-place new), String has an extra parameter
to force it to temporarily use an old/unmodified template function.
Change-Id: I8c35161ce7680835d830638b6d21498c5129b02b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I89f5189ab2e73dcd1525abfda41bd7c637e3bf53
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The compiler seems to mis-optimize the switch/case statements causing a
QString construction to end up in handling a QUrl and behaving
unpredictable from there (crashes for some example).
Change-Id: Idd2b6b64f1f41d0aa9204dd73dfdf7f5d0541798
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One more step needed to make QV4::Heap::structs trivial.
Change-Id: I6bebfaff970518d65a09f2b9f50a6855c431d4c0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickPointerTouchEvent::touchEventForItem() can return a nullptr
so we have to check for that wherever we use it. In this crash scenario
while doing some kind of touch gesture it gets delivered as a synth
mouse event to a custom item. When you release the last finger (or
release multiple fingers simultaneously), touchEventForItem() returns
nullptr because the fingers were no longer moving before the release,
and QQuickWindowPrivate::deliverTouchAsMouse() didn't check for that.
Task-number: QTBUG-56090
Change-Id: I7ada1f82711296722226fdc06d9c5add2422335b
Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One of the steps needed to make QV4::Heap::structs trivial.
Change-Id: Ic4d73f15035af21c8a682aaad1ee68cdd91f8e7d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After the removal of the property accessors this notifier is not
used anymore.
Change-Id: I63f984cada529231cc735a4001fa593c7a81d3cd
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One of the steps needed to make QV4::Heap::structs trivial. It also
makes QMetaObjectWrapper memcpy-able.
Change-Id: I1a1b2e5a3fdb87ac4d2b5ace5af3aac54a63d9ed
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|