Mercurial > octave
changeset 25813:d98d7df9fd15
updated context menus in editor and console window (bug #46884)
* QTerminal.cc (handleCustomContextMenuRequest): enable new run selection
action depending on selected text;
(run_selection): new slot for the action on running the selection;
* QTerminal.h: new signal execute_command_in_terminal_signal, new slot
run_selection with related action;
(QTerminal): adding the action to the context menu and connecting the
new signal to the related slot in main_window
* file-editor.cc (create_context_menu): remove redo/undo from context menu
author | Torsten <mttl@mailbox.org> |
---|---|
date | Sat, 18 Aug 2018 08:21:45 +0200 |
parents | fc74c8d2a584 |
children | 849f1a7e9a30 |
files | libgui/qterminal/libqterminal/QTerminal.cc libgui/qterminal/libqterminal/QTerminal.h libgui/src/m-editor/file-editor.cc |
diffstat | 3 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc Fri Aug 17 14:49:10 2018 -0700 +++ b/libgui/qterminal/libqterminal/QTerminal.cc Sat Aug 18 08:21:45 2018 +0200 @@ -126,6 +126,7 @@ _paste_action->setEnabled (cb->text().length() > 0); _copy_action->setEnabled (has_selected_text); + _run_selection_action->setEnabled (has_selected_text); // Get the actions of any hotspots the filters may have found QList<QAction*> actions = get_hotspot_actions (at); @@ -142,6 +143,17 @@ _contextMenu->removeAction (actions.at(i)); } +// slot for running the selected code +void +QTerminal::run_selection () +{ + QStringList commands = selectedText ().split (QRegExp ("[\r\n]"), + QString::SkipEmptyParts); + for (int i = 0; i < commands.size (); i++) + emit execute_command_in_terminal_signal (commands.at (i)); + +} + // slot for edit files in error messages void QTerminal::edit_file ()
--- a/libgui/qterminal/libqterminal/QTerminal.h Fri Aug 17 14:49:10 2018 -0700 +++ b/libgui/qterminal/libqterminal/QTerminal.h Sat Aug 18 08:21:45 2018 +0200 @@ -99,6 +99,8 @@ void edit_mfile_request (const QString&, int); + void execute_command_in_terminal_signal (const QString&); + public slots: virtual void copyClipboard (void) = 0; @@ -117,6 +119,8 @@ void set_global_shortcuts (bool focus_out); + void run_selection (void); + void edit_file (void); virtual void handle_visibility_changed (bool) { }; @@ -143,6 +147,9 @@ _selectall_action = _contextMenu->addAction ( tr ("Select All"), this, SLOT (selectAll ())); + _run_selection_action = _contextMenu->addAction ( + tr ("Run Selection"), this, SLOT (run_selection ())); + _edit_action = _contextMenu->addAction ( tr (""), this, SLOT (edit_file ())); @@ -160,6 +167,9 @@ connect (this, SIGNAL (edit_mfile_request (const QString&, int)), xparent, SLOT (edit_mfile (const QString&, int))); + connect (this, SIGNAL (execute_command_in_terminal_signal (const QString&)), + xparent, SLOT (execute_command_in_terminal (const QString&))); + connect (xparent, SIGNAL (settings_changed (const QSettings *)), this, SLOT (notice_settings (const QSettings *))); @@ -200,6 +210,7 @@ QAction * _paste_action; QAction * _selectall_action; QAction * _edit_action; + QAction * _run_selection_action; QAction *_interrupt_action; QAction *_nop_action;
--- a/libgui/src/m-editor/file-editor.cc Fri Aug 17 14:49:10 2018 -0700 +++ b/libgui/src/m-editor/file-editor.cc Sat Aug 18 08:21:45 2018 +0200 @@ -1516,9 +1516,6 @@ menu->removeAction (a); // add editor's actions with icons and customized shortcuts - menu->addAction (m_undo_action); - menu->addAction (m_redo_action); - menu->addSeparator (); menu->addAction (m_cut_action); menu->addAction (m_copy_action); menu->addAction (m_paste_action); @@ -2086,6 +2083,7 @@ m_tool_bar->addSeparator (); // m_undo_action: later via main window m_tool_bar->addAction (m_redo_action); + m_tool_bar->addSeparator (); // m_copy_action: later via the main window m_tool_bar->addAction (m_cut_action); // m_paste_action: later via the main window