Show More
@@ -101,6 +101,7 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):' | |||
|
101 | 101 | _CompletionRequest = namedtuple('_CompletionRequest', ['id', 'pos']) |
|
102 | 102 | _ExecutionRequest = namedtuple('_ExecutionRequest', ['id', 'kind']) |
|
103 | 103 | _input_splitter_class = InputSplitter |
|
104 | _local_kernel = False | |
|
104 | 105 | |
|
105 | 106 | #--------------------------------------------------------------------------- |
|
106 | 107 | # 'object' interface |
@@ -141,6 +142,9 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):' | |||
|
141 | 142 | # Connect signal handlers. |
|
142 | 143 | document = self._control.document() |
|
143 | 144 | document.contentsChange.connect(self._document_contents_change) |
|
145 | ||
|
146 | # set flag for whether we are connected via localhost | |
|
147 | self._local_kernel = kw.get('local_kernel', False) | |
|
144 | 148 | |
|
145 | 149 | #--------------------------------------------------------------------------- |
|
146 | 150 | # 'ConsoleWidget' public interface |
@@ -366,14 +370,32 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):' | |||
|
366 | 370 | """ Handle shutdown signal, only if from other console. |
|
367 | 371 | """ |
|
368 | 372 | if not self._hidden and not self._is_from_this_session(msg): |
|
369 | if not msg['content']['restart']: | |
|
370 | sys.exit(0) | |
|
371 | else: | |
|
372 | # we just got notified of a restart! | |
|
373 | time.sleep(0.25) # wait 1/4 sec to reset | |
|
374 | # lest the request for a new prompt | |
|
375 |
|
|
|
376 | self.reset() | |
|
373 | if self._local_kernel: | |
|
374 | if not msg['content']['restart']: | |
|
375 | sys.exit(0) | |
|
376 | else: | |
|
377 | # we just got notified of a restart! | |
|
378 | time.sleep(0.25) # wait 1/4 sec to reset | |
|
379 | # lest the request for a new prompt | |
|
380 | # goes to the old kernel | |
|
381 | self.reset() | |
|
382 | else: # remote kernel, prompt on Kernel shutdown/reset | |
|
383 | title = self.window().windowTitle() | |
|
384 | if not msg['content']['restart']: | |
|
385 | reply = QtGui.QMessageBox.question(self, title, | |
|
386 | "Kernel has been shutdown permanently. Close the Console?", | |
|
387 | QtGui.QMessageBox.Yes,QtGui.QMessageBox.No) | |
|
388 | if reply == QtGui.QMessageBox.Yes: | |
|
389 | sys.exit(0) | |
|
390 | else: | |
|
391 | reply = QtGui.QMessageBox.question(self, title, | |
|
392 | "Kernel has been reset. Clear the Console?", | |
|
393 | QtGui.QMessageBox.Yes,QtGui.QMessageBox.No) | |
|
394 | if reply == QtGui.QMessageBox.Yes: | |
|
395 | time.sleep(0.25) # wait 1/4 sec to reset | |
|
396 | # lest the request for a new prompt | |
|
397 | # goes to the old kernel | |
|
398 | self.reset() | |
|
377 | 399 | |
|
378 | 400 | def _started_channels(self): |
|
379 | 401 | """ Called when the KernelManager channels have started listening or |
@@ -57,9 +57,9 b' class MainWindow(QtGui.QMainWindow):' | |||
|
57 | 57 | if kernel_manager and kernel_manager.channels_running: |
|
58 | 58 | title = self.window().windowTitle() |
|
59 | 59 | reply = QtGui.QMessageBox.question(self, title, |
|
60 | "Close just this console, or shutdown the kernel and close "+ | |
|
61 | "all windows attached to it?", | |
|
62 |
'Cancel', ' |
|
|
60 | "You are closing this Console window."+ | |
|
61 | "\nWould you like to quit the Kernel and all attached Consoles as well?", | |
|
62 | 'Cancel', 'No, just this Console', 'Yes, quit everything') | |
|
63 | 63 | if reply == 2: # close All |
|
64 | 64 | kernel_manager.shutdown_kernel() |
|
65 | 65 | #kernel_manager.stop_channels() |
@@ -68,6 +68,7 b' class MainWindow(QtGui.QMainWindow):' | |||
|
68 | 68 | if not self._existing: |
|
69 | 69 | # I have the kernel: don't quit, just close the window |
|
70 | 70 | self._app.setQuitOnLastWindowClosed(False) |
|
71 | self.deleteLater() | |
|
71 | 72 | event.accept() |
|
72 | 73 | else: |
|
73 | 74 | event.ignore() |
@@ -133,15 +134,16 b' def main():' | |||
|
133 | 134 | kernel_manager.start_kernel() |
|
134 | 135 | kernel_manager.start_channels() |
|
135 | 136 | |
|
137 | local_kernel = (args.ip == LOCALHOST) | |
|
136 | 138 | # Create the widget. |
|
137 | 139 | app = QtGui.QApplication([]) |
|
138 | 140 | if args.pure: |
|
139 | 141 | kind = 'rich' if args.rich else 'plain' |
|
140 | widget = FrontendWidget(kind=kind, paging=args.paging) | |
|
142 | widget = FrontendWidget(kind=kind, paging=args.paging, local_kernel=local_kernel) | |
|
141 | 143 | elif args.rich or args.pylab: |
|
142 | widget = RichIPythonWidget(paging=args.paging) | |
|
144 | widget = RichIPythonWidget(paging=args.paging, local_kernel=local_kernel) | |
|
143 | 145 | else: |
|
144 | widget = IPythonWidget(paging=args.paging) | |
|
146 | widget = IPythonWidget(paging=args.paging, local_kernel=local_kernel) | |
|
145 | 147 | widget.gui_completion = args.gui_completion |
|
146 | 148 | widget.kernel_manager = kernel_manager |
|
147 | 149 |
General Comments 0
You need to be logged in to leave comments.
Login now