diff options
Diffstat (limited to 'indra/newview/llfloatersearch.cpp')
-rw-r--r-- | indra/newview/llfloatersearch.cpp | 218 |
1 files changed, 106 insertions, 112 deletions
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 37ae80fa8f..bd32807bb9 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -1,4 +1,4 @@ -/** +/** * @file llfloatersearch.cpp * @author Martin Reddy * @brief Search floater - uses an embedded web browser control @@ -6,21 +6,21 @@ * $LicenseInfo:firstyear=2009&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -44,41 +44,35 @@ class LLSearchHandler : public LLCommandHandler { public: - // requires trusted browser to trigger - LLSearchHandler() : LLCommandHandler("search", UNTRUSTED_CLICK_ONLY) { } - bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) - { - if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableSearch")) - { - LLNotificationsUtil::add("NoSearch", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit")); - return true; - } - - const size_t parts = tokens.size(); - - // get the (optional) category for the search - std::string collection; - if (parts > 0) - { + // requires trusted browser to trigger + LLSearchHandler() : LLCommandHandler("search", UNTRUSTED_CLICK_ONLY) { } + bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web) + { + const size_t parts = tokens.size(); + + // get the (optional) category for the search + std::string collection; + if (parts > 0) + { collection = tokens[0].asString(); - } - - // get the (optional) search string - std::string search_text; - if (parts > 1) - { - search_text = tokens[1].asString(); - } - - // create the LLSD arguments for the search floater - LLFloaterSearch::Params p; - p.search.collection = collection; - p.search.query = LLURI::unescape(search_text); - - // open the search floater and perform the requested search - LLFloaterReg::showInstance("search", p); - return true; - } + } + + // get the (optional) search string + std::string search_text; + if (parts > 1) + { + search_text = tokens[1].asString(); + } + + // create the LLSD arguments for the search floater + LLFloaterSearch::Params p; + p.search.collection = collection; + p.search.query = LLURI::unescape(search_text); + + // open the search floater and perform the requested search + LLFloaterReg::showInstance("search", p); + return true; + } }; LLSearchHandler gSearchHandler; @@ -89,11 +83,11 @@ LLFloaterSearch::SearchQuery::SearchQuery() {} LLFloaterSearch::LLFloaterSearch(const Params& key) : - LLFloaterWebContent(key), - mSearchGodLevel(0) + LLFloaterWebContent(key), + mSearchGodLevel(0) { - // declare a map that transforms a category name into - // the URL suffix that is used to search that category + // declare a map that transforms a category name into + // the URL suffix that is used to search that category mSearchType.insert("standard"); mSearchType.insert("land"); @@ -108,67 +102,67 @@ LLFloaterSearch::LLFloaterSearch(const Params& key) : BOOL LLFloaterSearch::postBuild() { - LLFloaterWebContent::postBuild(); - mWebBrowser->addObserver(this); + LLFloaterWebContent::postBuild(); + mWebBrowser->addObserver(this); - return TRUE; + return TRUE; } void LLFloaterSearch::onOpen(const LLSD& key) { - Params p(key); - p.trusted_content = true; - p.allow_address_entry = false; + Params p(key); + p.trusted_content = true; + p.allow_address_entry = false; - LLFloaterWebContent::onOpen(p); - mWebBrowser->setFocus(TRUE); - search(p.search); + LLFloaterWebContent::onOpen(p); + mWebBrowser->setFocus(TRUE); + search(p.search); } void LLFloaterSearch::onClose(bool app_quitting) { - LLFloaterWebContent::onClose(app_quitting); - // tear down the web view so we don't show the previous search - // result when the floater is opened next time - destroy(); + LLFloaterWebContent::onClose(app_quitting); + // tear down the web view so we don't show the previous search + // result when the floater is opened next time + destroy(); } void LLFloaterSearch::godLevelChanged(U8 godlevel) { - // search results can change based upon god level - if the user - // changes god level, then give them a warning (we don't refresh - // the search as this might undo any page navigation or - // AJAX-driven changes since the last search). - - //FIXME: set status bar text - - //getChildView("refresh_search")->setVisible( (godlevel != mSearchGodLevel)); + // search results can change based upon god level - if the user + // changes god level, then give them a warning (we don't refresh + // the search as this might undo any page navigation or + // AJAX-driven changes since the last search). + + //FIXME: set status bar text + + //getChildView("refresh_search")->setVisible( (godlevel != mSearchGodLevel)); } void LLFloaterSearch::search(const SearchQuery &p) { - if (! mWebBrowser || !p.validateBlock()) - { - return; - } - - // reset the god level warning as we're sending the latest state - getChildView("refresh_search")->setVisible(FALSE); - mSearchGodLevel = gAgent.getGodLevel(); - - // work out the subdir to use based on the requested category - LLSD subs; - if (mSearchType.find(p.category) != mSearchType.end()) - { - subs["TYPE"] = p.category; - } - else - { - subs["TYPE"] = "standard"; - } - - // add the search query string - subs["QUERY"] = LLURI::escape(p.query); + if (! mWebBrowser || !p.validateBlock()) + { + return; + } + + // reset the god level warning as we're sending the latest state + getChildView("refresh_search")->setVisible(FALSE); + mSearchGodLevel = gAgent.getGodLevel(); + + // work out the subdir to use based on the requested category + LLSD subs; + if (mSearchType.find(p.category) != mSearchType.end()) + { + subs["TYPE"] = p.category; + } + else + { + subs["TYPE"] = "standard"; + } + + // add the search query string + subs["QUERY"] = LLURI::escape(p.query); subs["COLLECTION"] = ""; if (subs["TYPE"] == "standard") @@ -188,30 +182,30 @@ void LLFloaterSearch::search(const SearchQuery &p) } } - // add the user's preferred maturity (can be changed via prefs) - std::string maturity; - if (gAgent.prefersAdult()) - { - maturity = "gma"; // PG,Mature,Adult - } - else if (gAgent.prefersMature()) - { - maturity = "gm"; // PG,Mature - } - else - { - maturity = "g"; // PG - } - subs["MATURITY"] = maturity; - - // add the user's god status - subs["GODLIKE"] = gAgent.isGodlike() ? "1" : "0"; - - // get the search URL and expand all of the substitutions - // (also adds things like [LANGUAGE], [VERSION], [OS], etc.) - std::string url = gSavedSettings.getString("SearchURL"); - url = LLWeb::expandURLSubstitutions(url, subs); - - // and load the URL in the web view - mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML); + // add the user's preferred maturity (can be changed via prefs) + std::string maturity; + if (gAgent.prefersAdult()) + { + maturity = "gma"; // PG,Mature,Adult + } + else if (gAgent.prefersMature()) + { + maturity = "gm"; // PG,Mature + } + else + { + maturity = "g"; // PG + } + subs["MATURITY"] = maturity; + + // add the user's god status + subs["GODLIKE"] = gAgent.isGodlike() ? "1" : "0"; + + // get the search URL and expand all of the substitutions + // (also adds things like [LANGUAGE], [VERSION], [OS], etc.) + std::string url = gSavedSettings.getString("SearchURL"); + url = LLWeb::expandURLSubstitutions(url, subs); + + // and load the URL in the web view + mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML); } |