Mercurial > octave
diff libgui/src/m-editor/file-editor.cc @ 19945:f7a805f02723
link undo in main window to editor if the latter has focus (bug #44402)
* file-editor.cc (editor_tab_has_focus): helper function checking whether
an edit area has the focus;
(copyClipboard, pasteClipboard, selectAll): use this helper function;
(do_undo): new slot for the undo action triggered from the main window
* file-editor.h: new helper function and new slots
* main-window.cc (handle_undo_request): emit a signal for undo instead of
undoing in terminal window when terminal does not have focus
* main-window.h: new undo signal
* octave-dock-widget.cc (octave_dock_widget): connect undo signal from
main-window to new virtual slot;
* octave-dock-widget.h: new virtual slot do_undo, doing nothing
author | Torsten <ttl@justmail.de> |
---|---|
date | Sat, 14 Mar 2015 18:54:23 +0100 |
parents | 3c414ad460d5 |
children | 97b37077a2d3 |
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc Sat Mar 14 14:52:58 2015 +0000 +++ b/libgui/src/m-editor/file-editor.cc Sat Mar 14 18:54:23 2015 +0100 @@ -1759,35 +1759,39 @@ check_actions (); } +bool +file_editor::editor_tab_has_focus () +{ + QWidget * foc_w = focusWidget (); + if (foc_w && foc_w->inherits ("octave_qscintilla")) + return true; + return false; +} + void file_editor::copyClipboard () { - QWidget * foc_w = focusWidget (); - - if (foc_w && foc_w->inherits ("octave_qscintilla")) - { - request_copy (true); - } + if (editor_tab_has_focus ()) + request_copy (true); } void file_editor::pasteClipboard () { - QWidget * foc_w = focusWidget (); - - if (foc_w && foc_w->inherits ("octave_qscintilla")) - { - request_paste (true); - } + if (editor_tab_has_focus ()) + request_paste (true); } void file_editor::selectAll () { - QWidget * foc_w = focusWidget (); + if (editor_tab_has_focus ()) + request_selectall (true); +} - if (foc_w && foc_w->inherits ("octave_qscintilla")) - { - request_selectall (true); - } +void +file_editor::do_undo () +{ + if (editor_tab_has_focus ()) + request_undo (true); } void