From b2fa6fca82348456508ba1f8c83b083f2f8a2ae8 Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Sat, 4 Mar 2017 12:19:18 -0500 Subject: [PATCH] Fixes crash when deleting in search mode. --- src/gui/DatabaseWidget.cpp | 14 +++++++++----- src/gui/DatabaseWidget.h | 3 +++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index aa66c4615..3da461cad 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -322,8 +322,7 @@ void DatabaseWidget::cloneEntry() Entry* entry = currentEntry->clone(Entry::CloneNewUuid | Entry::CloneResetTimeInfo | Entry::CloneRenameTitle); entry->setGroup(currentEntry->group()); - if (isInSearchMode()) - search(m_lastSearchText); + refreshSearch(); m_entryView->setFocus(); m_entryView->setCurrentEntry(entry); } @@ -366,6 +365,7 @@ void DatabaseWidget::deleteEntries() for (Entry* entry : asConst(selectedEntries)) { delete entry; } + refreshSearch(); } } else { @@ -875,6 +875,12 @@ void DatabaseWidget::databaseSaved() m_databaseModified = false; } +void DatabaseWidget::refreshSearch() { + if (isInSearchMode()) { + search(m_lastSearchText); + } +} + void DatabaseWidget::search(const QString& searchtext) { if (searchtext.isEmpty()) @@ -908,9 +914,7 @@ void DatabaseWidget::search(const QString& searchtext) void DatabaseWidget::setSearchCaseSensitive(bool state) { m_searchCaseSensitive = state; - - if (isInSearchMode()) - search(m_lastSearchText); + refreshSearch(); } void DatabaseWidget::onGroupChanged(Group* group) diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index 78b6131de..7bd4b6b49 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -147,10 +147,12 @@ public Q_SLOTS: void switchToImportKeepass1(const QString& fileName); void databaseModified(); void databaseSaved(); + // Search related slots void search(const QString& searchtext); void setSearchCaseSensitive(bool state); void endSearch(); + void showMessage(const QString& text, MessageWidget::MessageType type); void hideMessage(); @@ -177,6 +179,7 @@ private: void setClipboardTextAndMinimize(const QString& text); void setIconFromParent(); void replaceDatabase(Database* db); + void refreshSearch(); Database* m_db; QWidget* m_mainWidget;