[FIRE-35042] Inventory - Only Coalesced Filter - More accessible

Added new button to panel_main_inventory.xml called only_coalesced_inv_btn and panel that can toggle on the Only Coalesced filter and added a tool_tip as well to explain the feature.
"Only Combined (Clumps) - Enables filter that displays only Combined Objects (Clumps) which are made up of 2 or more prims"

Added new combo box item filter_type_coalesced to Filter to allow setting the Only Coalesced flag and switching the filter to Objects as only objects can be coalesced.
Added new checkbox with icon to the float_inventory_view_finder.xml that is linked to the Only Coalesced flag and can modify it.

Changed label from "Only Coalesced" to "Only Combined (Clumps)" to make it more descriptive and match the UI verbiage that creates the Coalesced objects.
Updated UI xml for all English skin variants.

Added new texture coalesced_18.png for the new button. Gray Scaled version of the Inv_Object_Multi object - inv_item_object_multi_.tga with a size of 18x18 pixels.
master
minerjr 2025-01-02 10:45:41 -04:00
parent 8b800a833f
commit ffbc1b4b53
9 changed files with 260 additions and 4 deletions

View File

@ -98,6 +98,12 @@ public:
void onCreatorSelfFilterCommit();
void onCreatorOtherFilterCommit();
// <FS:minerjr> [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();
// </FS:minerjr> [FIRE-35042]
void onPermissionsChanged(); // <FS:Zi> FIRE-1175 - Filter Permissions Menu
@ -115,6 +121,9 @@ private:
LLCheckBoxCtrl* mCreatorSelf;
LLCheckBoxCtrl* mCreatorOthers;
LLInventoryFilter* mFilter;
// <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible
LLCheckBoxCtrl* mOnlyCoalescedFilterCheck; // Store the pointer to the Only Coalesced filter checkbox
// </FS:minerjr> [FIRE-35042]
};
///----------------------------------------------------------------------------
@ -1074,6 +1083,17 @@ void LLPanelMainInventory::onFilterTypeSelected(const std::string& filter_type_n
return;
}
// <FS:minerjr> [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"];
}
// </FS:minerjr> [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));
// <FS:minerjr> [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<LLCheckBoxCtrl>("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));
}
// </FS:minerjr> [FIRE-35042]
childSetAction("Close", onCloseBtn, this);
// <FS:Ansariel> FIRE-5160: Don't reset inventory filter when clearing search term
@ -1831,6 +1864,41 @@ void LLFloaterInventoryFinder::onCreatorOtherFilterCommit()
}
}
// <FS:minerjr> [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;
}
// </FS:minerjr> [FIRE-35042]
// <FS:Zi> FIRE-1175 - Filter Permissions Menu
void LLFloaterInventoryFinder::onPermissionsChanged()
{

View File

@ -565,9 +565,11 @@
parameter="only_transfer" />
</menu_item_check>
<menu_item_separator />
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<menu_item_check
name="inventory_filter_coalesced_objects_only"
label="Only Coalesced">
label="Only Combined (Clumps)">
<on_click
function="Inventory.CoalescedObjects.Toggle"
parameter="coalesced_objects_only" />
@ -575,6 +577,7 @@
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
</menu_item_check>
<!-- </FS:minerjr> [FIRE-35042] -->
</menu>
</menu_bar>
@ -738,6 +741,12 @@
<combo_box.item value="filter_type_snapshots" label="Snapshots" />
<combo_box.item value="filter_type_materials" label="Materials" />
<combo_box.item value="filter_type_settings" label="Settings" />
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<!-- Add new custom filter to toggle Only Coalesced on and switch to filter_type_objects as only objects can be combined -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<combo_box.item value="filter_type_coalesced" label="Only Combined (Clumps)"/>
<!-- </FS:minerjr> [FIRE-35042] -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<combo_box.item value="filter_type_custom" label="Custom..." />
</combo_box>
@ -994,6 +1003,39 @@
parameter="secondary_inventory" />
</button>
</panel>
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- This is a new panel button for adding a on screen visual indicator that Only Coalesced filter is enabled -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<!-- A new inventory image was required to be used -->
<panel
follows="top|left"
height="25"
layout="topleft"
left_pad="0"
name="only_coalesced_panel"
width="32">
<button
follows="top|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="coalesced_18"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
layout="topleft"
left="0"
name="only_coalesced_inv_btn"
tool_tip="Only Combined (Clumps) - Enables filter that displays only Combined Objects (Clumps) which are made up of 2 or more prims"
top="0"
width="31">
<button.commit_callback
function="Inventory.CoalescedObjects.Toggle"
parameter="coalesced_objects_only" />
<button.is_toggled_callback
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
</button>
</panel>
<!-- </FS:minerjr> [FIRE-35042] -->
<panel
follows="top|left"
height="25"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -844,7 +844,10 @@ with the same filename but different name
<texture name="TrashItem_Disabled" file_name="icons/TrashItem_Disabled.png" preload="true" />
<texture name="TrashItem_Off" file_name="icons/TrashItem_Off.png" preload="true" />
<texture name="TrashItem_Press" file_name="icons/TrashItem_Press.png" preload="true" />
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- New UI 18 px image created for inventory UI for Only Coalesced toggle -->
<texture name="coalesced_18" file_name="bottomtray/coalesced_18.png" preload="true" />
<!-- </FS:minerjr> [FIRE-35042] -->
<texture name="inventory_18" file_name="bottomtray/inventory_18.png" preload="true" />
<texture name="chatbar_18" file_name="bottomtray/chatbar_18.png" preload="true" />
<texture name="nearbychat_18" file_name="toolbar_icons/nearbychat.png" preload="true" />

View File

@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- <FS:Zi> Changed height from 512 to 528 in this block -->
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- Changed height from 528 to 568 to make room for new Only Coalesced filter -->
<floater
legacy_header_height="18"
can_minimize="false"
height="548"
height="568"
layout="topleft"
name="Inventory Finder"
help_topic="inventory_finder"
title="Inventory Recent Items"
width="160">
<!-- <FS:minerjr> [FIRE-35042] -->
<icon
height="16"
image_name="Inv_Animation"
@ -280,6 +283,26 @@
top_pad="0"
width="144" />
<!-- </FS:Zi> -->
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- Added new check box to allow finder panel the ability to set and view the Only Coalesced flag -->
<icon
height="16"
image_name="Inv_Object_Multi"
layout="topleft"
left="8"
mouse_opaque="true"
name="icon_coalesced"
top_pad="6"
width="16" />
<check_box
height="16"
label="Combined (Clumps)"
layout="topleft"
left_pad="2"
name="check_only_coalesced"
top_delta="0"
width="126" />
<!-- <FS:minerjr> [FIRE-35042] -->
<check_box
height="16"
label="Created by me"

View File

@ -400,9 +400,11 @@
<!-- </FS:Zi> -->
<!-- <FS:Zi> FIRE-31369: Add inventory filter for coalesced objects -->
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<menu_item_check
name="inventory_filter_coalesced_objects_only"
label="Only Coalesced">
label="Only Combined (Clumps)">
<on_click
function="Inventory.CoalescedObjects.Toggle"
parameter="coalesced_objects_only" />
@ -410,6 +412,7 @@
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
</menu_item_check>
<!-- </FS:minerjr> [FIRE-35042] -->
<menu_item_separator>
<menu_item_separator.on_visible
function="Inventory.GearDefault.Visible"

View File

@ -182,6 +182,12 @@
<combo_box.item value="filter_type_snapshots" label="Snapshots" />
<combo_box.item value="filter_type_materials" label="Materials" />
<combo_box.item value="filter_type_settings" label="Settings" />
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<!-- Add new custom filter to toggle Only Coalesced on and switch to filter_type_objects as only objects can be combined -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<combo_box.item value="filter_type_coalesced" label="Only Combined (Clumps)"/>
<!-- </FS:minerjr> [FIRE-35042] -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<combo_box.item value="filter_type_custom" label="Custom..." />
</combo_box>
@ -411,6 +417,39 @@
parameter="secondary_inventory" />
</button>
</panel>
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- This is a new panel button for adding a on screen visual indicator that Only Coalesced filter is enabled -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<!-- A new inventory image was required to be used -->
<panel
follows="top|left"
height="25"
layout="topleft"
left_pad="0"
name="only_coalesced_panel"
width="32">
<button
follows="top|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="coalesced_18"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
layout="topleft"
left="0"
name="only_coalesced_inv_btn"
tool_tip="Only Combined (Clumps) - Enableds filter for only Combined Objects (Clumps) that are made up of 2 or more prims"
top="0"
width="31">
<button.commit_callback
function="Inventory.CoalescedObjects.Toggle"
parameter="coalesced_objects_only" />
<button.is_toggled_callback
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
</button>
</panel>
<!-- </FS:minerjr> [FIRE-35042] -->
<panel
follows="top|left"
height="25"

View File

@ -181,6 +181,12 @@
<combo_box.item value="filter_type_snapshots" label="Snapshots" />
<combo_box.item value="filter_type_materials" label="Materials" />
<combo_box.item value="filter_type_settings" label="Settings" />
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<!-- Add new custom filter to toggle Only Coalesced on and switch to filter_type_objects as only objects can be combined -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<combo_box.item value="filter_type_coalesced" label="Only Combined (Clumps)"/>
<!-- </FS:minerjr> [FIRE-35042] -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<combo_box.item value="filter_type_custom" label="Custom..." />
</combo_box>
@ -410,6 +416,39 @@
parameter="secondary_inventory" />
</button>
</panel>
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- This is a new panel button for adding a on screen visual indicator that Only Coalesced filter is enabled -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<!-- A new inventory image was required to be used -->
<panel
follows="top|left"
height="25"
layout="topleft"
left_pad="0"
name="only_coalesced_panel"
width="32">
<button
follows="top|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="coalesced_18"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
layout="topleft"
left="0"
name="only_coalesced_inv_btn"
tool_tip="Only Combined (Clumps) - Enableds filter for only Combined Objects (Clumps) that are made up of 2 or more prims"
top="0"
width="31">
<button.commit_callback
function="Inventory.CoalescedObjects.Toggle"
parameter="coalesced_objects_only" />
<button.is_toggled_callback
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
</button>
</panel>
<!-- </FS:minerjr> [FIRE-35042] -->
<panel
follows="top|left"
height="25"

View File

@ -183,6 +183,12 @@
<combo_box.item value="filter_type_snapshots" label="Snapshots" />
<combo_box.item value="filter_type_materials" label="Materials" />
<combo_box.item value="filter_type_settings" label="Settings" />
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<!-- Add new custom filter to toggle Only Coalesced on and switch to filter_type_objects as only objects can be combined -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<combo_box.item value="filter_type_coalesced" label="Only Combined (Clumps)"/>
<!-- </FS:minerjr> [FIRE-35042] -->
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<combo_box.item value="filter_type_custom" label="Custom..." />
</combo_box>
@ -413,6 +419,39 @@
parameter="secondary_inventory" />
</button>
</panel>
<!-- <FS:minerjr> [FIRE-35042] Inventory - Only Coalesced Filter - More accessible -->
<!-- This is a new panel button for adding a on screen visual indicator that Only Coalesced filter is enabled -->
<!-- Changed label from Only Coalesced to Only Combined (Clumps) to make it more descriptive and match the UI verbiage that creates the Coalesced objects -->
<!-- A new inventory image was required to be used -->
<panel
follows="top|left"
height="25"
layout="topleft"
left_pad="0"
name="only_coalesced_panel"
width="32">
<button
follows="top|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="coalesced_18"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
layout="topleft"
left="0"
name="only_coalesced_inv_btn"
tool_tip="Only Combined (Clumps) - Enableds filter for only Combined Objects (Clumps) that are made up of 2 or more prims"
top="0"
width="31">
<button.commit_callback
function="Inventory.CoalescedObjects.Toggle"
parameter="coalesced_objects_only" />
<button.is_toggled_callback
function="Inventory.CoalescedObjects.Check"
parameter="coalesced_objects_only" />
</button>
</panel>
<!-- </FS:minerjr> [FIRE-35042] -->
<panel
follows="top|left"
height="25"