diff libgui/src/main-window.cc @ 16648:b04413e5a811

improve handling of interrupts, copy and paste shortcuts * QTerminal.h (QTerminal::report_status_message): New signal. (QTerminal::QTerminal): Set shortcuts for copy and paste actions. Add copy and paste actions to QTerminal widget. Connect settings_changed, report_status_message, copyClipboard_signal, and pasteClipboard_signal. * QWinTerminalImpl.cpp (QWinTerminalImpl::copyClipboard): If selection is set, copy it and report status message. Otherwise, interrupt. * TerminalView.cpp (TerminalView::copyClipboard): Likewise. * main-window.cc (main_menu::construct_file_menu): Don't set shortcut for open action. (main_window::construct_edit_menu): Delete unimplemented cut, select all, and delete actions. Connect copy and paste actions to signals. (main_window::copyClipboard_signal, main_window::pasteClipboard_signal): New signals. (main_window::copyClipboard, main_window::pasteClipboard): New slots. (main_window::_cut_action): Delete member variable. * octave-qt-link.cc (octave_qt_link::do_pre_input_event): Disable input processing by the windows console. (octave_qt_link::do_post_input_event): Enable input processing by the windows console. * terminal-dock-widget.h, terminal-dock-widget.cc: Delete notice_settings, copyClipboard, and pasteClipboard signals, slots, and connections. (terminal_dock_widget::terminal_dock_widget): Don't connect visibilityChanged signal.
author John W. Eaton <jwe@octave.org>
date Mon, 13 May 2013 07:26:37 -0400
parents e3a0ca9c8836
children de1f8e4b6b9b
line wrap: on
line diff
--- a/libgui/src/main-window.cc	Mon May 13 05:58:12 2013 -0400
+++ b/libgui/src/main-window.cc	Mon May 13 07:26:37 2013 -0400
@@ -25,6 +25,7 @@
 #include <config.h>
 #endif
 
+#include <QKeySequence>
 #include <QApplication>
 #include <QLabel>
 #include <QMenuBar>
@@ -630,6 +631,18 @@
   workspace_window->connect_visibility_changed ();
 }
 
+void
+main_window::copyClipboard (void)
+{
+  emit copyClipboard_signal ();
+}
+
+void
+main_window::pasteClipboard (void)
+{
+  emit pasteClipboard_signal ();
+}
+
 // Connect the signals emitted when the Octave thread wants to create
 // a dialog box of some sort.  Perhaps a better place for this would be
 // as part of the QUIWidgetCreator class.  However, mainWindow currently
@@ -946,8 +959,6 @@
   _open_action
     = file_menu->addAction (QIcon (":/actions/icons/fileopen.png"),
                             tr ("Open..."));
-  _open_action->setShortcut (QKeySequence::Open);
-  _open_action->setShortcutContext (Qt::ApplicationShortcut);
 
 #ifdef HAVE_QSCINTILLA
   file_menu->addMenu (editor_window->get_mru_menu ());
@@ -1026,27 +1037,16 @@
 
   edit_menu->addSeparator ();
 
-  _cut_action
-    = edit_menu->addAction (QIcon (":/actions/icons/editcut.png"), tr ("Cut"));
-  _cut_action->setShortcut (ctrl_shift + Qt::Key_X);
-
   _copy_action
-    = edit_menu->addAction (QIcon (":/actions/icons/editcopy.png"), tr ("Copy"));
+    = edit_menu->addAction (QIcon (":/actions/icons/editcopy.png"),
+                            tr ("Copy"));
   _copy_action->setShortcut (ctrl_shift + Qt::Key_C);
 
   _paste_action
-    = edit_menu->addAction (QIcon (":/actions/icons/editpaste.png"), tr ("Paste"));
+    = edit_menu->addAction (QIcon (":/actions/icons/editpaste.png"),
+                            tr ("Paste"));
   _paste_action->setShortcut (ctrl_shift + Qt::Key_V);
 
-  QAction *select_all_action
-    = edit_menu->addAction (tr ("Select All"));
-  select_all_action->setEnabled (false); // TODO: Make this work.
-
-  QAction *delete_action
-    = edit_menu->addAction (tr ("Delete"));
-  delete_action->setShortcut (Qt::Key_Delete);
-  delete_action->setEnabled (false); // TODO: Make this work.
-
   edit_menu->addSeparator ();
 
   QAction *find_files_action
@@ -1065,10 +1065,10 @@
     = edit_menu->addAction (tr ("Clear Workspace"));
 
   connect (_copy_action, SIGNAL (triggered()),
-           command_window, SLOT (copyClipboard ()));
+           this, SLOT (copyClipboard ()));
 
   connect (_paste_action, SIGNAL (triggered()),
-           command_window, SLOT (pasteClipboard ()));
+           this, SLOT (pasteClipboard ()));
 
   connect (find_files_action, SIGNAL (triggered()),
            this, SLOT (find_files ()));
@@ -1334,7 +1334,6 @@
 
   _main_tool_bar->addSeparator ();
 
-  _main_tool_bar->addAction (_cut_action);
   _main_tool_bar->addAction (_copy_action);
   _main_tool_bar->addAction (_paste_action);
   _main_tool_bar->addAction (_undo_action);