MAINT-7906 Inventory filter fix

meow-7.2.2
Mnikolenko Productengine 2017-10-20 15:41:38 +03:00
parent 9a34791488
commit 628e28639d
4 changed files with 9 additions and 26 deletions

View File

@ -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)

View File

@ -495,6 +495,11 @@ void LLInventoryPanel::modelChanged(U32 mask)
view_item->refresh();
}
LLFolderViewFolder* parent = view_item->getParentFolder();
if(parent)
{
parent->getViewModelItem()->dirtyDescendantsFilter();
}
}
}

View File

@ -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();
}

View File

@ -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;