From 555c28aebc7fbf40a8ec6eb0745f6d99d9e4e8ac Mon Sep 17 00:00:00 2001 From: Iulian Munteanu Date: Sat, 6 Jun 2026 16:19:35 +0300 Subject: [PATCH] instances: add Filter by IPL visibility checkbox to instances list Adds a checkbox next to "Highlight matches" in the Editor > Instances panel. When enabled, only instances belonging to currently-visible IPLs (as configured in View > IPL Visibility) are shown in the list, using the same IsInstVisibleByIplFilter() predicate that the renderer already applies. Off by default, preserving existing behavior. --- tools/euryopa/gui.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/euryopa/gui.cpp b/tools/euryopa/gui.cpp index 6d40fb2..6e4b892 100644 --- a/tools/euryopa/gui.cpp +++ b/tools/euryopa/gui.cpp @@ -50,6 +50,7 @@ static char gAutomaticBackupLastSnapshot[1024]; static ImGuiTextFilter gEditorModelFilter; static ImGuiTextFilter gEditorTxdFilter; static bool gEditorHighlightMatches; +static bool gEditorFilterByIpl; static ImGuiTextFilter gBrowserCategoryFilter; static ImGuiTextFilter gBrowserIdeFilter; @@ -5620,10 +5621,14 @@ uiEditorWindow(void) if(ImGui::Button("Clear##Txd")) gEditorTxdFilter.Clear(); ImGui::Checkbox("Highlight matches", &gEditorHighlightMatches); + ImGui::SameLine(); + ImGui::Checkbox("Filter by IPL visibility", &gEditorFilterByIpl); for(p = instances.first; p; p = p->next){ inst = (ObjectInst*)p->item; obj = GetObjectDef(inst->m_objectId); txd = GetTxdDef(obj->m_txdSlot); + if(gEditorFilterByIpl && !IsInstVisibleByIplFilter(inst)) + continue; if(gEditorModelFilter.PassFilter(obj->m_name) && gEditorTxdFilter.PassFilter(txd->name)){ int numPops = 0;