use event filter to bypass default shortcuts that conflict with our custom ones
This commit is contained in:
@ -65,8 +65,9 @@ ChartWindow::ChartWindow(const QString &_filename, QWidget *parent) :
|
|||||||
setLayout(layout);
|
setLayout(layout);
|
||||||
|
|
||||||
connect(normal, &QPushButton::released, this, &ChartWindow::reset_zoom);
|
connect(normal, &QPushButton::released, this, &ChartWindow::reset_zoom);
|
||||||
|
|
||||||
connect(columns, SIGNAL(currentIndexChanged(int)), this, SLOT(change_chart(int)));
|
connect(columns, SIGNAL(currentIndexChanged(int)), this, SLOT(change_chart(int)));
|
||||||
|
installEventFilter(this);
|
||||||
|
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
resize(settings.value("chartx", 500).toInt(), settings.value("charty", 320).toInt());
|
resize(settings.value("chartx", 500).toInt(), settings.value("charty", 320).toInt());
|
||||||
}
|
}
|
||||||
@ -234,6 +235,26 @@ void ChartWindow::closeEvent(QCloseEvent *event)
|
|||||||
QWidget::closeEvent(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<QKeyEvent *>(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) :
|
ChartViewer::ChartViewer(const QString &title, int _index, QWidget *parent) :
|
||||||
|
|||||||
@ -54,6 +54,7 @@ private slots:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
bool eventFilter(QObject *watched, QEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMenuBar *menu;
|
QMenuBar *menu;
|
||||||
|
|||||||
Reference in New Issue
Block a user