summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorypanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventorypanel.cpp')
-rw-r--r--indra/newview/llinventorypanel.cpp201
1 files changed, 1 insertions, 200 deletions
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index e4cabcc988..b5fcf364dd 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -56,58 +56,6 @@ const std::string LLInventoryPanel::RECENTITEMS_SORT_ORDER = std::string("Recent
const std::string LLInventoryPanel::INHERIT_SORT_ORDER = std::string("");
static const LLInventoryFVBridgeBuilder INVENTORY_BRIDGE_BUILDER;
-//
-// class LLFolderViewModelInventory
-//
-static LLFastTimer::DeclareTimer FTM_INVENTORY_SORT("Sort");
-
-void LLFolderViewModelInventory::sort( LLFolderViewFolder* folder )
-{
- LLFastTimer _(FTM_INVENTORY_SORT);
-
- if (!needsSort(folder->getViewModelItem())) return;
-
- LLFolderViewModelItemInventory* modelp = static_cast<LLFolderViewModelItemInventory*>(folder->getViewModelItem());
- if (modelp->getUUID().isNull()) return;
-
- for (std::list<LLFolderViewFolder*>::iterator it = folder->getFoldersBegin(), end_it = folder->getFoldersEnd();
- it != end_it;
- ++it)
- {
- LLFolderViewFolder* child_folderp = *it;
- sort(child_folderp);
-
- if (child_folderp->getFoldersCount() > 0)
- {
- time_t most_recent_folder_time =
- static_cast<LLFolderViewModelItemInventory*>((*child_folderp->getFoldersBegin())->getViewModelItem())->getCreationDate();
- LLFolderViewModelItemInventory* modelp = static_cast<LLFolderViewModelItemInventory*>(child_folderp->getViewModelItem());
- if (most_recent_folder_time > modelp->getCreationDate())
- {
- modelp->setCreationDate(most_recent_folder_time);
- }
- }
- if (child_folderp->getItemsCount() > 0)
- {
- time_t most_recent_item_time =
- static_cast<LLFolderViewModelItemInventory*>((*child_folderp->getItemsBegin())->getViewModelItem())->getCreationDate();
-
- LLFolderViewModelItemInventory* modelp = static_cast<LLFolderViewModelItemInventory*>(child_folderp->getViewModelItem());
- if (most_recent_item_time > modelp->getCreationDate())
- {
- modelp->setCreationDate(most_recent_item_time);
- }
- }
- }
- base_t::sort(folder);
-}
-
-bool LLFolderViewModelInventory::contentsReady()
-{
- return !LLInventoryModelBackgroundFetch::instance().folderFetchActive();
-}
-
-
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLInventoryPanelObserver
//
@@ -580,8 +528,8 @@ void LLInventoryPanel::modelChanged(U32 mask)
else if (!model_item && view_item)
{
// Remove the item's UI.
- view_item->destroyView();
removeItemID(viewmodel_item->getUUID());
+ view_item->destroyView();
}
}
}
@@ -1344,150 +1292,3 @@ LLInventoryRecentItemsPanel::LLInventoryRecentItemsPanel( const Params& params)
// replace bridge builder to have necessary View bridges.
mInvFVBridgeBuilder = &RECENT_ITEMS_BUILDER;
}
-
-
-void LLFolderViewModelItemInventory::requestSort()
-{
- LLFolderViewModelItemCommon::requestSort();
- if (mRootViewModel->getSorter().isByDate())
- {
- // sort by date potentially affects parent folders which use a date
- // derived from newest item in them
- if (mParent)
- {
- mParent->requestSort();
- }
- }
-}
-
-bool LLFolderViewModelItemInventory::potentiallyVisible()
-{
- return passedFilter() // we've passed the filter
- || getLastFilterGeneration() < mRootViewModel->getFilter()->getFirstSuccessGeneration() // or we don't know yet
- || descendantsPassedFilter();
-}
-
-bool LLFolderViewModelItemInventory::passedFilter(S32 filter_generation)
-{
- if (filter_generation < 0) filter_generation = mRootViewModel->getFilter()->getFirstSuccessGeneration();
- return mPassedFolderFilter
- && mLastFilterGeneration >= filter_generation
- && (mPassedFilter || descendantsPassedFilter(filter_generation));
-}
-
-bool LLFolderViewModelItemInventory::descendantsPassedFilter(S32 filter_generation)
-{
- if (filter_generation < 0) filter_generation = mRootViewModel->getFilter()->getFirstSuccessGeneration();
- return mMostFilteredDescendantGeneration >= filter_generation;
-}
-
-void LLFolderViewModelItemInventory::setPassedFilter(bool passed, bool passed_folder, S32 filter_generation)
-{
- mPassedFilter = passed;
- mPassedFolderFilter = passed_folder;
- mLastFilterGeneration = filter_generation;
-}
-
-bool LLFolderViewModelItemInventory::filterChildItem( LLFolderViewModelItem* item, LLFolderViewFilter& filter )
-{
- bool passed_filter_before = item->passedFilter();
- S32 filter_generation = filter.getCurrentGeneration();
- S32 must_pass_generation = filter.getFirstRequiredGeneration();
- bool changed = false;
-
- // mMostFilteredDescendantGeneration might have been reset
- // in which case we need to update it even for folders that
- // don't need to be filtered anymore
- if (item->getLastFilterGeneration() < filter_generation)
- {
- if (item->getLastFilterGeneration() >= must_pass_generation &&
- !item->passedFilter(must_pass_generation))
- {
- // failed to pass an earlier filter that was a subset of the current one
- // go ahead and flag this item as done
- item->setPassedFilter(false, false, filter_generation);
- }
- else
- {
- changed |= item->filter( filter );
- }
- }
-
- // track latest generation to pass any child items
- if (item->passedFilter())
- {
- LLFolderViewModelItemInventory* view_model = this;
-
- while(view_model && view_model->mMostFilteredDescendantGeneration < filter_generation)
- {
- view_model->mMostFilteredDescendantGeneration = filter_generation;
- view_model = static_cast<LLFolderViewModelItemInventory*>(view_model->mParent);
- }
- }
-
- changed |= (item->passedFilter() != passed_filter_before);
- if (changed)
- {
- //TODO RN: ensure this still happens, but without dependency on folderview
- LLFolderViewFolder* parent = mFolderViewItem->getParentFolder();
- if (parent) parent->requestArrange();
- }
-
- return changed;
-}
-
-bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
-{
- bool changed = false;
-
- if(!mChildren.empty()
- && (getLastFilterGeneration() < filter.getFirstRequiredGeneration() // haven't checked descendants against minimum required generation to pass
- || descendantsPassedFilter(filter.getFirstRequiredGeneration()))) // or at least one descendant has passed the minimum requirement
- {
- // now query children
- for (child_list_t::iterator iter = mChildren.begin();
- iter != mChildren.end() && filter.getFilterCount() > 0;
- ++iter)
- {
- changed |= filterChildItem((*iter), filter);
- }
- }
-
- // if we didn't use all filter iterations
- // that means we filtered all of our descendants
- // so filter ourselves now
- if (filter.getFilterCount() > 0)
- {
- const BOOL previous_passed_filter = mPassedFilter;
- const BOOL passed_filter = filter.check(this);
- const BOOL passed_filter_folder = (getInventoryType() == LLInventoryType::IT_CATEGORY)
- ? filter.checkFolder(this)
- : true;
-
- // If our visibility will change as a result of this filter, then
- // we need to be rearranged in our parent folder
- LLFolderViewFolder* parent_folder = mFolderViewItem->getParentFolder();
- if (parent_folder && passed_filter != previous_passed_filter)
- {
- parent_folder->requestArrange();
- }
-
- setPassedFilter(passed_filter, passed_filter_folder, filter.getCurrentGeneration());
- //TODO RN: create interface for string highlighting
- //mStringMatchOffset = filter.getStringMatchOffset(this);
- filter.decrementFilterCount();
- }
- return changed;
-}
-
-LLFolderViewModelInventory* LLInventoryPanel::getFolderViewModel()
-{
- return &mInventoryViewModel;
-}
-
-
-const LLFolderViewModelInventory* LLInventoryPanel::getFolderViewModel() const
-{
- return &mInventoryViewModel;
-}
-