fixing merge conflicts
parent
c0457d18fd
commit
23e2dcce9d
|
|
@ -258,20 +258,19 @@ BOOL LLFolderViewItem::passedFilter(S32 filter_generation)
|
|||
|
||||
BOOL LLFolderViewItem::isPotentiallyVisible(S32 filter_generation)
|
||||
{
|
||||
// Item should be visible if:
|
||||
// 1. item passed current filter
|
||||
// 2. item was updated (gen < 0) but has descendants that passed filter
|
||||
// 3. item was recently updated and was visible before update
|
||||
|
||||
if (filter_generation < 0)
|
||||
{
|
||||
filter_generation = getFolderViewModel()->getFilter().getFirstSuccessGeneration();
|
||||
}
|
||||
LLFolderViewModelItem* model = getViewModelItem();
|
||||
if (model->getLastFilterGeneration() < 0 && !getFolderViewModel()->getFilter().isModified())
|
||||
BOOL visible = model->passedFilter(filter_generation);
|
||||
if (model->getMarkedDirtyGeneration() >= filter_generation)
|
||||
{
|
||||
return model->descendantsPassedFilter(filter_generation) || getVisible();
|
||||
}
|
||||
else
|
||||
{
|
||||
return model->passedFilter(filter_generation);
|
||||
// unsure visibility state
|
||||
// retaining previous visibility until item is updated or filter generation changes
|
||||
visible |= getVisible();
|
||||
}
|
||||
return visible;
|
||||
}
|
||||
|
||||
void LLFolderViewItem::refresh()
|
||||
|
|
|
|||
|
|
@ -129,13 +129,18 @@ void LLFolderViewModelItemInventory::requestSort()
|
|||
|
||||
void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_generation, std::string::size_type string_offset, std::string::size_type string_size)
|
||||
{
|
||||
bool generation_skip = mMarkedDirtyGeneration >= 0
|
||||
&& mPrevPassedAllFilters
|
||||
&& mMarkedDirtyGeneration < mRootViewModel.getFilter().getFirstSuccessGeneration();
|
||||
LLFolderViewModelItemCommon::setPassedFilter(passed, filter_generation, string_offset, string_size);
|
||||
bool before = mPrevPassedAllFilters;
|
||||
mPrevPassedAllFilters = passedFilter(filter_generation);
|
||||
|
||||
if (before != mPrevPassedAllFilters)
|
||||
if (before != mPrevPassedAllFilters || generation_skip)
|
||||
{
|
||||
// Need to rearrange the folder if the filtered state of the item changed
|
||||
// Need to rearrange the folder if the filtered state of the item changed,
|
||||
// previously passed item skipped filter generation changes while being dirty
|
||||
// or previously passed not yet filtered item was marked dirty
|
||||
LLFolderViewFolder* parent_folder = mFolderViewItem->getParentFolder();
|
||||
if (parent_folder)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue