diff --git a/IPython/frontend/qt/console/ipython_widget.py b/IPython/frontend/qt/console/ipython_widget.py index 46b6fd1..5d83e1a 100644 --- a/IPython/frontend/qt/console/ipython_widget.py +++ b/IPython/frontend/qt/console/ipython_widget.py @@ -255,11 +255,27 @@ class IPythonWidget(FrontendWidget): self._append_plain_text(u'\n', True) def _started_channels(self): - """ Reimplemented to make a history request. - """ + """Reimplemented to make a history request and load %guiref.""" super(IPythonWidget, self)._started_channels() + self._load_guiref_magic() self.kernel_manager.shell_channel.history(hist_access_type='tail', n=1000) + + def _started_kernel(self): + """Load %guiref when the kernel starts (if channels are also started). + + Principally triggered by kernel restart. + """ + if self.kernel_manager.shell_channel is not None: + self._load_guiref_magic() + + def _load_guiref_magic(self): + """Load %guiref magic.""" + self.kernel_manager.shell_channel.execute('\n'.join([ + "from IPython.core import usage", + "get_ipython().register_magic_function(usage.page_guiref, 'line', 'guiref')", + ]), silent=True) + #--------------------------------------------------------------------------- # 'ConsoleWidget' public interface #---------------------------------------------------------------------------