##// END OF EJS Templates
tweaked close dialog and added prompts to prevent silent remote close
MinRK -
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
@@ -142,6 +143,9 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
142 143 document = self._control.document()
143 144 document.contentsChange.connect(self._document_contents_change)
144 145
146 # set flag for whether we are connected via localhost
147 self._local_kernel = kw.get('local_kernel', False)
148
145 149 #---------------------------------------------------------------------------
146 150 # 'ConsoleWidget' public interface
147 151 #---------------------------------------------------------------------------
@@ -366,6 +370,7 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):
373 if self._local_kernel:
369 374 if not msg['content']['restart']:
370 375 sys.exit(0)
371 376 else:
@@ -374,6 +379,23 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
374 379 # lest the request for a new prompt
375 380 # goes to the old kernel
376 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', 'Close Console', 'Close All')
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