From 1925866e1075fa7cee5e554bb2ff452b52359d55 Mon Sep 17 00:00:00 2001 From: Maxim Nikolenko Date: Tue, 6 Feb 2024 23:02:39 +0200 Subject: SL-19730 update menu items --- indra/newview/llviewermenu.cpp | 24 +++++++++++---- indra/newview/skins/default/xui/en/menu_object.xml | 36 +++++++++++++++++++--- 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index be48d1c5e2..ae365de6fc 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5249,9 +5249,19 @@ bool visible_take_object() return !is_selection_buy_not_take() && enable_take(); } -bool visible_take_objects() +bool is_multiple_selection() { - return visible_take_object() && (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 1); + return (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 1); +} + +bool is_single_selection() +{ + return !is_multiple_selection(); +} + +bool enable_take_objects() +{ + return visible_take_object() && is_multiple_selection(); } bool tools_visible_buy_object() @@ -8021,9 +8031,9 @@ bool enable_object_take_copy() return all_valid; } -bool visible_take_copy_objects() +bool enable_take_copy_objects() { - return enable_object_take_copy() && (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 1); + return enable_object_take_copy() && is_multiple_selection(); } class LLHasAsset : public LLInventoryCollectFunctor @@ -9495,7 +9505,7 @@ void initialize_menus() enable.add("Tools.EnableUnlink", boost::bind(&LLSelectMgr::enableUnlinkObjects, LLSelectMgr::getInstance())); view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake"); enable.add("Tools.EnableTakeCopy", boost::bind(&enable_object_take_copy)); - enable.add("Tools.VisibleCopySeparate", boost::bind(&visible_take_copy_objects)); + enable.add("Tools.EnableCopySeparate", boost::bind(&enable_take_copy_objects)); enable.add("Tools.VisibleBuyObject", boost::bind(&tools_visible_buy_object)); enable.add("Tools.VisibleTakeObject", boost::bind(&tools_visible_take_object)); view_listener_t::addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory"); @@ -9756,7 +9766,9 @@ void initialize_menus() view_listener_t::addMenu(new LLObjectMute(), "Object.Mute"); enable.add("Object.VisibleTake", boost::bind(&visible_take_object)); - enable.add("Object.VisibleTakeMultiple", boost::bind(&visible_take_objects)); + enable.add("Object.VisibleTakeMultiple", boost::bind(&is_multiple_selection)); + enable.add("Object.VisibleTakeSingle", boost::bind(&is_single_selection)); + enable.add("Object.EnableTakeMultiple", boost::bind(&enable_take_objects)); enable.add("Object.VisibleBuy", boost::bind(&visible_buy_object)); commit.add("Object.Buy", boost::bind(&handle_buy)); diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml index ab8aaf4688..d652b721a4 100644 --- a/indra/newview/skins/default/xui/en/menu_object.xml +++ b/indra/newview/skins/default/xui/en/menu_object.xml @@ -173,6 +173,8 @@ function="Object.Take"/> + + + + + + + + + + + + + function="Object.EnableTakeMultiple"/> + function="Tools.EnableCopySeparate"/> + function="Object.VisibleTakeMultiple"/>