diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2017-10-20 15:41:38 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2017-10-20 15:41:38 +0300 | 
| commit | 628e28639d4c92cd9e70d4441ec737d9538eaeec (patch) | |
| tree | ebec88bdd6d6cc5d0dbecec2b8856042257c8184 /indra/newview | |
| parent | 9a34791488b0d2fc68fc7bc09f0685fe42557ea4 (diff) | |
MAINT-7906 Inventory filter fix
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llfolderviewmodelinventory.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.h | 3 | 
4 files changed, 9 insertions, 26 deletions
| diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp index d53cf2a9a3..b93dfaf061 100644 --- a/indra/newview/llfolderviewmodelinventory.cpp +++ b/indra/newview/llfolderviewmodelinventory.cpp @@ -232,8 +232,9 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)  		return true;  	}       */ -     -	const bool passed_filter_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY) ? filter.checkFolder(this) : true; + +	bool is_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY); +	const bool passed_filter_folder = is_folder ? filter.checkFolder(this) : true;  	setPassedFolderFilter(passed_filter_folder, filter_generation);  	bool continue_filtering = true; @@ -258,7 +259,7 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)  	{          // This is where filter check on the item done (CHUI-849)  		const bool passed_filter = filter.check(this); -		if (passed_filter && mChildren.empty()) // Update the latest filter generation for empty folders +		if (passed_filter && mChildren.empty() && is_folder) // Update the latest filter generation for empty folders  		{  			LLFolderViewModelItemInventory* view_model = this;  			while (view_model && view_model->mMostFilteredDescendantGeneration < filter_generation) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 8f93796ec7..d610b920b9 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -495,6 +495,11 @@ void LLInventoryPanel::modelChanged(U32 mask)  					view_item->refresh();  				} +				LLFolderViewFolder* parent = view_item->getParentFolder(); +				if(parent) +				{ +					parent->getViewModelItem()->dirtyDescendantsFilter(); +				}  			}  		} diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 7d4a05565c..f771a027e0 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -29,7 +29,6 @@  #include "llagent.h"  #include "llagentcamera.h" -#include "llagentwearables.h"  #include "llavataractions.h"  #include "llcheckboxctrl.h"  #include "llcombobox.h" @@ -180,8 +179,6 @@ BOOL LLPanelMainInventory::postBuild()  		mWornItemsPanel->setFilterLinks(LLInventoryFilter::FILTERLINK_EXCLUDE_LINKS);  		mWornItemsPanel->getFilter().markDefault();  		mWornItemsPanel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, mWornItemsPanel, _1, _2)); - -		gAgentWearables.addLoadedCallback(boost::bind(&LLPanelMainInventory::updateWornItemsPanel, this));  	}  	mSearchTypeCombo  = getChild<LLComboBox>("search_type");  	if(mSearchTypeCombo) @@ -339,18 +336,6 @@ BOOL LLPanelMainInventory::handleKeyHere(KEY key, MASK mask)  } -void LLPanelMainInventory::updateWornItemsPanel() -{ -	if (!mUpdateWornTimer.getStarted()) -	{ -		mUpdateWornTimer.start(); -	} -	else -	{ -		mUpdateWornTimer.reset(); -	} -} -  //----------------------------------------------------------------------------  // menu callbacks @@ -685,11 +670,6 @@ void LLPanelMainInventory::draw()  		mActivePanel->setSortOrder(order);  		mResortActivePanel = false;  	} -	if (mWornItemsPanel && mUpdateWornTimer.getStarted() && (mUpdateWornTimer.getElapsedTimeF32() > 1)) -	{ -		mUpdateWornTimer.stop(); -		mWornItemsPanel->getFilter().setModified(LLFolderViewFilter::FILTER_MORE_RESTRICTIVE); -	}  	LLPanel::draw();  	updateItemcountText();  } diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index a309b3619c..5300a2c023 100644 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -112,8 +112,6 @@ protected:  	const std::string getFilterSubString();  	void setFilterSubString(const std::string& string); -	void updateWornItemsPanel(); -  	// menu callbacks  	void doToSelected(const LLSD& userdata);  	void closeAllFolders(); @@ -144,7 +142,6 @@ private:  	S32							mItemCount;  	std::string 				mItemCountString;  	LLComboBox*					mSearchTypeCombo; -	LLFrameTimer				mUpdateWornTimer; | 
