From fb4c553939ea9f5b476a35594a18e6eae7b20c49 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Fri, 19 Jul 2019 08:35:54 +0200 Subject: [PATCH] restable: fix/properly implement Return as Open shortcut --- src/qtgui/restable.cpp | 19 ++++++++++++++++++- src/qtgui/restable.h | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/qtgui/restable.cpp b/src/qtgui/restable.cpp index b2d572c3..36c9a193 100644 --- a/src/qtgui/restable.cpp +++ b/src/qtgui/restable.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include "recoll.h" #include "docseq.h" @@ -506,7 +507,6 @@ void ResTable::init() tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setItemDelegate(new ResTableDelegate(this)); tableView->setContextMenuPolicy(Qt::CustomContextMenu); - new QShortcut(QKeySequence("Return"), this, SLOT(menuEdit())); new QShortcut(QKeySequence("Ctrl+o"), this, SLOT(menuEdit())); new QShortcut(QKeySequence("Ctrl+Shift+o"), this, SLOT(menuEditAndQuit())); new QShortcut(QKeySequence("Ctrl+d"), this, SLOT(menuPreview())); @@ -574,6 +574,23 @@ void ResTable::init() this, SLOT(linkWasClicked(const QUrl &))); splitter->addWidget(m_detail); splitter->setOrientation(Qt::Vertical); + installEventFilter(this); +} + +bool ResTable::eventFilter(QObject* obj, QEvent* event) +{ + if (event->type() == QEvent::KeyPress) { + QKeyEvent* key = static_cast(event); + if ((key->key() == Qt::Key_Enter) || (key->key() == Qt::Key_Return)) { + menuEdit(); + return true; + } else { + return QObject::eventFilter(obj, event); + } + } else { + return QObject::eventFilter(obj, event); + } + return false; } void ResTable::setRclMain(RclMain *m, bool ismain) diff --git a/src/qtgui/restable.h b/src/qtgui/restable.h index b502739c..9c0fafbb 100644 --- a/src/qtgui/restable.h +++ b/src/qtgui/restable.h @@ -171,6 +171,8 @@ signals: friend class ResTablePager; friend class ResTableDetailArea; +protected: + bool eventFilter(QObject* obj, QEvent* event); private: void init(); RecollModel *m_model;