# HG changeset patch # User John Donoghue # Date 1376682183 14400 # Node ID aa09b746fa16b6bdb4c9f0f9316be6dc2a047bc7 # Parent 2ab5636ee75fcaa5365466d008ef1528b5c25f3d 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. diff -r 2ab5636ee75f -r aa09b746fa16 libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp --- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Fri Aug 16 13:00:46 2013 -0400 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Fri Aug 16 15:43:03 2013 -0400 @@ -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(event); + if (k->key () == Qt::Key_Tab) + { + sendText ("\t"); + return true; + } + } + return false; +} + void QWinTerminalImpl::keyPressEvent (QKeyEvent* event) { QString s = translateKey (event); diff -r 2ab5636ee75f -r aa09b746fa16 libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h --- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h Fri Aug 16 13:00:46 2013 -0400 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h Fri Aug 16 15:43:03 2013 -0400 @@ -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);