mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-12-04 15:39:34 +01:00
Add "press enter to search" option (#12263)
* Also increase auto-search timeout to 500 ms to improve user experience, especially with large databases. The previous value of 100ms guaranteed a search was performed after every character entered, even when typing relatively fast. --------- Co-authored-by: Jonathan White <support@dmapps.us>
This commit is contained in:
@@ -1126,6 +1126,7 @@ void TestGui::testSearch()
|
||||
auto* searchWidget = toolBar->findChild<SearchWidget*>("SearchWidget");
|
||||
QVERIFY(searchWidget->isEnabled());
|
||||
auto* searchTextEdit = searchWidget->findChild<QLineEdit*>("searchEdit");
|
||||
auto* waitForEnterAction = searchWidget->findChild<QAction*>("actionSearchWaitForEnter");
|
||||
|
||||
auto* entryView = m_dbWidget->findChild<EntryView*>("entryView");
|
||||
QVERIFY(entryView->isVisible());
|
||||
@@ -1137,6 +1138,50 @@ void TestGui::testSearch()
|
||||
QVERIFY(helpButton->isVisible());
|
||||
QVERIFY(!helpPanel->isVisible());
|
||||
|
||||
// Test "wait for enter" toggle
|
||||
QVERIFY(waitForEnterAction->isVisible());
|
||||
QVERIFY(waitForEnterAction->isCheckable());
|
||||
|
||||
// Test search with "wait for enter" disabled (default)
|
||||
searchTextEdit->clear();
|
||||
QTest::keyClicks(searchTextEdit, "ZZZ");
|
||||
QTRY_COMPARE(searchTextEdit->text(), QString("ZZZ"));
|
||||
QTRY_VERIFY(m_dbWidget->isSearchActive());
|
||||
QTRY_COMPARE(entryView->model()->rowCount(), 0);
|
||||
|
||||
// Clear search
|
||||
searchTextEdit->clear();
|
||||
QTRY_VERIFY(!m_dbWidget->isSearchActive());
|
||||
|
||||
// Enable "wait for enter" mode
|
||||
waitForEnterAction->trigger();
|
||||
QVERIFY(waitForEnterAction->isChecked());
|
||||
|
||||
// Test search with "wait for enter" enabled
|
||||
QTest::keyClicks(searchTextEdit, "ZZZ");
|
||||
QTRY_VERIFY(!m_dbWidget->isSearchActive());
|
||||
|
||||
// Press Enter to execute search
|
||||
QTest::keyClick(searchTextEdit, Qt::Key_Return);
|
||||
QTRY_VERIFY(m_dbWidget->isSearchActive());
|
||||
QTRY_COMPARE(entryView->model()->rowCount(), 0);
|
||||
// Check that search remains active even after clearing
|
||||
searchTextEdit->clear();
|
||||
QTRY_VERIFY(m_dbWidget->isSearchActive());
|
||||
|
||||
// Disable "wait for enter" mode
|
||||
waitForEnterAction->trigger();
|
||||
QVERIFY(!waitForEnterAction->isChecked());
|
||||
|
||||
// Test search with "wait for enter" disabled again
|
||||
QTest::keyClicks(searchTextEdit, "ZZZ");
|
||||
QTRY_VERIFY(m_dbWidget->isSearchActive());
|
||||
QTRY_COMPARE(entryView->model()->rowCount(), 0);
|
||||
|
||||
// Clear search
|
||||
searchTextEdit->clear();
|
||||
QTRY_VERIFY(!m_dbWidget->isSearchActive());
|
||||
|
||||
// Enter search
|
||||
QTest::mouseClick(searchTextEdit, Qt::LeftButton);
|
||||
QTRY_VERIFY(searchTextEdit->hasFocus());
|
||||
|
||||
Reference in New Issue
Block a user