summaryrefslogtreecommitdiff
path: root/indra/llinventory
diff options
context:
space:
mode:
authorbrad kittenbrink <brad@lindenlab.com>2009-06-29 15:52:24 -0400
committerbrad kittenbrink <brad@lindenlab.com>2009-06-29 15:52:24 -0400
commit50c40dd72e7a36af91cb84395a4a88b984b219aa (patch)
treea29dccea6bfaac6d76e1cef4ae0579295ca6c3b2 /indra/llinventory
parent6da0725c3b75c24855537df877672595de8e56e6 (diff)
parent87918b4bfe27ddcba2e4a44323ebc85e509a92fc (diff)
Merged my latest eventhost changes with tip/latest viewer-2.0.0-3.
Diffstat (limited to 'indra/llinventory')
-rw-r--r--indra/llinventory/llinventory.cpp27
-rw-r--r--indra/llinventory/llinventory.h22
-rw-r--r--indra/llinventory/llinventorytype.cpp4
3 files changed, 43 insertions, 10 deletions
diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp
index adc80b2ed3..597e19e7ea 100644
--- a/indra/llinventory/llinventory.cpp
+++ b/indra/llinventory/llinventory.cpp
@@ -126,6 +126,20 @@ const std::string& LLInventoryObject::getName() const
return mName;
}
+// To bypass linked items, since llviewerinventory's getType
+// will return the linked-to item's type instead of this object's type.
+LLAssetType::EType LLInventoryObject::getActualType() const
+{
+ return mType;
+}
+
+// See LLInventoryItem override.
+// virtual
+const LLUUID& LLInventoryObject::getLinkedUUID() const
+{
+ return mUUID;
+}
+
LLAssetType::EType LLInventoryObject::getType() const
{
return mType;
@@ -333,6 +347,19 @@ void LLInventoryItem::copyItem(const LLInventoryItem* other)
mCreationDate = other->mCreationDate;
}
+// If this is a linked item, then the UUID of the base object is
+// this item's assetID.
+// virtual
+const LLUUID& LLInventoryItem::getLinkedUUID() const
+{
+ if (LLAssetType::lookupIsLinkType(getActualType()))
+ {
+ return mAssetUUID;
+ }
+
+ return LLInventoryObject::getLinkedUUID();
+}
+
const LLPermissions& LLInventoryItem::getPermissions() const
{
return mPermissions;
diff --git a/indra/llinventory/llinventory.h b/indra/llinventory/llinventory.h
index 3f79cedc23..ce64317f48 100644
--- a/indra/llinventory/llinventory.h
+++ b/indra/llinventory/llinventory.h
@@ -92,9 +92,12 @@ public:
// accessors
virtual const LLUUID& getUUID() const;
const LLUUID& getParentUUID() const;
+ virtual const LLUUID& getLinkedUUID() const; // get the inventoryID that this item points to, else this item's inventoryID
+
virtual const std::string& getName() const;
virtual LLAssetType::EType getType() const;
- LLAssetType::EType getActualType() const { return mType; }
+ LLAssetType::EType getActualType() const; // bypasses indirection for linked items
+
// mutators - will not call updateServer();
void setUUID(const LLUUID& new_uuid);
void rename(const std::string& new_name);
@@ -240,15 +243,16 @@ public:
void generateUUID() { mUUID.generate(); }
// accessors
- const LLPermissions& getPermissions() const;
- const LLUUID& getCreatorUUID() const;
+ virtual const LLUUID& getLinkedUUID() const;
+ virtual const LLPermissions& getPermissions() const;
+ virtual const LLUUID& getCreatorUUID() const;
virtual const LLUUID& getAssetUUID() const;
- const std::string& getDescription() const;
- const LLSaleInfo& getSaleInfo() const;
- LLInventoryType::EType getInventoryType() const;
- U32 getFlags() const;
- time_t getCreationDate() const;
- U32 getCRC32() const; // really more of a checksum.
+ virtual const std::string& getDescription() const;
+ virtual const LLSaleInfo& getSaleInfo() const;
+ virtual LLInventoryType::EType getInventoryType() const;
+ virtual U32 getFlags() const;
+ virtual time_t getCreationDate() const;
+ virtual U32 getCRC32() const; // really more of a checksum.
// mutators - will not call updateServer(), and will never fail
// (though it may correct to sane values)
diff --git a/indra/llinventory/llinventorytype.cpp b/indra/llinventory/llinventorytype.cpp
index ff9c698943..2dc229226f 100644
--- a/indra/llinventory/llinventorytype.cpp
+++ b/indra/llinventory/llinventorytype.cpp
@@ -113,8 +113,10 @@ DEFAULT_ASSET_FOR_INV_TYPE[LLAssetType::AT_COUNT] =
LLInventoryType::IT_NONE, // AT_IMAGE_JPEG
LLInventoryType::IT_ANIMATION, // AT_ANIMATION
LLInventoryType::IT_GESTURE, // AT_GESTURE
- LLInventoryType::IT_NONE, // AT_LINK
+ LLInventoryType::IT_NONE, // AT_SIMSTATE
LLInventoryType::IT_FAVORITE, // AT_FAVORITE
+ LLInventoryType::IT_NONE, // AT_LINK
+ LLInventoryType::IT_NONE, // AT_LINK_FOLDER
};
InventoryEntry::InventoryEntry(const std::string &name,