diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-05-14 21:02:28 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-05-14 21:02:28 -0400 |
commit | 094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (patch) | |
tree | e750942e5f22ed677b543bd49509c2a7cdc5ce56 /indra/newview/llpanelcontents.cpp | |
parent | d4043d3b011c32eb503c43c551872f9c24d7344f (diff) | |
parent | 38c2a5bde985a6a8a96d912d432f8bdf7e5b60be (diff) |
Merge DRTVWR-591-maint-X to main on promotion of secondlife/viewer #705: Maintenance X
Diffstat (limited to 'indra/newview/llpanelcontents.cpp')
-rw-r--r-- | indra/newview/llpanelcontents.cpp | 180 |
1 files changed, 90 insertions, 90 deletions
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp index 3bae0cebfb..489289e814 100644 --- a/indra/newview/llpanelcontents.cpp +++ b/indra/newview/llpanelcontents.cpp @@ -5,21 +5,21 @@ * $LicenseInfo:firstyear=2001&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$ */ @@ -78,75 +78,75 @@ const char* LLPanelContents::PERMS_ANYONE_CONTROL_KEY = "perms_anyone_control"; BOOL LLPanelContents::postBuild() { - setMouseOpaque(FALSE); + setMouseOpaque(FALSE); - childSetAction("button new script",&LLPanelContents::onClickNewScript, this); - childSetAction("button permissions",&LLPanelContents::onClickPermissions, this); + childSetAction("button new script",&LLPanelContents::onClickNewScript, this); + childSetAction("button permissions",&LLPanelContents::onClickPermissions, this); - mPanelInventoryObject = getChild<LLPanelObjectInventory>("contents_inventory"); + mPanelInventoryObject = getChild<LLPanelObjectInventory>("contents_inventory"); - return TRUE; + return TRUE; } LLPanelContents::LLPanelContents() - : LLPanel(), - mPanelInventoryObject(NULL) + : LLPanel(), + mPanelInventoryObject(NULL) { } LLPanelContents::~LLPanelContents() { - // Children all cleaned up by default view destructor. + // Children all cleaned up by default view destructor. } void LLPanelContents::getState(LLViewerObject *objectp ) { - if( !objectp ) - { - getChildView("button new script")->setEnabled(FALSE); - return; - } - - LLUUID group_id; // used for SL-23488 - LLSelectMgr::getInstance()->selectGetGroup(group_id); // sets group_id as a side effect SL-23488 - - // BUG? Check for all objects being editable? - bool editable = gAgent.isGodlike() - || (objectp->permModify() && !objectp->isPermanentEnforced() - && ( objectp->permYouOwner() || ( !group_id.isNull() && gAgent.isInGroup(group_id) ))); // solves SL-23488 - BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME ); - - // Edit script button - ok if object is editable and there's an unambiguous destination for the object. - getChildView("button new script")->setEnabled( - editable && - all_volume && - ((LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() == 1) - || (LLSelectMgr::getInstance()->getSelection()->getObjectCount() == 1))); - - getChildView("button permissions")->setEnabled(!objectp->isPermanentEnforced()); - mPanelInventoryObject->setEnabled(!objectp->isPermanentEnforced()); + if( !objectp ) + { + getChildView("button new script")->setEnabled(FALSE); + return; + } + + LLUUID group_id; // used for SL-23488 + LLSelectMgr::getInstance()->selectGetGroup(group_id); // sets group_id as a side effect SL-23488 + + // BUG? Check for all objects being editable? + bool editable = gAgent.isGodlike() + || (objectp->permModify() && !objectp->isPermanentEnforced() + && ( objectp->permYouOwner() || ( !group_id.isNull() && gAgent.isInGroup(group_id) ))); // solves SL-23488 + BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME ); + + // Edit script button - ok if object is editable and there's an unambiguous destination for the object. + getChildView("button new script")->setEnabled( + editable && + all_volume && + ((LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() == 1) + || (LLSelectMgr::getInstance()->getSelection()->getObjectCount() == 1))); + + getChildView("button permissions")->setEnabled(!objectp->isPermanentEnforced()); + mPanelInventoryObject->setEnabled(!objectp->isPermanentEnforced()); } void LLPanelContents::refresh() { - const BOOL children_ok = TRUE; - LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(children_ok); - - getState(object); - if (mPanelInventoryObject) - { - mPanelInventoryObject->refresh(); - } + const BOOL children_ok = TRUE; + LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(children_ok); + + getState(object); + if (mPanelInventoryObject) + { + mPanelInventoryObject->refresh(); + } } void LLPanelContents::clearContents() { - if (mPanelInventoryObject) - { - mPanelInventoryObject->clearInventoryTask(); - } + if (mPanelInventoryObject) + { + mPanelInventoryObject->clearInventoryTask(); + } } @@ -157,52 +157,52 @@ void LLPanelContents::clearContents() // static void LLPanelContents::onClickNewScript(void *userdata) { - const BOOL children_ok = TRUE; - LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(children_ok); - if(object) - { - LLPermissions perm; - perm.init(gAgent.getID(), gAgent.getID(), LLUUID::null, LLUUID::null); - - // Parameters are base, owner, everyone, group, next - perm.initMasks( - PERM_ALL, - PERM_ALL, - LLFloaterPerms::getEveryonePerms("Scripts"), - LLFloaterPerms::getGroupPerms("Scripts"), - PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts")); - std::string desc; - LLViewerAssetType::generateDescriptionFor(LLAssetType::AT_LSL_TEXT, desc); - LLPointer<LLViewerInventoryItem> new_item = - new LLViewerInventoryItem( - LLUUID::null, - LLUUID::null, - perm, - LLUUID::null, - LLAssetType::AT_LSL_TEXT, - LLInventoryType::IT_LSL, - "New Script", - desc, - LLSaleInfo::DEFAULT, - LLInventoryItemFlags::II_FLAGS_NONE, - time_corrected()); - object->saveScript(new_item, TRUE, true); - - std::string name = new_item->getName(); - - // *NOTE: In order to resolve SL-22177, we needed to create - // the script first, and then you have to click it in - // inventory to edit it. - // *TODO: The script creation should round-trip back to the - // viewer so the viewer can auto-open the script and start - // editing ASAP. - } + const BOOL children_ok = TRUE; + LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getFirstRootObject(children_ok); + if(object) + { + LLPermissions perm; + perm.init(gAgent.getID(), gAgent.getID(), LLUUID::null, LLUUID::null); + + // Parameters are base, owner, everyone, group, next + perm.initMasks( + PERM_ALL, + PERM_ALL, + LLFloaterPerms::getEveryonePerms("Scripts"), + LLFloaterPerms::getGroupPerms("Scripts"), + PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts")); + std::string desc; + LLViewerAssetType::generateDescriptionFor(LLAssetType::AT_LSL_TEXT, desc); + LLPointer<LLViewerInventoryItem> new_item = + new LLViewerInventoryItem( + LLUUID::null, + LLUUID::null, + perm, + LLUUID::null, + LLAssetType::AT_LSL_TEXT, + LLInventoryType::IT_LSL, + "New Script", + desc, + LLSaleInfo::DEFAULT, + LLInventoryItemFlags::II_FLAGS_NONE, + time_corrected()); + object->saveScript(new_item, TRUE, true); + + std::string name = new_item->getName(); + + // *NOTE: In order to resolve SL-22177, we needed to create + // the script first, and then you have to click it in + // inventory to edit it. + // *TODO: The script creation should round-trip back to the + // viewer so the viewer can auto-open the script and start + // editing ASAP. + } } // static void LLPanelContents::onClickPermissions(void *userdata) { - LLPanelContents* self = (LLPanelContents*)userdata; - gFloaterView->getParentFloater(self)->addDependentFloater(LLFloaterReg::showInstance("bulk_perms")); + LLPanelContents* self = (LLPanelContents*)userdata; + gFloaterView->getParentFloater(self)->addDependentFloater(LLFloaterReg::showInstance("bulk_perms")); } |