qt6-bb10/tests/auto/widgets/widgets
Laszlo Agocs 7c6625b105 Support mixing native child widgets with texture-based ones
Currently QOpenGLWidget and QQuickWidget do not support having native
child widgets inside the same top-level window. In some cases this is
inevitable, f.ex. multimedia may require native windows when used from
widget apps. winId() calls made for various (valid or invalid) reasons
are also problematic.

There are no blockers for supporting this setup, however. By storing
multiple texture lists (one for each subtree where the root is a
native widget), adding the missing markDirtyOnScreen calls, letting
each native widget access the correct texture list (i.e. the one
corresponding to its children) when they are (separately) flushed, and
fixing composeAndFlush() to take the update region and the (native
child) offset into account, it can all be made functional.

The change also fixes the issue of keeping GL-based compositing
enabled even after all render-to-texture widgets in the window become
hidden. Due to the changes of how such widgets are gathered,
composeAndFlush() is not invoked anymore when no such widgets are
discovered for a given native parent. This is great since having
compositing enabled infinitely is an issue for applications like Qt
Creator that implement certain views with QQuickWidgets but cannot
afford the cost of texture uploads in other places (e.g. for the text
editor) on slower machines.

The openglwidget manual test is greatly enhanced to test various
situations (MDI, scroll areas, tab widgets, QOpenGLWidget as native
child, QOpenGLWidget with non-tlw native parent, etc.)

Task-number: QTBUG-48130
Task-number: QTBUG-49172
Change-Id: Iad098359c8bcf749f01c050da0853415e1550eda
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-11-19 13:56:52 +00:00
..
qabstractbutton tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qabstractscrollarea
qabstractslider
qabstractspinbox
qbuttongroup tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qcalendarwidget
qcheckbox tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qcombobox Merge remote-tracking branch 'origin/5.5' into 5.6 2015-11-17 07:14:16 +01:00
qcommandlinkbutton tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qdatetimeedit QAbstractSpinBox::inputMethodQuery(): Consider input method hints set on the spin box. 2015-09-22 14:26:26 +00:00
qdial
qdialogbuttonbox tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qdockwidget QDockAreaLayoutInfo::updateTabBar(): Save and restore current index. 2015-11-03 16:18:27 +00:00
qdoublespinbox
qfocusframe
qfontcombobox
qframe Solid and gradients in high color accuracy 2015-04-10 09:15:59 +00:00
qgroupbox
qkeysequenceedit
qlabel tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qlcdnumber
qlineedit Merge remote-tracking branch 'origin/5.5' into 5.6 2015-10-23 23:14:22 +02:00
qmainwindow Add QMainWindow::resizeDocks 2015-08-16 08:23:32 +00:00
qmdiarea Tests: Harmonize code checking on platform name. 2015-09-24 07:49:30 +00:00
qmdisubwindow QMdiSubWindow: Do not close when doubleclicking on disabled Restore action. 2015-10-19 11:13:27 +00:00
qmenu Tests: Harmonize code checking on platform name. 2015-09-24 07:49:30 +00:00
qmenubar Blacklist tests that fail with Gtk style on RHEL 6.6 2015-11-13 20:31:18 +00:00
qopenglwidget Support mixing native child widgets with texture-based ones 2015-11-19 13:56:52 +00:00
qplaintextedit tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qprogressbar tests: remove use of obsolete QStyleOption*V<N> 2015-11-03 16:11:51 +00:00
qpushbutton tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qradiobutton
qscrollarea tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qscrollbar Replace MAC OS X with OS X 2015-06-30 07:33:31 +00:00
qsizegrip Blacklist and skip various tests that are flakey 2015-06-14 10:50:45 +00:00
qslider
qspinbox QAbstractSpinBox::inputMethodQuery(): Consider input method hints set on the spin box. 2015-09-22 14:26:26 +00:00
qsplashscreen
qsplitter
qstackedwidget
qstatusbar
qtabbar Blacklist tests that fail with Gtk style on RHEL 6.6 2015-11-13 20:31:18 +00:00
qtabwidget tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qtextbrowser tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qtextedit Merge remote-tracking branch 'origin/5.5' into dev 2015-08-06 10:54:01 +02:00
qtoolbar tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
qtoolbox
qtoolbutton tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-31 11:50:10 +00:00
widgets.pro