| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't add items until we're complete, as the delegate could change in
the meantime. Instead, add them to contentData and create them when
we're complete.
A similar fix was already done for Menu in d5cb26bc.
Task-number: QTBUG-67559
Change-Id: Idb43b7a69fcf1c1ad6396c73a3c090b92e460ab8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Ensure that the window is active before trying to activate keyboard
shortcuts.
Task-number: QTBUG-70413
Change-Id: Ibac1526efd9c53f1f2aa3401da3855ce26d35d6a
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Don't add items until we're complete, as the delegate could change in
the meantime. Instead, add them to contentData and create them when
we're complete.
Task-number: QTBUG-67559
Change-Id: I5f42129f49de861ff5f15d0069daeda0b4e5017c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickIconImage::componentComplete() calls
QQuickIconImagePrivate::updateIcon(), which loads the icon's image via
QQuickImageBase::load(). That eventually calls
QQuickImageBase::requestFinished(), which calls
QQuickIconImage::pixmapChange(). That then calls
QQuickIconImagePrivate::updateFillMode(), which can in turn cause
QQuickIconImage::pixmapChange() to be called again, causing recursion.
This recursion resulted in icon.color being applied twice.
We already have a recursion check in place in
QQuickIconImagePrivate::updateFillMode(), so we can reuse that in
QQuickIconImage::pixmapChange() to know whether or not we should apply
the color to the image.
Task-number: QTBUG-69506
Change-Id: I5cd9edaa524c7ceb9c41c53a9efefcc4c647e246
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Parse the environment variable manually when the platform's list separator
is ':', to avoid issues with qrc paths (which start with ':') not working.
Task-number: QTBUG-68219
Change-Id: Ic71d49da5a72a37bc1d2e7b19fbf1de71b3917f3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
'cause it's better.
Change-Id: I00a538013a10a7ff3b551b9f550427f898610dbb
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Use Window.window instead of ApplicationWindow.window, as the former
will always result in a window regardless of which type of window is
in use.
Task-number: QTBUG-68858
Change-Id: I3bdb60350d92b13621b0f4db9085bf067b6ff6e2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The use case in the referenced bug report looks something like this:
Tumbler {
model: 4
// ...
onModelChanged: {
currentIndex = model - 2;
}
}
The problem was that setting currentIndex in onModelChanged would cause
the wrap to change to true, which in turn caused the internal view to
change to PathView. This would cause the currentIndex to be set to 0
on successive model changes (i.e ++model).
By keeping track of whether or not the user set the currentIndex during
a model change, we can ignore changes in the internal view's
currentIndex and restore the user's currentIndex afterwards.
Task-number: QTBUG-68737
Change-Id: I25738f36cf58a331d1b8e50b5029b4aa1dd27db5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
File for bic test added.
Change-Id: I99ec3defd695bc7e10cc753a3ee1e0fec56403dd
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Accept Key_Escape or Key_Back only if it actually close the popup. If
the popup is not visible, the key is not handled, and the event should
therefore propagate (and potentially close the app on Android).
Note: def92f7 had a broken test (didn't take the popup exit transition
into account) and thus, blocked the CI and got rejected in 110b718.
Task-number: QTBUG-67684
Change-Id: I46b4731b3006721f3737cf909fbd97331ac6d8ed
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This change got integrated by sick COIN.
This reverts commit def92f7b657ee9247beffffcb0cadd1eca8be3c6.
Task-number: QTBUG-67930
Change-Id: I541579d7112ba386b227b7892d4e0aa8e2bd4edf
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Accept Key_Escape or Key_Back only if it actually close the popup. If
the popup is not visible, the key is not handled, and the event should
therefore propagate (and potentially close the app on Android).
Change-Id: Ibdb0cab8e0ac47005c5112f7ca4882288f1f5a17
Task-number: QTBUG-67684
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
Close the popup and reset the pressed state. Same as in focusOutEvent().
Task-number: QTBUG-67684
Change-Id: I51143175b0f90f3edd116723481faed6ac6e7988
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The recently merged stabilization patch showed that the shortcut isn't
delivered, and the logs show some focus stuff going on before it fails.
If the flakiness is related to focus handling as a result of the tab
press, we can try a different key.
Change-Id: I6094f11de9d938fd18ad5af8b39b0a1489443638
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
| |
Don't add paddings to header and footer width when choosing the max.
Padding affects content, not headers and footers.
Change-Id: I92381762f97eab384b18510522bf788abecd8338
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
Try to pinpoint the cause of recent flakiness by ensuring that the
shortcut is activated.
Change-Id: I8bf81dedfd28b0fe66403147228a8452cc3bea2a
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
| |
setBackground() must resize the item if component construction is
already complete.
Change-Id: I76cada5b37257473a9c0146ee1f6de8de6c10218
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QQuickTextAreaPrivate::attachFlickable() reparents the background from
Flickable::contentItem to the Flickable itself. This avoids that the
background scrolls together with the content. However, when deferred
execution was enabled, attachFlickable() ended up being called before
the background had been executed. If the TextArea has already been
attached to a Flickable when the background gets exeuted, set the
appropriate parent in setBackground().
Task-number: QTBUG-67334
Change-Id: I0847fca5861fdddeac7d47d47316b74bb31500cb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I496a6a60383c0332ec52e9349892c8923ed42c76
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Sync the behavior with Qt Widgets. Don't propagate wheel events when
reaching the end. The behavior was not nice, that a ScrollView
underneath started suddenly moving whilst these input controls had
input focus.
Task-number: QTBUG-66044
Change-Id: I1b9c7f005652041cd82c77d4a1ca1a01d7d536e9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, this code wouldn't work:
Popup {
id: popup
Shortcut {
sequence: "Tab"
onActivated: popup.visible = !popup.visible
}
}
Even though Popup is aware of its Window, the Shortcut object is
parented to Popup::contentItem, which does not have a Window associated
with it while the Popup is hidden.
The fix is to check if the item has a window in
QQuickShortcutContext::matcher(), so that that check fails and the
QQuickPopup itself is used to access the window.
Change-Id: Ia1c5d75ad6b82fb4c8b7664b6d418d84428b1ddf
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following binding
initialView: Qt.createComponent("blah.qml")
works with QQC1 but crashes with QQC2 as soon as the garbage collector
kicks in. In QQC1 StackView was implemented in a .qml file and the
property was declared as
property var initialItem
For such declared properties the QML engine takes care of ensuring that
the reference assigned is a strong reference towards the GC and it also
tracks the life-time of the QObject in case it's explicitly deleted by
somebody else.
In QQC2 the property continues to be documented as "var" property,
however it is implemented in C++ as QVariant property. The QVariant is
not known to the GC at all and it also doesn't do life-cycle tracking.
The C++ equivalent to "var" in QML is QJSValue, which is a strong
reference and also ends up using a QPointer internally when holding a
QObject.
Task-number: QTBUG-67118
Change-Id: I43e473c7bf2c40f9843e9d50fe4fd805b54fd256
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We call __setup() from two different onFooChanged signal handlers. If we
access the second property from within that method, we may end up being
the first one to read that property and consequently require an
initialization of the binding to that property first, which will write
the value (before returning) and trigger the signal handler, recursively
calling __setup() and thus calling connect() twice for each signal the
spy wants to connect to.
This used to be fine as we ended up with a _third_ evaluation that
called __setup() and thus cleared the connections first, but after
commit f514451cc2e3610e160b5dc8ccd1e390730ecc67 in declarative we avoid
unnecessary binding evaluations if possible and therefore uncovered this
bug.
Task-number: QTBUG-66995
Change-Id: I83ef9c80978a88c1490174d3cdb21b149733a78f
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ComboBox does not change its current index, but highlighted index,
when navigating in the popup. If the popup is accepted, the currently
highlighted index is applied as the new current index. However, if the
popup is rejected, the old current index is kept intact. This is why
there is a separation between current and highlighted index. The newly
added key search functionality (added together with ComboBox::editable)
was missing a check whether the popup is visible. It was unconditionally
changing the current index, which lead to a wrong behavior when the
popup was open.
Task-number: QTBUG-61348
Change-Id: Ic0295db609495ccefbccb7c425a817926786014e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Since Qt 5.9, Sliders and Dials react immediately on mouse press. Thus,
the old logic to keep mouse grab if the drag threshold was exceeded no
longer makes sense with mouse. Don't allow e.g. Drawer to steal mouse
press if a Slider or Dial is already being dragged.
Task-number: QTBUG-66637
Change-Id: I76f7ab59180c1f3fb66db8412d7cccfbd373aee3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Make sure to respect keepMouse|TouchGrab. This fixes dragging
a horizontal Slider inside a Drawer on the left or right edge,
for example.
Task-number: QTBUG-66637
Change-Id: Ie3688744741378694f96abc608dad2630ecd1fb0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
As with other properties in QQuickPlatformMenu, ensure that we set the
relevant property on the internal QQuickPlatformMenuItem.
Task-number: QTBUG-66876
Change-Id: Ie37d874426200014ea3bb4045bc6b566422221de
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Respect fonts and palettes from :/qtquickcontrols2.conf, but don't
blatantly override the platform fonts and palettes with null values
if the fonts and palettes are not set in :/qtquickcontrols2.conf.
Even though fonts and palettes have technically same problem, testing
the system palette is hard with 5.11 since QQuickDefaultTheme is a
platform proxy theme and provides a custom system palette. It should
be possible to have tst_palette::systemPalette() in dev, though, where
we have removed the inheritance between QQuickTheme and QPlatformTheme.
Task-number: QTBUG-66430
Change-Id: I6dfe678ccdc7e3990320c120612cfcc68723264d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When there's only one button in the dialog button box, the Default and
Universal styles resize the button to cover half of the button box.
This works in typical scenarios when the dialog button box is assigned
as a footer of a dialog, and thus, gets resized together with the
dialog. However, if the dialog button box is placed into a layout, or
otherwise not given an explicit size, the implicit size calculation
loops until it reaches zero.
1) button box gets the implicit size of the content (one button)
2) button box resizes the button to cover half of the box width
3) button box re-calculates its implicit size => step 1
Avoid the problem by providing a reasonable hard-coded implicit size
for this special case.
Notice that this is just a temporary workaround to avoid the problem.
This can be fixed properly in dev by providing separate contentWidth
and contentHeight properties that cleanly propagate the content size
to QML.
Task-number: QTBUG-59719
Change-Id: I552e0824ae6bff26b570c699252a3e4f09bd3397
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test fails with the Fusion style and a static build on Linux.
Even if either "dx" or "dy" is defined as 0, TestCase::mouseDrag()
drags _at least_ the distance of QStyleHints::startDragDistance() in
_both_ directions. Therefore, if we start the drag from the vertical
center of the control, a horizontal drag may end below the control
and then SwipeDelegate considers the swipe canceled.
Change-Id: Ib735ebeb2184d095dfaf0a4c3bdff0bead4bdbd6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Same as a1eaa30b for tst_switch. Use the correct coordinates for the
middle of the switch. Otherwise this test fails in static builds.
Task-number: QTBUG-62241
Change-Id: Ic99babac5c41f5130931790d8cd984fac72cb785
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
| |
Reset QT_QUICK_CONTROLS_CONF when appropriate, and add some tests
too since the environment variable is now public and documented.
Change-Id: I09fba950de7c34f22c4cf802ea5c0a337c84f0bd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
Cleanup global static data in QQuickStyle when the controls plugin is
unloaded (qmlClearTypeRegistrations()). This ensures that the style is
resolved as appropriate when the controls plugin is reloaded.
Change-Id: Icebb835e057e6063e4fc0ca035c6836560bc7c14
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: Iebc19620b34d9a8a7cc954c9486b739eed1de4a4
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
| |
Change-Id: Ic63b9c17318b357f4f34a5c49ff3d27bb438856c
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-51321
Change-Id: I169491d3e04f3ce015f5a999935f45ec02b1b5ae
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I837f6991f5a3b66e3ded9e1408656013a0803d8f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I0f48ef8bbf0cb7567796dc67f1030d274f684d67
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I3cbd5aa20f48051ab80cf7e83661f17010129450
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| | |
Change-Id: I2934d3f51fea9626fd2d2512786eb297d9f7fe6c
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
Change-Id: Ia407f277cccfdd96242ebfdbe294d699e26e6b1d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog][Controls][Control] Fixed focus scope controls to respect
wheel focus policy.
Task-number: QTBUG-66133
Change-Id: If963feba4b6e59b87ca54af5f6606805093eb0cc
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a popup closes, if it has active focus, it should restore focus
back to where it was regardless of whether the popup originally
requested focus. Even if a popup does not request focus on open, it
may gain focus programmatically or when a control with click-focus is
clicked, for example.
Task-number: QTBUG-66113
Change-Id: I9a7c467abe781bbef390d74898d13b9a30b2695b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If a focus scope explicitly requests click focus, make it gain active
focus by clearing the sub-focus child.
Pane {
focusPolicy: Qt.ClickFocus
TextField { }
}
[ChangeLog][Controls][Control] Fixed focus scope controls, such as
Frame, GroupBox, Page, and Pane, to respect click focus policy by
clearing a potential sub-focus child. This makes it possible to close
the virtual keyboard by clicking the background of a Pane that has
Qt.ClickFocus set as its focusPolicy, for example.
Task-number: QTBUG-66133
Change-Id: I582f3c66aa6f11e229d89c4f610fae3c6259104d
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-65193
Change-Id: Idff23dcc35f3c3fe41406678613b022098149318
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I7c0333dbf959124f6cf5be7837a305b65c08d290
|
| |\|
| | |
| | |
| | | |
Change-Id: I697f98d5214f487c915032d744ec593da05368a8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Unlike other delegates, such as background and contentItem, popup is
not unconditionally executed upon component completion. For performance
reasons, its execution is delayed until the popup is needed, that is,
the popup is accessed or shown.
When the popup is accessed, we use the current completion status via
isComponentComplete() to determine whether its execution must be
completed immediately, or if we can wait until componentComplete().
However, if the popup was accessed while the combobox itself was being
completed (used in ComboBox's bindings), the popup was never completed
because isComponentComplete() was still returning false even though the
popup was actually being indirectly accessed from componentComplete().
A simple execution order change, to complete the combobox itself before
the popup, fixes the problem.
Task-number: QTBUG-65962
Change-Id: I4764eb7e273e7f6fa1dab1a65a02b87722ee7cba
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-65880
Change-Id: Ic4f9fb087f4a78bd4c6257828011240186b6b22e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
platforms
The LinuxQEMUarm64GCC and LinuxQEMUarmv7GCC CI platform fails because they
use QT_QPA_PLATFORM=offscreen, and grabToImage() doesn't work on
offscreen platforms.
Task-number: QTBUG-63185
Change-Id: Ifac43dfa26182e3b518397fa070bb4d4a62114e0
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|