From 7904649923eddb1291c336ac59b51b78e90c9137 Mon Sep 17 00:00:00 2001 From: Maxim Nikolenko Date: Wed, 22 Feb 2023 20:29:01 +0200 Subject: SL-19105 Update menu items; show items count on selection in single-folder mode --- indra/newview/llinventorybridge.cpp | 38 +-- indra/newview/llpanelmaininventory.cpp | 10 +- .../skins/default/xui/en/menu_inventory.xml | 326 ++++----------------- .../default/xui/en/menu_inventory_gear_default.xml | 2 +- 4 files changed, 76 insertions(+), 300 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 986ab88cda..db88ca0b9b 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -4141,12 +4141,6 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items } disabled_items.push_back(std::string("New Folder")); - disabled_items.push_back(std::string("New Script")); - disabled_items.push_back(std::string("New Note")); - disabled_items.push_back(std::string("New Settings")); - disabled_items.push_back(std::string("New Gesture")); - disabled_items.push_back(std::string("New Clothes")); - disabled_items.push_back(std::string("New Body Parts")); disabled_items.push_back(std::string("upload_def")); } if (favorites == mUUID) @@ -4169,11 +4163,6 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items if (getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK) { disabled_items.push_back(std::string("New Folder")); - disabled_items.push_back(std::string("New Script")); - disabled_items.push_back(std::string("New Note")); - disabled_items.push_back(std::string("New Gesture")); - disabled_items.push_back(std::string("New Clothes")); - disabled_items.push_back(std::string("New Body Parts")); disabled_items.push_back(std::string("upload_def")); } if (marketplace_listings_id == mUUID) @@ -4233,19 +4222,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items } if (!isMarketplaceListingsFolder()) { - items.push_back(std::string("New Script")); - items.push_back(std::string("New Note")); - items.push_back(std::string("New Gesture")); - items.push_back(std::string("New Clothes")); - items.push_back(std::string("New Body Parts")); - items.push_back(std::string("New Settings")); items.push_back(std::string("upload_def")); - - if (!LLEnvironment::instance().isInventoryEnabled()) - { - disabled_items.push_back("New Settings"); - } - } } getClipboardEntries(false, items, disabled_items, flags); @@ -4411,17 +4388,14 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags, menuentry_vec_t& disabled_items.push_back(std::string("New folder from selected")); } - items.push_back(std::string("open_in_new_window")); - if ((flags & FIRST_SELECTED_ITEM) == 0) - { - disabled_items.push_back(std::string("open_in_new_window")); - } - if(isPanelActive("single_folder_inv")) + + if ((flags & ITEM_IN_MULTI_SELECTION) == 0) { - items.push_back(std::string("open_in_current_window")); - if ((flags & FIRST_SELECTED_ITEM) == 0) + items.push_back(std::string("open_in_new_window")); + items.push_back(std::string("Open Folder Separator")); + if(isPanelActive("single_folder_inv")) { - disabled_items.push_back(std::string("open_in_current_window")); + items.push_back(std::string("open_in_current_window")); } } diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 5b7678987e..2b32bd649e 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -243,6 +243,7 @@ BOOL LLPanelMainInventory::postBuild() mSingleFolderPanelInventory = getChild("single_folder_inv"); mFolderRootChangedConnection = mSingleFolderPanelInventory->setRootChangedCallback(boost::bind(&LLPanelMainInventory::updateTitle, this)); + mSingleFolderPanelInventory->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, mSingleFolderPanelInventory, _1, _2)); initListCommandsHandlers(); @@ -1652,13 +1653,16 @@ bool LLPanelMainInventory::isActionVisible(const LLSD& userdata) { return !mSingleFolderMode; } - if (param_str == "open_folder") + if (param_str == "open_folder" || param_str == "open_new_folder") { + if (!mSingleFolderMode && (param_str == "open_folder")) return false; + LLFolderView* root = getActivePanel()->getRootFolder(); std::set selection_set = root->getSelectionList(); - if (selection_set.size() != 1) return FALSE; + if (selection_set.size() != 1) return false; + LLFolderViewItem* current_item = *selection_set.begin(); - if (!current_item) return FALSE; + if (!current_item) return false; const LLUUID& folder_id = static_cast(current_item->getViewModelItem())->getUUID(); return (gInventory.getCategory(folder_id) != NULL); } diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 97a93245ff..8374e63219 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -159,262 +159,6 @@ function="Inventory.DoCreate" parameter="outfit" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml index e58eaf79a3..f778742ed9 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml @@ -26,7 +26,7 @@ parameter="open_in_new_window" /> + parameter="open_new_folder" />