diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index 122afcc8e6..5639cbef34 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -98,6 +98,12 @@ public:
void onCreatorSelfFilterCommit();
void onCreatorOtherFilterCommit();
+ // [FIRE-35042] Inventory - Only Coalesced Filter - More accessible
+ // Callback to check the value of the check box to sync with the main inventory Only Coalesced flag
+ bool isOnlyCoalescedFilterChecked();
+ // Callback for new checkbox to modify the main inventory's Only Colesced filter (Combined (Clumps))
+ void onOnlyCoalescedFilterCommit();
+ // [FIRE-35042]
void onPermissionsChanged(); // FIRE-1175 - Filter Permissions Menu
@@ -115,6 +121,9 @@ private:
LLCheckBoxCtrl* mCreatorSelf;
LLCheckBoxCtrl* mCreatorOthers;
LLInventoryFilter* mFilter;
+ // [FIRE-35042] Inventory - Only Coalesced Filter - More accessible
+ LLCheckBoxCtrl* mOnlyCoalescedFilterCheck; // Store the pointer to the Only Coalesced filter checkbox
+ // [FIRE-35042]
};
///----------------------------------------------------------------------------
@@ -1074,6 +1083,17 @@ void LLPanelMainInventory::onFilterTypeSelected(const std::string& filter_type_n
return;
}
+ // [FIRE-35042] Inventory - Only Coalesced Filter - More accessible
+ // Special treatment for "coalesced" filter
+ else if (filter_type_name == "filter_type_coalesced")
+ {
+ // Turn on Only Coalesced filter. This will also trigger the button "only_coalesced_inv_btn"
+ // and menu item check "inventory_filter_coalesced_objects_only" toggle states.
+ getActivePanel()->setFilterCoalescedObjects(true);
+ // As all Coalesced objects are only objects, then set the filter type to filter_type_objects
+ filterTypes = mFilterMap["filter_type_objects"];
+ }
+ // [FIRE-35042]
// invalid selection (broken XML?)
else
{
@@ -1522,6 +1542,19 @@ bool LLFloaterInventoryFinder::postBuild()
mCreatorSelf->setCommitCallback(boost::bind(&LLFloaterInventoryFinder::onCreatorSelfFilterCommit, this));
mCreatorOthers->setCommitCallback(boost::bind(&LLFloaterInventoryFinder::onCreatorOtherFilterCommit, this));
+ // [FIRE-35042] Inventory - Only Coalesced Filter - More accessible
+ // Get the Finder's Only Coalesced check box for use later on, instead of calling getChild everytime accessing it
+ mOnlyCoalescedFilterCheck = getChild("check_only_coalesced");
+ // Add callbacks only if the checkbox is available
+ if (mOnlyCoalescedFilterCheck)
+ {
+ // Set a callback for when the check_only_coalesced checkbox is pressed to change the value of the main panel.
+ mOnlyCoalescedFilterCheck->setCommitCallback(boost::bind(&LLFloaterInventoryFinder::onOnlyCoalescedFilterCommit, this));
+ // Set a callback for syncing the check_only_coalesced check state to the Only Coalesced flag of the main inventory
+ mOnlyCoalescedFilterCheck->setCheckCallback(boost::bind(&LLFloaterInventoryFinder::isOnlyCoalescedFilterChecked, this));
+ }
+ // [FIRE-35042]
+
childSetAction("Close", onCloseBtn, this);
// FIRE-5160: Don't reset inventory filter when clearing search term
@@ -1831,6 +1864,41 @@ void LLFloaterInventoryFinder::onCreatorOtherFilterCommit()
}
}
+// [FIRE-35042] Inventory - Only Coalesced Filter - More accessible
+// Callback function that controls setting the actual Only Coalesced filter flag in the Main Inventory when the check_coalesced checkbox is changed by the user
+void LLFloaterInventoryFinder::onOnlyCoalescedFilterCommit()
+{
+ // If the Main Inventory Panel and the Finder's OnlyCoalescedFilterCheck are both valid (should be, but just in case)
+ if (mPanelMainInventory && mOnlyCoalescedFilterCheck)
+ {
+ // Make sure the main panel exists before trying to set the Filter Coalesced Objects value to the check_only_coalesced checkbox value
+ LLInventoryPanel* main_panel = mPanelMainInventory->getPanel();
+ if (main_panel)
+ {
+ main_panel->setFilterCoalescedObjects(mOnlyCoalescedFilterCheck->getValue());
+ }
+ }
+
+}
+// Callback function that syncs the Finder's Only Coalesced checkbox to the main panel's FilterCoalescedObjects value
+bool LLFloaterInventoryFinder::isOnlyCoalescedFilterChecked()
+{
+ // Check if the Main Inventory Panel exists (should be, but just in case)
+ if (mPanelMainInventory)
+ {
+ // Make sure the main panel exists before trying to get the Filter Coalesced Objects
+ LLInventoryPanel* main_panel = mPanelMainInventory->getPanel();
+ if (main_panel)
+ {
+ //Return the Only Coalesced filter value from the main inventory
+ return main_panel->getFilterCoalescedObjects();
+ }
+ }
+ //If the main panel cannot be accessed at this time, just return false
+ return false;
+}
+// [FIRE-35042]
+
// FIRE-1175 - Filter Permissions Menu
void LLFloaterInventoryFinder::onPermissionsChanged()
{
diff --git a/indra/newview/skins/ansastorm/xui/en/panel_main_inventory.xml b/indra/newview/skins/ansastorm/xui/en/panel_main_inventory.xml
index 63596de5fa..0068fa8e78 100644
--- a/indra/newview/skins/ansastorm/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/ansastorm/xui/en/panel_main_inventory.xml
@@ -565,9 +565,11 @@
parameter="only_transfer" />
+
+
+ label="Only Combined (Clumps)">
@@ -575,6 +577,7 @@
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
+
@@ -738,6 +741,12 @@
+
+
+
+
+
+
@@ -994,6 +1003,39 @@
parameter="secondary_inventory" />
+
+
+
+
+
+
+
+
-
+
+
+
+
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
index 633ba579d9..d891330924 100644
--- a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
@@ -1,14 +1,17 @@
+
+
+
+
+
+
+
+
-->
+
+
+ label="Only Combined (Clumps)">
@@ -410,6 +412,7 @@
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
+
+
+
+
+
+
+
@@ -411,6 +417,39 @@
parameter="secondary_inventory" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -410,6 +416,39 @@
parameter="secondary_inventory" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -413,6 +419,39 @@
parameter="secondary_inventory" />
+
+
+
+
+
+
+
+