| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Ibf7cf09570e73ad2f314e9ce7acf1c766ac3f332
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If closePolicy of Popup is set to CloseOnEscape and the Popup is
completed, shortcut will register to QGuiApplication to let Popup
respond to Escape key. However if Popup is set to visible in creation,
even if we set closePolicy to CloseOnEscape, the shortcut won't be
registered.
[ChangeLog][Controls][QQuickPopup] Fixed the issue that Popup doesn't
respond to CloseOnEscape if the initial value of visible is true
Fixes: QTBUG-79326
Change-Id: I90c6805e2b4d567a6e0d33d43a75fedcfc5416b3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
SplitView's contentItem is lazily created whenever contentItem() is called.
When adding regular, standalone items, they will go through
QQuickContainer::addItem(), which eventually calls contentItem(). This case
works fine.
Repeaters, on the other hand, call setTransparentForPositioner(true), which
QQuickContainerPrivate::contentData_append() checks for, and instead of calling
addItem(), reparents the Repeater to effectiveContentItem() with this line:
item->setParentItem(effectiveContentItem(p->contentItem));
If this happens before the contentItem is created, then the Repeater has no
parentItem and won't generate any items. So, instead of using the contentItem
member directly, call contentItem() to create it if it doesn't exist.
Fixes: QTBUG-79302
Change-Id: I258f7420d2fea843ed045d569f80e92fe1f507d2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I5da24592eb292ef4f430d734fec234166ce6e1e3
|
| |
| |
| |
| |
| |
| |
| | |
These make debugging SplitView issues very confusing.
Change-Id: Iea09bd5339044ac330188233286acc695e335283
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When adding new MenuBarItem to MenuBar, MenuBar will first check the
Menu pointer in MenuBarItem and then connect the Menu's signal [aboutToHide]
to MenuBar's slot [onMenuAboutToHide] to unhighlight the MenuBarItem.
In case of adding dynamic Menu, this operation will be performed before
setting new Menu to MenuBarItem. So the Menu pointer in MenuBarItem is
null, and the connection will not be performed.
[ChangeLog][Controls][QQuickMenuBar] Fixed issue with dynamically menu bar
items not losing their highlight when their menu was dismissed.
Fixes: QTBUG-77306
Change-Id: Ibe987462505f65747b4290b3c206e9dfbcbbef57
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I42b6a7050886f795e267893aa5eeaaf7a5841971
Fixes: QTBUG-79370
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Check for -1 when calling handleIndexForSplitIndex().
Change-Id: I81021b64265ace0c47269ea54e538a2725c84b79
Fixes: QTBUG-79270
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I0b00323007dc02adf98dc581e2694e44b298da29
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was commented out but should have been #ifdef'd, and the explanation
is wrong.
This amends 83fbf44.
Change-Id: Ibe752d63a42805361b13edc6beafcf1f3738f02f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
This amends c18c7bd7f9596e5ad3d13876a91203e1ceba2544.
Change-Id: I29b48d9c8e5889bb67ea3cbc14821b5621868b6f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Consider the following changes in source:
normal.png => press.9.png => normal.png => focus.png
If the last two events happen quickly, pixmapChange() can be called
twice with no call to updatePaintNode() inbetween. On the first call,
resetNode will be true (because ninePatch is not null since it is still
in the process of going from a 9-patch image to a regular image),
and on the second call, resetNode would be false if we didn't have this
check. This results in the oldNode never being deleted, and QQuickImage
tries to static_cast a QQuickNinePatchImage to a QSGInternalImageNode.
Only change resetNode when it's false; i.e. when no reset is pending.
updatePaintNode() will take care of setting it to false if it's true.
Change-Id: I614c172c3e24fda2506f081f8fcdb6acd1c65fb8
Fixes: QTBUG-78790
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I53fc18c168daff6dfb504e5a64e20570de7d24ac
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickPopup connects its parent item's (MouseArea, in this case)
windowChanged() signal to QQuickPopupPrivate::setWindow(). It does this so
that:
1) QQuickOverlay can keep track of all of the popups that it manages.
2) Fonts, palettes and locales can be resolved.
3) If the QQuickPopup component has completed loading and the popup is visible
with a valid window, start the enter transition.
The problem arises only when using a very specific item hierarchy:
Window {
width: 640
height: 480
visible: true
Item {
anchors.fill: parent
Item {
anchors.fill: parent
ColorOverlay {
source: parent
anchors.fill: parent
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
ToolTip.visible: containsMouse
ToolTip.text: "ToolTip text"
}
}
}
}
When the window is closed and hence begins to be destroyed, the following events occur:
- QQuickWindow's destructor is called.
- The window's root item (QQuickRootItem) begins destruction.
- QQuickOverlay is destroyed.
- QQuickWindow's destructor is done, so the QWindow and then QObject
destructors are called.
- The QQuickItem destructor for the outer Item is called.
- The child items of the outer Item have setParentItem(nullptr) called on them,
one of which being the inner Item.
- The inner Item's setParentItem() function calls derefWindow(), which in turn
calls derefWindow() on its children. One of those children is MouseArea.
- Since the MouseArea's window is deref'd, it emits the windowChanged() signal.
MouseArea is the parentItem of the popup, so its windowChanged() signal
causes QQuickPopupPrivate::setWindow() to be called.
- setWindow() tries to remove the popup from the old overlay, which has already
been destroyed.
One approach I tried involved using QQuickOverlay::itemChange() to remove all
of the popups (via setWindow(nullptr), to ensure that their window pointer is
nullified), since that was called much earlier than the windowChanged() signal
is emitted. However, this still resulted in a heap-use-after-free in the same
place when running the newly added setOverlayParentToNull() test.
I also tried removing the popups in QQuickOverlay's destructor, but this
resulted in another heap-use-after-free (when accessing a popup in the
destructor) in tst_QQuickPopup::Universal::visible().
The remaining options were: store the window in a QPointer or return early in
overlay() if the wasDeleted member of the window was true. Using QPointer
seems like it would catch more issues than a single check in overlay(), so I
went with that.
Fixes: QTBUG-73243
Change-Id: Ieb5ce26dd76d45771d28297031ec43e27d958b5b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
by applying the passed timeout value prior to re-starting the timer
Change-Id: I27953dbb4781b5cb0c2039d56faa56f3c000206f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use the position of the item and the currentItem in the calculation
in order to get reliable results. This fixes the displacement being
off by a small margin, which increased as the delegate height became
smaller.
Fixes: QTBUG-66799
Change-Id: Ieca5033fb4c0ed62f5965a21fcab7aa558bd40e6
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I34f3fa5e3cd2ebb0ed8f7d4e6d5ed6f66422a48d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the x/y position of background depends on the height/width of
background and these values are not constant, the if statement in
the method resizeBackground() will always pass. And since
`resizingBackground` guard wasn't checked, any geometry change
will always call resizeBackground() and then call
themself recursively (via the change listener),
that means the height/width of background will
always be reset, no matter what value you set.
Another part of the issue was in determining the extra bits too late:
in case the background gets parented by the flickable, the new child
caused the flickable to re-calculate its metrics and thus resize
the background *prior* to remembering if it has w/h set.
As a side effect, this fix also brings the possibility to reset
previously set w/h to get the default background sizing behavior.
Inspired by da06da57002b64cf4bcde0ca708b3275a5f919ae
[ChangeLog][QtQuick][QQuickTextArea] prevent changing size
of background recursively in construction
Fixes: QTBUG-76369
Change-Id: Ide51ec1ebab63605ae3bfcc10a76a28be960ef36
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit da06da57002b64cf4bcde0ca708b3275a5f919ae.
Reason for revert: the change removes symptoms leaving a cause unfixed
Change-Id: I0a91409230c521da73ed53e2a00a4ccd8dca7335
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-78261
Change-Id: I5373ffbb21f70f4fc9f18a7574165f383f55d899
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The actual names of the components are MonthGrid and WeekNumberColumn,
not AbtractMonthGrid and AbstractWeekNumberColumn. We should at least
accept the real names.
Fixes: QTBUG-78470
Change-Id: I01bf7174fd0c790b3b24d867bc823651fbdbe8c7
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I60cfd7fbece6d34349767d13d376b7494eb525b2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When calling QQmlEngine::retranslate() after component completion,
buttons in a DialogButtonBox were not being retranslated.
For now the only way to be notified of language change events
is by installing an event filter on the application, but in
the future we can use the solution to QTBUG-78141 instead.
Change-Id: Ibc435c3829945489adcbaa8a813013fe735a9c38
Fixes: QTBUG-75085
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: Ifa88045268cdaa1adc0b1e206d5e20a3721d3837
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
when the property has not been set explicitly,
the resolved mask must not contain a respective bit set either
Change-Id: Iab0bd600b5bf458e26ed4601d4d2f608021f1518
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Slider was incorrectly used in a03b6fec6.
Change-Id: Ib76172f9ea0dca3b776a74df2329bd63c72f8517
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: Ie9314e1a5daa20cee9d95a3c42873dbe515b3333
|
| |\|
| | |
| | |
| | | |
Change-Id: I859406dc779e59ee5d8e2980e04f8be28b1a69aa
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Although it's not ideal to add arbitrary delays to tests, it does
reflect a more realistic testing environment, and more importantly,
seems to fix the flakiness on OpenSUSE.
(cherry picked from commit 97fc102cd079f32cc1a4f00a764ceea981699fc0)
Fixes: QTBUG-77946
Change-Id: I2998611759106386091d7375b31e56523c95371f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I629cb2b733de2e5533d8ba9f1665d14f542979b9
|
| |\|
| | |
| | |
| | | |
Change-Id: Ib1c507845cae7f354fe5a5fb9d71ee6963949bd0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the x/y position of background depends on the height/width of
background and these values are not constant, the if statement in
the method resizeBackground() will always pass. And since a change
listener is set before calling setHeight()/setWidth() in background,
these two method will always call resizeBackground() and then call
themself recursively, that means the height/width of background will
always be reset, no matter what value you set.
[ChangeLog][QtQuick][QQuickTextArea] defer adding change listener and
prevent changing size of background recursively in construction
Fixes: QTBUG-76369
Change-Id: I2ec37cad7f35cb1c756276326fe69e860c6b8de5
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: Ic804e1279f39b1bc09f9d45b2b3415067854ec09
|
| |\|
| | |
| | |
| | | |
Change-Id: I8c038d287f066f2935ba0bceef5dd078704fd276
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These tests where failing sometimes in our CI, because centerOnScreen()
was invoked which asks the window manager to move the window, but does
not wait for the event's completion. The solution is to do all that
*before* the initial qWaitForWindowActive().
Fixes: QTBUG-73128
Change-Id: I06c1f85d5ff9657dccab50f29084f7624cd7e194
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I76bfa11f39261e03b52ad237a09ff623bc865e0f
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog][QtQuick][QQuickComboBox] countChanged signal now will be
emitted when a new model is set to the ComboBox
Fixes: QTBUG-75972
Change-Id: Ic26718453ba06ba284ac5903fc6f55ddf3523331
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
Change-Id: Ib55ecb95e5ae47cc7a46f136a2f2eb158676ea34
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
tests/auto/accessibility/tst_accessibility.cpp
Change-Id: I0bc187e2a8edb4e357c1bf114dd9b1977d5c1e45
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: If4f3dca99638015b479509e4aa73e0190b1182ac
Task-number: QTBUG-67343
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: QTBUG-76356
Change-Id: I8f8e8331adbe741be2c893f2140d793d1b901434
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Otherwise we cannot interpret them as the original key sequence anymore.
When passing them on they are interpreted as the number key that
represents the numeric value of the key sequence enum.
Change-Id: Idd94ef95bc693cb6d51162dd1994adc953b52e25
Fixes: QTBUG-75572
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of casting to int and back to enum, just use the enum directly.
Change-Id: Ifbd6a74ee499ffaeb99b0b4274cd59365833bfbd
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Current behavior is to always decrement the currentIndex when the current item
is removed -- even when the current item is item 0. This means, for example,
that in a TabBar with three tabs and the first tab selected closing the first
tab will leave nothing at all selected.
Change behavior to keep currentIndex at 0 if there are still items left in the
container. Now closing the first tab will leave the next remaining tab selected.
Change-Id: If4e1903366e29fcee8226b776d5b2e03cec189df
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The important part of the "cascading" test is checking that the sub-sub
menu eventually opens, so move the !visible check to the non-cascading
branch of the if statement.
Change-Id: I5a09bf0b5d45832f7b75c3e8c397fdb9e6fcc011
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
BC file added.
Change-Id: I7aca8182bb24e0064d8b76e71ad7353a4988c2f7
Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A result of qtdeclarative d4d197d06279f9257647628f7e1ccc9ec763a6bb.
Following similar change in qttools 875a927b49b241e6a96f2c8aace8a9c69da04ce7.
Change-Id: I0f11dbf09ffa3aeb7395e7a8eb6a38bcc5f60133
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These tests have not failed on the removed platforms for at least 60 days
Task-number: QTBUG-76608
Change-Id: I0f49529cc567fcc8eaffbe06adb4b260cd1a9e06
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-76491
Change-Id: I2d141866c13046abaaa7eead1989372fa9fbc5de
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: I969e9957826a0e74650ae31b10cf8ca550f32891
|