qt5base-lts/tests/auto/corelib/kernel/qobject
Marc Mutz ed827acc27 QSignalBlocker: (new) RAII class for QObject::blockSignals()
I don't think I ever worked on a project of non-trivial
size that didn't at some point add a QSignalBlocker.

This commit adds code, tests and documentation. Later
commits will convert naked blockSignals() calls to use
QSignalBlocker.

The implementation is purely inline to avoid the heavy
overhead of cross-dll function calls for this miniscule
task. This should not be a problem because QSignalBlocker
only uses public API and a pattern that we anyway need
to keep working until Qt 6, at least, so even changing
the implementation later will be no problem as the old
implementation lurking in non-recompiled code will be
acceptable, too.

This implementation is an evolution from KDTools'
KDSignalBlocker, with the following changes:
- Implements unblock() and reblock()
- Uses the return value of blockSignals() instead of a
  separate signalsBlocked() call.

Change-Id: I1933dfd72a0f5190324be377cfca3c54cf3d6828
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-10-30 12:56:44 +01:00
..
signalbug tests: Make the QT assignments more explicit 2013-08-21 19:05:52 +02:00
test Set the Qt API level to compatibility mode in all tests. 2012-08-01 15:37:46 +02:00
.gitignore QObject-test: Reorganize subprocess. 2011-12-14 07:07:09 +01:00
qobject.pro Fixed tst_qobject signalbug silently not compiled in -fast builds. 2012-02-23 09:06:44 +01:00
tst_qobject.cpp QSignalBlocker: (new) RAII class for QObject::blockSignals() 2013-10-30 12:56:44 +01:00