Skip to content

Commit 505ed20

Browse files
committed
viewer#1216 Library settings can be deleted via My Environments
1 parent 79b560d commit 505ed20

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

indra/newview/llfloatermyenvironment.cpp

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,30 @@ bool LLFloaterMyEnvironment::canApply(const std::string &context)
399399
return false;
400400
}
401401

402+
bool can_delete(const LLUUID& id)
403+
{
404+
const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
405+
if (id == trash_id || gInventory.isObjectDescendentOf(id, trash_id))
406+
{
407+
return false;
408+
}
409+
410+
LLViewerInventoryCategory* cat = gInventory.getCategory(id);
411+
if (cat)
412+
{
413+
if (!get_is_category_removable(&gInventory, id))
414+
{
415+
return false;
416+
}
417+
}
418+
else if (!get_is_item_removable(&gInventory, id))
419+
{
420+
return false;
421+
}
422+
423+
return true;
424+
}
425+
402426
//-------------------------------------------------------------------------
403427
void LLFloaterMyEnvironment::refreshButtonStates()
404428
{
@@ -409,7 +433,14 @@ void LLFloaterMyEnvironment::refreshButtonStates()
409433

410434
getChild<LLUICtrl>(BUTTON_GEAR)->setEnabled(settings_ok);
411435
getChild<LLUICtrl>(BUTTON_NEWSETTINGS)->setEnabled(true);
412-
getChild<LLUICtrl>(BUTTON_DELETE)->setEnabled(settings_ok && !selected.empty());
436+
437+
bool enable_delete = false;
438+
if(settings_ok && !selected.empty())
439+
{
440+
enable_delete = can_delete(selected.front());
441+
}
442+
443+
getChild<LLUICtrl>(BUTTON_DELETE)->setEnabled(enable_delete);
413444
}
414445

415446
//-------------------------------------------------------------------------

0 commit comments

Comments
 (0)