summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerinventory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerinventory.cpp')
-rw-r--r--indra/newview/llviewerinventory.cpp2370
1 files changed, 1185 insertions, 1185 deletions
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index b9a7c9448f..16810efa01 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llviewerinventory.cpp
* @brief Implementation of the viewer side inventory objects.
*
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2014, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -73,7 +73,7 @@
#include "llsettingsvo.h"
// do-nothing ops for use in callbacks.
-void no_op_inventory_func(const LLUUID&) {}
+void no_op_inventory_func(const LLUUID&) {}
void no_op_llsd_func(const LLSD&) {}
void no_op() {}
@@ -99,130 +99,130 @@ void doInventoryCb(LLPointer<LLInventoryCallback> cb, LLUUID id)
///----------------------------------------------------------------------------
class LLLocalizedInventoryItemsDictionary : public LLSingleton<LLLocalizedInventoryItemsDictionary>
{
- LLSINGLETON(LLLocalizedInventoryItemsDictionary);
+ LLSINGLETON(LLLocalizedInventoryItemsDictionary);
public:
- std::map<std::string, std::string> mInventoryItemsDict;
-
- /**
- * Finds passed name in dictionary and replaces it with found localized value.
- *
- * @param object_name - string to be localized.
- * @return true if passed name was found and localized, false otherwise.
- */
- bool localizeInventoryObjectName(std::string& object_name)
- {
- LL_DEBUGS(LOG_LOCAL) << "Searching for localization: " << object_name << LL_ENDL;
-
- std::map<std::string, std::string>::const_iterator dictionary_iter = mInventoryItemsDict.find(object_name);
-
- bool found = dictionary_iter != mInventoryItemsDict.end();
- if(found)
- {
- object_name = dictionary_iter->second;
- LL_DEBUGS(LOG_LOCAL) << "Found, new name is: " << object_name << LL_ENDL;
- }
- return found;
- }
+ std::map<std::string, std::string> mInventoryItemsDict;
+
+ /**
+ * Finds passed name in dictionary and replaces it with found localized value.
+ *
+ * @param object_name - string to be localized.
+ * @return true if passed name was found and localized, false otherwise.
+ */
+ bool localizeInventoryObjectName(std::string& object_name)
+ {
+ LL_DEBUGS(LOG_LOCAL) << "Searching for localization: " << object_name << LL_ENDL;
+
+ std::map<std::string, std::string>::const_iterator dictionary_iter = mInventoryItemsDict.find(object_name);
+
+ bool found = dictionary_iter != mInventoryItemsDict.end();
+ if(found)
+ {
+ object_name = dictionary_iter->second;
+ LL_DEBUGS(LOG_LOCAL) << "Found, new name is: " << object_name << LL_ENDL;
+ }
+ return found;
+ }
};
LLLocalizedInventoryItemsDictionary::LLLocalizedInventoryItemsDictionary()
{
- mInventoryItemsDict["New Shape"] = LLTrans::getString("New Shape");
- mInventoryItemsDict["New Skin"] = LLTrans::getString("New Skin");
- mInventoryItemsDict["New Hair"] = LLTrans::getString("New Hair");
- mInventoryItemsDict["New Eyes"] = LLTrans::getString("New Eyes");
- mInventoryItemsDict["New Shirt"] = LLTrans::getString("New Shirt");
- mInventoryItemsDict["New Pants"] = LLTrans::getString("New Pants");
- mInventoryItemsDict["New Shoes"] = LLTrans::getString("New Shoes");
- mInventoryItemsDict["New Socks"] = LLTrans::getString("New Socks");
- mInventoryItemsDict["New Jacket"] = LLTrans::getString("New Jacket");
- mInventoryItemsDict["New Gloves"] = LLTrans::getString("New Gloves");
- mInventoryItemsDict["New Undershirt"] = LLTrans::getString("New Undershirt");
- mInventoryItemsDict["New Underpants"] = LLTrans::getString("New Underpants");
- mInventoryItemsDict["New Skirt"] = LLTrans::getString("New Skirt");
- mInventoryItemsDict["New Alpha"] = LLTrans::getString("New Alpha");
- mInventoryItemsDict["New Tattoo"] = LLTrans::getString("New Tattoo");
- mInventoryItemsDict["New Universal"] = LLTrans::getString("New Universal");
- mInventoryItemsDict["New Physics"] = LLTrans::getString("New Physics");
- mInventoryItemsDict["Invalid Wearable"] = LLTrans::getString("Invalid Wearable");
-
- mInventoryItemsDict["New Gesture"] = LLTrans::getString("New Gesture");
+ mInventoryItemsDict["New Shape"] = LLTrans::getString("New Shape");
+ mInventoryItemsDict["New Skin"] = LLTrans::getString("New Skin");
+ mInventoryItemsDict["New Hair"] = LLTrans::getString("New Hair");
+ mInventoryItemsDict["New Eyes"] = LLTrans::getString("New Eyes");
+ mInventoryItemsDict["New Shirt"] = LLTrans::getString("New Shirt");
+ mInventoryItemsDict["New Pants"] = LLTrans::getString("New Pants");
+ mInventoryItemsDict["New Shoes"] = LLTrans::getString("New Shoes");
+ mInventoryItemsDict["New Socks"] = LLTrans::getString("New Socks");
+ mInventoryItemsDict["New Jacket"] = LLTrans::getString("New Jacket");
+ mInventoryItemsDict["New Gloves"] = LLTrans::getString("New Gloves");
+ mInventoryItemsDict["New Undershirt"] = LLTrans::getString("New Undershirt");
+ mInventoryItemsDict["New Underpants"] = LLTrans::getString("New Underpants");
+ mInventoryItemsDict["New Skirt"] = LLTrans::getString("New Skirt");
+ mInventoryItemsDict["New Alpha"] = LLTrans::getString("New Alpha");
+ mInventoryItemsDict["New Tattoo"] = LLTrans::getString("New Tattoo");
+ mInventoryItemsDict["New Universal"] = LLTrans::getString("New Universal");
+ mInventoryItemsDict["New Physics"] = LLTrans::getString("New Physics");
+ mInventoryItemsDict["Invalid Wearable"] = LLTrans::getString("Invalid Wearable");
+
+ mInventoryItemsDict["New Gesture"] = LLTrans::getString("New Gesture");
mInventoryItemsDict["New Material"] = LLTrans::getString("New Material");
- mInventoryItemsDict["New Script"] = LLTrans::getString("New Script");
- mInventoryItemsDict["New Folder"] = LLTrans::getString("New Folder");
- mInventoryItemsDict["New Note"] = LLTrans::getString("New Note");
- mInventoryItemsDict["Contents"] = LLTrans::getString("Contents");
-
- mInventoryItemsDict["Gesture"] = LLTrans::getString("Gesture");
- mInventoryItemsDict["Male Gestures"] = LLTrans::getString("Male Gestures");
- mInventoryItemsDict["Female Gestures"] = LLTrans::getString("Female Gestures");
- mInventoryItemsDict["Other Gestures"] = LLTrans::getString("Other Gestures");
- mInventoryItemsDict["Speech Gestures"] = LLTrans::getString("Speech Gestures");
- mInventoryItemsDict["Common Gestures"] = LLTrans::getString("Common Gestures");
-
- //predefined gestures
-
- //male
- mInventoryItemsDict["Male - Excuse me"] = LLTrans::getString("Male - Excuse me");
- mInventoryItemsDict["Male - Get lost"] = LLTrans::getString("Male - Get lost"); // double space after Male. EXT-8319
- mInventoryItemsDict["Male - Blow kiss"] = LLTrans::getString("Male - Blow kiss");
- mInventoryItemsDict["Male - Boo"] = LLTrans::getString("Male - Boo");
- mInventoryItemsDict["Male - Bored"] = LLTrans::getString("Male - Bored");
- mInventoryItemsDict["Male - Hey"] = LLTrans::getString("Male - Hey");
- mInventoryItemsDict["Male - Laugh"] = LLTrans::getString("Male - Laugh");
- mInventoryItemsDict["Male - Repulsed"] = LLTrans::getString("Male - Repulsed");
- mInventoryItemsDict["Male - Shrug"] = LLTrans::getString("Male - Shrug");
- mInventoryItemsDict["Male - Stick tougue out"] = LLTrans::getString("Male - Stick tougue out");
- mInventoryItemsDict["Male - Wow"] = LLTrans::getString("Male - Wow");
-
- //female
- mInventoryItemsDict["Female - Chuckle"] = LLTrans::getString("Female - Chuckle");
- mInventoryItemsDict["Female - Cry"] = LLTrans::getString("Female - Cry");
- mInventoryItemsDict["Female - Embarrassed"] = LLTrans::getString("Female - Embarrassed");
- mInventoryItemsDict["Female - Excuse me"] = LLTrans::getString("Female - Excuse me");
- mInventoryItemsDict["Female - Get lost"] = LLTrans::getString("Female - Get lost"); // double space after Female. EXT-8319
- mInventoryItemsDict["Female - Blow kiss"] = LLTrans::getString("Female - Blow kiss");
- mInventoryItemsDict["Female - Boo"] = LLTrans::getString("Female - Boo");
- mInventoryItemsDict["Female - Bored"] = LLTrans::getString("Female - Bored");
- mInventoryItemsDict["Female - Hey"] = LLTrans::getString("Female - Hey");
- mInventoryItemsDict["Female - Hey baby"] = LLTrans::getString("Female - Hey baby");
- mInventoryItemsDict["Female - Laugh"] = LLTrans::getString("Female - Laugh");
- mInventoryItemsDict["Female - Looking good"] = LLTrans::getString("Female - Looking good");
- mInventoryItemsDict["Female - Over here"] = LLTrans::getString("Female - Over here");
- mInventoryItemsDict["Female - Please"] = LLTrans::getString("Female - Please");
- mInventoryItemsDict["Female - Repulsed"] = LLTrans::getString("Female - Repulsed");
- mInventoryItemsDict["Female - Shrug"] = LLTrans::getString("Female - Shrug");
- mInventoryItemsDict["Female - Stick tougue out"]= LLTrans::getString("Female - Stick tougue out");
- mInventoryItemsDict["Female - Wow"] = LLTrans::getString("Female - Wow");
-
- //common
- mInventoryItemsDict["/bow"] = LLTrans::getString("/bow");
- mInventoryItemsDict["/clap"] = LLTrans::getString("/clap");
- mInventoryItemsDict["/count"] = LLTrans::getString("/count");
- mInventoryItemsDict["/extinguish"] = LLTrans::getString("/extinguish");
- mInventoryItemsDict["/kmb"] = LLTrans::getString("/kmb");
- mInventoryItemsDict["/muscle"] = LLTrans::getString("/muscle");
- mInventoryItemsDict["/no"] = LLTrans::getString("/no");
- mInventoryItemsDict["/no!"] = LLTrans::getString("/no!");
- mInventoryItemsDict["/paper"] = LLTrans::getString("/paper");
- mInventoryItemsDict["/pointme"] = LLTrans::getString("/pointme");
- mInventoryItemsDict["/pointyou"] = LLTrans::getString("/pointyou");
- mInventoryItemsDict["/rock"] = LLTrans::getString("/rock");
- mInventoryItemsDict["/scissor"] = LLTrans::getString("/scissor");
- mInventoryItemsDict["/smoke"] = LLTrans::getString("/smoke");
- mInventoryItemsDict["/stretch"] = LLTrans::getString("/stretch");
- mInventoryItemsDict["/whistle"] = LLTrans::getString("/whistle");
- mInventoryItemsDict["/yes"] = LLTrans::getString("/yes");
- mInventoryItemsDict["/yes!"] = LLTrans::getString("/yes!");
- mInventoryItemsDict["afk"] = LLTrans::getString("afk");
- mInventoryItemsDict["dance1"] = LLTrans::getString("dance1");
- mInventoryItemsDict["dance2"] = LLTrans::getString("dance2");
- mInventoryItemsDict["dance3"] = LLTrans::getString("dance3");
- mInventoryItemsDict["dance4"] = LLTrans::getString("dance4");
- mInventoryItemsDict["dance5"] = LLTrans::getString("dance5");
- mInventoryItemsDict["dance6"] = LLTrans::getString("dance6");
- mInventoryItemsDict["dance7"] = LLTrans::getString("dance7");
- mInventoryItemsDict["dance8"] = LLTrans::getString("dance8");
+ mInventoryItemsDict["New Script"] = LLTrans::getString("New Script");
+ mInventoryItemsDict["New Folder"] = LLTrans::getString("New Folder");
+ mInventoryItemsDict["New Note"] = LLTrans::getString("New Note");
+ mInventoryItemsDict["Contents"] = LLTrans::getString("Contents");
+
+ mInventoryItemsDict["Gesture"] = LLTrans::getString("Gesture");
+ mInventoryItemsDict["Male Gestures"] = LLTrans::getString("Male Gestures");
+ mInventoryItemsDict["Female Gestures"] = LLTrans::getString("Female Gestures");
+ mInventoryItemsDict["Other Gestures"] = LLTrans::getString("Other Gestures");
+ mInventoryItemsDict["Speech Gestures"] = LLTrans::getString("Speech Gestures");
+ mInventoryItemsDict["Common Gestures"] = LLTrans::getString("Common Gestures");
+
+ //predefined gestures
+
+ //male
+ mInventoryItemsDict["Male - Excuse me"] = LLTrans::getString("Male - Excuse me");
+ mInventoryItemsDict["Male - Get lost"] = LLTrans::getString("Male - Get lost"); // double space after Male. EXT-8319
+ mInventoryItemsDict["Male - Blow kiss"] = LLTrans::getString("Male - Blow kiss");
+ mInventoryItemsDict["Male - Boo"] = LLTrans::getString("Male - Boo");
+ mInventoryItemsDict["Male - Bored"] = LLTrans::getString("Male - Bored");
+ mInventoryItemsDict["Male - Hey"] = LLTrans::getString("Male - Hey");
+ mInventoryItemsDict["Male - Laugh"] = LLTrans::getString("Male - Laugh");
+ mInventoryItemsDict["Male - Repulsed"] = LLTrans::getString("Male - Repulsed");
+ mInventoryItemsDict["Male - Shrug"] = LLTrans::getString("Male - Shrug");
+ mInventoryItemsDict["Male - Stick tougue out"] = LLTrans::getString("Male - Stick tougue out");
+ mInventoryItemsDict["Male - Wow"] = LLTrans::getString("Male - Wow");
+
+ //female
+ mInventoryItemsDict["Female - Chuckle"] = LLTrans::getString("Female - Chuckle");
+ mInventoryItemsDict["Female - Cry"] = LLTrans::getString("Female - Cry");
+ mInventoryItemsDict["Female - Embarrassed"] = LLTrans::getString("Female - Embarrassed");
+ mInventoryItemsDict["Female - Excuse me"] = LLTrans::getString("Female - Excuse me");
+ mInventoryItemsDict["Female - Get lost"] = LLTrans::getString("Female - Get lost"); // double space after Female. EXT-8319
+ mInventoryItemsDict["Female - Blow kiss"] = LLTrans::getString("Female - Blow kiss");
+ mInventoryItemsDict["Female - Boo"] = LLTrans::getString("Female - Boo");
+ mInventoryItemsDict["Female - Bored"] = LLTrans::getString("Female - Bored");
+ mInventoryItemsDict["Female - Hey"] = LLTrans::getString("Female - Hey");
+ mInventoryItemsDict["Female - Hey baby"] = LLTrans::getString("Female - Hey baby");
+ mInventoryItemsDict["Female - Laugh"] = LLTrans::getString("Female - Laugh");
+ mInventoryItemsDict["Female - Looking good"] = LLTrans::getString("Female - Looking good");
+ mInventoryItemsDict["Female - Over here"] = LLTrans::getString("Female - Over here");
+ mInventoryItemsDict["Female - Please"] = LLTrans::getString("Female - Please");
+ mInventoryItemsDict["Female - Repulsed"] = LLTrans::getString("Female - Repulsed");
+ mInventoryItemsDict["Female - Shrug"] = LLTrans::getString("Female - Shrug");
+ mInventoryItemsDict["Female - Stick tougue out"]= LLTrans::getString("Female - Stick tougue out");
+ mInventoryItemsDict["Female - Wow"] = LLTrans::getString("Female - Wow");
+
+ //common
+ mInventoryItemsDict["/bow"] = LLTrans::getString("/bow");
+ mInventoryItemsDict["/clap"] = LLTrans::getString("/clap");
+ mInventoryItemsDict["/count"] = LLTrans::getString("/count");
+ mInventoryItemsDict["/extinguish"] = LLTrans::getString("/extinguish");
+ mInventoryItemsDict["/kmb"] = LLTrans::getString("/kmb");
+ mInventoryItemsDict["/muscle"] = LLTrans::getString("/muscle");
+ mInventoryItemsDict["/no"] = LLTrans::getString("/no");
+ mInventoryItemsDict["/no!"] = LLTrans::getString("/no!");
+ mInventoryItemsDict["/paper"] = LLTrans::getString("/paper");
+ mInventoryItemsDict["/pointme"] = LLTrans::getString("/pointme");
+ mInventoryItemsDict["/pointyou"] = LLTrans::getString("/pointyou");
+ mInventoryItemsDict["/rock"] = LLTrans::getString("/rock");
+ mInventoryItemsDict["/scissor"] = LLTrans::getString("/scissor");
+ mInventoryItemsDict["/smoke"] = LLTrans::getString("/smoke");
+ mInventoryItemsDict["/stretch"] = LLTrans::getString("/stretch");
+ mInventoryItemsDict["/whistle"] = LLTrans::getString("/whistle");
+ mInventoryItemsDict["/yes"] = LLTrans::getString("/yes");
+ mInventoryItemsDict["/yes!"] = LLTrans::getString("/yes!");
+ mInventoryItemsDict["afk"] = LLTrans::getString("afk");
+ mInventoryItemsDict["dance1"] = LLTrans::getString("dance1");
+ mInventoryItemsDict["dance2"] = LLTrans::getString("dance2");
+ mInventoryItemsDict["dance3"] = LLTrans::getString("dance3");
+ mInventoryItemsDict["dance4"] = LLTrans::getString("dance4");
+ mInventoryItemsDict["dance5"] = LLTrans::getString("dance5");
+ mInventoryItemsDict["dance6"] = LLTrans::getString("dance6");
+ mInventoryItemsDict["dance7"] = LLTrans::getString("dance7");
+ mInventoryItemsDict["dance8"] = LLTrans::getString("dance8");
}
///----------------------------------------------------------------------------
@@ -255,66 +255,66 @@ public:
return false;
}
- bool handle(const LLSD& params,
+ bool handle(const LLSD& params,
const LLSD& query_map,
const std::string& grid,
LLMediaCtrl* web)
- {
- if (params.size() < 1)
- {
- return false;
- }
-
- if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableInventory"))
- {
- LLNotificationsUtil::add("NoInventory", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
- return true;
- }
-
- // support secondlife:///app/inventory/show
- if (params[0].asString() == "show")
- {
- LLFloaterSidePanelContainer::showPanel("inventory", LLSD());
- return true;
- }
-
- if (params[0].asString() == "filters")
- {
- LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
- if (sidepanel_inventory)
- {
- LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
- if (main_inventory)
- {
- main_inventory->toggleFindOptions();
- }
- }
- return true;
- }
-
- // otherwise, we need a UUID and a verb...
- if (params.size() < 2)
- {
- return false;
- }
- LLUUID inventory_id;
- if (!inventory_id.set(params[0], FALSE))
- {
- return false;
- }
-
- const std::string verb = params[1].asString();
- if (verb == "select")
- {
- uuid_vec_t items_to_open;
- items_to_open.push_back(inventory_id);
- //inventory_handler is just a stub, because we don't know from who this offer
- open_inventory_offer(items_to_open, "inventory_handler");
- return true;
- }
-
- return false;
- }
+ {
+ if (params.size() < 1)
+ {
+ return false;
+ }
+
+ if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableInventory"))
+ {
+ LLNotificationsUtil::add("NoInventory", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
+ return true;
+ }
+
+ // support secondlife:///app/inventory/show
+ if (params[0].asString() == "show")
+ {
+ LLFloaterSidePanelContainer::showPanel("inventory", LLSD());
+ return true;
+ }
+
+ if (params[0].asString() == "filters")
+ {
+ LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
+ if (sidepanel_inventory)
+ {
+ LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
+ if (main_inventory)
+ {
+ main_inventory->toggleFindOptions();
+ }
+ }
+ return true;
+ }
+
+ // otherwise, we need a UUID and a verb...
+ if (params.size() < 2)
+ {
+ return false;
+ }
+ LLUUID inventory_id;
+ if (!inventory_id.set(params[0], FALSE))
+ {
+ return false;
+ }
+
+ const std::string verb = params[1].asString();
+ if (verb == "select")
+ {
+ uuid_vec_t items_to_open;
+ items_to_open.push_back(inventory_id);
+ //inventory_handler is just a stub, because we don't know from who this offer
+ open_inventory_offer(items_to_open, "inventory_handler");
+ return true;
+ }
+
+ return false;
+ }
};
LLInventoryHandler gInventoryHandler;
@@ -323,55 +323,55 @@ LLInventoryHandler gInventoryHandler;
///----------------------------------------------------------------------------
LLViewerInventoryItem::LLViewerInventoryItem(const LLUUID& uuid,
- const LLUUID& parent_uuid,
- const LLPermissions& perm,
- const LLUUID& asset_uuid,
- LLAssetType::EType type,
- LLInventoryType::EType inv_type,
- const std::string& name,
- const std::string& desc,
- const LLSaleInfo& sale_info,
- U32 flags,
- time_t creation_date_utc) :
- LLInventoryItem(uuid, parent_uuid, perm, asset_uuid, type, inv_type,
- name, desc, sale_info, flags, creation_date_utc),
- mIsComplete(true)
+ const LLUUID& parent_uuid,
+ const LLPermissions& perm,
+ const LLUUID& asset_uuid,
+ LLAssetType::EType type,
+ LLInventoryType::EType inv_type,
+ const std::string& name,
+ const std::string& desc,
+ const LLSaleInfo& sale_info,
+ U32 flags,
+ time_t creation_date_utc) :
+ LLInventoryItem(uuid, parent_uuid, perm, asset_uuid, type, inv_type,
+ name, desc, sale_info, flags, creation_date_utc),
+ mIsComplete(true)
{
}
LLViewerInventoryItem::LLViewerInventoryItem(const LLUUID& item_id,
- const LLUUID& parent_id,
- const std::string& name,
- LLInventoryType::EType inv_type) :
- LLInventoryItem(),
- mIsComplete(false)
+ const LLUUID& parent_id,
+ const std::string& name,
+ LLInventoryType::EType inv_type) :
+ LLInventoryItem(),
+ mIsComplete(false)
{
- mUUID = item_id;
- mParentUUID = parent_id;
- mInventoryType = inv_type;
- mName = name;
+ mUUID = item_id;
+ mParentUUID = parent_id;
+ mInventoryType = inv_type;
+ mName = name;
}
LLViewerInventoryItem::LLViewerInventoryItem() :
- LLInventoryItem(),
- mIsComplete(false)
+ LLInventoryItem(),
+ mIsComplete(false)
{
}
LLViewerInventoryItem::LLViewerInventoryItem(const LLViewerInventoryItem* other) :
- LLInventoryItem()
+ LLInventoryItem()
{
- copyViewerItem(other);
- if (!mIsComplete)
- {
- LL_WARNS(LOG_INV) << "LLViewerInventoryItem copy constructor for incomplete item"
- << mUUID << LL_ENDL;
- }
+ copyViewerItem(other);
+ if (!mIsComplete)
+ {
+ LL_WARNS(LOG_INV) << "LLViewerInventoryItem copy constructor for incomplete item"
+ << mUUID << LL_ENDL;
+ }
}
LLViewerInventoryItem::LLViewerInventoryItem(const LLInventoryItem *other) :
- LLInventoryItem(other),
- mIsComplete(true)
+ LLInventoryItem(other),
+ mIsComplete(true)
{
}
@@ -382,50 +382,50 @@ LLViewerInventoryItem::~LLViewerInventoryItem()
void LLViewerInventoryItem::copyViewerItem(const LLViewerInventoryItem* other)
{
- LLInventoryItem::copyItem(other);
- mIsComplete = other->mIsComplete;
- mTransactionID = other->mTransactionID;
+ LLInventoryItem::copyItem(other);
+ mIsComplete = other->mIsComplete;
+ mTransactionID = other->mTransactionID;
}
// virtual
void LLViewerInventoryItem::copyItem(const LLInventoryItem *other)
{
- LLInventoryItem::copyItem(other);
- mIsComplete = true;
- mTransactionID.setNull();
+ LLInventoryItem::copyItem(other);
+ mIsComplete = true;
+ mTransactionID.setNull();
}
void LLViewerInventoryItem::cloneViewerItem(LLPointer<LLViewerInventoryItem>& newitem) const
{
- newitem = new LLViewerInventoryItem(this);
- if(newitem.notNull())
- {
- LLUUID item_id;
- item_id.generate();
- newitem->setUUID(item_id);
- }
+ newitem = new LLViewerInventoryItem(this);
+ if(newitem.notNull())
+ {
+ LLUUID item_id;
+ item_id.generate();
+ newitem->setUUID(item_id);
+ }
}
void LLViewerInventoryItem::updateServer(BOOL is_new) const
{
- if(!mIsComplete)
- {
- // *FIX: deal with this better.
- // If we're crashing here then the UI is incorrectly enabled.
- LL_ERRS(LOG_INV) << "LLViewerInventoryItem::updateServer() - for incomplete item"
- << LL_ENDL;
- return;
- }
- if(gAgent.getID() != mPermissions.getOwner())
- {
- // *FIX: deal with this better.
- LL_WARNS(LOG_INV) << "LLViewerInventoryItem::updateServer() - for unowned item "
- << ll_pretty_print_sd(this->asLLSD())
- << LL_ENDL;
- return;
- }
- LLInventoryModel::LLCategoryUpdate up(mParentUUID, is_new ? 1 : 0);
- gInventory.accountForUpdate(up);
+ if(!mIsComplete)
+ {
+ // *FIX: deal with this better.
+ // If we're crashing here then the UI is incorrectly enabled.
+ LL_ERRS(LOG_INV) << "LLViewerInventoryItem::updateServer() - for incomplete item"
+ << LL_ENDL;
+ return;
+ }
+ if(gAgent.getID() != mPermissions.getOwner())
+ {
+ // *FIX: deal with this better.
+ LL_WARNS(LOG_INV) << "LLViewerInventoryItem::updateServer() - for unowned item "
+ << ll_pretty_print_sd(this->asLLSD())
+ << LL_ENDL;
+ return;
+ }
+ LLInventoryModel::LLCategoryUpdate up(mParentUUID, is_new ? 1 : 0);
+ gInventory.accountForUpdate(up);
LLSD updates = asLLSD();
// Replace asset_id and/or shadow_id with transaction_id (hash_id)
@@ -451,8 +451,8 @@ void LLViewerInventoryItem::updateServer(BOOL is_new) const
void LLViewerInventoryItem::fetchFromServer(void) const
{
- if(!mIsComplete)
- {
+ if(!mIsComplete)
+ {
if (AISAPI::isAvailable()) // AIS v 3
{
LLInventoryModelBackgroundFetch::getInstance()->scheduleItemFetch(mUUID);
@@ -490,86 +490,86 @@ void LLViewerInventoryItem::fetchFromServer(void) const
gInventory.requestPost(true, url, body, handler, "Inventory Item");
}
}
- }
+ }
}
// virtual
BOOL LLViewerInventoryItem::unpackMessage(const LLSD& item)
{
- BOOL rv = LLInventoryItem::fromLLSD(item);
+ BOOL rv = LLInventoryItem::fromLLSD(item);
- LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
+ LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
- mIsComplete = TRUE;
- return rv;
+ mIsComplete = TRUE;
+ return rv;
}
// virtual
BOOL LLViewerInventoryItem::unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num)
{
- BOOL rv = LLInventoryItem::unpackMessage(msg, block, block_num);
+ BOOL rv = LLInventoryItem::unpackMessage(msg, block, block_num);
- LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
+ LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
- mIsComplete = TRUE;
- return rv;
+ mIsComplete = TRUE;
+ return rv;
}
void LLViewerInventoryItem::setTransactionID(const LLTransactionID& transaction_id)
{
- mTransactionID = transaction_id;
+ mTransactionID = transaction_id;
}
void LLViewerInventoryItem::packMessage(LLMessageSystem* msg) const
{
- msg->addUUIDFast(_PREHASH_ItemID, mUUID);
- msg->addUUIDFast(_PREHASH_FolderID, mParentUUID);
- mPermissions.packMessage(msg);
- msg->addUUIDFast(_PREHASH_TransactionID, mTransactionID);
- S8 type = static_cast<S8>(mType);
- msg->addS8Fast(_PREHASH_Type, type);
- type = static_cast<S8>(mInventoryType);
- msg->addS8Fast(_PREHASH_InvType, type);
- msg->addU32Fast(_PREHASH_Flags, mFlags);
- mSaleInfo.packMessage(msg);
- msg->addStringFast(_PREHASH_Name, mName);
- msg->addStringFast(_PREHASH_Description, mDescription);
- msg->addS32Fast(_PREHASH_CreationDate, mCreationDate);
- U32 crc = getCRC32();
- msg->addU32Fast(_PREHASH_CRC, crc);
+ msg->addUUIDFast(_PREHASH_ItemID, mUUID);
+ msg->addUUIDFast(_PREHASH_FolderID, mParentUUID);
+ mPermissions.packMessage(msg);
+ msg->addUUIDFast(_PREHASH_TransactionID, mTransactionID);
+ S8 type = static_cast<S8>(mType);
+ msg->addS8Fast(_PREHASH_Type, type);
+ type = static_cast<S8>(mInventoryType);
+ msg->addS8Fast(_PREHASH_InvType, type);
+ msg->addU32Fast(_PREHASH_Flags, mFlags);
+ mSaleInfo.packMessage(msg);
+ msg->addStringFast(_PREHASH_Name, mName);
+ msg->addStringFast(_PREHASH_Description, mDescription);
+ msg->addS32Fast(_PREHASH_CreationDate, mCreationDate);
+ U32 crc = getCRC32();
+ msg->addU32Fast(_PREHASH_CRC, crc);
}
// virtual
BOOL LLViewerInventoryItem::importLegacyStream(std::istream& input_stream)
{
- BOOL rv = LLInventoryItem::importLegacyStream(input_stream);
- mIsComplete = TRUE;
- return rv;
+ BOOL rv = LLInventoryItem::importLegacyStream(input_stream);
+ mIsComplete = TRUE;
+ return rv;
}
void LLViewerInventoryItem::updateParentOnServer(BOOL restamp) const
{
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_MoveInventoryItem);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->addBOOLFast(_PREHASH_Stamp, restamp);
- msg->nextBlockFast(_PREHASH_InventoryData);
- msg->addUUIDFast(_PREHASH_ItemID, mUUID);
- msg->addUUIDFast(_PREHASH_FolderID, mParentUUID);
- msg->addString("NewName", NULL);
- gAgent.sendReliableMessage();
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_MoveInventoryItem);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->addBOOLFast(_PREHASH_Stamp, restamp);
+ msg->nextBlockFast(_PREHASH_InventoryData);
+ msg->addUUIDFast(_PREHASH_ItemID, mUUID);
+ msg->addUUIDFast(_PREHASH_FolderID, mParentUUID);
+ msg->addString("NewName", NULL);
+ gAgent.sendReliableMessage();
}
//void LLViewerInventoryItem::setCloneCount(S32 clones)
//{
-// mClones = clones;
+// mClones = clones;
//}
//S32 LLViewerInventoryItem::getCloneCount() const
//{
-// return mClones;
+// return mClones;
//}
///----------------------------------------------------------------------------
@@ -577,31 +577,31 @@ void LLViewerInventoryItem::updateParentOnServer(BOOL restamp) const
///----------------------------------------------------------------------------
LLViewerInventoryCategory::LLViewerInventoryCategory(const LLUUID& uuid,
- const LLUUID& parent_uuid,
- LLFolderType::EType pref,
- const std::string& name,
- const LLUUID& owner_id) :
- LLInventoryCategory(uuid, parent_uuid, pref, name),
- mOwnerID(owner_id),
- mVersion(LLViewerInventoryCategory::VERSION_UNKNOWN),
- mDescendentCount(LLViewerInventoryCategory::DESCENDENT_COUNT_UNKNOWN),
+ const LLUUID& parent_uuid,
+ LLFolderType::EType pref,
+ const std::string& name,
+ const LLUUID& owner_id) :
+ LLInventoryCategory(uuid, parent_uuid, pref, name),
+ mOwnerID(owner_id),
+ mVersion(LLViewerInventoryCategory::VERSION_UNKNOWN),
+ mDescendentCount(LLViewerInventoryCategory::DESCENDENT_COUNT_UNKNOWN),
mFetching(FETCH_NONE)
{
- mDescendentsRequested.reset();
+ mDescendentsRequested.reset();
}
LLViewerInventoryCategory::LLViewerInventoryCategory(const LLUUID& owner_id) :
- mOwnerID(owner_id),
- mVersion(LLViewerInventoryCategory::VERSION_UNKNOWN),
- mDescendentCount(LLViewerInventoryCategory::DESCENDENT_COUNT_UNKNOWN),
+ mOwnerID(owner_id),
+ mVersion(LLViewerInventoryCategory::VERSION_UNKNOWN),
+ mDescendentCount(LLViewerInventoryCategory::DESCENDENT_COUNT_UNKNOWN),
mFetching(FETCH_NONE)
{
- mDescendentsRequested.reset();
+ mDescendentsRequested.reset();
}
LLViewerInventoryCategory::LLViewerInventoryCategory(const LLViewerInventoryCategory* other)
{
- copyViewerCategory(other);
+ copyViewerCategory(other);
mFetching = FETCH_NONE;
}
@@ -611,47 +611,47 @@ LLViewerInventoryCategory::~LLViewerInventoryCategory()
void LLViewerInventoryCategory::copyViewerCategory(const LLViewerInventoryCategory* other)
{
- copyCategory(other);
- mOwnerID = other->mOwnerID;
- setVersion(other->getVersion());
- mDescendentCount = other->mDescendentCount;
- mDescendentsRequested = other->mDescendentsRequested;
+ copyCategory(other);
+ mOwnerID = other->mOwnerID;
+ setVersion(other->getVersion());
+ mDescendentCount = other->mDescendentCount;
+ mDescendentsRequested = other->mDescendentsRequested;
}
void LLViewerInventoryCategory::packMessage(LLMessageSystem* msg) const
{
- msg->addUUIDFast(_PREHASH_FolderID, mUUID);
- msg->addUUIDFast(_PREHASH_ParentID, mParentUUID);
- S8 type = static_cast<S8>(mPreferredType);
- msg->addS8Fast(_PREHASH_Type, type);
- msg->addStringFast(_PREHASH_Name, mName);
+ msg->addUUIDFast(_PREHASH_FolderID, mUUID);
+ msg->addUUIDFast(_PREHASH_ParentID, mParentUUID);
+ S8 type = static_cast<S8>(mPreferredType);
+ msg->addS8Fast(_PREHASH_Type, type);
+ msg->addStringFast(_PREHASH_Name, mName);
}
void LLViewerInventoryCategory::updateParentOnServer(BOOL restamp) const
{
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_MoveInventoryFolder);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_MoveInventoryFolder);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->addBOOL("Stamp", restamp);
- msg->nextBlockFast(_PREHASH_InventoryData);
- msg->addUUIDFast(_PREHASH_FolderID, mUUID);
- msg->addUUIDFast(_PREHASH_ParentID, mParentUUID);
- gAgent.sendReliableMessage();
+ msg->addBOOL("Stamp", restamp);
+ msg->nextBlockFast(_PREHASH_InventoryData);
+ msg->addUUIDFast(_PREHASH_FolderID, mUUID);
+ msg->addUUIDFast(_PREHASH_ParentID, mParentUUID);
+ gAgent.sendReliableMessage();
}
void LLViewerInventoryCategory::updateServer(BOOL is_new) const
{
- // communicate that change with the server.
+ // communicate that change with the server.
- if (LLFolderType::lookupIsProtectedType(mPreferredType))
- {
- LLNotificationsUtil::add("CannotModifyProtectedCategories");
- return;
- }
+ if (LLFolderType::lookupIsProtectedType(mPreferredType))
+ {
+ LLNotificationsUtil::add("CannotModifyProtectedCategories");
+ return;
+ }
LLSD new_llsd = asLLSD();
AISAPI::completion_t cr = boost::bind(&doInventoryCb, (LLPointer<LLInventoryCallback>)NULL, _1);
@@ -660,39 +660,39 @@ void LLViewerInventoryCategory::updateServer(BOOL is_new) const
S32 LLViewerInventoryCategory::getVersion() const
{
- return mVersion;
+ return mVersion;
}
void LLViewerInventoryCategory::setVersion(S32 version)
{
- mVersion = version;
+ mVersion = version;
}
bool LLViewerInventoryCategory::fetch(S32 expiry_seconds)
{
- if((VERSION_UNKNOWN == getVersion())
- && mDescendentsRequested.hasExpired()) //Expired check prevents multiple downloads.
- {
- LL_DEBUGS(LOG_INV) << "Fetching category children: " << mName << ", UUID: " << mUUID << LL_ENDL;
- mDescendentsRequested.reset();
- mDescendentsRequested.setTimerExpirySec(expiry_seconds);
-
- std::string url;
- if (gAgent.getRegion())
- {
- url = gAgent.getRegion()->getCapability("FetchInventoryDescendents2");
- }
- else
- {
- LL_WARNS_ONCE(LOG_INV) << "agent region is null" << LL_ENDL;
- }
- if (!url.empty() || AISAPI::isAvailable())
- {
- LLInventoryModelBackgroundFetch::instance().start(mUUID, false);
- }
- return true;
- }
- return false;
+ if((VERSION_UNKNOWN == getVersion())
+ && mDescendentsRequested.hasExpired()) //Expired check prevents multiple downloads.
+ {
+ LL_DEBUGS(LOG_INV) << "Fetching category children: " << mName << ", UUID: " << mUUID << LL_ENDL;
+ mDescendentsRequested.reset();
+ mDescendentsRequested.setTimerExpirySec(expiry_seconds);
+
+ std::string url;
+ if (gAgent.getRegion())
+ {
+ url = gAgent.getRegion()->getCapability("FetchInventoryDescendents2");
+ }
+ else
+ {
+ LL_WARNS_ONCE(LOG_INV) << "agent region is null" << LL_ENDL;
+ }
+ if (!url.empty() || AISAPI::isAvailable())
+ {
+ LLInventoryModelBackgroundFetch::instance().start(mUUID, false);
+ }
+ return true;
+ }
+ return false;
}
LLViewerInventoryCategory::EFetchType LLViewerInventoryCategory::getFetching()
@@ -740,38 +740,38 @@ void LLViewerInventoryCategory::setFetching(LLViewerInventoryCategory::EFetchTyp
S32 LLViewerInventoryCategory::getViewerDescendentCount() const
{
- LLInventoryModel::cat_array_t* cats;
- LLInventoryModel::item_array_t* items;
- gInventory.getDirectDescendentsOf(getUUID(), cats, items);
- S32 descendents_actual = 0;
- if(cats && items)
- {
- descendents_actual = cats->size() + items->size();
- }
- return descendents_actual;
+ LLInventoryModel::cat_array_t* cats;
+ LLInventoryModel::item_array_t* items;
+ gInventory.getDirectDescendentsOf(getUUID(), cats, items);
+ S32 descendents_actual = 0;
+ if(cats && items)
+ {
+ descendents_actual = cats->size() + items->size();
+ }
+ return descendents_actual;
}
LLSD LLViewerInventoryCategory::exportLLSD() const
{
- LLSD cat_data = LLInventoryCategory::exportLLSD();
- cat_data[INV_OWNER_ID] = mOwnerID;
- cat_data[INV_VERSION] = mVersion;
+ LLSD cat_data = LLInventoryCategory::exportLLSD();
+ cat_data[INV_OWNER_ID] = mOwnerID;
+ cat_data[INV_VERSION] = mVersion;
- return cat_data;
+ return cat_data;
}
bool LLViewerInventoryCategory::importLLSD(const LLSD& cat_data)
{
- LLInventoryCategory::importLLSD(cat_data);
- if (cat_data.has(INV_OWNER_ID))
- {
- mOwnerID = cat_data[INV_OWNER_ID].asUUID();
- }
- if (cat_data.has(INV_VERSION))
- {
- setVersion(cat_data[INV_VERSION].asInteger());
- }
- return true;
+ LLInventoryCategory::importLLSD(cat_data);
+ if (cat_data.has(INV_OWNER_ID))
+ {
+ mOwnerID = cat_data[INV_OWNER_ID].asUUID();
+ }
+ if (cat_data.has(INV_VERSION))
+ {
+ setVersion(cat_data[INV_VERSION].asInteger());
+ }
+ return true;
}
bool LLViewerInventoryCategory::acceptItem(LLInventoryItem* inv_item)
@@ -806,94 +806,94 @@ bool LLViewerInventoryCategory::acceptItem(LLInventoryItem* inv_item)
void LLViewerInventoryCategory::determineFolderType()
{
- /* Do NOT uncomment this code. This is for future 2.1 support of ensembles.
- llassert(FALSE);
- LLFolderType::EType original_type = getPreferredType();
- if (LLFolderType::lookupIsProtectedType(original_type))
- return;
-
- U64 folder_valid = 0;
- U64 folder_invalid = 0;
- LLInventoryModel::cat_array_t category_array;
- LLInventoryModel::item_array_t item_array;
- gInventory.collectDescendents(getUUID(),category_array,item_array,FALSE);
-
- // For ensembles
- if (category_array.empty())
- {
- for (LLInventoryModel::item_array_t::iterator item_iter = item_array.begin();
- item_iter != item_array.end();
- item_iter++)
- {
- const LLViewerInventoryItem *item = (*item_iter);
- if (item->getIsLinkType())
- return;
- if (item->isWearableType())
- {
- const LLWearableType::EType wearable_type = item->getWearableType();
- const std::string& wearable_name = LLWearableType::getTypeName(wearable_type);
- U64 valid_folder_types = LLViewerFolderType::lookupValidFolderTypes(wearable_name);
- folder_valid |= valid_folder_types;
- folder_invalid |= ~valid_folder_types;
- }
- }
- for (U8 i = LLFolderType::FT_ENSEMBLE_START; i <= LLFolderType::FT_ENSEMBLE_END; i++)
- {
- if ((folder_valid & (1LL << i)) &&
- !(folder_invalid & (1LL << i)))
- {
- changeType((LLFolderType::EType)i);
- return;
- }
- }
- }
- if (LLFolderType::lookupIsEnsembleType(original_type))
- {
- changeType(LLFolderType::FT_NONE);
- }
- llassert(FALSE);
- */
+ /* Do NOT uncomment this code. This is for future 2.1 support of ensembles.
+ llassert(FALSE);
+ LLFolderType::EType original_type = getPreferredType();
+ if (LLFolderType::lookupIsProtectedType(original_type))
+ return;
+
+ U64 folder_valid = 0;
+ U64 folder_invalid = 0;
+ LLInventoryModel::cat_array_t category_array;
+ LLInventoryModel::item_array_t item_array;
+ gInventory.collectDescendents(getUUID(),category_array,item_array,FALSE);
+
+ // For ensembles
+ if (category_array.empty())
+ {
+ for (LLInventoryModel::item_array_t::iterator item_iter = item_array.begin();
+ item_iter != item_array.end();
+ item_iter++)
+ {
+ const LLViewerInventoryItem *item = (*item_iter);
+ if (item->getIsLinkType())
+ return;
+ if (item->isWearableType())
+ {
+ const LLWearableType::EType wearable_type = item->getWearableType();
+ const std::string& wearable_name = LLWearableType::getTypeName(wearable_type);
+ U64 valid_folder_types = LLViewerFolderType::lookupValidFolderTypes(wearable_name);
+ folder_valid |= valid_folder_types;
+ folder_invalid |= ~valid_folder_types;
+ }
+ }
+ for (U8 i = LLFolderType::FT_ENSEMBLE_START; i <= LLFolderType::FT_ENSEMBLE_END; i++)
+ {
+ if ((folder_valid & (1LL << i)) &&
+ !(folder_invalid & (1LL << i)))
+ {
+ changeType((LLFolderType::EType)i);
+ return;
+ }
+ }
+ }
+ if (LLFolderType::lookupIsEnsembleType(original_type))
+ {
+ changeType(LLFolderType::FT_NONE);
+ }
+ llassert(FALSE);
+ */
}
void LLViewerInventoryCategory::changeType(LLFolderType::EType new_folder_type)
{
- const LLUUID &folder_id = getUUID();
- const LLUUID &parent_id = getParentUUID();
- const std::string &name = getName();
-
+ const LLUUID &folder_id = getUUID();
+ const LLUUID &parent_id = getParentUUID();
+ const std::string &name = getName();
+
LLPointer<LLViewerInventoryCategory> new_cat = new LLViewerInventoryCategory(folder_id,
parent_id,
new_folder_type,
name,
gAgent.getID());
-
-
+
+
LLSD new_llsd = new_cat->asLLSD();
AISAPI::completion_t cr = boost::bind(&doInventoryCb, (LLPointer<LLInventoryCallback>) NULL, _1);
AISAPI::UpdateCategory(folder_id, new_llsd, cr);
- setPreferredType(new_folder_type);
- gInventory.addChangedMask(LLInventoryObserver::LABEL, folder_id);
+ setPreferredType(new_folder_type);
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, folder_id);
}
void LLViewerInventoryCategory::localizeName()
{
- LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
+ LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
}
// virtual
BOOL LLViewerInventoryCategory::unpackMessage(const LLSD& category)
{
- BOOL rv = LLInventoryCategory::fromLLSD(category);
- localizeName();
- return rv;
+ BOOL rv = LLInventoryCategory::fromLLSD(category);
+ localizeName();
+ return rv;
}
// virtual
void LLViewerInventoryCategory::unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num)
{
- LLInventoryCategory::unpackMessage(msg, block, block_num);
- localizeName();
+ LLInventoryCategory::unpackMessage(msg, block, block_num);
+ localizeName();
}
///----------------------------------------------------------------------------
@@ -903,161 +903,161 @@ void LLViewerInventoryCategory::unpackMessage(LLMessageSystem* msg, const char*
LLInventoryCallbackManager *LLInventoryCallbackManager::sInstance = NULL;
LLInventoryCallbackManager::LLInventoryCallbackManager() :
- mLastCallback(0)
+ mLastCallback(0)
{
- if( sInstance != NULL )
- {
- LL_WARNS(LOG_INV) << "LLInventoryCallbackManager::LLInventoryCallbackManager: unexpected multiple instances" << LL_ENDL;
- return;
- }
- sInstance = this;
+ if( sInstance != NULL )
+ {
+ LL_WARNS(LOG_INV) << "LLInventoryCallbackManager::LLInventoryCallbackManager: unexpected multiple instances" << LL_ENDL;
+ return;
+ }
+ sInstance = this;
}
LLInventoryCallbackManager::~LLInventoryCallbackManager()
{
- if( sInstance != this )
- {
- LL_WARNS(LOG_INV) << "LLInventoryCallbackManager::~LLInventoryCallbackManager: unexpected multiple instances" << LL_ENDL;
- return;
- }
- sInstance = NULL;
+ if( sInstance != this )
+ {
+ LL_WARNS(LOG_INV) << "LLInventoryCallbackManager::~LLInventoryCallbackManager: unexpected multiple instances" << LL_ENDL;
+ return;
+ }
+ sInstance = NULL;
}
-//static
+//static
void LLInventoryCallbackManager::destroyClass()
{
- if (sInstance)
- {
- for (callback_map_t::iterator it = sInstance->mMap.begin(), end_it = sInstance->mMap.end(); it != end_it; ++it)
- {
- // drop LLPointer reference to callback
- it->second = NULL;
- }
- sInstance->mMap.clear();
- }
+ if (sInstance)
+ {
+ for (callback_map_t::iterator it = sInstance->mMap.begin(), end_it = sInstance->mMap.end(); it != end_it; ++it)
+ {
+ // drop LLPointer reference to callback
+ it->second = NULL;
+ }
+ sInstance->mMap.clear();
+ }
}
U32 LLInventoryCallbackManager::registerCB(LLPointer<LLInventoryCallback> cb)
{
- if (cb.isNull())
- return 0;
+ if (cb.isNull())
+ return 0;
- mLastCallback++;
- if (!mLastCallback)
- mLastCallback++;
+ mLastCallback++;
+ if (!mLastCallback)
+ mLastCallback++;
- mMap[mLastCallback] = cb;
- return mLastCallback;
+ mMap[mLastCallback] = cb;
+ return mLastCallback;
}
void LLInventoryCallbackManager::fire(U32 callback_id, const LLUUID& item_id)
{
- if (!callback_id || item_id.isNull())
- return;
+ if (!callback_id || item_id.isNull())
+ return;
- std::map<U32, LLPointer<LLInventoryCallback> >::iterator i;
+ std::map<U32, LLPointer<LLInventoryCallback> >::iterator i;
- i = mMap.find(callback_id);
- if (i != mMap.end())
- {
- (*i).second->fire(item_id);
- mMap.erase(i);
- }
+ i = mMap.find(callback_id);
+ if (i != mMap.end())
+ {
+ (*i).second->fire(item_id);
+ mMap.erase(i);
+ }
}
void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachmentp)
{
- if (inv_item.isNull())
- return;
+ if (inv_item.isNull())
+ return;
- LLViewerInventoryItem *item = gInventory.getItem(inv_item);
- if (item)
- {
- rez_attachment(item, attachmentp);
- }
+ LLViewerInventoryItem *item = gInventory.getItem(inv_item);
+ if (item)
+ {
+ rez_attachment(item, attachmentp);
+ }
}
void activate_gesture_cb(const LLUUID& inv_item)
{
- if (inv_item.isNull())
- return;
- LLViewerInventoryItem* item = gInventory.getItem(inv_item);
- if (!item)
- return;
- if (item->getType() != LLAssetType::AT_GESTURE)
- return;
+ if (inv_item.isNull())
+ return;
+ LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+ if (!item)
+ return;
+ if (item->getType() != LLAssetType::AT_GESTURE)
+ return;
- LLGestureMgr::instance().activateGesture(inv_item);
+ LLGestureMgr::instance().activateGesture(inv_item);
}
void set_default_permissions(LLViewerInventoryItem* item, std::string perm_type)
{
- llassert(item);
- LLPermissions perm = item->getPermissions();
- if (perm.getMaskEveryone() != LLFloaterPerms::getEveryonePerms(perm_type)
- || perm.getMaskGroup() != LLFloaterPerms::getGroupPerms(perm_type))
- {
- perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms(perm_type));
- perm.setMaskGroup(LLFloaterPerms::getGroupPerms(perm_type));
+ llassert(item);
+ LLPermissions perm = item->getPermissions();
+ if (perm.getMaskEveryone() != LLFloaterPerms::getEveryonePerms(perm_type)
+ || perm.getMaskGroup() != LLFloaterPerms::getGroupPerms(perm_type))
+ {
+ perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms(perm_type));
+ perm.setMaskGroup(LLFloaterPerms::getGroupPerms(perm_type));
- item->setPermissions(perm);
+ item->setPermissions(perm);
- item->updateServer(FALSE);
- }
+ item->updateServer(FALSE);
+ }
}
void create_script_cb(const LLUUID& inv_item)
{
- if (!inv_item.isNull())
- {
- LLViewerInventoryItem* item = gInventory.getItem(inv_item);
- if (item)
- {
- set_default_permissions(item, "Scripts");
+ if (!inv_item.isNull())
+ {
+ LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+ if (item)
+ {
+ set_default_permissions(item, "Scripts");
- // item was just created, update even if permissions did not changed
- gInventory.updateItem(item);
- gInventory.notifyObservers();
- }
- }
+ // item was just created, update even if permissions did not changed
+ gInventory.updateItem(item);
+ gInventory.notifyObservers();
+ }
+ }
}
void create_gesture_cb(const LLUUID& inv_item)
{
- if (!inv_item.isNull())
- {
- LLGestureMgr::instance().activateGesture(inv_item);
-
- LLViewerInventoryItem* item = gInventory.getItem(inv_item);
- if (item)
- {
- set_default_permissions(item, "Gestures");
+ if (!inv_item.isNull())
+ {
+ LLGestureMgr::instance().activateGesture(inv_item);
+
+ LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+ if (item)
+ {
+ set_default_permissions(item, "Gestures");
- gInventory.updateItem(item);
- gInventory.notifyObservers();
+ gInventory.updateItem(item);
+ gInventory.notifyObservers();
- LLPreviewGesture* preview = LLPreviewGesture::show(inv_item, LLUUID::null);
- // Force to be entirely onscreen.
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- }
+ LLPreviewGesture* preview = LLPreviewGesture::show(inv_item, LLUUID::null);
+ // Force to be entirely onscreen.
+ gFloaterView->adjustToFitScreen(preview, FALSE);
+ }
+ }
}
void create_notecard_cb(const LLUUID& inv_item)
{
- if (!inv_item.isNull())
- {
- LLViewerInventoryItem* item = gInventory.getItem(inv_item);
- if (item)
- {
- set_default_permissions(item, "Notecards");
+ if (!inv_item.isNull())
+ {
+ LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+ if (item)
+ {
+ set_default_permissions(item, "Notecards");
- gInventory.updateItem(item);
- gInventory.notifyObservers();
- }
- }
+ gInventory.updateItem(item);
+ gInventory.notifyObservers();
+ }
+ }
}
void create_gltf_material_cb(const LLUUID& inv_item)
@@ -1090,24 +1090,24 @@ void create_inventory_item(
U32 next_owner_perm,
LLPointer<LLInventoryCallback> cb)
{
- //check if name is equal to one of special inventory items names
- //EXT-5839
- std::string server_name = name;
-
- {
- std::map<std::string, std::string>::const_iterator dictionary_iter;
-
- for (dictionary_iter = LLLocalizedInventoryItemsDictionary::getInstance()->mInventoryItemsDict.begin();
- dictionary_iter != LLLocalizedInventoryItemsDictionary::getInstance()->mInventoryItemsDict.end();
- dictionary_iter++)
- {
- const std::string& localized_name = dictionary_iter->second;
- if(localized_name == name)
- {
- server_name = dictionary_iter->first;
- }
- }
- }
+ //check if name is equal to one of special inventory items names
+ //EXT-5839
+ std::string server_name = name;
+
+ {
+ std::map<std::string, std::string>::const_iterator dictionary_iter;
+
+ for (dictionary_iter = LLLocalizedInventoryItemsDictionary::getInstance()->mInventoryItemsDict.begin();
+ dictionary_iter != LLLocalizedInventoryItemsDictionary::getInstance()->mInventoryItemsDict.end();
+ dictionary_iter++)
+ {
+ const std::string& localized_name = dictionary_iter->second;
+ if(localized_name == name)
+ {
+ server_name = dictionary_iter->first;
+ }
+ }
+ }
#ifdef USE_AIS_FOR_NC
// D567 18.03.2023 not yet implemented within AIS3
@@ -1157,23 +1157,23 @@ void create_inventory_item(
}
#endif
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_CreateInventoryItem);
- msg->nextBlock(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, agent_id);
- msg->addUUIDFast(_PREHASH_SessionID, session_id);
- msg->nextBlock(_PREHASH_InventoryBlock);
- msg->addU32Fast(_PREHASH_CallbackID, gInventoryCallbacks.registerCB(cb));
- msg->addUUIDFast(_PREHASH_FolderID, parent_id);
- msg->addUUIDFast(_PREHASH_TransactionID, transaction_id);
- msg->addU32Fast(_PREHASH_NextOwnerMask, next_owner_perm);
- msg->addS8Fast(_PREHASH_Type, (S8)asset_type);
- msg->addS8Fast(_PREHASH_InvType, (S8)inv_type);
- msg->addU8Fast(_PREHASH_WearableType, (U8)subtype);
- msg->addStringFast(_PREHASH_Name, server_name);
- msg->addStringFast(_PREHASH_Description, desc);
-
- gAgent.sendReliableMessage();
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_CreateInventoryItem);
+ msg->nextBlock(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, agent_id);
+ msg->addUUIDFast(_PREHASH_SessionID, session_id);
+ msg->nextBlock(_PREHASH_InventoryBlock);
+ msg->addU32Fast(_PREHASH_CallbackID, gInventoryCallbacks.registerCB(cb));
+ msg->addUUIDFast(_PREHASH_FolderID, parent_id);
+ msg->addUUIDFast(_PREHASH_TransactionID, transaction_id);
+ msg->addU32Fast(_PREHASH_NextOwnerMask, next_owner_perm);
+ msg->addS8Fast(_PREHASH_Type, (S8)asset_type);
+ msg->addS8Fast(_PREHASH_InvType, (S8)inv_type);
+ msg->addU8Fast(_PREHASH_WearableType, (U8)subtype);
+ msg->addStringFast(_PREHASH_Name, server_name);
+ msg->addStringFast(_PREHASH_Description, desc);
+
+ gAgent.sendReliableMessage();
}
void create_inventory_callingcard_callback(LLPointer<LLInventoryCallback> cb,
@@ -1197,7 +1197,7 @@ void create_inventory_callingcard_callback(LLPointer<LLInventoryCallback> cb,
void create_inventory_callingcard(const LLUUID& avatar_id, const LLUUID& parent /*= LLUUID::null*/, LLPointer<LLInventoryCallback> cb/*=NULL*/)
{
- LLAvatarName av_name;
+ LLAvatarName av_name;
LLAvatarNameCache::get(avatar_id, boost::bind(&create_inventory_callingcard_callback, cb, parent, _1, _2));
}
@@ -1217,145 +1217,145 @@ void create_inventory_wearable(const LLUUID& agent_id, const LLUUID& session_id,
void create_inventory_settings(const LLUUID& agent_id, const LLUUID& session_id,
const LLUUID& parent, const LLTransactionID& transaction_id,
const std::string& name,
- const std::string& desc,
+ const std::string& desc,
LLSettingsType::type_e settype,
U32 next_owner_perm,
LLPointer<LLInventoryCallback> cb)
{
create_inventory_item(agent_id, session_id, parent, transaction_id,
- name, desc, LLAssetType::AT_SETTINGS, LLInventoryType::IT_SETTINGS,
+ name, desc, LLAssetType::AT_SETTINGS, LLInventoryType::IT_SETTINGS,
static_cast<U8>(settype), next_owner_perm, cb);
}
void copy_inventory_item(
- const LLUUID& agent_id,
- const LLUUID& current_owner,
- const LLUUID& item_id,
- const LLUUID& parent_id,
- const std::string& new_name,
- LLPointer<LLInventoryCallback> cb)
-{
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_CopyInventoryItem);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, agent_id);
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->nextBlockFast(_PREHASH_InventoryData);
- msg->addU32Fast(_PREHASH_CallbackID, gInventoryCallbacks.registerCB(cb));
- msg->addUUIDFast(_PREHASH_OldAgentID, current_owner);
- msg->addUUIDFast(_PREHASH_OldItemID, item_id);
- msg->addUUIDFast(_PREHASH_NewFolderID, parent_id);
- msg->addStringFast(_PREHASH_NewName, new_name);
- gAgent.sendReliableMessage();
+ const LLUUID& agent_id,
+ const LLUUID& current_owner,
+ const LLUUID& item_id,
+ const LLUUID& parent_id,
+ const std::string& new_name,
+ LLPointer<LLInventoryCallback> cb)
+{
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_CopyInventoryItem);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, agent_id);
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->nextBlockFast(_PREHASH_InventoryData);
+ msg->addU32Fast(_PREHASH_CallbackID, gInventoryCallbacks.registerCB(cb));
+ msg->addUUIDFast(_PREHASH_OldAgentID, current_owner);
+ msg->addUUIDFast(_PREHASH_OldItemID, item_id);
+ msg->addUUIDFast(_PREHASH_NewFolderID, parent_id);
+ msg->addStringFast(_PREHASH_NewName, new_name);
+ gAgent.sendReliableMessage();
}
// Create link to single inventory object.
void link_inventory_object(const LLUUID& category,
- LLConstPointer<LLInventoryObject> baseobj,
- LLPointer<LLInventoryCallback> cb)
+ LLConstPointer<LLInventoryObject> baseobj,
+ LLPointer<LLInventoryCallback> cb)
{
- if (!baseobj)
- {
- LL_WARNS(LOG_INV) << "Attempt to link to non-existent object" << LL_ENDL;
- return;
- }
+ if (!baseobj)
+ {
+ LL_WARNS(LOG_INV) << "Attempt to link to non-existent object" << LL_ENDL;
+ return;
+ }
- LLInventoryObject::const_object_list_t obj_array;
- obj_array.push_back(baseobj);
- link_inventory_array(category, obj_array, cb);
+ LLInventoryObject::const_object_list_t obj_array;
+ obj_array.push_back(baseobj);
+ link_inventory_array(category, obj_array, cb);
}
void link_inventory_object(const LLUUID& category,
- const LLUUID& id,
- LLPointer<LLInventoryCallback> cb)
+ const LLUUID& id,
+ LLPointer<LLInventoryCallback> cb)
{
- LLConstPointer<LLInventoryObject> baseobj = gInventory.getObject(id);
- link_inventory_object(category, baseobj, cb);
+ LLConstPointer<LLInventoryObject> baseobj = gInventory.getObject(id);
+ link_inventory_object(category, baseobj, cb);
}
// Create links to all listed inventory objects.
void link_inventory_array(const LLUUID& category,
- LLInventoryObject::const_object_list_t& baseobj_array,
- LLPointer<LLInventoryCallback> cb)
+ LLInventoryObject::const_object_list_t& baseobj_array,
+ LLPointer<LLInventoryCallback> cb)
{
#ifndef LL_RELEASE_FOR_DOWNLOAD
- const LLViewerInventoryCategory *cat = gInventory.getCategory(category);
- const std::string cat_name = cat ? cat->getName() : "CAT NOT FOUND";
+ const LLViewerInventoryCategory *cat = gInventory.getCategory(category);
+ const std::string cat_name = cat ? cat->getName() : "CAT NOT FOUND";
#endif
- LLInventoryObject::const_object_list_t::const_iterator it = baseobj_array.begin();
- LLInventoryObject::const_object_list_t::const_iterator end = baseobj_array.end();
- LLSD links = LLSD::emptyArray();
- for (; it != end; ++it)
- {
- const LLInventoryObject* baseobj = *it;
- if (!baseobj)
- {
- LL_WARNS(LOG_INV) << "attempt to link to unknown object" << LL_ENDL;
- continue;
- }
-
- if (!LLAssetType::lookupCanLink(baseobj->getType()))
- {
- // Fail if item can be found but is of a type that can't be linked.
- // Arguably should fail if the item can't be found too, but that could
- // be a larger behavioral change.
- LL_WARNS(LOG_INV) << "attempt to link an unlinkable object, type = " << baseobj->getActualType() << LL_ENDL;
- continue;
- }
-
- LLInventoryType::EType inv_type = LLInventoryType::IT_NONE;
- LLAssetType::EType asset_type = LLAssetType::AT_NONE;
- std::string new_desc;
- LLUUID linkee_id;
- if (dynamic_cast<const LLInventoryCategory *>(baseobj))
- {
- inv_type = LLInventoryType::IT_CATEGORY;
- asset_type = LLAssetType::AT_LINK_FOLDER;
- linkee_id = baseobj->getUUID();
- }
- else
- {
- const LLViewerInventoryItem *baseitem = dynamic_cast<const LLViewerInventoryItem *>(baseobj);
- if (baseitem)
- {
- inv_type = baseitem->getInventoryType();
- new_desc = baseitem->getActualDescription();
- switch (baseitem->getActualType())
- {
- case LLAssetType::AT_LINK:
- case LLAssetType::AT_LINK_FOLDER:
- linkee_id = baseobj->getLinkedUUID();
- asset_type = baseitem->getActualType();
- break;
- default:
- linkee_id = baseobj->getUUID();
- asset_type = LLAssetType::AT_LINK;
- break;
- }
- }
- else
- {
- LL_WARNS(LOG_INV) << "could not convert object into an item or category: " << baseobj->getUUID() << LL_ENDL;
- continue;
- }
- }
-
- LLSD link = LLSD::emptyMap();
- link["linked_id"] = linkee_id;
- link["type"] = (S8)asset_type;
- link["inv_type"] = (S8)inv_type;
- link["name"] = baseobj->getName();
- link["desc"] = new_desc;
- links.append(link);
+ LLInventoryObject::const_object_list_t::const_iterator it = baseobj_array.begin();
+ LLInventoryObject::const_object_list_t::const_iterator end = baseobj_array.end();
+ LLSD links = LLSD::emptyArray();
+ for (; it != end; ++it)
+ {
+ const LLInventoryObject* baseobj = *it;
+ if (!baseobj)
+ {
+ LL_WARNS(LOG_INV) << "attempt to link to unknown object" << LL_ENDL;
+ continue;
+ }
+
+ if (!LLAssetType::lookupCanLink(baseobj->getType()))
+ {
+ // Fail if item can be found but is of a type that can't be linked.
+ // Arguably should fail if the item can't be found too, but that could
+ // be a larger behavioral change.
+ LL_WARNS(LOG_INV) << "attempt to link an unlinkable object, type = " << baseobj->getActualType() << LL_ENDL;
+ continue;
+ }
+
+ LLInventoryType::EType inv_type = LLInventoryType::IT_NONE;
+ LLAssetType::EType asset_type = LLAssetType::AT_NONE;
+ std::string new_desc;
+ LLUUID linkee_id;
+ if (dynamic_cast<const LLInventoryCategory *>(baseobj))
+ {
+ inv_type = LLInventoryType::IT_CATEGORY;
+ asset_type = LLAssetType::AT_LINK_FOLDER;
+ linkee_id = baseobj->getUUID();
+ }
+ else
+ {
+ const LLViewerInventoryItem *baseitem = dynamic_cast<const LLViewerInventoryItem *>(baseobj);
+ if (baseitem)
+ {
+ inv_type = baseitem->getInventoryType();
+ new_desc = baseitem->getActualDescription();
+ switch (baseitem->getActualType())
+ {
+ case LLAssetType::AT_LINK:
+ case LLAssetType::AT_LINK_FOLDER:
+ linkee_id = baseobj->getLinkedUUID();
+ asset_type = baseitem->getActualType();
+ break;
+ default:
+ linkee_id = baseobj->getUUID();
+ asset_type = LLAssetType::AT_LINK;
+ break;
+ }
+ }
+ else
+ {
+ LL_WARNS(LOG_INV) << "could not convert object into an item or category: " << baseobj->getUUID() << LL_ENDL;
+ continue;
+ }
+ }
+
+ LLSD link = LLSD::emptyMap();
+ link["linked_id"] = linkee_id;
+ link["type"] = (S8)asset_type;
+ link["inv_type"] = (S8)inv_type;
+ link["name"] = baseobj->getName();
+ link["desc"] = new_desc;
+ links.append(link);
#ifndef LL_RELEASE_FOR_DOWNLOAD
- LL_DEBUGS(LOG_INV) << "Linking Object [ name:" << baseobj->getName()
- << " UUID:" << baseobj->getUUID()
- << " ] into Category [ name:" << cat_name
- << " UUID:" << category << " ] " << LL_ENDL;
+ LL_DEBUGS(LOG_INV) << "Linking Object [ name:" << baseobj->getName()
+ << " UUID:" << baseobj->getUUID()
+ << " ] into Category [ name:" << cat_name
+ << " UUID:" << category << " ] " << LL_ENDL;
#endif
- }
+ }
LLSD new_inventory = LLSD::emptyMap();
new_inventory["links"] = links;
AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1);
@@ -1363,35 +1363,35 @@ void link_inventory_array(const LLUUID& category,
}
void move_inventory_item(
- const LLUUID& agent_id,
- const LLUUID& session_id,
- const LLUUID& item_id,
- const LLUUID& parent_id,
- const std::string& new_name,
- LLPointer<LLInventoryCallback> cb)
-{
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_MoveInventoryItem);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, agent_id);
- msg->addUUIDFast(_PREHASH_SessionID, session_id);
- msg->addBOOLFast(_PREHASH_Stamp, FALSE);
- msg->nextBlockFast(_PREHASH_InventoryData);
- msg->addUUIDFast(_PREHASH_ItemID, item_id);
- msg->addUUIDFast(_PREHASH_FolderID, parent_id);
- msg->addStringFast(_PREHASH_NewName, new_name);
- gAgent.sendReliableMessage();
+ const LLUUID& agent_id,
+ const LLUUID& session_id,
+ const LLUUID& item_id,
+ const LLUUID& parent_id,
+ const std::string& new_name,
+ LLPointer<LLInventoryCallback> cb)
+{
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_MoveInventoryItem);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, agent_id);
+ msg->addUUIDFast(_PREHASH_SessionID, session_id);
+ msg->addBOOLFast(_PREHASH_Stamp, FALSE);
+ msg->nextBlockFast(_PREHASH_InventoryData);
+ msg->addUUIDFast(_PREHASH_ItemID, item_id);
+ msg->addUUIDFast(_PREHASH_FolderID, parent_id);
+ msg->addStringFast(_PREHASH_NewName, new_name);
+ gAgent.sendReliableMessage();
}
// Should call this with an update_item that's been copied and
// modified from an original source item, rather than modifying the
// source item directly.
void update_inventory_item(
- LLViewerInventoryItem *update_item,
- LLPointer<LLInventoryCallback> cb)
+ LLViewerInventoryItem *update_item,
+ LLPointer<LLInventoryCallback> cb)
{
- const LLUUID& item_id = update_item->getUUID();
-
+ const LLUUID& item_id = update_item->getUUID();
+
LLSD updates = update_item->asLLSD();
// Replace asset_id and/or shadow_id with transaction_id (hash_id)
if (updates.has("asset_id"))
@@ -1418,159 +1418,159 @@ void update_inventory_item(
// code path where available. Not all uses of item->updateServer() can
// easily be switched to this paradigm.
void update_inventory_item(
- const LLUUID& item_id,
- const LLSD& updates,
- LLPointer<LLInventoryCallback> cb)
+ const LLUUID& item_id,
+ const LLSD& updates,
+ LLPointer<LLInventoryCallback> cb)
{
AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1);
AISAPI::UpdateItem(item_id, updates, cr);
}
void update_inventory_category(
- const LLUUID& cat_id,
- const LLSD& updates,
- LLPointer<LLInventoryCallback> cb)
-{
- LLPointer<LLViewerInventoryCategory> obj = gInventory.getCategory(cat_id);
- LL_DEBUGS(LOG_INV) << "cat_id: [" << cat_id << "] name " << (obj ? obj->getName() : "(NOT FOUND)") << LL_ENDL;
- if(obj)
- {
+ const LLUUID& cat_id,
+ const LLSD& updates,
+ LLPointer<LLInventoryCallback> cb)
+{
+ LLPointer<LLViewerInventoryCategory> obj = gInventory.getCategory(cat_id);
+ LL_DEBUGS(LOG_INV) << "cat_id: [" << cat_id << "] name " << (obj ? obj->getName() : "(NOT FOUND)") << LL_ENDL;
+ if(obj)
+ {
if (LLFolderType::lookupIsProtectedType(obj->getPreferredType())
&& (updates.size() != 1 || !updates.has("thumbnail")))
- {
- LLNotificationsUtil::add("CannotModifyProtectedCategories");
- return;
- }
+ {
+ LLNotificationsUtil::add("CannotModifyProtectedCategories");
+ return;
+ }
AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1);
AISAPI::UpdateCategory(cat_id, updates, cr);
- }
+ }
}
void remove_inventory_items(
- LLInventoryObject::object_list_t& items_to_kill,
- LLPointer<LLInventoryCallback> cb
- )
+ LLInventoryObject::object_list_t& items_to_kill,
+ LLPointer<LLInventoryCallback> cb
+ )
{
- for (LLInventoryObject::object_list_t::iterator it = items_to_kill.begin();
- it != items_to_kill.end();
- ++it)
- {
- remove_inventory_item(*it, cb);
- }
+ for (LLInventoryObject::object_list_t::iterator it = items_to_kill.begin();
+ it != items_to_kill.end();
+ ++it)
+ {
+ remove_inventory_item(*it, cb);
+ }
}
void remove_inventory_item(
- const LLUUID& item_id,
- LLPointer<LLInventoryCallback> cb,
- bool immediate_delete)
+ const LLUUID& item_id,
+ LLPointer<LLInventoryCallback> cb,
+ bool immediate_delete)
{
- LLPointer<LLInventoryObject> obj = gInventory.getItem(item_id);
- if (obj)
- {
- remove_inventory_item(obj, cb, immediate_delete);
- }
- else
- {
- LL_DEBUGS(LOG_INV) << "item_id: [" << item_id << "] name " << "(NOT FOUND)" << LL_ENDL;
- }
+ LLPointer<LLInventoryObject> obj = gInventory.getItem(item_id);
+ if (obj)
+ {
+ remove_inventory_item(obj, cb, immediate_delete);
+ }
+ else
+ {
+ LL_DEBUGS(LOG_INV) << "item_id: [" << item_id << "] name " << "(NOT FOUND)" << LL_ENDL;
+ }
}
void remove_inventory_item(
- LLPointer<LLInventoryObject> obj,
- LLPointer<LLInventoryCallback> cb,
- bool immediate_delete)
-{
- if(obj)
- {
- const LLUUID item_id(obj->getUUID());
- LL_DEBUGS(LOG_INV) << "item_id: [" << item_id << "] name " << obj->getName() << LL_ENDL;
+ LLPointer<LLInventoryObject> obj,
+ LLPointer<LLInventoryCallback> cb,
+ bool immediate_delete)
+{
+ if(obj)
+ {
+ const LLUUID item_id(obj->getUUID());
+ LL_DEBUGS(LOG_INV) << "item_id: [" << item_id << "] name " << obj->getName() << LL_ENDL;
if (AISAPI::isAvailable())
- {
+ {
AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t();
AISAPI::RemoveItem(item_id, cr);
- if (immediate_delete)
- {
- gInventory.onObjectDeletedFromServer(item_id);
- }
- }
+ if (immediate_delete)
+ {
+ gInventory.onObjectDeletedFromServer(item_id);
+ }
+ }
else
{
LL_WARNS(LOG_INV) << "Tried to use inventory without AIS API" << LL_ENDL;
}
- }
- else
- {
- // *TODO: Clean up callback?
- LL_WARNS(LOG_INV) << "remove_inventory_item called for invalid or nonexistent item." << LL_ENDL;
- }
+ }
+ else
+ {
+ // *TODO: Clean up callback?
+ LL_WARNS(LOG_INV) << "remove_inventory_item called for invalid or nonexistent item." << LL_ENDL;
+ }
}
class LLRemoveCategoryOnDestroy: public LLInventoryCallback
{
public:
- LLRemoveCategoryOnDestroy(const LLUUID& cat_id, LLPointer<LLInventoryCallback> cb):
- mID(cat_id),
- mCB(cb)
- {
- }
- /* virtual */ void fire(const LLUUID& item_id) {}
- ~LLRemoveCategoryOnDestroy()
- {
- LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(mID);
- if(children != LLInventoryModel::CHILDREN_NO)
- {
- LL_WARNS(LOG_INV) << "remove descendents failed, cannot remove category " << LL_ENDL;
- }
- else
- {
- remove_inventory_category(mID, mCB);
- }
- }
+ LLRemoveCategoryOnDestroy(const LLUUID& cat_id, LLPointer<LLInventoryCallback> cb):
+ mID(cat_id),
+ mCB(cb)
+ {
+ }
+ /* virtual */ void fire(const LLUUID& item_id) {}
+ ~LLRemoveCategoryOnDestroy()
+ {
+ LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(mID);
+ if(children != LLInventoryModel::CHILDREN_NO)
+ {
+ LL_WARNS(LOG_INV) << "remove descendents failed, cannot remove category " << LL_ENDL;
+ }
+ else
+ {
+ remove_inventory_category(mID, mCB);
+ }
+ }
private:
- LLUUID mID;
- LLPointer<LLInventoryCallback> mCB;
+ LLUUID mID;
+ LLPointer<LLInventoryCallback> mCB;
};
void remove_inventory_category(
- const LLUUID& cat_id,
- LLPointer<LLInventoryCallback> cb)
-{
- LL_DEBUGS(LOG_INV) << "cat_id: [" << cat_id << "] " << LL_ENDL;
- LLPointer<LLViewerInventoryCategory> obj = gInventory.getCategory(cat_id);
- if(obj)
- {
- if (!gInventory.isCategoryComplete(cat_id))
- {
- LL_WARNS() << "Removing (purging) incomplete category " << obj->getName() << LL_ENDL;
- }
- if(LLFolderType::lookupIsProtectedType(obj->getPreferredType()))
- {
- LLNotificationsUtil::add("CannotRemoveProtectedCategories");
- return;
- }
+ const LLUUID& cat_id,
+ LLPointer<LLInventoryCallback> cb)
+{
+ LL_DEBUGS(LOG_INV) << "cat_id: [" << cat_id << "] " << LL_ENDL;
+ LLPointer<LLViewerInventoryCategory> obj = gInventory.getCategory(cat_id);
+ if(obj)
+ {
+ if (!gInventory.isCategoryComplete(cat_id))
+ {
+ LL_WARNS() << "Removing (purging) incomplete category " << obj->getName() << LL_ENDL;
+ }
+ if(LLFolderType::lookupIsProtectedType(obj->getPreferredType()))
+ {
+ LLNotificationsUtil::add("CannotRemoveProtectedCategories");
+ return;
+ }
AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1);
AISAPI::RemoveCategory(cat_id, cr);
- }
- else
- {
- LL_WARNS(LOG_INV) << "remove_inventory_category called for invalid or nonexistent item " << cat_id << LL_ENDL;
- }
+ }
+ else
+ {
+ LL_WARNS(LOG_INV) << "remove_inventory_category called for invalid or nonexistent item " << cat_id << LL_ENDL;
+ }
}
void remove_inventory_object(
- const LLUUID& object_id,
- LLPointer<LLInventoryCallback> cb)
+ const LLUUID& object_id,
+ LLPointer<LLInventoryCallback> cb)
{
- if (gInventory.getCategory(object_id))
- {
- remove_inventory_category(object_id, cb);
- }
- else
- {
- remove_inventory_item(object_id, cb);
- }
+ if (gInventory.getCategory(object_id))
+ {
+ remove_inventory_category(object_id, cb);
+ }
+ else
+ {
+ remove_inventory_item(object_id, cb);
+ }
}
// This is a method which collects the descendents of the id
@@ -1580,105 +1580,105 @@ void remove_inventory_object(
// folders, items, etc in a fairly efficient manner.
void purge_descendents_of(const LLUUID& id, LLPointer<LLInventoryCallback> cb)
{
- LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(id);
- if(children == LLInventoryModel::CHILDREN_NO)
- {
- LL_DEBUGS(LOG_INV) << "No descendents to purge for " << id << LL_ENDL;
- return;
- }
- LLPointer<LLViewerInventoryCategory> cat = gInventory.getCategory(id);
- if (cat.notNull())
- {
- if (LLClipboard::instance().hasContents())
- {
- // Remove items from clipboard or it will remain active even if there is nothing to paste/copy
- LLInventoryModel::cat_array_t categories;
- LLInventoryModel::item_array_t items;
- gInventory.collectDescendents(id, categories, items, TRUE);
-
- for (LLInventoryModel::cat_array_t::const_iterator it = categories.begin(); it != categories.end(); ++it)
- {
- if (LLClipboard::instance().isOnClipboard((*it)->getUUID()))
- {
- // No sense in removing single items, partial 'paste' will result in confusion only
- LLClipboard::instance().reset();
- break;
- }
- }
- if (LLClipboard::instance().hasContents())
- {
- for (LLInventoryModel::item_array_t::const_iterator it = items.begin(); it != items.end(); ++it)
- {
- if (LLClipboard::instance().isOnClipboard((*it)->getUUID()))
- {
- LLClipboard::instance().reset();
- break;
- }
- }
- }
- }
-
- if (AISAPI::isAvailable())
- {
- if (cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN)
- {
- LL_WARNS() << "Purging not fetched folder: " << cat->getName() << LL_ENDL;
- }
- AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t();
- AISAPI::PurgeDescendents(id, cr);
- }
+ LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(id);
+ if(children == LLInventoryModel::CHILDREN_NO)
+ {
+ LL_DEBUGS(LOG_INV) << "No descendents to purge for " << id << LL_ENDL;
+ return;
+ }
+ LLPointer<LLViewerInventoryCategory> cat = gInventory.getCategory(id);
+ if (cat.notNull())
+ {
+ if (LLClipboard::instance().hasContents())
+ {
+ // Remove items from clipboard or it will remain active even if there is nothing to paste/copy
+ LLInventoryModel::cat_array_t categories;
+ LLInventoryModel::item_array_t items;
+ gInventory.collectDescendents(id, categories, items, TRUE);
+
+ for (LLInventoryModel::cat_array_t::const_iterator it = categories.begin(); it != categories.end(); ++it)
+ {
+ if (LLClipboard::instance().isOnClipboard((*it)->getUUID()))
+ {
+ // No sense in removing single items, partial 'paste' will result in confusion only
+ LLClipboard::instance().reset();
+ break;
+ }
+ }
+ if (LLClipboard::instance().hasContents())
+ {
+ for (LLInventoryModel::item_array_t::const_iterator it = items.begin(); it != items.end(); ++it)
+ {
+ if (LLClipboard::instance().isOnClipboard((*it)->getUUID()))
+ {
+ LLClipboard::instance().reset();
+ break;
+ }
+ }
+ }
+ }
+
+ if (AISAPI::isAvailable())
+ {
+ if (cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN)
+ {
+ LL_WARNS() << "Purging not fetched folder: " << cat->getName() << LL_ENDL;
+ }
+ AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t();
+ AISAPI::PurgeDescendents(id, cr);
+ }
else
{
LL_WARNS(LOG_INV) << "Tried to use inventory without AIS API" << LL_ENDL;
}
- }
+ }
}
const LLUUID get_folder_by_itemtype(const LLInventoryItem *src)
{
- LLUUID retval = LLUUID::null;
-
- if (src)
- {
- retval = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(src->getType()));
- }
-
- return retval;
+ LLUUID retval = LLUUID::null;
+
+ if (src)
+ {
+ retval = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(src->getType()));
+ }
+
+ return retval;
}
void copy_inventory_from_notecard(const LLUUID& destination_id,
- const LLUUID& object_id,
- const LLUUID& notecard_inv_id,
- const LLInventoryItem *src,
- U32 callback_id)
-{
- if (NULL == src)
- {
- LL_WARNS(LOG_NOTECARD) << "Null pointer to item was passed for object_id "
- << object_id << " and notecard_inv_id "
- << notecard_inv_id << LL_ENDL;
- return;
- }
-
- LLViewerRegion* viewer_region = NULL;
+ const LLUUID& object_id,
+ const LLUUID& notecard_inv_id,
+ const LLInventoryItem *src,
+ U32 callback_id)
+{
+ if (NULL == src)
+ {
+ LL_WARNS(LOG_NOTECARD) << "Null pointer to item was passed for object_id "
+ << object_id << " and notecard_inv_id "
+ << notecard_inv_id << LL_ENDL;
+ return;
+ }
+
+ LLViewerRegion* viewer_region = NULL;
LLViewerObject* vo = NULL;
- if (object_id.notNull() && (vo = gObjectList.findObject(object_id)) != NULL)
+ if (object_id.notNull() && (vo = gObjectList.findObject(object_id)) != NULL)
{
viewer_region = vo->getRegion();
- }
+ }
- // Fallback to the agents region if for some reason the
- // object isn't found in the viewer.
- if (! viewer_region)
- {
- viewer_region = gAgent.getRegion();
- }
+ // Fallback to the agents region if for some reason the
+ // object isn't found in the viewer.
+ if (! viewer_region)
+ {
+ viewer_region = gAgent.getRegion();
+ }
- if (! viewer_region)
- {
+ if (! viewer_region)
+ {
LL_WARNS(LOG_NOTECARD) << "Can't find region from object_id "
- << object_id << " or gAgent"
- << LL_ENDL;
+ << object_id << " or gAgent"
+ << LL_ENDL;
return;
}
@@ -1686,11 +1686,11 @@ void copy_inventory_from_notecard(const LLUUID& destination_id,
body["notecard-id"] = notecard_inv_id;
body["object-id"] = object_id;
body["item-id"] = src->getUUID();
- body["folder-id"] = destination_id;
+ body["folder-id"] = destination_id;
body["callback-id"] = (LLSD::Integer)callback_id;
- /// *TODO: RIDER: This posts the request under the agents policy.
- /// When I convert the inventory over this call should be moved under that
+ /// *TODO: RIDER: This posts the request under the agents policy.
+ /// When I convert the inventory over this call should be moved under that
/// policy as well.
if (!gAgent.requestPostCapability("CopyInventoryFromNotecard", body))
{
@@ -1699,40 +1699,40 @@ void copy_inventory_from_notecard(const LLUUID& destination_id,
}
void create_new_item(const std::string& name,
- const LLUUID& parent_id,
- LLAssetType::EType asset_type,
- LLInventoryType::EType inv_type,
- U32 next_owner_perm,
+ const LLUUID& parent_id,
+ LLAssetType::EType asset_type,
+ LLInventoryType::EType inv_type,
+ U32 next_owner_perm,
std::function<void(const LLUUID&)> created_cb = NULL)
{
- std::string desc;
- LLViewerAssetType::generateDescriptionFor(asset_type, desc);
- next_owner_perm = (next_owner_perm) ? next_owner_perm : PERM_MOVE | PERM_TRANSFER;
-
- LLPointer<LLBoostFuncInventoryCallback> cb = NULL;
-
- switch (inv_type)
- {
- case LLInventoryType::IT_LSL:
- {
- cb = new LLBoostFuncInventoryCallback(create_script_cb);
- next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Scripts");
- break;
- }
-
- case LLInventoryType::IT_GESTURE:
- {
- cb = new LLBoostFuncInventoryCallback(create_gesture_cb);
- next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Gestures");
- break;
- }
-
- case LLInventoryType::IT_NOTECARD:
- {
- cb = new LLBoostFuncInventoryCallback(create_notecard_cb);
- next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Notecards");
- break;
- }
+ std::string desc;
+ LLViewerAssetType::generateDescriptionFor(asset_type, desc);
+ next_owner_perm = (next_owner_perm) ? next_owner_perm : PERM_MOVE | PERM_TRANSFER;
+
+ LLPointer<LLBoostFuncInventoryCallback> cb = NULL;
+
+ switch (inv_type)
+ {
+ case LLInventoryType::IT_LSL:
+ {
+ cb = new LLBoostFuncInventoryCallback(create_script_cb);
+ next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Scripts");
+ break;
+ }
+
+ case LLInventoryType::IT_GESTURE:
+ {
+ cb = new LLBoostFuncInventoryCallback(create_gesture_cb);
+ next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Gestures");
+ break;
+ }
+
+ case LLInventoryType::IT_NOTECARD:
+ {
+ cb = new LLBoostFuncInventoryCallback(create_notecard_cb);
+ next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Notecards");
+ break;
+ }
case LLInventoryType::IT_MATERIAL:
{
@@ -1751,22 +1751,22 @@ void create_new_item(const std::string& name,
cb->addOnFireFunc(created_cb);
}
- create_inventory_item(gAgent.getID(),
- gAgent.getSessionID(),
- parent_id,
- LLTransactionID::tnull,
- name,
- desc,
- asset_type,
- inv_type,
+ create_inventory_item(gAgent.getID(),
+ gAgent.getSessionID(),
+ parent_id,
+ LLTransactionID::tnull,
+ name,
+ desc,
+ asset_type,
+ inv_type,
NO_INV_SUBTYPE,
- next_owner_perm,
- cb);
-}
+ next_owner_perm,
+ cb);
+}
void slam_inventory_folder(const LLUUID& folder_id,
- const LLSD& contents,
- LLPointer<LLInventoryCallback> cb)
+ const LLSD& contents,
+ LLPointer<LLInventoryCallback> cb)
{
LL_DEBUGS(LOG_INV) << "using AISv3 to slam folder, id " << folder_id
<< " new contents: " << ll_pretty_print_sd(contents) << LL_ENDL;
@@ -1776,22 +1776,22 @@ void slam_inventory_folder(const LLUUID& folder_id,
}
void remove_folder_contents(const LLUUID& category, bool keep_outfit_links,
- LLPointer<LLInventoryCallback> cb)
-{
- LLInventoryModel::cat_array_t cats;
- LLInventoryModel::item_array_t items;
- gInventory.collectDescendents(category, cats, items,
- LLInventoryModel::EXCLUDE_TRASH);
- for (S32 i = 0; i < items.size(); ++i)
- {
- LLViewerInventoryItem *item = items.at(i);
- if (keep_outfit_links && (item->getActualType() == LLAssetType::AT_LINK_FOLDER))
- continue;
- if (item->getIsLinkType())
- {
- remove_inventory_item(item->getUUID(), cb);
- }
- }
+ LLPointer<LLInventoryCallback> cb)
+{
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ gInventory.collectDescendents(category, cats, items,
+ LLInventoryModel::EXCLUDE_TRASH);
+ for (S32 i = 0; i < items.size(); ++i)
+ {
+ LLViewerInventoryItem *item = items.at(i);
+ if (keep_outfit_links && (item->getActualType() == LLAssetType::AT_LINK_FOLDER))
+ continue;
+ if (item->getIsLinkType())
+ {
+ remove_inventory_item(item->getUUID(), cb);
+ }
+ }
}
const std::string NEW_LSL_NAME = "New Script"; // *TODO:Translate? (probably not)
@@ -1808,7 +1808,7 @@ void menu_create_inventory_item(LLInventoryPanel* panel, LLFolderBridge *bridge,
void menu_create_inventory_item(LLInventoryPanel* panel, LLUUID dest_id, const LLSD& userdata, const LLUUID& default_parent_uuid, std::function<void(const LLUUID&)> created_cb)
{
std::string type_name = userdata.asString();
-
+
if (("inbox" == type_name) || ("category" == type_name) || ("current" == type_name) || ("outfit" == type_name) || ("my_otfts" == type_name))
{
LLFolderType::EType preferred_type = LLFolderType::lookup(type_name);
@@ -1890,7 +1890,7 @@ void menu_create_inventory_item(LLInventoryPanel* panel, LLUUID dest_id, const L
LLAssetType::AT_MATERIAL,
LLInventoryType::IT_MATERIAL,
PERM_ALL,
- created_cb); // overridden in create_new_item
+ created_cb); // overridden in create_new_item
}
else if (("sky" == type_name) || ("water" == type_name) || ("daycycle" == type_name))
{
@@ -1940,125 +1940,125 @@ void menu_create_inventory_item(LLInventoryPanel* panel, LLUUID dest_id, const L
LLAssetType::EType LLViewerInventoryItem::getType() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getType();
- }
- if (const LLViewerInventoryCategory *linked_category = getLinkedCategory())
- {
- return linked_category->getType();
- }
- return LLInventoryItem::getType();
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getType();
+ }
+ if (const LLViewerInventoryCategory *linked_category = getLinkedCategory())
+ {
+ return linked_category->getType();
+ }
+ return LLInventoryItem::getType();
}
const LLUUID& LLViewerInventoryItem::getAssetUUID() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getAssetUUID();
- }
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getAssetUUID();
+ }
- return LLInventoryItem::getAssetUUID();
+ return LLInventoryItem::getAssetUUID();
}
const LLUUID& LLViewerInventoryItem::getProtectedAssetUUID() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getProtectedAssetUUID();
- }
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getProtectedAssetUUID();
+ }
- // check for conditions under which we may return a visible UUID to the user
- bool item_is_fullperm = getIsFullPerm();
- bool agent_is_godlike = gAgent.isGodlikeWithoutAdminMenuFakery();
- if (item_is_fullperm || agent_is_godlike)
- {
- return LLInventoryItem::getAssetUUID();
- }
+ // check for conditions under which we may return a visible UUID to the user
+ bool item_is_fullperm = getIsFullPerm();
+ bool agent_is_godlike = gAgent.isGodlikeWithoutAdminMenuFakery();
+ if (item_is_fullperm || agent_is_godlike)
+ {
+ return LLInventoryItem::getAssetUUID();
+ }
- return LLUUID::null;
+ return LLUUID::null;
}
const bool LLViewerInventoryItem::getIsFullPerm() const
{
- LLPermissions item_permissions = getPermissions();
+ LLPermissions item_permissions = getPermissions();
- // modify-ok & copy-ok & transfer-ok
- return ( item_permissions.allowOperationBy(PERM_MODIFY,
- gAgent.getID(),
- gAgent.getGroupID()) &&
- item_permissions.allowOperationBy(PERM_COPY,
- gAgent.getID(),
- gAgent.getGroupID()) &&
- item_permissions.allowOperationBy(PERM_TRANSFER,
- gAgent.getID(),
- gAgent.getGroupID()) );
+ // modify-ok & copy-ok & transfer-ok
+ return ( item_permissions.allowOperationBy(PERM_MODIFY,
+ gAgent.getID(),
+ gAgent.getGroupID()) &&
+ item_permissions.allowOperationBy(PERM_COPY,
+ gAgent.getID(),
+ gAgent.getGroupID()) &&
+ item_permissions.allowOperationBy(PERM_TRANSFER,
+ gAgent.getID(),
+ gAgent.getGroupID()) );
}
const std::string& LLViewerInventoryItem::getName() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getName();
- }
- if (const LLViewerInventoryCategory *linked_category = getLinkedCategory())
- {
- return linked_category->getName();
- }
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getName();
+ }
+ if (const LLViewerInventoryCategory *linked_category = getLinkedCategory())
+ {
+ return linked_category->getName();
+ }
- return LLInventoryItem::getName();
+ return LLInventoryItem::getName();
}
S32 LLViewerInventoryItem::getSortField() const
{
- return LLFavoritesOrderStorage::instance().getSortIndex(mUUID);
+ return LLFavoritesOrderStorage::instance().getSortIndex(mUUID);
}
//void LLViewerInventoryItem::setSortField(S32 sortField)
//{
-// LLFavoritesOrderStorage::instance().setSortIndex(mUUID, sortField);
-// getSLURL();
+// LLFavoritesOrderStorage::instance().setSortIndex(mUUID, sortField);
+// getSLURL();
//}
void LLViewerInventoryItem::getSLURL()
{
- LLFavoritesOrderStorage::instance().getSLURL(mAssetUUID);
+ LLFavoritesOrderStorage::instance().getSLURL(mAssetUUID);
}
const LLPermissions& LLViewerInventoryItem::getPermissions() const
{
- // Use the actual permissions of the symlink, not its parent.
- return LLInventoryItem::getPermissions();
+ // Use the actual permissions of the symlink, not its parent.
+ return LLInventoryItem::getPermissions();
}
const LLUUID& LLViewerInventoryItem::getCreatorUUID() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getCreatorUUID();
- }
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getCreatorUUID();
+ }
- return LLInventoryItem::getCreatorUUID();
+ return LLInventoryItem::getCreatorUUID();
}
const std::string& LLViewerInventoryItem::getDescription() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getDescription();
- }
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getDescription();
+ }
- return LLInventoryItem::getDescription();
+ return LLInventoryItem::getDescription();
}
const LLSaleInfo& LLViewerInventoryItem::getSaleInfo() const
-{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getSaleInfo();
- }
+{
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getSaleInfo();
+ }
- return LLInventoryItem::getSaleInfo();
+ return LLInventoryItem::getSaleInfo();
}
const LLUUID& LLViewerInventoryItem::getThumbnailUUID() const
@@ -2082,42 +2082,42 @@ const LLUUID& LLViewerInventoryItem::getThumbnailUUID() const
LLInventoryType::EType LLViewerInventoryItem::getInventoryType() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getInventoryType();
- }
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getInventoryType();
+ }
- // Categories don't have types. If this item is an AT_FOLDER_LINK,
- // treat it as a category.
- if (getLinkedCategory())
- {
- return LLInventoryType::IT_CATEGORY;
- }
+ // Categories don't have types. If this item is an AT_FOLDER_LINK,
+ // treat it as a category.
+ if (getLinkedCategory())
+ {
+ return LLInventoryType::IT_CATEGORY;
+ }
- return LLInventoryItem::getInventoryType();
+ return LLInventoryItem::getInventoryType();
}
U32 LLViewerInventoryItem::getFlags() const
{
- if (const LLViewerInventoryItem *linked_item = getLinkedItem())
- {
- return linked_item->getFlags();
- }
- return LLInventoryItem::getFlags();
+ if (const LLViewerInventoryItem *linked_item = getLinkedItem())
+ {
+ return linked_item->getFlags();
+ }
+ return LLInventoryItem::getFlags();
}
bool LLViewerInventoryItem::isWearableType() const
{
- return (getInventoryType() == LLInventoryType::IT_WEARABLE);
+ return (getInventoryType() == LLInventoryType::IT_WEARABLE);
}
LLWearableType::EType LLViewerInventoryItem::getWearableType() const
{
- if (!isWearableType())
- {
- return LLWearableType::WT_INVALID;
- }
- return LLWearableType::inventoryFlagsToWearableType(getFlags());
+ if (!isWearableType())
+ {
+ return LLWearableType::WT_INVALID;
+ }
+ return LLWearableType::inventoryFlagsToWearableType(getFlags());
}
bool LLViewerInventoryItem::isSettingsType() const
@@ -2136,197 +2136,197 @@ LLSettingsType::type_e LLViewerInventoryItem::getSettingsType() const
time_t LLViewerInventoryItem::getCreationDate() const
{
- return LLInventoryItem::getCreationDate();
+ return LLInventoryItem::getCreationDate();
}
U32 LLViewerInventoryItem::getCRC32() const
{
- return LLInventoryItem::getCRC32();
+ return LLInventoryItem::getCRC32();
}
// *TODO: mantipov: should be removed with LMSortPrefix patch in llinventorymodel.cpp, EXT-3985
static char getSeparator() { return '@'; }
BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName)
{
- using std::string;
- using std::stringstream;
+ using std::string;
+ using std::stringstream;
- const char separator = getSeparator();
- const string::size_type separatorPos = name.find(separator, 0);
+ const char separator = getSeparator();
+ const string::size_type separatorPos = name.find(separator, 0);
- BOOL result = FALSE;
+ BOOL result = FALSE;
- if (separatorPos < string::npos)
- {
- if (sortField)
- {
- /*
- * The conversion from string to S32 is made this way instead of old plain
- * atoi() to ensure portability. If on some other platform S32 will not be
- * defined to be signed int, this conversion will still work because of
- * operators overloading, but atoi() may fail.
- */
- stringstream ss(name.substr(0, separatorPos));
- ss >> *sortField;
- }
+ if (separatorPos < string::npos)
+ {
+ if (sortField)
+ {
+ /*
+ * The conversion from string to S32 is made this way instead of old plain
+ * atoi() to ensure portability. If on some other platform S32 will not be
+ * defined to be signed int, this conversion will still work because of
+ * operators overloading, but atoi() may fail.
+ */
+ stringstream ss(name.substr(0, separatorPos));
+ ss >> *sortField;
+ }
- if (displayName)
- {
- *displayName = name.substr(separatorPos + 1, string::npos);
- }
+ if (displayName)
+ {
+ *displayName = name.substr(separatorPos + 1, string::npos);
+ }
- result = TRUE;
- }
+ result = TRUE;
+ }
- return result;
+ return result;
}
-// This returns true if the item that this item points to
+// This returns true if the item that this item points to
// doesn't exist in memory (i.e. LLInventoryModel). The baseitem
// might still be in the database but just not loaded yet.
bool LLViewerInventoryItem::getIsBrokenLink() const
{
- // If the item's type resolves to be a link, that means either:
- // A. It wasn't able to perform indirection, i.e. the baseobj doesn't exist in memory.
- // B. It's pointing to another link, which is illegal.
- return LLAssetType::lookupIsLinkType(getType());
+ // If the item's type resolves to be a link, that means either:
+ // A. It wasn't able to perform indirection, i.e. the baseobj doesn't exist in memory.
+ // B. It's pointing to another link, which is illegal.
+ return LLAssetType::lookupIsLinkType(getType());
}
LLViewerInventoryItem *LLViewerInventoryItem::getLinkedItem() const
{
- if (mType == LLAssetType::AT_LINK)
- {
- LLViewerInventoryItem *linked_item = gInventory.getItem(mAssetUUID);
- if (linked_item && linked_item->getIsLinkType())
- {
- LL_WARNS(LOG_INV) << "Warning: Accessing link to link" << LL_ENDL;
- return NULL;
- }
- return linked_item;
- }
- return NULL;
+ if (mType == LLAssetType::AT_LINK)
+ {
+ LLViewerInventoryItem *linked_item = gInventory.getItem(mAssetUUID);
+ if (linked_item && linked_item->getIsLinkType())
+ {
+ LL_WARNS(LOG_INV) << "Warning: Accessing link to link" << LL_ENDL;
+ return NULL;
+ }
+ return linked_item;
+ }
+ return NULL;
}
LLViewerInventoryCategory *LLViewerInventoryItem::getLinkedCategory() const
{
- if (mType == LLAssetType::AT_LINK_FOLDER)
- {
- LLViewerInventoryCategory *linked_category = gInventory.getCategory(mAssetUUID);
- return linked_category;
- }
- return NULL;
+ if (mType == LLAssetType::AT_LINK_FOLDER)
+ {
+ LLViewerInventoryCategory *linked_category = gInventory.getCategory(mAssetUUID);
+ return linked_category;
+ }
+ return NULL;
}
bool LLViewerInventoryItem::checkPermissionsSet(PermissionMask mask) const
{
- const LLPermissions& perm = getPermissions();
- PermissionMask curr_mask = PERM_NONE;
- if(perm.getOwner() == gAgent.getID())
- {
- curr_mask = perm.getMaskBase();
- }
- else if(gAgent.isInGroup(perm.getGroup()))
- {
- curr_mask = perm.getMaskGroup();
- }
- else
- {
- curr_mask = perm.getMaskEveryone();
- }
- return ((curr_mask & mask) == mask);
+ const LLPermissions& perm = getPermissions();
+ PermissionMask curr_mask = PERM_NONE;
+ if(perm.getOwner() == gAgent.getID())
+ {
+ curr_mask = perm.getMaskBase();
+ }
+ else if(gAgent.isInGroup(perm.getGroup()))
+ {
+ curr_mask = perm.getMaskGroup();
+ }
+ else
+ {
+ curr_mask = perm.getMaskEveryone();
+ }
+ return ((curr_mask & mask) == mask);
}
PermissionMask LLViewerInventoryItem::getPermissionMask() const
{
- const LLPermissions& permissions = getPermissions();
+ const LLPermissions& permissions = getPermissions();
- BOOL copy = permissions.allowCopyBy(gAgent.getID());
- BOOL mod = permissions.allowModifyBy(gAgent.getID());
- BOOL xfer = permissions.allowOperationBy(PERM_TRANSFER, gAgent.getID());
- PermissionMask perm_mask = 0;
- if (copy) perm_mask |= PERM_COPY;
- if (mod) perm_mask |= PERM_MODIFY;
- if (xfer) perm_mask |= PERM_TRANSFER;
- return perm_mask;
+ BOOL copy = permissions.allowCopyBy(gAgent.getID());
+ BOOL mod = permissions.allowModifyBy(gAgent.getID());
+ BOOL xfer = permissions.allowOperationBy(PERM_TRANSFER, gAgent.getID());
+ PermissionMask perm_mask = 0;
+ if (copy) perm_mask |= PERM_COPY;
+ if (mod) perm_mask |= PERM_MODIFY;
+ if (xfer) perm_mask |= PERM_TRANSFER;
+ return perm_mask;
}
//----------
void LLViewerInventoryItem::onCallingCardNameLookup(const LLUUID& id, const LLAvatarName& name)
{
- rename(name.getUserName());
- gInventory.addChangedMask(LLInventoryObserver::LABEL, getUUID());
- gInventory.notifyObservers();
+ rename(name.getUserName());
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, getUUID());
+ gInventory.notifyObservers();
}
class LLRegenerateLinkCollector : public LLInventoryCollectFunctor
{
public:
- LLRegenerateLinkCollector(const LLViewerInventoryItem *target_item) : mTargetItem(target_item) {}
- virtual ~LLRegenerateLinkCollector() {}
- virtual bool operator()(LLInventoryCategory* cat,
- LLInventoryItem* item)
- {
- if (item)
- {
- if ((item->getName() == mTargetItem->getName()) &&
- (item->getInventoryType() == mTargetItem->getInventoryType()) &&
- (!item->getIsLinkType()))
- {
- return true;
- }
- }
- return false;
- }
+ LLRegenerateLinkCollector(const LLViewerInventoryItem *target_item) : mTargetItem(target_item) {}
+ virtual ~LLRegenerateLinkCollector() {}
+ virtual bool operator()(LLInventoryCategory* cat,
+ LLInventoryItem* item)
+ {
+ if (item)
+ {
+ if ((item->getName() == mTargetItem->getName()) &&
+ (item->getInventoryType() == mTargetItem->getInventoryType()) &&
+ (!item->getIsLinkType()))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
protected:
- const LLViewerInventoryItem* mTargetItem;
+ const LLViewerInventoryItem* mTargetItem;
};
LLUUID find_possible_item_for_regeneration(const LLViewerInventoryItem *target_item)
{
- LLViewerInventoryCategory::cat_array_t cats;
- LLViewerInventoryItem::item_array_t items;
-
- LLRegenerateLinkCollector candidate_matches(target_item);
- gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
- cats,
- items,
- LLInventoryModel::EXCLUDE_TRASH,
- candidate_matches);
- for (LLViewerInventoryItem::item_array_t::const_iterator item_iter = items.begin();
- item_iter != items.end();
- ++item_iter)
- {
- const LLViewerInventoryItem *item = (*item_iter);
- if (true) return item->getUUID();
- }
- return LLUUID::null;
-}
-
-// This currently dosen't work, because the sim does not allow us
+ LLViewerInventoryCategory::cat_array_t cats;
+ LLViewerInventoryItem::item_array_t items;
+
+ LLRegenerateLinkCollector candidate_matches(target_item);
+ gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ candidate_matches);
+ for (LLViewerInventoryItem::item_array_t::const_iterator item_iter = items.begin();
+ item_iter != items.end();
+ ++item_iter)
+ {
+ const LLViewerInventoryItem *item = (*item_iter);
+ if (true) return item->getUUID();
+ }
+ return LLUUID::null;
+}
+
+// This currently dosen't work, because the sim does not allow us
// to change an item's assetID.
BOOL LLViewerInventoryItem::regenerateLink()
{
- const LLUUID target_item_id = find_possible_item_for_regeneration(this);
- if (target_item_id.isNull())
- return FALSE;
- LLViewerInventoryCategory::cat_array_t cats;
- LLViewerInventoryItem::item_array_t items;
- LLAssetIDMatches asset_id_matches(getAssetUUID());
- gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
- cats,
- items,
- LLInventoryModel::EXCLUDE_TRASH,
- asset_id_matches);
- for (LLViewerInventoryItem::item_array_t::iterator item_iter = items.begin();
- item_iter != items.end();
- item_iter++)
- {
- LLViewerInventoryItem *item = (*item_iter);
- item->setAssetUUID(target_item_id);
- item->updateServer(FALSE);
- gInventory.addChangedMask(LLInventoryObserver::REBUILD, item->getUUID());
- }
- gInventory.notifyObservers();
- return TRUE;
+ const LLUUID target_item_id = find_possible_item_for_regeneration(this);
+ if (target_item_id.isNull())
+ return FALSE;
+ LLViewerInventoryCategory::cat_array_t cats;
+ LLViewerInventoryItem::item_array_t items;
+ LLAssetIDMatches asset_id_matches(getAssetUUID());
+ gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ asset_id_matches);
+ for (LLViewerInventoryItem::item_array_t::iterator item_iter = items.begin();
+ item_iter != items.end();
+ item_iter++)
+ {
+ LLViewerInventoryItem *item = (*item_iter);
+ item->setAssetUUID(target_item_id);
+ item->updateServer(FALSE);
+ gInventory.addChangedMask(LLInventoryObserver::REBUILD, item->getUUID());
+ }
+ gInventory.notifyObservers();
+ return TRUE;
}