Mercurial > hg > octave-lyh
changeset 17272:aa09b746fa16
Windows GUI: Reimplement tabbing in terminal window
* libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h, libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp
(QWinTerminalImpl::QWinTerminalImpl): Install event filter.
(QWinTerminalImpl::eventFilter): New function.
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Fri, 16 Aug 2013 15:43:03 -0400 |
parents | 2ab5636ee75f |
children | 53f1d5bb58bc |
files | libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h |
diffstat | 2 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp @@ -1227,6 +1227,8 @@ QWinTerminalImpl::QWinTerminalImpl (QWidget* parent) : QTerminal (parent), d (new QConsolePrivate (this)) { + installEventFilter (this); + connect (this, SIGNAL (set_global_shortcuts_signal (bool)), parent, SLOT (set_global_shortcuts (bool))); } @@ -1397,6 +1399,22 @@ QWidget::focusOutEvent (event); } +bool QWinTerminalImpl::eventFilter (QObject *obj, QEvent * event) +{ + // if a keypress, filter out tab keys so that the next/prev tabbing is + // disabled - but we still need to pass along to the console . + if (event->type () == QEvent::KeyPress) + { + QKeyEvent* k = static_cast<QKeyEvent*>(event); + if (k->key () == Qt::Key_Tab) + { + sendText ("\t"); + return true; + } + } + return false; +} + void QWinTerminalImpl::keyPressEvent (QKeyEvent* event) { QString s = translateKey (event);
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h @@ -86,6 +86,8 @@ void mousePressEvent (QMouseEvent *event); void mouseReleaseEvent (QMouseEvent *event); + bool eventFilter(QObject *obj, QEvent *ev); + private slots: void scrollValueChanged (int value); void monitorConsole (void);