diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 77625c1360..56b0818747 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -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));
}
//
+
+ // 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();
+ }
+ //
}
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
// Show folder in new window option
items.push_back((std::string("Show in new Window")));
+ // 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"));
+ }
+ }
+ }
+ //
+
// Add menu items that are dependent on the contents of the folder.
LLViewerInventoryCategory* category = (LLViewerInventoryCategory *) model->getCategory(mUUID);
if (category && (marketplace_listings_id != mUUID))
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index d1073e12e8..c6ccbc20c4 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -652,6 +652,14 @@
function="Inventory.DoToSelected"
parameter="show_in_new_window" />
+
+
+