diff options
| author | Dmitry Zaporozhan <dzaporozhan@productengine.com> | 2009-11-19 12:19:11 +0200 |
|---|---|---|
| committer | Dmitry Zaporozhan <dzaporozhan@productengine.com> | 2009-11-19 12:19:11 +0200 |
| commit | 58439da4c696f8dd6002e6399e4563cbda251a1e (patch) | |
| tree | 261b81d6f3492b020852a03f8b358aabfd040836 /indra/newview/llinventoryfilter.cpp | |
| parent | da2a0cfceb9fbc7c66f23f8820309f36b6629530 (diff) | |
| parent | 88cce61b09d225df0bcd8aab9dbd2c5a01ee7e19 (diff) | |
Merge
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview/llinventoryfilter.cpp')
| -rw-r--r-- | indra/newview/llinventoryfilter.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 7ec8d3d003..085c96c93d 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -100,13 +100,18 @@ BOOL LLInventoryFilter::check(LLFolderViewItem* item) bool passed_type = false; if (mFilterOps.mFilterForCategories) { - if (listener->getInventoryType() == LLInventoryType::IT_CATEGORY) + // Pass if this item is a category of the filter type, or + // if its parent is a category of the filter type. + LLUUID uuid = listener->getUUID(); + if (listener->getInventoryType() != LLInventoryType::IT_CATEGORY) { - LLViewerInventoryCategory *cat = gInventory.getCategory(listener->getUUID()); - if (cat) - { - passed_type |= ((1LL << cat->getPreferredType() & mFilterOps.mFilterTypes) != U64(0)); - } + const LLInventoryObject *obj = gInventory.getObject(uuid); + uuid = obj->getParentUUID(); + } + LLViewerInventoryCategory *cat = gInventory.getCategory(uuid); + if (cat) + { + passed_type |= ((1LL << cat->getPreferredType() & mFilterOps.mFilterTypes) != U64(0)); } } else |
