##// END OF EJS Templates
add copy_raw, interrupt kernel and restart kernel into menu
Matthias BUSSONNIER -
Show More
@@ -241,6 +241,14 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
241 break
241 break
242 return menu
242 return menu
243
243
244 def request_interrupt_kernel(self):
245 if self._executing:
246 self.interrupt_kernel()
247
248 def request_restart_kernel(self):
249 message = 'Are you sure you want to restart the kernel?'
250 self.restart_kernel(message, now=False)
251
244 def _event_filter_console_keypress(self, event):
252 def _event_filter_console_keypress(self, event):
245 """ Reimplemented for execution interruption and smart backspace.
253 """ Reimplemented for execution interruption and smart backspace.
246 """
254 """
@@ -248,12 +256,11 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
248 if self._control_key_down(event.modifiers(), include_command=False):
256 if self._control_key_down(event.modifiers(), include_command=False):
249
257
250 if key == QtCore.Qt.Key_C and self._executing:
258 if key == QtCore.Qt.Key_C and self._executing:
251 self.interrupt_kernel()
259 self.request_interrupt_kernel()
252 return True
260 return True
253
261
254 elif key == QtCore.Qt.Key_Period:
262 elif key == QtCore.Qt.Key_Period:
255 message = 'Are you sure you want to restart the kernel?'
263 self.request_restart_kernel()
256 self.restart_kernel(message, now=False)
257 return True
264 return True
258
265
259 elif not event.modifiers() & QtCore.Qt.AltModifier:
266 elif not event.modifiers() & QtCore.Qt.AltModifier:
@@ -373,6 +373,13 b' class MainWindow(QtGui.QMainWindow):'
373 )
373 )
374 self.edit_menu.addAction(self.copy_action)
374 self.edit_menu.addAction(self.copy_action)
375
375
376 self.copy_raw_action = QtGui.QAction("Copy (&Raw Text)",
377 self,
378 shortcut="Ctrl+Shift+C",
379 triggered=self.copy_raw_active_frontend
380 )
381 self.edit_menu.addAction(self.copy_raw_action)
382
376 self.cut_action = QtGui.QAction("&Cut",
383 self.cut_action = QtGui.QAction("&Cut",
377 self,
384 self,
378 shortcut=QtGui.QKeySequence.Cut,
385 shortcut=QtGui.QKeySequence.Cut,
@@ -483,6 +490,20 b' class MainWindow(QtGui.QMainWindow):'
483 )
490 )
484 self.help_menu.addAction(self.quickref_active_frontend_action)
491 self.help_menu.addAction(self.quickref_active_frontend_action)
485
492
493 self.interrupt_kernel_action = QtGui.QAction("Interrupt current Kernel",
494 self,
495 triggered=self.interrupt_kernel_active_frontend
496 )
497 self.kernel_menu.addAction(self.interrupt_kernel_action)
498
499 self.restart_kernel_action = QtGui.QAction("Restart current Kernel",
500 self,
501 triggered=self.restart_kernel_active_frontend
502 )
503 self.kernel_menu.addAction(self.restart_kernel_action)
504 self.kernel_menu.addSeparator()
505
506 #for now this is just a copy and paste, but we should get this dynamically
486 magiclist=["%alias", "%autocall", "%automagic", "%bookmark", "%cd", "%clear",
507 magiclist=["%alias", "%autocall", "%automagic", "%bookmark", "%cd", "%clear",
487 "%colors", "%debug", "%dhist", "%dirs", "%doctest_mode", "%ed", "%edit", "%env", "%gui",
508 "%colors", "%debug", "%dhist", "%dirs", "%doctest_mode", "%ed", "%edit", "%env", "%gui",
488 "%guiref", "%hist", "%history", "%install_default_config", "%install_profiles",
509 "%guiref", "%hist", "%history", "%install_default_config", "%install_profiles",
@@ -507,12 +528,21 b' class MainWindow(QtGui.QMainWindow):'
507 )
528 )
508 self.all_magic_menu.addAction(xaction)
529 self.all_magic_menu.addAction(xaction)
509
530
531 def restart_kernel_active_frontend(self):
532 self.active_frontend.request_restart_kernel()
533
534 def interrupt_kernel_active_frontend(self):
535 self.active_frontend.request_interrupt_kernel()
536
510 def cut_active_frontend(self):
537 def cut_active_frontend(self):
511 self.active_frontend.cut_action.trigger()
538 self.active_frontend.cut_action.trigger()
512
539
513 def copy_active_frontend(self):
540 def copy_active_frontend(self):
514 self.active_frontend.copy_action.trigger()
541 self.active_frontend.copy_action.trigger()
515
542
543 def copy_raw_active_frontend(self):
544 self.active_frontend._copy_raw_action.trigger()
545
516 def paste_active_frontend(self):
546 def paste_active_frontend(self):
517 self.active_frontend.paste_action.trigger()
547 self.active_frontend.paste_action.trigger()
518
548
General Comments 0
You need to be logged in to leave comments. Login now