summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Liang Qi2018-08-161-0/+6
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-08-161-0/+6
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qconfig-bootstrapped.h src/plugins/platforms/xcb/qxcbbackingstore.cpp Done-with: Gatis Paeglis <gatis.paeglis@qt.io> Change-Id: I4af138ffb2f5306373244523768209e8873b2798
| | * Make QMessageBox window with the detailed text closableAlexander Volkov2018-08-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QMessageBox window ignores QCloseEvent if it was created with Ok button and the detailed text was set. But it can be closed if it contains only one button. Make it closable if there are two buttons and one of them is the "Show Details..." button. [ChangeLog][QtWidgets][QMessageBox] A message box with two buttons, one of which is the "Show Details..." button, can be closed by clicking the X button on the window's title bar. Task-number: QTBUG-69526 Change-Id: Iba09e38561eb3898dc2aecfd38d8519d512a71c1 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Add debugging output to help diagnose cause of tst_qspinbox failureMitch Curtis2018-08-161-0/+7
|/ / | | | | | | | | | | | | | | | | | | | | | | | | I've tried to reproduce the failures in the CI a couple of times now, but it keeps passing. Let's leave some debug output in the test so that if/when it does fail, we might know a bit more about why it does so. Task-number: QTBUG-69492 Change-Id: I5b39ac692e9026ce4b25cd13d342b11e061b777b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Nathan Collins <nathan.collins@kdab.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | tst_qmenu: Fix funky use of QTRY_VERIFY with qWaitForTor Arne Vestbø2018-08-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The QTRY_VERIFY was needed because the window doesn't initially have a handle, and QTest::qWaitForWindowActive(QWidget *) only checks the active state of the widget if it does, returning false if not. This broken logic should be fixed, but for now let's make it clear what's actually going on by using an explicit wait for the window handle. Change-Id: I6dd89e0894efed14f4b9a2562dfe8ca76b5ef89c Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | tests: blacklist tst_qwidget::saveRestoreGeometry on xcbGatis Paeglis2018-08-081-0/+1
| | | | | | | | | | | | | | | | | | This test was un-blacklisted in 4050ee6ac7da0e5e7414c699c3cd4e26193c653d but apparently it is still not stable. Task-number: QTBUG-69666 Change-Id: Iaf933ee27d54ebbfa52d0a8d7b1def0ca91808e7 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* | tst_qspinbox: include actual emission count in failure messageMitch Curtis2018-08-071-1/+2
| | | | | | | | | | | | | | | | | | | | It's useful to know how many times the signal was emitted, because it gives us insight into why the test may have failed, especially when it's difficult to reproduce. Task-number: QTBUG-69492 Change-Id: I94796ed880512b060e0a724c87edde8c3b91bb7c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | tst_qdatetimeedit: call setCalendarPopup(false) when cleaning upMitch Curtis2018-08-071-0/+2
| | | | | | | | | | | | | | | | | | | | Tests could change this property, and since the majority of the tests share testWidget instead of creating local instances, we should be thorough when cleaning up. Change-Id: I6039fb6857f4f788f809b1d1fd491b4ef34923ca Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | tst_qdatetimeedit: hide testWidget when creating widgets on the stackMitch Curtis2018-08-071-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The majority of the test reuses testWidget. While this may be faster than creating a QDateTimeEdit instance on the stack for each test, it introduces issues when certain properties aren't unset when cleaning up. This happens easily when new tests are introduced which rely on certain properties, for example. Rather than making the newly introduced step-modifier-related tests use testWidget, this patch goes with the simpler option of hiding testWidget, just like other tests currently do. Eventually we should probably switch to using local instances everywhere. Task-number: QTBUG-69492 Change-Id: I4d5625be0b7c72db793346f43fe3a7e7c1241f13 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | winrt: Fix tst_QGraphicsItem::cursorOliver Wolff2018-08-061-15/+7
| | | | | | | | | | | | | | | | | | By making the test independent of fixed top level widget sizes, it can also be run on platforms, that do not support this feature. Task-number: QTBUG-68297 Change-Id: I6945d259801360a9819b9b631d0a7497d3d27a9a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | winrt: Implement QPlatformCursor::setPosOliver Wolff2018-08-062-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | Additionally to setting the cursor position we have to make sure that enter and leave events are triggered. As WinRT at the moment only supports maximized/fullscreen native top level widgets, an enter or leave event has to be triggered, every time the cursor enters or leaves the core window. Same as is done on Windows desktop an enter event is immediately followed by a move event even for emulated mouse events. Change-Id: I4b9a7b07f8e24b7887619f96979a064d933788aa Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | QHeaderView: respect min/maxSectionSize in setDefaultSectionSize()Christian Ehrlicher2018-08-041-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | The min/max section size was not checked when setting the default section size. This was an oversight when the check for min/max section size was added to resizeSection(). [ChangeLog][QtWidgets][QHeaderView] setDefaultSectionSize() now checks if the given value is inside min/max section size Task-number: QTBUG-69431 Change-Id: I1b5704282927ce5a8520f52174ebf91d9840bc8a Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* | Blacklist flaky tst_QSpinBox::stepModifierPressAndHold on OpenSUSETor Arne Vestbø2018-08-041-0/+2
| | | | | | | | | | | | Task-number: QTBUG-69492 Change-Id: Ic24bad5a6b0c085e82f95e0b418d4d57405de4ea Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge "Merge branch '5.11' into dev" into refs/staging/devEdward Welbourne2018-07-311-0/+12
|\ \
| * | Merge branch '5.11' into devEdward Welbourne2018-07-311-0/+12
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakebuiltins.cpp src/plugins/platforms/windows/qwindowstabletsupport.h src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/platforms/xcb/qxcbwindow.cpp src/widgets/styles/qstylesheetstyle.cpp tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp Done-With: Gatis Paeglis <gatis.paeglis@qt.io> Change-Id: I000b0eb3cea2a5c7a99b95732bfdd41507cf916e
| | * Reset geometry constraints when removing stylesheetSergio Martins2018-07-171-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CSS geometry constraints such as "min-height" or "min-width" will set size constraints on the widget. Removing the stylesheet should remove these constraints. Task-Id: QTBUG-69418 Change-Id: I1008e4390281c90112303d72dd7d59a8acddfcd9 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Extend blacklisting of showMinimizedKeepFocus to macOS 10.13Tony Sarajärvi2018-07-311-0/+1
|/ / | | | | | | | | | | Task-number: QTQAINFRA-1359 Change-Id: I5d291dcbb41ce71ec85e238b29bb98d292538f9f Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Fix compilation of tst_QGraphicsItem in Visual StudioOliver Wolff2018-07-261-1/+1
| | | | | | | | | | | | | | | | | | Visual Studio complained about the usage of a potentially uninitialized variable which made compilation fail. Change-Id: I0bc9d1e47d3b00b047912164c3bc4197a2058f85 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | Blacklist tst_QWidget_window::setWindowStateJoni Jantti2018-07-241-0/+2
| | | | | | | | | | | | | | | | This autotest fails on the new Ubuntu 18.04 platform. Task-number: QTBUG-68864 Change-Id: I799defcec3a41d86a604bfcd4c2e1081ae4e0e53 Reviewed-by: Simo Fält <simo.falt@qt.io>
* | Blacklist tst_QWidget_window::tst_resize_countJoni Jantti2018-07-241-0/+1
| | | | | | | | | | | | | | This autotest fails on the new Ubuntu 18.04 platform. Change-Id: I815e36f7a099ca4c83767c7a1adb0f87f5bff7b5 Reviewed-by: Simo Fält <simo.falt@qt.io>
* | Revert "Blacklist tst_QWidget_window::setWindowState"Joni Jäntti2018-07-241-1/+0
| | | | | | | | | | | | | | | | | | Wrong test was blacklisted for this commit. This reverts commit 85607bd70d28950c7e74aa4ab6751e6cd7d92348. Change-Id: Ica5272799afec88c05e2cd137835bcdcb587836e Reviewed-by: Simo Fält <simo.falt@qt.io>
* | Restore qlistview testing on LinuxEdward Welbourne2018-07-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | It might have been fixed in the three years since it was marked insignificant, and we can't investigate the crash while it's not tested. Task-number: QTBUG-50747 Change-Id: I99cdeb55e207d10fe524cd5f4868f042c64eb7d3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | Fix use of QTest::mouseMove() in widgets testsAndre de la Rocha2018-07-123-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixing some issues that could cause intermittent or environment-dependent failures. One kind regards the use of multiple QTest::mouseMove() calls in sequence internally using the QCursor API, causing timing dependent failures. Switching to the override that does not require the QCursor API, where possible. Other test could fail depending on the size of the screen. Change-Id: I4a368955ddbb48f729dcdf74c20eb163329936b2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Add QStyle::SH_SpinBox_StepModifier style hintNathan Collins2018-07-123-275/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows the developer to pick which keyboard modifier increases the number of steps a QAbstractSpinBox takes when the user interacts with it. The modifier can be either Qt::ControlModifier (default), Qt::ShiftModifier or Qt::NoModifier. Qt::NoModifier disables the step modifier. Note that on macOS, Control corresponds to the Command key. Holding the modifier increases the step rate when: - scrolling; - pressing the up/down keys; - pressing the spin box up/down buttons. [ChangeLog][QtWidgets][QStyle] QStyle::SH_SpinBox_StepModifier allows the developer to pick which keyboard modifier increases the number of steps a QAbstractSpinBox takes for the following interactions: scrolling, up/down keyboard keys and the spin box buttons. The Qt::ShiftModifier can now be used, or the feature can be disabled using Qt::NoModifier. Previously, only Qt::ControlModifier could be used as the modifier. Change-Id: Ib5518127e86a8f67798a9a1d6e860c6e35896e6f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | tests: port tst_QGraphicsProxyWidget to QTEST_QPA_MOUSE_HANDLINGGatis Paeglis2018-07-072-74/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and various other cleanups. This patch re-factors tests that relied on QCursor API (directly or indirectly via QTest::mouseMove widget overload) to use the QTEST_QPA_MOUSE_HANDLING code path. Misuse of QCursor API causes tests to be flaky. Removed Qt::X11BypassWindowManagerHint as it is not really needed. Based on the comment where this flag is used, it would be needed for all test functions that use mouse events. That assumption is not valid. A window is expected to have received its final position when QTest::qWaitForWindowActive() returns. There were issues with this on Unity, but those have been fixed. Un-QSKIP-ed QTBUG_6986_sendMouseEventToAlienWidget for Q_OS_WIN. Un-QSKIP-ed hoverEnterLeaveEvent for all platforms. Un-QSKIP-ed bypassGraphicsProxyWidget for Q_OS_MAC and Q_OS_WIN as the test passes on those platforms. According to QTBUG-33067 it used to crash with 5.2.0. Removed unnecessary mouseMove() and stray mouseRelease() in mouseDoubleClickEvent(). Removed unnecessary show()/setVisible() on items that are being added to the scene - items are visible by default. Among other randomly spotted issues, one worth mentioning is that when adding items to the scene after the view is already shown, we need to ensure that the scene is updated (e.g QSignalSpy + QGraphicsScene::changed) before interacting with it. As an example, mousePressReleaseEvent() only passed because of random luck that the invalid coordinates were still within the bounding rect of the button. This patch does not attempt to cleanup all instances of this anti-pattern. Task-number: QTBUG-52546 Task-number: QTBUG-26948 Task-number: QTBUG-33067 Change-Id: I2ccbc004c1cb4f5b31c70c8568ee591c458d8446 Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-07-026-12/+122
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qnsview.mm src/plugins/platforms/cocoa/qnsview_dragging.mm src/plugins/platforms/ios/qiosinputcontext.mm src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/platforms/xcb/qxcbwindow.cpp src/tools/androiddeployqt/main.cpp Was moved from qttools into qtbase in 5.11. So re-apply 32398e4d here. tests/auto/corelib/global/qlogging/test/test.pro tests/auto/corelib/global/qlogging/tst_qlogging.cpp tests/auto/corelib/io/qfile/tst_qfile.cpp tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp tests/auto/corelib/thread/qthreadstorage/test/test.pro tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp tests/auto/widgets/kernel/qapplication/test/test.pro Done-with: Gatis Paeglis <gatis.paeglis@qt.io> Done-with: Mårten Nordheim <marten.nordheim@qt.io> Done-with: Oliver Wolff <oliver.wolff@qt.io> Change-Id: Id970486c5315a1718c540f00deb2633533e8fc7b
| * Return a correct filter from QFileDialog::selectedMimeTypeFilter()Alexander Volkov2018-06-271-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QFileDialog::selectedMimeTypeFilter() returns either an empty filter in the case when a platform file dialog doesn't implement mime type filters, or initiallySelectedMimeTypeFilter() in the case of Qt's file dialog. In both cases the result is incorrect. Make it return a mime type filter corresponding to a selected name filter. As a result, tst_QFiledialog::setMimeTypeFilters() has to be fixed: QFileDialog::selectMimeTypeFilter() can't select a name filter for an invalid mime type, and "application/json" is not supported by RHEL 6.6, so replace it by "application/pdf". Change-Id: I58d3be860a9b5e8a72cba86d74b520178115a812 Reviewed-by: David Faure <david.faure@kdab.com>
| * Android: Blacklist various cases in tst_QLineEditMårten Nordheim2018-06-261-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-69111 Task-number: QTBUG-69112 Task-number: QTBUG-69113 Task-number: QTBUG-69114 Task-number: QTBUG-69115 Task-number: QTBUG-69116 Task-number: QTBUG-69118 Task-number: QTBUG-69119 Change-Id: I424cb472e97bd427e800ee230e0e57d763d1b8a6 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
| * Android: Blacklist a few cases in tst_qgroupboxMårten Nordheim2018-06-261-0/+13
| | | | | | | | | | | | | | Task-number: QTBUG-69084 Task-number: QTBUG-69083 Change-Id: Icf218795f81f01a559094cf2088f53a9fd597c24 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
| * Android: Blacklist tst_qframe::testPaintingMårten Nordheim2018-06-261-0/+3
| | | | | | | | | | | | | | | | It causes most of the fails seen on Android. Task-number: QTBUG-69064 Change-Id: I2f97fea41ee78e7962b8c34ed996bbe4bcb88732 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
| * Make tests compile for AndroidLiang Qi2018-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This only enables compilation, it doesn't fix any test. Qt on Android supports process, but not TEST_HELPER_INSTALLS. See also acdd57cb for winrt. android-ndk-r10e is used to compile, see http://doc-snapshots.qt.io/qt5-5.11/androidgs.html . corelib/io/{qdir,qresourceengine} need to be fixed later. Done-with: Frederik Gladhorn <frederik.gladhorn@qt.io> Done-with: Mårten Nordheim <marten.nordheim@qt.io> Change-Id: I34b924c8ae5d46d6835b8f0a6606450920f4423b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * QHeaderView: Send the StatusTip events to itself if there is no parentAndy Shaw2018-06-141-2/+63
| | | | | | | | | | | | | | | | | | | | If there is a parent (typically an itemview) then StatusTip events should be sent to that. However in the case of there not being a parent then the event should be sent to the QHeaderView itself. Task-number: QTBUG-68458 Change-Id: I2a8c11c973210c7adf1bf29443f224f968a357a9 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | tst_QMenu: Skip tests when window activation is not supportedJohan Klokkhammer Helsing2018-06-291-0/+18
| | | | | | | | | | | | | | | | Makes sure the tests are skipped on Wayland. Task-number: QTBUG-62188 Change-Id: Ia50d6cc02fbbac0fb6b77a16eb6372c1adb422d8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | QIntValidator: Intermediate for number if digits equal or less than maxTuomas Heimonen2018-06-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Input value which is over the highest acceptable value, but consisting of a number of digits equal to or less than the max value should be considered intermediate. [ChangeLog][QtGui][QIntValidator] Input value with over the highest acceptable value, but with equal or less amount of digits than the maximum value is now considered intermediate. Task-number: QTBUG-59650 Change-Id: I71a77c9c266f0f3b62c71ac6cb995019385c1cf5 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Remove leftovers of wincmdline test from test's .pro fileOliver Wolff2018-06-281-4/+1
| | | | | | | | | | | | | | The test and its helper were removed some time ago. Change-Id: Id82a2a1bf829f272e9c1447e697935934c923092 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | tst_qapplication: Fix execution for WinRTOliver Wolff2018-06-284-43/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not putting executables into debug/release subdirectories leads to the WinRT AppxManifest being overwritten by the wrong configuration. When Qt is configured with -release for example, it was possible that the debug manifest (Manifest files are always created next to the target) is written last and thus contains debug VCLibs as a dependency. Additionally the test was changed in that way, that the resulting file system structure (having helper and test application in a "top level" debug and release folder) is the same structure as in tst_qobject. Change-Id: I017b501506c54c4b89773d2b949c097598bc7049 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QTableView: update editor geometries directly after scrollbars are adjustedChristian Ehrlicher2018-06-281-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QTableView::doItemsLayout() updated the scroll offset for the vertical header after layouting was done. Since the scroll offset affects the viewport of the editors, the adjustment was done too late. Therefore we update the scroll offset right after the scrollbars are set inside QTableView::updateGeometries() [ChangeLog][QtWidgets][QTableView] Fixed calculating geometries for editors Task-number: QTBUG-48244 Task-number: QTBUG-49548 Change-Id: I3b057764cf99d42d861928a1c73277d34b440f9a Reviewed-by: David Faure <david.faure@kdab.com>
* | winrt: tst_qdoublespinbox: Remove QEXPECT_FAIL for editingFinishedOliver Wolff2018-06-261-7/+0
| | | | | | | | | | | | | | | | Behavior has been fixed. Task-number: QTBUG-68297 Change-Id: I217fffc3c9a189d48e673356b1123f9eda8af94a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | xcb: rely on WM_SIZE_HINTS gravity to handle x,y positioningGatis Paeglis2018-06-261-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original code was added by b316c3ac5e4acac75505bfd77677cecc181599a (in 2012). This patch changes two things: 1) We now rely on WM to position a window based on the set gravity. It should not be necessary to calculate coordinates manually as was done in windowToWmGeometry(). We don't even know the decoration size before the window is mapped. 2) We now update gravity whenever needed instead of hardcoding based on what Qt APIs (setGeometry vs setFramePosition) where used to set the initial window position. The patch from b316c3a says: "Determine gravity from initial position. Do not change later as it will cause the window to move uncontrollably" Since it did not elaborate on the situation, we can only assume that it was caused by another bug in Qt at the time or perhaps a broken WM. From [1]: "Applications are free to change their win_gravity setting at any time. If an Application changes its win_gravity then the Window Manager should adjust the reference point, so that the client window will not move as the result." Tested on Ubuntu/Unity, KDE/KWin, Gnome-shell/Mutter, Lubuntu/OpenBox. Works as expected everywhere expect Unity. Unity seems to ignore XCB_GRAVITY_STATIC and treats it as XCB_GRAVITY_NORTH_WEST, which means that setGeometry/setFramePosition produce the same placement on this WM (the behavior was the same also before this patch). P.S. Also renamed xRect -> rect, which was a leftover from ae5f2a66720a4bb22c120bd7d1564652cac00367 With this change we can un-blacklist QWidget save/restore geometry auto tests. [1] https://specifications.freedesktop.org/wm-spec/latest/ar01s09.html Task-number: QTBUG-66708 Change-Id: I381eef5d34dddb04de16a897ce5540b9c430b216 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* | tests: un-blacklist tst_QSizeGrip::hideAndShowOnWindowStateChange on xcbGatis Paeglis2018-06-251-2/+0
| | | | | | | | | | | | | | | | According to local testing and Grafana statistics for the period of the last 1 year, this test has not been failing on XCB. Change-Id: I86640b22c9e7a258965805a661e1e8c3ead8d012 Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
* | tests: un-blacklist tst_QGestureRecognizer::panGesture on xcbGatis Paeglis2018-06-251-2/+0
| | | | | | | | | | | | | | | | According to local testing and Grafana statistics for the period of the last 1 year, this test has not been failing on XCB. Change-Id: Ia7fda4c42d4aeaecd4485d18383cf46bf6af63d1 Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
* | widgets: fix QWidget::save/restoreGeometry()Gatis Paeglis2018-06-253-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWidget::restoreGeometry() is calling QWidget::move() with restoredFrameGeometry, which internally calls setGeometry() and sets positionPolicy = QWindowPrivate::WindowFrameExclusive, which is invalid: restoredFrameGeometry is WindowFrameInclusive geometry. QPA plugins rely on correctly set policies when interpreting x,y. QWidget::move() was not designed for this AFAICT, so making it to accept frame geometry is no-op. It is widely used legacy code, changing it could cause regressions. Save/restore API was introduced in Qt 4.2, at that time we did not have APIs like QWindow::setFramePosition(), so its unclear why geometry() was not stored instead. The documentation also is somewhat unclear: "[..] save the geometry when the window closes [..]" Frame or client geometry? It does not specify. And from the code we see that frame geometry was passed as client geometry, not making the original intention clearer. Besides that, restoreGeometry() is full of other undocumented assumptions where to place windows and when to fail (fortunately its easy to write your own save/restore logic). Added a Qt 6 note in the source code. What this patch changes: Now we store geometry() in saveGeometry() and use that value in restoreGeometry() by setGeometry(). This does not cause any behavior difference in window positioning (tst_QWidget::saveRestoreGeometry still works). Geometry restored from data saved with earlier versions of saveGeometry() might be positioned at: x + leftMargin, y + topMargin. This patch makes tst_QWidget::saveRestoreGeometry to always fail instead of being flaky. Blacklisting for XCB instead of selected distros. Also enabled excluded code paths for XCB on tst_QDockWidget::restoreDockWidget(). It does not seem to be flaky, maybe it was in 2015, but lot of things have changed since then. Task-number: QTBUG-66708 Change-Id: Ic86a6fd091e2c71b7550b2f476386da704253cd4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | widgetwindow: send DragMove for every DragEnterGatis Paeglis2018-06-251-0/+2
| | | | | | | | | | | | | | | | | | | | ... as specified in the documentation. This was a regression from Qt4 and can cause mouse cursor flickering durig dragging on e.g. custom widget where some areas of the widget do not accept drag-and-drop. Task-number: QTBUG-67155 Change-Id: Iaa6f9407181931ed8e3d6a8fec13fd59d3c8625d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | dnd: send DragEnter and DragMove on DnD startGatis Paeglis2018-06-251-0/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a regression from Qt4 and also is the documented behavior. In addition this patch fixes various issues with cursor shape updating that were discovered along the way and that are necessary for testing the new changes. The code in QGuiApplicationPrivate::processDrag() also needed a fixup, particularly the resetting of QGuiApplicationPrivate::currentDragWindow. Without this fix we would get DragMove (the one that immediately follows the DragEnter) only for the first DragEnter event. For example when dnd starts on mouse press then for mouse click we would get: <click> DragEnter->DragMove->DragLeave <click> DragEnter->DragLeave but the expected is: <click> DragEnter->DragMove->DragLeave <click> DragEnter->DragMove->DragLeave Task-number: QTBUG-34331 Change-Id: I3cc96c87d1fd5d1342c7f6c9438802ab30076e9e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QListView: do not delete item on internal moveChristian Ehrlicher2018-06-221-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When an internal DnD occoures in IconMode, the item is moved to it's new place but the logic in filterStartDrag() has no clue about the fact that an internal move happend. Therefore the item gets deleted. Fix it by changing the event's drop action to Qt::CopyAction to avoid the deletion as it is done within QListWidget DnD code. [ChangeLog][QtWidgets][QListView] Do not delete item on internal move. Task-number: QTBUG-67440 Change-Id: I873d3c9fa76e107e108d9af0dcf8cecd1e18a18f Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* | Fix tst_qtextbrowser for configurations with builtin testdataOliver Wolff2018-06-222-13/+25
| | | | | | | | | | Change-Id: I1dc17642934e8fd2d5e3b7f245e1fb0c26b8e75a Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: Make widgets/widgets auto tests passOliver Wolff2018-06-2224-2/+185
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I64d6e89e515a6284fbd8625cded22511de783481 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | winrt: make widgets/kernel auto tests passOliver Wolff2018-06-226-6/+125
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I96839927fd98e2c6e533a2a3587ae66e599ec8fc Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: Make itemview auto tests passOliver Wolff2018-06-229-2/+75
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I285dca678c34fd4170686635c7541e598442aa29 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: make dialog auto tests passOliver Wolff2018-06-224-2/+21
| | | | | | | | | | Change-Id: I2d31c2e9513944ba722b59ac69e91973a7aabba5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>