summaryrefslogtreecommitdiff
path: root/indra/newview/llweb.cpp
diff options
context:
space:
mode:
authorMark Palange (Mani) <palange@lindenlab.com>2010-06-01 18:42:27 -0700
committerMark Palange (Mani) <palange@lindenlab.com>2010-06-01 18:42:27 -0700
commitebee0b30eb8bd2cce773ed5e2f70aa21afeb2924 (patch)
tree2ca64c56c047ebf621e20b61108e78cac73b4756 /indra/newview/llweb.cpp
parent7bf5e5c6189a7316b7d1dbcb749c0feb8564c3e5 (diff)
parent6886bd65ddaa07f6fb22e243995964084acce998 (diff)
merge
Diffstat (limited to 'indra/newview/llweb.cpp')
-rw-r--r--indra/newview/llweb.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 1a64f9d881..5c9633c036 100644
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -54,6 +54,10 @@
#include "llviewerparcelmgr.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
+#include "llnotificationsutil.h"
+
+bool on_load_url_external_response(const LLSD& notification, const LLSD& response, bool async );
+
class URLLoader : public LLToastAlertPanel::URLLoader
{
@@ -110,11 +114,26 @@ void LLWeb::loadURLExternal(const std::string& url)
// static
void LLWeb::loadURLExternal(const std::string& url, bool async)
{
- std::string escaped_url = escapeURL(url);
- if (gViewerWindow)
+ LLSD payload;
+ payload["url"] = url;
+ LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, boost::bind(on_load_url_external_response, _1, _2, async));
+}
+
+// static
+bool on_load_url_external_response(const LLSD& notification, const LLSD& response, bool async )
+{
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if ( 0 == option )
{
- gViewerWindow->getWindow()->spawnWebBrowser(escaped_url, async);
+ LLSD payload = notification["payload"];
+ std::string url = payload["url"].asString();
+ std::string escaped_url = LLWeb::escapeURL(url);
+ if (gViewerWindow)
+ {
+ gViewerWindow->getWindow()->spawnWebBrowser(escaped_url, async);
+ }
}
+ return false;
}
@@ -155,7 +174,7 @@ std::string LLWeb::expandURLSubstitutions(const std::string &url,
substitution["VERSION_PATCH"] = LLVersionInfo::getPatch();
substitution["VERSION_BUILD"] = LLVersionInfo::getBuild();
substitution["CHANNEL"] = LLVersionInfo::getChannel();
- substitution["GRID"] = LLViewerLogin::getInstance()->getGridLabel();
+ substitution["GRID"] = LLGridManager::getInstance()->getGridLabel();
substitution["OS"] = LLAppViewer::instance()->getOSInfo().getOSStringSimple();
substitution["SESSION_ID"] = gAgent.getSessionID();
substitution["FIRST_LOGIN"] = gAgent.isFirstLogin();