mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-08-10 07:20:23 -04:00
Fix multiple issues with entries and keyboard shortcuts (#2431)
* Cleanup entry change notification with entryview focus in/out * Change Open URL shortcut to CTRL+SHIFT+U to conform with an "action" including SHIFT * Change Copy URL shortcut to CTRL+U to conform with "copy" without SHIFT * Entry specific toolbar and menu items are disabled unless the entry row has focus (prevents unintended actions) * Reword security setting for password visibility in entry edit view * Add shortcut to hide/unhide usernames (CTRL+SHIFT+B) * Organize entry menu * Fix #1588 - show keyboard shortcuts in context menu * Fix #2403 - Change auto-type shortcut to CTRL + SHIFT + V * Fix #2096 - Add (CTRL+F) to search bar background * Fix #2031 & Fix #2266 - add shortcut to hide/unhide passwords (CTRL+SHIFT+C) * Fix #2166 - Add reveal password button to entry preview
This commit is contained in:
parent
f06742cf41
commit
ee9c71e11e
16 changed files with 396 additions and 256 deletions
|
@ -736,11 +736,9 @@ void TestGui::testTotp()
|
|||
auto* entryView = m_dbWidget->findChild<EntryView*>("entryView");
|
||||
|
||||
QCOMPARE(entryView->model()->rowCount(), 1);
|
||||
|
||||
QCOMPARE(m_dbWidget->currentMode(), DatabaseWidget::ViewMode);
|
||||
QModelIndex item = entryView->model()->index(0, 1);
|
||||
Entry* entry = entryView->entryFromIndex(item);
|
||||
|
||||
clickIndex(item, entryView, Qt::LeftButton);
|
||||
|
||||
triggerAction("actionEntrySetupTotp");
|
||||
|
@ -749,21 +747,28 @@ void TestGui::testTotp()
|
|||
|
||||
QApplication::processEvents();
|
||||
|
||||
QString exampleSeed = "gezdgnbvgy3tqojqgezdgnbvgy3tqojq";
|
||||
auto* seedEdit = setupTotpDialog->findChild<QLineEdit*>("seedEdit");
|
||||
seedEdit->setText("");
|
||||
|
||||
QString exampleSeed = "gezdgnbvgy3tqojqgezdgnbvgy3tqojq";
|
||||
QTest::keyClicks(seedEdit, exampleSeed);
|
||||
|
||||
auto* setupTotpButtonBox = setupTotpDialog->findChild<QDialogButtonBox*>("buttonBox");
|
||||
QTest::mouseClick(setupTotpButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton);
|
||||
QTRY_VERIFY(!setupTotpDialog->isVisible());
|
||||
|
||||
// Make sure the entryView is selected and active
|
||||
entryView->activateWindow();
|
||||
QApplication::processEvents();
|
||||
QTRY_VERIFY(entryView->hasFocus());
|
||||
|
||||
auto* entryEditAction = m_mainWindow->findChild<QAction*>("actionEntryEdit");
|
||||
QWidget* entryEditWidget = toolBar->widgetForAction(entryEditAction);
|
||||
QVERIFY(entryEditWidget->isVisible());
|
||||
QVERIFY(entryEditWidget->isEnabled());
|
||||
QTest::mouseClick(entryEditWidget, Qt::LeftButton);
|
||||
QCOMPARE(m_dbWidget->currentMode(), DatabaseWidget::EditMode);
|
||||
auto* editEntryWidget = m_dbWidget->findChild<EditEntryWidget*>("editEntryWidget");
|
||||
|
||||
auto* editEntryWidget = m_dbWidget->findChild<EditEntryWidget*>("editEntryWidget");
|
||||
editEntryWidget->setCurrentPage(1);
|
||||
auto* attrTextEdit = editEntryWidget->findChild<QPlainTextEdit*>("attributesEdit");
|
||||
QTest::mouseClick(editEntryWidget->findChild<QAbstractButton*>("revealAttributeButton"), Qt::LeftButton);
|
||||
|
@ -836,15 +841,19 @@ void TestGui::testSearch()
|
|||
// Ensure Down focuses on entry view when search text is selected
|
||||
QTest::keyClick(searchTextEdit, Qt::Key_Down);
|
||||
QTRY_VERIFY(entryView->hasFocus());
|
||||
// Refocus back to search edit
|
||||
QTest::mouseClick(searchTextEdit, Qt::LeftButton);
|
||||
QTRY_VERIFY(searchTextEdit->hasFocus());
|
||||
// Test password copy
|
||||
// Test that password copies (entry has focus)
|
||||
QClipboard* clipboard = QApplication::clipboard();
|
||||
QTest::keyClick(searchTextEdit, Qt::Key_C, Qt::ControlModifier);
|
||||
QModelIndex searchedItem = entryView->model()->index(0, 1);
|
||||
Entry* searchedEntry = entryView->entryFromIndex(searchedItem);
|
||||
QTRY_COMPARE(searchedEntry->password(), clipboard->text());
|
||||
// Refocus back to search edit
|
||||
QTest::mouseClick(searchTextEdit, Qt::LeftButton);
|
||||
QTRY_VERIFY(searchTextEdit->hasFocus());
|
||||
// Test that password does not copy
|
||||
searchTextEdit->selectAll();
|
||||
QTest::keyClick(searchTextEdit, Qt::Key_C, Qt::ControlModifier);
|
||||
QTRY_COMPARE(clipboard->text(), QString("someTHING"));
|
||||
|
||||
// Test case sensitive search
|
||||
searchWidget->setCaseSensitive(true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue