qt5base-lts/tests/auto/widgets/kernel
Richard Moe Gustavsen b4981f9d4c Widgets: change QWidget::setTabOrder to understand compound widgets
A "compound widget" is a widget that has a focus proxy set to an inner
child. This is normal for complex black-box components where focus handling
is delegated to the children. Since the compound can have several
children, a local tab order might exist between them.

The current implementation of setTabOrder had no idea about
compound widgets. As such, when connecting two compounds in the
tab chain, it would just break up their inner tab order and
cause tabbing to ignore children other than the proxy.

The new implementation recognizes compound widgets, and add some
extra code to figure out the correct tab targets. This way, the
local tab order between the children will be preserved.

This implementation was inspired by the patches of Marek Wieckowski posted
in the linked bug report, and later modified by Nikita Krupenko.

[ChangeLog][Widgets] QWidget::setTabOrder() will now preserve the local
tab order inside a widget if it has a focus proxy set to an inner child.

Task-number: QTBUG-10907
Change-Id: I0673d39d70ec8c6bf64af30bf978d67c651b2f3c
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-10-04 11:27:18 +00:00
..
qaction testlib: add key sequence function 2017-06-22 07:56:18 +00:00
qactiongroup Updated license headers 2016-01-21 18:55:18 +00:00
qapplication Convert features.wheelevent to QT_CONFIG 2017-06-28 16:15:09 +00:00
qboxlayout Merge remote-tracking branch 'origin/5.6' into 5.7 2016-09-28 11:51:35 +02:00
qdesktopwidget Updated license headers 2016-01-21 18:55:18 +00:00
qformlayout QFormLayout: take the correct row in takeRow() 2017-02-08 11:01:31 +00:00
qgesturerecognizer Move QGestureRecognizer test to widgets/kernel 2017-06-02 18:36:11 +00:00
qgridlayout Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-29 00:38:01 +02:00
qlayout tests/auto/widgets: use QCOMPARE(., nullptr) 2016-11-30 07:24:47 +00:00
qshortcut Deprecate QString::null 2017-03-12 17:41:16 +00:00
qsizepolicy QSizePolicy: inline toControlTypeFieldValue() 2017-02-27 23:09:27 +00:00
qstackedlayout Plug memleaks in tst_QStackedLayout 2017-01-14 18:17:47 +00:00
qtooltip Updated license headers 2016-01-21 18:55:18 +00:00
qwidget Widgets: change QWidget::setTabOrder to understand compound widgets 2017-10-04 11:27:18 +00:00
qwidget_window Merge remote-tracking branch 'origin/5.9' into dev 2017-08-31 14:31:31 +02:00
qwidgetaction Updated license headers 2016-01-21 18:55:18 +00:00
qwidgetmetatype Updated license headers 2016-01-21 18:55:18 +00:00
qwidgetsvariant Updated license headers 2016-01-21 18:55:18 +00:00
qwindowcontainer Make QPlatformSurface events work with QWindowContainer 2017-02-27 12:38:08 +00:00
kernel.pro Move QGestureRecognizer test to widgets/kernel 2017-06-02 18:36:11 +00:00