| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I9f3a4a6b6c7a2fbfca0a572209f398a23c26b37b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This is what qmake does on install_qmltypes and we do want to install
the qmltypes files of our own modules.
Change-Id: Iad430aab87f21331abf332ca5c92f9d7edc47bb0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
| |
Modify special case locations to use the new API as well.
Task-number: QTBUG-86815
Change-Id: I3b964e3baf0cc7040830156dac30358ea1152801
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a layout is laid out left to right using the layoutDirection
property, we want left Margins on the left, and rightMargin still on the
right
However, if a layout is mirrored, not only should the layout direction
change but also the left margin should now be on the right and vice
versa.
Task-number: QTBUG-62989
Pick-to: 5.15
Change-Id: Iaae4bc436fd1eb7f1947869563ac325f3d6b79bb
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84434
Change-Id: If8f57f00726868a3540c877d07fca761618e4f08
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was especially noticeable when a Repeater was populating the
children of a layout, and its model was dynamically changed: When the
model was changed, the repeater removed one item at a time until all
items were removed, then applied the new model and then added all the
new items for the new model.
The layout reacted to that by doing a full sync of the QML layout into
the internal gridlayout engine each time an item got removed or added.
For very large layouts (or layouts that have complex size hints to
calculate), this caused a major slowdown.
This patch fixes that by postponing the sync until we get a
updatePolish(), basically replacing most calls to updateLayoutItems()
(which does the sync) with a call to invalidate() (which schedules a
polish). It will also get rid of some binding loop warnings due to this
change.
This means that there is a small change in behavior:
impicitWidth, implicitHeight and Layout.{min,max}imum{Width,Height}
might in some cases be incorrect until the updatePolish() have been
done. (This is however consistent with how Row/Column/Grid behaves)
The creation test in qmlbench was quite simple, so it did not suffer
from the most severe performance issues, but we did not regress:
> compareresults:
auto/creation/layouts/delegates_rowlayout.qml: improvement by 3.91%
auto/creation/layouts/delegates_columnlayout.qml: improvement by 6.59%
auto/creation/layouts/delegates_gridlayout.qml: improvement by 1.83%
Overall average of differences: 4.11%
And for the gridlayout_large.qml (Repeater with 1000 dynamically
changing items):
> compareresults:
auto/layouts/gridlayout_large.qml: improvement by 66477.78%
Overall average of differences: 66477.78%
[ChangeLog][Qt Quick Layouts] Performance improvements to Qt Quick
Layouts. This has the small side-effect that size hints
(implicitWidth/implicithHeight etc) changes are not immediately emitted
after a layout has been modified (e.g item added)
Pick-to: 5.15
Fixes: QTBUG-71839
Fixes: QTBUG-65121
Fixes: QTBUG-66017
Change-Id: I6922efe449134246df66b177992e4442747bc8fb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This brings it in line with the existing convention in this and other
modules, where virtual handlers are named "nounChange"; e.g.
itemChange. Signals are named "nounChanged".
This also allows adding a geometryChanged signal, which would enable
users to listen to one signal for all changes to x/y/width/height.
[ChangeLog][QQuickItem] Renamed geometryChanged to geometryChange
in order to follow existing naming conventions and have consistency
with existing API, such as itemChange.
Task-number: QTBUG-82994
Change-Id: I0547358c796a0047982ccfbf2c38bab952e7a634
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I found this quite useful for debugging layouts in order to get a snapshot of
the layout hierarchy at any point. It will show the hierarchy and the relevant
properties that affect the layouting. It's basically QObject::dumpObjectTree()
specialized for Qt Quick Layouts (except it will dump it as QML-ish).
For the leaf nodes it will leave out unspecified information.
Example on how a dump looks like:
RowLayout {
// Effective calculated values:
sizeHintDirty: 1
sizeHint.min : [ 100, 20]
sizeHint.pref: [ 100, 20]
sizeHint.max : [ inf, 20]
RowLayout {
// Effective calculated values:
sizeHintDirty: 1
sizeHint.min : [ 100, 20]
sizeHint.pref: [ 100, 20]
sizeHint.max : [ inf, 20]
Rectangle {
implicitWidth: 100
implicitHeight: 20
}
Rectangle {
implicitHeight: 20
Layout.fillWidth: true
}
}
}
Pick-to: 5.15
Change-Id: Ie2fcd56d522395cb9d6f55a1ea3f882a7a9da709
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Pick-to: 5.15
Change-Id: I4db3ebb02a5b541ca8e50e65b9056d398570e331
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These properties are useful for items within StackLayout to get access
to their index within it, especially when those items are
declared in their own QML files. Similar API already exists for e.g.
ListView and SwipeView.
[ChangeLog][StackLayout] Added attached index, isCurrentItem,
and layout properties.
Change-Id: I648d4434ab21573b56edd9a0f8399463946fd571
Fixes: QTBUG-76999
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
| |
Change-Id: If8daa6152a563d4309d7342414780ef75b9f5589
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
dependencies.yaml
src/qml/qml/qqmlengine.cpp
Change-Id: I6a73fd1064286f4a2232de85c2ce7f80452d4641
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bump all the *.15 versions to QT_VERSION and use QML_IMPORT_VERSION
rather than IMPORT_VERSION.
Change-Id: I5bfbc960d119a7386bdcedb9bdbfdbfa4486a187
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Id72fbe10c16de61bd847773d0055d83cfe03f63c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/imports/qtqml/plugin.cpp
src/qml/qml/qqml.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/types/qqmlbind.cpp
src/quick/items/qquickitemsmodule.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
Change-Id: I52548938a582cb6510271ed4bc3a9aa0c3c11df6
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/jsruntime/qv4engine.cpp
Change-Id: I61f41672e2dfe7e542ca30fed5f173d0a9ee3412
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This happened because of that QQuickText is ill-behaving: When the width
on a QQuickText with word wrap enabled is changed to something less than
its implicitWidth, its implicitHeight is changed to reflect the height
it needs in order to fit all lines. This will cause the layout to be
invalidated, and rearranged again.
However, at the same time it will also change its implicitWidth actually
become wider than its initial implicitWidth (this seems to be a bug). So
the next time it is rearranged it will actually be wide enough so that
it doesn't need to wrap. This again will cause its implicitWidth and
implicitHeight to change to reflect that only one line is needed, which
again will cause it to rearrange, but since the item has a too small
width for that it will again change the implicitHeight to reflect that
it needs more lines.....
This went on forever until there was a stack overflow. In addition it
also caused an endless (that is, if it didn't stack overflow)
updatePolish()/polish() loop (basically polish() was called from within
updatePolish() continuously).
To make the layout more robust for such "ill-behaving" items we have to
add one recursion guard, and one polish-loop guard.
Change-Id: I9f752ed320a100c8d0f0fd340347a556e63318e5
Task-number: QTBUG-73683
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add unused volatile pointers to the type registration functions in each
import plugin. We need to do this in order to prevent the linker from
optimizing the registration away. There are two ways for this to happen:
When linking statically, the linker will examine the referenced symbols
on a per-object base and leave out all unreferenced objects. When
linking dynamically, the linker may do the same on a per-library base
and drop any unreferenced libraries from the dependencies. Forcing a
reference to the type registration function prevents both.
The volatile technique allows us to remove the previous qCDebug() hack.
Having an unused volatile auto variable should only result in a single
memory read as runtime overhead. The qCDebug() technique would generate
a read and a block of mostly dead code (as no one would ever use that
logging category).
Fixes: QTBUG-81622
Change-Id: I255667276dfd355b19baa17b1aad3db406bf1954
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ifcbab0407e93dfc35d0459d7d29dee2cd3508a86
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
dependencies.yaml
Change-Id: Ie3e9dc62031a85e5e81cbdf04694b95159d49fca
|
| |\| |
| | | |
| | | |
| | | | |
Change-Id: Icb61522fb41a35303bb3d201b344a0407f67f9a0
|
| | |\|
| | | |
| | | |
| | | | |
Change-Id: I88e94fe3398a59f10c5a8b142204db5f3ccb2657
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Found by a valgrind warning of an unintialized jump.
Change-Id: I24279c97042e1971eaff35c3363fc1250e5c6c6e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I36254a688f575e6c7f717ee4019e4d49f73a60f7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ie8aca222809f35174fb6c6488832ec3ff5432272
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: I0c5b939c70bdb91ccdf7068784308416dcaa5736
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QT_MINOR_VERSION resets to 0 in dev.
Change-Id: I0b0210c3664c8c42b5dfabf13abac2beef2a0e34
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/imports/folderlistmodel/plugin.cpp
src/imports/layouts/plugin.cpp
src/imports/localstorage/plugin.cpp
src/imports/models/plugin.cpp
src/imports/particles/plugin.cpp
src/imports/qtqml/plugin.cpp
src/imports/qtquick2/plugin.cpp
src/imports/shapes/plugin.cpp
src/imports/statemachine/plugin.cpp
src/imports/testlib/main.cpp
src/imports/wavefrontmesh/plugin.cpp
src/imports/window/plugin.cpp
src/imports/workerscript/plugin.cpp
src/qml/jsruntime/qv4sequenceobject.cpp
src/qml/qml/qqmlengine.cpp
src/qmlmodels/qqmlmodelsmodule.cpp
src/qmlmodels/qqmlmodelsmodule_p.h
src/qmlworkerscript/qqmlworkerscriptmodule.cpp
src/qmlworkerscript/qqmlworkerscriptmodule_p.h
src/quick/items/qquickitemsmodule.cpp
Change-Id: I5f1fbc3d00e8f583d2c89afc5389de84d68633a7
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now that we can generate all QML type information at build time, we
should also use it.
Move the types for QtTest into the testlib import plugin. They don't
need to be exported from QtQuickTest.
Trigger the resource initialization of the shapes library from the
plugin so that we retain a dependency and the linker doesn't optimize
the module initialization away.
Change-Id: Icc8cb338aa03ef1e3085e29356a5db7b73ba0a01
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/types/qqmlbind.cpp
Change-Id: Ib992d1a7ac6c1a96d39819be6f23955dc31b44b2
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Amends 744e77b841878fb017c0f2d60607090008f28180.
Change-Id: I6f7192982c38346e7fc525600d3fddebff294d2f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Amends 744e77b841878fb017c0f2d60607090008f28180.
Change-Id: I16e37aaf503eb62f67fca0e48be4c92c4a72ae46
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It is being deprecated.
Change-Id: I844bd92af85bc53a8fc0371408d05277bd49f511
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/qml/qqmlextensionplugin.cpp
tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
Change-Id: Ic58d36a8532015bae30f2690063db9829b3bf372
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We now print a warning and try to gracefully handle it
Change-Id: I66e79fe918808f5fede78a23df50e9e95b7b832d
Fixes: QTBUG-67204
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: I48b9c2e4f3a75c18470c55f73f2089dc1401de54
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tests/auto/qml/qqmltypeloader/tst_qqmltypeloader.cpp
Change-Id: I1c0c7c44053bf3d5f8f9723662bd0fe67253c8ae
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
tests/auto/quick/qquickloader/tst_qquickloader.cpp
Change-Id: I85fd38cfa00cd60197a1c981bfcc16fcb896cfe9
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
.qmake.conf
src/qml/common/qv4compileddata_p.h
src/qml/types/qqmlbind.cpp
tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
Change-Id: I6a137907e63445f17a3d6181b832a6bd76135bb2
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I3ac473b3d46ff1f898c1607deb6ad3d586753244
Fixes: QTBUG-79359
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: Ie0db35f674137c229eaf049616f38f8e818f7092
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I38044c382e4d84b5865a19cdd04cc8922bd72a77
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Removed dependencies.yaml because we don't use it yet in wip/cmake.
Fixed conflict in qmlcachegen.cpp.
Change-Id: Ie1060c737bee1daa85779903598e5b6d5020d922
|
| |\| | |
| | | | |
| | | | |
| | | | | |
Change-Id: I3a13e84b77e1c6c3a85ef000d2bfbadbc72651bb
|
| | |\| |
| | | | |
| | | | |
| | | | | |
Change-Id: I1359574c7d89aaf3328958e2f667ba1e599ff7f1
|
| | | |\|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/plugins/scenegraph/openvg/qsgopenvgcontext.cpp
tests/auto/quick/qquickpathview/tst_qquickpathview.cpp
Change-Id: I117c8d62b21800329d1035021d312d9924f83a1b
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- erroneous link to Controls1
- put qtquickcontrols before qtquickcontrols1 in depends statement
Task-number: QTBUG-78799
Change-Id: I8107d9f23660e37c742a588b0efc38ac336babeb
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/imports/folderlistmodel/plugin.cpp
src/imports/shapes/plugin.cpp
src/qml/qml/qqmlengine.cpp
src/qmlmodels/qqmlmodelsmodule.cpp
src/qmlworkerscript/qqmlworkerscriptmodule.cpp
src/quick/items/qquickitemsmodule.cpp
Change-Id: Ib9215a07aa95b5801ce3cb7287f7903926e8c838
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Using this technique we can automatically register all necessary
revisions and minor versions of a type, using the metaobject system.
This greatly reduces the potential for mistakes and resulting
incompatibilities between versions of imports.
We assume that for each type we need to register all revisions of its
super types and its attached type, and that the revisions match. That
is, if you import version X of type A, you will also get version X of
its attached type and of any super types. As we previously didn't take
these dependencies into account when manually registering the types, a
number of extra revisions are now registered for some types.
Potentially, we can now generate the qmltypes files at compile time,
using moc.
Change-Id: I7abb8a5c39f5e63ad1a0cb41a783f2c91909491b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: I4a91928610f79c8e21a05781953ffa41508c828a
|