From 2a77ef80cec7cacb6c812eb358caef6a73332289 Mon Sep 17 00:00:00 2001
From: Mike Antipov <mantipov@productengine.com>
Date: Wed, 3 Feb 2010 14:18:06 +0200
Subject: Backed out changeset 5add97e5b6cf Related to major bug EXT-3985 [BSI]
 Landmarks created in Viewer 2.0 show up with 1@ in Viewer 1.23.x Removed
 auto-cleanup patch to repair Lanmarks in Favorite bar (remove LM Sort
 prefixes)

--HG--
branch : product-engine
---
 indra/newview/llinventorymodel.cpp | 134 -------------------------------------
 1 file changed, 134 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 9e96bbc55f..961f7adc0a 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -142,105 +142,6 @@ bool LLCanCache::operator()(LLInventoryCategory* cat, LLInventoryItem* item)
 	return rv;
 }
 
-/*
-This namespace contains a functionality to remove LM prefixes were used to store sort order of
-Favorite Landmarks in landmarks' names.
-Once being in Favorites folder LM inventory Item has such prefix.
-Due to another solution is implemented in EXT-3985 these prefixes should be removed.
-
-*NOTE: It will be unnecessary after the first successful session in viewer 2.0.
-Can be removed before public release.
-
-Implementation details:
-At the first run with this patch it patches all cached landmarks: removes LM sort prefixes and
-updates them on the viewer and server sides.
-Also it calls fetching agent's inventory to process not yet loaded landmarks too.
-If fetching is successfully done it will store special per-agent empty file-marker
-in the user temporary folder (where cached inventory is loaded) while caching agent's inventory.
-After that in will not affect the viewer until cached marker is removed.
-*/
-namespace LMSortPrefix
-{
-	bool cleanup_done = false;
-	const std::string getMarkerPath()
-	{
-		std::string path(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, gAgentID.asString()));
-		std::string marker_filename = llformat("%s-lm_prefix_marker", path.c_str());
-
-		return marker_filename;
-	}
-	bool wasClean()
-	{
-		static bool was_clean = false;
-		static bool already_init = false;
-		if (already_init) return was_clean;
-
-		already_init = true;
-		std::string path_to_marker = getMarkerPath();
-		was_clean = LLFile::isfile(path_to_marker);
-
-		return was_clean;
-	}
-
-	void setLandmarksWereCleaned()
-	{
-		if (cleanup_done)
-		{
-			std::string path_to_marker = getMarkerPath();
-			LLFILE* file = LLFile::fopen(path_to_marker, "w");
-			if(!file)
-			{
-				llwarns << "unable to save marker that LM prefixes were removed: " << path_to_marker << llendl;
-				return;
-			}
-
-			fclose(file);
-		}
-	}
-
-	void removePrefix(LLPointer<LLViewerInventoryItem> inv_item)
-	{
-		if (wasClean())
-		{
-			LL_INFOS_ONCE("") << "Inventory was cleaned for this avatar. Patch can be removed." << LL_ENDL;
-			return;
-		}
-
-		if (LLInventoryType::IT_LANDMARK != inv_item->getInventoryType()) return;
-
-		std::string old_name = inv_item->getName();
-
-		S32 sort_field = -1;
-		std::string display_name;
-		BOOL exists = LLViewerInventoryItem::extractSortFieldAndDisplayName(old_name, &sort_field, &display_name);
-		if (exists && sort_field != -1)
-		{
-			llinfos << "Removing Landmark sort field and separator for: " << old_name << " | " << inv_item->getUUID() << llendl;
-			LLUUID parent_uuid = inv_item->getParentUUID();
-			if (gInventory.getCategory(parent_uuid))
-			{
-				llinfos << "parent folder is: " << gInventory.getCategory(parent_uuid)->getName() << llendl;
-			}
-
-
-			// mark item completed to avoid error while copying and updating server
-			inv_item->setComplete(TRUE);
-			LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item);
-			new_item->rename(display_name);
-			gInventory.updateItem(new_item);
-			new_item->updateServer(FALSE);
-
-			gInventory.notifyObservers();
-		}
-	}
-
-	void completeCleanup()
-	{
-		// background fetch is completed. can save marker
-		cleanup_done = true;
-	}
-}
-
 ///----------------------------------------------------------------------------
 /// Class LLInventoryModel
 ///----------------------------------------------------------------------------
@@ -1835,8 +1736,6 @@ void LLInventoryModel::stopBackgroundFetch()
 		gIdleCallbacks.deleteFunction(&LLInventoryModel::backgroundFetch, NULL);
 		sBulkFetchCount=0;
 		sMinTimeBetweenFetches=0.0f;
-
-		LMSortPrefix::completeCleanup();
 	}
 }
 
@@ -1983,13 +1882,6 @@ void LLInventoryModel::cache(
 	const LLUUID& parent_folder_id,
 	const LLUUID& agent_id)
 {
-	if (getRootFolderID() == parent_folder_id)
-	{
-		// *TODO: mantipov: can be removed before public release, EXT-3985
-		//save marker to avoid fetching inventory on future sessions
-		LMSortPrefix::setLandmarksWereCleaned();
-	}
-
 	lldebugs << "Caching " << parent_folder_id << " for " << agent_id
 			 << llendl;
 	LLViewerInventoryCategory* root_cat = getCategory(parent_folder_id);
@@ -2800,28 +2692,6 @@ void LLInventoryModel::buildParentChildMap()
 			// The inv tree is built.
 			mIsAgentInvUsable = true;
 
-			{// *TODO: mantipov: can be removed before public release, EXT-3985
-				/*
-				*HACK: mantipov: to cleanup landmarks were marked with sort index prefix in name.
-				Is necessary to be called once per account after EXT-3985 is implemented.
-				So, let fetch agent's inventory, processing will be done in processInventoryDescendents()
-				Should be removed before public release.
-				*/
-				if (!LMSortPrefix::wasClean())
-				{
-					cat_array_t cats;
-					item_array_t items;
-					collectDescendents(agent_inv_root_id, cats, items, INCLUDE_TRASH);
-
-					for (item_array_t::const_iterator it= items.begin(); it != items.end(); ++it)
-					{
-						LMSortPrefix::removePrefix(*it);
-					}
-
-					gInventory.startBackgroundFetch(agent_inv_root_id);
-				}
-			}
-
 			llinfos << "Inventory initialized, notifying observers" << llendl;
 			addChangedMask(LLInventoryObserver::ALL, LLUUID::null);
 			notifyObservers();
@@ -3587,10 +3457,6 @@ void LLInventoryModel::processInventoryDescendents(LLMessageSystem* msg,void**)
 			continue;
 		}
 		gInventory.updateItem(titem);
-
-		{// *TODO: mantipov: can be removed before public release, EXT-3985
-			LMSortPrefix::removePrefix(titem);
-		}
 	}
 
 	// set version and descendentcount according to message.
-- 
cgit v1.2.3