qt5base-lts/tests/manual/diaglib
Friedemann Kleint 761f88f8ba Diaglib: Improve formatting of DebugProxyStyle
The class used the default debug operator for QObject, which outputs
the object's address. This makes it hard to compare the log output.

Make the existing QObject formatting helper from the EventFilter
publicly usable by providing a helper with a stream operator.

Change-Id: Ifab83e23cc792a5efe231fd9ae84e0439ab0d609
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-06-04 08:02:12 +02:00
..
debugproxystyle.cpp Diaglib: Improve formatting of DebugProxyStyle 2019-06-04 08:02:12 +02:00
debugproxystyle.h diaglib: Add more output to DebugProxyStyle. 2016-03-16 08:13:53 +00:00
diaglib.pri Diaglib: Fix WinRT exclusion 2017-03-20 15:04:25 +00:00
eventfilter.cpp Diaglib: Improve formatting of DebugProxyStyle 2019-06-04 08:02:12 +02:00
eventfilter.h Diaglib: Improve formatting of DebugProxyStyle 2019-06-04 08:02:12 +02:00
glinfo.cpp Updated license headers 2016-01-21 18:55:18 +00:00
glinfo.h Updated license headers 2016-01-21 18:55:18 +00:00
logwidget.cpp Replace Q_NULLPTR with nullptr where possible 2017-09-19 11:53:55 +00:00
logwidget.h tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
nativewindowdump_win.cpp Updated license headers 2016-01-21 18:55:18 +00: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 Diaglib: Output DPI and scale factors 2017-03-21 07:16:57 +00:00
qwidgetdump.h Merge remote-tracking branch 'origin/5.6' into dev 2016-02-02 15:57:44 +01:00
qwindowdump.cpp Diaglib: Output DPI and scale factors 2017-03-21 07:16:57 +00:00
qwindowdump.h Merge remote-tracking branch 'origin/5.6' into dev 2016-02-02 15:57:44 +01:00
README.txt Diaglib: Add class LogWidget. 2016-06-09 20:16:47 +00:00
textdump.cpp Updated license headers 2016-01-21 18:55:18 +00: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.