restable: fix/properly implement Return as Open shortcut

This commit is contained in:
Jean-Francois Dockes 2019-07-19 08:35:54 +02:00
parent e3f420fd99
commit fb4c553939
2 changed files with 20 additions and 1 deletions

View File

@ -38,6 +38,7 @@
#include <QFileDialog> #include <QFileDialog>
#include <QMessageBox> #include <QMessageBox>
#include <QTimer> #include <QTimer>
#include <QKeyEvent>
#include "recoll.h" #include "recoll.h"
#include "docseq.h" #include "docseq.h"
@ -506,7 +507,6 @@ void ResTable::init()
tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
tableView->setItemDelegate(new ResTableDelegate(this)); tableView->setItemDelegate(new ResTableDelegate(this));
tableView->setContextMenuPolicy(Qt::CustomContextMenu); tableView->setContextMenuPolicy(Qt::CustomContextMenu);
new QShortcut(QKeySequence("Return"), this, SLOT(menuEdit()));
new QShortcut(QKeySequence("Ctrl+o"), this, SLOT(menuEdit())); new QShortcut(QKeySequence("Ctrl+o"), this, SLOT(menuEdit()));
new QShortcut(QKeySequence("Ctrl+Shift+o"), this, SLOT(menuEditAndQuit())); new QShortcut(QKeySequence("Ctrl+Shift+o"), this, SLOT(menuEditAndQuit()));
new QShortcut(QKeySequence("Ctrl+d"), this, SLOT(menuPreview())); new QShortcut(QKeySequence("Ctrl+d"), this, SLOT(menuPreview()));
@ -574,6 +574,23 @@ void ResTable::init()
this, SLOT(linkWasClicked(const QUrl &))); this, SLOT(linkWasClicked(const QUrl &)));
splitter->addWidget(m_detail); splitter->addWidget(m_detail);
splitter->setOrientation(Qt::Vertical); splitter->setOrientation(Qt::Vertical);
installEventFilter(this);
}
bool ResTable::eventFilter(QObject* obj, QEvent* event)
{
if (event->type() == QEvent::KeyPress) {
QKeyEvent* key = static_cast<QKeyEvent*>(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) void ResTable::setRclMain(RclMain *m, bool ismain)

View File

@ -171,6 +171,8 @@ signals:
friend class ResTablePager; friend class ResTablePager;
friend class ResTableDetailArea; friend class ResTableDetailArea;
protected:
bool eventFilter(QObject* obj, QEvent* event);
private: private:
void init(); void init();
RecollModel *m_model; RecollModel *m_model;