summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelpermissions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelpermissions.cpp')
-rw-r--r--indra/newview/llpanelpermissions.cpp2110
1 files changed, 1055 insertions, 1055 deletions
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index f11136da6d..ec25a9086e 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -1,4 +1,4 @@
-/**
+/**
* @file llpanelpermissions.cpp
* @brief LLPanelPermissions class implementation
* This class represents the panel in the build view for
@@ -7,21 +7,21 @@
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -48,7 +48,7 @@
#include "llviewerobject.h"
#include "llselectmgr.h"
#include "llagent.h"
-#include "llstatusbar.h" // for getBalance()
+#include "llstatusbar.h" // for getBalance()
#include "lllineeditor.h"
#include "llcombobox.h"
#include "lluiconstants.h"
@@ -76,71 +76,71 @@ std::string click_action_to_string_value( U8 action);
U8 string_value_to_click_action(std::string p_value)
{
- if (p_value == "Touch")
- {
- return CLICK_ACTION_TOUCH;
- }
- if (p_value == "Sit")
- {
- return CLICK_ACTION_SIT;
- }
- if (p_value == "Buy")
- {
- return CLICK_ACTION_BUY;
- }
- if (p_value == "Pay")
- {
- return CLICK_ACTION_PAY;
- }
- if (p_value == "Open")
- {
- return CLICK_ACTION_OPEN;
- }
- if (p_value == "Zoom")
- {
- return CLICK_ACTION_ZOOM;
- }
- if (p_value == "Ignore")
- {
- return CLICK_ACTION_IGNORE;
- }
- if (p_value == "None")
- {
- return CLICK_ACTION_DISABLED;
- }
- return CLICK_ACTION_TOUCH;
+ if (p_value == "Touch")
+ {
+ return CLICK_ACTION_TOUCH;
+ }
+ if (p_value == "Sit")
+ {
+ return CLICK_ACTION_SIT;
+ }
+ if (p_value == "Buy")
+ {
+ return CLICK_ACTION_BUY;
+ }
+ if (p_value == "Pay")
+ {
+ return CLICK_ACTION_PAY;
+ }
+ if (p_value == "Open")
+ {
+ return CLICK_ACTION_OPEN;
+ }
+ if (p_value == "Zoom")
+ {
+ return CLICK_ACTION_ZOOM;
+ }
+ if (p_value == "Ignore")
+ {
+ return CLICK_ACTION_IGNORE;
+ }
+ if (p_value == "None")
+ {
+ return CLICK_ACTION_DISABLED;
+ }
+ return CLICK_ACTION_TOUCH;
}
std::string click_action_to_string_value( U8 action)
{
- switch (action)
- {
- case CLICK_ACTION_TOUCH:
- default:
- return "Touch";
- break;
- case CLICK_ACTION_SIT:
- return "Sit";
- break;
- case CLICK_ACTION_BUY:
- return "Buy";
- break;
- case CLICK_ACTION_PAY:
- return "Pay";
- break;
- case CLICK_ACTION_OPEN:
- return "Open";
- break;
- case CLICK_ACTION_ZOOM:
- return "Zoom";
- break;
- case CLICK_ACTION_IGNORE:
- return "Ignore";
- break;
- case CLICK_ACTION_DISABLED:
- return "None";
- break;
- }
+ switch (action)
+ {
+ case CLICK_ACTION_TOUCH:
+ default:
+ return "Touch";
+ break;
+ case CLICK_ACTION_SIT:
+ return "Sit";
+ break;
+ case CLICK_ACTION_BUY:
+ return "Buy";
+ break;
+ case CLICK_ACTION_PAY:
+ return "Pay";
+ break;
+ case CLICK_ACTION_OPEN:
+ return "Open";
+ break;
+ case CLICK_ACTION_ZOOM:
+ return "Zoom";
+ break;
+ case CLICK_ACTION_IGNORE:
+ return "Ignore";
+ break;
+ case CLICK_ACTION_DISABLED:
+ return "None";
+ break;
+ }
}
///----------------------------------------------------------------------------
@@ -149,836 +149,836 @@ std::string click_action_to_string_value( U8 action)
// Default constructor
LLPanelPermissions::LLPanelPermissions() :
- LLPanel()
+ LLPanel()
{
- setMouseOpaque(FALSE);
+ setMouseOpaque(FALSE);
}
BOOL LLPanelPermissions::postBuild()
{
- childSetCommitCallback("Object Name",LLPanelPermissions::onCommitName,this);
- getChild<LLLineEditor>("Object Name")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
- childSetCommitCallback("Object Description",LLPanelPermissions::onCommitDesc,this);
- getChild<LLLineEditor>("Object Description")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
+ childSetCommitCallback("Object Name",LLPanelPermissions::onCommitName,this);
+ getChild<LLLineEditor>("Object Name")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
+ childSetCommitCallback("Object Description",LLPanelPermissions::onCommitDesc,this);
+ getChild<LLLineEditor>("Object Description")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
+
+
+ getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickGroup,this));
+
+ childSetCommitCallback("checkbox share with group",LLPanelPermissions::onCommitGroupShare,this);
-
- getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickGroup,this));
+ childSetAction("button deed",LLPanelPermissions::onClickDeedToGroup,this);
- childSetCommitCallback("checkbox share with group",LLPanelPermissions::onCommitGroupShare,this);
+ childSetCommitCallback("checkbox allow everyone move",LLPanelPermissions::onCommitEveryoneMove,this);
- childSetAction("button deed",LLPanelPermissions::onClickDeedToGroup,this);
+ childSetCommitCallback("checkbox allow everyone copy",LLPanelPermissions::onCommitEveryoneCopy,this);
- childSetCommitCallback("checkbox allow everyone move",LLPanelPermissions::onCommitEveryoneMove,this);
+ childSetCommitCallback("checkbox for sale",LLPanelPermissions::onCommitSaleInfo,this);
- childSetCommitCallback("checkbox allow everyone copy",LLPanelPermissions::onCommitEveryoneCopy,this);
-
- childSetCommitCallback("checkbox for sale",LLPanelPermissions::onCommitSaleInfo,this);
+ childSetCommitCallback("sale type",LLPanelPermissions::onCommitSaleType,this);
- childSetCommitCallback("sale type",LLPanelPermissions::onCommitSaleType,this);
+ childSetCommitCallback("Edit Cost", LLPanelPermissions::onCommitSalePrice, this);
- childSetCommitCallback("Edit Cost", LLPanelPermissions::onCommitSalePrice, this);
-
- childSetCommitCallback("checkbox next owner can modify",LLPanelPermissions::onCommitNextOwnerModify,this);
- childSetCommitCallback("checkbox next owner can copy",LLPanelPermissions::onCommitNextOwnerCopy,this);
- childSetCommitCallback("checkbox next owner can transfer",LLPanelPermissions::onCommitNextOwnerTransfer,this);
- childSetCommitCallback("clickaction",LLPanelPermissions::onCommitClickAction,this);
- childSetCommitCallback("search_check",LLPanelPermissions::onCommitIncludeInSearch,this);
-
- mLabelGroupName = getChild<LLNameBox>("Group Name Proxy");
- mLabelOwnerName = getChild<LLTextBox>("Owner Name");
- mLabelCreatorName = getChild<LLTextBox>("Creator Name");
+ childSetCommitCallback("checkbox next owner can modify",LLPanelPermissions::onCommitNextOwnerModify,this);
+ childSetCommitCallback("checkbox next owner can copy",LLPanelPermissions::onCommitNextOwnerCopy,this);
+ childSetCommitCallback("checkbox next owner can transfer",LLPanelPermissions::onCommitNextOwnerTransfer,this);
+ childSetCommitCallback("clickaction",LLPanelPermissions::onCommitClickAction,this);
+ childSetCommitCallback("search_check",LLPanelPermissions::onCommitIncludeInSearch,this);
- return TRUE;
+ mLabelGroupName = getChild<LLNameBox>("Group Name Proxy");
+ mLabelOwnerName = getChild<LLTextBox>("Owner Name");
+ mLabelCreatorName = getChild<LLTextBox>("Creator Name");
+
+ return TRUE;
}
LLPanelPermissions::~LLPanelPermissions()
{
- if (mOwnerCacheConnection.connected())
- {
- mOwnerCacheConnection.disconnect();
- }
- if (mCreatorCacheConnection.connected())
- {
- mCreatorCacheConnection.disconnect();
- }
- // base class will take care of everything
+ if (mOwnerCacheConnection.connected())
+ {
+ mOwnerCacheConnection.disconnect();
+ }
+ if (mCreatorCacheConnection.connected())
+ {
+ mCreatorCacheConnection.disconnect();
+ }
+ // base class will take care of everything
}
void LLPanelPermissions::disableAll()
{
- getChildView("perm_modify")->setEnabled(FALSE);
- getChild<LLUICtrl>("perm_modify")->setValue(LLStringUtil::null);
-
- getChildView("pathfinding_attributes_value")->setEnabled(FALSE);
- getChild<LLUICtrl>("pathfinding_attributes_value")->setValue(LLStringUtil::null);
-
- getChildView("Creator:")->setEnabled(FALSE);
- getChild<LLUICtrl>("Creator Icon")->setVisible(FALSE);
- mLabelCreatorName->setValue(LLStringUtil::null);
- mLabelCreatorName->setEnabled(FALSE);
-
- getChildView("Owner:")->setEnabled(FALSE);
- getChild<LLUICtrl>("Owner Icon")->setVisible(FALSE);
- getChild<LLUICtrl>("Owner Group Icon")->setVisible(FALSE);
- mLabelOwnerName->setValue(LLStringUtil::null);
- mLabelOwnerName->setEnabled(FALSE);
-
- getChildView("Group:")->setEnabled(FALSE);
- getChild<LLUICtrl>("Group Name Proxy")->setValue(LLStringUtil::null);
- getChildView("Group Name Proxy")->setEnabled(FALSE);
- getChildView("button set group")->setEnabled(FALSE);
-
- getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
- getChildView("Object Name")->setEnabled(FALSE);
- getChildView("Name:")->setEnabled(FALSE);
- getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
- getChildView("Group Name")->setEnabled(FALSE);
- getChildView("Description:")->setEnabled(FALSE);
- getChild<LLUICtrl>("Object Description")->setValue(LLStringUtil::null);
- getChildView("Object Description")->setEnabled(FALSE);
-
- getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
- getChildView("checkbox share with group")->setEnabled(FALSE);
- getChildView("button deed")->setEnabled(FALSE);
-
- getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
- getChildView("checkbox allow everyone move")->setEnabled(FALSE);
- getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
- getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
-
- //Next owner can:
- getChildView("Next owner can:")->setEnabled(FALSE);
- getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
- getChildView("checkbox next owner can modify")->setEnabled(FALSE);
- getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
- getChildView("checkbox next owner can copy")->setEnabled(FALSE);
- getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
- getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
-
- //checkbox for sale
- getChild<LLUICtrl>("checkbox for sale")->setValue(FALSE);
- getChildView("checkbox for sale")->setEnabled(FALSE);
-
- //checkbox include in search
- getChild<LLUICtrl>("search_check")->setValue(FALSE);
- getChildView("search_check")->setEnabled(FALSE);
-
- LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
- combo_sale_type->setValue(LLSaleInfo::FS_COPY);
- combo_sale_type->setEnabled(FALSE);
-
- getChildView("Cost")->setEnabled(FALSE);
- getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
- getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
- getChildView("Edit Cost")->setEnabled(FALSE);
-
- getChildView("label click action")->setEnabled(FALSE);
- LLComboBox* combo_click_action = getChild<LLComboBox>("clickaction");
- if (combo_click_action)
- {
- 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("perm_modify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("perm_modify")->setValue(LLStringUtil::null);
+
+ getChildView("pathfinding_attributes_value")->setEnabled(FALSE);
+ getChild<LLUICtrl>("pathfinding_attributes_value")->setValue(LLStringUtil::null);
+
+ getChildView("Creator:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Creator Icon")->setVisible(FALSE);
+ mLabelCreatorName->setValue(LLStringUtil::null);
+ mLabelCreatorName->setEnabled(FALSE);
+
+ getChildView("Owner:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Owner Icon")->setVisible(FALSE);
+ getChild<LLUICtrl>("Owner Group Icon")->setVisible(FALSE);
+ mLabelOwnerName->setValue(LLStringUtil::null);
+ mLabelOwnerName->setEnabled(FALSE);
+
+ getChildView("Group:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Group Name Proxy")->setValue(LLStringUtil::null);
+ getChildView("Group Name Proxy")->setEnabled(FALSE);
+ getChildView("button set group")->setEnabled(FALSE);
+
+ getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
+ getChildView("Object Name")->setEnabled(FALSE);
+ getChildView("Name:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
+ getChildView("Group Name")->setEnabled(FALSE);
+ getChildView("Description:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Object Description")->setValue(LLStringUtil::null);
+ getChildView("Object Description")->setEnabled(FALSE);
+
+ getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
+ getChildView("checkbox share with group")->setEnabled(FALSE);
+ getChildView("button deed")->setEnabled(FALSE);
+
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
+ getChildView("checkbox allow everyone move")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
+ getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
+
+ //Next owner can:
+ getChildView("Next owner can:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
+ getChildView("checkbox next owner can modify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
+ getChildView("checkbox next owner can copy")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
+ getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
+
+ //checkbox for sale
+ getChild<LLUICtrl>("checkbox for sale")->setValue(FALSE);
+ getChildView("checkbox for sale")->setEnabled(FALSE);
+
+ //checkbox include in search
+ getChild<LLUICtrl>("search_check")->setValue(FALSE);
+ getChildView("search_check")->setEnabled(FALSE);
+
+ LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
+ combo_sale_type->setValue(LLSaleInfo::FS_COPY);
+ combo_sale_type->setEnabled(FALSE);
+
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
+
+ getChildView("label click action")->setEnabled(FALSE);
+ LLComboBox* combo_click_action = getChild<LLComboBox>("clickaction");
+ if (combo_click_action)
+ {
+ 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);
}
void LLPanelPermissions::refresh()
{
- LLButton* BtnDeedToGroup = getChild<LLButton>("button deed");
- if(BtnDeedToGroup)
- {
- std::string deedText;
- if (gWarningSettings.getBOOL("DeedObject"))
- {
- deedText = getString("text deed continued");
- }
- else
- {
- deedText = getString("text deed");
- }
- BtnDeedToGroup->setLabelSelected(deedText);
- BtnDeedToGroup->setLabelUnselected(deedText);
- }
- BOOL root_selected = TRUE;
- LLSelectNode* nodep = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
- S32 object_count = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount();
- if(!nodep || 0 == object_count)
- {
- nodep = LLSelectMgr::getInstance()->getSelection()->getFirstNode();
- object_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount();
- root_selected = FALSE;
- }
-
- //BOOL attachment_selected = LLSelectMgr::getInstance()->getSelection()->isAttachment();
- //attachment_selected = false;
- LLViewerObject* objectp = NULL;
- if(nodep) objectp = nodep->getObject();
- if(!nodep || !objectp)// || attachment_selected)
- {
- // ...nothing selected
- disableAll();
- return;
- }
-
- // figure out a few variables
- const BOOL is_one_object = (object_count == 1);
-
- // BUG: fails if a root and non-root are both single-selected.
- BOOL is_perm_modify = (LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
- && LLSelectMgr::getInstance()->selectGetRootsModify())
- || LLSelectMgr::getInstance()->selectGetModify();
- BOOL is_nonpermanent_enforced = (LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
- && LLSelectMgr::getInstance()->selectGetRootsNonPermanentEnforced())
- || LLSelectMgr::getInstance()->selectGetNonPermanentEnforced();
- const LLFocusableElement* keyboard_focus_view = gFocusMgr.getKeyboardFocus();
-
- S32 string_index = 0;
- std::string MODIFY_INFO_STRINGS[] =
- {
- getString("text modify info 1"),
- getString("text modify info 2"),
- getString("text modify info 3"),
- getString("text modify info 4"),
- getString("text modify info 5"),
- getString("text modify info 6")
- };
- if (!is_perm_modify)
- {
- string_index += 2;
- }
- else if (!is_nonpermanent_enforced)
- {
- string_index += 4;
- }
- if (!is_one_object)
- {
- ++string_index;
- }
- getChildView("perm_modify")->setEnabled(TRUE);
- getChild<LLUICtrl>("perm_modify")->setValue(MODIFY_INFO_STRINGS[string_index]);
-
- std::string pfAttrName;
-
- if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
- && LLSelectMgr::getInstance()->selectGetRootsNonPathfinding())
- || LLSelectMgr::getInstance()->selectGetNonPathfinding())
- {
- pfAttrName = "Pathfinding_Object_Attr_None";
- }
- else if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
- && LLSelectMgr::getInstance()->selectGetRootsPermanent())
- || LLSelectMgr::getInstance()->selectGetPermanent())
- {
- pfAttrName = "Pathfinding_Object_Attr_Permanent";
- }
- else if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
- && LLSelectMgr::getInstance()->selectGetRootsCharacter())
- || LLSelectMgr::getInstance()->selectGetCharacter())
- {
- pfAttrName = "Pathfinding_Object_Attr_Character";
- }
- else
- {
- pfAttrName = "Pathfinding_Object_Attr_MultiSelect";
- }
-
- getChildView("pathfinding_attributes_value")->setEnabled(TRUE);
- getChild<LLUICtrl>("pathfinding_attributes_value")->setValue(LLTrans::getString(pfAttrName));
-
- // Update creator text field
- getChildView("Creator:")->setEnabled(TRUE);
- std::string creator_app_link;
- LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_app_link);
-
- // Style for creator and owner links (both group and agent)
- LLStyle::Params style_params;
- LLColor4 link_color = LLUIColorTable::instance().getColor("HTMLLinkColor");
- style_params.color = link_color;
- style_params.readonly_color = link_color;
- style_params.is_link = true; // link will be added later
- const LLFontGL* fontp = mLabelCreatorName->getFont();
- style_params.font.name = LLFontGL::nameFromFont(fontp);
- style_params.font.size = LLFontGL::sizeFromFont(fontp);
- style_params.font.style = "UNDERLINE";
-
- LLAvatarName av_name;
- style_params.link_href = creator_app_link;
- if (LLAvatarNameCache::get(mCreatorID, &av_name))
- {
- updateCreatorName(mCreatorID, av_name, style_params);
- }
- else
- {
- if (mCreatorCacheConnection.connected())
- {
- mCreatorCacheConnection.disconnect();
- }
- mLabelCreatorName->setText(LLTrans::getString("None"));
- mCreatorCacheConnection = LLAvatarNameCache::get(mCreatorID, boost::bind(&LLPanelPermissions::updateCreatorName, this, _1, _2, style_params));
- }
- getChild<LLAvatarIconCtrl>("Creator Icon")->setValue(mCreatorID);
- getChild<LLAvatarIconCtrl>("Creator Icon")->setVisible(TRUE);
- mLabelCreatorName->setEnabled(TRUE);
-
- // Update owner text field
- getChildView("Owner:")->setEnabled(TRUE);
-
- std::string owner_app_link;
- const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_app_link);
-
-
- if (LLSelectMgr::getInstance()->selectIsGroupOwned())
- {
- // Group owned already displayed by selectGetOwner
- LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(mOwnerID);
- if (group_data && group_data->isGroupPropertiesDataComplete())
- {
- style_params.link_href = owner_app_link;
- mLabelOwnerName->setText(group_data->mName, style_params);
- getChild<LLGroupIconCtrl>("Owner Group Icon")->setIconId(group_data->mInsigniaID);
- getChild<LLGroupIconCtrl>("Owner Group Icon")->setVisible(TRUE);
- getChild<LLUICtrl>("Owner Icon")->setVisible(FALSE);
- }
- else
- {
- // Triggers refresh
- LLGroupMgr::getInstance()->sendGroupPropertiesRequest(mOwnerID);
- }
- }
- else
- {
- LLUUID owner_id = mOwnerID;
- if (owner_id.isNull())
- {
- // Display last owner if public
- std::string last_owner_app_link;
- LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, last_owner_app_link);
-
- // It should never happen that the last owner is null and the owner
- // is null, but it seems to be a bug in the simulator right now. JC
- if (!mLastOwnerID.isNull() && !last_owner_app_link.empty())
- {
- owner_app_link.append(", last ");
- owner_app_link.append(last_owner_app_link);
- }
- owner_id = mLastOwnerID;
- }
-
- style_params.link_href = owner_app_link;
- if (LLAvatarNameCache::get(owner_id, &av_name))
- {
- updateOwnerName(owner_id, av_name, style_params);
- }
- else
- {
- if (mOwnerCacheConnection.connected())
- {
- mOwnerCacheConnection.disconnect();
- }
- mLabelOwnerName->setText(LLTrans::getString("None"));
- mOwnerCacheConnection = LLAvatarNameCache::get(owner_id, boost::bind(&LLPanelPermissions::updateOwnerName, this, _1, _2, style_params));
- }
-
- getChild<LLAvatarIconCtrl>("Owner Icon")->setValue(owner_id);
- getChild<LLAvatarIconCtrl>("Owner Icon")->setVisible(TRUE);
- getChild<LLUICtrl>("Owner Group Icon")->setVisible(FALSE);
- }
- mLabelOwnerName->setEnabled(TRUE);
-
- // update group text field
- getChildView("Group:")->setEnabled(TRUE);
- getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
- LLUUID group_id;
- BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
- if (groups_identical)
- {
- if (mLabelGroupName)
- {
- mLabelGroupName->setNameID(group_id,TRUE);
- mLabelGroupName->setEnabled(TRUE);
- }
- }
- else
- {
- if (mLabelGroupName)
- {
- mLabelGroupName->setNameID(LLUUID::null, TRUE);
- mLabelGroupName->refresh(LLUUID::null, std::string(), true);
- mLabelGroupName->setEnabled(FALSE);
- }
- }
-
- getChildView("button set group")->setEnabled(root_selected && owners_identical && (mOwnerID == gAgent.getID()) && is_nonpermanent_enforced);
-
- getChildView("Name:")->setEnabled(TRUE);
- LLLineEditor* LineEditorObjectName = getChild<LLLineEditor>("Object Name");
- getChildView("Description:")->setEnabled(TRUE);
- LLLineEditor* LineEditorObjectDesc = getChild<LLLineEditor>("Object Description");
-
- if (is_one_object)
- {
- if (keyboard_focus_view != LineEditorObjectName)
- {
- getChild<LLUICtrl>("Object Name")->setValue(nodep->mName);
- }
-
- if (LineEditorObjectDesc)
- {
- if (keyboard_focus_view != LineEditorObjectDesc)
- {
- LineEditorObjectDesc->setText(nodep->mDescription);
- }
- }
- }
- else
- {
- getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
- LineEditorObjectDesc->setText(LLStringUtil::null);
- }
-
- // figure out the contents of the name, description, & category
- BOOL edit_name_desc = FALSE;
- if (is_one_object && objectp->permModify() && !objectp->isPermanentEnforced())
- {
- edit_name_desc = TRUE;
- }
- if (edit_name_desc)
- {
- getChildView("Object Name")->setEnabled(TRUE);
- getChildView("Object Description")->setEnabled(TRUE);
- }
- else
- {
- getChildView("Object Name")->setEnabled(FALSE);
- getChildView("Object Description")->setEnabled(FALSE);
- }
-
- S32 total_sale_price = 0;
- S32 individual_sale_price = 0;
- BOOL is_for_sale_mixed = FALSE;
- BOOL is_sale_price_mixed = FALSE;
- U32 num_for_sale = FALSE;
+ LLButton* BtnDeedToGroup = getChild<LLButton>("button deed");
+ if(BtnDeedToGroup)
+ {
+ std::string deedText;
+ if (gWarningSettings.getBOOL("DeedObject"))
+ {
+ deedText = getString("text deed continued");
+ }
+ else
+ {
+ deedText = getString("text deed");
+ }
+ BtnDeedToGroup->setLabelSelected(deedText);
+ BtnDeedToGroup->setLabelUnselected(deedText);
+ }
+ BOOL root_selected = TRUE;
+ LLSelectNode* nodep = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
+ S32 object_count = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount();
+ if(!nodep || 0 == object_count)
+ {
+ nodep = LLSelectMgr::getInstance()->getSelection()->getFirstNode();
+ object_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount();
+ root_selected = FALSE;
+ }
+
+ //BOOL attachment_selected = LLSelectMgr::getInstance()->getSelection()->isAttachment();
+ //attachment_selected = false;
+ LLViewerObject* objectp = NULL;
+ if(nodep) objectp = nodep->getObject();
+ if(!nodep || !objectp)// || attachment_selected)
+ {
+ // ...nothing selected
+ disableAll();
+ return;
+ }
+
+ // figure out a few variables
+ const BOOL is_one_object = (object_count == 1);
+
+ // BUG: fails if a root and non-root are both single-selected.
+ BOOL is_perm_modify = (LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
+ && LLSelectMgr::getInstance()->selectGetRootsModify())
+ || LLSelectMgr::getInstance()->selectGetModify();
+ BOOL is_nonpermanent_enforced = (LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
+ && LLSelectMgr::getInstance()->selectGetRootsNonPermanentEnforced())
+ || LLSelectMgr::getInstance()->selectGetNonPermanentEnforced();
+ const LLFocusableElement* keyboard_focus_view = gFocusMgr.getKeyboardFocus();
+
+ S32 string_index = 0;
+ std::string MODIFY_INFO_STRINGS[] =
+ {
+ getString("text modify info 1"),
+ getString("text modify info 2"),
+ getString("text modify info 3"),
+ getString("text modify info 4"),
+ getString("text modify info 5"),
+ getString("text modify info 6")
+ };
+ if (!is_perm_modify)
+ {
+ string_index += 2;
+ }
+ else if (!is_nonpermanent_enforced)
+ {
+ string_index += 4;
+ }
+ if (!is_one_object)
+ {
+ ++string_index;
+ }
+ getChildView("perm_modify")->setEnabled(TRUE);
+ getChild<LLUICtrl>("perm_modify")->setValue(MODIFY_INFO_STRINGS[string_index]);
+
+ std::string pfAttrName;
+
+ if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
+ && LLSelectMgr::getInstance()->selectGetRootsNonPathfinding())
+ || LLSelectMgr::getInstance()->selectGetNonPathfinding())
+ {
+ pfAttrName = "Pathfinding_Object_Attr_None";
+ }
+ else if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
+ && LLSelectMgr::getInstance()->selectGetRootsPermanent())
+ || LLSelectMgr::getInstance()->selectGetPermanent())
+ {
+ pfAttrName = "Pathfinding_Object_Attr_Permanent";
+ }
+ else if ((LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
+ && LLSelectMgr::getInstance()->selectGetRootsCharacter())
+ || LLSelectMgr::getInstance()->selectGetCharacter())
+ {
+ pfAttrName = "Pathfinding_Object_Attr_Character";
+ }
+ else
+ {
+ pfAttrName = "Pathfinding_Object_Attr_MultiSelect";
+ }
+
+ getChildView("pathfinding_attributes_value")->setEnabled(TRUE);
+ getChild<LLUICtrl>("pathfinding_attributes_value")->setValue(LLTrans::getString(pfAttrName));
+
+ // Update creator text field
+ getChildView("Creator:")->setEnabled(TRUE);
+ std::string creator_app_link;
+ LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_app_link);
+
+ // Style for creator and owner links (both group and agent)
+ LLStyle::Params style_params;
+ LLColor4 link_color = LLUIColorTable::instance().getColor("HTMLLinkColor");
+ style_params.color = link_color;
+ style_params.readonly_color = link_color;
+ style_params.is_link = true; // link will be added later
+ const LLFontGL* fontp = mLabelCreatorName->getFont();
+ style_params.font.name = LLFontGL::nameFromFont(fontp);
+ style_params.font.size = LLFontGL::sizeFromFont(fontp);
+ style_params.font.style = "UNDERLINE";
+
+ LLAvatarName av_name;
+ style_params.link_href = creator_app_link;
+ if (LLAvatarNameCache::get(mCreatorID, &av_name))
+ {
+ updateCreatorName(mCreatorID, av_name, style_params);
+ }
+ else
+ {
+ if (mCreatorCacheConnection.connected())
+ {
+ mCreatorCacheConnection.disconnect();
+ }
+ mLabelCreatorName->setText(LLTrans::getString("None"));
+ mCreatorCacheConnection = LLAvatarNameCache::get(mCreatorID, boost::bind(&LLPanelPermissions::updateCreatorName, this, _1, _2, style_params));
+ }
+ getChild<LLAvatarIconCtrl>("Creator Icon")->setValue(mCreatorID);
+ getChild<LLAvatarIconCtrl>("Creator Icon")->setVisible(TRUE);
+ mLabelCreatorName->setEnabled(TRUE);
+
+ // Update owner text field
+ getChildView("Owner:")->setEnabled(TRUE);
+
+ std::string owner_app_link;
+ const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_app_link);
+
+
+ if (LLSelectMgr::getInstance()->selectIsGroupOwned())
+ {
+ // Group owned already displayed by selectGetOwner
+ LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(mOwnerID);
+ if (group_data && group_data->isGroupPropertiesDataComplete())
+ {
+ style_params.link_href = owner_app_link;
+ mLabelOwnerName->setText(group_data->mName, style_params);
+ getChild<LLGroupIconCtrl>("Owner Group Icon")->setIconId(group_data->mInsigniaID);
+ getChild<LLGroupIconCtrl>("Owner Group Icon")->setVisible(TRUE);
+ getChild<LLUICtrl>("Owner Icon")->setVisible(FALSE);
+ }
+ else
+ {
+ // Triggers refresh
+ LLGroupMgr::getInstance()->sendGroupPropertiesRequest(mOwnerID);
+ }
+ }
+ else
+ {
+ LLUUID owner_id = mOwnerID;
+ if (owner_id.isNull())
+ {
+ // Display last owner if public
+ std::string last_owner_app_link;
+ LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, last_owner_app_link);
+
+ // It should never happen that the last owner is null and the owner
+ // is null, but it seems to be a bug in the simulator right now. JC
+ if (!mLastOwnerID.isNull() && !last_owner_app_link.empty())
+ {
+ owner_app_link.append(", last ");
+ owner_app_link.append(last_owner_app_link);
+ }
+ owner_id = mLastOwnerID;
+ }
+
+ style_params.link_href = owner_app_link;
+ if (LLAvatarNameCache::get(owner_id, &av_name))
+ {
+ updateOwnerName(owner_id, av_name, style_params);
+ }
+ else
+ {
+ if (mOwnerCacheConnection.connected())
+ {
+ mOwnerCacheConnection.disconnect();
+ }
+ mLabelOwnerName->setText(LLTrans::getString("None"));
+ mOwnerCacheConnection = LLAvatarNameCache::get(owner_id, boost::bind(&LLPanelPermissions::updateOwnerName, this, _1, _2, style_params));
+ }
+
+ getChild<LLAvatarIconCtrl>("Owner Icon")->setValue(owner_id);
+ getChild<LLAvatarIconCtrl>("Owner Icon")->setVisible(TRUE);
+ getChild<LLUICtrl>("Owner Group Icon")->setVisible(FALSE);
+ }
+ mLabelOwnerName->setEnabled(TRUE);
+
+ // update group text field
+ getChildView("Group:")->setEnabled(TRUE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
+ LLUUID group_id;
+ BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
+ if (groups_identical)
+ {
+ if (mLabelGroupName)
+ {
+ mLabelGroupName->setNameID(group_id,TRUE);
+ mLabelGroupName->setEnabled(TRUE);
+ }
+ }
+ else
+ {
+ if (mLabelGroupName)
+ {
+ mLabelGroupName->setNameID(LLUUID::null, TRUE);
+ mLabelGroupName->refresh(LLUUID::null, std::string(), true);
+ mLabelGroupName->setEnabled(FALSE);
+ }
+ }
+
+ getChildView("button set group")->setEnabled(root_selected && owners_identical && (mOwnerID == gAgent.getID()) && is_nonpermanent_enforced);
+
+ getChildView("Name:")->setEnabled(TRUE);
+ LLLineEditor* LineEditorObjectName = getChild<LLLineEditor>("Object Name");
+ getChildView("Description:")->setEnabled(TRUE);
+ LLLineEditor* LineEditorObjectDesc = getChild<LLLineEditor>("Object Description");
+
+ if (is_one_object)
+ {
+ if (keyboard_focus_view != LineEditorObjectName)
+ {
+ getChild<LLUICtrl>("Object Name")->setValue(nodep->mName);
+ }
+
+ if (LineEditorObjectDesc)
+ {
+ if (keyboard_focus_view != LineEditorObjectDesc)
+ {
+ LineEditorObjectDesc->setText(nodep->mDescription);
+ }
+ }
+ }
+ else
+ {
+ getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
+ LineEditorObjectDesc->setText(LLStringUtil::null);
+ }
+
+ // figure out the contents of the name, description, & category
+ BOOL edit_name_desc = FALSE;
+ if (is_one_object && objectp->permModify() && !objectp->isPermanentEnforced())
+ {
+ edit_name_desc = TRUE;
+ }
+ if (edit_name_desc)
+ {
+ getChildView("Object Name")->setEnabled(TRUE);
+ getChildView("Object Description")->setEnabled(TRUE);
+ }
+ else
+ {
+ getChildView("Object Name")->setEnabled(FALSE);
+ getChildView("Object Description")->setEnabled(FALSE);
+ }
+
+ S32 total_sale_price = 0;
+ S32 individual_sale_price = 0;
+ BOOL is_for_sale_mixed = FALSE;
+ BOOL is_sale_price_mixed = FALSE;
+ U32 num_for_sale = FALSE;
LLSelectMgr::getInstance()->selectGetAggregateSaleInfo(num_for_sale,
- is_for_sale_mixed,
- is_sale_price_mixed,
- total_sale_price,
- individual_sale_price);
-
- const BOOL self_owned = (gAgent.getID() == mOwnerID);
- const BOOL group_owned = LLSelectMgr::getInstance()->selectIsGroupOwned() ;
- const BOOL public_owned = (mOwnerID.isNull() && !LLSelectMgr::getInstance()->selectIsGroupOwned());
- const BOOL can_transfer = LLSelectMgr::getInstance()->selectGetRootsTransfer();
- const BOOL can_copy = LLSelectMgr::getInstance()->selectGetRootsCopy();
-
- if (!owners_identical)
- {
- getChildView("Cost")->setEnabled(FALSE);
- getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
- getChildView("Edit Cost")->setEnabled(FALSE);
- }
- // You own these objects.
- else if (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
- {
- // If there are multiple items for sale then set text to PRICE PER UNIT.
- if (num_for_sale > 1)
- {
- getChild<LLUICtrl>("Cost")->setValue(getString("Cost Per Unit"));
- }
- else
- {
- getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
- }
-
- LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
- if (!edit_price->hasFocus())
- {
- // If the sale price is mixed then set the cost to MIXED, otherwise
- // set to the actual cost.
- if ((num_for_sale > 0) && is_for_sale_mixed)
- {
- edit_price->setTentative(TRUE);
- }
- else if ((num_for_sale > 0) && is_sale_price_mixed)
- {
- edit_price->setTentative(TRUE);
- }
- else
- {
- edit_price->setValue(individual_sale_price);
- }
- }
- // The edit fields are only enabled if you can sell this object
- // and the sale price is not mixed.
- BOOL enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : FALSE;
- getChildView("Cost")->setEnabled(enable_edit);
- getChildView("Edit Cost")->setEnabled(enable_edit);
- }
- // Someone, not you, owns these objects.
- else if (!public_owned)
- {
- getChildView("Cost")->setEnabled(FALSE);
- getChildView("Edit Cost")->setEnabled(FALSE);
-
- // Don't show a price if none of the items are for sale.
- if (num_for_sale)
- getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",total_sale_price));
- else
- getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
-
- // If multiple items are for sale, set text to TOTAL PRICE.
- if (num_for_sale > 1)
- getChild<LLUICtrl>("Cost")->setValue(getString("Cost Total"));
- else
- getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
- }
- // This is a public object.
- else
- {
- getChildView("Cost")->setEnabled(FALSE);
- getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
-
- getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
- getChildView("Edit Cost")->setEnabled(FALSE);
- }
-
- // Enable and disable the permissions checkboxes
- // based on who owns the object.
- // TODO: Creator permissions
-
- U32 base_mask_on = 0;
- U32 base_mask_off = 0;
- U32 owner_mask_off = 0;
- U32 owner_mask_on = 0;
- U32 group_mask_on = 0;
- U32 group_mask_off = 0;
- U32 everyone_mask_on = 0;
- U32 everyone_mask_off = 0;
- U32 next_owner_mask_on = 0;
- U32 next_owner_mask_off = 0;
-
- BOOL valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE,
- &base_mask_on,
- &base_mask_off);
- //BOOL valid_owner_perms =//
- LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
- &owner_mask_on,
- &owner_mask_off);
- BOOL valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP,
- &group_mask_on,
- &group_mask_off);
-
- BOOL valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE,
- &everyone_mask_on,
- &everyone_mask_off);
-
- BOOL valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER,
- &next_owner_mask_on,
- &next_owner_mask_off);
-
-
- if (gSavedSettings.getBOOL("DebugPermissions") )
- {
- if (valid_base_perms)
- {
- getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string(base_mask_on));
- getChildView("B:")->setVisible(TRUE);
- getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(owner_mask_on));
- getChildView("O:")->setVisible(TRUE);
- getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(group_mask_on));
- getChildView("G:")->setVisible(TRUE);
- getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(everyone_mask_on));
- getChildView("E:")->setVisible(TRUE);
- getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(next_owner_mask_on));
- getChildView("N:")->setVisible(TRUE);
- }
- else if(!root_selected)
- {
- if(object_count == 1)
- {
- LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode();
- if (node && node->mValid)
- {
- getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string( node->mPermissions->getMaskBase()));
- getChildView("B:")->setVisible(TRUE);
- getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(node->mPermissions->getMaskOwner()));
- getChildView("O:")->setVisible(TRUE);
- getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(node->mPermissions->getMaskGroup()));
- getChildView("G:")->setVisible(TRUE);
- getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(node->mPermissions->getMaskEveryone()));
- getChildView("E:")->setVisible(TRUE);
- getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(node->mPermissions->getMaskNextOwner()));
- getChildView("N:")->setVisible(TRUE);
- }
- }
- }
- else
- {
- getChildView("B:")->setVisible(FALSE);
- getChildView("O:")->setVisible(FALSE);
- getChildView("G:")->setVisible(FALSE);
- getChildView("E:")->setVisible(FALSE);
- getChildView("N:")->setVisible(FALSE);
- }
-
- U32 flag_mask = 0x0;
- if (objectp->permMove()) flag_mask |= PERM_MOVE;
- if (objectp->permModify()) flag_mask |= PERM_MODIFY;
- if (objectp->permCopy()) flag_mask |= PERM_COPY;
- if (objectp->permTransfer()) flag_mask |= PERM_TRANSFER;
-
- getChild<LLUICtrl>("F:")->setValue("F:" + mask_to_string(flag_mask));
- getChildView("F:")->setVisible( TRUE);
- }
- else
- {
- getChildView("B:")->setVisible( FALSE);
- getChildView("O:")->setVisible( FALSE);
- getChildView("G:")->setVisible( FALSE);
- getChildView("E:")->setVisible( FALSE);
- getChildView("N:")->setVisible( FALSE);
- getChildView("F:")->setVisible( FALSE);
- }
-
- BOOL has_change_perm_ability = FALSE;
- BOOL has_change_sale_ability = FALSE;
-
- if (valid_base_perms && is_nonpermanent_enforced &&
- (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_MANIPULATE))))
- {
- has_change_perm_ability = TRUE;
- }
- if (valid_base_perms && is_nonpermanent_enforced &&
- (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_SET_SALE))))
- {
- has_change_sale_ability = TRUE;
- }
-
- if (!has_change_perm_ability && !has_change_sale_ability && !root_selected)
- {
- // ...must select root to choose permissions
- getChild<LLUICtrl>("perm_modify")->setValue(getString("text modify warning"));
- }
-
- if (has_change_perm_ability)
- {
- getChildView("checkbox share with group")->setEnabled(TRUE);
- getChildView("checkbox allow everyone move")->setEnabled(owner_mask_on & PERM_MOVE);
- getChildView("checkbox allow everyone copy")->setEnabled(owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
- }
- else
- {
- getChildView("checkbox share with group")->setEnabled(FALSE);
- getChildView("checkbox allow everyone move")->setEnabled(FALSE);
- getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
- }
-
- if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))
- {
+ is_for_sale_mixed,
+ is_sale_price_mixed,
+ total_sale_price,
+ individual_sale_price);
+
+ const BOOL self_owned = (gAgent.getID() == mOwnerID);
+ const BOOL group_owned = LLSelectMgr::getInstance()->selectIsGroupOwned() ;
+ const BOOL public_owned = (mOwnerID.isNull() && !LLSelectMgr::getInstance()->selectIsGroupOwned());
+ const BOOL can_transfer = LLSelectMgr::getInstance()->selectGetRootsTransfer();
+ const BOOL can_copy = LLSelectMgr::getInstance()->selectGetRootsCopy();
+
+ if (!owners_identical)
+ {
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
+ }
+ // You own these objects.
+ else if (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
+ {
+ // If there are multiple items for sale then set text to PRICE PER UNIT.
+ if (num_for_sale > 1)
+ {
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Per Unit"));
+ }
+ else
+ {
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
+ }
+
+ LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
+ if (!edit_price->hasFocus())
+ {
+ // If the sale price is mixed then set the cost to MIXED, otherwise
+ // set to the actual cost.
+ if ((num_for_sale > 0) && is_for_sale_mixed)
+ {
+ edit_price->setTentative(TRUE);
+ }
+ else if ((num_for_sale > 0) && is_sale_price_mixed)
+ {
+ edit_price->setTentative(TRUE);
+ }
+ else
+ {
+ edit_price->setValue(individual_sale_price);
+ }
+ }
+ // The edit fields are only enabled if you can sell this object
+ // and the sale price is not mixed.
+ BOOL enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : FALSE;
+ getChildView("Cost")->setEnabled(enable_edit);
+ getChildView("Edit Cost")->setEnabled(enable_edit);
+ }
+ // Someone, not you, owns these objects.
+ else if (!public_owned)
+ {
+ getChildView("Cost")->setEnabled(FALSE);
+ getChildView("Edit Cost")->setEnabled(FALSE);
+
+ // Don't show a price if none of the items are for sale.
+ if (num_for_sale)
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",total_sale_price));
+ else
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+
+ // If multiple items are for sale, set text to TOTAL PRICE.
+ if (num_for_sale > 1)
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Total"));
+ else
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
+ }
+ // This is a public object.
+ else
+ {
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
+
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
+ }
+
+ // Enable and disable the permissions checkboxes
+ // based on who owns the object.
+ // TODO: Creator permissions
+
+ U32 base_mask_on = 0;
+ U32 base_mask_off = 0;
+ U32 owner_mask_off = 0;
+ U32 owner_mask_on = 0;
+ U32 group_mask_on = 0;
+ U32 group_mask_off = 0;
+ U32 everyone_mask_on = 0;
+ U32 everyone_mask_off = 0;
+ U32 next_owner_mask_on = 0;
+ U32 next_owner_mask_off = 0;
+
+ BOOL valid_base_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE,
+ &base_mask_on,
+ &base_mask_off);
+ //BOOL valid_owner_perms =//
+ LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
+ &owner_mask_on,
+ &owner_mask_off);
+ BOOL valid_group_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP,
+ &group_mask_on,
+ &group_mask_off);
+
+ BOOL valid_everyone_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE,
+ &everyone_mask_on,
+ &everyone_mask_off);
+
+ BOOL valid_next_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER,
+ &next_owner_mask_on,
+ &next_owner_mask_off);
+
+
+ if (gSavedSettings.getBOOL("DebugPermissions") )
+ {
+ if (valid_base_perms)
+ {
+ getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string(base_mask_on));
+ getChildView("B:")->setVisible(TRUE);
+ getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(owner_mask_on));
+ getChildView("O:")->setVisible(TRUE);
+ getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(group_mask_on));
+ getChildView("G:")->setVisible(TRUE);
+ getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(everyone_mask_on));
+ getChildView("E:")->setVisible(TRUE);
+ getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(next_owner_mask_on));
+ getChildView("N:")->setVisible(TRUE);
+ }
+ else if(!root_selected)
+ {
+ if(object_count == 1)
+ {
+ LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode();
+ if (node && node->mValid)
+ {
+ getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string( node->mPermissions->getMaskBase()));
+ getChildView("B:")->setVisible(TRUE);
+ getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(node->mPermissions->getMaskOwner()));
+ getChildView("O:")->setVisible(TRUE);
+ getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(node->mPermissions->getMaskGroup()));
+ getChildView("G:")->setVisible(TRUE);
+ getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(node->mPermissions->getMaskEveryone()));
+ getChildView("E:")->setVisible(TRUE);
+ getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(node->mPermissions->getMaskNextOwner()));
+ getChildView("N:")->setVisible(TRUE);
+ }
+ }
+ }
+ else
+ {
+ getChildView("B:")->setVisible(FALSE);
+ getChildView("O:")->setVisible(FALSE);
+ getChildView("G:")->setVisible(FALSE);
+ getChildView("E:")->setVisible(FALSE);
+ getChildView("N:")->setVisible(FALSE);
+ }
+
+ U32 flag_mask = 0x0;
+ if (objectp->permMove()) flag_mask |= PERM_MOVE;
+ if (objectp->permModify()) flag_mask |= PERM_MODIFY;
+ if (objectp->permCopy()) flag_mask |= PERM_COPY;
+ if (objectp->permTransfer()) flag_mask |= PERM_TRANSFER;
+
+ getChild<LLUICtrl>("F:")->setValue("F:" + mask_to_string(flag_mask));
+ getChildView("F:")->setVisible( TRUE);
+ }
+ else
+ {
+ getChildView("B:")->setVisible( FALSE);
+ getChildView("O:")->setVisible( FALSE);
+ getChildView("G:")->setVisible( FALSE);
+ getChildView("E:")->setVisible( FALSE);
+ getChildView("N:")->setVisible( FALSE);
+ getChildView("F:")->setVisible( FALSE);
+ }
+
+ BOOL has_change_perm_ability = FALSE;
+ BOOL has_change_sale_ability = FALSE;
+
+ if (valid_base_perms && is_nonpermanent_enforced &&
+ (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_MANIPULATE))))
+ {
+ has_change_perm_ability = TRUE;
+ }
+ if (valid_base_perms && is_nonpermanent_enforced &&
+ (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id, GP_OBJECT_SET_SALE))))
+ {
+ has_change_sale_ability = TRUE;
+ }
+
+ if (!has_change_perm_ability && !has_change_sale_ability && !root_selected)
+ {
+ // ...must select root to choose permissions
+ getChild<LLUICtrl>("perm_modify")->setValue(getString("text modify warning"));
+ }
+
+ if (has_change_perm_ability)
+ {
+ getChildView("checkbox share with group")->setEnabled(TRUE);
+ getChildView("checkbox allow everyone move")->setEnabled(owner_mask_on & PERM_MOVE);
+ getChildView("checkbox allow everyone copy")->setEnabled(owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
+ }
+ else
+ {
+ getChildView("checkbox share with group")->setEnabled(FALSE);
+ getChildView("checkbox allow everyone move")->setEnabled(FALSE);
+ getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
+ }
+
+ if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))
+ {
bool change_sale_allowed = can_transfer || (!can_transfer && num_for_sale);
getChildView("checkbox for sale")->setEnabled(change_sale_allowed);
getChildView("Edit Cost")->setEnabled(change_sale_allowed && !is_for_sale_mixed);
- // Set the checkbox to tentative if the prices of each object selected
- // are not the same.
- getChild<LLUICtrl>("checkbox for sale")->setTentative( is_for_sale_mixed);
- getChildView("sale type")->setEnabled(num_for_sale && can_transfer && !is_sale_price_mixed);
-
- getChildView("Next owner can:")->setEnabled(TRUE);
- getChildView("checkbox next owner can modify")->setEnabled(base_mask_on & PERM_MODIFY);
- getChildView("checkbox next owner can copy")->setEnabled(base_mask_on & PERM_COPY);
- getChildView("checkbox next owner can transfer")->setEnabled(next_owner_mask_on & PERM_COPY);
- }
- else
- {
- getChildView("checkbox for sale")->setEnabled(FALSE);
- getChildView("sale type")->setEnabled(FALSE);
-
- getChildView("Next owner can:")->setEnabled(FALSE);
- getChildView("checkbox next owner can modify")->setEnabled(FALSE);
- getChildView("checkbox next owner can copy")->setEnabled(FALSE);
- getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
- }
-
- if (valid_group_perms)
- {
- if ((group_mask_on & PERM_COPY) && (group_mask_on & PERM_MODIFY) && (group_mask_on & PERM_MOVE))
- {
- getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
- getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
- }
- else if ((group_mask_off & PERM_COPY) && (group_mask_off & PERM_MODIFY) && (group_mask_off & PERM_MOVE))
- {
- getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
- getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
- getChildView("button deed")->setEnabled(FALSE);
- }
- else
- {
- getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox share with group")->setTentative(!has_change_perm_ability);
- getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
- }
- }
-
- if (valid_everyone_perms)
- {
- // Move
- if (everyone_mask_on & PERM_MOVE)
- {
- getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
- }
- else if (everyone_mask_off & PERM_MOVE)
- {
- getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
- getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
- }
- else
- {
- getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( TRUE);
- }
-
- // Copy == everyone can't copy
- if (everyone_mask_on & PERM_COPY)
- {
- getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( !can_copy || !can_transfer);
- }
- else if (everyone_mask_off & PERM_COPY)
- {
- getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
- getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( FALSE);
- }
- else
- {
- getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( TRUE);
- }
- }
-
- if (valid_next_perms)
- {
- // Modify == next owner canot modify
- if (next_owner_mask_on & PERM_MODIFY)
- {
- getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
- }
- else if (next_owner_mask_off & PERM_MODIFY)
- {
- getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
- getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
- }
- else
- {
- getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( TRUE);
- }
-
- // Copy == next owner cannot copy
- if (next_owner_mask_on & PERM_COPY)
- {
- getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( !can_copy);
- }
- else if (next_owner_mask_off & PERM_COPY)
- {
- getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
- getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( FALSE);
- }
- else
- {
- getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( TRUE);
- }
-
- // Transfer == next owner cannot transfer
- if (next_owner_mask_on & PERM_TRANSFER)
- {
- getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( !can_transfer);
- }
- else if (next_owner_mask_off & PERM_TRANSFER)
- {
- getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
- getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( FALSE);
- }
- else
- {
- getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
- getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( TRUE);
- }
- }
-
- // reflect sale information
- LLSaleInfo sale_info;
- BOOL valid_sale_info = LLSelectMgr::getInstance()->selectGetSaleInfo(sale_info);
- LLSaleInfo::EForSale sale_type = sale_info.getSaleType();
-
- LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
- if (valid_sale_info)
- {
- combo_sale_type->setValue( sale_type == LLSaleInfo::FS_NOT ? LLSaleInfo::FS_COPY : sale_type);
- combo_sale_type->setTentative( FALSE); // unfortunately this doesn't do anything at the moment.
- }
- else
- {
- // default option is sell copy, determined to be safest
- combo_sale_type->setValue( LLSaleInfo::FS_COPY);
- combo_sale_type->setTentative( TRUE); // unfortunately this doesn't do anything at the moment.
- }
-
- getChild<LLUICtrl>("checkbox for sale")->setValue((num_for_sale != 0));
-
- // HACK: There are some old objects in world that are set for sale,
- // but are no-transfer. We need to let users turn for-sale off, but only
- // if for-sale is set.
- bool cannot_actually_sell = !can_transfer || (!can_copy && sale_type == LLSaleInfo::FS_COPY);
- if (cannot_actually_sell)
- {
- if (num_for_sale && has_change_sale_ability)
- {
- getChildView("checkbox for sale")->setEnabled(true);
- }
- }
-
- // Check search status of objects
- const BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
- bool include_in_search;
- 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);
-
- // 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)
- {
- const std::string combo_value = click_action_to_string_value(click_action);
- combo_click_action->setValue(LLSD(combo_value));
- }
- }
-
- if (LLSelectMgr::getInstance()->getSelection()->isAttachment())
- {
- getChildView("checkbox for sale")->setEnabled(FALSE);
- getChildView("Edit Cost")->setEnabled(FALSE);
- getChild<LLComboBox>("sale type")->setEnabled(FALSE);
- }
-
- getChildView("label click action")->setEnabled(is_perm_modify && is_nonpermanent_enforced && all_volume);
- getChildView("clickaction")->setEnabled(is_perm_modify && is_nonpermanent_enforced && all_volume);
+ // Set the checkbox to tentative if the prices of each object selected
+ // are not the same.
+ getChild<LLUICtrl>("checkbox for sale")->setTentative( is_for_sale_mixed);
+ getChildView("sale type")->setEnabled(num_for_sale && can_transfer && !is_sale_price_mixed);
+
+ getChildView("Next owner can:")->setEnabled(TRUE);
+ getChildView("checkbox next owner can modify")->setEnabled(base_mask_on & PERM_MODIFY);
+ getChildView("checkbox next owner can copy")->setEnabled(base_mask_on & PERM_COPY);
+ getChildView("checkbox next owner can transfer")->setEnabled(next_owner_mask_on & PERM_COPY);
+ }
+ else
+ {
+ getChildView("checkbox for sale")->setEnabled(FALSE);
+ getChildView("sale type")->setEnabled(FALSE);
+
+ getChildView("Next owner can:")->setEnabled(FALSE);
+ getChildView("checkbox next owner can modify")->setEnabled(FALSE);
+ getChildView("checkbox next owner can copy")->setEnabled(FALSE);
+ getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
+ }
+
+ if (valid_group_perms)
+ {
+ if ((group_mask_on & PERM_COPY) && (group_mask_on & PERM_MODIFY) && (group_mask_on & PERM_MOVE))
+ {
+ getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
+ getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ }
+ else if ((group_mask_off & PERM_COPY) && (group_mask_off & PERM_MODIFY) && (group_mask_off & PERM_MOVE))
+ {
+ getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
+ getChildView("button deed")->setEnabled(FALSE);
+ }
+ else
+ {
+ getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative(!has_change_perm_ability);
+ getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ }
+ }
+
+ if (valid_everyone_perms)
+ {
+ // Move
+ if (everyone_mask_on & PERM_MOVE)
+ {
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
+ }
+ else if (everyone_mask_off & PERM_MOVE)
+ {
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
+ }
+ else
+ {
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( TRUE);
+ }
+
+ // Copy == everyone can't copy
+ if (everyone_mask_on & PERM_COPY)
+ {
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( !can_copy || !can_transfer);
+ }
+ else if (everyone_mask_off & PERM_COPY)
+ {
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( FALSE);
+ }
+ else
+ {
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( TRUE);
+ }
+ }
+
+ if (valid_next_perms)
+ {
+ // Modify == next owner canot modify
+ if (next_owner_mask_on & PERM_MODIFY)
+ {
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
+ }
+ else if (next_owner_mask_off & PERM_MODIFY)
+ {
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
+ }
+ else
+ {
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( TRUE);
+ }
+
+ // Copy == next owner cannot copy
+ if (next_owner_mask_on & PERM_COPY)
+ {
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( !can_copy);
+ }
+ else if (next_owner_mask_off & PERM_COPY)
+ {
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( FALSE);
+ }
+ else
+ {
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( TRUE);
+ }
+
+ // Transfer == next owner cannot transfer
+ if (next_owner_mask_on & PERM_TRANSFER)
+ {
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( !can_transfer);
+ }
+ else if (next_owner_mask_off & PERM_TRANSFER)
+ {
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( FALSE);
+ }
+ else
+ {
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( TRUE);
+ }
+ }
+
+ // reflect sale information
+ LLSaleInfo sale_info;
+ BOOL valid_sale_info = LLSelectMgr::getInstance()->selectGetSaleInfo(sale_info);
+ LLSaleInfo::EForSale sale_type = sale_info.getSaleType();
+
+ LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
+ if (valid_sale_info)
+ {
+ combo_sale_type->setValue( sale_type == LLSaleInfo::FS_NOT ? LLSaleInfo::FS_COPY : sale_type);
+ combo_sale_type->setTentative( FALSE); // unfortunately this doesn't do anything at the moment.
+ }
+ else
+ {
+ // default option is sell copy, determined to be safest
+ combo_sale_type->setValue( LLSaleInfo::FS_COPY);
+ combo_sale_type->setTentative( TRUE); // unfortunately this doesn't do anything at the moment.
+ }
+
+ getChild<LLUICtrl>("checkbox for sale")->setValue((num_for_sale != 0));
+
+ // HACK: There are some old objects in world that are set for sale,
+ // but are no-transfer. We need to let users turn for-sale off, but only
+ // if for-sale is set.
+ bool cannot_actually_sell = !can_transfer || (!can_copy && sale_type == LLSaleInfo::FS_COPY);
+ if (cannot_actually_sell)
+ {
+ if (num_for_sale && has_change_sale_ability)
+ {
+ getChildView("checkbox for sale")->setEnabled(true);
+ }
+ }
+
+ // Check search status of objects
+ const BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
+ bool include_in_search;
+ 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);
+
+ // 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)
+ {
+ const std::string combo_value = click_action_to_string_value(click_action);
+ combo_click_action->setValue(LLSD(combo_value));
+ }
+ }
+
+ if (LLSelectMgr::getInstance()->getSelection()->isAttachment())
+ {
+ getChildView("checkbox for sale")->setEnabled(FALSE);
+ getChildView("Edit Cost")->setEnabled(FALSE);
+ getChild<LLComboBox>("sale type")->setEnabled(FALSE);
+ }
+
+ getChildView("label click action")->setEnabled(is_perm_modify && is_nonpermanent_enforced && all_volume);
+ getChildView("clickaction")->setEnabled(is_perm_modify && is_nonpermanent_enforced && all_volume);
}
// Shorten name if it doesn't fit into max_pixels of two lines
@@ -1013,91 +1013,91 @@ void shorten_name(std::string &name, const LLStyle::Params& style_params, S32 ma
void LLPanelPermissions::updateOwnerName(const LLUUID& owner_id, const LLAvatarName& owner_name, const LLStyle::Params& style_params)
{
- if (mOwnerCacheConnection.connected())
- {
- mOwnerCacheConnection.disconnect();
- }
- std::string name = owner_name.getCompleteName();
- shorten_name(name, style_params, mLabelOwnerName->getLocalRect().getWidth());
- mLabelOwnerName->setText(name, style_params);
+ if (mOwnerCacheConnection.connected())
+ {
+ mOwnerCacheConnection.disconnect();
+ }
+ std::string name = owner_name.getCompleteName();
+ shorten_name(name, style_params, mLabelOwnerName->getLocalRect().getWidth());
+ mLabelOwnerName->setText(name, style_params);
}
void LLPanelPermissions::updateCreatorName(const LLUUID& creator_id, const LLAvatarName& creator_name, const LLStyle::Params& style_params)
{
- if (mCreatorCacheConnection.connected())
- {
- mCreatorCacheConnection.disconnect();
- }
- std::string name = creator_name.getCompleteName();
- shorten_name(name, style_params, mLabelCreatorName->getLocalRect().getWidth());
- mLabelCreatorName->setText(name, style_params);
+ if (mCreatorCacheConnection.connected())
+ {
+ mCreatorCacheConnection.disconnect();
+ }
+ std::string name = creator_name.getCompleteName();
+ shorten_name(name, style_params, mLabelCreatorName->getLocalRect().getWidth());
+ mLabelCreatorName->setText(name, style_params);
}
// static
void LLPanelPermissions::onClickClaim(void*)
{
- // try to claim ownership
- LLSelectMgr::getInstance()->sendOwner(gAgent.getID(), gAgent.getGroupID());
+ // try to claim ownership
+ LLSelectMgr::getInstance()->sendOwner(gAgent.getID(), gAgent.getGroupID());
}
// static
void LLPanelPermissions::onClickRelease(void*)
{
- // try to release ownership
- LLSelectMgr::getInstance()->sendOwner(LLUUID::null, LLUUID::null);
+ // try to release ownership
+ LLSelectMgr::getInstance()->sendOwner(LLUUID::null, LLUUID::null);
}
void LLPanelPermissions::onClickGroup()
{
- LLUUID owner_id;
- std::string name;
- BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, name);
- LLFloater* parent_floater = gFloaterView->getParentFloater(this);
-
- if(owners_identical && (owner_id == gAgent.getID()))
- {
- LLFloaterGroupPicker* fg = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
- if (fg)
- {
- fg->setSelectGroupCallback( boost::bind(&LLPanelPermissions::cbGroupID, this, _1) );
-
- if (parent_floater)
- {
- LLRect new_rect = gFloaterView->findNeighboringPosition(parent_floater, fg);
- fg->setOrigin(new_rect.mLeft, new_rect.mBottom);
- parent_floater->addDependentFloater(fg);
- }
- }
- }
+ LLUUID owner_id;
+ std::string name;
+ BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, name);
+ LLFloater* parent_floater = gFloaterView->getParentFloater(this);
+
+ if(owners_identical && (owner_id == gAgent.getID()))
+ {
+ LLFloaterGroupPicker* fg = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(gAgent.getID()));
+ if (fg)
+ {
+ fg->setSelectGroupCallback( boost::bind(&LLPanelPermissions::cbGroupID, this, _1) );
+
+ if (parent_floater)
+ {
+ LLRect new_rect = gFloaterView->findNeighboringPosition(parent_floater, fg);
+ fg->setOrigin(new_rect.mLeft, new_rect.mBottom);
+ parent_floater->addDependentFloater(fg);
+ }
+ }
+ }
}
void LLPanelPermissions::cbGroupID(LLUUID group_id)
{
- if(mLabelGroupName)
- {
- mLabelGroupName->setNameID(group_id, TRUE);
- }
- LLSelectMgr::getInstance()->sendGroup(group_id);
+ if(mLabelGroupName)
+ {
+ mLabelGroupName->setNameID(group_id, TRUE);
+ }
+ LLSelectMgr::getInstance()->sendGroup(group_id);
}
bool callback_deed_to_group(const LLSD& notification, const LLSD& response)
{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- if (0 == option)
- {
- LLUUID group_id;
- BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
- if(group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED)))
- {
- LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE);
- }
- }
- return false;
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if (0 == option)
+ {
+ LLUUID group_id;
+ BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
+ if(group_id.notNull() && groups_identical && (gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED)))
+ {
+ LLSelectMgr::getInstance()->sendOwner(LLUUID::null, group_id, FALSE);
+ }
+ }
+ return false;
}
void LLPanelPermissions::onClickDeedToGroup(void* data)
{
- LLNotificationsUtil::add( "DeedObjectToGroup", LLSD(), LLSD(), callback_deed_to_group);
+ LLNotificationsUtil::add( "DeedObjectToGroup", LLSD(), LLSD(), callback_deed_to_group);
}
///----------------------------------------------------------------------------
@@ -1107,129 +1107,129 @@ void LLPanelPermissions::onClickDeedToGroup(void* data)
// static
void LLPanelPermissions::onCommitPerm(LLUICtrl *ctrl, void *data, U8 field, U32 perm)
{
- LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject();
- if(!object) return;
-
- // Checkbox will have toggled itself
- // LLPanelPermissions* self = (LLPanelPermissions*)data;
- LLCheckBoxCtrl *check = (LLCheckBoxCtrl *)ctrl;
- BOOL new_state = check->get();
-
- LLSelectMgr::getInstance()->selectionSetObjectPermissions(field, new_state, perm);
+ LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject();
+ if(!object) return;
+
+ // Checkbox will have toggled itself
+ // LLPanelPermissions* self = (LLPanelPermissions*)data;
+ LLCheckBoxCtrl *check = (LLCheckBoxCtrl *)ctrl;
+ BOOL new_state = check->get();
+
+ LLSelectMgr::getInstance()->selectionSetObjectPermissions(field, new_state, perm);
}
// static
void LLPanelPermissions::onCommitGroupShare(LLUICtrl *ctrl, void *data)
{
- onCommitPerm(ctrl, data, PERM_GROUP, PERM_MODIFY | PERM_MOVE | PERM_COPY);
+ onCommitPerm(ctrl, data, PERM_GROUP, PERM_MODIFY | PERM_MOVE | PERM_COPY);
}
// static
void LLPanelPermissions::onCommitEveryoneMove(LLUICtrl *ctrl, void *data)
{
- onCommitPerm(ctrl, data, PERM_EVERYONE, PERM_MOVE);
+ onCommitPerm(ctrl, data, PERM_EVERYONE, PERM_MOVE);
}
// static
void LLPanelPermissions::onCommitEveryoneCopy(LLUICtrl *ctrl, void *data)
{
- onCommitPerm(ctrl, data, PERM_EVERYONE, PERM_COPY);
+ onCommitPerm(ctrl, data, PERM_EVERYONE, PERM_COPY);
}
// static
void LLPanelPermissions::onCommitNextOwnerModify(LLUICtrl* ctrl, void* data)
{
- //LL_INFOS() << "LLPanelPermissions::onCommitNextOwnerModify" << LL_ENDL;
- onCommitPerm(ctrl, data, PERM_NEXT_OWNER, PERM_MODIFY);
+ //LL_INFOS() << "LLPanelPermissions::onCommitNextOwnerModify" << LL_ENDL;
+ onCommitPerm(ctrl, data, PERM_NEXT_OWNER, PERM_MODIFY);
}
// static
void LLPanelPermissions::onCommitNextOwnerCopy(LLUICtrl* ctrl, void* data)
{
- //LL_INFOS() << "LLPanelPermissions::onCommitNextOwnerCopy" << LL_ENDL;
- onCommitPerm(ctrl, data, PERM_NEXT_OWNER, PERM_COPY);
+ //LL_INFOS() << "LLPanelPermissions::onCommitNextOwnerCopy" << LL_ENDL;
+ onCommitPerm(ctrl, data, PERM_NEXT_OWNER, PERM_COPY);
}
// static
void LLPanelPermissions::onCommitNextOwnerTransfer(LLUICtrl* ctrl, void* data)
{
- //LL_INFOS() << "LLPanelPermissions::onCommitNextOwnerTransfer" << LL_ENDL;
- onCommitPerm(ctrl, data, PERM_NEXT_OWNER, PERM_TRANSFER);
+ //LL_INFOS() << "LLPanelPermissions::onCommitNextOwnerTransfer" << LL_ENDL;
+ onCommitPerm(ctrl, data, PERM_NEXT_OWNER, PERM_TRANSFER);
}
// static
void LLPanelPermissions::onCommitName(LLUICtrl*, void* data)
{
- LLPanelPermissions* self = (LLPanelPermissions*)data;
- LLLineEditor* tb = self->getChild<LLLineEditor>("Object Name");
- if (!tb)
- {
- return;
- }
- LLSelectMgr::getInstance()->selectionSetObjectName(tb->getText());
- LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
- if (selection->isAttachment() && (selection->getNumNodes() == 1) && !tb->getText().empty())
- {
- LLUUID object_id = selection->getFirstObject()->getAttachmentItemID();
- LLViewerInventoryItem* item = findItem(object_id);
- if (item)
- {
- LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
- new_item->rename(tb->getText());
- new_item->updateServer(FALSE);
- gInventory.updateItem(new_item);
- gInventory.notifyObservers();
- }
- }
+ LLPanelPermissions* self = (LLPanelPermissions*)data;
+ LLLineEditor* tb = self->getChild<LLLineEditor>("Object Name");
+ if (!tb)
+ {
+ return;
+ }
+ LLSelectMgr::getInstance()->selectionSetObjectName(tb->getText());
+ LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
+ if (selection->isAttachment() && (selection->getNumNodes() == 1) && !tb->getText().empty())
+ {
+ LLUUID object_id = selection->getFirstObject()->getAttachmentItemID();
+ LLViewerInventoryItem* item = findItem(object_id);
+ if (item)
+ {
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
+ new_item->rename(tb->getText());
+ new_item->updateServer(FALSE);
+ gInventory.updateItem(new_item);
+ gInventory.notifyObservers();
+ }
+ }
}
// static
void LLPanelPermissions::onCommitDesc(LLUICtrl*, void* data)
{
- LLPanelPermissions* self = (LLPanelPermissions*)data;
- LLLineEditor* le = self->getChild<LLLineEditor>("Object Description");
- if (!le)
- {
- return;
- }
- LLSelectMgr::getInstance()->selectionSetObjectDescription(le->getText());
- LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
- if (selection->isAttachment() && (selection->getNumNodes() == 1))
- {
- LLUUID object_id = selection->getFirstObject()->getAttachmentItemID();
- LLViewerInventoryItem* item = findItem(object_id);
- if (item)
- {
- LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
- new_item->setDescription(le->getText());
- new_item->updateServer(FALSE);
- gInventory.updateItem(new_item);
- gInventory.notifyObservers();
- }
- }
+ LLPanelPermissions* self = (LLPanelPermissions*)data;
+ LLLineEditor* le = self->getChild<LLLineEditor>("Object Description");
+ if (!le)
+ {
+ return;
+ }
+ LLSelectMgr::getInstance()->selectionSetObjectDescription(le->getText());
+ LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
+ if (selection->isAttachment() && (selection->getNumNodes() == 1))
+ {
+ LLUUID object_id = selection->getFirstObject()->getAttachmentItemID();
+ LLViewerInventoryItem* item = findItem(object_id);
+ if (item)
+ {
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
+ new_item->setDescription(le->getText());
+ new_item->updateServer(FALSE);
+ gInventory.updateItem(new_item);
+ gInventory.notifyObservers();
+ }
+ }
}
// static
void LLPanelPermissions::onCommitSaleInfo(LLUICtrl*, void* data)
{
- LLPanelPermissions* self = (LLPanelPermissions*)data;
- self->setAllSaleInfo();
+ LLPanelPermissions* self = (LLPanelPermissions*)data;
+ self->setAllSaleInfo();
}
// static
void LLPanelPermissions::onCommitSaleType(LLUICtrl*, void* data)
{
- LLPanelPermissions* self = (LLPanelPermissions*)data;
- self->setAllSaleInfo();
+ LLPanelPermissions* self = (LLPanelPermissions*)data;
+ self->setAllSaleInfo();
}
-void LLPanelPermissions::onCommitSalePrice(LLUICtrl *, void *data)
+void LLPanelPermissions::onCommitSalePrice(LLUICtrl *, void *data)
{
LLPanelPermissions *self = (LLPanelPermissions *) data;
LLCheckBoxCtrl *checkPurchase = self->getChild<LLCheckBoxCtrl>("checkbox for sale");
- if (checkPurchase && checkPurchase->get())
+ if (checkPurchase && checkPurchase->get())
{
self->setAllSaleInfo();
}
@@ -1237,31 +1237,31 @@ void LLPanelPermissions::onCommitSalePrice(LLUICtrl *, void *data)
void LLPanelPermissions::setAllSaleInfo()
{
- LL_INFOS() << "LLPanelPermissions::setAllSaleInfo()" << LL_ENDL;
- LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_NOT;
+ LL_INFOS() << "LLPanelPermissions::setAllSaleInfo()" << LL_ENDL;
+ LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_NOT;
+
+ LLCheckBoxCtrl *checkPurchase = getChild<LLCheckBoxCtrl>("checkbox for sale");
+
+ // Set the sale type if the object(s) are for sale.
+ if(checkPurchase && checkPurchase->get())
+ {
+ sale_type = static_cast<LLSaleInfo::EForSale>(getChild<LLComboBox>("sale type")->getValue().asInteger());
+ }
- LLCheckBoxCtrl *checkPurchase = getChild<LLCheckBoxCtrl>("checkbox for sale");
-
- // Set the sale type if the object(s) are for sale.
- if(checkPurchase && checkPurchase->get())
- {
- sale_type = static_cast<LLSaleInfo::EForSale>(getChild<LLComboBox>("sale type")->getValue().asInteger());
- }
+ S32 price = -1;
- S32 price = -1;
-
- LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
- price = (edit_price->getTentative()) ? DEFAULT_PRICE : edit_price->getValue().asInteger();
+ LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
+ price = (edit_price->getTentative()) ? DEFAULT_PRICE : edit_price->getValue().asInteger();
- // If somehow an invalid price, turn the sale off.
- if (price < 0)
- sale_type = LLSaleInfo::FS_NOT;
+ // If somehow an invalid price, turn the sale off.
+ if (price < 0)
+ sale_type = LLSaleInfo::FS_NOT;
- LLSaleInfo old_sale_info;
- LLSelectMgr::getInstance()->selectGetSaleInfo(old_sale_info);
+ LLSaleInfo old_sale_info;
+ LLSelectMgr::getInstance()->selectGetSaleInfo(old_sale_info);
- LLSaleInfo new_sale_info(sale_type, price);
- LLSelectMgr::getInstance()->selectionSetObjectSaleInfo(new_sale_info);
+ LLSaleInfo new_sale_info(sale_type, price);
+ LLSelectMgr::getInstance()->selectionSetObjectSaleInfo(new_sale_info);
// Note: won't work right if a root and non-root are both single-selected (here and other places).
BOOL is_perm_modify = (LLSelectMgr::getInstance()->getSelection()->getFirstRootNode()
@@ -1296,68 +1296,68 @@ void LLPanelPermissions::setAllSaleInfo()
struct LLSelectionPayable : public LLSelectedObjectFunctor
{
- virtual bool apply(LLViewerObject* obj)
- {
- // can pay if you or your parent has money() event in script
- LLViewerObject* parent = (LLViewerObject*)obj->getParent();
- return (obj->flagTakesMoney()
- || (parent && parent->flagTakesMoney()));
- }
+ virtual bool apply(LLViewerObject* obj)
+ {
+ // can pay if you or your parent has money() event in script
+ LLViewerObject* parent = (LLViewerObject*)obj->getParent();
+ return (obj->flagTakesMoney()
+ || (parent && parent->flagTakesMoney()));
+ }
};
// static
void LLPanelPermissions::onCommitClickAction(LLUICtrl* ctrl, void*)
{
- LLComboBox* box = (LLComboBox*)ctrl;
- if (!box) return;
- std::string value = box->getValue().asString();
- U8 click_action = string_value_to_click_action(value);
-
- if (click_action == CLICK_ACTION_BUY)
- {
- LLSaleInfo sale_info;
- LLSelectMgr::getInstance()->selectGetSaleInfo(sale_info);
- if (!sale_info.isForSale())
- {
- LLNotificationsUtil::add("CantSetBuyObject");
-
- // Set click action back to its old value
- U8 click_action = 0;
- LLSelectMgr::getInstance()->selectionGetClickAction(&click_action);
- std::string item_value = click_action_to_string_value(click_action);
- box->setValue(LLSD(item_value));
- return;
- }
- }
- else if (click_action == CLICK_ACTION_PAY)
- {
- // Verify object has script with money() handler
- LLSelectionPayable payable;
- bool can_pay = LLSelectMgr::getInstance()->getSelection()->applyToObjects(&payable);
- if (!can_pay)
- {
- // Warn, but do it anyway.
- LLNotificationsUtil::add("ClickActionNotPayable");
- }
- }
- LLSelectMgr::getInstance()->selectionSetClickAction(click_action);
+ LLComboBox* box = (LLComboBox*)ctrl;
+ if (!box) return;
+ std::string value = box->getValue().asString();
+ U8 click_action = string_value_to_click_action(value);
+
+ if (click_action == CLICK_ACTION_BUY)
+ {
+ LLSaleInfo sale_info;
+ LLSelectMgr::getInstance()->selectGetSaleInfo(sale_info);
+ if (!sale_info.isForSale())
+ {
+ LLNotificationsUtil::add("CantSetBuyObject");
+
+ // Set click action back to its old value
+ U8 click_action = 0;
+ LLSelectMgr::getInstance()->selectionGetClickAction(&click_action);
+ std::string item_value = click_action_to_string_value(click_action);
+ box->setValue(LLSD(item_value));
+ return;
+ }
+ }
+ else if (click_action == CLICK_ACTION_PAY)
+ {
+ // Verify object has script with money() handler
+ LLSelectionPayable payable;
+ bool can_pay = LLSelectMgr::getInstance()->getSelection()->applyToObjects(&payable);
+ if (!can_pay)
+ {
+ // Warn, but do it anyway.
+ LLNotificationsUtil::add("ClickActionNotPayable");
+ }
+ }
+ LLSelectMgr::getInstance()->selectionSetClickAction(click_action);
}
// static
void LLPanelPermissions::onCommitIncludeInSearch(LLUICtrl* ctrl, void*)
{
- LLCheckBoxCtrl* box = (LLCheckBoxCtrl*)ctrl;
- llassert(box);
+ LLCheckBoxCtrl* box = (LLCheckBoxCtrl*)ctrl;
+ llassert(box);
- LLSelectMgr::getInstance()->selectionSetIncludeInSearch(box->get());
+ LLSelectMgr::getInstance()->selectionSetIncludeInSearch(box->get());
}
LLViewerInventoryItem* LLPanelPermissions::findItem(LLUUID &object_id)
{
- if (!object_id.isNull())
- {
- return gInventory.getItem(object_id);
- }
- return NULL;
+ if (!object_id.isNull())
+ {
+ return gInventory.getItem(object_id);
+ }
+ return NULL;
}