Add Reload Folder action to inventory folders so users can try to refresh folders with missing content. Only works one folder at a time, and not on the root folder, to prevent misuse. Needs to be tested a lot.

meow-7.2.2
Zi Ree 2022-09-26 02:35:04 +02:00
parent 07c9d38526
commit aa25555e3f
2 changed files with 37 additions and 0 deletions

View File

@ -3741,6 +3741,21 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
LLFloaterReg::showInstance("fs_partial_inventory", LLSD().with("start_folder_id", mUUID).with("start_folder_name", mDisplayName));
}
// </FS:Ansariel>
// <FS:Zi> Add "Reload folder" action to inventory
else if ("reload_folder" == action)
{
LLViewerInventoryCategory *cat = model->getCategory(mUUID);
if (!cat)
{
return;
}
cat->setVersion(LLViewerInventoryCategory::VERSION_UNKNOWN);
cat->fetch();
}
// </FS:Zi>
}
void LLFolderBridge::gatherMessage(std::string& message, S32 depth, LLError::ELevel log_level)
@ -4686,6 +4701,20 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
// <FS:Ansariel> Show folder in new window option
items.push_back((std::string("Show in new Window")));
// <FS:Zi> Add "Reload folder" action to inventory
// only allow reload for a single, non-root folder to prevent misuse
if (!(flags & ITEM_IN_MULTI_SELECTION))
{
if (mUUID != model->findCategoryUUIDForType(LLFolderType::FT_ROOT_INVENTORY))
{
if (mUUID != model->findLibraryCategoryUUIDForType(LLFolderType::FT_ROOT_INVENTORY))
{
items.push_back(std::string("ReloadFolder"));
}
}
}
// </FS:Zi>
// Add menu items that are dependent on the contents of the folder.
LLViewerInventoryCategory* category = (LLViewerInventoryCategory *) model->getCategory(mUUID);
if (category && (marketplace_listings_id != mUUID))

View File

@ -652,6 +652,14 @@
function="Inventory.DoToSelected"
parameter="show_in_new_window" />
</menu_item_call>
<menu_item_call
label="Reload Folder"
layout="topleft"
name="ReloadFolder">
<menu_item_call.on_click
function="Inventory.DoToSelected"
parameter="reload_folder" />
</menu_item_call>
<menu_item_call
label="Restore to Last Position"
layout="topleft"