Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/entry/EntryView.cpp')
-rw-r--r--src/gui/entry/EntryView.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gui/entry/EntryView.cpp b/src/gui/entry/EntryView.cpp
index cd7896b06..bff11e124 100644
--- a/src/gui/entry/EntryView.cpp
+++ b/src/gui/entry/EntryView.cpp
@@ -18,9 +18,11 @@
#include "EntryView.h"
+#include <QAccessible>
#include <QHeaderView>
#include <QKeyEvent>
#include <QMenu>
+#include <QShortcut>
#include "core/FilePath.h"
#include "gui/SortFilterHideProxyModel.h"
@@ -56,6 +58,8 @@ EntryView::EntryView(QWidget* parent)
connect(m_model, SIGNAL(passwordsHiddenChanged()), SIGNAL(viewStateChanged()));
// clang-format on
+ new QShortcut(Qt::CTRL + Qt::Key_F10, this, SLOT(contextMenuShortcutPressed()), nullptr, Qt::WidgetShortcut);
+
m_headerMenu = new QMenu(this);
m_headerMenu->setTitle(tr("Customize View"));
m_headerMenu->addSection(tr("Customize View"));
@@ -128,6 +132,14 @@ EntryView::EntryView(QWidget* parent)
m_model->setPaperClipPixmap(filePath()->icon("actions", "paperclip").pixmap(16));
}
+void EntryView::contextMenuShortcutPressed()
+{
+ auto index = currentIndex();
+ if (hasFocus() && index.isValid()) {
+ emit customContextMenuRequested(visualRect(index).bottomLeft());
+ }
+}
+
void EntryView::keyPressEvent(QKeyEvent* event)
{
if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) && currentIndex().isValid()) {
@@ -140,15 +152,18 @@ void EntryView::keyPressEvent(QKeyEvent* event)
int last = m_model->rowCount() - 1;
if (last > 0) {
+ QAccessibleEvent accessibleEvent(this, QAccessible::PageChanged);
if (event->key() == Qt::Key_Up && currentIndex().row() == 0) {
QModelIndex index = m_sortModel->mapToSource(m_sortModel->index(last, 0));
setCurrentEntry(m_model->entryFromIndex(index));
+ QAccessible::updateAccessibility(&accessibleEvent);
return;
}
if (event->key() == Qt::Key_Down && currentIndex().row() == last) {
QModelIndex index = m_sortModel->mapToSource(m_sortModel->index(0, 0));
setCurrentEntry(m_model->entryFromIndex(index));
+ QAccessible::updateAccessibility(&accessibleEvent);
return;
}
}