diff options
author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-05-15 16:35:49 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-15 16:35:49 +0300 |
commit | e49dcb8d0c9f539997effb640e350d9d0689aae6 (patch) | |
tree | 1bf99eaccce6de17c62f13c6595f7f497548dc5c /indra/newview/llfloaterinspect.cpp | |
parent | 531cd34f670170ade57f8813fe48012b61a1d3c2 (diff) | |
parent | 5f8a7374b9f18e0112d6749a9c845bd077a81acb (diff) |
Merge pull request #1476 from secondlife/marchcat/x-b-merge
Maint X -> Maint B merge
Diffstat (limited to 'indra/newview/llfloaterinspect.cpp')
-rw-r--r-- | indra/newview/llfloaterinspect.cpp | 490 |
1 files changed, 245 insertions, 245 deletions
diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp index 10088d20c2..7190bccb81 100644 --- a/indra/newview/llfloaterinspect.cpp +++ b/indra/newview/llfloaterinspect.cpp @@ -1,25 +1,25 @@ -/** +/** * @file llfloaterinspect.cpp * @brief Floater for object inspection tool * * $LicenseInfo:firstyear=2006&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$ */ @@ -47,306 +47,306 @@ LLFloaterInspect::LLFloaterInspect(const LLSD& key) : LLFloater(key), - mDirty(FALSE), - mOwnerNameCacheConnection(), - mCreatorNameCacheConnection() + mDirty(FALSE), + mOwnerNameCacheConnection(), + mCreatorNameCacheConnection() { - mCommitCallbackRegistrar.add("Inspect.OwnerProfile", boost::bind(&LLFloaterInspect::onClickOwnerProfile, this)); - mCommitCallbackRegistrar.add("Inspect.CreatorProfile", boost::bind(&LLFloaterInspect::onClickCreatorProfile, this)); - mCommitCallbackRegistrar.add("Inspect.SelectObject", boost::bind(&LLFloaterInspect::onSelectObject, this)); + mCommitCallbackRegistrar.add("Inspect.OwnerProfile", boost::bind(&LLFloaterInspect::onClickOwnerProfile, this)); + mCommitCallbackRegistrar.add("Inspect.CreatorProfile", boost::bind(&LLFloaterInspect::onClickCreatorProfile, this)); + mCommitCallbackRegistrar.add("Inspect.SelectObject", boost::bind(&LLFloaterInspect::onSelectObject, this)); } BOOL LLFloaterInspect::postBuild() { - mObjectList = getChild<LLScrollListCtrl>("object_list"); -// childSetAction("button owner",onClickOwnerProfile, this); -// childSetAction("button creator",onClickCreatorProfile, this); -// childSetCommitCallback("object_list", onSelectObject, NULL); - - refresh(); - - return TRUE; + mObjectList = getChild<LLScrollListCtrl>("object_list"); +// childSetAction("button owner",onClickOwnerProfile, this); +// childSetAction("button creator",onClickCreatorProfile, this); +// childSetCommitCallback("object_list", onSelectObject, NULL); + + refresh(); + + return TRUE; } LLFloaterInspect::~LLFloaterInspect(void) { - if (mOwnerNameCacheConnection.connected()) - { - mOwnerNameCacheConnection.disconnect(); - } - if (mCreatorNameCacheConnection.connected()) - { - mCreatorNameCacheConnection.disconnect(); - } - if(!LLFloaterReg::instanceVisible("build")) - { - if(LLToolMgr::getInstance()->getBaseTool() == LLToolCompInspect::getInstance()) - { - LLToolMgr::getInstance()->clearTransientTool(); - } - // Switch back to basic toolset - LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset); - } - else - { - LLFloaterReg::showInstance("build", LLSD(), TRUE); - } + if (mOwnerNameCacheConnection.connected()) + { + mOwnerNameCacheConnection.disconnect(); + } + if (mCreatorNameCacheConnection.connected()) + { + mCreatorNameCacheConnection.disconnect(); + } + if(!LLFloaterReg::instanceVisible("build")) + { + if(LLToolMgr::getInstance()->getBaseTool() == LLToolCompInspect::getInstance()) + { + LLToolMgr::getInstance()->clearTransientTool(); + } + // Switch back to basic toolset + LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset); + } + else + { + LLFloaterReg::showInstance("build", LLSD(), TRUE); + } } void LLFloaterInspect::onOpen(const LLSD& key) { - BOOL forcesel = LLSelectMgr::getInstance()->setForceSelection(TRUE); - LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance()); - LLSelectMgr::getInstance()->setForceSelection(forcesel); // restore previouis value - mObjectSelection = LLSelectMgr::getInstance()->getSelection(); - refresh(); + BOOL forcesel = LLSelectMgr::getInstance()->setForceSelection(TRUE); + LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance()); + LLSelectMgr::getInstance()->setForceSelection(forcesel); // restore previouis value + mObjectSelection = LLSelectMgr::getInstance()->getSelection(); + refresh(); } void LLFloaterInspect::onClickCreatorProfile() { - if(mObjectList->getAllSelected().size() == 0) - { - return; - } - LLScrollListItem* first_selected =mObjectList->getFirstSelected(); + if(mObjectList->getAllSelected().size() == 0) + { + return; + } + LLScrollListItem* first_selected =mObjectList->getFirstSelected(); - if (first_selected) - { - struct f : public LLSelectedNodeFunctor - { - LLUUID obj_id; - f(const LLUUID& id) : obj_id(id) {} - virtual bool apply(LLSelectNode* node) - { - return (obj_id == node->getObject()->getID()); - } - } func(first_selected->getUUID()); - LLSelectNode* node = mObjectSelection->getFirstNode(&func); - if(node) - { - LLAvatarActions::showProfile(node->mPermissions->getCreator()); - } - } + if (first_selected) + { + struct f : public LLSelectedNodeFunctor + { + LLUUID obj_id; + f(const LLUUID& id) : obj_id(id) {} + virtual bool apply(LLSelectNode* node) + { + return (obj_id == node->getObject()->getID()); + } + } func(first_selected->getUUID()); + LLSelectNode* node = mObjectSelection->getFirstNode(&func); + if(node) + { + LLAvatarActions::showProfile(node->mPermissions->getCreator()); + } + } } void LLFloaterInspect::onClickOwnerProfile() { - if(mObjectList->getAllSelected().size() == 0) return; - LLScrollListItem* first_selected =mObjectList->getFirstSelected(); + if(mObjectList->getAllSelected().size() == 0) return; + LLScrollListItem* first_selected =mObjectList->getFirstSelected(); - if (first_selected) - { - LLUUID selected_id = first_selected->getUUID(); - struct f : public LLSelectedNodeFunctor - { - LLUUID obj_id; - f(const LLUUID& id) : obj_id(id) {} - virtual bool apply(LLSelectNode* node) - { - return (obj_id == node->getObject()->getID()); - } - } func(selected_id); - LLSelectNode* node = mObjectSelection->getFirstNode(&func); - if(node) - { - if(node->mPermissions->isGroupOwned()) - { - const LLUUID& idGroup = node->mPermissions->getGroup(); - LLGroupActions::show(idGroup); - } - else - { - const LLUUID& owner_id = node->mPermissions->getOwner(); - LLAvatarActions::showProfile(owner_id); - } + if (first_selected) + { + LLUUID selected_id = first_selected->getUUID(); + struct f : public LLSelectedNodeFunctor + { + LLUUID obj_id; + f(const LLUUID& id) : obj_id(id) {} + virtual bool apply(LLSelectNode* node) + { + return (obj_id == node->getObject()->getID()); + } + } func(selected_id); + LLSelectNode* node = mObjectSelection->getFirstNode(&func); + if(node) + { + if(node->mPermissions->isGroupOwned()) + { + const LLUUID& idGroup = node->mPermissions->getGroup(); + LLGroupActions::show(idGroup); + } + else + { + const LLUUID& owner_id = node->mPermissions->getOwner(); + LLAvatarActions::showProfile(owner_id); + } - } - } + } + } } void LLFloaterInspect::onSelectObject() { - if(LLFloaterInspect::getSelectedUUID() != LLUUID::null) - { - getChildView("button owner")->setEnabled(true); - getChildView("button creator")->setEnabled(true); - } + if(LLFloaterInspect::getSelectedUUID() != LLUUID::null) + { + getChildView("button owner")->setEnabled(true); + getChildView("button creator")->setEnabled(true); + } } LLUUID LLFloaterInspect::getSelectedUUID() { - if(mObjectList->getAllSelected().size() > 0) - { - LLScrollListItem* first_selected =mObjectList->getFirstSelected(); - if (first_selected) - { - return first_selected->getUUID(); - } - - } - return LLUUID::null; + if(mObjectList->getAllSelected().size() > 0) + { + LLScrollListItem* first_selected =mObjectList->getFirstSelected(); + if (first_selected) + { + return first_selected->getUUID(); + } + + } + return LLUUID::null; } void LLFloaterInspect::refresh() { - LLUUID creator_id; - std::string creator_name; - S32 pos = mObjectList->getScrollPos(); - getChildView("button owner")->setEnabled(false); - getChildView("button creator")->setEnabled(false); - LLUUID selected_uuid; - S32 selected_index = mObjectList->getFirstSelectedIndex(); - if(selected_index > -1) - { - LLScrollListItem* first_selected = - mObjectList->getFirstSelected(); - if (first_selected) - { - selected_uuid = first_selected->getUUID(); - } - } - mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE); - //List all transient objects, then all linked objects + LLUUID creator_id; + std::string creator_name; + S32 pos = mObjectList->getScrollPos(); + getChildView("button owner")->setEnabled(false); + getChildView("button creator")->setEnabled(false); + LLUUID selected_uuid; + S32 selected_index = mObjectList->getFirstSelectedIndex(); + if(selected_index > -1) + { + LLScrollListItem* first_selected = + mObjectList->getFirstSelected(); + if (first_selected) + { + selected_uuid = first_selected->getUUID(); + } + } + mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE); + //List all transient objects, then all linked objects + + for (LLObjectSelection::valid_iterator iter = mObjectSelection->valid_begin(); + iter != mObjectSelection->valid_end(); iter++) + { + LLSelectNode* obj = *iter; + LLSD row; + std::string owner_name, creator_name; - for (LLObjectSelection::valid_iterator iter = mObjectSelection->valid_begin(); - iter != mObjectSelection->valid_end(); iter++) - { - LLSelectNode* obj = *iter; - LLSD row; - std::string owner_name, creator_name; + if (obj->mCreationDate == 0) + { // Don't have valid information from the server, so skip this one + continue; + } - if (obj->mCreationDate == 0) - { // Don't have valid information from the server, so skip this one - continue; - } + time_t timestamp = (time_t) (obj->mCreationDate/1000000); + std::string timeStr = getString("timeStamp"); + LLSD substitution; + substitution["datetime"] = (S32) timestamp; + LLStringUtil::format (timeStr, substitution); - time_t timestamp = (time_t) (obj->mCreationDate/1000000); - std::string timeStr = getString("timeStamp"); - LLSD substitution; - substitution["datetime"] = (S32) timestamp; - LLStringUtil::format (timeStr, substitution); + const LLUUID& idOwner = obj->mPermissions->getOwner(); + const LLUUID& idCreator = obj->mPermissions->getCreator(); + LLAvatarName av_name; - const LLUUID& idOwner = obj->mPermissions->getOwner(); - const LLUUID& idCreator = obj->mPermissions->getCreator(); - LLAvatarName av_name; + if(obj->mPermissions->isGroupOwned()) + { + std::string group_name; + const LLUUID& idGroup = obj->mPermissions->getGroup(); + if(gCacheName->getGroupName(idGroup, group_name)) + { + owner_name = "[" + group_name + "] (group)"; + } + else + { + owner_name = LLTrans::getString("RetrievingData"); + if (mOwnerNameCacheConnection.connected()) + { + mOwnerNameCacheConnection.disconnect(); + } + mOwnerNameCacheConnection = gCacheName->getGroup(idGroup, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this)); + } + } + else + { + // Only work with the names if we actually get a result + // from the name cache. If not, defer setting the + // actual name and set a placeholder. + if (LLAvatarNameCache::get(idOwner, &av_name)) + { + owner_name = av_name.getCompleteName(); + } + else + { + owner_name = LLTrans::getString("RetrievingData"); + if (mOwnerNameCacheConnection.connected()) + { + mOwnerNameCacheConnection.disconnect(); + } + mOwnerNameCacheConnection = LLAvatarNameCache::get(idOwner, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this)); + } + } - if(obj->mPermissions->isGroupOwned()) - { - std::string group_name; - const LLUUID& idGroup = obj->mPermissions->getGroup(); - if(gCacheName->getGroupName(idGroup, group_name)) - { - owner_name = "[" + group_name + "] (group)"; - } - else - { - owner_name = LLTrans::getString("RetrievingData"); - if (mOwnerNameCacheConnection.connected()) - { - mOwnerNameCacheConnection.disconnect(); - } - mOwnerNameCacheConnection = gCacheName->getGroup(idGroup, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this)); - } - } - else - { - // Only work with the names if we actually get a result - // from the name cache. If not, defer setting the - // actual name and set a placeholder. - if (LLAvatarNameCache::get(idOwner, &av_name)) - { - owner_name = av_name.getCompleteName(); - } - else - { - owner_name = LLTrans::getString("RetrievingData"); - if (mOwnerNameCacheConnection.connected()) - { - mOwnerNameCacheConnection.disconnect(); - } - mOwnerNameCacheConnection = LLAvatarNameCache::get(idOwner, boost::bind(&LLFloaterInspect::onGetOwnerNameCallback, this)); - } - } + if (LLAvatarNameCache::get(idCreator, &av_name)) + { + creator_name = av_name.getCompleteName(); + } + else + { + creator_name = LLTrans::getString("RetrievingData"); + if (mCreatorNameCacheConnection.connected()) + { + mCreatorNameCacheConnection.disconnect(); + } + mCreatorNameCacheConnection = LLAvatarNameCache::get(idCreator, boost::bind(&LLFloaterInspect::onGetCreatorNameCallback, this)); + } - if (LLAvatarNameCache::get(idCreator, &av_name)) - { - creator_name = av_name.getCompleteName(); - } - else - { - creator_name = LLTrans::getString("RetrievingData"); - if (mCreatorNameCacheConnection.connected()) - { - mCreatorNameCacheConnection.disconnect(); - } - mCreatorNameCacheConnection = LLAvatarNameCache::get(idCreator, boost::bind(&LLFloaterInspect::onGetCreatorNameCallback, this)); - } - - row["id"] = obj->getObject()->getID(); - row["columns"][0]["column"] = "object_name"; - row["columns"][0]["type"] = "text"; - // make sure we're either at the top of the link chain - // or top of the editable chain, for attachments - if(!(obj->getObject()->isRoot() || obj->getObject()->isRootEdit())) - { - row["columns"][0]["value"] = std::string(" ") + obj->mName; - } - else - { - row["columns"][0]["value"] = obj->mName; - } - row["columns"][1]["column"] = "owner_name"; - row["columns"][1]["type"] = "text"; - row["columns"][1]["value"] = owner_name; - row["columns"][2]["column"] = "creator_name"; - row["columns"][2]["type"] = "text"; - row["columns"][2]["value"] = creator_name; - row["columns"][3]["column"] = "creation_date"; - row["columns"][3]["type"] = "text"; - row["columns"][3]["value"] = timeStr; - mObjectList->addElement(row, ADD_TOP); - } - if(selected_index > -1 && mObjectList->getItemIndex(selected_uuid) == selected_index) - { - mObjectList->selectNthItem(selected_index); - } - else - { - mObjectList->selectNthItem(0); - } - onSelectObject(); - mObjectList->setScrollPos(pos); + row["id"] = obj->getObject()->getID(); + row["columns"][0]["column"] = "object_name"; + row["columns"][0]["type"] = "text"; + // make sure we're either at the top of the link chain + // or top of the editable chain, for attachments + if(!(obj->getObject()->isRoot() || obj->getObject()->isRootEdit())) + { + row["columns"][0]["value"] = std::string(" ") + obj->mName; + } + else + { + row["columns"][0]["value"] = obj->mName; + } + row["columns"][1]["column"] = "owner_name"; + row["columns"][1]["type"] = "text"; + row["columns"][1]["value"] = owner_name; + row["columns"][2]["column"] = "creator_name"; + row["columns"][2]["type"] = "text"; + row["columns"][2]["value"] = creator_name; + row["columns"][3]["column"] = "creation_date"; + row["columns"][3]["type"] = "text"; + row["columns"][3]["value"] = timeStr; + mObjectList->addElement(row, ADD_TOP); + } + if(selected_index > -1 && mObjectList->getItemIndex(selected_uuid) == selected_index) + { + mObjectList->selectNthItem(selected_index); + } + else + { + mObjectList->selectNthItem(0); + } + onSelectObject(); + mObjectList->setScrollPos(pos); } void LLFloaterInspect::onFocusReceived() { - LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance()); - LLFloater::onFocusReceived(); + LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance()); + LLFloater::onFocusReceived(); } void LLFloaterInspect::dirty() { - setDirty(); + setDirty(); } void LLFloaterInspect::onGetOwnerNameCallback() { - mOwnerNameCacheConnection.disconnect(); - setDirty(); + mOwnerNameCacheConnection.disconnect(); + setDirty(); } void LLFloaterInspect::onGetCreatorNameCallback() { - mCreatorNameCacheConnection.disconnect(); - setDirty(); + mCreatorNameCacheConnection.disconnect(); + setDirty(); } void LLFloaterInspect::draw() { - if (mDirty) - { - refresh(); - mDirty = FALSE; - } + if (mDirty) + { + refresh(); + mDirty = FALSE; + } - LLFloater::draw(); + LLFloater::draw(); } |