| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Text.[content/painted][Width/Height] were being always notified of
changes at bulk. This is can be harmful in performance of QML
applications that will trigger change requests on the program whenever
a property is modified.
This introduces separate signals so it's not a problem anymore.
Change-Id: I5b82cf13158298dbc91157b837d0ed4aadeb86cf
Reviewed-by: Frederik Gladhorn <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After qtbase b3e91b66b9175c1c3ff5f73f3ac231f74f9bf932 and predecessors,
as stated, "Qt platform plugins are now responsible for sending
explicit mouse button type and state information; qtestlib should take
full responsibility now as well." In QML tests we have not yet had
this memory of which buttons are pressed, until now. Change
caa45b4fe8b63f4be87b63b33595f65a0f44230e made Flickable sensitive to
buttons: it refuses to flick in response to mouse events in which no
button is being held. This broke tests in qtquickcontrols2 which
assume that in a QML test sequence like
mousePress(tumbler, tumbler.width / 2, tumbler.height / 2, Qt.LeftButton)
mouseMove(tumbler, tumbler.width / 2, y, 1)
mouseRelease(tumbler, tumbler.width / 2, tumbler.height / 4, Qt.LeftButton)
the mouse moves will include the pressed left button because it was
pressed and not released. So we have to fulfill the assumption to
avoid needing to change those tests. When the function
bool mouseMove(QObject *item, qreal x, qreal y, int delay, int buttons);
is called from QML, if that last parameter is omitted, it defaults to
zero, so we can't tell whether the test is explicitly passing
Qt.NoButton or just omitted it.
Task-number: QTBUG-69704
Change-Id: Ife0f7d0e9cb0d39788e8d9961d8872c9e913431e
Reviewed-by: Mitch Curtis <[email protected]>
Reviewed-by: Gatis Paeglis <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This hardly matters since it's a singleton, but it's nice to have things
clean on exit to find real leaks. Also disable copy and assignment for
that class to be tidy.
Change-Id: I89a848fd7b93e348918951de2affd9e396f49eff
Reviewed-by: Andy Nichols <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Flickable.at[X/Y][Beginning/End] were being always notified of changes
at bulk. This is can be harmful in performance of QML applications that
will trigger change requests on the program whenever a property is
modified.
This introduces separate signals so it's not a problem anymore.
Change-Id: I729852df665ec34f532812dd0a45507d053d624c
Reviewed-by: Frederik Gladhorn <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When we have to modify the string table, we should make sure to discard
the old one for the new CompiledData::Unit we hold in memory. This also
allows discarding the old QML tables as they'll be rewritten anyway.
Saves about ~402K RAM with qtquickcontrols1 gallery.
Task-number: QTBUG-69588
Change-Id: Iae3e9fe2578ea8cb7ec1859ce660f75cfb388dee
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We can express the offset to the line number table relative
to the locals.
Saves ~1.4k with examples/quickcontrols/extras/flat/Content.qml and ~11K
RAM with the gallery.
Task-number: QTBUG-69588
Change-Id: I802928102b4291e05ff1462226d22303f8a6d35b
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move the translation data out into a separately indexed table, which
allows to shrunk the value union down to 4 bytes, together with the
previous commit.
Saves ~4k with examples/quickcontrols/extras/flat/Content.qml and ~37K
RAM with the gallery.
Task-number: QTBUG-69588
Change-Id: Ia5016b072320ebb6b8fcfbb4dad128d53c901c74
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Store doubles in bindings in the constant table of the compilation unit
instead of each binding. This removes one of the two 8 byte members of
the value union and also allows for sharing of constants throughout a
.qml file.
Change-Id: I1d7daafdb7f24e34c14cd160d2dcb2c5aaac1c50
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This allows updating the constants table when the unit data is set /
changes and removes the tie to the engine.
Change-Id: Ice553650390589e30e18421c4e55422a55d0df89
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| | |
Change-Id: Ib50f602263dd0146d792fb3d12bd5971585fda30
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
See ES7 spec, chapter 22.1.3.32
Change-Id: Ibe7df71cbc1bc848e205b9ca682f24841adfa2d9
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
There are still some failures in the test cases, but at least
less than before.
Change-Id: I5bad4ddb1e9d6fe120e981f806a6d986fd43b64d
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Consistently provide a smart pointer to the compilation unit in the two
virtual functions.
Change-Id: I2f43d4d17102082577f2502424d288d40eb7479d
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 4dbb3c7bc5829bcf699715157d3a82fb86f4ea5e we must ensure at
compile time that any host compiler we're using generates structures of
the same size as the differing target compiler.
Change-Id: I7b41f12d0db0eac78196c7c0db07ec8610ff2527
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was previously 68 bytes but rounded up to 72 to be multiple of 8.
After removing the rarely used qml offset table properties and
calculating them on the fly instead, the data structure shrinks to 56
bytes.
Saves 2.8K on examples/quickcontrols/extras/flat/Content.qml and about
~22K RAM on the gallery.
Task-number: QTBUG-69588
Change-Id: I13d1efae7fa1dff96674d937ffbad002c2f703c8
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Saves about ~1.6k on examples/quickcontrols/extras/flat/Content.qml and
~11K RAM on the gallery.
Task-number: QTBUG-69588
Change-Id: I272c204873e7e78675b4712ae44800450e9ee345
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Saves about ~1.5K on examples/quickcontrols/extras/flat/Content.qml and
~11K RAM with the gallery.
Task-number: QTBUG-69588
Change-Id: I49a1d08e18d4f50ffe02d904af39cab53d72493f
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This is useful for profiling the sizes of cache files.
Change-Id: I831d0a20c4eda3d707221a61fa7290857605c7fb
Reviewed-by: Lars Knoll <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When generating code for unary operations with constants, then we should
produce constants in the bytecode instead of run-time codes even when
compiling ahead of time.
Change-Id: Ied902f3729eb6602674eac56edafc4372b209923
Reviewed-by: Lars Knoll <[email protected]>
|
|\ \
| | |
| | |
| | | |
refs/staging/dev
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/quick/tableview/pixelator/main.cpp
examples/quick/demos/
Change-Id: Id7eaae6584017a4ab4ec9dd97b56d5c1a417f0e3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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 <[email protected]>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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 <[email protected]>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I7ab9545d8c7fd747e3a6ddae8ecee53897d9cb66
Reviewed-by: Simon Hausmann <[email protected]>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch will enable delegate item recycling for js list models.
So if you e.g set "model: [1, 2, 3, 4]" on a TableView, the delegates
can be recycled.
The patch will override the notify function. This function is called from
QQmlDelegateModel whenever the modelData that the delegate item
depends on, changes. This again is needed to trigger all the modelData
bindings in the item to update.
Note that this function will only be used for recycling items. The model
classes don't listen for changes done to js list models, meaning that
the function will otherwise never be called (which is why it was never
implemented, I guess).
Auto testing this will be included with the patches that implements
delegate recycling for TableView.
Change-Id: I49185bdbaaacc3ccbd94c99cc66d9a1998452f68
Reviewed-by: Mitch Curtis <[email protected]>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After commit 9333ea8649838d7e0400b0e94c8cbd4fa5d216b0 when looking up
properties such as "console" in Component.onComplete handlers of
QQmlProperty sub-types, we end up implicitly creating "console"
properties, which is not correct.
At the same time, there are use-cases (and tests such as
tst_QQmlPropertyMap::QTBUG_35233) where a binding expression accesses a
property of a property map sub-type and it doesn't exist. Then later
that property is added and we must re-evaluate that binding. That works
because the implicit property creation when reading it also results in a
property capture.
Therefore we introduce the HFH (hack from hell): Detect the use of a
QQmlPropertyMap sub-type and go back to the old lookup behavior. The
path forward should be a deprecation of QQmlPropertyMap and perhaps the
ability to define abstract interfaces in QML.
Change-Id: Ib87bc1ebae44d7b332be47f1dcb614a19334b559
Reviewed-by: Lars Knoll <[email protected]>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch will enable delegate item recycling for QQmlListProperty.
So if you e.g set "model: someItem.children" on a TableView, the delegates
can be recycled.
The patch will override the notify function. This function is called from
QQmlDelegateModel whenever the modelData that the delegate item
depends on, changes. This again is needed to trigger all the modelData
bindings in the item to update.
Note that this function will only be used for recycling items. The model
classes don't listen for changes done to a QQmlListProperty, meaning that
the function will otherwise never be called (which is why it was never
implemented, I guess).
Auto testing this will be included with the patches that enables
delegate recycling for TableView.
Change-Id: I34161a998a4581798b692da69164ef29032d6e4f
Reviewed-by: Mitch Curtis <[email protected]>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Like QQuickListView, QQuickTableView also calls updatePolish() directly
for a smoother drag/flick experience. But this can easily result
in recursive callbacks to viewportMoved() if the application, upon
receiving signals, changes contentX/Y. So add some extra code to
protect from this.
Change-Id: Ie4b29bdcf4dc650d89759f9a8a1e3378074ade6e
Reviewed-by: Mitch Curtis <[email protected]>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Don't build anything from Qt Quick without gui module.
Change-Id: I5cf23dde8fa2c121e824435748260e46e3ef38bb
Reviewed-by: Oswald Buddenhagen <[email protected]>
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Any JS callback using one of these signals probably needs to know
which button was tapped. We do not want to require
TapHandler.point.pressedButtons to tell a lie (temporarily hold the
previous state even though a button was actually released). We could
add a releasedButtons property, but it would be a bit weird to have it
holding state indefinitely between events. We could add just a button
parameter to these signals, which would not be so bad, but emitting
the whole eventPoint opens up other possibilities, like doing
filtering in JS based on the device.
To be able to get the device property of the event in QML, it must
not be a const pointer. Q_PROPERTY(const type* ...) is so far
unprecedented in Qt Quick; and the device has only const properties
anyway.
This reverts 8dc02aab72a714b5195ccc641fbfb534c3ae9e98
Task-number: QTBUG-61749
Task-number: QTBUG-64847
Change-Id: I09067498b22cc86e9f68c5ff13d6aa5447faba3d
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ignore buttons which do not fit the acceptedButtons filter, and
do not assume that it's all over when any release happens.
Task-number: QTBUG-66360
Change-Id: I871ea7fdd9b76f06fa0d73382617b287c04d35ab
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Constructors should take QQuickItem* not QObject* to be symmetric
with the parentItem() accessor (and other code) which assumes its type
- Use header initialization everywhere possible
- Reorder variables to minimize padding (somewhat)
- Remove empty destructor bodies (the compiler can write them)
- Remove override and virtual from destructors in accordance with
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rh-override
Change-Id: I682a53a803d65e29136bfaec3a5b534e975ecf30
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This could happen if the .qmlc file is stale or corrupt for some reason.
In that case, we should try to load a cache file from the user's
CacheLocation.
Change-Id: Id2be776c7ae0467c9d9ffffd1543204272a531d1
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At QtCS 2018 we decided to rename Pointer Handlers to Input Handlers
and include the Keys attached property as part of this set (since we
plan to have attached-property pointer handlers too, eventually).
It's no longer a module, it's included in Qt Quick 2.12. We need to
start promoting Input Handlers and reducing the visibility of legacy
stuff like MouseArea and MultiPointTouchArea (in the hope of being
able to deprecate them eventually).
Task-number: QTBUG-66651
Change-Id: I801351ac2531191cbb1faac9318441c67a109af6
Reviewed-by: Jan Arve Sæther <[email protected]>
Reviewed-by: Venugopal Shivashankar <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is a parentItem() accessor, but the property name is parent.
Correction to 8048eed4142e1566bff8e4ca4bfd48c7a8adb8c8
Task-number: QTBUG-65089
Change-Id: I9af330498412e76904fcf46e779d5d4b9233e9f0
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a Flickable contains an Item with a HoverHandler and a DragHandler,
and you drag it and release it, then during the next mouse move events,
since Flickable is able to filter those while they are being sent to
the HoverHandler, it would grab the mouse. Suddenly you'd be flicking
even with no mouse buttons pressed. I think I've seen similar behavior
in other scenarios too, at some point.
Change-Id: If79c8af2b62dc69f085513e0b7c8bf9b4d504572
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The most noticeable consequence was having DragHandler activate when
attempting to scroll a parent Flickable.
Task-number: QTBUG-69607
Change-Id: I5a01695de00db179ddf0b3a39bdcd5e67ba345ef
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Followup to da722fb448f06cf43780e6f857a1ccd9f07176d6
Task-number: QTBUG-68077
Change-Id: I93322949018091e453297164ef1838619d19ee57
Reviewed-by: Jan Arve Sæther <[email protected]>
Reviewed-by: Martin Smith <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is important since 2.12 is LTS and because Input Handlers are now
included.
Change-Id: I09417eb873ed7971fc768dddb916954d46091a6b
Reviewed-by: Jan Arve Sæther <[email protected]>
Reviewed-by: Martin Smith <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The problem was that QQuickMultiPointHandler::m_currentPoints were only
initialized when the candidate points matched the min and max number of
points.
So if we wanted to do a two-finger pinch it would only initialize them
when *both* fingers were pressed. Due to the checking of point->state() in
QQuickHandlerPoint::reset(const QQuickEventPoint *point) it meant that it
would only initialize the press position correctly for the *last* pressed
point. This was because the first pressed point would at the point when
reset() was called have a point->state() == QQuickEventPoint::Updated, so
it would not initialize the pressPosition nor the scenePressPosition.
Luckilly we can get the scenePressPosition from the QQuickEventPoint, but
the pressPosition we have to explicitly localize.
Change-Id: I493c736814cfbc265ec33e8a72fc4283edbbdc43
Reviewed-by: Shawn Rutledge <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The target can be changed, but bounds-checking always means checking
the parent Item's bounds (which is not always the target).
Task-number: QTBUG-65089
Change-Id: Id09b69340a4ed1a5024023f50ae3636f53d6f3bb
Reviewed-by: Venugopal Shivashankar <[email protected]>
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Coverity was complaining about an uninitialized variable, but it
was not being used then we can remove it instead.
Amends commit 3d9a59b4329cd6f4af6f5e65bc59f8ff28180eec.
Coverity-Id: 191020
Change-Id: I98cb0bac9d9985555fda2bc0d2682bd7f1bcc301
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
as discussed on IRC
Change-Id: Id15127990a4263d92761c8dc8265513041553ddc
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| | |
Change-Id: Ia96accbd0522554aef65839eb12062f4facd2604
Reviewed-by: Sérgio Martins <[email protected]>
|
| |
| |
| |
| |
| | |
Change-Id: I9afc5a0e1c7807f19dfcca1270267bbf7f718903
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
On windows this is the user's home directory. We don't want to blacklist
that ...
Change-Id: I76705fb8344d3d91a3a36ba86407f235d1116bcb
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ia8b96edd49467c2c54ef4e1a0332a94c9a3986a9
Reviewed-by: Albert Astals Cid <[email protected]>
Reviewed-by: Mitch Curtis <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Similar to e792c08ef2bb4d4676df2fe7cc4537ea993d07d2, except for rows
and columns being moved.
Change-Id: I2ffa18a7447730fdc32e298b2870cd3180c3bee8
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The function to do so has been around for a long time. Finally expose
the functionality to the client. It doesn't make much sense to allow the
client to set the initial enabled/disabled state, but not to change it
later.
Task-number: QTCREATORBUG-20795
Change-Id: Ie2cb01ca3ca5578b6bc85650d7ee38d0aad9bbab
Reviewed-by: Simon Hausmann <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As the docs say, timeHeld is the amount of time that a pressed point
has been held, without moving beyond the drag threshold. Likewise
the longPressed signal should not be omitted if the point has moved
beyond the drag threshold. In typical interactions these are relevant
for long-pressing in one place, not while moving around.
Task-number: QTBUG-65012
Change-Id: I3236def5de4d70f8d174362972a76e680452f018
Reviewed-by: Jan Arve Sæther <[email protected]>
|