diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterregiondebugconsole.cpp | 115 | ||||
| -rw-r--r-- | indra/newview/llfloaterregiondebugconsole.h | 55 | ||||
| -rw-r--r-- | indra/newview/llviewerfloaterreg.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerregion.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_region_debug_console.xml | 41 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 12 | 
8 files changed, 229 insertions, 1 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1f4302d870..1829e12478 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -200,6 +200,7 @@ set(viewer_SOURCE_FILES      llfloaterpostprocess.cpp      llfloaterpreference.cpp      llfloaterproperties.cpp +    llfloaterregiondebugconsole.cpp      llfloaterregioninfo.cpp      llfloaterreporter.cpp      llfloaterscriptdebug.cpp @@ -730,6 +731,7 @@ set(viewer_HEADER_FILES      llfloaterpostprocess.h      llfloaterpreference.h      llfloaterproperties.h +    llfloaterregiondebugconsole.h      llfloaterregioninfo.h      llfloaterreporter.h      llfloaterscriptdebug.h diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp new file mode 100644 index 0000000000..159dee7631 --- /dev/null +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -0,0 +1,115 @@ +/**  + * @file llfloaterregiondebugconsole.h + * @author Brad Kittenbrink <brad@lindenlab.com> + * @brief Quick and dirty console for region debug settings + * + * $LicenseInfo:firstyear=2010&license=viewergpl$ + *  + * Copyright (c) 2010-2010, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloaterregiondebugconsole.h" + +#include "llagent.h" +#include "llhttpclient.h" +#include "lllineeditor.h" +#include "lltexteditor.h" +#include "llviewerregion.h" + +class Responder : public LLHTTPClient::Responder { +public: +    Responder(LLTextEditor *output) : mOutput(output) +    { +    } + +    /*virtual*/ +    void error(U32 status, const std::string& reason) +    { +    } + +    /*virtual*/ +    void result(const LLSD& content) +    { +		std::string text = content.asString() + "\n\n> "; +		mOutput->appendText(text, false); +    }; + +    LLTextEditor * mOutput; +}; + +LLFloaterRegionDebugConsole::LLFloaterRegionDebugConsole(LLSD const & key) +: LLFloater(key), mOutput(NULL) +{ +} + +BOOL LLFloaterRegionDebugConsole::postBuild() +{ +	LLLineEditor* input = getChild<LLLineEditor>("region_debug_console_input"); +	input->setEnableLineHistory(true); +	input->setCommitCallback(boost::bind(&LLFloaterRegionDebugConsole::onInput, this, _1, _2)); +	input->setFocus(true); +	input->setCommitOnFocusLost(false); + +	mOutput = getChild<LLTextEditor>("region_debug_console_output"); + +	std::string url = gAgent.getRegion()->getCapability("SimConsole"); +	if ( url.size() == 0 ) +	{ +		mOutput->appendText("This region does not support the simulator console.\n\n> ", false); +	} +	else +	{ +		mOutput->appendText("> ", false); +	} +	 + +	return TRUE; +} + +void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param) +{ +	LLLineEditor* input = static_cast<LLLineEditor*>(ctrl); +	std::string text = input->getText() + "\n"; + + +    std::string url = gAgent.getRegion()->getCapability("SimConsole"); + +	if ( url.size() > 0 ) +	{ +		LLHTTPClient::post(url, LLSD(input->getText()), new ::Responder(mOutput)); +	} +	else +	{ +		text += "\nError: No console available for this region/simulator.\n\n> "; +	} + +	mOutput->appendText(text, false); + +	input->clear(); +} + diff --git a/indra/newview/llfloaterregiondebugconsole.h b/indra/newview/llfloaterregiondebugconsole.h new file mode 100644 index 0000000000..69d7773fec --- /dev/null +++ b/indra/newview/llfloaterregiondebugconsole.h @@ -0,0 +1,55 @@ +/**  + * @file llfloaterregiondebugconsole.h + * @author Brad Kittenbrink <brad@lindenlab.com> + * @brief Quick and dirty console for region debug settings + * + * $LicenseInfo:firstyear=2010&license=viewergpl$ + *  + * Copyright (c) 2010-2010, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_LLFLOATERREGIONDEBUGCONSOLE_H +#define LL_LLFLOATERREGIONDEBUGCONSOLE_H + +#include "llfloater.h" +#include "llhttpclient.h" + +class LLTextEditor; + +class LLFloaterRegionDebugConsole : public LLFloater, public LLHTTPClient::Responder +{ +public: +	LLFloaterRegionDebugConsole(LLSD const & key); + +	// virtual +	BOOL postBuild(); +	 +	void onInput(LLUICtrl* ctrl, const LLSD& param); + +	LLTextEditor * mOutput; +}; + +#endif // LL_LLFLOATERREGIONDEBUGCONSOLE_H diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 7490ccf77a..cd4e099c60 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -80,6 +80,7 @@  #include "llfloaterpostprocess.h"  #include "llfloaterpreference.h"  #include "llfloaterproperties.h" +#include "llfloaterregiondebugconsole.h"  #include "llfloaterregioninfo.h"  #include "llfloaterreporter.h"  #include "llfloaterscriptdebug.h" @@ -225,6 +226,7 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("reporter", "floater_report_abuse.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterReporter>);  	LLFloaterReg::add("reset_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterResetQueue>); +	LLFloaterReg::add("region_debug_console", "floater_region_debug_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRegionDebugConsole>);  	LLFloaterReg::add("region_info", "floater_region_info.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRegionInfo>);  	LLFloaterReg::add("script_debug", "floater_script_debug.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptDebug>); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d4af5048c3..9521157ca6 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -556,7 +556,7 @@ class LLAdvancedCheckConsole : public view_listener_t  			new_value = get_visibility( (void*)gDebugView->mMemoryView );  		}  #endif - +		  		return new_value;  	}  }; diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 98f16757b2..3e2ea8c665 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1391,6 +1391,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url)  	capabilityNames.append("SendUserReport");  	capabilityNames.append("SendUserReportWithScreenshot");  	capabilityNames.append("ServerReleaseNotes"); +	capabilityNames.append("SimConsole");  	capabilityNames.append("StartGroupProposal");  	capabilityNames.append("TextureStats");  	capabilityNames.append("UntrustedSimulatorMessage"); diff --git a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml new file mode 100644 index 0000000000..cf95257b0a --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater +  name="region_debug_console" +  title="Region Debug" +  layout="topleft" +  min_height="300" +  min_width="300" +  height="400" +  width="600" +  default_tab_group="1"> +  <text_editor +  left="10" +   type="string" +   length="1" +   follows="left|top|right|bottom" +   font="Monospace" +   height="366" +   width="576" +   ignore_tab="false" +   layout="topleft" +   max_length="65536" +   name="region_debug_console_output" +   show_line_numbers="false"  +   word_wrap="true" +   track_end="true" +   read_only="true"> +  </text_editor> +  <line_editor +   border_style="line" +   border_thickness="1" +   tab_group="1"  +   follows="left|top|right" +   font="SansSerif" +   height="19" +   layout="topleft" +   bottom_delta="20" +   max_length="127" +   name="region_debug_console_input" +   top_delta="0" +   width="576" /> +</floater> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index af241862b6..6b92ec028d 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2674,6 +2674,18 @@                   function="ToggleControl"                   parameter="DoubleClickTeleport" />              </menu_item_check> +            <menu_item_check +             label="Region Debug Console" +             name="Region Debug Console" +             shortcut="control|shift|`" +             use_mac_ctrl="true"> +                <menu_item_check.on_check +                 function="Floater.Visible" +                 parameter="region_debug_console" /> +                <menu_item_check.on_click +                 function="Floater.Toggle" +                 parameter="region_debug_console" /> +            </menu_item_check>              <menu_item_separator /> | 
