aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* QQuickPopup: fix focus when multiple popup exitingWang Chuan2019-11-252-0/+129
| | | | | | | | | | | | When a focused Popup exited, it will try to transfer focus state to next Popup in chain or other item. However if there is an unfocused Popup exiting simultaneously, the focus state will be transferred to unfocused Popup, and this will cause loss of focus state since an unfocused Popup won't transfer its focus state to next Popup(or item) Fixes: QTBUG-79464 Change-Id: Ic06bd5a3616c8afbce449266e6fc24d2d54059d9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* tst_dial: fix test_dragging afer mouseDrag() changesMitch Curtis2019-11-231-8/+14
| | | | | | | | | 02ffe50af41526f604ae61d41bf2150037d67473 fixed some incorrect behavior in mouseDrag() that these tests were unknowingly relying on. Fixes: QTBUG-80153 Change-Id: I486061cc7d7fe44ef7b9ff8924c711572a01e44a Reviewed-by: Liang Qi <liang.qi@qt.io>
* Attempt to stabilise tst_qquickpopup::closeOnEscapeWithVisiblePopup()Mitch Curtis2019-11-191-1/+2
| | | | | | | | | It's flaky on openSUSE. Whenever it would fail, the activeFocusItem was always null, so check for that before doing the key press. Change-Id: Ib31d4869902b40424b3994d1d468a3eace8847f0 Fixes: QTBUG-80164 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Make ToolTips wrapMitch Curtis2019-11-151-0/+22
| | | | | | | | Otherwise the text will go outside the window. Change-Id: I3d50a195b1ee6c9b5d49952ef6c49d17c61372fa Fixes: QTBUG-62350 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* SwipeView: fix issue where child items couldn't get focusMitch Curtis2019-11-151-0/+49
| | | | | | | | | Set the focus property of the contentItem (ListView) to the focus property of the SwipeView itself. Change-Id: Ic410f7fb8db9fbb758b956dfe07e1b4265f5f687 Fixes: QTBUG-62401 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14v5.14.0-beta3Qt Forward Merge Bot2019-11-0535-0/+0
|\ | | | | | | Change-Id: I4b970036bdb5d312b0dc5cb1bcbd8e161e3d4c7e
| * Run optipng on all imagesMitch Curtis2019-11-0435-0/+0
| | | | | | | | | | | | | | | | find . -name "*.png" -exec optipng -o 7 -strip all {} \; Change-Id: I2238b2dd38813d33ed48d79817f872f922cfa28d Fixes: QTBUG-79275 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-11-043-0/+101
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ibf7cf09570e73ad2f314e9ce7acf1c766ac3f332
| * QQuickPopup: try to grab shortcut when component completedWang Chuan2019-10-292-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: fix issue where Repeater items were not createdMitch Curtis2019-10-291-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-264-17/+169
|\ \ | |/ | | | | Change-Id: I5da24592eb292ef4f430d734fec234166ce6e1e3
| * tst_splitview.qml: remove unused SplitViewsMitch Curtis2019-10-241-17/+0
| | | | | | | | | | | | | | These make debugging SplitView issues very confusing. Change-Id: Iea09bd5339044ac330188233286acc695e335283 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * QQuickMenuBar: let MenuBarItem lose highlight when Menu is dismissedWang Chuan2019-10-242-0/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Fix tst_qquickpopup failure on Windows 7 MinGWMitch Curtis2019-10-231-0/+2
| | | | | | | | | | | | Change-Id: I42b6a7050886f795e267893aa5eeaaf7a5841971 Fixes: QTBUG-79370 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Fix assertion failure when hiding a SplitView with only one itemMitch Curtis2019-10-231-0/+16
| | | | | | | | | | | | | | | | Check for -1 when calling handleIndexForSplitIndex(). Change-Id: I81021b64265ace0c47269ea54e538a2725c84b79 Fixes: QTBUG-79270 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-126-7/+62
|\ \ | |/ | | | | Change-Id: I0b00323007dc02adf98dc581e2694e44b298da29
| * tst_qquickpopup: ignore ShaderEffectSource warning in debug buildsMitch Curtis2019-10-111-6/+8
| | | | | | | | | | | | | | | | | | | | 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>
| * Add translation auto test to auto.proMitch Curtis2019-10-111-0/+3
| | | | | | | | | | | | | | This amends c18c7bd7f9596e5ad3d13876a91203e1ceba2544. Change-Id: I29b48d9c8e5889bb67ea3cbc14821b5621868b6f Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| * Imagine: fix crash when switching between 9-patch and regular imageMitch Curtis2019-10-024-1/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-014-3/+169
|\ \ | |/ | | | | Change-Id: I53fc18c168daff6dfb504e5a64e20570de7d24ac
| * Fix a crash on exit when using ToolTip in a specific item hierarchyMitch Curtis2019-09-302-0/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * QQuickToolTip: fix setTimeout() behavior when tool tip is visibleKonstantin Ritt2019-09-271-0/+9
| | | | | | | | | | | | | | by applying the passed timeout value prior to re-starting the timer Change-Id: I27953dbb4781b5cb0c2039d56faa56f3c000206f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Tumbler: fix displacement calculation when wrap is falseMitch Curtis2019-09-241-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-243-35/+71
|\ \ | |/ | | | | Change-Id: I34f3fa5e3cd2ebb0ed8f7d4e6d5ed6f66422a48d
| * TextArea: prevent changing size of background recursivelyKonstantin Ritt2019-09-191-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Revert "QQuickTextArea: prevent changing size of background recursively"Konstantin Ritt2019-09-191-35/+0
| | | | | | | | | | | | | | | | | | 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>
| * Blacklist tst_focus::policy on OpenSUSE 15.0Mitch Curtis2019-09-131-0/+3
| | | | | | | | | | | | Task-number: QTBUG-78261 Change-Id: I5373ffbb21f70f4fc9f18a7574165f383f55d899 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | Fix calendar testsv5.14.0-alpha1Ulf Hermann2019-09-182-8/+9
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-116-10/+218
|\ \ | |/ | | | | Change-Id: I60cfd7fbece6d34349767d13d376b7494eb525b2
| * DialogButtonBox: fix standard buttons not being translatedMitch Curtis2019-09-114-0/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-09-081-1/+7
| |\ | | | | | | | | | Change-Id: Ifa88045268cdaa1adc0b1e206d5e20a3721d3837
| | * QQuickIcon: properly resolve implicit valuesKonstantin Ritt2019-09-061-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | tst_dial: fix copy-paste mistakeMitch Curtis2019-09-061-9/+9
| | | | | | | | | | | | | | | | | | | | | Slider was incorrectly used in a03b6fec6. Change-Id: Ib76172f9ea0dca3b776a74df2329bd63c72f8517 Reviewed-by: Liang Qi <liang.qi@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-062-3/+5
|\ \ \ | |/ / | | | | | | Change-Id: Ie9314e1a5daa20cee9d95a3c42873dbe515b3333
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-09-062-3/+5
| |\ \ | | |/ | | | | | | Change-Id: I859406dc779e59ee5d8e2980e04f8be28b1a69aa
| | * Fix flakiness in tst_qquickdrawer testsMitch Curtis2019-09-062-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-031-0/+35
|\ \ \ | |/ / | | | | | | Change-Id: I629cb2b733de2e5533d8ba9f1665d14f542979b9
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-301-0/+35
| |\ \ | | |/ | | | | | | Change-Id: Ib1c507845cae7f354fe5a5fb9d71ee6963949bd0
| | * QQuickTextArea: prevent changing size of background recursivelyWang Chuan2019-07-241-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-272-23/+23
|\ \ \ | |/ / | | | | | | Change-Id: Ic804e1279f39b1bc09f9d45b2b3415067854ec09
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-232-23/+23
| |\ \ | | |/ | | | | | | Change-Id: I8c038d287f066f2935ba0bceef5dd078704fd276
| | * Fix Flaky testsDimitrios Apostolou2019-07-222-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-132-0/+96
|\ \ \ | |/ / | | | | | | Change-Id: I76bfa11f39261e03b52ad237a09ff623bc865e0f
| * | QQuickComboBox: emit countChanged signal when model is updatedWang Chuan2019-07-112-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | [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>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-046-4/+11613
|\ \ \ | |/ / | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ib55ecb95e5ae47cc7a46f136a2f2eb158676ea34
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-07-045-4/+115
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/accessibility/tst_accessibility.cpp Change-Id: I0bc187e2a8edb4e357c1bf114dd9b1977d5c1e45
| | * Add a test for having a ShaderEffect as a delegateJan Arve Sæther2019-05-221-0/+58
| | | | | | | | | | | | | | | | | | Change-Id: If4f3dca99638015b479509e4aa73e0190b1182ac Task-number: QTBUG-67343 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Accessibility: Switch should have checkbox as roleFrederik Gladhorn2019-06-131-1/+1
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-76356 Change-Id: I8f8e8331adbe741be2c893f2140d793d1b901434 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Don't unnecessarily transform keysequences into stringsUlf Hermann2019-05-161-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * tst_accessibility: Simplify role verificationFrederik Gladhorn2019-05-141-50/+50
| | | | | | | | | | | | | | | | | | | | | 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>