From 109fd91c8b811f98aaab0dbf80884efd76e95d51 Mon Sep 17 00:00:00 2001 From: Callum Prentice Date: Thu, 11 Feb 2010 11:40:21 -0800 Subject: Fix for EXT-4961 www.slurl.com will not DnD while slurl.com will Ccollab reviewed by Rick - http://10.1.19.90:8080/go?page=ReviewDisplay&reviewid=101 --- indra/newview/llslurl.cpp | 13 ++++++++++++- indra/newview/llslurl.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/llslurl.cpp b/indra/newview/llslurl.cpp index 3343ee88bd..e4773f99c5 100644 --- a/indra/newview/llslurl.cpp +++ b/indra/newview/llslurl.cpp @@ -40,6 +40,12 @@ const std::string LLSLURL::PREFIX_SL_HELP = "secondlife://app."; const std::string LLSLURL::PREFIX_SL = "sl://"; const std::string LLSLURL::PREFIX_SECONDLIFE = "secondlife://"; const std::string LLSLURL::PREFIX_SLURL_OLD = "http://slurl.com/secondlife/"; + +// For DnD - even though www.slurl.com redirects to slurl.com in a browser, you can copy and drag +// text with www.slurl.com or a link explicitly pointing at www.slurl.com so testing for this +// version is required also. +const std::string LLSLURL::PREFIX_SLURL_WWW = "http://www.slurl.com/secondlife/"; + const std::string LLSLURL::PREFIX_SLURL = "http://maps.secondlife.com/secondlife/"; const std::string LLSLURL::APP_TOKEN = "app/"; @@ -68,7 +74,10 @@ std::string LLSLURL::stripProtocol(const std::string& url) { stripped.erase(0, PREFIX_SLURL_OLD.length()); } - + else if (matchPrefix(stripped, PREFIX_SLURL_WWW)) + { + stripped.erase(0, PREFIX_SLURL_WWW.length()); + } return stripped; } @@ -81,6 +90,7 @@ bool LLSLURL::isSLURL(const std::string& url) if (matchPrefix(url, PREFIX_SECONDLIFE)) return true; if (matchPrefix(url, PREFIX_SLURL)) return true; if (matchPrefix(url, PREFIX_SLURL_OLD)) return true; + if (matchPrefix(url, PREFIX_SLURL_WWW)) return true; return false; } @@ -91,6 +101,7 @@ bool LLSLURL::isSLURLCommand(const std::string& url) if (matchPrefix(url, PREFIX_SL + APP_TOKEN) || matchPrefix(url, PREFIX_SECONDLIFE + "/" + APP_TOKEN) || matchPrefix(url, PREFIX_SLURL + APP_TOKEN) || + matchPrefix(url, PREFIX_SLURL_WWW + APP_TOKEN) || matchPrefix(url, PREFIX_SLURL_OLD + APP_TOKEN) ) { return true; diff --git a/indra/newview/llslurl.h b/indra/newview/llslurl.h index 21b32ce409..6a695e84f3 100644 --- a/indra/newview/llslurl.h +++ b/indra/newview/llslurl.h @@ -51,6 +51,7 @@ public: static const std::string PREFIX_SECONDLIFE; static const std::string PREFIX_SLURL; static const std::string PREFIX_SLURL_OLD; + static const std::string PREFIX_SLURL_WWW; static const std::string APP_TOKEN; -- cgit v1.2.3