mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-09-20 04:12:15 +02:00
parent
9b8feed3ed
commit
31aa5e12e5
@ -73,9 +73,13 @@ void AutoTypeMatchView::keyPressEvent(QKeyEvent* event)
|
|||||||
{
|
{
|
||||||
if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) && currentIndex().isValid()) {
|
if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) && currentIndex().isValid()) {
|
||||||
emit matchActivated(matchFromIndex(currentIndex()));
|
emit matchActivated(matchFromIndex(currentIndex()));
|
||||||
|
} else if (event->key() == Qt::Key_PageUp) {
|
||||||
|
moveSelection(-5);
|
||||||
|
} else if (event->key() == Qt::Key_PageDown) {
|
||||||
|
moveSelection(5);
|
||||||
|
} else {
|
||||||
|
QTableView::keyPressEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
QTableView::keyPressEvent(event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTypeMatchView::setMatchList(const QList<AutoTypeMatch>& matches, bool selectFirst)
|
void AutoTypeMatchView::setMatchList(const QList<AutoTypeMatch>& matches, bool selectFirst)
|
||||||
@ -101,6 +105,13 @@ void AutoTypeMatchView::filterList(const QString& filter)
|
|||||||
setCurrentIndex(m_sortModel->index(0, 0));
|
setCurrentIndex(m_sortModel->index(0, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AutoTypeMatchView::moveSelection(int offset)
|
||||||
|
{
|
||||||
|
auto index = currentIndex();
|
||||||
|
auto row = index.isValid() ? index.row() : -1;
|
||||||
|
selectRow(qBound(0, row + offset, model()->rowCount() - 1));
|
||||||
|
}
|
||||||
|
|
||||||
AutoTypeMatch AutoTypeMatchView::currentMatch()
|
AutoTypeMatch AutoTypeMatchView::currentMatch()
|
||||||
{
|
{
|
||||||
QModelIndexList list = selectionModel()->selectedRows();
|
QModelIndexList list = selectionModel()->selectedRows();
|
||||||
|
@ -36,6 +36,7 @@ public:
|
|||||||
AutoTypeMatch matchFromIndex(const QModelIndex& index);
|
AutoTypeMatch matchFromIndex(const QModelIndex& index);
|
||||||
void setMatchList(const QList<AutoTypeMatch>& matches, bool selectFirst);
|
void setMatchList(const QList<AutoTypeMatch>& matches, bool selectFirst);
|
||||||
void filterList(const QString& filter);
|
void filterList(const QString& filter);
|
||||||
|
void moveSelection(int offset);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentMatchChanged(AutoTypeMatch match);
|
void currentMatchChanged(AutoTypeMatch match);
|
||||||
|
@ -147,33 +147,6 @@ void AutoTypeSelectDialog::performSearch()
|
|||||||
m_ui->view->setMatchList(matches, !m_ui->search->text().isEmpty());
|
m_ui->view->setMatchList(matches, !m_ui->search->text().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
void AutoTypeSelectDialog::moveSelectionUp()
|
|
||||||
{
|
|
||||||
auto current = m_ui->view->currentIndex();
|
|
||||||
auto previous = current.sibling(current.row() - 1, 0);
|
|
||||||
|
|
||||||
if (previous.isValid()) {
|
|
||||||
m_ui->view->setCurrentIndex(previous);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AutoTypeSelectDialog::moveSelectionDown()
|
|
||||||
{
|
|
||||||
auto current = m_ui->view->currentIndex();
|
|
||||||
|
|
||||||
// special case where we have no default selection (empty search)
|
|
||||||
if (!current.isValid()) {
|
|
||||||
m_ui->view->setCurrentIndex(m_ui->view->indexAt({0, 0}));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto next = current.sibling(current.row() + 1, 0);
|
|
||||||
|
|
||||||
if (next.isValid()) {
|
|
||||||
m_ui->view->setCurrentIndex(next);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AutoTypeSelectDialog::activateCurrentMatch()
|
void AutoTypeSelectDialog::activateCurrentMatch()
|
||||||
{
|
{
|
||||||
submitAutoTypeMatch(m_ui->view->currentMatch());
|
submitAutoTypeMatch(m_ui->view->currentMatch());
|
||||||
@ -217,10 +190,16 @@ bool AutoTypeSelectDialog::eventFilter(QObject* obj, QEvent* event)
|
|||||||
auto* keyEvent = static_cast<QKeyEvent*>(event);
|
auto* keyEvent = static_cast<QKeyEvent*>(event);
|
||||||
switch (keyEvent->key()) {
|
switch (keyEvent->key()) {
|
||||||
case Qt::Key_Up:
|
case Qt::Key_Up:
|
||||||
moveSelectionUp();
|
m_ui->view->moveSelection(-1);
|
||||||
return true;
|
return true;
|
||||||
case Qt::Key_Down:
|
case Qt::Key_Down:
|
||||||
moveSelectionDown();
|
m_ui->view->moveSelection(1);
|
||||||
|
return true;
|
||||||
|
case Qt::Key_PageUp:
|
||||||
|
m_ui->view->moveSelection(-5);
|
||||||
|
return true;
|
||||||
|
case Qt::Key_PageDown:
|
||||||
|
m_ui->view->moveSelection(5);
|
||||||
return true;
|
return true;
|
||||||
case Qt::Key_Escape:
|
case Qt::Key_Escape:
|
||||||
if (m_ui->search->text().isEmpty()) {
|
if (m_ui->search->text().isEmpty()) {
|
||||||
|
@ -52,8 +52,6 @@ protected:
|
|||||||
private slots:
|
private slots:
|
||||||
void submitAutoTypeMatch(AutoTypeMatch match);
|
void submitAutoTypeMatch(AutoTypeMatch match);
|
||||||
void performSearch();
|
void performSearch();
|
||||||
void moveSelectionUp();
|
|
||||||
void moveSelectionDown();
|
|
||||||
void activateCurrentMatch();
|
void activateCurrentMatch();
|
||||||
void updateActionMenu(const AutoTypeMatch& match);
|
void updateActionMenu(const AutoTypeMatch& match);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user