diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/app_settings/commands.xml | 4 | ||||
| -rwxr-xr-x | indra/newview/llagent.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/lltoolmgr.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/lltoolmgr.h | 2 | 
4 files changed, 13 insertions, 10 deletions
| diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml index 16a7e0b314..12ce45717b 100644 --- a/indra/newview/app_settings/commands.xml +++ b/indra/newview/app_settings/commands.xml @@ -37,10 +37,10 @@             tooltip_ref="Command_Build_Tooltip"             execute_function="Build.Toggle"             execute_parameters="build" -           is_enabled_function="Agent.IsActionAllowed" +           is_enabled_function="Build.Enabled"             is_enabled_parameters="build"             is_running_function="Floater.IsOpen" -           is_running_parameters="build" +           is_running_parameters="toolbox floater"             />    <command name="chat"             available_in_toybox="true" diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index f0add8ddc4..3870a3be2e 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -169,11 +169,7 @@ bool LLAgent::isActionAllowed(const LLSD& sdname)  	const std::string& param = sdname.asString(); -	if (param == "build") -	{ -		retval = LLViewerParcelMgr::getInstance()->allowAgentBuild(); -	} -	else if (param == "speak") +	if (param == "speak")  	{  		if ( gAgent.isVoiceConnected() &&   			LLViewerParcelMgr::getInstance()->allowAgentVoice() && diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp index 6bc7c6de11..ac01316462 100644 --- a/indra/newview/lltoolmgr.cpp +++ b/indra/newview/lltoolmgr.cpp @@ -81,7 +81,7 @@ LLToolMgr::LLToolMgr()  	// Not a panel, register these callbacks globally.  	LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Active", boost::bind(&LLToolMgr::inEdit, this));  	LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Enabled", boost::bind(&LLToolMgr::canEdit, this)); -	LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Build.Toggle", boost::bind(&LLToolMgr::toggleBuildMode, this)); +	LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Build.Toggle", boost::bind(&LLToolMgr::toggleBuildMode, this, _2));  	gToolNull = new LLTool(LLStringUtil::null);  // Does nothing  	setCurrentTool(gToolNull); @@ -245,8 +245,15 @@ bool LLToolMgr::canEdit()  	return LLViewerParcelMgr::getInstance()->allowAgentBuild();  } -void LLToolMgr::toggleBuildMode() +void LLToolMgr::toggleBuildMode(const LLSD& sdname)  { +	const std::string& param = sdname.asString(); + +	if (param == "build" && !canEdit()) +	{ +		return; +	} +  	LLFloaterReg::toggleInstanceOrBringToFront("build");  	bool build_visible = LLFloaterReg::instanceVisible("build"); diff --git a/indra/newview/lltoolmgr.h b/indra/newview/lltoolmgr.h index d489c4c829..12649cfba2 100644 --- a/indra/newview/lltoolmgr.h +++ b/indra/newview/lltoolmgr.h @@ -54,7 +54,7 @@ public:  	bool			inEdit();  	bool			canEdit(); -	void			toggleBuildMode(); +	void			toggleBuildMode(const LLSD& sdname);  	/* Determines if we are in Build mode or not. */  	bool			inBuildMode(); | 
