| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Same as da27cace for the Default style.
An internal ID in the OpacityAnimator element prevented deferred
execution for the whole content item. Apply the same visibility trick
in C++ to avoid having to use an ID in QML.
Change-Id: I4b54bbe3044aff9603b1135ac25d7325e01fdff2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I8ee27a0c65c9ce8c9cc48c6f59d2b34d02849be8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Due to unclear auto test failurs, Tumbler does not yet have deferred
execution enabled for its content item. Because of this, the test is
getting full of skips and expect fail's for Tumbler. Just leave it out
for now and restore later when Tumbler is fixed.
Change-Id: Iab9465e002572d15e5bda6dbd53b71594f593703
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
Fix style selection, and make override() actually fail with
internal IDs in the built-in styles.
Change-Id: Ied321c46cd74039f84b683fb6df99aef2d488eef
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the QML engine refuses to defer execution of a delegate (it contains
an ID), we must make sure to cancel any pending deferred execution for
the same delegate. Otherwise, we may end up overriding a custom (non-
deferred) delegate with a default (deferred) delegate.
This patch adds a new test style "identified" to tst_customization.
This style contains delegates with IDs so we can test the behavior with
IDs in base styles. Furthermore, overriding delegates is now tested
in various ways (with and without IDs in the base and custom styles) in
a separate test method. This is done by generating QML code to override
delegates with dummy Item instances with appropriate IDs and names.
Task-number: QTBUG-65341
Change-Id: Ie6dca287cb74672004d9d8f599760b9d32c3a380
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An ID in the internal Text element prevented deferred execution for
the whole content item. The ID was used for two reasons. First of all,
it was used to propagate implicit size from the Text element to the
root of the content item. Secondly, it was used to calculate clip areas
to provide the same text in two different colors. This patch provides
two internal C++ helpers, ItemGroup and ClippedText, that provide these
functionalities without the need of using IDs in QML. At the same time
we got rid of two wrapper Items and simplified some QML bindings, which
results to a nice boost (18->22) in qmlbench on TX1.
Task-number: QTBUG-65341
Change-Id: Icf9c09356cf5c0ed641bde537bee7291bd260057
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
An internal ID in the OpacityAnimator element prevented deferred
execution for the whole content item. Apply the same visibility trick
in C++ to avoid having to use an ID in QML.
Task-number: QTBUG-65341
Change-Id: Icb20e4ecc60d1093e849737799bb269f7f03097a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Remove the undesired internal IDs where easily possible, and
add expected failures for the harder ones for now.
Task-number: QTBUG-65341
Change-Id: I5964b2cb59652661c90141259c68b95c721cf6ca
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Maintain the tested controls and delegates in a single array that can
be re-used for testing all styles without repetitive and error-prone
hand-written data rows.
For this to work, the structure of the tested styles must match. The
"incomplete" and "override" styles filled in all possible delegates,
whereas the "simple" style filled in only the normally used delegates.
The test styles have now been synced with the structure of our built-
in styles. For example, Dials and Sliders don't normally have a content
item, and CheckBoxes and RadioButtons don't normally have a background.
Change-Id: I48a26ee170f66882c55b54a282f2e4b3a3875f9a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since 8e4b910, we've been often seeing the following failure in CI:
FAIL! : tst_controls::Default::Tumbler::test_itemsCorrectlyPositioned() Compared values are not the same
Actual (): 0.00008000000001118224
Expected (): 0
Loc: [/Users/qt/work/qt/qtquickcontrols2/tests/auto/controls/data/tst_tumbler.qml(352)]
QQuickPathView uses such tiny 0.00001 offsets internally. => Use fuzzy
compare for the expected position.
Change-Id: Ie6c1025003aa57335232d23fb8466d1578dc1ab3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike with mouse events there's setAcceptedMouseButtons(), currently
there's no way to control whether a control receives touch events or
not. As a temporary workaround until QQuickItem::setAcceptTouchEvents()
has been added, we'll have to ignore touch events by hand.
Task-number: QTBUG-65084
Change-Id: I3d51bdc80981557399f3bdfd181e359679cd1c20
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickPopup is backed by a QQuickControl subclass aka QQuickPopupItem.
However, since the QML engine sees "background" and "contentItem" as
properties of QQuickPopup, we must ensure that the deferred properties
are executed for the QQuickPopup wrapper object.
Task-number: QTBUG-50992
Change-Id: I2ec055b382e41530a6f4a740cb80853c0181c21a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Tumbler is excluded because test_customContentItemAtConstruction()
starts failing if deferred execution is enabled for the content item.
Task-number: QTBUG-50992
Change-Id: I11022c3c380311396453cf6229e068e4aae2d82a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Icb22f656893c89f61233bb547f03e63240bb8f97
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Task-number: QTBUG-64065
Change-Id: Id77a85ce5b88c20795e9f7fe9d2ece974f46a315
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
| |
To make them correctly available in QML so that they also work as
signal arguments.
Task-number: QTBUG-64259
Change-Id: I5fa00871f96357d924661c4b8af323a0f1748c9d
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
| |
Change-Id: Ic98b332c5e30104c4a3c74a873caafa9065d6b5d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
The resource file gallery.qrc was removed, load from path instead.
Change-Id: I167c3f967f8a73bf0de9ffe1658c00970b3d8075
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickTextField wants to emit pressed(), released(), and pressAndHold()
signals not only on left, but on all mouse button clicks. Therefore it
explicitly sets accepted mouse buttons to all. However, the base class,
QQuickTextInput, has only been prepared to handle left (selection) and
middle (paste) mouse buttons. Don't pass right mouse button -only
events to the base class to avoid it clearing selection on right click.
Task-number: QTBUG-64048
Change-Id: I015820c78995cc8dd7cbeb16fca0f9b991040bad
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Ibec1396de3e929a229e1550b8045d687aa5a513c
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
test_interactive() was iterating the entire rectangle 2px around each
indicator pixel by pixel and sending mouse clicks and touch presses +
releases at each coordinate. This resulted to a total of 845 mouse
clicks and 845 touch presses and releases. Select a few interesting
coordinates to reduce it down to 40 mouse clicks and touch presses and
releases.
Change-Id: Ie3439aae8481e019956c49d2d82067dac8741b8f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The problem was that QQuickContainer started already moving items while
QQmlObjectModel was creating items and QQuickRepeater was initializing
the order. Don't reorder items during the creation, but only after
component completion.
Task-number: QTBUG-61310
Change-Id: I13380c5ab6b3bddaad3fa03ef6fb028622b4cd11
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Tooltips are special popups that should not block hover, because it
conflicts with the typical condition for showing tooltips on desktop
platforms.
Task-number: QTBUG-63644
Change-Id: Ie974aed23a7df8e4b926bec5fe717cb909d15842
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that lastSavePath (now lastSaveUrl) is converted
to a URL correctly by constructing it from screenshotsDir
rather than screenshotsDirStr.
It was resolved as a qrc path previously.
Change-Id: I5ccdad6166b3927a149875b6ff89ff53c2440c05
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
| |
Disable hover to avoid unexpected changes.
Task-number: QTBUG-60480
Change-Id: I22fab5c95daa42f3c84437072bce49cac5c705af
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Start keeping track of the content size only after the component is
complete, to avoid creation time ping pong with content size updates
and content item resizing.
Task-number: QTBUG-62325
Change-Id: I4b75dc398d0b746dd7e0b04291270f47f91bb7e6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A destroyed button removes itself from a group, but because of the
workaround added for QTBUG-52358, there's a moment after clear() when
a button is removed from a group and before it is added back to the
group. If the button gets destroyed during that period, the group
ends up with a dangling pointer.
Task-number: QTBUG-62946
Task-number: QTBUG-63470
Change-Id: If994f87b221a7e77f56458866c4d132365c45d6f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I1c7e1a2b337e9d16bc6c9b098db08f29f1b9d1e6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: If9fc2bb41cf251af71479b25656240e0d3c238d8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I98f7081e94672a4454c33841934158ae82e9388f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I186b3ed95eda5178f861bc501be481c971641767
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
In item views, it can happen during incubation that a control doesn't
yet have a window associated when the parent item changes. Therefore we
must make sure to resolve the font when the window changes.
Task-number: QTBUG-63119
Change-Id: I890f70ae6faa232dcc2c094ccec02e76b371d2cb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Function QQuickPopupPrivate::blockInput() has been overridden in
QQuickDrawerPrivate to accept events that occur while mouse/touch is
grabbed and events within drag area.
Task-number: QTBUG-59652
Change-Id: Icf4129e702a351b266ea9c4544830185c315fc37
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-62508
Change-Id: I8981968c02b65d4b005eb9b54b0228fd51a3abda
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
TextArea was not cleaning up its geometry change listener on the
Flickable it was attached to.
Task-number: QTBUG-62292
Change-Id: I31223d4fcf0b46235b18e8eb05bab686a32f5481
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Check whether a URL is relative and try to resolve that.
Change-Id: I6b0f7bca2011356aca5071d20dbd270eb5d115bf
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|