From f5a8bfe148991101cc3bfdc79d9e6cdae9054f28 Mon Sep 17 00:00:00 2001 From: Cinders Date: Mon, 12 Aug 2013 13:05:48 -0600 Subject: [PATCH] Support for OpenSimExtras search-server-url --- indra/newview/fsfloatersearch.cpp | 12 ++++++++---- indra/newview/llfloatersearch.cpp | 13 +++++++++---- indra/newview/llviewerregion.cpp | 11 +++++++++++ indra/newview/llviewerregion.h | 1 + 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/indra/newview/fsfloatersearch.cpp b/indra/newview/fsfloatersearch.cpp index 8c64f99e7c..b1b709837b 100644 --- a/indra/newview/fsfloatersearch.cpp +++ b/indra/newview/fsfloatersearch.cpp @@ -2921,10 +2921,14 @@ void FSPanelSearchWeb::loadURL(const FSFloaterSearch::SearchQuery &p) url = debug_url; } else if(LLGridManager::getInstance()->isInOpenSim()) - { - url = LLLoginInstance::getInstance()->hasResponse("search") - ? LLLoginInstance::getInstance()->getResponse("search").asString() - : gSavedSettings.getString("SearchURLOpenSim"); + { + std::string os_search_url = gAgent.getRegion()->getSearchServerURL(); + if (!os_search_url.empty()) + url = os_search_url; + else if (LLLoginInstance::getInstance()->hasResponse("search")) + url = LLLoginInstance::getInstance()->getResponse("search").asString(); + else + url = gSavedSettings.getString("SearchURLOpenSim"); } else #endif // OPENSIM diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index bd6de71683..a869a53afd 100755 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -38,8 +38,9 @@ #include "llui.h" #include "llviewercontrol.h" #include "llweb.h" -#include "llviewernetwork.h"// +#include "llviewernetwork.h"// +#include "llviewerregion.h" // Opensim search support // support secondlife:///app/search/{CATEGORY}/{QUERY} SLapps class LLSearchHandler : public LLCommandHandler @@ -223,9 +224,13 @@ void LLFloaterSearch::search(const SearchQuery &p) } else if(LLGridManager::getInstance()->isInOpenSim()) { - url = LLLoginInstance::getInstance()->hasResponse("search") - ? LLLoginInstance::getInstance()->getResponse("search").asString() - : gSavedSettings.getString("SearchURLOpenSim"); + std::string os_search_url = gAgent.getRegion()->getSearchServerURL(); + if (!os_search_url.empty()) + url = os_search_url; + else if (LLLoginInstance::getInstance()->hasResponse("search")) + url = LLLoginInstance::getInstance()->getResponse("search").asString(); + else + url = gSavedSettings.getString("SearchURLOpenSim"); } else // we are in SL or SL beta #endif // OPENSIM // diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index a3a2e6cee0..eb2ba63e42 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -2094,5 +2094,16 @@ std::string LLViewerRegion::getHGMapServerURL() const } return url; } + +// OS Search URL +std::string LLViewerRegion::getSearchServerURL() const +{ + std::string url = ""; + if (mSimulatorFeatures.has("OpenSimExtras") && mSimulatorFeatures["OpenSimExtras"].has("search-server-url")) + { + url = mSimulatorFeatures["OpenSimExtras"]["search-server-url"].asString(); + } + return url; +} #endif // OPENSIM // diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index 53c2850879..da97f2b3d2 100755 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -329,6 +329,7 @@ public: EOSExportSupport regionSupportsExport() const; // ExportSupports #ifdef OPENSIM std::string getHGMapServerURL() const; // HG Maps + std::string getSearchServerURL() const; // OS Search URL #endif // OPENSIM //