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/llinspectgroup.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/llinspectgroup.cpp')
| -rw-r--r-- | indra/newview/llinspectgroup.cpp | 332 | 
1 files changed, 166 insertions, 166 deletions
diff --git a/indra/newview/llinspectgroup.cpp b/indra/newview/llinspectgroup.cpp index 0a30ab9217..db48061c56 100644 --- a/indra/newview/llinspectgroup.cpp +++ b/indra/newview/llinspectgroup.cpp @@ -1,24 +1,24 @@ -/**  +/**   * @file llinspectgroup.cpp   *   * $LicenseInfo:firstyear=2009&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$   */ @@ -34,10 +34,10 @@  #include "llstartup.h"  // Linden libraries -#include "llcontrol.h"	// LLCachedControl +#include "llcontrol.h"  // LLCachedControl  #include "llfloater.h"  #include "llfloaterreg.h" -#include "llresmgr.h"	// getMonetaryString() +#include "llresmgr.h"   // getMonetaryString()  #include "lltrans.h"  #include "lluictrl.h"  #include "llgroupiconctrl.h" @@ -50,61 +50,61 @@  /// on group names in the 2D UI  class LLInspectGroup : public LLInspect, public LLGroupMgrObserver  { -	friend class LLFloaterReg; -	 +    friend class LLFloaterReg; +  public: -	// key["group_id"] - Group ID for which to show information -	// Inspector will be positioned relative to current mouse position -	LLInspectGroup(const LLSD& key); -	virtual ~LLInspectGroup(); -	 -	// Because floater is single instance, need to re-parse data on each spawn -	// (for example, inspector about same group but in different position) -	/*virtual*/ void onOpen(const LLSD& group_id); - -	void setGroupID(const LLUUID& group_id); - -	// When closing they should close their gear menu  -	/*virtual*/ void onClose(bool app_quitting); -	 -	// Update view based on information from group manager -	void processGroupData(); - -	virtual void changed(LLGroupChange gc); - -	// Make network requests for all the data to display in this view. -	// Used on construction and if avatar id changes. -	void requestUpdate(); -		 -	// Callback for gCacheName to look up group name -	// Faster than waiting for group properties to return -	void nameUpdatedCallback(const LLUUID& id, -							 const std::string& name, -							 bool is_group); - -	// Button/menu callbacks -	void onClickViewProfile(); -	void onClickJoin(); -	void onClickLeave(); -	 +    // key["group_id"] - Group ID for which to show information +    // Inspector will be positioned relative to current mouse position +    LLInspectGroup(const LLSD& key); +    virtual ~LLInspectGroup(); + +    // Because floater is single instance, need to re-parse data on each spawn +    // (for example, inspector about same group but in different position) +    /*virtual*/ void onOpen(const LLSD& group_id); + +    void setGroupID(const LLUUID& group_id); + +    // When closing they should close their gear menu +    /*virtual*/ void onClose(bool app_quitting); + +    // Update view based on information from group manager +    void processGroupData(); + +    virtual void changed(LLGroupChange gc); + +    // Make network requests for all the data to display in this view. +    // Used on construction and if avatar id changes. +    void requestUpdate(); + +    // Callback for gCacheName to look up group name +    // Faster than waiting for group properties to return +    void nameUpdatedCallback(const LLUUID& id, +                             const std::string& name, +                             bool is_group); + +    // Button/menu callbacks +    void onClickViewProfile(); +    void onClickJoin(); +    void onClickLeave(); +  private: -	LLUUID				mGroupID; +    LLUUID              mGroupID;  };  LLInspectGroup::LLInspectGroup(const LLSD& sd) -:	LLInspect( LLSD() ),	// single_instance, doesn't really need key -	mGroupID()			// set in onOpen() +:   LLInspect( LLSD() ),    // single_instance, doesn't really need key +    mGroupID()          // set in onOpen()  { -	mCommitCallbackRegistrar.add("InspectGroup.ViewProfile", -		boost::bind(&LLInspectGroup::onClickViewProfile, this)); -	mCommitCallbackRegistrar.add("InspectGroup.Join", -		boost::bind(&LLInspectGroup::onClickJoin, this));	 -	mCommitCallbackRegistrar.add("InspectGroup.Leave", -		boost::bind(&LLInspectGroup::onClickLeave, this));	 - -	// can't make the properties request until the widgets are constructed -	// as it might return immediately, so do it in postBuild. +    mCommitCallbackRegistrar.add("InspectGroup.ViewProfile", +        boost::bind(&LLInspectGroup::onClickViewProfile, this)); +    mCommitCallbackRegistrar.add("InspectGroup.Join", +        boost::bind(&LLInspectGroup::onClickJoin, this)); +    mCommitCallbackRegistrar.add("InspectGroup.Leave", +        boost::bind(&LLInspectGroup::onClickLeave, this)); + +    // can't make the properties request until the widgets are constructed +    // as it might return immediately, so do it in postBuild.  }  LLInspectGroup::~LLInspectGroup() @@ -118,15 +118,15 @@ LLInspectGroup::~LLInspectGroup()  //virtual  void LLInspectGroup::onOpen(const LLSD& data)  { -	// start fade animation -	LLInspect::onOpen(data); +    // start fade animation +    LLInspect::onOpen(data); -	setGroupID(data["group_id"]); +    setGroupID(data["group_id"]); -	LLInspect::repositionInspector(data); +    LLInspect::repositionInspector(data); -	// can't call from constructor as widgets are not built yet -	requestUpdate(); +    // can't call from constructor as widgets are not built yet +    requestUpdate();  }  // virtual @@ -134,47 +134,47 @@ void LLInspectGroup::onClose(bool app_quitting)  {      LLGroupMgr::getInstance()->removeObserver(this);      // *TODO: If we add a gear menu, close it here -}	 +}  void LLInspectGroup::requestUpdate()  { -	// Don't make network requests when spawning from the debug menu at the -	// login screen (which is useful to work on the layout). -	if (mGroupID.isNull()) -	{ -		if (LLStartUp::getStartupState() >= STATE_STARTED) -		{ -			// once we're running we don't want to show the test floater -			// for bogus LLUUID::null links -			closeFloater(); -		} -		return; -	} - -	// Clear out old data so it doesn't flash between old and new -	getChild<LLUICtrl>("group_name")->setValue(""); -	getChild<LLUICtrl>("group_subtitle")->setValue(""); -	getChild<LLUICtrl>("group_details")->setValue(""); -	getChild<LLUICtrl>("group_cost")->setValue(""); -	// Must have a visible button so the inspector can take focus -	getChild<LLUICtrl>("view_profile_btn")->setVisible(true); -	getChild<LLUICtrl>("leave_btn")->setVisible(false); -	getChild<LLUICtrl>("join_btn")->setVisible(false); -	 -	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); -	if (!gdatap || !gdatap->isGroupPropertiesDataComplete() ) -	{ -	    LLGroupMgr::getInstance()->sendGroupPropertiesRequest(mGroupID); -	} -	else -	{ -	    processGroupData(); -	} - -	// Name lookup will be faster out of cache, use that -	gCacheName->getGroup(mGroupID, -		boost::bind(&LLInspectGroup::nameUpdatedCallback, -			this, _1, _2, _3)); +    // Don't make network requests when spawning from the debug menu at the +    // login screen (which is useful to work on the layout). +    if (mGroupID.isNull()) +    { +        if (LLStartUp::getStartupState() >= STATE_STARTED) +        { +            // once we're running we don't want to show the test floater +            // for bogus LLUUID::null links +            closeFloater(); +        } +        return; +    } + +    // Clear out old data so it doesn't flash between old and new +    getChild<LLUICtrl>("group_name")->setValue(""); +    getChild<LLUICtrl>("group_subtitle")->setValue(""); +    getChild<LLUICtrl>("group_details")->setValue(""); +    getChild<LLUICtrl>("group_cost")->setValue(""); +    // Must have a visible button so the inspector can take focus +    getChild<LLUICtrl>("view_profile_btn")->setVisible(true); +    getChild<LLUICtrl>("leave_btn")->setVisible(false); +    getChild<LLUICtrl>("join_btn")->setVisible(false); + +    LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); +    if (!gdatap || !gdatap->isGroupPropertiesDataComplete() ) +    { +        LLGroupMgr::getInstance()->sendGroupPropertiesRequest(mGroupID); +    } +    else +    { +        processGroupData(); +    } + +    // Name lookup will be faster out of cache, use that +    gCacheName->getGroup(mGroupID, +        boost::bind(&LLInspectGroup::nameUpdatedCallback, +            this, _1, _2, _3));  }  void LLInspectGroup::setGroupID(const LLUUID& group_id) @@ -188,16 +188,16 @@ void LLInspectGroup::setGroupID(const LLUUID& group_id)  }  void LLInspectGroup::nameUpdatedCallback( -	const LLUUID& id, -	const std::string& name, -	bool is_group) +    const LLUUID& id, +    const std::string& name, +    bool is_group)  { -	if (id == mGroupID) -	{ -		getChild<LLUICtrl>("group_name")->setValue(LLSD("<nolink>" + name + "</nolink>")); -	} -	 -	// Otherwise possibly a request for an older inspector, ignore it +    if (id == mGroupID) +    { +        getChild<LLUICtrl>("group_name")->setValue(LLSD("<nolink>" + name + "</nolink>")); +    } + +    // Otherwise possibly a request for an older inspector, ignore it  }  void LLInspectGroup::changed(LLGroupChange gc) @@ -210,74 +210,74 @@ void LLInspectGroup::changed(LLGroupChange gc)  void LLInspectGroup::processGroupData()  { -	LLGroupMgrGroupData* data = -		LLGroupMgr::getInstance()->getGroupData(mGroupID); - -	if (data) -	{ -		// Noun pluralization depends on language -		std::string lang = LLUI::getLanguage(); -		std::string members = -			LLTrans::getCountString(lang, "GroupMembers", data->mMemberCount); -		getChild<LLUICtrl>("group_subtitle")->setValue( LLSD(members) ); - -		getChild<LLUICtrl>("group_details")->setValue( LLSD(data->mCharter) ); - -		getChild<LLGroupIconCtrl>("group_icon")->setIconId(data->mInsigniaID); - -		std::string cost; -		bool is_member = LLGroupActions::isInGroup(mGroupID); -		if (is_member) -		{ -			cost = getString("YouAreMember"); -		} -		else if (data->mOpenEnrollment) -		{ -			if (data->mMembershipFee == 0) -			{ -				cost = getString("FreeToJoin"); -			} -			else -			{ -				std::string amount = -					LLResMgr::getInstance()->getMonetaryString( -						data->mMembershipFee); -				LLStringUtil::format_map_t args; -				args["[AMOUNT]"] = amount; -				cost = getString("CostToJoin", args); -			} -		} -		else -		{ -			cost = getString("PrivateGroup"); -		} -		getChild<LLUICtrl>("group_cost")->setValue(cost); - -		getChild<LLUICtrl>("join_btn")->setVisible(!is_member); -		getChild<LLUICtrl>("leave_btn")->setVisible(is_member); - -		// Only enable join button if you are allowed to join -		bool can_join = !is_member && data->mOpenEnrollment; -		getChild<LLUICtrl>("join_btn")->setEnabled(can_join); -	} +    LLGroupMgrGroupData* data = +        LLGroupMgr::getInstance()->getGroupData(mGroupID); + +    if (data) +    { +        // Noun pluralization depends on language +        std::string lang = LLUI::getLanguage(); +        std::string members = +            LLTrans::getCountString(lang, "GroupMembers", data->mMemberCount); +        getChild<LLUICtrl>("group_subtitle")->setValue( LLSD(members) ); + +        getChild<LLUICtrl>("group_details")->setValue( LLSD(data->mCharter) ); + +        getChild<LLGroupIconCtrl>("group_icon")->setIconId(data->mInsigniaID); + +        std::string cost; +        bool is_member = LLGroupActions::isInGroup(mGroupID); +        if (is_member) +        { +            cost = getString("YouAreMember"); +        } +        else if (data->mOpenEnrollment) +        { +            if (data->mMembershipFee == 0) +            { +                cost = getString("FreeToJoin"); +            } +            else +            { +                std::string amount = +                    LLResMgr::getInstance()->getMonetaryString( +                        data->mMembershipFee); +                LLStringUtil::format_map_t args; +                args["[AMOUNT]"] = amount; +                cost = getString("CostToJoin", args); +            } +        } +        else +        { +            cost = getString("PrivateGroup"); +        } +        getChild<LLUICtrl>("group_cost")->setValue(cost); + +        getChild<LLUICtrl>("join_btn")->setVisible(!is_member); +        getChild<LLUICtrl>("leave_btn")->setVisible(is_member); + +        // Only enable join button if you are allowed to join +        bool can_join = !is_member && data->mOpenEnrollment; +        getChild<LLUICtrl>("join_btn")->setEnabled(can_join); +    }  }  void LLInspectGroup::onClickViewProfile()  { -	closeFloater(); -	LLGroupActions::show(mGroupID); +    closeFloater(); +    LLGroupActions::show(mGroupID);  }  void LLInspectGroup::onClickJoin()  { -	closeFloater(); -	LLGroupActions::join(mGroupID); +    closeFloater(); +    LLGroupActions::join(mGroupID);  }  void LLInspectGroup::onClickLeave()  { -	closeFloater(); -	LLGroupActions::leave(mGroupID); +    closeFloater(); +    LLGroupActions::leave(mGroupID);  }  ////////////////////////////////////////////////////////////////////////////// @@ -285,6 +285,6 @@ void LLInspectGroup::onClickLeave()  //////////////////////////////////////////////////////////////////////////////  void LLInspectGroupUtil::registerFloater()  { -	LLFloaterReg::add("inspect_group", "inspect_group.xml", -					  &LLFloaterReg::build<LLInspectGroup>); +    LLFloaterReg::add("inspect_group", "inspect_group.xml", +                      &LLFloaterReg::build<LLInspectGroup>);  }  | 
