##// END OF EJS Templates
Merge PR #1091 (qtconsole pager copy)...
MinRK -
r5648:7a144e2e merge
parent child Browse files
Show More
@@ -441,7 +441,7 b' class ConsoleWidget(LoggingConfigurable, QtGui.QWidget):'
441 def copy(self):
441 def copy(self):
442 """ Copy the currently selected text to the clipboard.
442 """ Copy the currently selected text to the clipboard.
443 """
443 """
444 self._control.copy()
444 self.layout().currentWidget().copy()
445
445
446 def cut(self):
446 def cut(self):
447 """ Copy the currently selected text to the clipboard and delete it
447 """ Copy the currently selected text to the clipboard and delete it
@@ -107,6 +107,7 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
107 exit_requested = QtCore.Signal(object)
107 exit_requested = QtCore.Signal(object)
108
108
109 # Protected class variables.
109 # Protected class variables.
110 _transform_prompt = staticmethod(transform_classic_prompt)
110 _CallTipRequest = namedtuple('_CallTipRequest', ['id', 'pos'])
111 _CallTipRequest = namedtuple('_CallTipRequest', ['id', 'pos'])
111 _CompletionRequest = namedtuple('_CompletionRequest', ['id', 'pos'])
112 _CompletionRequest = namedtuple('_CompletionRequest', ['id', 'pos'])
112 _ExecutionRequest = namedtuple('_ExecutionRequest', ['id', 'kind'])
113 _ExecutionRequest = namedtuple('_ExecutionRequest', ['id', 'kind'])
@@ -174,11 +175,16 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
174 def copy(self):
175 def copy(self):
175 """ Copy the currently selected text to the clipboard, removing prompts.
176 """ Copy the currently selected text to the clipboard, removing prompts.
176 """
177 """
177 text = self._control.textCursor().selection().toPlainText()
178 if self._page_control.hasFocus():
178 if text:
179 self._page_control.copy()
179 lines = map(transform_classic_prompt, text.splitlines())
180 elif self._control.hasFocus():
180 text = '\n'.join(lines)
181 text = self._control.textCursor().selection().toPlainText()
181 QtGui.QApplication.clipboard().setText(text)
182 if text:
183 lines = map(self._transform_prompt, text.splitlines())
184 text = '\n'.join(lines)
185 QtGui.QApplication.clipboard().setText(text)
186 else:
187 self.log.debug("frontend widget : unknown copy target")
182
188
183 #---------------------------------------------------------------------------
189 #---------------------------------------------------------------------------
184 # 'ConsoleWidget' abstract interface
190 # 'ConsoleWidget' abstract interface
@@ -365,7 +371,9 b' class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):'
365
371
366 """
372 """
367
373
368 user_exp = msg['content']['user_expressions']
374 user_exp = msg['content'].get('user_expressions')
375 if not user_exp:
376 return
369 for expression in user_exp:
377 for expression in user_exp:
370 if expression in self._callback_dict:
378 if expression in self._callback_dict:
371 self._callback_dict.pop(expression)(user_exp[expression])
379 self._callback_dict.pop(expression)(user_exp[expression])
@@ -98,6 +98,7 b' class IPythonWidget(FrontendWidget):'
98
98
99 # FrontendWidget protected class variables.
99 # FrontendWidget protected class variables.
100 _input_splitter_class = IPythonInputSplitter
100 _input_splitter_class = IPythonInputSplitter
101 _transform_prompt = staticmethod(transform_ipy_prompt)
101
102
102 # IPythonWidget protected class variables.
103 # IPythonWidget protected class variables.
103 _PromptBlock = namedtuple('_PromptBlock', ['block', 'length', 'number'])
104 _PromptBlock = namedtuple('_PromptBlock', ['block', 'length', 'number'])
@@ -263,16 +264,6 b' class IPythonWidget(FrontendWidget):'
263 # 'ConsoleWidget' public interface
264 # 'ConsoleWidget' public interface
264 #---------------------------------------------------------------------------
265 #---------------------------------------------------------------------------
265
266
266 def copy(self):
267 """ Copy the currently selected text to the clipboard, removing prompts
268 if possible.
269 """
270 text = self._control.textCursor().selection().toPlainText()
271 if text:
272 lines = map(transform_ipy_prompt, text.splitlines())
273 text = '\n'.join(lines)
274 QtGui.QApplication.clipboard().setText(text)
275
276 #---------------------------------------------------------------------------
267 #---------------------------------------------------------------------------
277 # 'FrontendWidget' public interface
268 # 'FrontendWidget' public interface
278 #---------------------------------------------------------------------------
269 #---------------------------------------------------------------------------
@@ -795,8 +795,7 b' class MainWindow(QtGui.QMainWindow):'
795
795
796 def copy_active_frontend(self):
796 def copy_active_frontend(self):
797 widget = self.active_frontend
797 widget = self.active_frontend
798 if widget.can_copy():
798 widget.copy()
799 widget.copy()
800
799
801 def copy_raw_active_frontend(self):
800 def copy_raw_active_frontend(self):
802 self.active_frontend._copy_raw_action.trigger()
801 self.active_frontend._copy_raw_action.trigger()
General Comments 0
You need to be logged in to leave comments. Login now