diff --git a/indra/newview/llappviewerlistener.cpp b/indra/newview/llappviewerlistener.cpp index a8c98b17a7326b1a6bd84de5e84d926e696a5f75..befebae88ee9e813ba87f26b527e8cec6d08196a 100644 --- a/indra/newview/llappviewerlistener.cpp +++ b/indra/newview/llappviewerlistener.cpp @@ -18,6 +18,7 @@ // external library headers // other Linden headers #include "llappviewer.h" +#include "llviewercontrol.h" LLAppViewerListener::LLAppViewerListener(const std::string& pumpname, LLAppViewer* llappviewer): LLDispatchListener(pumpname, "op"), @@ -25,9 +26,21 @@ LLAppViewerListener::LLAppViewerListener(const std::string& pumpname, LLAppViewe { // add() every method we want to be able to invoke via this event API. add("requestQuit", &LLAppViewerListener::requestQuit); + add("setSetting", &LLAppViewerListener::setSetting); } void LLAppViewerListener::requestQuit(const LLSD& event) const { mAppViewer->requestQuit(); } + +void LLAppViewerListener::setSetting(const LLSD & event) const +{ + std::string control_name = event["name"].asString(); + if (gSavedSettings.controlExists(control_name)) + { + LLControlVariable* control = gSavedSettings.getControl(control_name); + + control->set(event["value"]); + } +} diff --git a/indra/newview/llappviewerlistener.h b/indra/newview/llappviewerlistener.h index ab17dd1d9042d0dc6a7b1847b5a5c60098080b0c..ff63b69c137ed9d7092030204bedb3015501494f 100644 --- a/indra/newview/llappviewerlistener.h +++ b/indra/newview/llappviewerlistener.h @@ -27,6 +27,7 @@ class LLAppViewerListener: public LLDispatchListener private: void requestQuit(const LLSD& event) const; + void setSetting(const LLSD & event) const; LLAppViewer* mAppViewer; };