From d5bb0417af0359deb045622da89cbef54c038daa Mon Sep 17 00:00:00 2001 From: "G.K.MacGregor" Date: Fri, 12 Feb 2021 19:19:33 +0000 Subject: [PATCH] Prevent x26dockwidget stealing keys from main widget --- x26dockwidget.cpp | 17 +++++++++++++---- x26dockwidget.h | 3 +++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/x26dockwidget.cpp b/x26dockwidget.cpp index f60b7c5..f0bde6d 100644 --- a/x26dockwidget.cpp +++ b/x26dockwidget.cpp @@ -497,11 +497,20 @@ X26DockWidget::X26DockWidget(TeletextWidget *parent): QDockWidget(parent) connect(m_x26View, &QWidget::customContextMenuRequested, this, &X26DockWidget::customMenuRequested); connect(m_x26View, &QAbstractItemView::clicked, this, &X26DockWidget::rowClicked); +} - QShortcut* insertShortcut = new QShortcut(QKeySequence(Qt::Key_Insert), m_x26View); - connect(insertShortcut, &QShortcut::activated, this, &X26DockWidget::insertTriplet); - QShortcut* deleteShortcut = new QShortcut(QKeySequence(Qt::Key_Delete), m_x26View); - connect(deleteShortcut, &QShortcut::activated, this, &X26DockWidget::deleteTriplet); +void X26DockWidget::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) { + case Qt::Key_Insert: + insertTriplet(); + break; + case Qt::Key_Delete: + deleteTriplet(); + break; + default: + QWidget::keyPressEvent(event); + } } void X26DockWidget::selectX26ListRow(int row) diff --git a/x26dockwidget.h b/x26dockwidget.h index d9dc8e5..2f81446 100644 --- a/x26dockwidget.h +++ b/x26dockwidget.h @@ -61,6 +61,9 @@ public slots: void updateModelFromCookedWidget(const int, const int); void selectX26ListRow(int); +protected: + void keyPressEvent(QKeyEvent *event) override; + private: QTableView *m_x26View; X26Model *m_x26Model;