diff options
author | kali <kali@leap.se> | 2012-12-12 04:28:43 +0900 |
---|---|---|
committer | kali <kali@leap.se> | 2012-12-12 04:28:43 +0900 |
commit | f3cbae1d2c14e2ff22888d4fc83d03ec6c452541 (patch) | |
tree | e3117035e18c455d138901f1790f29a817cd5dc5 /src/leap/testing/pyqt.py | |
parent | b262ac8bae66c391aa249e93268db9935f1c475f (diff) | |
parent | 5a335cd560846fbcfa74f013c170a3bd32c7b85b (diff) |
Merge branch 'feature/wizard-tests' into develop
Diffstat (limited to 'src/leap/testing/pyqt.py')
-rw-r--r-- | src/leap/testing/pyqt.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/leap/testing/pyqt.py b/src/leap/testing/pyqt.py new file mode 100644 index 00000000..6edaf059 --- /dev/null +++ b/src/leap/testing/pyqt.py @@ -0,0 +1,52 @@ +from PyQt4 import QtCore + +_oldConnect = QtCore.QObject.connect +_oldDisconnect = QtCore.QObject.disconnect +_oldEmit = QtCore.QObject.emit + + +def _wrapConnect(callableObject): + """ + Returns a wrapped call to the old version of QtCore.QObject.connect + """ + @staticmethod + def call(*args): + callableObject(*args) + _oldConnect(*args) + return call + + +def _wrapDisconnect(callableObject): + """ + Returns a wrapped call to the old version of QtCore.QObject.disconnect + """ + @staticmethod + def call(*args): + callableObject(*args) + _oldDisconnect(*args) + return call + + +def enableSignalDebugging(**kwargs): + """ + Call this to enable Qt Signal debugging. This will trap all + connect, and disconnect calls. + """ + + f = lambda *args: None + connectCall = kwargs.get('connectCall', f) + disconnectCall = kwargs.get('disconnectCall', f) + emitCall = kwargs.get('emitCall', f) + + def printIt(msg): + def call(*args): + print msg, args + return call + QtCore.QObject.connect = _wrapConnect(connectCall) + QtCore.QObject.disconnect = _wrapDisconnect(disconnectCall) + + def new_emit(self, *args): + emitCall(self, *args) + _oldEmit(self, *args) + + QtCore.QObject.emit = new_emit |