impr: Make find view settings collapse when any items were found

This commit is contained in:
WerWolv
2025-08-16 11:49:26 +02:00
parent a411d489c1
commit d2233af8a0
2 changed files with 7 additions and 2 deletions

View File

@@ -106,6 +106,7 @@ namespace hex::plugin::builtin {
PerProvider<Occurrence*> m_lastSelectedOccurrence;
PerProvider<OccurrenceTree> m_occurrenceTree;
PerProvider<std::string> m_currFilter;
PerProvider<bool> m_settingsCollapsed;
TaskHolder m_searchTask, m_filterTask;
bool m_settingsValid = false;

View File

@@ -13,6 +13,7 @@
#include <array>
#include <string>
#include <utility>
#include <barrier>
#include <boost/regex.hpp>
@@ -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();