From d2233af8a054e76456bfbf17ca1e185fefd5fc21 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 16 Aug 2025 11:49:26 +0200 Subject: [PATCH] impr: Make find view settings collapse when any items were found --- plugins/builtin/include/content/views/view_find.hpp | 1 + plugins/builtin/source/content/views/view_find.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/builtin/include/content/views/view_find.hpp b/plugins/builtin/include/content/views/view_find.hpp index ea5fcfff6..bb056eb46 100644 --- a/plugins/builtin/include/content/views/view_find.hpp +++ b/plugins/builtin/include/content/views/view_find.hpp @@ -106,6 +106,7 @@ namespace hex::plugin::builtin { PerProvider m_lastSelectedOccurrence; PerProvider m_occurrenceTree; PerProvider m_currFilter; + PerProvider m_settingsCollapsed; TaskHolder m_searchTask, m_filterTask; bool m_settingsValid = false; diff --git a/plugins/builtin/source/content/views/view_find.cpp b/plugins/builtin/source/content/views/view_find.cpp index 8cdd7143f..2e02e94e8 100644 --- a/plugins/builtin/source/content/views/view_find.cpp +++ b/plugins/builtin/source/content/views/view_find.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include @@ -592,8 +593,9 @@ namespace hex::plugin::builtin { for (const auto &occurrence : m_foundOccurrences.get(provider)) m_occurrenceTree->insert({ occurrence.region.getStartAddress(), occurrence.region.getEndAddress() }, occurrence); - TaskManager::doLater([] { + TaskManager::doLater([this, provider] { EventHighlightingChanged::post(); + m_settingsCollapsed.get(provider) = !m_foundOccurrences->empty(); }); }); } @@ -721,7 +723,9 @@ namespace hex::plugin::builtin { ImGui::BeginDisabled(m_searchTask.isRunning()); { - if (ImGuiExt::BeginSubWindow("hex.ui.common.settings"_lang)) { + auto &collapsed = m_settingsCollapsed.get(provider); + ImGui::SetNextWindowScroll(ImVec2(0, 0)); + if (ImGuiExt::BeginSubWindow("hex.ui.common.settings"_lang, &collapsed, collapsed ? ImVec2(0, 1) : ImVec2(0, 0))) { ui::regionSelectionPicker(&m_searchSettings.region, provider, &m_searchSettings.range, false, true); ImGui::SameLine();