diff options
author | Alexander Gavriliuk <alexandrgproductengine@lindenlab.com> | 2023-07-11 21:25:10 +0200 |
---|---|---|
committer | Guru <alexandrgproductengine@lindenlab.com> | 2023-07-11 23:55:46 +0200 |
commit | 834a8eeddeda035551ed4071273c26e806946147 (patch) | |
tree | 474867e7c7188eb45e4c9845b4ccefcb83b1efbd /indra/newview | |
parent | 411aa59734a884c95f83e80ddd404af85a6f2ef4 (diff) |
SL-19728 Objects that cannot be clicked or cammed unless in edit mode
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llpanelpermissions.cpp | 37 | ||||
-rw-r--r-- | indra/newview/llsidepaneltaskinfo.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llspatialpartition.cpp | 5 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/floater_tools.xml | 6 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/sidepanel_task_info.xml | 4 |
5 files changed, 39 insertions, 18 deletions
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index 3e770958da..67f913a067 100644 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -76,30 +76,34 @@ std::string click_action_to_string_value( U8 action); U8 string_value_to_click_action(std::string p_value) { - if(p_value == "Touch") + if (p_value == "Touch") { return CLICK_ACTION_TOUCH; } - if(p_value == "Sit") + if (p_value == "Sit") { return CLICK_ACTION_SIT; } - if(p_value == "Buy") + if (p_value == "Buy") { return CLICK_ACTION_BUY; } - if(p_value == "Pay") + if (p_value == "Pay") { return CLICK_ACTION_PAY; } - if(p_value == "Open") + if (p_value == "Open") { return CLICK_ACTION_OPEN; } - if(p_value == "Zoom") + if (p_value == "Zoom") { return CLICK_ACTION_ZOOM; } + if (p_value == "Ignore") + { + return CLICK_ACTION_IGNORE; + } if (p_value == "None") { return CLICK_ACTION_DISABLED; @@ -130,6 +134,9 @@ std::string click_action_to_string_value( U8 action) case CLICK_ACTION_ZOOM: return "Zoom"; break; + case CLICK_ACTION_IGNORE: + return "Ignore"; + break; case CLICK_ACTION_DISABLED: return "None"; break; @@ -274,12 +281,12 @@ void LLPanelPermissions::disableAll() combo_click_action->setEnabled(FALSE); combo_click_action->clear(); } - getChildView("B:")->setVisible( FALSE); - getChildView("O:")->setVisible( FALSE); - getChildView("G:")->setVisible( FALSE); - getChildView("E:")->setVisible( FALSE); - getChildView("N:")->setVisible( FALSE); - getChildView("F:")->setVisible( FALSE); + getChildView("B:")->setVisible(FALSE); + getChildView("O:")->setVisible(FALSE); + getChildView("G:")->setVisible(FALSE); + getChildView("E:")->setVisible(FALSE); + getChildView("N:")->setVisible(FALSE); + getChildView("F:")->setVisible(FALSE); } void LLPanelPermissions::refresh() @@ -949,19 +956,19 @@ void LLPanelPermissions::refresh() getChild<LLUICtrl>("search_check")->setValue(include_in_search); getChild<LLUICtrl>("search_check")->setTentative( !all_include_in_search); - // Click action (touch, sit, buy) + // Click action (touch, sit, buy, pay, open, play, open media, zoom, ignore) U8 click_action = 0; if (LLSelectMgr::getInstance()->selectionGetClickAction(&click_action)) { LLComboBox* combo_click_action = getChild<LLComboBox>("clickaction"); - if(combo_click_action) + if (combo_click_action) { const std::string combo_value = click_action_to_string_value(click_action); combo_click_action->setValue(LLSD(combo_value)); } } - if(LLSelectMgr::getInstance()->getSelection()->isAttachment()) + if (LLSelectMgr::getInstance()->getSelection()->isAttachment()) { getChildView("checkbox for sale")->setEnabled(FALSE); getChildView("Edit Cost")->setEnabled(FALSE); diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp index 7fa06f51e3..225751ab92 100644 --- a/indra/newview/llsidepaneltaskinfo.cpp +++ b/indra/newview/llsidepaneltaskinfo.cpp @@ -849,7 +849,7 @@ void LLSidepanelTaskInfo::refresh() const BOOL all_include_in_search = LLSelectMgr::getInstance()->selectionGetIncludeInSearch(&include_in_search); getChildView("search_check")->setEnabled(has_change_sale_ability && all_volume); getChild<LLUICtrl>("search_check")->setValue(include_in_search); - getChild<LLUICtrl>("search_check")->setTentative( !all_include_in_search); + getChild<LLUICtrl>("search_check")->setTentative(!all_include_in_search); // Click action (touch, sit, buy) U8 click_action = 0; @@ -1150,7 +1150,8 @@ static U8 string_value_to_click_action(std::string p_value) void LLSidepanelTaskInfo::onCommitClickAction(LLUICtrl* ctrl, void*) { LLComboBox* box = (LLComboBox*)ctrl; - if (!box) return; + if (!box) + return; std::string value = box->getValue().asString(); U8 click_action = string_value_to_click_action(value); doClickAction(click_action); diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index 3e801a47d7..17c834326c 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -4003,6 +4003,11 @@ public: if (vobj) { + if (vobj->getClickAction() == CLICK_ACTION_IGNORE && !LLFloater::isVisible(gFloaterTools)) + { + return false; + } + LLVector4a intersection; bool skip_check = false; if (vobj->isAvatar()) diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index d9b0ac0060..684470e0fc 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -1114,11 +1114,15 @@ label="Open" name="Open" value="Open" /> - <combo_box.item + <combo_box.item label="Zoom" name="Zoom" value="Zoom" /> <combo_box.item + label="Ignore object" + name="Ignoreobject" + value="Ignore" /> + <combo_box.item label="None" name="None" value="None" /> diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml index 0b32215964..5f0241512a 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml @@ -300,6 +300,10 @@ name="Zoom" value="Zoom" /> <combo_box.item + label="Ignore object" + name="Ignoreobject" + value="Ignore" /> + <combo_box.item label="None" name="None" value="None" /> |