viewer#1216 Library settings can be deleted via My Environments

meow-7.2.2
Andrey Kleshchev 2024-04-16 02:28:25 +03:00 committed by Andrey Kleshchev
parent 79b560dcfb
commit 505ed20da3
1 changed files with 32 additions and 1 deletions

View File

@ -399,6 +399,30 @@ bool LLFloaterMyEnvironment::canApply(const std::string &context)
return false;
}
bool can_delete(const LLUUID& id)
{
const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
if (id == trash_id || gInventory.isObjectDescendentOf(id, trash_id))
{
return false;
}
LLViewerInventoryCategory* cat = gInventory.getCategory(id);
if (cat)
{
if (!get_is_category_removable(&gInventory, id))
{
return false;
}
}
else if (!get_is_item_removable(&gInventory, id))
{
return false;
}
return true;
}
//-------------------------------------------------------------------------
void LLFloaterMyEnvironment::refreshButtonStates()
{
@ -409,7 +433,14 @@ void LLFloaterMyEnvironment::refreshButtonStates()
getChild<LLUICtrl>(BUTTON_GEAR)->setEnabled(settings_ok);
getChild<LLUICtrl>(BUTTON_NEWSETTINGS)->setEnabled(true);
getChild<LLUICtrl>(BUTTON_DELETE)->setEnabled(settings_ok && !selected.empty());
bool enable_delete = false;
if(settings_ok && !selected.empty())
{
enable_delete = can_delete(selected.front());
}
getChild<LLUICtrl>(BUTTON_DELETE)->setEnabled(enable_delete);
}
//-------------------------------------------------------------------------