From f2da2c00a8c290cfb98adf5f53745a0108865ce9 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Mon, 30 Nov 2009 10:54:48 -0500 Subject: EXT-2859 : Landmark filters aren't explicitly fetching inventory recursively EXT-2815 : Create ability to selectively apply a filter LandmarkSP filters are now started explicitly whenever the Library / My Inventory accordion panels are opened. --HG-- branch : avatar-pipeline --- indra/newview/llinventorypanel.h | 1 + indra/newview/llpanellandmarks.cpp | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index fd23b375fa..fd83729630 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -192,6 +192,7 @@ protected: //-------------------------------------------------------------------- public: BOOL getIsViewsInitialized() const { return mViewsInitialized; } + const LLUUID& getStartFolderID() const { return mStartFolderID; } private: // Builds the UI. Call this once the inventory is usable. void initializeViews(); diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index e24fa14e1e..003241e98e 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -264,11 +264,14 @@ void LLLandmarksPanel::updateFilteredAccordions() accordion_tab = *iter; inventory_list = dynamic_cast (accordion_tab->getAccordionView()); if (NULL == inventory_list) continue; + // This doesn't seem to work correctly. Disabling for now. -Seraph + /* LLFolderView* fv = inventory_list->getRootFolder(); - bool has_descendants = fv->hasFilteredDescendants(); accordion_tab->setVisible(has_descendants); + */ + accordion_tab->setVisible(TRUE); } // we have to arrange accordion tabs for cases when filter string is less restrictive but @@ -457,6 +460,19 @@ void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLInvento mCurrentSelectedList = NULL; updateVerbs(); } + + // Start background fetch, mostly for My Inventory and Library + if (expanded) + { + const LLUUID &cat_id = inventory_list->getStartFolderID(); + // Just because the category itself has been fetched, doesn't mean its child folders have. + /* + if (!gInventory.isCategoryComplete(cat_id)) + */ + { + gInventory.startBackgroundFetch(cat_id); + } + } } void LLLandmarksPanel::deselectOtherThan(const LLInventorySubTreePanel* inventory_list) -- cgit v1.2.3