Mercurial > octave
changeset 29393:ca1cc1bca9cb
fix interrupting the interpreter in the gui command window (bug #60079)
* QTerminal.cc (set_global_shortcuts): removed obsolete slot;
(notice_settings): use extra interrupt action also when global shortcuts
are disabled when command window has focus, set shortcut context allowing
to use the shortcuts without disabling them when command window loses
focus
* QTerminal.h: removed obsolete slot set_global_shortcuts
* TerminalView.cpp (TerminalView): remove connection of removed
signals/slots;
(focusInEvent): no signal for enabling/disabling shortcutes emitted;
(focusOutEvent): dito
* TerminalView.h: removed signal set_global_shortcuts_signal
* QWinTerminalImpl.cpp (QWinTerminalImpl): remove connection of removed
signals/slots;
(focusInEvent): no signal for enabling/disabling shortcutes emitted;
(focusOutEvent): dito
* QWinTerminalImpl.h: removed signal set_global_shortcuts_signal
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Wed, 24 Feb 2021 21:44:02 +0100 |
parents | 7797e2f3c69b |
children | f91ff3f7f5dc |
files | libgui/qterminal/libqterminal/QTerminal.cc libgui/qterminal/libqterminal/QTerminal.h libgui/qterminal/libqterminal/unix/TerminalView.cpp libgui/qterminal/libqterminal/unix/TerminalView.h libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h |
diffstat | 6 files changed, 8 insertions(+), 50 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc Tue Feb 23 09:29:31 2021 -0800 +++ b/libgui/qterminal/libqterminal/QTerminal.cc Wed Feb 24 21:44:02 2021 +0100 @@ -70,25 +70,6 @@ return terminal; } -// slot for disabling the interrupt action when terminal loses focus -void -QTerminal::set_global_shortcuts (bool focus_out) - { - if (focus_out) - { - _interrupt_action->setShortcut (QKeySequence ()); - _nop_action->setShortcut (QKeySequence ()); - } - else - { - _interrupt_action->setShortcut - (QKeySequence (Qt::ControlModifier | Qt::Key_C)); - - _nop_action->setShortcut - (QKeySequence (Qt::ControlModifier | Qt::Key_D)); - } - } - // slot for the terminal's context menu void QTerminal::handleCustomContextMenuRequested (const QPoint& at) @@ -281,9 +262,12 @@ QString sc = settings->sc_value (sc_main_edit_copy); - // Dis- or enable extra interrupt action depending on the Copy shortcut + // Dis- or enable extra interrupt action: We need an extra option when + // copy shortcut is not Ctrl-C or when global shortcuts (like copy) are + // disabled. bool extra_ir_action - = (sc != QKeySequence (Qt::ControlModifier | Qt::Key_C).toString ()); + = (sc != QKeySequence (Qt::ControlModifier | Qt::Key_C).toString ()) + || settings->value (sc_prevent_rl_conflicts).toBool (); _interrupt_action->setEnabled (extra_ir_action); has_extra_interrupt (extra_ir_action); @@ -373,8 +357,9 @@ _interrupt_action->setShortcut (QKeySequence (Qt::ControlModifier + Qt::Key_C)); + _interrupt_action->setShortcutContext (Qt::WidgetWithChildrenShortcut); - connect (_interrupt_action, SIGNAL (triggered ()), + bool ok = connect (_interrupt_action, SIGNAL (triggered ()), this, SLOT (terminal_interrupt ())); // dummy (nop) action catching Ctrl-D in terminal, no connection @@ -382,4 +367,5 @@ addAction (_nop_action); _nop_action->setShortcut (QKeySequence (Qt::ControlModifier + Qt::Key_D)); + _nop_action->setShortcutContext (Qt::WidgetWithChildrenShortcut); }
--- a/libgui/qterminal/libqterminal/QTerminal.h Tue Feb 23 09:29:31 2021 -0800 +++ b/libgui/qterminal/libqterminal/QTerminal.h Wed Feb 24 21:44:02 2021 +0100 @@ -123,8 +123,6 @@ void terminal_interrupt (void) { emit interrupt_signal (); } - void set_global_shortcuts (bool focus_out); - void run_selection (void); void edit_file (void);
--- a/libgui/qterminal/libqterminal/unix/TerminalView.cpp Tue Feb 23 09:29:31 2021 -0800 +++ b/libgui/qterminal/libqterminal/unix/TerminalView.cpp Wed Feb 24 21:44:02 2021 +0100 @@ -334,12 +334,6 @@ _gridLayout->setMargin(0); setLayout( _gridLayout ); - - connect (this, SIGNAL (set_global_shortcuts_signal (bool)), - parent->parent (), SLOT (set_global_shortcuts (bool))); - connect (this, SIGNAL (set_global_shortcuts_signal (bool)), - parent, SLOT (set_global_shortcuts (bool))); - } TerminalView::~TerminalView() @@ -983,8 +977,6 @@ void TerminalView::focusInEvent(QFocusEvent *focusEvent) { - emit set_global_shortcuts_signal (false); // disable some shortcuts - setBlinkingCursorState(true); updateImage(); repaint(); @@ -995,8 +987,6 @@ void TerminalView::focusOutEvent(QFocusEvent *focusEvent) { - emit set_global_shortcuts_signal (true); // re-enable shortcuts - // Force the cursor to be redrawn. _cursorBlinking = true; setBlinkingCursorState(false);
--- a/libgui/qterminal/libqterminal/unix/TerminalView.h Tue Feb 23 09:29:31 2021 -0800 +++ b/libgui/qterminal/libqterminal/unix/TerminalView.h Wed Feb 24 21:44:02 2021 +0100 @@ -497,12 +497,6 @@ void tripleClicked( const QString& text ); - /** - * Emitted when focus changes - */ - void set_global_shortcuts_signal (bool); - - protected: virtual void paintEvent( QPaintEvent * );
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Tue Feb 23 09:29:31 2021 -0800 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Wed Feb 24 21:44:02 2021 +0100 @@ -1447,11 +1447,6 @@ { installEventFilter (this); - connect (this, SIGNAL (set_global_shortcuts_signal (bool)), - main_win, SLOT (set_global_shortcuts (bool))); - connect (this, SIGNAL (set_global_shortcuts_signal (bool)), - this, SLOT (set_global_shortcuts (bool))); - connect (this, SIGNAL (set_screen_size_signal (int, int)), main_win, SLOT (set_screen_size (int, int))); @@ -1652,8 +1647,6 @@ void QWinTerminalImpl::focusInEvent (QFocusEvent* event) { - emit set_global_shortcuts_signal (false); // disable some shortcuts - setBlinkingCursorState (true); QWidget::focusInEvent (event); @@ -1661,8 +1654,6 @@ void QWinTerminalImpl::focusOutEvent (QFocusEvent* event) { - emit set_global_shortcuts_signal (true); // re-enable shortcuts - // Force the cursor to be redrawn. d->m_cursorBlinking = true;
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h Tue Feb 23 09:29:31 2021 -0800 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h Wed Feb 24 21:44:02 2021 +0100 @@ -78,7 +78,6 @@ signals: void terminated (void); void titleChanged (const QString&); - void set_global_shortcuts_signal (bool); void set_screen_size_signal (int, int); protected: