diff options
38 files changed, 414 insertions, 323 deletions
diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index b358f0a013..a563db901a 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -20,6 +20,7 @@ set(llinventory_SOURCE_FILES      llcategory.cpp      lleconomy.cpp      llinventory.cpp +    llinventorydefines.cpp      llinventorytype.cpp      lllandmark.cpp      llnotecard.cpp @@ -36,6 +37,7 @@ set(llinventory_HEADER_FILES      llcategory.h      lleconomy.h      llinventory.h +    llinventorydefines.h      llinventorytype.h      lllandmark.h      llnotecard.h diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp index d665deb605..e123d255c4 100644 --- a/indra/llinventory/llinventory.cpp +++ b/indra/llinventory/llinventory.cpp @@ -31,10 +31,10 @@   */  #include "linden_common.h" -  #include "llinventory.h"  #include "lldbstrings.h" +#include "llinventorydefines.h"  #include "llxorcipher.h"  #include "llsd.h"  #include "message.h" @@ -43,9 +43,8 @@  #include "llsdutil.h"  ///---------------------------------------------------------------------------- -/// exported functions +/// Exported functions  ///---------------------------------------------------------------------------- -  static const std::string INV_ITEM_ID_LABEL("item_id");  static const std::string INV_FOLDER_ID_LABEL("folder_id");  static const std::string INV_PARENT_ID_LABEL("parent_id"); @@ -64,15 +63,14 @@ static const std::string INV_CREATION_DATE_LABEL("created_at");  // key used by agent-inventory-service  static const std::string INV_ASSET_TYPE_LABEL_WS("type_default");  static const std::string INV_FOLDER_ID_LABEL_WS("category_id"); +  ///----------------------------------------------------------------------------  /// Local function declarations, constants, enums, and typedefs  ///---------------------------------------------------------------------------- -  const U8 TASK_INVENTORY_ITEM_KEY = 0;  const U8 TASK_INVENTORY_ASSET_KEY = 1;  const LLUUID MAGIC_ID("3c115e51-04f4-523c-9fa6-98aff1034730");	 -	  ///----------------------------------------------------------------------------  /// Class LLInventoryObject @@ -99,7 +97,7 @@ LLInventoryObject::LLInventoryObject() :  {  } -LLInventoryObject::~LLInventoryObject( void ) +LLInventoryObject::~LLInventoryObject()  {  } @@ -458,11 +456,18 @@ void LLInventoryItem::setCreationDate(time_t creation_date_utc)  	mCreationDate = creation_date_utc;  } +// Currently only used in the Viewer to handle calling cards +// where the creator is actually used to store the target. +void LLInventoryItem::setCreator(const LLUUID& creator) +{  +	mPermissions.setCreator(creator);  +} +  void LLInventoryItem::accumulatePermissionSlamBits(const LLInventoryItem& old_item)  {  	// Remove any pre-existing II_FLAGS_PERM_OVERWRITE_MASK flags   	// because we now detect when they should be set. -	setFlags( old_item.getFlags() | (getFlags() & ~(LLInventoryItem::II_FLAGS_PERM_OVERWRITE_MASK)) ); +	setFlags( old_item.getFlags() | (getFlags() & ~(LLInventoryItemFlags::II_FLAGS_PERM_OVERWRITE_MASK)) );  	// Enforce the PERM_OVERWRITE flags for any masks that are different  	// but only for AT_OBJECT's since that is the only asset type that can  @@ -473,20 +478,20 @@ void LLInventoryItem::accumulatePermissionSlamBits(const LLInventoryItem& old_it  		U32 flags_to_be_set = 0;  		if(old_permissions.getMaskNextOwner() != getPermissions().getMaskNextOwner())  		{ -			flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; +			flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM;  		}  		if(old_permissions.getMaskEveryone() != getPermissions().getMaskEveryone())  		{ -			flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; +			flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE;  		}  		if(old_permissions.getMaskGroup() != getPermissions().getMaskGroup())  		{ -			flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; +			flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP;  		}  		LLSaleInfo old_sale_info = old_item.getSaleInfo();  		if(old_sale_info != getSaleInfo())  		{ -			flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_SALE; +			flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_SALE;  		}  		setFlags(getFlags() | flags_to_be_set);  	} @@ -1304,19 +1309,6 @@ void LLInventoryItem::unpackBinaryBucket(U8* bin_bucket, S32 bin_bucket_size)  	setCreationDate(now);  } -// returns TRUE if a should appear before b -BOOL item_dictionary_sort( LLInventoryItem* a, LLInventoryItem* b ) -{ -	return (LLStringUtil::compareDict( a->getName().c_str(), b->getName().c_str() ) < 0); -} - -// returns TRUE if a should appear before b -BOOL item_date_sort( LLInventoryItem* a, LLInventoryItem* b ) -{ -	return a->getCreationDate() < b->getCreationDate(); -} - -  ///----------------------------------------------------------------------------  /// Class LLInventoryCategory  ///---------------------------------------------------------------------------- diff --git a/indra/llinventory/llinventory.h b/indra/llinventory/llinventory.h index 9faecbea85..d5a64ea441 100644 --- a/indra/llinventory/llinventory.h +++ b/indra/llinventory/llinventory.h @@ -33,8 +33,6 @@  #ifndef LL_LLINVENTORY_H  #define LL_LLINVENTORY_H -#include <functional> -  #include "lldarray.h"  #include "llfoldertype.h"  #include "llinventorytype.h" @@ -45,180 +43,95 @@  #include "llsd.h"  #include "lluuid.h" -// consts for Key field in the task inventory update message -extern const U8 TASK_INVENTORY_ITEM_KEY; -extern const U8 TASK_INVENTORY_ASSET_KEY; - -// anonymous enumeration to specify a max inventory buffer size for -// use in packBinaryBucket() -enum -{ -	MAX_INVENTORY_BUFFER_SIZE = 1024 -}; - - +class LLMessageSystem;  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLInventoryObject -// -// This is the base class for inventory objects that handles the -// common code between items and categories. The 'mParentUUID' member -// means the parent category since all inventory objects except each -// user's root category are in some category. Each user's root -// category will have mParentUUID==LLUUID::null. +// LLInventoryObject +//   Base class for inventory objects that handles the common code between items  +//   and categories. The 'mParentUUID' member means the parent category since all  +//   inventory objects except each user's root category are in some category. Each  +//   user's root category will have mParentUUID==LLUUID::null.  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -class LLMessageSystem; -  class LLInventoryObject : public LLRefCount  { -protected: -	LLUUID mUUID; -	LLUUID mParentUUID; -	LLAssetType::EType mType; -	std::string mName; +public: +	typedef std::list<LLPointer<LLInventoryObject> > object_list_t; -protected: -	virtual ~LLInventoryObject( void ); -	 +	//-------------------------------------------------------------------- +	// Initialization +	//--------------------------------------------------------------------  public:  	MEM_TYPE_NEW(LLMemType::MTYPE_INVENTORY); -	LLInventoryObject(const LLUUID& uuid, const LLUUID& parent_uuid, -					  LLAssetType::EType type, const std::string& name);  	LLInventoryObject(); +	LLInventoryObject(const LLUUID& uuid,  +					  const LLUUID& parent_uuid, +					  LLAssetType::EType type,  +					  const std::string& name);  	void copyObject(const LLInventoryObject* other); // LLRefCount requires custom copy +protected: +	virtual ~LLInventoryObject(); -	// accessors -	virtual const LLUUID& getUUID() const; +	//-------------------------------------------------------------------- +	// Accessors +	//-------------------------------------------------------------------- +public: +	virtual const LLUUID& getUUID() const; // inventoryID that this item points to +	virtual const LLUUID& getLinkedUUID() const; // inventoryID that this item points to, else this item's inventoryID  	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; // bypasses indirection for linked items  	BOOL getIsLinkType() const; -	// mutators - will not call updateServer(); +	 +	//-------------------------------------------------------------------- +	// Mutators +	//   Will not call updateServer +	//-------------------------------------------------------------------- +public:  	void setUUID(const LLUUID& new_uuid);  	virtual void rename(const std::string& new_name);  	void setParent(const LLUUID& new_parent);  	void setType(LLAssetType::EType type); -	// file support - implemented here so that a minimal information -	// set can be transmitted between simulator and viewer. -// 	virtual BOOL importFile(LLFILE* fp); +	//-------------------------------------------------------------------- +	// File Support +	//   Implemented here so that a minimal information set can be transmitted  +	//   between simulator and viewer. +	//-------------------------------------------------------------------- +public: +	// virtual BOOL importFile(LLFILE* fp);  	virtual BOOL exportFile(LLFILE* fp, BOOL include_asset_key = TRUE) const; -  	virtual BOOL importLegacyStream(std::istream& input_stream);  	virtual BOOL exportLegacyStream(std::ostream& output_stream, BOOL include_asset_key = TRUE) const; -	// virtual methods  	virtual void removeFromServer();  	virtual void updateParentOnServer(BOOL) const;  	virtual void updateServer(BOOL) const; + +	//-------------------------------------------------------------------- +	// Member Variables +	//-------------------------------------------------------------------- +protected: +	LLUUID mUUID; +	LLUUID mParentUUID; +	LLAssetType::EType mType; +	std::string mName;  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLInventoryItem -// -// An inventory item represents something that the current user has in -// their inventory. +// LLInventoryItem +//   An inventory item represents something that the current user has in +//   his inventory.  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -  class LLInventoryItem : public LLInventoryObject  {  public:  	typedef LLDynamicArray<LLPointer<LLInventoryItem> > item_array_t; -	 -protected: -	LLPermissions mPermissions; -	LLUUID mAssetUUID; -	std::string mDescription; -	LLSaleInfo mSaleInfo; -	LLInventoryType::EType mInventoryType; -	U32 mFlags; -	time_t mCreationDate;	// seconds from 1/1/1970, UTC - -public: - -	/** -	 * Anonymous enumeration for specifying the inventory item flags. -	 */ -	enum -	{ -		// The shared flags at the top are shared among all inventory -		// types. After that section, all values of flags are type -		// dependent.  The shared flags will start at 2^30 and work -		// down while item type specific flags will start at 2^0 and -		// work up. -		II_FLAGS_NONE = 0, - - -		// -		// Shared flags -		// -		// - -		// This value means that the asset has only one reference in -		// the system. If the inventory item is deleted, or the asset -		// id updated, then we can remove the old reference. -		II_FLAGS_SHARED_SINGLE_REFERENCE = 0x40000000, - - -		// -		// Landmark flags -		// -		II_FLAGS_LANDMARK_VISITED = 1, - -		// -		// Object flags -		// - -		// flag to indicate that object permissions should have next -		// owner perm be more restrictive on rez. We bump this into -		// the second byte of the flags since the low byte is used to -		// track attachment points. -		II_FLAGS_OBJECT_SLAM_PERM = 0x100, - -		// flag to indicate that the object sale information has been changed. -		II_FLAGS_OBJECT_SLAM_SALE = 0x1000, - -		// These flags specify which permissions masks to overwrite -		// upon rez.  Normally, if no permissions slam (above) or -		// overwrite flags are set, the asset's permissions are -		// used and the inventory's permissions are ignored.  If -		// any of these flags are set, the inventory's permissions -		// take precedence. -		II_FLAGS_OBJECT_PERM_OVERWRITE_BASE			= 0x010000, -		II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER		= 0x020000, -		II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP		= 0x040000, -		II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE		= 0x080000, -		II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER	= 0x100000, - - 		// flag to indicate whether an object that is returned is composed  -		// of muiltiple items or not. -		II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS			= 0x200000, - -		// -		// wearables use the low order byte of flags to store the -		// EWearableType enumeration found in newview/llwearable.h -		// -		II_FLAGS_WEARABLES_MASK = 0xff, - -		// these bits need to be cleared whenever the asset_id is updated -		// on a pre-existing inventory item (DEV-28098 and DEV-30997) -		II_FLAGS_PERM_OVERWRITE_MASK  =   II_FLAGS_OBJECT_SLAM_PERM  -										| II_FLAGS_OBJECT_SLAM_SALE  -										| II_FLAGS_OBJECT_PERM_OVERWRITE_BASE -										| II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER -										| II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP -										| II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE -										| II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER, -	}; - -protected: -	~LLInventoryItem(); // ref counted +	//-------------------------------------------------------------------- +	// Initialization +	//--------------------------------------------------------------------  public: -  	MEM_TYPE_NEW(LLMemType::MTYPE_INVENTORY);  	LLInventoryItem(const LLUUID& uuid,  					const LLUUID& parent_uuid, @@ -237,10 +150,14 @@ public:  	// is prohibited  	LLInventoryItem(const LLInventoryItem* other);  	virtual void copyItem(const LLInventoryItem* other); // LLRefCount requires custom copy -  	void generateUUID() { mUUID.generate(); } +protected: +	~LLInventoryItem(); // ref counted -	// accessors +	//-------------------------------------------------------------------- +	// Accessors +	//-------------------------------------------------------------------- +public:  	virtual const LLUUID& getLinkedUUID() const;  	virtual const LLPermissions& getPermissions() const;  	virtual const LLUUID& getCreatorUUID() const; @@ -252,8 +169,12 @@ public:  	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) +	//-------------------------------------------------------------------- +	// Mutators +	//   Will not call updateServer and will never fail +	//   (though it may correct to sane values) +	//-------------------------------------------------------------------- +public:  	void setAssetUUID(const LLUUID& asset_id);  	void setDescription(const std::string& new_desc);  	void setSaleInfo(const LLSaleInfo& sale_info); @@ -261,62 +182,68 @@ public:  	void setInventoryType(LLInventoryType::EType inv_type);  	void setFlags(U32 flags);  	void setCreationDate(time_t creation_date_utc); +	void setCreator(const LLUUID& creator); // only used for calling cards  	// Check for changes in permissions masks and sale info -	// and set the corresponding bits in mFlags +	// and set the corresponding bits in mFlags.  	void accumulatePermissionSlamBits(const LLInventoryItem& old_item); -	 -	// This is currently only used in the Viewer to handle calling cards -	// where the creator is actually used to store the target. -	void setCreator(const LLUUID& creator) { mPermissions.setCreator(creator); } -	// Put this inventory item onto the current outgoing mesage. It -	// assumes you have already called nextBlock(). +	// Put this inventory item onto the current outgoing mesage. +	// Assumes you have already called nextBlock().  	virtual void packMessage(LLMessageSystem* msg) const; -	// unpack returns TRUE if the inventory item came through the -	// network ok. It uses a simple crc check which is defeatable, but -	// we want to detect network mangling somehow. +	// Returns TRUE if the inventory item came through the network correctly. +	// Uses a simple crc check which is defeatable, but we want to detect  +	// network mangling somehow.  	virtual BOOL unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); -	// file support + +	//-------------------------------------------------------------------- +	// File Support +	//-------------------------------------------------------------------- +public:  	virtual BOOL importFile(LLFILE* fp);  	virtual BOOL exportFile(LLFILE* fp, BOOL include_asset_key = TRUE) const; -  	virtual BOOL importLegacyStream(std::istream& input_stream);  	virtual BOOL exportLegacyStream(std::ostream& output_stream, BOOL include_asset_key = TRUE) const; -	// helper functions - -	// pack all information needed to reconstruct this item into the given binary bucket. -	// perm_override is optional +	//-------------------------------------------------------------------- +	// Helper Functions +	//-------------------------------------------------------------------- +public: +	// Pack all information needed to reconstruct this item into the given binary bucket.  	S32 packBinaryBucket(U8* bin_bucket, LLPermissions* perm_override = NULL) const;  	void unpackBinaryBucket(U8* bin_bucket, S32 bin_bucket_size);  	LLSD asLLSD() const;  	void asLLSD( LLSD& sd ) const;  	bool fromLLSD(const LLSD& sd); +	//-------------------------------------------------------------------- +	// Member Variables +	//-------------------------------------------------------------------- +protected: +	LLPermissions mPermissions; +	LLUUID mAssetUUID; +	std::string mDescription; +	LLSaleInfo mSaleInfo; +	LLInventoryType::EType mInventoryType; +	U32 mFlags; +	time_t mCreationDate; // seconds from 1/1/1970, UTC  }; -BOOL item_dictionary_sort(LLInventoryItem* a,LLInventoryItem* b); -BOOL item_date_sort(LLInventoryItem* a, LLInventoryItem* b); - -  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // Class LLInventoryCategory -// -// An instance of this class represents a category of inventory -// items. Users come with a set of default categories, and can create -// new ones as needed. +//   An instance of this class represents a category/folder of inventory +//   items. Users come with a set of default categories, and can create +//   new ones as needed.  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -  class LLInventoryCategory : public LLInventoryObject  {  public:  	typedef LLDynamicArray<LLPointer<LLInventoryCategory> > cat_array_t; -protected: -	~LLInventoryCategory(); -	 +	//-------------------------------------------------------------------- +	// Initialization +	//--------------------------------------------------------------------  public:  	MEM_TYPE_NEW(LLMemType::MTYPE_INVENTORY);  	LLInventoryCategory(const LLUUID& uuid, const LLUUID& parent_uuid, @@ -325,40 +252,48 @@ public:  	LLInventoryCategory();  	LLInventoryCategory(const LLInventoryCategory* other);  	void copyCategory(const LLInventoryCategory* other); // LLRefCount requires custom copy +protected: +	~LLInventoryCategory(); -	// accessors and mutators +	//-------------------------------------------------------------------- +	// Accessors And Mutators +	//-------------------------------------------------------------------- +public:  	LLFolderType::EType getPreferredType() const;  	void setPreferredType(LLFolderType::EType type); -	// For messaging system support -	virtual void packMessage(LLMessageSystem* msg) const; -	virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); -  	LLSD asLLSD() const;  	bool fromLLSD(const LLSD& sd); -	// file support +	//-------------------------------------------------------------------- +	// Messaging +	//-------------------------------------------------------------------- +public: +	virtual void packMessage(LLMessageSystem* msg) const; +	virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); + +	//-------------------------------------------------------------------- +	// File Support +	//-------------------------------------------------------------------- +public:  	virtual BOOL importFile(LLFILE* fp);  	virtual BOOL exportFile(LLFILE* fp, BOOL include_asset_key = TRUE) const; -  	virtual BOOL importLegacyStream(std::istream& input_stream);  	virtual BOOL exportLegacyStream(std::ostream& output_stream, BOOL include_asset_key = TRUE) const; +	//-------------------------------------------------------------------- +	// Member Variables +	//--------------------------------------------------------------------  protected: -	// May be the type that this category was "meant" to hold (although it may hold any type).	 -	LLFolderType::EType	mPreferredType;		 +	LLFolderType::EType	mPreferredType; // Type that this category was "meant" to hold (although it may hold any type).	  };  //----------------------------------------------------------------------------- -// Useful bits +// Convertors +//   These functions convert between structured data and an inventory +//   item, appropriate for serialization.  //----------------------------------------------------------------------------- - -typedef std::list<LLPointer<LLInventoryObject> > InventoryObjectList; - -// These functions convert between structured data and an inventory -// item, appropriate for serialization.  LLSD ll_create_sd_from_inventory_item(LLPointer<LLInventoryItem> item); -//LLPointer<LLInventoryItem> ll_create_item_from_sd(const LLSD& sd_item);  LLSD ll_create_sd_from_inventory_category(LLPointer<LLInventoryCategory> cat);  LLPointer<LLInventoryCategory> ll_create_category_from_sd(const LLSD& sd_cat); diff --git a/indra/llinventory/llinventorydefines.cpp b/indra/llinventory/llinventorydefines.cpp new file mode 100644 index 0000000000..a9610d4d4b --- /dev/null +++ b/indra/llinventory/llinventorydefines.cpp @@ -0,0 +1,37 @@ +/**  + * @file llinventorydefines.cpp + * @brief Implementation of the inventory defines. + * + * $LicenseInfo:firstyear=2001&license=viewergpl$ + *  + * Copyright (c) 2001-2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "linden_common.h" +#include "llinventorydefines.h" + +const U8 TASK_INVENTORY_ITEM_KEY = 0; +const U8 TASK_INVENTORY_ASSET_KEY = 1; diff --git a/indra/llinventory/llinventorydefines.h b/indra/llinventory/llinventorydefines.h new file mode 100644 index 0000000000..ccf1a356de --- /dev/null +++ b/indra/llinventory/llinventorydefines.h @@ -0,0 +1,106 @@ +/**  + * @file llinventorydefines.h + * @brief LLInventoryDefines + * + * $LicenseInfo:firstyear=2001&license=viewergpl$ + *  + * Copyright (c) 2001-2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_LLINVENTORYDEFINES_H +#define LL_LLINVENTORYDEFINES_H + +// Consts for "key" field in the task inventory update message +extern const U8 TASK_INVENTORY_ITEM_KEY; +extern const U8 TASK_INVENTORY_ASSET_KEY; + +// Max inventory buffer size (for use in packBinaryBucket) +enum +{ +	MAX_INVENTORY_BUFFER_SIZE = 1024 +}; + +//-------------------------------------------------------------------- +// Inventory item flags enums +//   The shared flags at the top are shared among all inventory +//   types. After that section, all values of flags are type +//   dependent.  The shared flags will start at 2^30 and work +//   down while item type specific flags will start at 2^0 and work up. +//-------------------------------------------------------------------- +class LLInventoryItemFlags +{ +public: +	enum EType +	{ +		II_FLAGS_NONE 								= 0, +		 +		II_FLAGS_SHARED_SINGLE_REFERENCE 			= 0x40000000, +			// The asset has only one reference in the system. If the  +			// inventory item is deleted, or the assetid updated, then we  +			// can remove the old reference. +		 +		II_FLAGS_LANDMARK_VISITED 					= 1, + +		II_FLAGS_OBJECT_SLAM_PERM 					= 0x100, +			// Object permissions should have next owner perm be more  +			// restrictive on rez. We bump this into the second byte of the  +			// flags since the low byte is used to track attachment points. + +		II_FLAGS_OBJECT_SLAM_SALE 					= 0x1000, +			// The object sale information has been changed. +		 +		II_FLAGS_OBJECT_PERM_OVERWRITE_BASE			= 0x010000, +		II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER		= 0x020000, +		II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP		= 0x040000, +		II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE		= 0x080000, +		II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER	= 0x100000, +			// Specify which permissions masks to overwrite +			// upon rez.  Normally, if no permissions slam (above) or +			// overwrite flags are set, the asset's permissions are +			// used and the inventory's permissions are ignored.  If +			// any of these flags are set, the inventory's permissions +			// take precedence. + +		II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS			= 0x200000, +			// Whether a returned object is composed of multiple items. + +		II_FLAGS_WEARABLES_MASK = 0xff, +			// Wearables use the low order byte of flags to store the +			// EWearableType enumeration found in newview/llwearable.h + +		II_FLAGS_PERM_OVERWRITE_MASK = 				(II_FLAGS_OBJECT_SLAM_PERM | +													 II_FLAGS_OBJECT_SLAM_SALE | +													 II_FLAGS_OBJECT_PERM_OVERWRITE_BASE | +													 II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER | +													 II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP | +													 II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE | +													 II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER), +			// These bits need to be cleared whenever the asset_id is updated +			// on a pre-existing inventory item (DEV-28098 and DEV-30997) +	}; +}; + +#endif // LL_LLINVENTORYDEFINES_H diff --git a/indra/llmessage/message_prehash.cpp b/indra/llmessage/message_prehash.cpp index 9e3986f257..a118e21ffb 100644 --- a/indra/llmessage/message_prehash.cpp +++ b/indra/llmessage/message_prehash.cpp @@ -1147,7 +1147,7 @@ char* _PREHASH_ForceObjectSelect = LLMessageStringTable::getInstance()->getStrin  char* _PREHASH_Price = LLMessageStringTable::getInstance()->getString("Price");  char* _PREHASH_SunDirection = LLMessageStringTable::getInstance()->getString("SunDirection");  char* _PREHASH_FromName = LLMessageStringTable::getInstance()->getString("FromName"); -char* _PREHASH_ChangeInventoryItemFlags = LLMessageStringTable::getInstance()->getString("ChangeInventoryItemFlags"); +char* _PREHASH_ChangeInventoryItemFlags = LLMessageStringTable::getInstance()->getString("ChangLLInventoryItemFlags");  char* _PREHASH_Force = LLMessageStringTable::getInstance()->getString("Force");  char* _PREHASH_TransactionBlock = LLMessageStringTable::getInstance()->getString("TransactionBlock");  char* _PREHASH_PowersMask = LLMessageStringTable::getInstance()->getString("PowersMask"); diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp index 370ecc0665..2f90d652e4 100644 --- a/indra/newview/llassetuploadresponders.cpp +++ b/indra/newview/llassetuploadresponders.cpp @@ -39,6 +39,7 @@  #include "llcompilequeue.h"  #include "llfloaterbuycurrency.h"  #include "llfilepicker.h" +#include "llinventorydefines.h"  #include "llinventoryobserver.h"  #include "llinventorypanel.h"  #include "llpermissionsflags.h" @@ -288,7 +289,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)  										mPostData["name"].asString(),  										mPostData["description"].asString(),  										LLSaleInfo::DEFAULT, -										LLInventoryItem::II_FLAGS_NONE, +										LLInventoryItemFlags::II_FLAGS_NONE,  										creation_date_now);  		gInventory.updateItem(item);  		gInventory.notifyObservers(); diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index a96981a108..feb8c540ef 100644 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -114,7 +114,7 @@ BOOL LLFloaterScriptQueue::postBuild()  // worked on.  // NOT static, virtual!  void LLFloaterScriptQueue::inventoryChanged(LLViewerObject* viewer_object, -											 InventoryObjectList* inv, +											 LLInventoryObject::object_list_t* inv,  											 S32,  											 void* q_id)  { @@ -305,7 +305,7 @@ LLFloaterCompileQueue::~LLFloaterCompileQueue()  }  void LLFloaterCompileQueue::handleInventory(LLViewerObject *viewer_object, -											InventoryObjectList* inv) +											LLInventoryObject::object_list_t* inv)  {  	// find all of the lsl, leaving off duplicates. We'll remove  	// all matching asset uuids on compilation success. @@ -313,8 +313,8 @@ void LLFloaterCompileQueue::handleInventory(LLViewerObject *viewer_object,  	typedef std::multimap<LLUUID, LLPointer<LLInventoryItem> > uuid_item_map;  	uuid_item_map asset_item_map; -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it)  	{  		if((*it)->getType() == LLAssetType::AT_LSL_TEXT) @@ -625,14 +625,14 @@ LLFloaterResetQueue::~LLFloaterResetQueue()  }  void LLFloaterResetQueue::handleInventory(LLViewerObject* viewer_obj, -										  InventoryObjectList* inv) +										  LLInventoryObject::object_list_t* inv)  {  	// find all of the lsl, leaving off duplicates. We'll remove  	// all matching asset uuids on compilation success.  	LLDynamicArray<const char*> names; -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it)  	{  		if((*it)->getType() == LLAssetType::AT_LSL_TEXT) @@ -677,14 +677,14 @@ LLFloaterRunQueue::~LLFloaterRunQueue()  }  void LLFloaterRunQueue::handleInventory(LLViewerObject* viewer_obj, -										  InventoryObjectList* inv) +										  LLInventoryObject::object_list_t* inv)  {  	// find all of the lsl, leaving off duplicates. We'll remove  	// all matching asset uuids on compilation success.  	LLDynamicArray<const char*> names; -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it)  	{  		if((*it)->getType() == LLAssetType::AT_LSL_TEXT) @@ -732,14 +732,14 @@ LLFloaterNotRunQueue::~LLFloaterNotRunQueue()  }  void LLFloaterNotRunQueue::handleInventory(LLViewerObject* viewer_obj, -										  InventoryObjectList* inv) +										  LLInventoryObject::object_list_t* inv)  {  	// find all of the lsl, leaving off duplicates. We'll remove  	// all matching asset uuids on compilation success.  	LLDynamicArray<const char*> names; -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it)  	{  		if((*it)->getType() == LLAssetType::AT_LSL_TEXT) diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h index 2d061f5d8a..4fde2572af 100644 --- a/indra/newview/llcompilequeue.h +++ b/indra/newview/llcompilequeue.h @@ -76,13 +76,13 @@ protected:  	// This is the callback method for the viewer object currently  	// being worked on.  	/*virtual*/ void inventoryChanged(LLViewerObject* obj, -								 InventoryObjectList* inv, +								 LLInventoryObject::object_list_t* inv,  								 S32 serial_num,  								 void* queue);  	// This is called by inventoryChanged  	virtual void handleInventory(LLViewerObject* viewer_obj, -								InventoryObjectList* inv) = 0; +								LLInventoryObject::object_list_t* inv) = 0;  	static void onCloseBtn(void* user_data); @@ -145,7 +145,7 @@ protected:  	// This is called by inventoryChanged  	virtual void handleInventory(LLViewerObject* viewer_obj, -								InventoryObjectList* inv); +								LLInventoryObject::object_list_t* inv);  	// This is the callback for when each script arrives  	static void scriptArrived(LLVFS *vfs, const LLUUID& asset_id, @@ -192,7 +192,7 @@ protected:  	// This is called by inventoryChanged  	virtual void handleInventory(LLViewerObject* viewer_obj, -								InventoryObjectList* inv); +								LLInventoryObject::object_list_t* inv);  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -210,7 +210,7 @@ protected:  	// This is called by inventoryChanged  	virtual void handleInventory(LLViewerObject* viewer_obj, -								InventoryObjectList* inv); +								LLInventoryObject::object_list_t* inv);  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -228,7 +228,7 @@ protected:  	// This is called by inventoryChanged  	virtual void handleInventory(LLViewerObject* viewer_obj, -								InventoryObjectList* inv); +								LLInventoryObject::object_list_t* inv);  };  #endif // LL_LLCOMPILEQUEUE_H diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp index b2f700069f..766fc0723c 100644 --- a/indra/newview/llfloaterbulkpermission.cpp +++ b/indra/newview/llfloaterbulkpermission.cpp @@ -37,6 +37,7 @@  #include "llfloaterperms.h" // for utilities  #include "llagent.h"  #include "llchat.h" +#include "llinventorydefines.h"  #include "llviewerwindow.h"  #include "llviewerobject.h"  #include "llviewerobjectlist.h" @@ -116,7 +117,7 @@ void LLFloaterBulkPermission::doApply()  // worked on.  // NOT static, virtual!  void LLFloaterBulkPermission::inventoryChanged(LLViewerObject* viewer_object, -											 InventoryObjectList* inv, +											 LLInventoryObject::object_list_t* inv,  											 S32,  											 void* q_id)  { @@ -250,12 +251,12 @@ void LLFloaterBulkPermission::doCheckUncheckAll(BOOL check)  } -void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, InventoryObjectList* inv) +void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, LLInventoryObject::object_list_t* inv)  {  	LLScrollListCtrl* list = getChild<LLScrollListCtrl>("queue output"); -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it)  	{  		LLAssetType::EType asstype = (*it)->getType(); diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h index bffcff7059..80dc88fbb1 100644 --- a/indra/newview/llfloaterbulkpermission.h +++ b/indra/newview/llfloaterbulkpermission.h @@ -63,13 +63,13 @@ private:  	// This is the callback method for the viewer object currently  	// being worked on.  	/*virtual*/ void inventoryChanged(LLViewerObject* obj, -								 InventoryObjectList* inv, +								 LLInventoryObject::object_list_t* inv,  								 S32 serial_num,  								 void* queue);  	// This is called by inventoryChanged  	void handleInventory(LLViewerObject* viewer_obj, -								InventoryObjectList* inv); +								LLInventoryObject::object_list_t* inv);  	void updateInventory(LLViewerObject* object, diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp index 589f570d96..44c82f1941 100644 --- a/indra/newview/llfloaterbuy.cpp +++ b/indra/newview/llfloaterbuy.cpp @@ -44,6 +44,7 @@  #include "llinventorymodel.h"	// for gInventory  #include "llfloaterreg.h"  #include "llfloaterinventory.h"	// for get_item_icon +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llnotificationsutil.h"  #include "llselectmgr.h" @@ -195,7 +196,7 @@ void LLFloaterBuy::show(const LLSaleInfo& sale_info)  }  void LLFloaterBuy::inventoryChanged(LLViewerObject* obj, -								 InventoryObjectList* inv, +								 LLInventoryObject::object_list_t* inv,  								 S32 serial_num,  								 void* data)  { @@ -220,8 +221,8 @@ void LLFloaterBuy::inventoryChanged(LLViewerObject* obj,  		return;  	} -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it )  	{  		LLInventoryObject* obj = (LLInventoryObject*)(*it); @@ -246,8 +247,8 @@ void LLFloaterBuy::inventoryChanged(LLViewerObject* obj,  		// Compute icon for this item  		BOOL item_is_multi = FALSE; -		if ( inv_item->getFlags() & LLInventoryItem::II_FLAGS_LANDMARK_VISITED  -			|| inv_item->getFlags() & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS) +		if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED  +			|| inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS)  		{  			item_is_multi = TRUE;  		} diff --git a/indra/newview/llfloaterbuy.h b/indra/newview/llfloaterbuy.h index ab38e082dc..411c8fb00e 100644 --- a/indra/newview/llfloaterbuy.h +++ b/indra/newview/llfloaterbuy.h @@ -65,7 +65,7 @@ protected:  	void requestObjectInventories();  	/*virtual*/ void inventoryChanged(LLViewerObject* obj, -								 InventoryObjectList* inv, +								 LLInventoryObject::object_list_t* inv,  								 S32 serial_num,  								 void* data); diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp index 0daef27af2..1d989ad0fd 100644 --- a/indra/newview/llfloaterbuycontents.cpp +++ b/indra/newview/llfloaterbuycontents.cpp @@ -44,6 +44,7 @@  #include "llagent.h"			// for agent id  #include "llcheckboxctrl.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llinventorymodel.h"	// for gInventory  #include "llfloaterreg.h" @@ -142,7 +143,7 @@ void LLFloaterBuyContents::show(const LLSaleInfo& sale_info)  void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj, -											InventoryObjectList* inv, +											LLInventoryObject::object_list_t* inv,  								 S32 serial_num,  								 void* data)  { @@ -176,8 +177,8 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,  	LLInventoryType::EType inv_type;  	S32 wearable_count = 0; -	InventoryObjectList::const_iterator it = inv->begin(); -	InventoryObjectList::const_iterator end = inv->end(); +	LLInventoryObject::object_list_t::const_iterator it = inv->begin(); +	LLInventoryObject::object_list_t::const_iterator end = inv->end();  	for ( ; it != end; ++it )  	{ @@ -215,7 +216,7 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,  		LLSD row;  		BOOL item_is_multi = FALSE; -		if ( inv_item->getFlags() & LLInventoryItem::II_FLAGS_LANDMARK_VISITED ) +		if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED )  		{  			item_is_multi = TRUE;  		} diff --git a/indra/newview/llfloaterbuycontents.h b/indra/newview/llfloaterbuycontents.h index 8045a46c9f..ab161adfea 100644 --- a/indra/newview/llfloaterbuycontents.h +++ b/indra/newview/llfloaterbuycontents.h @@ -59,7 +59,7 @@ public:  protected:  	void requestObjectInventories();  	/*virtual*/ void inventoryChanged(LLViewerObject* obj, -								 InventoryObjectList* inv, +								 LLInventoryObject::object_list_t* inv,  								 S32 serial_num,  								 void* data); diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp index ec50ed596c..71bfae316a 100644 --- a/indra/newview/llfloateropenobject.cpp +++ b/indra/newview/llfloateropenobject.cpp @@ -121,12 +121,12 @@ void LLFloaterOpenObject::refresh()  		{  			// this folder is coming from an object, as there is only one folder in an object, the root,  			// we need to collect the entire contents and handle them as a group -			InventoryObjectList inventory_objects; +			LLInventoryObject::object_list_t inventory_objects;  			object->getInventoryContents(inventory_objects);  			if (!inventory_objects.empty())  			{ -				for (InventoryObjectList::iterator it = inventory_objects.begin();  +				for (LLInventoryObject::object_list_t::iterator it = inventory_objects.begin();   					 it != inventory_objects.end();   					 ++it)  				{ diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index 5c0593ad29..bb9d151cd2 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -38,12 +38,12 @@  #include "llcachename.h"  #include "lldbstrings.h"  #include "llfloaterreg.h" -#include "llinventory.h"  #include "llagent.h"  #include "llbutton.h"  #include "llcheckboxctrl.h"  #include "llavataractions.h" +#include "llinventorydefines.h"  #include "llinventoryobserver.h"  #include "llinventorymodel.h"  #include "lllineeditor.h" @@ -380,9 +380,9 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  		if (item->getType() == LLAssetType::AT_OBJECT)  		{  			U32 flags = item->getFlags(); -			slam_perm 			= flags & LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; -			overwrite_everyone	= flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; -			overwrite_group		= flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; +			slam_perm 			= flags & LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; +			overwrite_everyone	= flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; +			overwrite_group		= flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP;  		}  		std::string perm_string; @@ -693,7 +693,7 @@ void LLFloaterProperties::onCommitPermissions()  		if((perm.getMaskNextOwner()!=item->getPermissions().getMaskNextOwner())  		   && (item->getType() == LLAssetType::AT_OBJECT))  		{ -			flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM;  		}  		// If everyone permissions have changed (and this is an object)  		// then set the overwrite everyone permissions flag so they @@ -701,7 +701,7 @@ void LLFloaterProperties::onCommitPermissions()  		if ((perm.getMaskEveryone()!=item->getPermissions().getMaskEveryone())  			&& (item->getType() == LLAssetType::AT_OBJECT))  		{ -			flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE;  		}  		// If group permissions have changed (and this is an object)  		// then set the overwrite group permissions flag so they @@ -709,7 +709,7 @@ void LLFloaterProperties::onCommitPermissions()  		if ((perm.getMaskGroup()!=item->getPermissions().getMaskGroup())  			&& (item->getType() == LLAssetType::AT_OBJECT))  		{ -			flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP;  		}  		new_item->setFlags(flags);  		if(mObjectID.isNull()) @@ -821,7 +821,7 @@ void LLFloaterProperties::updateSaleInfo()  		if (item->getType() == LLAssetType::AT_OBJECT)  		{  			U32 flags = new_item->getFlags(); -			flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_SALE; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_SALE;  			new_item->setFlags(flags);  		} diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 47d0837ba1..09168b4f31 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -50,6 +50,7 @@  #include "llimfloater.h"  #include "llimview.h"  #include "llinventoryclipboard.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llinventorymodel.h"  #include "llinventorymodelbackgroundfetch.h" @@ -1858,7 +1859,7 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,  	// this folder is coming from an object, as there is only one folder in an object, the root,  	// we need to collect the entire contents and handle them as a group -	InventoryObjectList inventory_objects; +	LLInventoryObject::object_list_t inventory_objects;  	object->getInventoryContents(inventory_objects);  	if (inventory_objects.empty()) @@ -1872,8 +1873,8 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,  	// coming from a task. Need to figure out if the person can  	// move/copy this item. -	InventoryObjectList::iterator it = inventory_objects.begin(); -	InventoryObjectList::iterator end = inventory_objects.end(); +	LLInventoryObject::object_list_t::iterator it = inventory_objects.begin(); +	LLInventoryObject::object_list_t::iterator end = inventory_objects.end();  	for ( ; it != end; ++it)  	{  		// coming from a task. Need to figure out if the person can @@ -1903,7 +1904,7 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,  	if(drop && accept)  	{  		it = inventory_objects.begin(); -		InventoryObjectList::iterator first_it = inventory_objects.begin(); +		LLInventoryObject::object_list_t::iterator first_it = inventory_objects.begin();  		LLMoveInv* move_inv = new LLMoveInv;  		move_inv->mObjectID = object_id;  		move_inv->mCategoryID = category_id; @@ -2946,7 +2947,7 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response  	{  		if (cat_and_wear && cat_and_wear->mWear)  		{ -			InventoryObjectList inventory_objects; +			LLInventoryObject::object_list_t inventory_objects;  			object->getInventoryContents(inventory_objects);  			int contents_count = inventory_objects.size()-1; //subtract one for containing folder @@ -3373,7 +3374,7 @@ LLLandmarkBridge::LLLandmarkBridge(LLInventoryPanel* inventory,  	LLItemBridge(inventory, root, uuid)  {  	mVisited = FALSE; -	if (flags & LLInventoryItem::II_FLAGS_LANDMARK_VISITED) +	if (flags & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED)  	{  		mVisited = TRUE;  	} @@ -4013,7 +4014,7 @@ LLObjectBridge::LLObjectBridge(LLInventoryPanel* inventory,  {  	mAttachPt = (flags & 0xff); // low bye of inventory flags -	mIsMultiObject = ( flags & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) ?  TRUE: FALSE; +	mIsMultiObject = ( flags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) ?  TRUE: FALSE;  }  LLUIImagePtr LLObjectBridge::getIcon() const @@ -4962,7 +4963,7 @@ LLUIImagePtr LLLinkItemBridge::getIcon() const  	if (LLViewerInventoryItem *item = getItem())  	{  		U32 attachment_point = (item->getFlags() & 0xff); // low byte of inventory flags -		bool is_multi =  LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags(); +		bool is_multi =  LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags();  		return get_item_icon(item->getActualType(), item->getInventoryType(), attachment_point, is_multi);  	} diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 3e16dfea5f..ecb8f723e8 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -41,6 +41,7 @@  #include "llagentwearables.h"  #include "llcallingcard.h"  #include "llfloaterreg.h" +#include "llinventorydefines.h"  #include "llsdserialize.h"  #include "llfiltereditor.h"  #include "llspinctrl.h" @@ -409,7 +410,7 @@ void LLOpenFoldersWithSelection::doFolder(LLFolderViewFolder* folder)  static void assign_clothing_bodypart_icon(EInventoryIcon &idx, U32 attachment_point)  { -	const EWearableType wearable_type = EWearableType(LLInventoryItem::II_FLAGS_WEARABLES_MASK & attachment_point); +	const EWearableType wearable_type = EWearableType(LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK & attachment_point);  	switch(wearable_type)  	{  		case WT_SHAPE: diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp index 2a7d097f94..f4c0a842e7 100644 --- a/indra/newview/llpanelcontents.cpp +++ b/indra/newview/llpanelcontents.cpp @@ -40,6 +40,7 @@  #include "llerror.h"  #include "llfloaterreg.h"  #include "llfontgl.h" +#include "llinventorydefines.h"  #include "llmaterialtable.h"  #include "llpermissionsflags.h"  #include "llrect.h" @@ -180,7 +181,7 @@ void LLPanelContents::onClickNewScript(void *userdata)  				LLTrans::getString("PanelContentsNewScript"),  				desc,  				LLSaleInfo::DEFAULT, -				LLViewerInventoryItem::II_FLAGS_NONE, +				LLInventoryItemFlags::II_FLAGS_NONE,  				time_corrected());  		object->saveScript(new_item, TRUE, true); diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp index 5f913d5469..8da19d1574 100644 --- a/indra/newview/llpanelgroupnotices.cpp +++ b/indra/newview/llpanelgroupnotices.cpp @@ -38,6 +38,7 @@  #include "llinventory.h"  #include "llviewerinventory.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llinventorymodel.h"  #include "llfloaterinventory.h" @@ -329,7 +330,7 @@ void LLPanelGroupNotices::setItem(LLPointer<LLInventoryItem> inv_item)  	mInventoryItem = inv_item;  	BOOL item_is_multi = FALSE; -	if ( inv_item->getFlags() & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) +	if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS )  	{  		item_is_multi = TRUE;  	}; diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index f70a06cde9..df74c5dd47 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -50,6 +50,7 @@  #include "llfloaterbuycurrency.h"  #include "llfloaterreg.h"  #include "llinventorybridge.h" +#include "llinventorydefines.h"  #include "llinventoryfilter.h"  #include "llinventoryfunctions.h"  #include "llpreviewanim.h" @@ -344,7 +345,7 @@ time_t LLTaskInvFVBridge::getCreationDate() const  LLUIImagePtr LLTaskInvFVBridge::getIcon() const  {  	BOOL item_is_multi = FALSE; -	if ( mFlags & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) +	if ( mFlags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS )  	{  		item_is_multi = TRUE;  	} @@ -1208,7 +1209,7 @@ LLTaskObjectBridge::LLTaskObjectBridge(  LLUIImagePtr LLTaskObjectBridge::getIcon() const  {  	BOOL item_is_multi = FALSE; -	if ( mFlags & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) +	if ( mFlags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS )  	{  		item_is_multi = TRUE;  	} @@ -1615,7 +1616,7 @@ void LLPanelObjectInventory::reset()  }  void LLPanelObjectInventory::inventoryChanged(LLViewerObject* object, -										InventoryObjectList* inventory, +										LLInventoryObject::object_list_t* inventory,  										S32 serial_num,  										void* data)  { @@ -1632,7 +1633,7 @@ void LLPanelObjectInventory::inventoryChanged(LLViewerObject* object,  	// refresh any properties floaters that are hanging around.  	if(inventory)  	{ -		for (InventoryObjectList::const_iterator iter = inventory->begin(); +		for (LLInventoryObject::object_list_t::const_iterator iter = inventory->begin();  			 iter != inventory->end(); )  		{  			LLInventoryObject* item = *iter++; @@ -1665,7 +1666,7 @@ void LLPanelObjectInventory::updateInventory()  	if (objectp)  	{  		LLInventoryObject* inventory_root = objectp->getInventoryRoot(); -		InventoryObjectList contents; +		LLInventoryObject::object_list_t contents;  		objectp->getInventoryContents(contents);  		if (inventory_root)  		{ @@ -1719,7 +1720,7 @@ void LLPanelObjectInventory::updateInventory()  // leads to an N^2 based on the category count. This could be greatly  // speeded with an efficient multimap implementation, but we don't  // have that in our current arsenal. -void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root, InventoryObjectList& contents) +void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root, LLInventoryObject::object_list_t& contents)  {  	if (!inventory_root)  	{ @@ -1748,7 +1749,7 @@ void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root  typedef std::pair<LLInventoryObject*, LLFolderViewFolder*> obj_folder_pair; -void LLPanelObjectInventory::createViewsForCategory(InventoryObjectList* inventory,  +void LLPanelObjectInventory::createViewsForCategory(LLInventoryObject::object_list_t* inventory,   											  LLInventoryObject* parent,  											  LLFolderViewFolder* folder)  { @@ -1757,8 +1758,8 @@ void LLPanelObjectInventory::createViewsForCategory(InventoryObjectList* invento  	LLTaskInvFVBridge* bridge;  	LLFolderViewItem* view; -	InventoryObjectList::iterator it = inventory->begin(); -	InventoryObjectList::iterator end = inventory->end(); +	LLInventoryObject::object_list_t::iterator it = inventory->begin(); +	LLInventoryObject::object_list_t::iterator end = inventory->end();  	for( ; it != end; ++it)  	{  		LLInventoryObject* obj = *it; diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h index bc339ece35..d015929841 100644 --- a/indra/newview/llpanelobjectinventory.h +++ b/indra/newview/llpanelobjectinventory.h @@ -82,12 +82,12 @@ public:  protected:  	void reset();  	/*virtual*/ void inventoryChanged(LLViewerObject* object, -								 InventoryObjectList* inventory, +								 LLInventoryObject::object_list_t* inventory,  								 S32 serial_num,  								 void* user_data);  	void updateInventory(); -	void createFolderViews(LLInventoryObject* inventory_root, InventoryObjectList& contents); -	void createViewsForCategory(InventoryObjectList* inventory, +	void createFolderViews(LLInventoryObject* inventory_root, LLInventoryObject::object_list_t& contents); +	void createViewsForCategory(LLInventoryObject::object_list_t* inventory,  								LLInventoryObject* parent,  								LLFolderViewFolder* folder);  	void clearContents(); diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp index d5ec3a36c3..d0db77dcbe 100644 --- a/indra/newview/llpreview.cpp +++ b/indra/newview/llpreview.cpp @@ -36,7 +36,7 @@  #include "llpreview.h"  #include "lllineeditor.h" -#include "llinventory.h" +#include "llinventorydefines.h"  #include "llinventorymodel.h"  #include "llresmgr.h"  #include "lltextbox.h" diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index 11cde47744..fce90e4c44 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -42,7 +42,9 @@  #include "llstring.h"  #include "lldir.h"  #include "llfloaterreg.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h" +#include "llinventorymodel.h"  #include "llinventorymodelbackgroundfetch.h"  #include "llmultigesture.h"  #include "llnotificationsutil.h" @@ -58,7 +60,6 @@  #include "lldelayedgestureerror.h"  #include "llfloatergesture.h" // for some label constants  #include "llgesturemgr.h" -#include "llinventorymodel.h"  #include "llkeyboard.h"  #include "lllineeditor.h"  #include "llradiogroup.h" diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index bfd9a840f2..75702dc8e5 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -42,6 +42,7 @@  #include "llviewerwindow.h"  #include "llbutton.h"  #include "llfloaterreg.h" +#include "llinventorydefines.h"  #include "llinventorymodel.h"  #include "lllineeditor.h"  #include "llnotificationsutil.h" diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 4167408fc3..6b0e524f8c 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -41,6 +41,7 @@  #include "llcombobox.h"  #include "lldir.h"  #include "llfloaterreg.h" +#include "llinventorydefines.h"  #include "llinventorymodel.h"  #include "llkeyboard.h"  #include "lllineeditor.h" @@ -1578,7 +1579,7 @@ void LLLiveLSLEditor::loadAsset()  										  DEFAULT_SCRIPT_NAME,  										  DEFAULT_SCRIPT_DESC,  										  LLSaleInfo::DEFAULT, -										  LLInventoryItem::II_FLAGS_NONE, +										  LLInventoryItemFlags::II_FLAGS_NONE,  										  time_corrected());  		mAssetStatus = PREVIEW_ASSET_LOADED;  	} diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index 0275736f6d..9b073943b4 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -40,6 +40,7 @@  #include "llbutton.h"  #include "llfloaterreg.h"  #include "llgroupactions.h" +#include "llinventorydefines.h"  #include "llinventorymodel.h"  #include "llinventoryobserver.h"  #include "lllineeditor.h" @@ -439,9 +440,9 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)  		if (item->getType() == LLAssetType::AT_OBJECT)  		{  			U32 flags = item->getFlags(); -			slam_perm 			= flags & LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; -			overwrite_everyone	= flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; -			overwrite_group		= flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; +			slam_perm 			= flags & LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; +			overwrite_everyone	= flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; +			overwrite_group		= flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP;  		}  		std::string perm_string; @@ -752,7 +753,7 @@ void LLSidepanelItemInfo::onCommitPermissions()  		if((perm.getMaskNextOwner()!=item->getPermissions().getMaskNextOwner())  		   && (item->getType() == LLAssetType::AT_OBJECT))  		{ -			flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM;  		}  		// If everyone permissions have changed (and this is an object)  		// then set the overwrite everyone permissions flag so they @@ -760,7 +761,7 @@ void LLSidepanelItemInfo::onCommitPermissions()  		if ((perm.getMaskEveryone()!=item->getPermissions().getMaskEveryone())  			&& (item->getType() == LLAssetType::AT_OBJECT))  		{ -			flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE;  		}  		// If group permissions have changed (and this is an object)  		// then set the overwrite group permissions flag so they @@ -768,7 +769,7 @@ void LLSidepanelItemInfo::onCommitPermissions()  		if ((perm.getMaskGroup()!=item->getPermissions().getMaskGroup())  			&& (item->getType() == LLAssetType::AT_OBJECT))  		{ -			flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP;  		}  		new_item->setFlags(flags);  		if(mObjectID.isNull()) @@ -880,7 +881,7 @@ void LLSidepanelItemInfo::updateSaleInfo()  		if (item->getType() == LLAssetType::AT_OBJECT)  		{  			U32 flags = new_item->getFlags(); -			flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_SALE; +			flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_SALE;  			new_item->setFlags(flags);  		} diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 617518ab57..c977377f3a 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -50,6 +50,7 @@  #include "llhudeffecttrail.h"  #include "llimview.h"  #include "llinventorybridge.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llmutelist.h"  #include "llpreviewnotecard.h" diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index 9a69adae31..cc074287c4 100644 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -39,6 +39,7 @@  #include "llgl.h"  #include "llrender.h"  #include "llinventory.h" +#include "llinventorydefines.h"  #include "llpointer.h"  #include "llstring.h"  #include "lluuid.h" @@ -742,10 +743,10 @@ void LLTracker::setLandmarkVisited()  		LLInventoryItem* i = gInventory.getItem( mTrackedLandmarkItemID );  		LLViewerInventoryItem* item = (LLViewerInventoryItem*)i;  		if (   item  -			&& !(item->getFlags()&LLInventoryItem::II_FLAGS_LANDMARK_VISITED)) +			&& !(item->getFlags()&LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED))  		{  			U32 flags = item->getFlags(); -			flags |= LLInventoryItem::II_FLAGS_LANDMARK_VISITED; +			flags |= LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED;  			item->setFlags(flags);  			LLMessageSystem* msg = gMessageSystem;  			msg->newMessage("ChangeInventoryItemFlags"); @@ -798,7 +799,7 @@ void LLTracker::cacheLandmarkPosition()  			mLandmarkHasBeenVisited = FALSE;  			LLInventoryItem* item = gInventory.getItem(mTrackedLandmarkItemID);  			if (   item  -				&& item->getFlags()&LLInventoryItem::II_FLAGS_LANDMARK_VISITED) +				&& item->getFlags()&LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED)  			{  				mLandmarkHasBeenVisited = TRUE;  			} diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index db0d57c10c..353ffee66f 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -43,6 +43,7 @@  #include "llfolderview.h"  #include "llviewercontrol.h"  #include "llconsole.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llinventorymodel.h"  #include "llinventorymodelbackgroundfetch.h" @@ -1481,7 +1482,7 @@ EWearableType LLViewerInventoryItem::getWearableType() const  		llwarns << "item is not a wearable" << llendl;  		return WT_INVALID;  	} -	return EWearableType(getFlags() & LLInventoryItem::II_FLAGS_WEARABLES_MASK); +	return EWearableType(getFlags() & LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK);  } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 0277005a89..24a6b12905 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -73,6 +73,7 @@  #include "llhudmanager.h"  #include "llimview.h"  #include "llinventorybridge.h" +#include "llinventorydefines.h"  #include "llinventoryfunctions.h"  #include "llpanellogin.h"  #include "llpanelblockedlist.h" @@ -3863,15 +3864,15 @@ BOOL enable_deed_object_to_group(void*)   * No longer able to support viewer side manipulations in this way   *  void god_force_inv_owner_permissive(LLViewerObject* object, -									InventoryObjectList* inventory, +									LLInventoryObject::object_list_t* inventory,  									S32 serial_num,  									void*)  {  	typedef std::vector<LLPointer<LLViewerInventoryItem> > item_array_t;  	item_array_t items; -	InventoryObjectList::const_iterator inv_it = inventory->begin(); -	InventoryObjectList::const_iterator inv_end = inventory->end(); +	LLInventoryObject::object_list_t::const_iterator inv_it = inventory->begin(); +	LLInventoryObject::object_list_t::const_iterator inv_end = inventory->end();  	for ( ; inv_it != inv_end; ++inv_it)  	{  		if(((*inv_it)->getType() != LLAssetType::AT_CATEGORY)) @@ -6971,7 +6972,7 @@ void handle_grab_texture(void* data)  										name,  										LLStringUtil::null,  										LLSaleInfo::DEFAULT, -										LLInventoryItem::II_FLAGS_NONE, +										LLInventoryItemFlags::II_FLAGS_NONE,  										creation_date_now);  		item->updateServer(TRUE); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 9b39cbfdf1..598e55e2c8 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -41,6 +41,7 @@  #include "lleventtimer.h"  #include "llfloaterreg.h"  #include "llfollowcamparams.h" +#include "llinventorydefines.h"  #include "llregionhandle.h"  #include "llsdserialize.h"  #include "llteleportflags.h" @@ -5227,7 +5228,7 @@ void process_derez_container(LLMessageSystem *msg, void**)  }  void container_inventory_arrived(LLViewerObject* object, -								 InventoryObjectList* inventory, +								 LLInventoryObject::object_list_t* inventory,  								 S32 serial_num,  								 void* data)  { @@ -5247,8 +5248,8 @@ void container_inventory_arrived(LLViewerObject* object,  											  LLFolderType::FT_NONE,  											  LLTrans::getString("AcquiredItems")); -		InventoryObjectList::const_iterator it = inventory->begin(); -		InventoryObjectList::const_iterator end = inventory->end(); +		LLInventoryObject::object_list_t::const_iterator it = inventory->begin(); +		LLInventoryObject::object_list_t::const_iterator end = inventory->end();  		for ( ; it != end; ++it)  		{  			if ((*it)->getType() != LLAssetType::AT_CATEGORY) @@ -5284,7 +5285,7 @@ void container_inventory_arrived(LLViewerObject* object,  	{  		// we're going to get one fake root category as well as the  		// one actual object -		InventoryObjectList::iterator it = inventory->begin(); +		LLInventoryObject::object_list_t::iterator it = inventory->begin();  		if ((*it)->getType() == LLAssetType::AT_CATEGORY)  		{ diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h index 0ba4ac0c8d..4015cca77b 100644 --- a/indra/newview/llviewermessage.h +++ b/indra/newview/llviewermessage.h @@ -129,7 +129,7 @@ void process_frozen_message(LLMessageSystem* msg, void**);  void process_derez_container(LLMessageSystem *msg, void**);  void container_inventory_arrived(LLViewerObject* object, -								 std::list<LLPointer<LLInventoryObject> >* inventory, //InventoryObjectList +								 std::list<LLPointer<LLInventoryObject> >* inventory, //LLInventoryObject::object_list_t  								 S32 serial_num,  								 void* data); diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index e6d14079c9..ee89680fea 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -46,6 +46,7 @@  #include "llfontgl.h"  #include "llframetimer.h"  #include "llinventory.h" +#include "llinventorydefines.h"  #include "llmaterialtable.h"  #include "llmutelist.h"  #include "llnamevalue.h" @@ -2177,8 +2178,8 @@ void LLViewerObject::deleteInventoryItem(const LLUUID& item_id)  {  	if(mInventory)  	{ -		InventoryObjectList::iterator it = mInventory->begin(); -		InventoryObjectList::iterator end = mInventory->end(); +		LLInventoryObject::object_list_t::iterator it = mInventory->begin(); +		LLInventoryObject::object_list_t::iterator end = mInventory->end();  		for( ; it != end; ++it )  		{  			if((*it)->getUUID() == item_id) @@ -2488,7 +2489,7 @@ void LLViewerObject::processTaskInv(LLMessageSystem* msg, void** user_data)  		}  		else  		{ -			object->mInventory = new InventoryObjectList(); +			object->mInventory = new LLInventoryObject::object_list_t();  		}  		LLPointer<LLInventoryObject> obj;  		obj = new LLInventoryObject(object->mID, LLUUID::null, @@ -2544,7 +2545,7 @@ void LLViewerObject::loadTaskInvFile(const std::string& filename)  		}  		else  		{ -			mInventory = new InventoryObjectList; +			mInventory = new LLInventoryObject::object_list_t;  		}  		while(ifs.good())  		{ @@ -2677,8 +2678,8 @@ LLInventoryObject* LLViewerObject::getInventoryObject(const LLUUID& item_id)  	LLInventoryObject* rv = NULL;  	if(mInventory)  	{ -		InventoryObjectList::iterator it = mInventory->begin(); -		InventoryObjectList::iterator end = mInventory->end(); +		LLInventoryObject::object_list_t::iterator it = mInventory->begin(); +		LLInventoryObject::object_list_t::iterator end = mInventory->end();  		for ( ; it != end; ++it)  		{  			if((*it)->getUUID() == item_id) @@ -2691,12 +2692,12 @@ LLInventoryObject* LLViewerObject::getInventoryObject(const LLUUID& item_id)  	return rv;  } -void LLViewerObject::getInventoryContents(InventoryObjectList& objects) +void LLViewerObject::getInventoryContents(LLInventoryObject::object_list_t& objects)  {  	if(mInventory)  	{ -		InventoryObjectList::iterator it = mInventory->begin(); -		InventoryObjectList::iterator end = mInventory->end(); +		LLInventoryObject::object_list_t::iterator it = mInventory->begin(); +		LLInventoryObject::object_list_t::iterator end = mInventory->end();  		for( ; it != end; ++it)  		{  			if ((*it)->getType() != LLAssetType::AT_CATEGORY) @@ -2726,8 +2727,8 @@ LLViewerInventoryItem* LLViewerObject::getInventoryItemByAsset(const LLUUID& ass  	{  		LLViewerInventoryItem* item = NULL; -		InventoryObjectList::iterator it = mInventory->begin(); -		InventoryObjectList::iterator end = mInventory->end(); +		LLInventoryObject::object_list_t::iterator it = mInventory->begin(); +		LLInventoryObject::object_list_t::iterator end = mInventory->end();  		for( ; it != end; ++it)  		{  			LLInventoryObject* obj = *it; @@ -4089,8 +4090,8 @@ S32 LLViewerObject::countInventoryContents(LLAssetType::EType type)  	S32 count = 0;  	if( mInventory )  	{ -		InventoryObjectList::const_iterator it = mInventory->begin(); -		InventoryObjectList::const_iterator end = mInventory->end(); +		LLInventoryObject::object_list_t::const_iterator it = mInventory->begin(); +		LLInventoryObject::object_list_t::const_iterator end = mInventory->end();  		for(  ; it != end ; ++it )  		{  			if( (*it)->getType() == type ) diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 266c40d493..be83fb7ef8 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -88,7 +88,7 @@ typedef enum e_object_update_type  // callback typedef for inventory  typedef void (*inventory_callback)(LLViewerObject*, -								   InventoryObjectList*, +								   LLInventoryObject::object_list_t*,  								   S32 serial_num,  								   void*); @@ -409,7 +409,7 @@ public:  	void updateInventory(LLViewerInventoryItem* item, U8 key, bool is_new);  	void updateInventoryLocal(LLInventoryItem* item, U8 key); // Update without messaging.  	LLInventoryObject* getInventoryObject(const LLUUID& item_id); -	void getInventoryContents(InventoryObjectList& objects); +	void getInventoryContents(LLInventoryObject::object_list_t& objects);  	LLInventoryObject* getInventoryRoot();  	LLViewerInventoryItem* getInventoryItemByAsset(const LLUUID& asset_id);  	S16 getInventorySerial() const { return mInventorySerialNum; } @@ -629,7 +629,7 @@ protected:  	F32				mPixelArea; // Apparent area in pixels  	// This is the object's inventory from the viewer's perspective. -	InventoryObjectList* mInventory; +	LLInventoryObject::object_list_t* mInventory;  	class LLInventoryCallbackInfo  	{  	public: diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index c9b3886fef..59efae4cb2 100644 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -40,8 +40,8 @@  #include "llfloaterreg.h"  #include "llfloaterworldmap.h"  #include "llfocusmgr.h" -#include "llinventory.h"  #include "llinventorybridge.h" +#include "llinventorydefines.h"  #include "llinventorymodel.h"  #include "lllandmark.h"  #include "lllandmarkactions.h" @@ -525,7 +525,7 @@ LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const  			case LLAssetType::AT_SOUND:			img_name = "Inv_Sound";		break;  			case LLAssetType::AT_CLOTHING:		img_name = "Inv_Clothing";	break;  			case LLAssetType::AT_OBJECT: -				img_name = LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags() ? +				img_name = LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags() ?  					"Inv_Object_Multi" : "Inv_Object";  				break;  			case LLAssetType::AT_CALLINGCARD:	img_name = "Inv_CallingCard"; break; diff --git a/indra/newview/llvoinventorylistener.h b/indra/newview/llvoinventorylistener.h index 335e867fca..1531e6e339 100644 --- a/indra/newview/llvoinventorylistener.h +++ b/indra/newview/llvoinventorylistener.h @@ -42,7 +42,7 @@ class LLVOInventoryListener  {  public:  	virtual void inventoryChanged(LLViewerObject* object, -								 InventoryObjectList* inventory, +								 LLInventoryObject::object_list_t* inventory,  								 S32 serial_num,  								 void* user_data) = 0;  | 
