| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add more test cases, and clarify the roles of the test styles.
- empty: no delegates at all
- incomplete: has all delegates, but with no bindings that access
delegates and therefore trigger creation (tests that delegates must
be created regardless)
- simple: has all delegates and creates bindings to simulate a full
style
- override: overrides the simple style and tests that the default
instances of overridden delegates are not created
There are still several non-popup controls that lack deferred
execution. These are marked with QEXPECT_FAIL() to make it easy
to track what's missing. This list still excludes all popups.
Task-number: QTBUG-50992
Change-Id: I70ce42592e7a320251edebfab3030ccc7c0eb978
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
tst_controls::SpinBox::test_initialFocus() caught an issue that focus
was not transferred as expected when the creation of the content item
was deferred.
Task-number: QTBUG-50992
Change-Id: I6b9f5684ab7141fa4ebfe4c7fe3e32528553b96d
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: I3e5c8bf7cc39fae0e882440079bb43292ace1810
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't collect multiple object names for the same object. It was
confusing that the "override" tests contained both "label-override"
and "label-simple", for instance.
- If creation fails, output the error as part of the FAIL message.
- Verify that the QML files actually contain correct types. One of
the RadioButton tests was accidentally running with a CheckBox.
Change-Id: Ide56eed84b5625652321bfe4ef5e32fcf6f45438
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: Ibba0e79f8eaf76336dad3708606484a2846b2912
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
As a special case, ComboBox defers the execution of the popup until
the popup is either accessed or made visible. This gives a nice boost
in creation time benchmarks (20->25, ~25%). The old optimization of
setting the delegate model only when the popup is visible is no longer
needed.
Task-number: QTBUG-50992
Change-Id: Ifeaceb759ab676bb54c6bc09dc97810eade72ca1
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: Ia07055d2fa3d30c91bdf3c526cf7301c7ed1ce2b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: Ibbc946c3402c65f9b100fc74dde04e4d439c8535
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: I6d205f8ea0c90986b18b7e6cedbf347f1ce38eec
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: I99a8d97e7f25cfff398fb30e365c7b245b738c37
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: I8e626d1a0585f93cbd612aca39a1e9050f5e0ed3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-50992
Change-Id: I432be00d81344ce129bc8906370555b134fdf423
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Note: It is important to repeat the names of the deferred properties
in base classes. The QML engine ask for the class info from the meta-
object. A class info declaration in a sub-class overshadows the class
info declaration by the same name in the base class.
Task-number: QTBUG-50992
Change-Id: Ib674b943db2f0bf196c9386ea22b511715c0a98f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
In practice, deferring the execution of the delegates (until
accessed) means that the default delegate item does not get created
at all, when a custom control replaces it at construction time.
Button {
background: Rectangle { ... }
}
Before, such custom Button would never be faster than the original
one, because the default delegate was first created and then thrown
away at construction time. Originally, this was not considered a huge
problem, because the plan was to keep the default delegates so light-
weight that it wouldn't matter. However, then came the fancy styles
with shadows and effects and thus, heavier default delegates. There's
also a growing demand for more features, and the default delegates
are slowly getting heavier...
Now, after this patch, if you replace a heavy default delegate with
a light and simple custom delegate, the result is a much faster
control. For example, replacing Material style Button's background,
which has a shadow effect, with a plain Rectangle gives a ~10x boost,
because the default background with its heavy shadow effect is not
executed at all.
At the same time, deferring the execution of the default delegates
avoids troubles with asynchronous incubation, because we don't need
to destroy an object in the middle of the incubation process.
Task-number: QTBUG-50992
Change-Id: I2274bff99b9ff126d3748278d58d859222910c98
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|