feat: start instance on enter/return
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
parent
1dc3e95e25
commit
3beaa58718
@ -31,6 +31,7 @@
|
|||||||
#include "ui/instanceview/InstanceTableProxyModel.h"
|
#include "ui/instanceview/InstanceTableProxyModel.h"
|
||||||
|
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
|
#include <QKeyEvent>
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
|
|
||||||
@ -89,6 +90,7 @@ void InstancesView::prepareModel()
|
|||||||
void InstancesView::createTable()
|
void InstancesView::createTable()
|
||||||
{
|
{
|
||||||
m_table = new QTableView(this);
|
m_table = new QTableView(this);
|
||||||
|
m_table->installEventFilter(this);
|
||||||
m_table->setModel(m_tableProxy);
|
m_table->setModel(m_tableProxy);
|
||||||
m_table->setItemDelegate(new InstanceDelegate(this, m_iconSize, false));
|
m_table->setItemDelegate(new InstanceDelegate(this, m_iconSize, false));
|
||||||
|
|
||||||
@ -137,6 +139,7 @@ void InstancesView::createTable()
|
|||||||
void InstancesView::createGrid()
|
void InstancesView::createGrid()
|
||||||
{
|
{
|
||||||
m_grid = new QListView(this);
|
m_grid = new QListView(this);
|
||||||
|
m_grid->installEventFilter(this);
|
||||||
m_grid->setModel(m_gridProxy);
|
m_grid->setModel(m_gridProxy);
|
||||||
m_grid->setModelColumn(InstanceList::NameColumn);
|
m_grid->setModelColumn(InstanceList::NameColumn);
|
||||||
m_grid->setItemDelegate(new InstanceDelegate(this, m_iconSize, true));
|
m_grid->setItemDelegate(new InstanceDelegate(this, m_iconSize, true));
|
||||||
@ -169,6 +172,20 @@ InstancePtr InstancesView::currentInstance()
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool InstancesView::eventFilter(QObject* obj, QEvent* event)
|
||||||
|
{
|
||||||
|
if (event->type() == QEvent::KeyPress) {
|
||||||
|
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
|
||||||
|
switch (keyEvent->key()) {
|
||||||
|
case Qt::Key_Return:
|
||||||
|
case Qt::Key_Enter:
|
||||||
|
activateInstance(currentView()->selectionModel()->currentIndex());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QObject::eventFilter(obj, event);
|
||||||
|
}
|
||||||
|
|
||||||
void InstancesView::activateInstance(const QModelIndex& index)
|
void InstancesView::activateInstance(const QModelIndex& index)
|
||||||
{
|
{
|
||||||
if (index.isValid()) {
|
if (index.isValid()) {
|
||||||
|
@ -68,6 +68,9 @@ class InstancesView : public QStackedWidget {
|
|||||||
void dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight);
|
void dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight);
|
||||||
void contextMenuRequested(const QPoint pos);
|
void contextMenuRequested(const QPoint pos);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool eventFilter(QObject *obj, QEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void createTable();
|
void createTable();
|
||||||
void createGrid();
|
void createGrid();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user