Skip to content

Improve special handling of tabified QDockWidgets

Steven Pehrson requested to merge sbp/qttesting:tabified-dockwidgets into master

The previous approach relied on finding an arbitrary QTabBar then looking for siblings of that QTabBar. However there were several drawbacks of that approach

  1. The arbitrary QTabBar may not be discoverable using the unnamed object naming scheme. This was the case in at least one instance where the object was named 1QTabBar16 when recorded on Linux, but when played back on Windows there weren't 16 hidden QTabBar children of QMainWindow.

  2. The previous approach was documented to be specifically for QDockWidgets, but was not guarded as such. i.e. Anytime the named tab is not found it will revert to looking for siblings even for named objects or unnamed QTabBars that aren't children of QMainWindow.

This commit also fixes incorrect qCritical() usage. Since qCritical() causes program termination, there must be only one call with the full message, rather than multiple calls with partial messages. I suspect Paraview installs a qtMessageHandler that doesn't cause program termination since there is also an error flag.

Merge request reports