##// END OF EJS Templates
Backport PR #10050: Revert debugger 'smart command mode'...
Backport PR #10050: Revert debugger 'smart command mode' This is a manual revert of PR 9449 Closes gh-10037 I don't think there's currently enough support for smart command mode to be worth adding a config option for it now. We can always add this later. Signed-off-by: Thomas Kluyver <thomas@kluyver.me.uk>

File last commit:

r22707:3a42b331
r23150:534433e5
Show More
qt.py
30 lines | 1.0 KiB | text/x-python | PythonLexer
import sys
from IPython.external.qt_for_kernel import QtCore, QtGui
# If we create a QApplication, keep a reference to it so that it doesn't get
# garbage collected.
_appref = None
def inputhook(context):
global _appref
app = QtCore.QCoreApplication.instance()
if not app:
_appref = app = QtGui.QApplication([" "])
event_loop = QtCore.QEventLoop(app)
if sys.platform == 'win32':
# The QSocketNotifier method doesn't appear to work on Windows.
# Use polling instead.
timer = QtCore.QTimer()
timer.timeout.connect(event_loop.quit)
while not context.input_is_ready():
timer.start(50) # 50 ms
event_loop.exec_()
timer.stop()
else:
# On POSIX platforms, we can use a file descriptor to quit the event
# loop when there is input ready to read.
notifier = QtCore.QSocketNotifier(context.fileno(), QtCore.QSocketNotifier.Read)
notifier.setEnabled(True)
notifier.activated.connect(event_loop.exit)
event_loop.exec_()