diff --git a/tools/lammps-gui/chartviewer.cpp b/tools/lammps-gui/chartviewer.cpp index d79f0b2748..f28625d9dc 100644 --- a/tools/lammps-gui/chartviewer.cpp +++ b/tools/lammps-gui/chartviewer.cpp @@ -65,8 +65,9 @@ ChartWindow::ChartWindow(const QString &_filename, QWidget *parent) : setLayout(layout); connect(normal, &QPushButton::released, this, &ChartWindow::reset_zoom); - connect(columns, SIGNAL(currentIndexChanged(int)), this, SLOT(change_chart(int))); + installEventFilter(this); + QSettings settings; resize(settings.value("chartx", 500).toInt(), settings.value("charty", 320).toInt()); } @@ -234,6 +235,26 @@ void ChartWindow::closeEvent(QCloseEvent *event) QWidget::closeEvent(event); } +// event filter to handle "Ambiguous shortcut override" issues +bool ChartWindow::eventFilter(QObject *watched, QEvent *event) +{ + if (event->type() == QEvent::ShortcutOverride) { + QKeyEvent *keyEvent = dynamic_cast(event); + if (!keyEvent) return QWidget::eventFilter(watched, event); + if (keyEvent->modifiers().testFlag(Qt::ControlModifier) && keyEvent->key() == '/') { + stop_run(); + event->accept(); + return true; + } + if (keyEvent->modifiers().testFlag(Qt::ControlModifier) && keyEvent->key() == 'W') { + close(); + event->accept(); + return true; + } + } + return QWidget::eventFilter(watched, event); +} + /* -------------------------------------------------------------------- */ ChartViewer::ChartViewer(const QString &title, int _index, QWidget *parent) : diff --git a/tools/lammps-gui/chartviewer.h b/tools/lammps-gui/chartviewer.h index 60a9cfba79..248fdad7bb 100644 --- a/tools/lammps-gui/chartviewer.h +++ b/tools/lammps-gui/chartviewer.h @@ -54,6 +54,7 @@ private slots: protected: void closeEvent(QCloseEvent *event) override; + bool eventFilter(QObject *watched, QEvent *event) override; private: QMenuBar *menu;