summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMaxim Nikolenko <maximnproductengine@lindenlab.com>2023-06-14 16:24:56 +0300
committerMaxim Nikolenko <maximnproductengine@lindenlab.com>2023-06-14 16:24:56 +0300
commit3a359224565aabec518a097ae502735a0d8244b0 (patch)
tree37d2fd252f1770e3e0021a36bc3a8ecc3b5744ef /indra
parent71534d8fa7083355271eba69a7b6045f0c34463f (diff)
SL-19867 'Open in new window' option is missing for 'Trash' and 'Current Outfit' folders
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llinventorybridge.cpp34
-rw-r--r--indra/newview/llinventorybridge.h1
2 files changed, 23 insertions, 12 deletions
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 8b439449c5..02a29f2ac9 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -4268,6 +4268,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
if (model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT) == mUUID)
{
items.push_back(std::string("Copy outfit list to clipboard"));
+ addOpenFolderMenuOptions(flags, items);
}
//Added by aura to force inventory pull on right-click to display folder options correctly. 07-17-06
@@ -4374,9 +4375,12 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t&
if(!category) return;
const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
- if (trash_id == mUUID) return;
- if (isItemInTrash()) return;
-
+ if ((trash_id == mUUID) || isItemInTrash())
+ {
+ addOpenFolderMenuOptions(flags, items);
+ return;
+ }
+
if (!isItemRemovable())
{
disabled_items.push_back(std::string("Delete"));
@@ -4415,15 +4419,7 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t&
return;
}
- if ((flags & ITEM_IN_MULTI_SELECTION) == 0)
- {
- items.push_back(std::string("open_in_new_window"));
- items.push_back(std::string("Open Folder Separator"));
- if(isPanelActive("comb_single_folder_inv"))
- {
- items.push_back(std::string("open_in_current_window"));
- }
- }
+ addOpenFolderMenuOptions(flags, items);
#ifndef LL_RELEASE_FOR_DOWNLOAD
if (LLFolderType::lookupIsProtectedType(type) && is_agent_inventory)
@@ -4502,6 +4498,20 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
menu.arrangeAndClear();
}
+void LLFolderBridge::addOpenFolderMenuOptions(U32 flags, menuentry_vec_t& items)
+{
+ if ((flags & ITEM_IN_MULTI_SELECTION) == 0)
+ {
+ items.push_back(std::string("open_in_new_window"));
+ items.push_back(std::string("Open Folder Separator"));
+ items.push_back(std::string("Copy Separator"));
+ if(isPanelActive("comb_single_folder_inv"))
+ {
+ items.push_back(std::string("open_in_current_window"));
+ }
+ }
+}
+
bool LLFolderBridge::hasChildren() const
{
LLInventoryModel* model = getInventoryModel();
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index eaa7166631..30a9bbe372 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -339,6 +339,7 @@ public:
protected:
void buildContextMenuOptions(U32 flags, menuentry_vec_t& items, menuentry_vec_t& disabled_items);
void buildContextMenuFolderOptions(U32 flags, menuentry_vec_t& items, menuentry_vec_t& disabled_items);
+ void addOpenFolderMenuOptions(U32 flags, menuentry_vec_t& items);
//--------------------------------------------------------------------
// Menu callbacks