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