diff options
author | kali <kali@leap.se> | 2012-11-30 04:46:55 +0900 |
---|---|---|
committer | kali <kali@leap.se> | 2012-12-12 04:27:50 +0900 |
commit | ff6d4b8633edc763f22489030766a6c7a9377693 (patch) | |
tree | 6f35a3d1114874abc331a79c73bc927097d30156 /src/leap/testing/pyqt.py | |
parent | b262ac8bae66c391aa249e93268db9935f1c475f (diff) |
progress initial tests
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 |