diff options
| author | Leslie Linden <leslie@lindenlab.com> | 2011-12-15 14:26:42 -0800 |
|---|---|---|
| committer | Leslie Linden <leslie@lindenlab.com> | 2011-12-15 14:26:42 -0800 |
| commit | 2e564abcd682c348de3a2d3a50ef58df545c143b (patch) | |
| tree | 067e0eda0024337a366bbe367b83f6fe2669ff0a /indra/newview/llinventorymodel.cpp | |
| parent | 90e6336b27ae962052a68ec17205e7b1f87bdb4e (diff) | |
EXP-1730 FIX
EXP-1731 FIX
EXP-1735 FIX
EXP-1736 FIX
EXP-1737 FIX
EXP-1738 FIX
EXP-1739 FIX
* Users can no longer drag and drop items to the outbox from in world, notecards or the library.
* Drag and drop now blocks the creation of hierarchies that are too deep, too many folders or contain too many items.
* Settings now exist to specify drag and drop limitations to the outbox, named:
InventoryOutboxMaxFolderDepth (4)
InventoryOutboxMaxFolderCount (20)
InventoryOutboxMaxItemCount (200)
Diffstat (limited to 'indra/newview/llinventorymodel.cpp')
| -rw-r--r-- | indra/newview/llinventorymodel.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index dc25689fa3..2fb9c53857 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -217,6 +217,38 @@ const LLViewerInventoryCategory *LLInventoryModel::getFirstNondefaultParent(cons return NULL; } +// +// Search up the parent chain until we get to the specified parent, then return the first child category under it +// +const LLViewerInventoryCategory* LLInventoryModel::getFirstDescendantOf(const LLUUID& master_parent_id, const LLUUID& obj_id) const +{ + if (master_parent_id == obj_id) + { + return NULL; + } + + const LLViewerInventoryCategory* current_cat = getCategory(obj_id); + + if (current_cat == NULL) + { + current_cat = getCategory(getObject(obj_id)->getParentUUID()); + } + + while (current_cat != NULL) + { + const LLUUID& current_parent_id = current_cat->getParentUUID(); + + if (current_parent_id == master_parent_id) + { + return current_cat; + } + + current_cat = getCategory(current_parent_id); + } + + return NULL; +} + // Get the object by id. Returns NULL if not found. LLInventoryObject* LLInventoryModel::getObject(const LLUUID& id) const { |
