summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2023-07-11 21:25:10 +0200
committerGuru <alexandrgproductengine@lindenlab.com>2023-07-11 23:55:46 +0200
commit834a8eeddeda035551ed4071273c26e806946147 (patch)
tree474867e7c7188eb45e4c9845b4ccefcb83b1efbd /indra
parent411aa59734a884c95f83e80ddd404af85a6f2ef4 (diff)
SL-19728 Objects that cannot be clicked or cammed unless in edit mode
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/indra_constants.h1
-rw-r--r--indra/newview/llpanelpermissions.cpp37
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp5
-rw-r--r--indra/newview/llspatialpartition.cpp5
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml6
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_task_info.xml4
6 files changed, 40 insertions, 18 deletions
diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h
index 10b98f49aa..679f79039b 100644
--- a/indra/llcommon/indra_constants.h
+++ b/indra/llcommon/indra_constants.h
@@ -345,6 +345,7 @@ const U8 CLICK_ACTION_PLAY = 5;
const U8 CLICK_ACTION_OPEN_MEDIA = 6;
const U8 CLICK_ACTION_ZOOM = 7;
const U8 CLICK_ACTION_DISABLED = 8;
+const U8 CLICK_ACTION_IGNORE = 9;
// DO NOT CHANGE THE SEQUENCE OF THIS LIST!!
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" />