From a17e9a5b5afe132511737e5d034dabbefde4324c Mon Sep 17 00:00:00 2001 From: Darl Date: Fri, 2 May 2025 19:01:29 -0500 Subject: [PATCH 1/2] Add support to area search for filtering reflection probes --- indra/newview/fsareasearch.cpp | 10 ++++++++++ indra/newview/fsareasearch.h | 3 +++ .../skins/default/xui/en/floater_fs_area_search.xml | 13 +++++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/indra/newview/fsareasearch.cpp b/indra/newview/fsareasearch.cpp index 4e58c4e28e..f2706b801e 100644 --- a/indra/newview/fsareasearch.cpp +++ b/indra/newview/fsareasearch.cpp @@ -156,6 +156,7 @@ FSAreaSearch::FSAreaSearch(const LLSD& key) : mFilterPhantom(false), mFilterAttachment(false), mFilterMoaP(false), + mFilterReflectionProbe(false), mFilterDistance(false), mFilterDistanceMin(0), mFilterDistanceMax(999999), @@ -908,6 +909,11 @@ void FSAreaSearch::matchObject(FSObjectProperties& details, LLViewerObject* obje return; } + if (mFilterReflectionProbe && !objectp->mReflectionProbe.notNull()) + { + return; + } + //----------------------------------------------------------------------- // Find text //----------------------------------------------------------------------- @@ -2240,6 +2246,9 @@ bool FSPanelAreaSearchFilter::postBuild() mCheckboxMoaP = getChild("filter_moap"); mCheckboxMoaP->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this)); + mCheckboxReflectionProbe = getChild("filter_reflection_probe"); + mCheckboxReflectionProbe->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this)); + mCheckboxPermCopy = getChild("filter_perm_copy"); mCheckboxPermCopy->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this)); @@ -2262,6 +2271,7 @@ void FSPanelAreaSearchFilter::onCommitCheckbox() mFSAreaSearch->setFilterForSale(mCheckboxForSale->get()); mFSAreaSearch->setFilterDistance(mCheckboxDistance->get()); mFSAreaSearch->setFilterMoaP(mCheckboxMoaP->get()); + mFSAreaSearch->setFilterReflectionProbe(mCheckboxReflectionProbe->get()); if (mCheckboxExcludePhysics->get()) { diff --git a/indra/newview/fsareasearch.h b/indra/newview/fsareasearch.h index 78d40454dc..ad09a0e52b 100644 --- a/indra/newview/fsareasearch.h +++ b/indra/newview/fsareasearch.h @@ -141,6 +141,7 @@ public: void setFilterPhantom(bool b) { mFilterPhantom = b; } void setFilterAttachment(bool b) { mFilterAttachment = b; } void setFilterMoaP(bool b) { mFilterMoaP = b; } + void setFilterReflectionProbe(bool b) { mFilterReflectionProbe = b; } void setRegexSearch(bool b) { mRegexSearch = b; } void setBeacons(bool b) { mBeacons = b; } @@ -240,6 +241,7 @@ private: bool mFilterPhantom; bool mFilterAttachment; bool mFilterMoaP; + bool mFilterReflectionProbe; bool mFilterForSale; S32 mFilterForSaleMin; @@ -382,6 +384,7 @@ private: LLCheckBoxCtrl* mCheckboxLocked; LLCheckBoxCtrl* mCheckboxPhantom; LLCheckBoxCtrl* mCheckboxMoaP; + LLCheckBoxCtrl* mCheckboxReflectionProbe; LLCheckBoxCtrl* mCheckboxDistance; LLSpinCtrl* mSpinDistanceMinValue; LLSpinCtrl* mSpinDistanceMaxValue; diff --git a/indra/newview/skins/default/xui/en/floater_fs_area_search.xml b/indra/newview/skins/default/xui/en/floater_fs_area_search.xml index 722ea7d415..ce21d2cf78 100644 --- a/indra/newview/skins/default/xui/en/floater_fs_area_search.xml +++ b/indra/newview/skins/default/xui/en/floater_fs_area_search.xml @@ -378,6 +378,15 @@ name="filter_perm_transfer" label="Transfer" width="100"/> + @@ -525,7 +534,7 @@ layout="topleft" left_pad="5" max_val="999999999" - min_val="0" + min_val="0" name="max_distance" top_delta="-4" width="80"/> From 096f6854ccab86310484456c273cf73d61169a61 Mon Sep 17 00:00:00 2001 From: Darl Date: Tue, 13 May 2025 10:33:27 -0500 Subject: [PATCH 2/2] Allow filtering reflection probes in area search too --- indra/newview/fsareasearch.cpp | 23 +++++++++++++++++++ indra/newview/fsareasearch.h | 3 +++ .../default/xui/en/floater_fs_area_search.xml | 8 +++++++ 3 files changed, 34 insertions(+) diff --git a/indra/newview/fsareasearch.cpp b/indra/newview/fsareasearch.cpp index f2706b801e..ef4efc84fc 100644 --- a/indra/newview/fsareasearch.cpp +++ b/indra/newview/fsareasearch.cpp @@ -167,6 +167,7 @@ FSAreaSearch::FSAreaSearch(const LLSD& key) : mBeacons(false), mExcludeAttachment(true), mExcludeTemporary(true), + mExcludeReflectionProbe(false), mExcludePhysics(true), mExcludeChildPrims(true), mExcludeNeighborRegions(true), @@ -546,6 +547,11 @@ bool FSAreaSearch::isSearchableObject(LLViewerObject* objectp, LLViewerRegion* o return false; } + if (mExcludeReflectionProbe && objectp->mReflectionProbe.notNull()) + { + return false; + } + return true; } @@ -2223,6 +2229,10 @@ bool FSPanelAreaSearchFilter::postBuild() mCheckboxExcludetemporary->set(true); mCheckboxExcludetemporary->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this)); + mCheckboxExcludeReflectionProbes = getChild("exclude_reflection_probes"); + mCheckboxExcludeReflectionProbes->set(false); + mCheckboxExcludeReflectionProbes->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this)); + mCheckboxExcludeChildPrim = getChild("exclude_childprim"); mCheckboxExcludeChildPrim->set(true); mCheckboxExcludeChildPrim->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this)); @@ -2301,6 +2311,19 @@ void FSPanelAreaSearchFilter::onCommitCheckbox() } mFSAreaSearch->setFilterTemporary(mCheckboxTemporary->get()); + if (mCheckboxExcludeReflectionProbes->get()) + { + mFSAreaSearch->setFilterReflectionProbe(false); + mCheckboxReflectionProbe->set(false); + mCheckboxReflectionProbe->setEnabled(false); + mFSAreaSearch->setExcludeReflectionProbe(true); + } + else + { + mCheckboxReflectionProbe->setEnabled(true); + mFSAreaSearch->setExcludeReflectionProbe(false); + } + if (mCheckboxExcludeAttachment->get()) { mFSAreaSearch->setFilterAttachment(false); diff --git a/indra/newview/fsareasearch.h b/indra/newview/fsareasearch.h index ad09a0e52b..a4bb89c2b0 100644 --- a/indra/newview/fsareasearch.h +++ b/indra/newview/fsareasearch.h @@ -148,6 +148,7 @@ public: void setExcludeAttachment(bool b) { mExcludeAttachment = b; } void setExcludetemporary(bool b) { mExcludeTemporary = b; } + void setExcludeReflectionProbe(bool b) { mExcludeReflectionProbe = b; } void setExcludePhysics(bool b) { mExcludePhysics = b; } void setExcludeChildPrims(bool b) { mExcludeChildPrims = b; } void setExcludeNeighborRegions(bool b) { mExcludeNeighborRegions = b; } @@ -231,6 +232,7 @@ private: bool mExcludeAttachment; bool mExcludeTemporary; + bool mExcludeReflectionProbe; bool mExcludePhysics; bool mExcludeChildPrims; bool mExcludeNeighborRegions; @@ -396,6 +398,7 @@ private: LLCheckBoxCtrl* mCheckboxExcludeAttachment; LLCheckBoxCtrl* mCheckboxExcludePhysics; LLCheckBoxCtrl* mCheckboxExcludetemporary; + LLCheckBoxCtrl* mCheckboxExcludeReflectionProbes; LLCheckBoxCtrl* mCheckboxExcludeChildPrim; LLCheckBoxCtrl* mCheckboxExcludeNeighborRegions; LLCheckBoxCtrl* mCheckboxPermCopy; diff --git a/indra/newview/skins/default/xui/en/floater_fs_area_search.xml b/indra/newview/skins/default/xui/en/floater_fs_area_search.xml index ce21d2cf78..546e7b4916 100644 --- a/indra/newview/skins/default/xui/en/floater_fs_area_search.xml +++ b/indra/newview/skins/default/xui/en/floater_fs_area_search.xml @@ -579,6 +579,14 @@ name="exclude_temporary" label="Temporary" width="80"/> +