Show More
@@ -3,7 +3,6 b'' | |||||
3 |
|
3 | |||
4 | # System library imports. |
|
4 | # System library imports. | |
5 | from PyQt4 import QtCore |
|
5 | from PyQt4 import QtCore | |
6 | import zmq |
|
|||
7 |
|
6 | |||
8 | # IPython imports. |
|
7 | # IPython imports. | |
9 | from IPython.utils.traitlets import Type |
|
8 | from IPython.utils.traitlets import Type | |
@@ -42,11 +41,19 b' class QtXReqSocketChannel(SocketChannelQObject, XReqSocketChannel):' | |||||
42 | # Emitted when any message is received. |
|
41 | # Emitted when any message is received. | |
43 | message_received = QtCore.pyqtSignal(object) |
|
42 | message_received = QtCore.pyqtSignal(object) | |
44 |
|
43 | |||
45 |
# Emitted when a reply has been received for the corresponding request |
|
44 | # Emitted when a reply has been received for the corresponding request | |
|
45 | # type. | |||
46 | execute_reply = QtCore.pyqtSignal(object) |
|
46 | execute_reply = QtCore.pyqtSignal(object) | |
47 | complete_reply = QtCore.pyqtSignal(object) |
|
47 | complete_reply = QtCore.pyqtSignal(object) | |
48 | object_info_reply = QtCore.pyqtSignal(object) |
|
48 | object_info_reply = QtCore.pyqtSignal(object) | |
49 |
|
49 | |||
|
50 | # Emitted when the first reply comes back | |||
|
51 | first_reply = QtCore.pyqtSignal(object) | |||
|
52 | ||||
|
53 | # Used by the first_reply signal logic to determine if a reply is the | |||
|
54 | # first. | |||
|
55 | _handlers_called = False | |||
|
56 | ||||
50 | #--------------------------------------------------------------------------- |
|
57 | #--------------------------------------------------------------------------- | |
51 | # 'XReqSocketChannel' interface |
|
58 | # 'XReqSocketChannel' interface | |
52 | #--------------------------------------------------------------------------- |
|
59 | #--------------------------------------------------------------------------- | |
@@ -63,6 +70,16 b' class QtXReqSocketChannel(SocketChannelQObject, XReqSocketChannel):' | |||||
63 | if signal: |
|
70 | if signal: | |
64 | signal.emit(msg) |
|
71 | signal.emit(msg) | |
65 |
|
72 | |||
|
73 | if not self._handlers_called: | |||
|
74 | self.first_reply.emit() | |||
|
75 | ||||
|
76 | self._handlers_called = True | |||
|
77 | ||||
|
78 | def reset_first_reply(self): | |||
|
79 | """ Reset the first_reply signal to fire again on the next reply. | |||
|
80 | """ | |||
|
81 | self._handlers_called = False | |||
|
82 | ||||
66 |
|
83 | |||
67 | class QtSubSocketChannel(SocketChannelQObject, SubSocketChannel): |
|
84 | class QtSubSocketChannel(SocketChannelQObject, SubSocketChannel): | |
68 |
|
85 |
@@ -98,7 +98,7 b' class Kernel(Configurable):' | |||||
98 | # Build dict of handlers for message types |
|
98 | # Build dict of handlers for message types | |
99 | msg_types = [ 'execute_request', 'complete_request', |
|
99 | msg_types = [ 'execute_request', 'complete_request', | |
100 | 'object_info_request', 'history_request', |
|
100 | 'object_info_request', 'history_request', | |
101 | 'shutdown_request'] |
|
101 | 'connect_request', 'shutdown_request'] | |
102 | self.handlers = {} |
|
102 | self.handlers = {} | |
103 | for msg_type in msg_types: |
|
103 | for msg_type in msg_types: | |
104 | self.handlers[msg_type] = getattr(self, msg_type) |
|
104 | self.handlers[msg_type] = getattr(self, msg_type) |
General Comments 0
You need to be logged in to leave comments.
Login now