| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
9812a9c changed the order in which the pressed and position
state is set. Before, when releasing after swiping, it would be:
set pressed to false => set position
After 9812a9c, it became:
set position => set pressed to false
The original order is necessary to ensure that animations can rely
on being enabled *before* position changes, as their enabled
expression typically looks something like this:
enabled: !control.down
This patch duplicates the contents of
QQuickAbstractButton::mouseUngrabEvent() for now, with a TODO
comment to ensure that it's moved into a private helper that we can
call later on.
Task-number: QTBUG-57350
Change-Id: I31af7a665fb2d0e37548df31560ed7bbb0c3cadb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If there are no delegates and hence the mouse hasn't been grabbed, we
should clear the pressed state when the mouse is dragged outside the
control. We can do so by falling back to the event handling of the
base class (QQuickItemDelegate) when we have no delegates.
This also ensures that the canceled() signal is emitted.
A similar thing is done for controls with delegates, except that only
the vertical position of the mouse is checked, as we still want to
initiate swipes horizontally.
Change-Id: I7738f5b9e8e8b6ce4a733008fa4ff73596e854ea
Task-number: QTBUG-56312
Task-number: QTBUG-57285
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't cancel auto-repeat on the tiniest mouse/touch move, but keep
repeating until moved outside the button.
The test has been written so that the exact amount of repeats does
not matter, as long as it repeats. This is because waits are not
reliable in a busy CI environment. Sometimes waits can take longer,
timer events get queued, and we get an unexpected burst of repeats.
Change-Id: Ibdcdd9e684bbcda032abfabb8a33ed892c7778df
Task-number: QTBUG-57085
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't cancel auto-repeat on the tiniest mouse/touch move, but keep
repeating until moved outside the button.
The test has been changed so that the exact amount of repeats does
not matter, as long as it repeats. This is because waits are not
reliable in a busy CI environment. Sometimes waits can take longer,
timer events get queued, and we get an unexpected burst of repeats.
Change-Id: Ic473e04c4d15a0826c8adf460c69507e64590d99
Task-number: QTBUG-57085
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This change allows running tests without the signal sequence spy,
which expects an exact sequence of signals. It can create problems
when combined with wait/tryCompare(), which may take longer than
expected in a busy CI environment, and result to unexpected signals.
Change-Id: I390aa3ddafed9122deaa822b241b3b9bba7841f6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][ComboBox] Added missing keyboard search
functionality.
Change-Id: If132f2ca0bca8cdb09de03f584c07eec6fb384f6
Task-number: QTBUG-56884
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][ComboBox] Added handling for Home and End keys.
Change-Id: I79ec0644f169503ab38a8e2bee18621a1f671478
Task-number: QTBUG-56884
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes CloseOnEscape play well together with QML Shortcut, as
illustrated by the Gallery example.
For example, navigate to any control page, open the options menu,
and hit escape twice. First, the options menu closes, and then the
stackview navigates back.
Another nice example is to open the style combobox in the settings
dialog, while being navigated to one of the control pages, and hit
escape three times. First, the combobox closes, then the settings
dialog closes, and finally, the stackview navigates back.
NOTE: tst_combobox had to be updated, because it was assuming that
the popup is closed when escape is released. Now that the
system is based on shortcut overrides, it gets closed on
press instead.
Task-number: QTBUG-56562
Change-Id: I8b8901bcba7deebd82b181af42f335d95a7cb469
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This allows utilizing the convenient attached properties of ScrollBar
and ScrollIndicator, but positioning the scrollers outside of a clipping
Flickable.
Change-Id: I46fe79110658f4797469d042c56f51548eef6c70
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Dependencies between popup's size and position easily lead to recursion
into reposition(). Blocking recursive reposition() calls messes up the
positioning, so schedule polish events instead.
Task-number: QTBUG-56755
Change-Id: I72afd14573e5cd57f8162df04e193d4c42fd7236
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
These tests did not pass on my Chromebook Pixel 2. The value of
Qt.styleHints.startDragDistance is 19.
Change-Id: I8843803608fc4c8ca2f2c42790d648eb17c141fd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
These methods toggle the active status to flash the scrollbar. The
active status must not be inactivated if the scrollbar was already
active while increasing or decreasing eg. via buttons.
Change-Id: I2902f58a26ab5e56ff89aa921cae7a7ae8404ee3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As noticed in QTBUG-56269, QEvent::HoverLeave is not sent while there
is an active mouse grabber item. Therefore we must hit test move events
to figure out if the control is still effectively hovered.
Task-number: QTBUG-56556
Change-Id: I8a5e3dbd77375aace7fc5594e4315288304d852f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
It is tedious to always add new static SignalSpy instances for each
tested signal. Just create signal spies locally in the same place where
they are used. This makes it much more convenient to create more signal
spies to achieve better coverage. This practice has been already used
in newly written tests.
Change-Id: I7f56c4b3cea0c55c34b85254f69a88ec73b8607f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
We should try to limit the amount of changes that happen above these
functions, so that the tests don't keep failing due to line numbers
changing.
Change-Id: If74ac88bfca99a343f8ddbb31374578b5e977012
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
| |
Change-Id: I57fefd8ba47796118e71902c6882e9918d462920
Tasl-number: QTBUG-55030
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The imperative open() and close() methods used to be the only ways to
open and close popups, but the visible-property was later made writable
to allow declarative visibility bindings. Since then, it is no longer
sufficient for QQuickToolTip to overshadow open() and close() in QML,
because setting the visible-property would bypass these overshadowed
method.
There was a bit of duplicate code between setVisible(), open(), and
close(). This change moves the logic to one place by changing open()
and close() to call setVisible(). Furthermore, setVisible() has been
made virtual to make it possible for QQuickToolTip to apply its delay
properly. QQuickToolTip needs to control the delay and timeout timers
before the effective visibility is applied on the popup.
Task-number: QTBUG-55572
Change-Id: I5a109157f9ec5d0db145e710426665a9a8d7e870
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Just like commit 87b21a57 made Control do it, this applies the same
logic to AbstractButton. The simple reasoning is that when customizing
both the contentItem and the background, it is much better to use the
AbstractButton type that does not have any default building blocks.
Previously you would have to supply implicit size calculation as well,
but this makes it much more convenient to use.
[ChangeLog][Controls][AbstractButton] A plain AbstractButton now
calculates its implicit size based on the implicit size of the content
item plus paddings, and the implicit size of the background item.
Change-Id: Ic380366b25940fbb9f28882c4622d58f4c042a07
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-54206
Task-number: QTBUG-54532
Change-Id: I7e4d993e3b1e30d7d7956629604f948dd1c85e32
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't create a tumbler indiscriminately in init(). Some tests don't
use the tumbler, and it just creates more headaches for debugging, as
there is extra, unrelated qDebug output for the unused tumbler.
- Don't create the tumbler with createQmlObject(). Having code in a
string is difficult to maintain and doesn't have the benefit of e.g.
the static error checking that Creator can do.
- Instead of only automatically cleaning up the tumbler item in
cleanup(), introduce a "cleanupItem" that all dynamically created items
can use as their parent so that they too can benefit from automatic
cleanup.
- Comment out incomplete test and mention that it's a TODO.
Change-Id: I070fbb018bc9270555774bb0de2d72b7889edb35
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using content size was a workaround (applied in 5f5654f) that helped
with mis-aligned tab labels, but broke the implicit size calculation
of TabButton itself. Now that the mis-alignment issue in QQuickText
has been fixed in qtdeclarative commit 79cfc87, we can restore the
correct implicit size calculation. This makes it possible to create
tabs that are not squeezed to fit in TabBar:
TabBar {
TabButton { text: "Foo"; width: implicitWidth }
TabButton { text: "Bar"; width: implicitWidth }
TabButton { text: "Baz"; width: implicitWidth }
}
Task-number: QTBUG-55129
Change-Id: If0dbb00794299e324b7a8d8ce1370fe0a3491fe8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Don't calculate the implicit item width based on the total width of
the whole control, but based on the available width that is left after
subtracting the items that have an explicit width and won't be resized.
Change-Id: Iae18dd9c9756b6f2afa143baab7d2501ce9d4697
Task-number: QTBUG-56265
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only happens in 5.7, and seemingly only when the delegate uses
attached properties (like displacement).
Other fixes required and/or relevant to the patch:
- Fixed some instances of displacementChanged possibly not being
emitted.
- Use QPointer for the attached object's Tumbler pointer, as it
was being accessed while null after this patch.
Change-Id: I7d881d815faf57f1a8bc0ea8e73a7331523d2f9b
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
| |
The parent must not be a null item.
Change-Id: Ide71a69e8cde8114542fa97570e0e5f5d724a884
Task-number: QTBUG-56243
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If there are custom values like 00:00:00 for time and valueFromText
is not implemented, tab navigation sets the value to 0, because the
default implementation cannot evaluate it.
Change-Id: I0384a2015b2c2a4dc2ee0e57f1ece410c339838e
Task-number: QTBUG-56215
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an item is still activating (from a previous pop) when it gets
already popped out, we must not set the deactivating status before
calling prepareTransition(). This method cancels and finishes the
ongoing activation transition, and if the status says that the item
was deactivating, the item gets destroyed in the middle of preparing
for the deactivation transition.
Let prepareTransition() cancel any ongoing transition first, and then
set the status after the preparation. The cleanest way is to pass
the target status to startTransition() and completeTransition().
Task-number: QTBUG-56158
Change-Id: Id52752200b650ea9f84659bbf43431f8a8b22f1e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drawer is a special type of popup that always resides at one of the
window edges. Therefore it makes sense for drawers to operate on window
coordinates. Re-parenting drawers to the window overlay achieves that.
Now that the window overlay is guaranteed to always exist and the
ApplicationWindow.overlay attached property works even with plain QML
Window, we can reliably use it as a parent for Drawer.
Task-number: QTBUG-53168
Change-Id: I37c727001350217ea1d2d9c52d73b4cae44d7c8d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When reseting the explicit size of a popup, the popup items geometry
does not necessarily change. However, it affects the positioning of
the popup whether it has explicit size or not. For that reason we
must ensure that the popup gets repositioned as appropriate.
Change-Id: I2dcd895eb7a1adc9c6a804bed4731edac1d550ec
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The documentation states:
A popup with negative margins is not pushed within the bounds of
the enclosing window.
Therefore QQuickPopupPrivate::reposition() must not subtract negative
margins to calculate the available bounds.
Change-Id: I626772970bf3d5d9eefbb13811ea1003a85bcf0b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Don't start dragging the handle unless the initial press was at the
indicator, or the drag has reached the indicator area. This prevents
unnatural jumps when dragging far outside the indicator.
Change-Id: I2b31b319a347ab489f2de5c044e42d908827b425
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Sync the implementation with QQuickSwitch to make it behave exactly
the same way.
Change-Id: I59d08f68f87d8776e4012da880ac57a99950dfe8
Task-number: QTBUG-55686
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switch implemented custom event handling for the indicator, and used
QQuickAbstractButton's event handling for the background. This lead to
inconsistent signals depending on whether interacting with the handle
or the background. This change gets rid of the child mouse event filter
for the indicator and makes QQuickSwitch fully utilize the base class
event handlers.
Change-Id: I773e2eb939cbbf4bc9086cdf2b34e876597ea08e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Switch is a special type of button that should stay pressed (similarly
to Slider) even if the finger slips outside the bounds of the control.
It was doing that only when dragged from the handle, not when dragged
from the background.
Change-Id: I462c66cfe2e67fc3c95215ffeafe3e5771174418
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][Popup] Fixed to respect explicitly set width and
height.
Task-number: QTBUG-56025
Change-Id: I7c8b0dcf59459a313c4c52eda44de45f1ab648ea
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-56007
Change-Id: I6433e0ebc9570b1e9e6e149ef7f631ea6786f672
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drawers were visible all the time, lurking at the window edges to be
able to catch presses and drag themselves visible when appropriate.
This change moves the handling of window edge presses from QQuickDrawer
to QQuickOverlay, making it possible to show and hide drawers like any
other popups. Instead of having all drawers visible all the time, we
just keep QQuickOverlay visible when there are any registered drawers,
even hidden ones.
Furthermore, this change makes modal popup/drawer background dimming
items accept mouse press events just like they accept hover events to
ensure that a modal overlay does not leak input events through. When
the background dimming of a modal drawer has been dragged over the
drag-threshold, the drawer simply steals/grabs mouse to start dragging
of the drawer.
Task-number: QTBUG-54794
Task-number: QTBUG-54800
Task-number: QTBUG-55022
Task-number: QTBUG-55703
Task-number: QTBUG-55713
Change-Id: I65fb38fcf1466d4e41192c4321d80fb90b49da9a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
In general, we don't want TextField to grow while typing, but if there
is no background nor placeholder, use content width as a fallback. Also
take content height into account while calculating the implicit height.
Task-number: QTBUG-55684
Change-Id: Iee0eff6861c3573045036a06d7e53f7fc313fbe8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I4bf81c06a77980ed3201b43f9d106017f236a8bd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-55647
Change-Id: Ic89beaa1e6674d3f94c9a713fd9bd8e8fdfafbb6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
What comes to the visual background dimming, popups did not respect
dynamic 'dim' or 'modal' property changes. This was half-intentional,
because it was thought an unrealistic use-case to toggle these while
the popup is visible. As a result, the background dimming was missing
if a popup was made visible in a declarative way, and either 'dim' or
'modal' was evaluated after the popup was already visible.
Task-number: QTBUG-54797
Change-Id: Icfb171e619540fef2d91908867b702790cde6c32
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][Container] A plain Container now calculates its
implicit size based on the implicit size of the content item plus
paddings, and the implicit size of the background item.
Change-Id: I0481aef0ce713d92bee8b119bf5158dea612d598
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Controls][Control] A plain Control now calculates its
implicit size based on the implicit size of the content item plus
paddings, and the implicit size of the background item.
Change-Id: I086ecf8e3f564ee49df2f9d30015e127dc88db6e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-55620
Change-Id: I4c06a9e7fefbdbaff7f14a972ed47242c51ca8c6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The attached properties should apply to the shared/global tooltip
instance only when the shared tooltip is visible for the attachee
item.
Task-number: QTBUG-55347
Change-Id: Ia822f2d1de62d2d6dfb28519817edce674d8c2b8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A parentless popup is not visible anywhere, and is not even associated
to a QML engine. Attempting to execute transitions would crash.
Make sure to remove any event filters (when using a plain QML Window,
like with QML TestCase) when a popup is made parentless. This ensures
that if the global shared tooltip was shown on an item that was
destroyed, the tooltip won't keep interfering with the window where
it was last shown.
Change-Id: I87bf9f8dda2fbcc5d1b83d1b83a66a6b9e718eb6
Task-number: QTBUG-55347
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/imports/controls/material/BoxShadow.qml
Change-Id: I52c9f70dec9e56e2374d3ec0c135f2963cf5e833
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
See qtdeclarative commit ebf07c3f for more details.
Task-number: QTBUG-55179
Change-Id: Ie7d855396148c892077381666e0200180dda02bd
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As was done in for Slider in c4c803ce4:
The correct formula for calculating the "range" or "span" is to-from,
not from+(to-from), which is used in the formula for calculating value.
Task-number: QTBUG-55228
Change-Id: Ic5463ef5ac5566efc5996aadd9ae39ec108d778f
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The correct formula for calculating the "range" or "span" is to-from,
not from+(to-from), which is used in the formula for calculating value.
Task-number: QTBUG-55015
Change-Id: Ie30f7e86a10b606a59a171a4667772e446beaf39
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|