From 2a4dea528f670b9bb1f77ef27a8a1dd16603d114 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Fri, 15 Aug 2008 23:45:50 -0500 Subject: Second Life viewer sources 1.20.7 --- linden/indra/newview/llpaneldirplaces.cpp | 156 +++--------------------------- 1 file changed, 16 insertions(+), 140 deletions(-) (limited to 'linden/indra/newview/llpaneldirplaces.cpp') diff --git a/linden/indra/newview/llpaneldirplaces.cpp b/linden/indra/newview/llpaneldirplaces.cpp index 3e79ec0..3980fb4 100644 --- a/linden/indra/newview/llpaneldirplaces.cpp +++ b/linden/indra/newview/llpaneldirplaces.cpp @@ -33,161 +33,37 @@ #include "llpaneldirplaces.h" -// linden library includes -#include "llfontgl.h" -#include "message.h" -#include "lldir.h" -#include "llparcel.h" -#include "llregionflags.h" -#include "llqueryflags.h" - -// viewer project includes -#include "llagent.h" -#include "llbutton.h" -#include "llcheckboxctrl.h" -#include "llcombobox.h" -#include "llfloaterdirectory.h" -#include "lllineeditor.h" -#include "llviewerwindow.h" -#include "llpaneldirbrowser.h" -#include "lltextbox.h" -#include "lluiconstants.h" -#include "llviewercontrol.h" -#include "llviewermessage.h" -#include "llworldmap.h" +#include "llwebbrowserctrl.h" LLPanelDirPlaces::LLPanelDirPlaces(const std::string& name, LLFloaterDirectory* floater) - : LLPanelDirBrowser(name, floater) -{ - mMinSearchChars = 3; -} - -BOOL LLPanelDirPlaces::postBuild() -{ - LLPanelDirBrowser::postBuild(); - - childSetKeystrokeCallback("name", &LLPanelDirBrowser::onKeystrokeName, this); - - childSetAction("Search", &LLPanelDirBrowser::onClickSearchCore, this); - childDisable("Search"); - - mCurrentSortColumn = "dwell"; - mCurrentSortAscending = FALSE; - - // Don't prepopulate the places list, as it hurts the database as of 2006-12-04. JC - // initialQuery(); - - return TRUE; -} - -LLPanelDirPlaces::~LLPanelDirPlaces() +: LLPanelDirFind(name, floater, "places_browser") { - // Children all cleaned up by default view destructor. } -// virtual -void LLPanelDirPlaces::draw() -{ - // You only have a choice if you are mature - childSetVisible("incmature", !gAgent.isTeen()); - childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); - - LLPanelDirBrowser::draw(); -} - -// virtual -void LLPanelDirPlaces::performQuery() +void LLPanelDirPlaces::search(const std::string& search_text) { - LLString place_name = childGetValue("name").asString(); - if (place_name.length() < mMinSearchChars) + if (!search_text.empty()) { - return; - } - - // "hi " is three chars but not a long-enough search - std::string query_string = place_name; - LLString::trim( query_string ); - bool query_was_filtered = (query_string != place_name); - - // possible we threw away all the short words in the query so check length - if ( query_string.length() < mMinSearchChars ) - { - gViewerWindow->alertXml("SeachFilteredOnShortWordsEmpty"); - return; - }; - - // if we filtered something out, display a popup - if ( query_was_filtered ) - { - LLString::format_map_t args; - args["[FINALQUERY]"] = query_string; - gViewerWindow->alertXml("SeachFilteredOnShortWords", args); - }; - - LLString catstring = childGetValue("Category").asString(); - - // Because LLParcel::C_ANY is -1, must do special check - S32 category = 0; - if (catstring == "any") - { - category = LLParcel::C_ANY; + bool mature = childGetValue( "mature_check" ).asBoolean(); + std::string selected_collection = "Places"; + std::string url = buildSearchURL(search_text, selected_collection, mature); + if (mWebBrowser) + { + mWebBrowser->navigateTo(url); + } } else { - category = LLParcel::getCategoryFromString(catstring.c_str()); + // empty search text + navigateToDefaultPage(); } - BOOL pg_only = !gSavedSettings.getBOOL("ShowMatureSims") - || gAgent.isTeen(); - - queryCore(query_string, category, pg_only); + childSetText("search_editor", search_text); } -void LLPanelDirPlaces::initialQuery() -{ - // All Linden locations in PG/Mature sims, any name. - const BOOL pg_only = FALSE; - queryCore("", LLParcel::C_LINDEN, pg_only); -} - -void LLPanelDirPlaces::queryCore(const LLString& name, - S32 category, - BOOL pg_only) +LLPanelDirPlaces::~LLPanelDirPlaces() { - setupNewSearch(); - - // send the message - U32 flags = 0x0; - - if (pg_only) - { - flags |= DFQ_PG_PARCELS_ONLY; - } - -// JC: Sorting by dwell severely impacts the performance of the query. -// Instead of sorting on the dataserver, we sort locally once the results -// are received. -// IW: Re-enabled dwell sort based on new 3-character minimum description -// Hopefully we'll move to next-gen Find before this becomes a big problem - - flags |= DFQ_DWELL_SORT; - - LLMessageSystem* msg = gMessageSystem; - - msg->newMessage("DirPlacesQuery"); - msg->nextBlock("AgentData"); - msg->addUUID("AgentID", gAgent.getID()); - msg->addUUID("SessionID", gAgent.getSessionID()); - msg->nextBlock("QueryData"); - msg->addUUID("QueryID", getSearchID()); - msg->addString("QueryText", name); - msg->addU32("QueryFlags", flags); - msg->addS8("Category", (S8)category); - // No longer support queries by region name, too many regions - // for combobox, no easy way to do autocomplete. JC - msg->addString("SimName", ""); - msg->addS32Fast(_PREHASH_QueryStart,mSearchStart); - gAgent.sendReliableMessage(); + // Children all cleaned up by default view destructor. } -- cgit v1.1