diff libgui/src/main-window.cc @ 16881:944ade6e7f66

Make main window copy and paste global for current focused window * libgui/src/workspace-view.h, libgui/src/workspace-view.cc (workspace_view::copyClipboard): New function. * libgui/src/qtinfo/webinfo.h, libgui/src/qtinfo/webinfo.cc (webinfo::pasteClipboard): New function. (webinfo::copyClipboard): New function. * libgui/src/octave-dock-widget.h, libgui/src/octave-dock-widget.cc (octave_dock_widget::copyClipboard): New function. (octave_dock_widget::pasteClipboard): New function. (octave_dock_widget::focusWidget): New function. (octave_dock_widget::octave_dock_widget): Connect copy/paste to main window signals. * libgui/src/main-window.cc (main_window::copyClipboard): process current directory copy if is focused. (main_window::pasteClipboard): process current directory paste if is focused. * libgui/src/m-editor/file-editor.h, libgui/src/m-editor/file-editor.cc (file_editor::copyClipboard): New function. (file_editor::pasteClipboard): New function. * libgui/src/history-dock-widget.h, libgui/src/history-dock-widget.cc (history_dock_widget::pasteClipboard): New function. (history_dock_widget::copyClipboard): New function. * libgui/src/files-dock-widget.h, libgui/src/files-dock-widget.cc (files_dock_widget::copyClipboard): New function. (files_dock_widget::pasteClipboard): New function. * libgui/src/documentation-dock-widget.h, libgui/src/documentation-dock-widget.cc (documentation_dock_widget::copyClipboard): New function. (documentation_dock_widget::pasteClipboard): New function. * libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h, libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cc (QWinTerminalImpl::copyClipboard): dont copy unless is focused widget. (QWinTerminalImpl::pasteClipboard): dont paste unless is focused widget. * libgui/qterminal/libqterminal/unix/TerminalView.h, libgui/qterminal/libqterminal/unix/TerminalView.cc (TerminalView::copyClipboard): only copy is focused widget. (TerminalView::pasteClipboard): only paste is focused widget.
author John Donoghue <john.donoghue@ieee.org>
date Sun, 30 Jun 2013 20:33:20 -0400
parents caf3d2a45da0
children 6bd74153c3ae
line wrap: on
line diff
--- a/libgui/src/main-window.cc	Sun Jun 30 18:08:29 2013 -0700
+++ b/libgui/src/main-window.cc	Sun Jun 30 20:33:20 2013 -0400
@@ -613,13 +613,34 @@
 void
 main_window::copyClipboard (void)
 {
-  emit copyClipboard_signal ();
+  if (_current_directory_combo_box->hasFocus ())
+    {
+      QLineEdit * edit = _current_directory_combo_box->lineEdit ();
+      if (edit && edit->hasSelectedText ())
+        {
+          QClipboard *clipboard = QApplication::clipboard ();
+          clipboard->setText (edit->selectedText ()); 
+        }
+    } 
+  else
+    emit copyClipboard_signal ();
 }
 
 void
 main_window::pasteClipboard (void)
 {
-  emit pasteClipboard_signal ();
+  if (_current_directory_combo_box->hasFocus ())
+    {
+      QLineEdit * edit = _current_directory_combo_box->lineEdit ();
+      QClipboard *clipboard = QApplication::clipboard ();
+      QString str =  clipboard->text ();
+      if (edit && str.length () > 0)
+        {
+          edit->insert (str); 
+        }
+    } 
+  else
+    emit pasteClipboard_signal ();
 }
 
 // Connect the signals emitted when the Octave thread wants to create