diff options
| author | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
|---|---|---|
| committer | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
| commit | a1f49564d670a2c41bfa25c833bba2564b9b7f48 (patch) | |
| tree | 1d205e51bc37621916a17d459ad83782fe41f975 /indra/newview/llfloaterinspect.cpp | |
| parent | 6af5db09faf5ea33a2d4c47b64e76f42edae178a (diff) | |
| parent | 6377610f6587989c126b00f490dfc8d527a1c2ce (diff) | |
Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into brad/merge-maint-a-to-dev
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 547f71c986..4f993ca0e1 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();  }  | 
