From d533a33f4229244405ed0b247fce410513b6c3e9 Mon Sep 17 00:00:00 2001
From: Merov Linden <merov@lindenlab.com>
Date: Mon, 8 Apr 2013 18:59:21 -0700
Subject: [PATCH] CHUI-912 : WIP : Add traces to various aspects of the
 inventory filtering, sorting and arranging (to be deleted)

---
 indra/llui/llfolderview.cpp                  |  2 ++
 indra/llui/llfolderviewitem.cpp              |  6 +++++
 indra/newview/llfolderviewmodelinventory.cpp | 27 +++++++++++++++-----
 indra/newview/llfolderviewmodelinventory.h   |  3 +++
 indra/newview/llinventoryfilter.cpp          |  9 +++++++
 indra/newview/llinventorypanel.cpp           |  3 +++
 6 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index 8feaf654f05..c6868c95382 100644
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -323,6 +323,7 @@ static LLFastTimer::DeclareTimer FTM_FILTER("Filter Folder View");
 
 void LLFolderView::filter( LLFolderViewFilter& filter )
 {
+    //llinfos << "Merov : LLFolderView::filter (fast timed)" << llendl;
 	LLFastTimer t2(FTM_FILTER);
 	filter.setFilterCount(llclamp(LLUI::sSettingGroups["config"]->getS32("FilterItemsPerFrame"), 1, 5000));
 
@@ -1615,6 +1616,7 @@ void LLFolderView::update()
 	{
 		getFolderViewModel()->getFilter().clearModified();
 	}
+    llinfos << "Merov : LLFolderView::update: modified = " << getFolderViewModel()->getFilter().isModified() << ", default = " << getFolderViewModel()->getFilter().isNotDefault() << ", count = " << getFolderViewModel()->getFilter().getFilterCount() << llendl;
 
 	// automatically show matching items, and select first one if we had a selection
 	if (mNeedsAutoSelect)
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index fdb4108afbf..3693920e053 100755
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -274,6 +274,11 @@ void LLFolderViewItem::refresh()
 	}
 
 	mLabelWidthDirty = true;
+    // Merov ??
+    if (vmi.getSearchableName() == "A NOUNOURS")
+    {
+        llinfos << "Merov : LLFolderViewItem::refresh : Dirty filter for NOUNOURS" << llendl;
+    }
 	vmi.dirtyFilter();
 }
 
@@ -951,6 +956,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
 	getRoot()->getFolderViewModel()->sort(this);
 
 	LLFastTimer t2(FTM_ARRANGE);
+    llinfos << "Merov : LLFolderViewFolder::arrange" << llendl;
 
 	// evaluate mHasVisibleChildren
 	mHasVisibleChildren = false;
diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index 586965e5a00..5ad94bfaba9 100644
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
@@ -35,6 +35,13 @@
 // class LLFolderViewModelInventory
 //
 static LLFastTimer::DeclareTimer FTM_INVENTORY_SORT("Sort");
+static S32 sModelInstance = 0;
+
+LLFolderViewModelInventory::LLFolderViewModelInventory()
+{
+    mModelInstance = sModelInstance++;
+    llinfos << "Merov : LLFolderViewModelInventory::LLFolderViewModelInventory, instance = " << mModelInstance << llendl;
+}
 
 bool LLFolderViewModelInventory::startDrag(std::vector<LLFolderViewModelItem*>& items)
 {
@@ -64,6 +71,7 @@ bool LLFolderViewModelInventory::startDrag(std::vector<LLFolderViewModelItem*>&
 void LLFolderViewModelInventory::sort( LLFolderViewFolder* folder )
 {
 	LLFastTimer _(FTM_INVENTORY_SORT);
+    llinfos << "Merov : LLFolderViewModelInventory::sort of instance = " << mModelInstance << llendl;
 
 	if (!needsSort(folder->getViewModelItem())) return;
 
@@ -174,7 +182,16 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
 	const S32 filter_generation = filter.getCurrentGeneration();
 	const S32 must_pass_generation = filter.getFirstRequiredGeneration();
 
-	if (getLastFilterGeneration() >= must_pass_generation 
+    if (getSearchableName() == "A NOUNOURS")
+    {
+        llinfos << "Merov : LLFolderViewModelItemInventory::filter : special NOUNOURS case, filter count = " << filter.getFilterCount() << ", must pass = " << must_pass_generation << ", current = " << filter_generation << ", item last = " << getLastFilterGeneration() << ", folder last = " << getLastFolderFilterGeneration() << llendl;
+    }
+    else
+    {
+        llinfos << "Merov : LLFolderViewModelItemInventory::filter : filter count = " << filter.getFilterCount() << llendl;
+    }
+   
+    if (getLastFilterGeneration() >= must_pass_generation
 		&& getLastFolderFilterGeneration() >= must_pass_generation
 		&& !passedFilter(must_pass_generation))
 	{
@@ -185,14 +202,12 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
 		return true;
 	}
 
-	const bool passed_filter_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY) 
-		? filter.checkFolder(this)
-		: true;
+	const bool passed_filter_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY) ? filter.checkFolder(this) : true;
 	setPassedFolderFilter(passed_filter_folder, filter_generation);
 
-	if(!mChildren.empty()
+	if (!mChildren.empty()
 		&& (getLastFilterGeneration() < must_pass_generation // haven't checked descendants against minimum required generation to pass
-			|| descendantsPassedFilter(must_pass_generation))) // or at least one descendant has passed the minimum requirement
+            || descendantsPassedFilter(must_pass_generation))) // or at least one descendant has passed the minimum requirement
 	{
 		// now query children
 		for (child_list_t::iterator iter = mChildren.begin(), end_iter = mChildren.end();
diff --git a/indra/newview/llfolderviewmodelinventory.h b/indra/newview/llfolderviewmodelinventory.h
index 890d03d1c9c..3201acf91ee 100644
--- a/indra/newview/llfolderviewmodelinventory.h
+++ b/indra/newview/llfolderviewmodelinventory.h
@@ -106,6 +106,8 @@ class LLFolderViewModelInventory
 public:
 	typedef LLFolderViewModel<LLInventorySort,   LLFolderViewModelItemInventory, LLFolderViewModelItemInventory,   LLInventoryFilter> base_t;
 
+    LLFolderViewModelInventory();
+    
 	void setTaskID(const LLUUID& id) {mTaskID = id;}
 
 	void sort(LLFolderViewFolder* folder);
@@ -114,5 +116,6 @@ class LLFolderViewModelInventory
 
 private:
 	LLUUID mTaskID;
+    S32 mModelInstance;
 };
 #endif // LL_LLFOLDERVIEWMODELINVENTORY_H
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 92f2d33073e..eef0adda52f 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -100,6 +100,15 @@ bool LLInventoryFilter::check(const LLFolderViewModelItem* item)
 	passed = passed && checkAgainstFilterLinks(listener);
 	passed = passed && passed_clipboard;
 
+    if (listener->getSearchableName() == "A NOUNOURS")
+    {
+        llinfos << "Merov : LLInventoryFilter::check : Here we go with our special NOUNOURS case, checked for string '" << mFilterSubString << "', passed = " << passed << ", name = " << listener->getSearchableName() << llendl;
+    }
+    else
+    {
+        llinfos << "Merov : LLInventoryFilter::check : checked for string '" << mFilterSubString << "', passed = " << passed << ", name = " << listener->getSearchableName() << llendl;
+    }
+
 	return passed;
 }
 
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index fabcd50c7d8..1430d9fe3a2 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -148,6 +148,8 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
 	mViewsInitialized(false),
 	mInvFVBridgeBuilder(NULL)
 {
+    llinfos << "Merov : LLInventoryPanel::LLInventoryPanel, name = " << getName() << ", label = " << getLabel() << llendl;
+
 	mInvFVBridgeBuilder = &INVENTORY_BRIDGE_BUILDER;
 
 	if (!sColorSetInitialized)
@@ -476,6 +478,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
 		{
 			if (view_item)
 			{
+                // Merov??
 				view_item->refresh();
 			}
 		}
-- 
GitLab