Show More
@@ -293,9 +293,6 b' define([' | |||||
293 | }); |
|
293 | }); | |
294 |
|
294 | |||
295 | // Kernel |
|
295 | // Kernel | |
296 | this.element.find('#toggle_unsolicited').click(function() { |
|
|||
297 | IPython.notebook.toggle_ignore_unsolicited_msgs(); |
|
|||
298 | }); |
|
|||
299 | this.element.find('#int_kernel').click(function () { |
|
296 | this.element.find('#int_kernel').click(function () { | |
300 | that.notebook.kernel.interrupt(); |
|
297 | that.notebook.kernel.interrupt(); | |
301 | }); |
|
298 | }); |
@@ -137,7 +137,6 b' define([' | |||||
137 | this.undelete_below = false; |
|
137 | this.undelete_below = false; | |
138 | this.paste_enabled = false; |
|
138 | this.paste_enabled = false; | |
139 | this.writable = false; |
|
139 | this.writable = false; | |
140 | this.include_other_output = true; |
|
|||
141 | // It is important to start out in command mode to match the intial mode |
|
140 | // It is important to start out in command mode to match the intial mode | |
142 | // of the KeyboardManager. |
|
141 | // of the KeyboardManager. | |
143 | this.mode = 'command'; |
|
142 | this.mode = 'command'; | |
@@ -1574,60 +1573,6 b' define([' | |||||
1574 | this.get_selected_cell().toggle_line_numbers(); |
|
1573 | this.get_selected_cell().toggle_line_numbers(); | |
1575 | }; |
|
1574 | }; | |
1576 |
|
1575 | |||
1577 | // Support for displaying input and output messages from other iPy clients. |
|
|||
1578 |
|
||||
1579 | /** |
|
|||
1580 | * Toggles the ability to display input/output message events from |
|
|||
1581 | * externally connected clients (i.e. other iPython shells, vim-ipython, |
|
|||
1582 | * etc). |
|
|||
1583 | * |
|
|||
1584 | * @method toggle_ignore_unsolicited_msgs |
|
|||
1585 | */ |
|
|||
1586 | Notebook.prototype.toggle_ignore_unsolicited_msgs = function () { |
|
|||
1587 | this.include_other_output = !this.include_other_output; |
|
|||
1588 | this.events.trigger('toggle_other_client_output.Notebook', |
|
|||
1589 | [this.include_other_output]); |
|
|||
1590 | return this.include_other_output; |
|
|||
1591 | }; |
|
|||
1592 |
|
||||
1593 | /** |
|
|||
1594 | * Handles the display of unsolicited messages, i.e. inputs or outputs that |
|
|||
1595 | * were generated by a client other than this notebook. New messages are |
|
|||
1596 | * displayed at the bottom of the notebook. |
|
|||
1597 | * |
|
|||
1598 | * @method handle_unsolicited_msg |
|
|||
1599 | */ |
|
|||
1600 | Notebook.prototype.handle_unsolicited_msg = function(msg) { |
|
|||
1601 | if (!this.include_other_output) { |
|
|||
1602 | return; |
|
|||
1603 | } |
|
|||
1604 | if (msg.msg_type == 'execute_input') { |
|
|||
1605 | var cell = this.insert_cell_at_bottom('code'); |
|
|||
1606 | if (cell) { |
|
|||
1607 | var cell_index = this.ncells() - 1; |
|
|||
1608 | cell.last_msg_id = msg.parent_header.msg_id; |
|
|||
1609 | cell.set_text(msg.content.code); |
|
|||
1610 | cell._handle_execute_reply(msg); |
|
|||
1611 | this.scroll_to_cell(cell_index); |
|
|||
1612 | this.select(cell_index); |
|
|||
1613 | } |
|
|||
1614 | } else { |
|
|||
1615 | /* Find the input cell that corresponds with the output, then add |
|
|||
1616 | * the contents to the cell's output area. |
|
|||
1617 | */ |
|
|||
1618 | var count = this.ncells(); |
|
|||
1619 | while (count--) { |
|
|||
1620 | var cell = this.get_cell(count); |
|
|||
1621 | if (cell && cell.last_msg_id == msg.parent_header.msg_id) { |
|
|||
1622 | cell.output_area.handle_output(msg); |
|
|||
1623 | this.scroll_to_cell(count); |
|
|||
1624 | this.select(count); |
|
|||
1625 | break; |
|
|||
1626 | } |
|
|||
1627 | } |
|
|||
1628 | } |
|
|||
1629 | }; |
|
|||
1630 |
|
||||
1631 | /** |
|
1576 | /** | |
1632 | * Set the codemirror mode for all code cells, including the default for |
|
1577 | * Set the codemirror mode for all code cells, including the default for | |
1633 | * new code cells. |
|
1578 | * new code cells. | |
@@ -1705,7 +1650,6 b' define([' | |||||
1705 | cell.set_kernel(this.session.kernel); |
|
1650 | cell.set_kernel(this.session.kernel); | |
1706 | } |
|
1651 | } | |
1707 | } |
|
1652 | } | |
1708 | this.kernel.unsolicited_msg_callback = $.proxy(this.handle_unsolicited_msg, this); |
|
|||
1709 | }; |
|
1653 | }; | |
1710 | Notebook.prototype._session_start_failed = function (jqxhr, status, error){ |
|
1654 | Notebook.prototype._session_start_failed = function (jqxhr, status, error){ | |
1711 | this._session_starting = false; |
|
1655 | this._session_starting = false; |
@@ -279,11 +279,6 b' define([' | |||||
279 | nnw.warning(error.message || "Notebook copy failed"); |
|
279 | nnw.warning(error.message || "Notebook copy failed"); | |
280 | }); |
|
280 | }); | |
281 |
|
281 | |||
282 | this.events.on('toggle_other_client_output.Notebook', function(evt, include_output) { |
|
|||
283 | var msg = (include_output? "Showing": "Ignoring") + " output from other clients"; |
|
|||
284 | nnw.set_message(msg, 2000); |
|
|||
285 | }); |
|
|||
286 |
|
||||
287 | // Checkpoint events |
|
282 | // Checkpoint events | |
288 | this.events.on('checkpoint_created.Notebook', function (evt, data) { |
|
283 | this.events.on('checkpoint_created.Notebook', function (evt, data) { | |
289 | var msg = "Checkpoint created"; |
|
284 | var msg = "Checkpoint created"; |
@@ -47,7 +47,6 b' define([' | |||||
47 | this.session_id = utils.uuid(); |
|
47 | this.session_id = utils.uuid(); | |
48 | this._msg_callbacks = {}; |
|
48 | this._msg_callbacks = {}; | |
49 | this.info_reply = {}; // kernel_info_reply stored here after starting |
|
49 | this.info_reply = {}; // kernel_info_reply stored here after starting | |
50 | this.unsolicited_msg_callback = null; |
|
|||
51 |
|
50 | |||
52 | if (typeof(WebSocket) !== 'undefined') { |
|
51 | if (typeof(WebSocket) !== 'undefined') { | |
53 | this.WebSocket = WebSocket; |
|
52 | this.WebSocket = WebSocket; | |
@@ -1000,11 +999,9 b' define([' | |||||
1000 | Kernel.prototype._handle_output_message = function (msg) { |
|
999 | Kernel.prototype._handle_output_message = function (msg) { | |
1001 | var callbacks = this.get_callbacks_for_msg(msg.parent_header.msg_id); |
|
1000 | var callbacks = this.get_callbacks_for_msg(msg.parent_header.msg_id); | |
1002 | if (!callbacks || !callbacks.iopub) { |
|
1001 | if (!callbacks || !callbacks.iopub) { | |
1003 | if (this.unsolicited_msg_callback) { |
|
1002 | // The message came from another client. Let the UI decide what to | |
1004 | // The message came from another client. Let the UI decide what |
|
1003 | // do with it. | |
1005 | // to do with it. |
|
1004 | this.events.trigger('received_unsolicited_message.Kernel', msg); | |
1006 | this.unsolicited_msg_callback(msg); |
|
|||
1007 | } |
|
|||
1008 | return; |
|
1005 | return; | |
1009 | } |
|
1006 | } | |
1010 | var callback = callbacks.iopub.output; |
|
1007 | var callback = callbacks.iopub.output; | |
@@ -1020,10 +1017,10 b' define([' | |||||
1020 | */ |
|
1017 | */ | |
1021 | Kernel.prototype._handle_input_message = function (msg) { |
|
1018 | Kernel.prototype._handle_input_message = function (msg) { | |
1022 | var callbacks = this.get_callbacks_for_msg(msg.parent_header.msg_id); |
|
1019 | var callbacks = this.get_callbacks_for_msg(msg.parent_header.msg_id); | |
1023 |
if (!callbacks |
|
1020 | if (!callbacks) { | |
1024 | // The message came from another client. Let the UI decide what to |
|
1021 | // The message came from another client. Let the UI decide what to | |
1025 | // do with it. |
|
1022 | // do with it. | |
1026 |
this. |
|
1023 | this.events.trigger('received_unsolicited_message.Kernel', msg); | |
1027 | } |
|
1024 | } | |
1028 | }; |
|
1025 | }; | |
1029 |
|
1026 |
@@ -226,9 +226,6 b' class="notebook_app"' | |||||
226 | </li> |
|
226 | </li> | |
227 | <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Kernel</a> |
|
227 | <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Kernel</a> | |
228 | <ul id="kernel_menu" class="dropdown-menu"> |
|
228 | <ul id="kernel_menu" class="dropdown-menu"> | |
229 | <li id="toggle_unsolicited" |
|
|||
230 | title="Toggles display of messages from clients other than this one sharing the same kernel."> |
|
|||
231 | <a href="#">Show/ignore output from other clients.</a></li> |
|
|||
232 | <li id="int_kernel" |
|
229 | <li id="int_kernel" | |
233 | title="Send KeyboardInterrupt (CTRL-C) to the Kernel"> |
|
230 | title="Send KeyboardInterrupt (CTRL-C) to the Kernel"> | |
234 | <a href="#">Interrupt</a> |
|
231 | <a href="#">Interrupt</a> |
General Comments 0
You need to be logged in to leave comments.
Login now