From 816cf7db82f2e633631c334f44547714de6cbebc Mon Sep 17 00:00:00 2001 From: brad kittenbrink Date: Thu, 29 Jul 2010 19:49:13 -0700 Subject: Adding a simple region debug console. --- indra/newview/CMakeLists.txt | 2 + indra/newview/llfloaterregiondebugconsole.cpp | 93 ++++++++++++++++++++++ indra/newview/llfloaterregiondebugconsole.h | 55 +++++++++++++ indra/newview/llviewerfloaterreg.cpp | 2 + indra/newview/llviewermenu.cpp | 2 +- indra/newview/llviewerregion.cpp | 1 + .../xui/en/floater_region_debug_console.xml | 37 +++++++++ indra/newview/skins/default/xui/en/menu_viewer.xml | 12 +++ 8 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 indra/newview/llfloaterregiondebugconsole.cpp create mode 100644 indra/newview/llfloaterregiondebugconsole.h create mode 100644 indra/newview/skins/default/xui/en/floater_region_debug_console.xml (limited to 'indra/newview') diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 92f701551b..53941af355 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -197,6 +197,7 @@ set(viewer_SOURCE_FILES llfloaterpostprocess.cpp llfloaterpreference.cpp llfloaterproperties.cpp + llfloaterregiondebugconsole.cpp llfloaterregioninfo.cpp llfloaterreporter.cpp llfloaterscriptdebug.cpp @@ -723,6 +724,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..058f894800 --- /dev/null +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -0,0 +1,93 @@ +/** + * @file llfloaterregiondebugconsole.h + * @author Brad Kittenbrink + * @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 = mOutput->getText(); + text += '\n'; + text += content.asString(); + text += '\n'; + mOutput->setText(text); + }; + + LLTextEditor * mOutput; +}; + +LLFloaterRegionDebugConsole::LLFloaterRegionDebugConsole(LLSD const & key) +: LLFloater(key), mOutput(NULL) +{ +} + +BOOL LLFloaterRegionDebugConsole::postBuild() +{ + getChild("region_debug_console_input")->setCommitCallback(boost::bind(&LLFloaterRegionDebugConsole::onInput, this, _1, _2)); + mOutput = getChild("region_debug_console_output"); + return TRUE; +} + +void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param) +{ + LLLineEditor * input = static_cast(ctrl); + std::string text = mOutput->getText(); + text += "\n\POST: "; + text += input->getText(); + mOutput->setText(text); + + std::string url = gAgent.getRegion()->getCapability("SimConsole"); + LLHTTPClient::post(url, LLSD(input->getText()), new ::Responder(mOutput)); + + input->setText(std::string("")); +} + 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 + * @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 efe59744bc..9e256864d2 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -87,6 +87,7 @@ #include "llfloaterpostprocess.h" #include "llfloaterpreference.h" #include "llfloaterproperties.h" +#include "llfloaterregiondebugconsole.h" #include "llfloaterregioninfo.h" #include "llfloaterreporter.h" #include "llfloaterscriptdebug.h" @@ -236,6 +237,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("reporter", "floater_report_abuse.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("reset_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); + LLFloaterReg::add("region_debug_console", "floater_region_debug_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("region_info", "floater_region_info.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("script_debug", "floater_script_debug.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 635cc361f3..0822295ba1 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -558,7 +558,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 da240cedbb..93666ee5f2 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1517,6 +1517,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..591d77340a --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -0,0 +1,37 @@ + + + + + + diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 3557318705..8a3785d7c1 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2542,6 +2542,18 @@ function="ToggleControl" parameter="DoubleClickAutoPilot" /> + + + + Date: Tue, 24 Aug 2010 09:41:35 -0700 Subject: fix for sim console not staying scrolled to bottom --- indra/newview/llfloaterregiondebugconsole.cpp | 13 +++++-------- .../skins/default/xui/en/floater_region_debug_console.xml | 2 ++ 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp index 058f894800..8885fa0cb1 100644 --- a/indra/newview/llfloaterregiondebugconsole.cpp +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -55,11 +55,9 @@ public: /*virtual*/ void result(const LLSD& content) { - std::string text = mOutput->getText(); + std::string text = content.asString(); text += '\n'; - text += content.asString(); - text += '\n'; - mOutput->setText(text); + mOutput->appendText(text, true); }; LLTextEditor * mOutput; @@ -80,14 +78,13 @@ BOOL LLFloaterRegionDebugConsole::postBuild() void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param) { LLLineEditor * input = static_cast(ctrl); - std::string text = mOutput->getText(); - text += "\n\POST: "; + std::string text = "\\POST: "; text += input->getText(); - mOutput->setText(text); + mOutput->appendText(text, true); std::string url = gAgent.getRegion()->getCapability("SimConsole"); LLHTTPClient::post(url, LLSD(input->getText()), new ::Responder(mOutput)); - input->setText(std::string("")); + input->clear(); } 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 index 591d77340a..976fa35d3c 100644 --- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -9,6 +9,7 @@ width="600"> -- cgit v1.2.3 From 4b9abaaab9448df7e0773cdbaf1a5202a1f9e6c7 Mon Sep 17 00:00:00 2001 From: "Matthew Breindel (Falcon)" Date: Thu, 26 Aug 2010 17:09:15 -0700 Subject: Cleaned up the debug console a bit. Gave it a command history and proper scrolling to the bottom of the returned data. --- indra/newview/llfloaterregiondebugconsole.cpp | 48 ++++++++++++++++------ .../xui/en/floater_region_debug_console.xml | 10 +++-- 2 files changed, 42 insertions(+), 16 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp index 058f894800..159dee7631 100644 --- a/indra/newview/llfloaterregiondebugconsole.cpp +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -55,11 +55,8 @@ public: /*virtual*/ void result(const LLSD& content) { - std::string text = mOutput->getText(); - text += '\n'; - text += content.asString(); - text += '\n'; - mOutput->setText(text); + std::string text = content.asString() + "\n\n> "; + mOutput->appendText(text, false); }; LLTextEditor * mOutput; @@ -72,22 +69,47 @@ LLFloaterRegionDebugConsole::LLFloaterRegionDebugConsole(LLSD const & key) BOOL LLFloaterRegionDebugConsole::postBuild() { - getChild("region_debug_console_input")->setCommitCallback(boost::bind(&LLFloaterRegionDebugConsole::onInput, this, _1, _2)); + LLLineEditor* input = getChild("region_debug_console_input"); + input->setEnableLineHistory(true); + input->setCommitCallback(boost::bind(&LLFloaterRegionDebugConsole::onInput, this, _1, _2)); + input->setFocus(true); + input->setCommitOnFocusLost(false); + mOutput = getChild("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(ctrl); - std::string text = mOutput->getText(); - text += "\n\POST: "; - text += input->getText(); - mOutput->setText(text); + LLLineEditor* input = static_cast(ctrl); + std::string text = input->getText() + "\n"; + std::string url = gAgent.getRegion()->getCapability("SimConsole"); - LLHTTPClient::post(url, LLSD(input->getText()), new ::Responder(mOutput)); - input->setText(std::string("")); + 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/skins/default/xui/en/floater_region_debug_console.xml b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml index 591d77340a..cf95257b0a 100644 --- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -6,7 +6,8 @@ min_height="300" min_width="300" height="400" - width="600"> + width="600" + default_tab_group="1"> + word_wrap="true" + track_end="true" + read_only="true"> + width="576" /> -- cgit v1.2.3 From 301112ac7a89266d7378a413f15200ea1bb44d9e Mon Sep 17 00:00:00 2001 From: "Matthew Breindel (Falcon)" Date: Thu, 26 Aug 2010 17:14:22 -0700 Subject: Fixed bad merge. --- indra/newview/skins/default/xui/en/floater_region_debug_console.xml | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/newview') 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 index b3bf28e285..bdb890f882 100644 --- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -10,7 +10,6 @@ default_tab_group="1"> Date: Thu, 26 Aug 2010 17:29:33 -0700 Subject: Removed duplicate item in floater_region_Debug_console.xml --- indra/newview/skins/default/xui/en/floater_region_debug_console.xml | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/newview') 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 index bdb890f882..cf95257b0a 100644 --- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml +++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml @@ -19,7 +19,6 @@ ignore_tab="false" layout="topleft" max_length="65536" - track_end="true" name="region_debug_console_output" show_line_numbers="false" word_wrap="true" -- cgit v1.2.3 From 9b97fc3f309518155f2b468ea94fc6f373620f2c Mon Sep 17 00:00:00 2001 From: Kyle Ambroff Date: Sat, 23 Oct 2010 18:43:27 -0700 Subject: ER-219: Add an asynchronous api for the region debug console Add support for a new capability, SimConsoleAsync. This is a replacement for the deprecated SimConsole capability that provides an asynchronous API. The old API is still supported, but the simulator will never support both. For the new API, commands will be sent via HTTP POST to the SimConsoleAsync capability, same as before. But the resulting output will be pushed to the viewer view the event-poll, using the newly added SimConsoleResponse LLSD message. Will review with Simon or Falcon. --- indra/newview/llfloaterregiondebugconsole.cpp | 175 ++++++++++++++++++++------ indra/newview/llfloaterregiondebugconsole.h | 8 ++ indra/newview/llviewerregion.cpp | 1 + 3 files changed, 149 insertions(+), 35 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp index 159dee7631..0e61fb8e0a 100644 --- a/indra/newview/llfloaterregiondebugconsole.cpp +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -37,34 +37,113 @@ #include "llagent.h" #include "llhttpclient.h" +#include "llhttpnode.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; -}; +// Two versions of the sim console API are supported. +// +// SimConsole capability (deprecated): +// This is the initial implementation that is supported by some versions of the +// simulator. It is simple and straight forward, just POST a command and the +// body of the response has the result. This API is deprecated because it +// doesn't allow the sim to use any asynchronous API. +// +// SimConsoleAsync capability: +// This capability replaces the original SimConsole capability. It is similar +// in that the command is POSTed to the SimConsoleAsync cap, but the response +// comes in through the event poll, which gives the simulator more flexibility +// and allows it to perform complex operations without blocking any frames. +// +// We will assume the SimConsoleAsync capability is available, and fall back to +// the SimConsole cap if it is not. The simulator will only support one or the +// other. + +namespace +{ + // Signal used to notify the floater of responses from the asynchronous + // API. + typedef boost::signals2::signal< + void (const std::string& output)> console_reply_signal_t; + console_reply_signal_t sConsoleReplySignal; + + const std::string PROMPT("\n\n> "); + const std::string UNABLE_TO_SEND_COMMAND( + "ERROR: The last command was not received by the server."); + const std::string CONSOLE_UNAVAILABLE( + "ERROR: No console available for this region/simulator."); + const std::string CONSOLE_NOT_SUPPORTED( + "This region does not support the simulator console."); + + // This responder handles the initial response. Unless error() is called + // we assume that the simulator has received our request. Error will be + // called if this request times out. + class AsyncConsoleResponder : public LLHTTPClient::Responder + { + public: + /* virtual */ + void error(U32 status, const std::string& reason) + { + sConsoleReplySignal(UNABLE_TO_SEND_COMMAND); + } + }; + + class ConsoleResponder : public LLHTTPClient::Responder + { + public: + ConsoleResponder(LLTextEditor *output) : mOutput(output) + { + } + + /*virtual*/ + void error(U32 status, const std::string& reason) + { + mOutput->appendText( + UNABLE_TO_SEND_COMMAND + PROMPT, + false); + } + + /*virtual*/ + void result(const LLSD& content) + { + mOutput->appendText(content.asString() + PROMPT, false); + } + + LLTextEditor * mOutput; + }; + + // This handles responses for console commands sent via the asynchronous + // API. + class ConsoleResponseNode : public LLHTTPNode + { + public: + /* virtual */ + void post( + LLHTTPNode::ResponsePtr reponse, + const LLSD& context, + const LLSD& input) const + { + llinfos << "Received response from the debug console: " + << input << llendl; + sConsoleReplySignal(input["body"].asString()); + } + }; +} LLFloaterRegionDebugConsole::LLFloaterRegionDebugConsole(LLSD const & key) : LLFloater(key), mOutput(NULL) { + mReplySignalConnection = sConsoleReplySignal.connect( + boost::bind( + &LLFloaterRegionDebugConsole::onReplyReceived, + this, + _1)); +} + +LLFloaterRegionDebugConsole::~LLFloaterRegionDebugConsole() +{ + mReplySignalConnection.disconnect(); } BOOL LLFloaterRegionDebugConsole::postBuild() @@ -77,17 +156,21 @@ BOOL LLFloaterRegionDebugConsole::postBuild() mOutput = getChild("region_debug_console_output"); - std::string url = gAgent.getRegion()->getCapability("SimConsole"); - if ( url.size() == 0 ) + std::string url = gAgent.getRegion()->getCapability("SimConsoleAsync"); + if (url.empty()) { - mOutput->appendText("This region does not support the simulator console.\n\n> ", false); + // Fall back to see if the old API is supported. + url = gAgent.getRegion()->getCapability("SimConsole"); + if (url.empty()) + { + mOutput->appendText( + CONSOLE_NOT_SUPPORTED + PROMPT, + false); + return TRUE; + } } - else - { - mOutput->appendText("> ", false); - } - + mOutput->appendText("> ", false); return TRUE; } @@ -96,20 +179,42 @@ void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param) LLLineEditor* input = static_cast(ctrl); std::string text = input->getText() + "\n"; - - std::string url = gAgent.getRegion()->getCapability("SimConsole"); - - if ( url.size() > 0 ) + std::string url = gAgent.getRegion()->getCapability("SimConsoleAsync"); + if (url.empty()) { - LLHTTPClient::post(url, LLSD(input->getText()), new ::Responder(mOutput)); + // Fall back to the old API + url = gAgent.getRegion()->getCapability("SimConsole"); + if (url.empty()) + { + text += CONSOLE_UNAVAILABLE + PROMPT; + } + else + { + // Using SimConsole (deprecated) + LLHTTPClient::post( + url, + LLSD(input->getText()), + new ConsoleResponder(mOutput)); + } } else { - text += "\nError: No console available for this region/simulator.\n\n> "; + // Using SimConsoleAsync + LLHTTPClient::post( + url, + LLSD(input->getText()), + new AsyncConsoleResponder); } mOutput->appendText(text, false); - input->clear(); } +void LLFloaterRegionDebugConsole::onReplyReceived(const std::string& output) +{ + mOutput->appendText(output + PROMPT, false); +} + +LLHTTPRegistration + gHTTPRegistrationMessageDebugConsoleResponse( + "/message/SimConsoleResponse"); diff --git a/indra/newview/llfloaterregiondebugconsole.h b/indra/newview/llfloaterregiondebugconsole.h index 69d7773fec..4171a4da6b 100644 --- a/indra/newview/llfloaterregiondebugconsole.h +++ b/indra/newview/llfloaterregiondebugconsole.h @@ -34,6 +34,8 @@ #ifndef LL_LLFLOATERREGIONDEBUGCONSOLE_H #define LL_LLFLOATERREGIONDEBUGCONSOLE_H +#include + #include "llfloater.h" #include "llhttpclient.h" @@ -43,6 +45,7 @@ class LLFloaterRegionDebugConsole : public LLFloater, public LLHTTPClient::Respo { public: LLFloaterRegionDebugConsole(LLSD const & key); + virtual ~LLFloaterRegionDebugConsole(); // virtual BOOL postBuild(); @@ -50,6 +53,11 @@ public: void onInput(LLUICtrl* ctrl, const LLSD& param); LLTextEditor * mOutput; + + private: + void onReplyReceived(const std::string& output); + + boost::signals2::connection mReplySignalConnection; }; #endif // LL_LLFLOATERREGIONDEBUGCONSOLE_H diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index abae44953b..45a2acfeef 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1400,6 +1400,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url) capabilityNames.append("ServerReleaseNotes"); capabilityNames.append("SetDisplayName"); capabilityNames.append("SimConsole"); + capabilityNames.append("SimConsoleAsync"); capabilityNames.append("StartGroupProposal"); capabilityNames.append("TextureStats"); capabilityNames.append("UntrustedSimulatorMessage"); -- cgit v1.2.3 From 7be4f43d1704a5d5318e4fd32ab95a132cd26ea3 Mon Sep 17 00:00:00 2001 From: Kyle Ambroff Date: Mon, 25 Oct 2010 10:08:42 -0700 Subject: Null checks for mOutput for good luck. --- indra/newview/llfloaterregiondebugconsole.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp index 0e61fb8e0a..b3b7645dd4 100644 --- a/indra/newview/llfloaterregiondebugconsole.cpp +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -99,15 +99,22 @@ namespace /*virtual*/ void error(U32 status, const std::string& reason) { - mOutput->appendText( - UNABLE_TO_SEND_COMMAND + PROMPT, - false); + if (mOutput) + { + mOutput->appendText( + UNABLE_TO_SEND_COMMAND + PROMPT, + false); + } } /*virtual*/ void result(const LLSD& content) { - mOutput->appendText(content.asString() + PROMPT, false); + if (mOutput) + { + mOutput->appendText( + content.asString() + PROMPT, false); + } } LLTextEditor * mOutput; -- cgit v1.2.3 From 0dbf75ab657446b51e6e9795ddccc16bb9f6fd02 Mon Sep 17 00:00:00 2001 From: Kyle Ambroff Date: Thu, 4 Nov 2010 12:37:02 -0700 Subject: ER-281: Object cache limit is too low in the viewer * Bump CacheNumberOfRegionsForObjects up to 20k in the default settings. * Make LLVOCache *actually* use this setting, with no upper bound. Reviewed with Kelly. --- indra/newview/app_settings/settings.xml | 4 ++-- indra/newview/llvocache.cpp | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 7172f0359a..4da2ea2aef 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1150,13 +1150,13 @@ CacheNumberOfRegionsForObjects Comment - Controls number of regions to be cached for objects, ranges from 16 to 128. + Controls number of regions to be cached for objects. Persist 1 Type U32 Value - 128 + 20000 CacheSize diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp index 8bdb8e069e..34e9babe2c 100644 --- a/indra/newview/llvocache.cpp +++ b/indra/newview/llvocache.cpp @@ -223,7 +223,6 @@ BOOL LLVOCacheEntry::writeToFile(LLAPRFile* apr_file) const // Format string used to construct filename for the object cache static const char OBJECT_CACHE_FILENAME[] = "objects_%d_%d.slc"; -const U32 MAX_NUM_OBJECT_ENTRIES = 128 ; const U32 NUM_ENTRIES_TO_PURGE = 16 ; const char* object_cache_dirname = "objectcache"; const char* header_filename = "object.cache"; @@ -291,9 +290,9 @@ void LLVOCache::initCache(ELLPath location, U32 size, U32 cache_version) if (!mReadOnly) { LLFile::mkdir(mObjectCacheDirName); - } - mCacheSize = llclamp(size, - MAX_NUM_OBJECT_ENTRIES, NUM_ENTRIES_TO_PURGE); + } + + mCacheSize = size; mMetaInfo.mVersion = cache_version; readCacheHeader(); @@ -424,7 +423,7 @@ void LLVOCache::readCacheHeader() HeaderEntryInfo* entry ; mNumEntries = 0 ; - while(mNumEntries < MAX_NUM_OBJECT_ENTRIES) + while(mNumEntries < mCacheSize) { entry = new HeaderEntryInfo() ; if(!checkRead(apr_file, entry, sizeof(HeaderEntryInfo))) @@ -477,10 +476,10 @@ void LLVOCache::writeCacheHeader() } mNumEntries = mHeaderEntryQueue.size() ; - if(mNumEntries < MAX_NUM_OBJECT_ENTRIES) + if(mNumEntries < mCacheSize) { HeaderEntryInfo* entry = new HeaderEntryInfo() ; - for(S32 i = mNumEntries ; i < MAX_NUM_OBJECT_ENTRIES ; i++) + for(S32 i = mNumEntries ; i < mCacheSize; i++) { //fill the cache with the default entry. if(!checkWrite(apr_file, entry, sizeof(HeaderEntryInfo))) -- cgit v1.2.3 From 128ec0ceaa6efdf24f05c51075853584c3d5acbc Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Mon, 15 Nov 2010 23:01:17 +0200 Subject: STORM-580 FIXED Removed "IM" font color setting as unused. --- indra/newview/llimfloater.cpp | 2 -- indra/newview/skins/default/colors.xml | 3 -- .../default/xui/en/panel_preferences_colors.xml | 41 +++------------------- 3 files changed, 5 insertions(+), 41 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index e000abda2a..bdc0dfa7e2 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -680,8 +680,6 @@ void LLIMFloater::updateMessages() if (messages.size()) { -// LLUIColor chat_color = LLUIColorTable::instance().getColor("IMChatColor"); - LLSD chat_args; chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history; diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index f8660419b4..aeea2306f7 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -399,9 +399,6 @@ - diff --git a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml index 036730a646..c867afe778 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml @@ -113,22 +113,22 @@ + parameter="ObjectChatColor" /> + parameter="ObjectChatColor" /> - IM + Objects Errors - - - - - - Objects - Date: Tue, 16 Nov 2010 13:33:56 -0500 Subject: STORM-535 : STORM-544 : Addition of Floater Opacity controls to pannel_prefferences_color.xml after loss during cleanup of preferences. --- .../default/xui/en/panel_preferences_colors.xml | 57 ++++++++++++++++++++-- 1 file changed, 52 insertions(+), 5 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml index 036730a646..f3a5409e41 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml @@ -305,7 +305,7 @@ left="30" height="12" name="bubble_chat" - top_pad="28" + top_pad="20" width="120" > Bubble chat: @@ -336,11 +336,58 @@ height="16" increment="0.05" initial_value="1" - label="Opacity" + label="Opacity:" layout="topleft" - left_pad="15" - label_width="56" + left_pad="10" + label_width="70" name="bubble_chat_opacity" top_delta = "6" - width="347" /> + width="378" /> + + Floater Opacity: + + + -- cgit v1.2.3 From 00ada8dccd50cf04e5ea16f200ce3c6bfbee5023 Mon Sep 17 00:00:00 2001 From: Paul Guslisty Date: Wed, 17 Nov 2010 15:09:08 +0200 Subject: STORM-588 FIXED Add a Preference that allows users to run multiple Viewer instances - Added a control_name for the "AllowMultipleViewers" checkbox --- indra/newview/skins/default/xui/en/panel_preferences_advanced.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 15d1222d00..dd01683c51 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -79,6 +79,7 @@ Date: Wed, 17 Nov 2010 15:21:58 +0200 Subject: STORM-589 FIXED Add a Preference that allows users to display the grid selection drop-down on the login screen - Added a control_name for the "Show Grid Selection at login" checkbox --- indra/newview/skins/default/xui/en/panel_preferences_advanced.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 15d1222d00..cfc7a0d5ae 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -88,6 +88,7 @@ top_pad="20" width="237"/> Date: Wed, 17 Nov 2010 15:31:23 +0200 Subject: STORM-590 FIXED Add Preferences to enable the display of the Advanced and Development menus - Added control_names for the "Show Advanced Menu" and "QAMode" checkboxes --- indra/newview/skins/default/xui/en/panel_preferences_advanced.xml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 15d1222d00..ae9711418e 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -97,6 +97,7 @@ top_pad="5" width="237"/>