diff libgui/src/m-editor/file-editor.cc @ 17635:7945344506ae

Add possibility to run selected text of the editor in the terminal * octave-qscintilla.cc(contextMenuEvent): new context menu for running selection (context_run): function for run selection action in editor file menu; (contextmenu_run): new slot for context menu run selection; * octave-qscintilla.h: new functions context_run, contextmenu_run * file-editor-tab.cc(context_run): new slot for run menu action * file-editor-tab.h: new slot context_run * file-editor.cc(request_context_run): new slot for run menu entry; (construct): new entry in run menu for running the selection in editor (add_file_editor_tab): connect new signal fetab_context_run to the new slot context_run in file_editor_tab; (set_shortcuts): enable/disable new shortcut when editor focus changes (check_actions): enable/disable new action depending on existing tabs * file-editor.h: new signal fetab_context_run, new slot request_context_edit, new run action
author Torsten <ttl@justmail.de>
date Fri, 11 Oct 2013 22:46:32 +0200
parents 99ffa521ecec
children 230ffaf80ac9
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc	Fri Oct 11 13:58:23 2013 -0400
+++ b/libgui/src/m-editor/file-editor.cc	Fri Oct 11 22:46:32 2013 +0200
@@ -509,6 +509,12 @@
 }
 
 void
+file_editor::request_context_run (bool)
+{
+  emit fetab_context_run (_tab_widget->currentWidget ());
+}
+
+void
 file_editor::request_toggle_bookmark (void)
 {
   emit fetab_toggle_bookmark (_tab_widget->currentWidget ());
@@ -945,6 +951,9 @@
 
   QMenu *_run_menu = new QMenu (tr ("&Run"), _menu_bar);
   _run_menu->addAction (_run_action);
+  _context_run_action =
+    _run_menu->addAction (QIcon (), tr ("Run &Selection"),
+                           this, SLOT (request_context_run (bool)));
   _menu_bar->addMenu (_run_menu);
 
   QMenu *_help_menu = new QMenu (tr ("&Help"), _menu_bar);
@@ -1154,6 +1163,9 @@
   connect (this, SIGNAL (fetab_run_file (const QWidget*)),
            f, SLOT (run_file (const QWidget*)));
 
+  connect (this, SIGNAL (fetab_context_run (const QWidget*)),
+           f, SLOT (context_run (const QWidget*)));
+
   connect (this, SIGNAL (fetab_toggle_bookmark (const QWidget*)),
            f, SLOT (toggle_bookmark (const QWidget*)));
 
@@ -1252,6 +1264,7 @@
 
       _print_action->setShortcut (QKeySequence::Print);
       _run_action->setShortcut (Qt::ControlModifier+ Qt::Key_R);
+      _context_run_action->setShortcut (Qt::Key_F9);
 
       _context_edit_action->setShortcut (Qt::ControlModifier + Qt::Key_E);
       _save_action->setShortcut (QKeySequence::Save);
@@ -1282,6 +1295,7 @@
 
       _print_action->setShortcut (no_key);
       _run_action->setShortcut (no_key);
+      _context_run_action->setShortcut (no_key);
 
       _context_edit_action->setShortcut (no_key);
       _save_action->setShortcut (no_key);
@@ -1316,6 +1330,7 @@
 
   _print_action->setEnabled (have_tabs);
   _run_action->setEnabled (have_tabs);
+  _context_run_action->setEnabled (have_tabs);
 
   _context_edit_action->setEnabled (have_tabs);
   _save_action->setEnabled (have_tabs);