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