qt5base-lts/tests/manual/diaglib
Volker Hilsheimer 44fb925f50 Phase 2 of removing QDesktopWidget
Remove QDestopWidget public header, simplify the implementation that
maintains a Qt::Desktop type QWidget for each QScreen, and turn
QWidget's initial target screen into a QScreen pointer.

QApplication::desktop() now takes an optional QScreen pointer, and
returns a QWidget pointer, so that applications and widgets can get
access to the root widget for a specific screen without having to
resort to private APIs.

QDesktopWidgetPrivate implementations to look up a screen for an index,
widget, or point are now all inline functions that thinly wrap
QGuiApplication::screens/screenAt calls. We should consider adding those
as convenience APIs to QScreen instead.

Note that QWidget::screen is assumed to return a valid pointer; there is
code that handles the case that it returns nullptr (but also code that
trusts that it never is nullptr), so this needs to be defined, verified
with tests, and asserted. We can then simplify the code further.

Change-Id: Ifc89be65a0dce265b6729feaf54121c35137cb94
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2020-06-08 20:29:49 +02:00
..
debugproxystyle.cpp Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
debugproxystyle.h Brush up Diaglib 2019-06-24 08:56:00 +02:00
diaglib.pri Remove winrt 2020-06-06 20:25:49 +02:00
eventfilter.cpp Brush up Diaglib 2019-06-24 08:56:00 +02:00
eventfilter.h Brush up Diaglib 2019-06-24 08:56:00 +02:00
glinfo.cpp Manual tests: Port diaglib from QGL to QOpenGL 2020-02-28 08:16:32 +01:00
glinfo.h Updated license headers 2016-01-21 18:55:18 +00:00
logwidget.cpp Brush up Diaglib 2019-06-24 08:56:00 +02:00
logwidget.h Brush up Diaglib 2019-06-24 08:56:00 +02:00
nativewindowdump_win.cpp Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
nativewindowdump.cpp XCB: Implement native window dump for diaglib 2018-01-24 14:39:16 +00:00
nativewindowdump.h Updated license headers 2016-01-21 18:55:18 +00:00
qwidgetdump.cpp Phase 2 of removing QDesktopWidget 2020-06-08 20:29:49 +02:00
qwidgetdump.h Brush up Diaglib 2019-06-24 08:56:00 +02:00
qwindowdump.cpp Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
qwindowdump.h Brush up Diaglib 2019-06-24 08:56:00 +02:00
README.txt Diaglib: Add class LogWidget. 2016-06-09 20:16:47 +00:00
textdump.cpp Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
textdump.h Updated license headers 2016-01-21 18:55:18 +00:00

This is a collection of functions and classes helpful for diagnosing bugs
in Qt 4 and Qt 5. It can be included in the application's .pro file by
adding:

include([path to Qt sources]/tests/manual/diaglib/diaglib.pri)

For Qt 4, the environment variable QTDIR may be used:
include($$(QTDIR)/tests/manual/diaglib/diaglib.pri)

The .pri file adds the define QT_DIAG_LIB, so, diagnostic
code can be enlosed within #ifdef to work without it as well.

All functions and classes are in the QtDiag namespace.

function dumpText() (textdump.h)
  Returns a string containing the input text split up in characters
  listing category, script, direction etc.
  Useful for analyzing non-Latin text.

function  dumpTextAsCode() (textdump.h)
   Returns a string containing a code snippet creating a QString
   by appending the unicode value of character of the input.
   This is useful for constructing non-Latin strings with purely ASCII
   source code.

class EventFilter (eventfilter.h):
  An event filter that logs Qt events to qDebug() depending on
  configured categories (for example mouse, keyboard, etc).

class DebugProxyStyle (debugproxystyle.h)
  A proxy style that wraps around an existing style and outputs
  the parameters and return values of its function calls, useful
  for debugging QStyle.

class LogWidget (logwidget.h)
  A Log Widget inheriting QPlainTextEdit with convenience functions
  to install as a message handler.

class LogFunctionGuard
   A guard class for use with LogWidget logging messages when a function
   is entered/left (indenting the log messages).
   Can be instantiated using:
   LogFunctionGuard guard(__FUNCTION__) or
   LogFunctionGuard guard(Q_FUNC_INFO)

function glInfo() (glinfo.h):
  Returns a string describing the Open GL configuration (obtained
  by querying GL_VENDOR and GL_RENDERER). Available only
  when the QT qmake variable contains opengl.

functions dumpNativeWindows(), dumpNativeQtTopLevels():
  These functions du,p out the hierarchy of native Windows. Currently
  implemented for Windows only.

function dumpAllWidgets() (qwidgetdump.h):
  Dumps the hierarchy of QWidgets including information about flags,
  visibility, geometry, etc.

function dumpAllWindows() (qwindowdump.h):
  Dumps the hierarchy of QWindows including information about flags,
  visibility, geometry, etc.