diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llui/llurlentry.cpp | 46 | ||||
-rw-r--r-- | indra/llui/llurlentry.h | 2 | ||||
-rw-r--r-- | indra/newview/llfloatersearch.cpp | 16 |
3 files changed, 23 insertions, 41 deletions
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index ddb6c6baff..dae4b512d1 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -145,6 +145,18 @@ void LLUrlEntryBase::callObservers(const std::string &id, const std::string &lab } } +static std::string getStringAfterToken(const std::string str, const std::string token) +{ + size_t pos = str.find(token); + if (pos == std::string::npos) + { + return ""; + } + + pos += token.size(); + return str.substr(pos, str.size() - pos); +} + // // LLUrlEntryHTTP Describes generic http: and https: Urls // @@ -154,7 +166,6 @@ LLUrlEntryHTTP::LLUrlEntryHTTP() boost::regex::perl|boost::regex::icase); mMenuName = "menu_url_http.xml"; mTooltip = LLTrans::getString("TooltipHttpUrl"); - //mIcon = "gear.tga"; } std::string LLUrlEntryHTTP::getLabel(const std::string &url, const LLUrlLabelCallback &cb) @@ -390,7 +401,7 @@ std::string LLUrlEntryParcel::getLabel(const std::string &url, const LLUrlLabelC } // -// LLUrlEntryPlace Describes secondlife:///<location> URLs +// LLUrlEntryPlace Describes secondlife://<location> URLs // LLUrlEntryPlace::LLUrlEntryPlace() { @@ -433,15 +444,7 @@ std::string LLUrlEntryPlace::getLabel(const std::string &url, const LLUrlLabelCa std::string LLUrlEntryPlace::getLocation(const std::string &url) const { // return the part of the Url after secondlife:// part - const std::string search_string = "://"; - size_t pos = url.find(search_string); - if (pos == std::string::npos) - { - return ""; - } - - pos += search_string.size(); - return url.substr(pos, url.size() - pos); + return ::getStringAfterToken(url, "://"); } // @@ -506,15 +509,7 @@ std::string LLUrlEntryTeleport::getLabel(const std::string &url, const LLUrlLabe std::string LLUrlEntryTeleport::getLocation(const std::string &url) const { // return the part of the Url after ///app/teleport - const std::string search_string = "teleport"; - size_t pos = url.find(search_string); - if (pos == std::string::npos) - { - return ""; - } - - pos += search_string.size() + 1; - return url.substr(pos, url.size() - pos); + return ::getStringAfterToken(url, "app/teleport/"); } /// @@ -638,14 +633,5 @@ std::string LLUrlEntryWorldMap::getLabel(const std::string &url, const LLUrlLabe std::string LLUrlEntryWorldMap::getLocation(const std::string &url) const { // return the part of the Url after secondlife:///app/worldmap/ part - const std::string search_string = "//app/worldmap/"; - size_t pos = url.find(search_string); - if (pos == std::string::npos) - { - return ""; - } - - pos += search_string.size(); - return url.substr(pos, url.size() - pos); + return ::getStringAfterToken(url, "app/worldmap/"); } - diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index 180ef85673..4507572b1e 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -186,7 +186,7 @@ public: /// /// LLUrlEntryPlace Describes a Second Life location Url, e.g., -/// secondlife:///Ahern/50/50/50 +/// secondlife://Ahern/50/50/50 /// class LLUrlEntryPlace : public LLUrlEntryBase { diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index bd9798c18e..97c573ddea 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -34,8 +34,8 @@ #include "llviewerprecompiledheaders.h" #include "llfloatersearch.h" #include "llmediactrl.h" -#include "llagent.h" - +#include "lllogininstance.h" +#include "lluri.h" LLFloaterSearch::LLFloaterSearch(const LLSD& key) : LLFloater(key), @@ -116,15 +116,11 @@ void LLFloaterSearch::search(const LLSD &key) // append the search query string std::string search_text = key.has("id") ? key["id"].asString() : ""; - url += std::string("?q=") + search_text; + url += std::string("?q=") + LLURI::escape(search_text); - // append the maturity and teen capabilities for this agent - BOOL godlike = gAgent.isGodlike(); - bool mature_enabled = gAgent.canAccessMature() || godlike; - bool adult_enabled = gAgent.canAccessAdult() || godlike; - std::string mature = (mature_enabled) ? "True" : "False"; - std::string teen = (!adult_enabled) ? "True" : "False"; - url += "&t=" + teen + "&m=" + mature; + // append the permissions token that login.cgi gave us + LLSD search_token = LLLoginInstance::getInstance()->getResponse("search_token"); + url += "&p=" + search_token.asString(); // and load the URL in the web view mBrowser->navigateTo(url); |