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:
authorJonathan White <support@dmapps.us>2022-09-05 19:55:57 +0300
committerJonathan White <support@dmapps.us>2022-09-08 13:46:48 +0300
commite5bd5f39fb0951a6d31e08e1fb62865ceebe8620 (patch)
treefeda0fff0536971171d6cabcb6a0f4e2121d0954
parentdfee59742f6f630df24178cada6eea1614004e70 (diff)
Use search for showing expired entries on unlock
* Fix #8036 - use search interface to display expiring entries on first unlock.
-rw-r--r--src/gui/DatabaseWidget.cpp18
-rw-r--r--src/gui/DatabaseWidget.h1
-rw-r--r--tests/gui/TestGui.cpp2
3 files changed, 14 insertions, 7 deletions
diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp
index 39f3595e5..712cab6a0 100644
--- a/src/gui/DatabaseWidget.cpp
+++ b/src/gui/DatabaseWidget.cpp
@@ -1128,13 +1128,13 @@ void DatabaseWidget::loadDatabase(bool accepted)
// Only show expired entries if first unlock and option is enabled
if (m_groupBeforeLock.isNull() && config()->get(Config::GUI_ShowExpiredEntriesOnDatabaseUnlock).toBool()) {
int expirationOffset = config()->get(Config::GUI_ShowExpiredEntriesOnDatabaseUnlockOffsetDays).toInt();
+ if (expirationOffset <= 0) {
+ m_nextSearchLabelText = tr("Expired entries");
+ } else {
+ m_nextSearchLabelText =
+ tr("Entries expiring within %1 day(s)", "", expirationOffset).arg(expirationOffset);
+ }
requestSearch(QString("is:expired-%1").arg(expirationOffset));
- QTimer::singleShot(150, this, [=] {
- m_searchingLabel->setText(
- expirationOffset == 0
- ? tr("Expired entries")
- : tr("Entries expiring within %1 day(s)", "", expirationOffset).arg(expirationOffset));
- });
}
m_groupBeforeLock = QUuid();
@@ -1426,7 +1426,10 @@ void DatabaseWidget::search(const QString& searchtext)
m_lastSearchText = searchtext;
// Display a label detailing our search results
- if (!searchResult.isEmpty()) {
+ if (!m_nextSearchLabelText.isEmpty()) {
+ m_searchingLabel->setText(m_nextSearchLabelText);
+ m_nextSearchLabelText.clear();
+ } else if (!searchResult.isEmpty()) {
m_searchingLabel->setText(tr("Search Results (%1)").arg(searchResult.size()));
} else {
m_searchingLabel->setText(tr("No Results"));
@@ -1545,6 +1548,7 @@ void DatabaseWidget::endSearch()
m_searchingLabel->setText(tr("Searching…"));
m_lastSearchText.clear();
+ m_nextSearchLabelText.clear();
// Tell the search widget to clear
emit clearSearch();
diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h
index ede5a5fbf..57108dfbf 100644
--- a/src/gui/DatabaseWidget.h
+++ b/src/gui/DatabaseWidget.h
@@ -302,6 +302,7 @@ private:
// Search state
QScopedPointer<EntrySearcher> m_entrySearcher;
QString m_lastSearchText;
+ QString m_nextSearchLabelText;
bool m_searchLimitGroup;
// Autoreload
diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp
index c00e3a10b..c1b339f33 100644
--- a/tests/gui/TestGui.cpp
+++ b/tests/gui/TestGui.cpp
@@ -111,6 +111,8 @@ void TestGui::init()
config()->set(Config::Security_QuickUnlock, false);
// Disable atomic saves to prevent transient errors on some platforms
config()->set(Config::UseAtomicSaves, false);
+ // Disable showing expired entries on unlock
+ config()->set(Config::GUI_ShowExpiredEntriesOnDatabaseUnlock, false);
// Copy the test database file to the temporary file
auto origFilePath = QDir(KEEPASSX_TEST_DATA_DIR).absoluteFilePath("NewDatabase.kdbx");