From 0a115a3c0384ca3dc2382152507ba8c7960edcff Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 3 Sep 2022 23:15:30 +0200 Subject: [PATCH] fix: Filtering search occurrences in Find view with multiple files being broken Fixes #685 --- plugins/builtin/include/content/views/view_find.hpp | 2 +- plugins/builtin/source/content/views/view_find.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/builtin/include/content/views/view_find.hpp b/plugins/builtin/include/content/views/view_find.hpp index 836cd583e..8335aec76 100644 --- a/plugins/builtin/include/content/views/view_find.hpp +++ b/plugins/builtin/include/content/views/view_find.hpp @@ -73,11 +73,11 @@ namespace hex::plugin::builtin { std::map> m_foundOccurrences, m_sortedOccurrences; std::map m_occurrenceTree; + std::map m_currFilter; TaskHolder m_searchTask; bool m_settingsValid = false; - std::string m_currFilter; private: static std::vector searchStrings(Task &task, prv::Provider *provider, Region searchRegion, SearchSettings::Strings settings); static std::vector searchSequence(Task &task, prv::Provider *provider, Region searchRegion, SearchSettings::Bytes settings); diff --git a/plugins/builtin/source/content/views/view_find.cpp b/plugins/builtin/source/content/views/view_find.cpp index f5888367a..870c9cc1c 100644 --- a/plugins/builtin/source/content/views/view_find.cpp +++ b/plugins/builtin/source/content/views/view_find.cpp @@ -524,11 +524,11 @@ namespace hex::plugin::builtin { auto &currOccurrences = this->m_sortedOccurrences[provider]; ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x); - if (ImGui::InputTextWithHint("##filter", "hex.builtin.common.filter"_lang, this->m_currFilter)) { - this->m_sortedOccurrences = this->m_foundOccurrences; + if (ImGui::InputTextWithHint("##filter", "hex.builtin.common.filter"_lang, this->m_currFilter[provider])) { + this->m_sortedOccurrences[provider] = this->m_foundOccurrences[provider]; currOccurrences.erase(std::remove_if(currOccurrences.begin(), currOccurrences.end(), [this, provider](const auto ®ion) { - return !this->decodeValue(provider, region).contains(this->m_currFilter); + return !this->decodeValue(provider, region).contains(this->m_currFilter[provider]); }), currOccurrences.end()); } ImGui::PopItemWidth();