Mercurial > octave-nkf
diff libgui/qterminal/libqterminal/QTerminal.h @ 19724:bd1369a2a651
add extra action for interrupting with Ctrl-C (bug #44204)
* QTerminal.cc (notice_settings): check if copy-shortcut is Ctrl-C and set flag
for slots and enable/disable new interrupt-action accordingly
* QTerminal.h: new function setting flag (purely virtual);
(constructor): new interrupt-action with shortcut Ctrl-C
* QUnixTerminalImpl.cpp (copyClipboard): call internal function with flag;
(has_extra_interrupt): new function for setting flag for copy-/interrupt-
slots
* QUnixTerminalImpl.h new flag for slots and function setting flag
* TerminalView.cpp (copyClipboard): gets flag as parameter, only interrupts
if Ctrl-C is shortcut for copy
* TerminalView.h: copyClipboard with boolean parameter
* QWinTerminalImpl.cpp (copyClipboard): only interrupts if Ctrl-C is shortcut
for copy;
(has_extra_interrupt): function for setting flag for copy-/interrupts-slots
* QWinTerminalImpl.h: new flag and function setting the flag
author | Torsten <ttl@justmail.de> |
---|---|
date | Mon, 09 Feb 2015 09:56:25 +0100 |
parents | c6615ca0a11d |
children | 4197fc428c7d |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.h Tue Feb 10 09:21:54 2015 -0800 +++ b/libgui/qterminal/libqterminal/QTerminal.h Mon Feb 09 09:56:25 2015 +0100 @@ -33,6 +33,7 @@ #include <QMenu> #include <QClipboard> #include <QApplication> +#include <QAction> class QTerminal : public QWidget { @@ -56,6 +57,8 @@ virtual QString selectedText () = 0; + virtual void has_extra_interrupt (bool extra) = 0; + enum CursorType { UnderlineCursor, @@ -118,6 +121,7 @@ QTerminal (QWidget *xparent = 0) : QWidget (xparent) { + // context menu setContextMenuPolicy (Qt::CustomContextMenu); _contextMenu = new QMenu (this); @@ -161,6 +165,16 @@ connect (xparent, SIGNAL (selectAll_signal ()), this, SLOT (selectAll ())); + + // extra interrupt action + _interrupt_action = new QAction (this); + addAction (_interrupt_action); + + _interrupt_action->setShortcut ( + QKeySequence (Qt::ControlModifier + Qt::Key_C)); + + connect (_interrupt_action, SIGNAL (triggered (bool)), + this, SLOT (terminal_interrupt ())); } private: @@ -169,6 +183,8 @@ QAction * _copy_action; QAction * _paste_action; QAction * _selectall_action; + + QAction *_interrupt_action; }; #endif // QTERMINAL_H