FIRE-2512: Added inventory context menu option to send items to their default folder
parent
82e934fd28
commit
8902e6a84f
|
|
@ -673,6 +673,22 @@ void LLInvFVBridge::checkInventoryLinkReplace(menuentry_vec_t& items, menuentry_
|
|||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
void LLInvFVBridge::checkMoveToDefaultFolder(menuentry_vec_t& items, menuentry_vec_t& disables_items)
|
||||
{
|
||||
const LLInventoryObject* obj = getInventoryObject();
|
||||
|
||||
if (isAgentInventory() && !isOutboxFolder() && obj &&
|
||||
obj->getActualType() != LLAssetType::AT_CATEGORY &&
|
||||
obj->getActualType() != LLAssetType::AT_LINK_FOLDER &&
|
||||
obj->getActualType() != LLAssetType::AT_LINK
|
||||
)
|
||||
{
|
||||
items.push_back(std::string("Move to Default Folder"));
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// Helper for commonly-used entries
|
||||
void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
|
||||
menuentry_vec_t &items,
|
||||
|
|
@ -860,6 +876,9 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -4892,6 +4911,9 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -4965,6 +4987,9 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -5037,6 +5062,9 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -5364,6 +5392,9 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -5616,6 +5647,9 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -5674,6 +5708,9 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -6142,6 +6179,9 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -6396,6 +6436,9 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
@ -6623,6 +6666,9 @@ void LLMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
checkInventoryLinkReplace(items, disabled_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
checkMoveToDefaultFolder(items, disabled_items);
|
||||
|
||||
hide_context_entries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -175,6 +175,9 @@ protected:
|
|||
// <FS:Ansariel> Inventory Links Replace
|
||||
void checkInventoryLinkReplace(menuentry_vec_t& items, menuentry_vec_t& disables_items);
|
||||
|
||||
// <FS:Ansariel> Move to default folder
|
||||
void checkMoveToDefaultFolder(menuentry_vec_t& items, menuentry_vec_t& disables_items);
|
||||
|
||||
virtual BOOL isItemPermissive() const;
|
||||
static void changeItemParent(LLInventoryModel* model,
|
||||
LLViewerInventoryItem* item,
|
||||
|
|
|
|||
|
|
@ -1207,6 +1207,53 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
|
|||
return;
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
// <FS:Ansariel> Move to default folder
|
||||
if ("move_to_default_folder" == action)
|
||||
{
|
||||
std::set<LLFolderViewItem*> selected_items = root->getSelectionList();
|
||||
std::set<LLFolderViewItem*>::iterator set_iter;
|
||||
LLUUID outbox_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX);
|
||||
LLUUID cof_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
|
||||
|
||||
for (set_iter = selected_items.begin(); set_iter != selected_items.end(); ++set_iter)
|
||||
{
|
||||
LLFolderViewItem* folder_item = *set_iter;
|
||||
if (!folder_item)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem();
|
||||
if (!bridge)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
LLInventoryObject* obj = bridge->getInventoryObject();
|
||||
if (!obj)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (obj->getActualType() == LLAssetType::AT_CATEGORY)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (gInventory.isObjectDescendentOf(obj->getUUID(), outbox_folder_id) ||
|
||||
gInventory.isObjectDescendentOf(obj->getUUID(), cof_folder_id))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
LLUUID target_cat_id = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(obj->getActualType()));
|
||||
if (target_cat_id.notNull()
|
||||
{
|
||||
move_inventory_item(gAgentID, gAgentSessionID, obj->getUUID(), target_cat_id, obj->getName(), LLPointer<LLInventoryCallback>(NULL));
|
||||
}
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
static const std::string change_folder_string = "change_folder_type_";
|
||||
if (action.length() > change_folder_string.length() &&
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@
|
|||
<menu_item_call label="Links ersetzen" name="Replace Links"/>
|
||||
<menu_item_call label="Löschen" name="Remove Link"/>
|
||||
<menu_item_call label="Löschen" name="Delete"/>
|
||||
<menu_item_call label="In Standardordner verschieben" name="Move to Default Folder"/>
|
||||
<menu_item_call label="In Fundbüro verschieben" name="Move to Lost And Found"/>
|
||||
<menu_item_call label="Systemordner löschen" name="Delete System Folder"/>
|
||||
<menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/>
|
||||
|
|
|
|||
|
|
@ -527,6 +527,14 @@
|
|||
function="Inventory.DoToSelected"
|
||||
parameter="delete" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Move to Default Folder"
|
||||
layout="topleft"
|
||||
name="Move to Default Folder">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoToSelected"
|
||||
parameter="move_to_default_folder" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Move to Lost And Found"
|
||||
layout="topleft"
|
||||
|
|
|
|||
Loading…
Reference in New Issue