Mercurial > octave-nkf
view libgui/qterminal/libqterminal/win32/QWinTerminalImpl.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 |
line wrap: on
line source
/* Copyright (C) 2011, 2013 Michael Goffioul. This file is part of QConsole. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef __QConsole_h__ #define __QConsole_h__ 1 #include <QWidget> #include "QTerminal.h" class QFocusEvent; class QKeyEvent; class QPainter; class QPaintEvent; class QResizeEvent; class QWheelEvent; class QPoint; class QDragEnterEvent; class QDropEvent; class QConsolePrivate; class QConsoleThread; class QConsoleView; ////////////////////////////////////////////////////////////////////////////// class QWinTerminalImpl : public QTerminal { Q_OBJECT friend class QConsolePrivate; friend class QConsoleThread; friend class QConsoleView; public: QWinTerminalImpl (QWidget* parent = 0); QWinTerminalImpl (const QString& cmd, QWidget* parent = 0); ~QWinTerminalImpl (void); void setTerminalFont (const QFont& font); void setSize (int columns, int lines); void sendText (const QString& s); void setCursorType (CursorType type, bool blinking); void setBackgroundColor (const QColor& color); void setForegroundColor (const QColor& color); void setSelectionColor (const QColor& color); void setCursorColor (bool useForegoundColor, const QColor& color); void setScrollBufferSize(int value); QString selectedText (); void has_extra_interrupt (bool); public slots: void copyClipboard (void); void pasteClipboard (void); void selectAll (void); void blinkCursorEvent (void); void init_terminal_size (void); signals: void terminated (void); void titleChanged (const QString&); void set_global_shortcuts_signal (bool); void set_screen_size_signal (int, int); protected: void viewPaintEvent (QConsoleView*, QPaintEvent*); void setBlinkingCursor (bool blink); void setBlinkingCursorState (bool blink); void viewResizeEvent (QConsoleView*, QResizeEvent*); void wheelEvent (QWheelEvent*); void focusInEvent (QFocusEvent*); void focusOutEvent (QFocusEvent*); void keyPressEvent (QKeyEvent*); virtual void start (void); void mouseMoveEvent (QMouseEvent *event); void mousePressEvent (QMouseEvent *event); void mouseReleaseEvent (QMouseEvent *event); void mouseDoubleClickEvent (QMouseEvent* event); void mouseTripleClickEvent (QMouseEvent* event); bool eventFilter(QObject *obj, QEvent *ev); void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); private slots: void horizontalScrollValueChanged (int value); void verticalScrollValueChanged (int value); void monitorConsole (void); void updateSelection (void); void tripleClickTimeout (void); private: QConsolePrivate* d; bool allowTripleClick; bool _extra_interrupt; }; ////////////////////////////////////////////////////////////////////////////// #endif // __QConsole_h__