| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: I53a6ca82706ff6afbad9e1f40e001c81b8c8ceb8
|
| |
| |
| |
| |
| |
| |
| | |
Add a lot of missing controls and properties.
Change-Id: I7c0ff3cc7fd7220e338d78cac575091ff12abf48
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
if the scene is rendered by a QQuickRenderControl and we have a different
target window (for instance QQuickWidget) we check the target window of
the render control instead of the own window, this fixes window keyboard
shortcuts for QQuickWidget
Task-number: QTBUG-64548
Change-Id: I7614be580f2a707c752189e4c9b53a5d5f0159d7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
| |
Change-Id: Ie72671fb92108dfaf5aaae4ea3ffb279e14b2f1a
Reviewed-by: J-P Nurmi <jpnurmi@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>
|
|
|
|
|
|
|
|
|
|
| |
We've come to realize that even though it's tempting to group similar
properties together, organizing the API so that revisions are grouped
together makes future maintenance more pleasant. It's a lot easier to
to see what was added and when.
Change-Id: I47ba7725260f2c259048848cc2a9b17bce2f01c7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
| |
Change-Id: I7bfb3505cf34b6e8a6f670abd81ee6e39084a1fc
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-64065
Change-Id: I7182cf24197250c927c8cc5227356e835e55a130
Reviewed-by: Mitch Curtis <mitch.curtis@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>
|
|
|
|
|
|
| |
Task-number: QTBUG-64099
Change-Id: I6580f1779e2863e25980968b076f342a5d76d423
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The size (and position) of the background item is respected if
explicitly defined, so the wrapper item is not needed. This does
not reduce or simplify bindings, so the performance boost is not
remarkable, but this can improve the qmlbench results by a frame
or two depending on the hardware. ;)
Change-Id: Ibd45cf02a3eb30b48b4af86e369a1db4cc5d3864
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The system resource will not be reclaimed and reused, reducing the
future availability of the resource.
In QQuickStackView::​componentComplete(): Leak of memory or
pointers to system resources (CWE-404)
Coverity-Id: 178431
Change-Id: Iff8f8e2d228042789faae56512fd3255c3e56498
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
| |
Don't dereference the contentItem pointer without checking. We can use
availableWidth/Height as a fallback.
Task-number: QTBUG-63898
Change-Id: I1ef7704e96e233036eacd6e3586f5bd0c72fac2d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Ifbbc0695023d238f2066f3412e563fb663cdec74
Reviewed-by: Jani Heikkinen <jani.heikkinen@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>
|
|
|
|
|
| |
Change-Id: I6b9e31919502fb2f47e4b3657302a745c9f85b23
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Avoid accidental detach with C++11 range for loops.
Change-Id: I2a105ef5a2505d26ee086974177f8f1e4040b522
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Ib56041e69547e03d7db10974d4638748f99fd2bf
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were accidentally passing QQuickOverlay as a QML context parent for
dynamically created popup background dimmers. There is only one overlay
per window, and the overlay is not destroyed when a popup is destroyed.
QQuickOverlay is just a visual parent item for popup background dimmers,
but the actual owner is QQuickPopup. Make sure to pass the popup instance
as a QML context parent to ensure that the popup background dimmer's QML
context is cleaned up when the popup is destroyed.
Task-number: QTBUG-63672
Change-Id: I5cabbcef5035cef40af3c9edbcd8f7ae3157bd8a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-63618
Change-Id: I6a32158726e4425dc24c24f4f9dc9cc80aa462bf
Reviewed-by: J-P Nurmi <jpnurmi@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>
|
|
|
|
|
| |
Change-Id: I859b61880da16f6c58967700b179f35df656ed77
Reviewed-by: J-P Nurmi <jpnurmi@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>
|
|
|
|
|
|
|
|
|
|
| |
- Remove top-level opacity assignments to allow full customization
- Add more distinction between disable and placeholder text
- Make disabled text more visible
Task-number: QTBUG-62854
Change-Id: I2e8998fb739e4beda58978173173ca94a3759caf
Reviewed-by: J-P Nurmi <jpnurmi@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>
|
|
|
|
|
|
|
|
| |
This fixes the build on VxWorks
Change-Id: I5ba3d182184151b62e3ed6c0ab5e4d77a0e66768
Reviewed-by: Tuomas Heimonen <tuomas.heimonen@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@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>
|
|
|
|
|
| |
Change-Id: Ica7a417aa1bb531bc63e3fa9dda0505a6e552b67
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
The snippet fails when pasted to a file where its not
the root item, so qualify the binding with the control's id.
Change-Id: Ibd16beaddafb112d1d9ecfad6914021ca9bdeede
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
f1e139b broke popup flipping. Many of the sub-menu positioning tests
start failing when merging 5.9->dev. The intention was to avoid calling
mapToScene() twice and re-use the already mapped rectangle, but the
flipping code needs the requested Popup coordinates, whereas the mapped
rectangle is conditionally using PopupItem coordinates, so re-using the
mapped rectangle is not possible after all.
Change-Id: Ic00e985d937fce7aadfd24f817a06fd86d9e307d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-62158
Change-Id: I0bcf5b02da6a3500e4324462d5f1249a6178c9fd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
~QQuickStackElement() emits QQuickStackViewAttached::removed(), which
may be used to modify the stack. Set the status first and make a copy
of the destroyable stack elements to exclude any modifications that may
happen during the loop.
Task-number: QTBUG-62153
Change-Id: I144acd693519e637b78f9a2d910e83da8f2d779e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When no content item is explicitly assigned, container type of controls
(Page, Pane, Popup...) create a default content item on demand. Notice
that the content item is created from within the contentItem() getter,
so it must not emit contentItemChanged() to avoid binding loops.
QQuickControl::setContentItem_helper() was introduced in 1eaebd0 to
mitigate basically the same problem with QQuickScrollView, which has
its own special lazy creation of a Flickable content item.
Now, the problem is that the other container controls are not executing
setContentItem_helper(), because they have already assigned contentItem
and therefore it returns right away. Fix the issue by returning the new
content item without assigning it to let setContentItem_helper() do its
job. The issue was spotted while debugging QTBUG-61434.
Change-Id: Id6f84748ec08bbdfd3bd934dda627e2619af7d2a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-61950
Change-Id: Idbc6bcc8f08dcccc50b409a055ab6c35e1f9aef8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The first touch point was blocked as appropriate, but the consequent
touch points were leaking through to other popups below Drawers' modal
overlay.
Task-number: QTBUG-61581
Change-Id: I1c3e28e3d25b7489c4a9b684107fd1b5158e1674
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Somehow this passed the 5.9 CI, but the dev branch throws an error:
qquickpageindicator.cpp:110:10: error: 'itemChildAdded' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
Change-Id: I2effeb908552fa2759057cf0953ea65737be3f9a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a popup is closed, if there are multiple popups open, restore
focus to the next popup in chain instead of transferring focus to the
window content. This allows us to cleanup the custom focus handling
for sub-menus in dev. There is no more need to manually transfer focus
to the parent menu or to a sub-menu, but calling open() or close() is
enough and the focus is automatically transferred as expected.
Change-Id: I54406c7c6b8dd25af261e00ebb1ae00ccbea8b9f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ie8ecc3874a61b29083e53441c3f484b94195ec46
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This fixes an issue where an application would crash when opening a
drawer by dragging it after an invalid edge value had been set.
Task-number: QTBUG-61843
Change-Id: Ie9b9ea0276b356b92927b858f2be355bfc042afb
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2c4b2d48 made Tumbler's wrap property follow its count by default,
but did so using updatePolish() to account for the use case where a
items are appended to the model in a for loop, as is done in
TumblerDatePicker.qml in Tumbler's auto tests. This (appending items
one at a time in a for loop) is not a good idea, but it should work.
The problem with the solution is that the delay means that the use
cases mentioned in the referenced bug report were broken.
This patch removes the delay. The recursion guards are necessary due to
the complex nature of TumblerView (and its non-standard use of the Qt
Quick views), as they prevent a memory leak in
QQuickListView::createHighlight() from being introuduced.
We now call deleteLater() to ensure we do not interfere with the views'
internal operations, and hence we also perform a few extra operations
at the same time as insurance (although it appears that simply
unparenting the internal view from QQuickTumblerView is enough to get
the tests to pass).
Task-number: QTBUG-61374
Change-Id: Ifef9e99522ea183b282ac862f346beaed12d0c09
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QEvent::TouchUpdate can contain touch points in any states. It
iterates the list of points and calls handlePress/Move/Release().
We can re-use the same handling for QEvent::TouchBegin() (pressed)
and QEvent::TouchEnd() (released). This change does not fix anything
but makes the next steps easier.
Change-Id: I29edd949579ab6a4bf923e455a1ef38adb05e3a5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-61698
Change-Id: I46db5e9816190ac7afd6b671198dff11089bc4f3
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-61785
Change-Id: I9a678570bfdd104ae32b4040ecef7625dcfd1aee
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-61785
Change-Id: I195d5ec3122ca0c7f2fade700b5b0c221472a243
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|