summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatersearch.cpp
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2025-12-04 14:19:04 +0200
committerMnikolenko Productengine <mnikolenko@productengine.com>2025-12-04 14:19:22 +0200
commita377ec310848657ca6f4b76bdf74aca9cfc6f9da (patch)
treedfb181330de5d5d64981d50171f37c3d0d376ee1 /indra/newview/llfloatersearch.cpp
parent1073444a44c5d0a877fb91dbdde06aa37fea7644 (diff)
parentc4ec3d866082d588de671e833413474d7ab19524 (diff)
Merge branch 'release/2026.01' into maxim/2025.07-Flat-UI
Diffstat (limited to 'indra/newview/llfloatersearch.cpp')
-rw-r--r--indra/newview/llfloatersearch.cpp59
1 files changed, 37 insertions, 22 deletions
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 9762154a26..9b7a4e5134 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -44,15 +44,29 @@ class LLSearchHandler : public LLCommandHandler {
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();
+ }
+
// open the search floater and perform the requested search
- LLFloaterReg::showInstance("search", tokens);
+ LLFloaterReg::showInstance("search", llsd::map("collection", collection,"query", search_text));
return true;
}
};
LLSearchHandler gSearchHandler;
LLFloaterSearch::LLFloaterSearch(const LLSD& key)
- : LLFloater(key)
+ : LLFloaterWebContent(key)
{
mSearchType.insert("standard");
mSearchType.insert("land");
@@ -72,6 +86,12 @@ LLFloaterSearch::~LLFloaterSearch()
void LLFloaterSearch::onOpen(const LLSD& tokens)
{
initiateSearch(tokens);
+ mWebBrowser->setFocus(true);
+}
+
+// just to override LLFloaterWebContent
+void LLFloaterSearch::onClose(bool app_quitting)
+{
}
void LLFloaterSearch::initiateSearch(const LLSD& tokens)
@@ -84,25 +104,11 @@ void LLFloaterSearch::initiateSearch(const LLSD& tokens)
// substituted into the final URL using the logic from the original search.
subs["TYPE"] = "standard";
- const size_t parts = tokens.size();
+ std::string collection = tokens.has("collection") ? tokens["collection"].asString() : "";
- // 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();
- }
+ std::string search_text = tokens.has("query") ? tokens["query"].asString() : "";
- // TODO: where does category get set? I cannot find a reference to
- // it in internal docs - might be conflated with values in mSearchType
- std::string category;
+ std::string category = tokens.has("category") ? tokens["category"].asString() : "";
if (mSearchType.find(category) != mSearchType.end())
{
subs["TYPE"] = category;
@@ -155,13 +161,22 @@ void LLFloaterSearch::initiateSearch(const LLSD& tokens)
// Naviation to the calculated URL - we know it's HTML so we can
// tell the media system not to bother with the MIME type check.
- LLMediaCtrl* search_browser = findChild<LLMediaCtrl>("search_contents");
- search_browser->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
+ mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML);
}
bool LLFloaterSearch::postBuild()
{
- enableResizeCtrls(true, true, false);
+ if (!LLFloaterWebContent::postBuild())
+ return false;
+
+ mWebBrowser->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
+
+ // If cookie is there, will set it now, Otherwise will have to wait for login completion
+ // which will also update search instance if it already exists.
+ LLViewerMedia::getInstance()->getOpenIDCookie(mWebBrowser);
+
+ getChildView("address")->setEnabled(false);
+ getChildView("popexternal")->setEnabled(false);
// This call is actioned by the preload code in llViewerWindow
// that creates the search floater during the login process