From 5372782d50b087fc12d07b9ef4584581fac10228 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Thu, 1 Apr 2010 14:29:23 -0400 Subject: EXT-4084 : Change LLInventoryBridge "LLFolderView* folder" to "LLFolderView *rootFolder" Superficial cleanup - changed all instances to "LLFolderView* root". --- indra/newview/llinventorybridge.cpp | 56 ++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'indra/newview/llinventorybridge.cpp') diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 0fbf3148ac..be0e5f8829 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1047,11 +1047,11 @@ LLInvFVBridge* LLInventoryFVBridgeBuilder::createBridge(LLAssetType::EType asset // | LLItemBridge | // +=================================================+ -void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLItemBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ("goto" == action) { - gotoItem(folder); + gotoItem(root); } if ("open" == action) @@ -1102,7 +1102,7 @@ void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model, LLInventoryItem* itemp = model->getItem(mUUID); if (!itemp) return; - LLFolderViewItem* folder_view_itemp = folder->getItemByID(itemp->getParentUUID()); + LLFolderViewItem* folder_view_itemp = root->getItemByID(itemp->getParentUUID()); if (!folder_view_itemp) return; folder_view_itemp->getListener()->pasteFromClipboard(); @@ -1114,7 +1114,7 @@ void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model, LLInventoryItem* itemp = model->getItem(mUUID); if (!itemp) return; - LLFolderViewItem* folder_view_itemp = folder->getItemByID(itemp->getParentUUID()); + LLFolderViewItem* folder_view_itemp = root->getItemByID(itemp->getParentUUID()); if (!folder_view_itemp) return; folder_view_itemp->getListener()->pasteLinkFromClipboard(); @@ -1183,7 +1183,7 @@ void LLItemBridge::restoreToWorld() } } -void LLItemBridge::gotoItem(LLFolderView *folder) +void LLItemBridge::gotoItem(LLFolderView* root) { LLInventoryObject *obj = getInventoryObject(); if (obj && obj->getIsLinkType()) @@ -2103,11 +2103,11 @@ void LLInventoryCopyAndWearObserver::changed(U32 mask) -void LLFolderBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLFolderBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ("open" == action) { - LLFolderViewFolder *f = dynamic_cast(folder->getItemByID(mUUID)); + LLFolderViewFolder *f = dynamic_cast(root->getItemByID(mUUID)); if (f) { f->setOpen(TRUE); @@ -3271,7 +3271,7 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } // virtual -void LLTextureBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLTextureBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ("save_as" == action) { @@ -3282,7 +3282,7 @@ void LLTextureBridge::performAction(LLFolderView* folder, LLInventoryModel* mode preview_texture->openToSave(); } } - else LLItemBridge::performAction(folder, model, action); + else LLItemBridge::performAction(root, model, action); } // +=================================================+ @@ -3421,7 +3421,7 @@ void teleport_via_landmark(const LLUUID& asset_id) } // virtual -void LLLandmarkBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLLandmarkBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ("teleport" == action) { @@ -3445,7 +3445,7 @@ void LLLandmarkBridge::performAction(LLFolderView* folder, LLInventoryModel* mod } else { - LLItemBridge::performAction(folder, model, action); + LLItemBridge::performAction(root, model, action); } } @@ -3523,7 +3523,7 @@ void LLCallingCardBridge::refreshFolderViewItem() } // virtual -void LLCallingCardBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLCallingCardBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ("begin_im" == action) { @@ -3549,7 +3549,7 @@ void LLCallingCardBridge::performAction(LLFolderView* folder, LLInventoryModel* LLAvatarActions::offerTeleport(item->getCreatorUUID()); } } - else LLItemBridge::performAction(folder, model, action); + else LLItemBridge::performAction(root, model, action); } LLUIImagePtr LLCallingCardBridge::getIcon() const @@ -3773,7 +3773,7 @@ std::string LLGestureBridge::getLabelSuffix() const } // virtual -void LLGestureBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLGestureBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if (isAddAction(action)) { @@ -3819,7 +3819,7 @@ void LLGestureBridge::performAction(LLFolderView* folder, LLInventoryModel* mode playGesture(mUUID); } } - else LLItemBridge::performAction(folder, model, action); + else LLItemBridge::performAction(root, model, action); } void LLGestureBridge::openItem() @@ -3948,7 +3948,7 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } // virtual -void LLAnimationBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLAnimationBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ((action == "playworld") || (action == "playlocal")) { @@ -3967,7 +3967,7 @@ void LLAnimationBridge::performAction(LLFolderView* folder, LLInventoryModel* mo } else { - LLItemBridge::performAction(folder, model, action); + LLItemBridge::performAction(root, model, action); } } @@ -4020,7 +4020,7 @@ LLInventoryObject* LLObjectBridge::getObject() const } // virtual -void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLObjectBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if (isAddAction(action)) { @@ -4064,7 +4064,7 @@ void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model } } } - else LLItemBridge::performAction(folder, model, action); + else LLItemBridge::performAction(root, model, action); } void LLObjectBridge::openItem() @@ -4529,7 +4529,7 @@ LLUIImagePtr LLWearableBridge::getIcon() const } // virtual -void LLWearableBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLWearableBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if (isAddAction(action)) { @@ -4549,7 +4549,7 @@ void LLWearableBridge::performAction(LLFolderView* folder, LLInventoryModel* mod removeFromAvatar(); return; } - else LLItemBridge::performAction(folder, model, action); + else LLItemBridge::performAction(root, model, action); } void LLWearableBridge::openItem() @@ -5348,30 +5348,30 @@ void LLLinkFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) hide_context_entries(menu, items, disabled_items); } -void LLLinkFolderBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action) +void LLLinkFolderBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) { if ("goto" == action) { - gotoItem(folder); + gotoItem(root); return; } - LLItemBridge::performAction(folder,model,action); + LLItemBridge::performAction(root,model,action); } -void LLLinkFolderBridge::gotoItem(LLFolderView *folder) +void LLLinkFolderBridge::gotoItem(LLFolderView* root) { const LLUUID &cat_uuid = getFolderID(); if (!cat_uuid.isNull()) { - if (LLFolderViewItem *base_folder = folder->getItemByID(cat_uuid)) + if (LLFolderViewItem *base_folder = root->getItemByID(cat_uuid)) { if (LLInventoryModel* model = getInventoryModel()) { model->fetchDescendentsOf(cat_uuid); } base_folder->setOpen(TRUE); - folder->setSelectionFromRoot(base_folder,TRUE); - folder->scrollToShowSelection(); + root->setSelectionFromRoot(base_folder,TRUE); + root->scrollToShowSelection(); } } } -- cgit v1.3 From 1ec47c39a6c4a6e7e518d0b91a87f50596362f06 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Thu, 1 Apr 2010 17:50:48 -0400 Subject: EXT-6679 : INFRASTRUCTURE : Have LLInvFVBridge contain a LLFolderView *mRoot instead of passing it along everywhere such as in performAction mRoot is now stored for all LLInventoryBridge types. Did some superficial formatting cleanup for LLInventoryBridge. --- indra/newview/llfolderview.cpp | 3 +- indra/newview/llfoldervieweventlistener.h | 2 +- indra/newview/llinventorybridge.cpp | 570 ++++++++++++++---------------- indra/newview/llinventorybridge.h | 155 ++++---- indra/newview/llinventorypanel.cpp | 3 +- indra/newview/llpanellandmarks.cpp | 2 +- indra/newview/llpanelmaininventory.cpp | 2 +- indra/newview/llpanelobjectinventory.cpp | 10 +- indra/newview/llpaneloutfitsinventory.cpp | 6 +- indra/newview/llplacesinventorybridge.cpp | 11 +- indra/newview/llplacesinventorybridge.h | 38 +- indra/newview/llsidepanelinventory.cpp | 2 +- 12 files changed, 399 insertions(+), 405 deletions(-) (limited to 'indra/newview/llinventorybridge.cpp') diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 4fbd1efbef..c31b01200f 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -2104,8 +2104,7 @@ bool LLFolderView::doToSelected(LLInventoryModel* model, const LLSD& userdata) if(!folder_item) continue; LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getListener(); if(!bridge) continue; - - bridge->performAction(this, model, action); + bridge->performAction(model, action); } LLFloater::setFloaterHost(NULL); diff --git a/indra/newview/llfoldervieweventlistener.h b/indra/newview/llfoldervieweventlistener.h index 7fe53d4aad..a2ef8c1d12 100644 --- a/indra/newview/llfoldervieweventlistener.h +++ b/indra/newview/llfoldervieweventlistener.h @@ -88,7 +88,7 @@ public: virtual BOOL isUpToDate() const = 0; virtual BOOL hasChildren() const = 0; virtual LLInventoryType::EType getInventoryType() const = 0; - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action) = 0; + virtual void performAction(LLInventoryModel* model, std::string action) = 0; // This method should be called when a drag begins. returns TRUE // if the drag can begin, otherwise FALSE. diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index be0e5f8829..2a570ecebb 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -36,8 +36,6 @@ // external projects #include "lltransfersourceasset.h" - - #include "llagent.h" #include "llagentcamera.h" #include "llagentwearables.h" @@ -139,8 +137,12 @@ std::string ICON_NAME[ICON_NAME_COUNT] = // | LLInvFVBridge | // +=================================================+ -LLInvFVBridge::LLInvFVBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : -mUUID(uuid), mInvType(LLInventoryType::IT_NONE) +LLInvFVBridge::LLInvFVBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + mUUID(uuid), + mRoot(root), + mInvType(LLInventoryType::IT_NONE) { mInventoryPanel = inventory->getHandle(); } @@ -239,7 +241,7 @@ void LLInvFVBridge::showProperties() // Disable old properties floater; this is replaced by the sidepanel. /* - LLFloaterReg::showInstance("properties", mUUID); + LLFloaterReg::showInstance("properties", mUUID); */ } @@ -487,8 +489,8 @@ BOOL LLInvFVBridge::isClipboardPasteableAsLink() const } void hide_context_entries(LLMenuGL& menu, - const menuentry_vec_t &entries_to_show, - const menuentry_vec_t &disabled_entries) + const menuentry_vec_t &entries_to_show, + const menuentry_vec_t &disabled_entries) { const LLView::child_list_t *list = menu.getChildList(); @@ -877,6 +879,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, LLInventoryPanel* inventory, + LLFolderView* root, const LLUUID& uuid, U32 flags) { @@ -888,7 +891,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLTextureBridge(inventory, uuid, inv_type); + new_listener = new LLTextureBridge(inventory, root, uuid, inv_type); break; case LLAssetType::AT_SOUND: @@ -896,7 +899,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLSoundBridge(inventory, uuid); + new_listener = new LLSoundBridge(inventory, root, uuid); break; case LLAssetType::AT_LANDMARK: @@ -904,7 +907,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLLandmarkBridge(inventory, uuid, flags); + new_listener = new LLLandmarkBridge(inventory, root, uuid, flags); break; case LLAssetType::AT_CALLINGCARD: @@ -912,7 +915,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLCallingCardBridge(inventory, uuid); + new_listener = new LLCallingCardBridge(inventory, root, uuid); break; case LLAssetType::AT_SCRIPT: @@ -920,7 +923,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLScriptBridge(inventory, uuid); + new_listener = new LLScriptBridge(inventory, root, uuid); break; case LLAssetType::AT_OBJECT: @@ -928,7 +931,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLObjectBridge(inventory, uuid, inv_type, flags); + new_listener = new LLObjectBridge(inventory, root, uuid, inv_type, flags); break; case LLAssetType::AT_NOTECARD: @@ -936,7 +939,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLNotecardBridge(inventory, uuid); + new_listener = new LLNotecardBridge(inventory, root, uuid); break; case LLAssetType::AT_ANIMATION: @@ -944,7 +947,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLAnimationBridge(inventory, uuid); + new_listener = new LLAnimationBridge(inventory, root, uuid); break; case LLAssetType::AT_GESTURE: @@ -952,7 +955,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLGestureBridge(inventory, uuid); + new_listener = new LLGestureBridge(inventory, root, uuid); break; case LLAssetType::AT_LSL_TEXT: @@ -960,7 +963,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLLSLTextBridge(inventory, uuid); + new_listener = new LLLSLTextBridge(inventory, root, uuid); break; case LLAssetType::AT_CLOTHING: @@ -969,21 +972,21 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLWearableBridge(inventory, uuid, asset_type, inv_type, (EWearableType)flags); + new_listener = new LLWearableBridge(inventory, root, uuid, asset_type, inv_type, (EWearableType)flags); break; case LLAssetType::AT_CATEGORY: if (actual_asset_type == LLAssetType::AT_LINK_FOLDER) { // Create a link folder handler instead. - new_listener = new LLLinkFolderBridge(inventory, uuid); + new_listener = new LLLinkFolderBridge(inventory, root, uuid); break; } - new_listener = new LLFolderBridge(inventory, uuid); + new_listener = new LLFolderBridge(inventory, root, uuid); break; case LLAssetType::AT_LINK: case LLAssetType::AT_LINK_FOLDER: // Only should happen for broken links. - new_listener = new LLLinkItemBridge(inventory, uuid); + new_listener = new LLLinkItemBridge(inventory, root, uuid); break; default: llinfos << "Unhandled asset type (llassetstorage.h): " @@ -1032,26 +1035,28 @@ LLInvFVBridge* LLInventoryFVBridgeBuilder::createBridge(LLAssetType::EType asset LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, LLInventoryPanel* inventory, + LLFolderView* root, const LLUUID& uuid, U32 flags /* = 0x00 */) const { return LLInvFVBridge::createBridge(asset_type, - actual_asset_type, - inv_type, - inventory, - uuid, - flags); + actual_asset_type, + inv_type, + inventory, + root, + uuid, + flags); } // +=================================================+ // | LLItemBridge | // +=================================================+ -void LLItemBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLItemBridge::performAction(LLInventoryModel* model, std::string action) { if ("goto" == action) { - gotoItem(root); + gotoItem(); } if ("open" == action) @@ -1102,7 +1107,7 @@ void LLItemBridge::performAction(LLFolderView* root, LLInventoryModel* model, st LLInventoryItem* itemp = model->getItem(mUUID); if (!itemp) return; - LLFolderViewItem* folder_view_itemp = root->getItemByID(itemp->getParentUUID()); + LLFolderViewItem* folder_view_itemp = mRoot->getItemByID(itemp->getParentUUID()); if (!folder_view_itemp) return; folder_view_itemp->getListener()->pasteFromClipboard(); @@ -1114,7 +1119,7 @@ void LLItemBridge::performAction(LLFolderView* root, LLInventoryModel* model, st LLInventoryItem* itemp = model->getItem(mUUID); if (!itemp) return; - LLFolderViewItem* folder_view_itemp = root->getItemByID(itemp->getParentUUID()); + LLFolderViewItem* folder_view_itemp = mRoot->getItemByID(itemp->getParentUUID()); if (!folder_view_itemp) return; folder_view_itemp->getListener()->pasteLinkFromClipboard(); @@ -1183,7 +1188,7 @@ void LLItemBridge::restoreToWorld() } } -void LLItemBridge::gotoItem(LLFolderView* root) +void LLItemBridge::gotoItem() { LLInventoryObject *obj = getInventoryObject(); if (obj && obj->getIsLinkType()) @@ -1684,7 +1689,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, // Is the destination the trash? const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); BOOL move_is_into_trash = (mUUID == trash_id) - || model->isObjectDescendentOf(mUUID, trash_id); + || model->isObjectDescendentOf(mUUID, trash_id); BOOL is_movable = (!LLFolderType::lookupIsProtectedType(inv_cat->getPreferredType())); const LLUUID current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT); BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); @@ -1732,12 +1737,11 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, } } - - accept = is_movable - && (mUUID != cat_id) // Can't move a folder into itself - && (mUUID != inv_cat->getParentUUID()) // Avoid moves that would change nothing - && !(model->isObjectDescendentOf(mUUID, cat_id)); // Avoid circularity - if(accept && drop) + accept = is_movable + && (mUUID != cat_id) // Can't move a folder into itself + && (mUUID != inv_cat->getParentUUID()) // Avoid moves that would change nothing + && !(model->isObjectDescendentOf(mUUID, cat_id)); // Avoid circularity + if (accept && drop) { // Look for any gestures and deactivate them if (move_is_into_trash) @@ -1775,22 +1779,22 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, else { #if SUPPORT_ENSEMBLES - // BAP - should skip if dup. - if (move_is_into_current_outfit) - { - LLAppearanceMgr::instance().addEnsembleLink(inv_cat); - } - else - { - LLPointer cb = NULL; - link_inventory_item( - gAgent.getID(), - inv_cat->getUUID(), - mUUID, - inv_cat->getName(), - LLAssetType::AT_LINK_FOLDER, - cb); - } + // BAP - should skip if dup. + if (move_is_into_current_outfit) + { + LLAppearanceMgr::instance().addEnsembleLink(inv_cat); + } + else + { + LLPointer cb = NULL; + link_inventory_item( + gAgent.getID(), + inv_cat->getUUID(), + mUUID, + inv_cat->getName(), + LLAssetType::AT_LINK_FOLDER, + cb); + } #endif } } @@ -1807,7 +1811,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat, } } } - else if(LLToolDragAndDrop::SOURCE_WORLD == source) + else if (LLToolDragAndDrop::SOURCE_WORLD == source) { // content category has same ID as object itself LLUUID object_id = inv_cat->getUUID(); @@ -1935,7 +1939,7 @@ public: LLRightClickInventoryFetchObserver(const LLUUID& cat_id, bool copy_items) : mCatID(cat_id), mCopyItems(copy_items) - { }; + { }; virtual void done() { // we've downloaded all the items, so repaint the dialog @@ -2024,14 +2028,14 @@ void LLRightClickInventoryFetchDescendentsObserver::done() //Uncomment the following code for laggy Inventory UI. /* if(outfit->isEverythingComplete()) { - // everything is already here - call done. - outfit->done(); + // everything is already here - call done. + outfit->done(); } else { - // it's all on it's way - add an observer, and the inventory - // will call done for us when everything is here. - gInventory.addObserver(outfit); + // it's all on it's way - add an observer, and the inventory + // will call done for us when everything is here. + gInventory.addObserver(outfit); }*/ } @@ -2045,7 +2049,8 @@ void LLRightClickInventoryFetchDescendentsObserver::done() class LLInventoryCopyAndWearObserver : public LLInventoryObserver { public: - LLInventoryCopyAndWearObserver(const LLUUID& cat_id, int count) :mCatID(cat_id), mContentsCount(count), mFolderAdded(FALSE) {} + LLInventoryCopyAndWearObserver(const LLUUID& cat_id, int count) : + mCatID(cat_id), mContentsCount(count), mFolderAdded(FALSE) {} virtual ~LLInventoryCopyAndWearObserver() {} virtual void changed(U32 mask); @@ -2084,7 +2089,7 @@ void LLInventoryCopyAndWearObserver::changed(U32 mask) if (NULL == category) { llwarns << "gInventory.getCategory(" << mCatID - << ") was NULL" << llendl; + << ") was NULL" << llendl; } else { @@ -2103,11 +2108,11 @@ void LLInventoryCopyAndWearObserver::changed(U32 mask) -void LLFolderBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLFolderBridge::performAction(LLInventoryModel* model, std::string action) { if ("open" == action) { - LLFolderViewFolder *f = dynamic_cast(root->getItemByID(mUUID)); + LLFolderViewFolder *f = dynamic_cast(mRoot->getItemByID(mUUID)); if (f) { f->setOpen(TRUE); @@ -2460,16 +2465,16 @@ void LLFolderBridge::pasteLinkFromClipboard() } else #endif - if (LLInventoryItem *item = model->getItem(object_id)) - { - link_inventory_item( - gAgent.getID(), - item->getLinkedUUID(), - parent_id, - item->getName(), - LLAssetType::AT_LINK, - LLPointer(NULL)); - } + if (LLInventoryItem *item = model->getItem(object_id)) + { + link_inventory_item( + gAgent.getID(), + item->getLinkedUUID(), + parent_id, + item->getName(), + LLAssetType::AT_LINK, + LLPointer(NULL)); + } } } } @@ -2494,7 +2499,7 @@ void LLFolderBridge::folderOptionsMenu() const bool is_system_folder = LLFolderType::lookupIsProtectedType(type); // BAP change once we're no longer treating regular categories as ensembles. const bool is_ensemble = (type == LLFolderType::FT_NONE || - LLFolderType::lookupIsEnsembleType(type)); + LLFolderType::lookupIsEnsembleType(type)); // calling card related functionality for folders. @@ -2624,10 +2629,10 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) const LLUUID lost_and_found_id = model->findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND); if (lost_and_found_id == mUUID) - { + { // This is the lost+found folder. - mItems.push_back(std::string("Empty Lost And Found")); - } + mItems.push_back(std::string("Empty Lost And Found")); + } if(trash_id == mUUID) { @@ -2912,10 +2917,10 @@ void LLFolderBridge::createWearable(const LLUUID &parent_id, EWearableType type) LLAssetType::EType asset_type = wearable->getAssetType(); LLInventoryType::EType inv_type = LLInventoryType::IT_WEARABLE; create_inventory_item(gAgent.getID(), gAgent.getSessionID(), - parent_id, wearable->getTransactionID(), wearable->getName(), - wearable->getDescription(), asset_type, inv_type, wearable->getType(), - wearable->getPermissions().getMaskNextOwner(), - LLPointer(NULL)); + parent_id, wearable->getTransactionID(), wearable->getName(), + wearable->getDescription(), asset_type, inv_type, wearable->getType(), + wearable->getPermissions().getMaskNextOwner(), + LLPointer(NULL)); } void LLFolderBridge::modifyOutfit(BOOL append) @@ -2949,8 +2954,8 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response two_uuids_list_t::iterator move_it; for (move_it = move_inv->mMoveList.begin(); - move_it != move_inv->mMoveList.end(); - ++move_it) + move_it != move_inv->mMoveList.end(); + ++move_it) { object->moveInventory(move_it->first, move_it->second); } @@ -2990,11 +2995,11 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, BOOL is_movable = TRUE; switch( inv_item->getActualType() ) { - case LLAssetType::AT_CATEGORY: - is_movable = !LLFolderType::lookupIsProtectedType(((LLInventoryCategory*)inv_item)->getPreferredType()); - break; - default: - break; + case LLAssetType::AT_CATEGORY: + is_movable = !LLFolderType::lookupIsProtectedType(((LLInventoryCategory*)inv_item)->getPreferredType()); + break; + default: + break; } const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); @@ -3172,7 +3177,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, if(drop) { copy_inventory_from_notecard(LLToolDragAndDrop::getInstance()->getObjectID(), - LLToolDragAndDrop::getInstance()->getSourceID(), inv_item); + LLToolDragAndDrop::getInstance()->getSourceID(), inv_item); } } else if(LLToolDragAndDrop::SOURCE_LIBRARY == source) @@ -3271,7 +3276,7 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } // virtual -void LLTextureBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLTextureBridge::performAction(LLInventoryModel* model, std::string action) { if ("save_as" == action) { @@ -3282,7 +3287,7 @@ void LLTextureBridge::performAction(LLFolderView* root, LLInventoryModel* model, preview_texture->openToSave(); } } - else LLItemBridge::performAction(root, model, action); + else LLItemBridge::performAction(model, action); } // +=================================================+ @@ -3307,14 +3312,14 @@ void LLSoundBridge::openItem() // only open the preview dialog through the contextual right-click menu // double-click just plays the sound - LLViewerInventoryItem* item = getItem(); - if(item) - { - openSoundPreview((void*)this); - //send_uuid_sound_trigger(item->getAssetUUID(), 1.0); - } -*/ +LLViewerInventoryItem* item = getItem(); +if(item) +{ +openSoundPreview((void*)this); +//send_uuid_sound_trigger(item->getAssetUUID(), 1.0); } +*/ + } void LLSoundBridge::previewItem() { @@ -3359,8 +3364,11 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags) // | LLLandmarkBridge | // +=================================================+ -LLLandmarkBridge::LLLandmarkBridge(LLInventoryPanel* inventory, const LLUUID& uuid, U32 flags/* = 0x00*/) : -LLItemBridge(inventory, uuid) +LLLandmarkBridge::LLLandmarkBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + U32 flags/* = 0x00*/) : + LLItemBridge(inventory, root, uuid) { mVisited = FALSE; if (flags & LLInventoryItem::II_FLAGS_LANDMARK_VISITED) @@ -3421,7 +3429,7 @@ void teleport_via_landmark(const LLUUID& asset_id) } // virtual -void LLLandmarkBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLLandmarkBridge::performAction(LLInventoryModel* model, std::string action) { if ("teleport" == action) { @@ -3445,7 +3453,7 @@ void LLLandmarkBridge::performAction(LLFolderView* root, LLInventoryModel* model } else { - LLItemBridge::performAction(root, model, action); + LLItemBridge::performAction(model, action); } } @@ -3472,35 +3480,33 @@ void LLLandmarkBridge::openItem() { LLInvFVBridgeAction::doAction(item->getType(),mUUID,getInventoryModel()); } -/* - LLViewerInventoryItem* item = getItem(); - if( item ) - { - // Opening (double-clicking) a landmark immediately teleports, - // but warns you the first time. - // open_landmark(item); - LLSD payload; - payload["asset_id"] = item->getAssetUUID(); - LLNotificationsUtil::add("TeleportFromLandmark", LLSD(), payload); - } -*/ } // +=================================================+ // | LLCallingCardObserver | // +=================================================+ -void LLCallingCardObserver::changed(U32 mask) +class LLCallingCardObserver : public LLFriendObserver { - mBridgep->refreshFolderViewItem(); -} +public: + LLCallingCardObserver(LLCallingCardBridge* bridge) : mBridgep(bridge) {} + virtual ~LLCallingCardObserver() { mBridgep = NULL; } + virtual void changed(U32 mask) + { + mBridgep->refreshFolderViewItem(); + } +protected: + LLCallingCardBridge* mBridgep; +}; // +=================================================+ // | LLCallingCardBridge | // +=================================================+ -LLCallingCardBridge::LLCallingCardBridge( LLInventoryPanel* inventory, const LLUUID& uuid ) : - LLItemBridge(inventory, uuid) +LLCallingCardBridge::LLCallingCardBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid ) : + LLItemBridge(inventory, root, uuid) { mObserver = new LLCallingCardObserver(this); LLAvatarTracker::instance().addObserver(mObserver); @@ -3523,7 +3529,7 @@ void LLCallingCardBridge::refreshFolderViewItem() } // virtual -void LLCallingCardBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLCallingCardBridge::performAction(LLInventoryModel* model, std::string action) { if ("begin_im" == action) { @@ -3549,7 +3555,7 @@ void LLCallingCardBridge::performAction(LLFolderView* root, LLInventoryModel* mo LLAvatarActions::offerTeleport(item->getCreatorUUID()); } } - else LLItemBridge::performAction(root, model, action); + else LLItemBridge::performAction(model, action); } LLUIImagePtr LLCallingCardBridge::getIcon() const @@ -3585,11 +3591,11 @@ void LLCallingCardBridge::openItem() LLInvFVBridgeAction::doAction(item->getType(),mUUID,getInventoryModel()); } /* - LLViewerInventoryItem* item = getItem(); - if(item && !item->getCreatorUUID().isNull()) - { - LLAvatarActions::showProfile(item->getCreatorUUID()); - } + LLViewerInventoryItem* item = getItem(); + if(item && !item->getCreatorUUID().isNull()) + { + LLAvatarActions::showProfile(item->getCreatorUUID()); + } */ } @@ -3612,8 +3618,8 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags) LLInventoryItem* item = getItem(); BOOL good_card = (item - && (LLUUID::null != item->getCreatorUUID()) - && (item->getCreatorUUID() != gAgent.getID())); + && (LLUUID::null != item->getCreatorUUID()) + && (item->getCreatorUUID() != gAgent.getID())); BOOL user_online = FALSE; if (item) { @@ -3648,16 +3654,16 @@ BOOL LLCallingCardBridge::dragOrDrop(MASK mask, BOOL drop, // check the type switch(cargo_type) { - case DAD_TEXTURE: - case DAD_SOUND: - case DAD_LANDMARK: - case DAD_SCRIPT: - case DAD_CLOTHING: - case DAD_OBJECT: - case DAD_NOTECARD: - case DAD_BODYPART: - case DAD_ANIMATION: - case DAD_GESTURE: + case DAD_TEXTURE: + case DAD_SOUND: + case DAD_LANDMARK: + case DAD_SCRIPT: + case DAD_CLOTHING: + case DAD_OBJECT: + case DAD_NOTECARD: + case DAD_BODYPART: + case DAD_ANIMATION: + case DAD_GESTURE: { LLInventoryItem* inv_item = (LLInventoryItem*)cargo_data; const LLPermissions& perm = inv_item->getPermissions(); @@ -3680,7 +3686,7 @@ BOOL LLCallingCardBridge::dragOrDrop(MASK mask, BOOL drop, } break; } - case DAD_CATEGORY: + case DAD_CATEGORY: { LLInventoryCategory* inv_cat = (LLInventoryCategory*)cargo_data; if( gInventory.getCategory( inv_cat->getUUID() ) ) @@ -3702,8 +3708,8 @@ BOOL LLCallingCardBridge::dragOrDrop(MASK mask, BOOL drop, } break; } - default: - break; + default: + break; } } return rv; @@ -3728,11 +3734,11 @@ void LLNotecardBridge::openItem() } /* - LLViewerInventoryItem* item = getItem(); - if (item) - { - LLFloaterReg::showInstance("preview_notecard", LLSD(item->getUUID()), TAKE_FOCUS_YES); - } + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLFloaterReg::showInstance("preview_notecard", LLSD(item->getUUID()), TAKE_FOCUS_YES); + } */ } @@ -3773,7 +3779,7 @@ std::string LLGestureBridge::getLabelSuffix() const } // virtual -void LLGestureBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLGestureBridge::performAction(LLInventoryModel* model, std::string action) { if (isAddAction(action)) { @@ -3819,7 +3825,7 @@ void LLGestureBridge::performAction(LLFolderView* root, LLInventoryModel* model, playGesture(mUUID); } } - else LLItemBridge::performAction(root, model, action); + else LLItemBridge::performAction(model, action); } void LLGestureBridge::openItem() @@ -3831,12 +3837,12 @@ void LLGestureBridge::openItem() LLInvFVBridgeAction::doAction(item->getType(),mUUID,getInventoryModel()); } /* - LLViewerInventoryItem* item = getItem(); - if (item) - { - LLPreviewGesture* preview = LLPreviewGesture::show(mUUID, LLUUID::null); - preview->setFocus(TRUE); - } + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLPreviewGesture* preview = LLPreviewGesture::show(mUUID, LLUUID::null); + preview->setFocus(TRUE); + } */ } @@ -3948,7 +3954,7 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } // virtual -void LLAnimationBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLAnimationBridge::performAction(LLInventoryModel* model, std::string action) { if ((action == "playworld") || (action == "playlocal")) { @@ -3967,7 +3973,7 @@ void LLAnimationBridge::performAction(LLFolderView* root, LLInventoryModel* mode } else { - LLItemBridge::performAction(root, model, action); + LLItemBridge::performAction(model, action); } } @@ -3980,11 +3986,11 @@ void LLAnimationBridge::openItem() LLInvFVBridgeAction::doAction(item->getType(),mUUID,getInventoryModel()); } /* - LLViewerInventoryItem* item = getItem(); - if (item) - { - LLFloaterReg::showInstance("preview_anim", LLSD(mUUID), TAKE_FOCUS_YES); - } + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLFloaterReg::showInstance("preview_anim", LLSD(mUUID), TAKE_FOCUS_YES); + } */ } @@ -3995,8 +4001,13 @@ void LLAnimationBridge::openItem() // static LLUUID LLObjectBridge::sContextMenuItemID; -LLObjectBridge::LLObjectBridge(LLInventoryPanel* inventory, const LLUUID& uuid, LLInventoryType::EType type, U32 flags) : -LLItemBridge(inventory, uuid), mInvType(type) +LLObjectBridge::LLObjectBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + LLInventoryType::EType type, + U32 flags) : + LLItemBridge(inventory, root, uuid), + mInvType(type) { mAttachPt = (flags & 0xff); // low bye of inventory flags @@ -4020,7 +4031,7 @@ LLInventoryObject* LLObjectBridge::getObject() const } // virtual -void LLObjectBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLObjectBridge::performAction(LLInventoryModel* model, std::string action) { if (isAddAction(action)) { @@ -4064,7 +4075,7 @@ void LLObjectBridge::performAction(LLFolderView* root, LLInventoryModel* model, } } } - else LLItemBridge::performAction(root, model, action); + else LLItemBridge::performAction(model, action); } void LLObjectBridge::openItem() @@ -4082,7 +4093,7 @@ void LLObjectBridge::openItem() // Disable old properties floater; this is replaced by the sidepanel. /* - LLFloaterReg::showInstance("properties", mUUID); + LLFloaterReg::showInstance("properties", mUUID); */ } @@ -4333,19 +4344,25 @@ void LLLSLTextBridge::openItem() { LLInvFVBridgeAction::doAction(item->getType(),mUUID,getInventoryModel()); } - /* - LLViewerInventoryItem* item = getItem(); - if (item) - { - LLFloaterReg::showInstance("preview_script", LLSD(mUUID), TAKE_FOCUS_YES); - } - */ } // +=================================================+ // | LLWearableBridge | // +=================================================+ +LLWearableBridge::LLWearableBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + LLAssetType::EType asset_type, + LLInventoryType::EType inv_type, + EWearableType wearable_type) : + LLItemBridge(inventory, root, uuid), + mAssetType( asset_type ), + mInvType(inv_type), + mWearableType(wearable_type) +{ +} + // *NOTE: hack to get from avatar inventory to avatar void wear_inventory_item_on_avatar( LLInventoryItem* item ) { @@ -4366,10 +4383,10 @@ void wear_add_inventory_item_on_avatar( LLInventoryItem* item ) << " )" << llendl; LLWearableList::instance().getAsset(item->getAssetUUID(), - item->getName(), - item->getType(), - LLWearableBridge::onWearAddOnAvatarArrived, - new LLUUID(item->getUUID())); + item->getName(), + item->getType(), + LLWearableBridge::onWearAddOnAvatarArrived, + new LLUUID(item->getUUID())); } } @@ -4529,7 +4546,7 @@ LLUIImagePtr LLWearableBridge::getIcon() const } // virtual -void LLWearableBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLWearableBridge::performAction(LLInventoryModel* model, std::string action) { if (isAddAction(action)) { @@ -4549,7 +4566,7 @@ void LLWearableBridge::performAction(LLFolderView* root, LLInventoryModel* model removeFromAvatar(); return; } - else LLItemBridge::performAction(root, model, action); + else LLItemBridge::performAction(model, action); } void LLWearableBridge::openItem() @@ -4560,42 +4577,6 @@ void LLWearableBridge::openItem() { LLInvFVBridgeAction::doAction(item->getType(),mUUID,getInventoryModel()); } - /* - if( isItemInTrash() ) - { - LLNotificationsUtil::add("CannotWearTrash"); - } - else if(isAgentInventory()) - { - if( !get_is_item_worn( mUUID ) ) - { - wearOnAvatar(); - } - } - else - { - // must be in the inventory library. copy it to our inventory - // and put it on right away. - LLViewerInventoryItem* item = getItem(); - if(item && item->isComplete()) - { - LLPointer cb = new WearOnAvatarCallback(); - copy_inventory_item( - gAgent.getID(), - item->getPermissions().getOwner(), - item->getUUID(), - LLUUID::null, - std::string(), - cb); - } - else if(item) - { - // *TODO: We should fetch the item details, and then do - // the operation above. - LLNotificationsUtil::add("CannotWearInfoNotComplete"); - } - } - */ } void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) @@ -4919,7 +4900,7 @@ void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable, delete on_remove_struct; } -/* static */ +// static void LLWearableBridge::removeAllClothesFromAvatar() { // Remove COF links. @@ -4947,7 +4928,7 @@ void LLWearableBridge::removeAllClothesFromAvatar() LLAgentWearables::userRemoveAllClothes(); } -/* static */ +// static void LLWearableBridge::removeItemFromAvatar(LLViewerInventoryItem *item) { if (item) @@ -4970,60 +4951,50 @@ void LLWearableBridge::removeFromAvatar() } LLInvFVBridgeAction* LLInvFVBridgeAction::createAction(LLAssetType::EType asset_type, - const LLUUID& uuid,LLInventoryModel* model) + const LLUUID& uuid, + LLInventoryModel* model) { LLInvFVBridgeAction* action = NULL; switch(asset_type) { - case LLAssetType::AT_TEXTURE: - action = new LLTextureBridgeAction(uuid,model); - break; - - case LLAssetType::AT_SOUND: - action = new LLSoundBridgeAction(uuid,model); - break; - - case LLAssetType::AT_LANDMARK: - action = new LLLandmarkBridgeAction(uuid,model); - break; - - case LLAssetType::AT_CALLINGCARD: - action = new LLCallingCardBridgeAction(uuid,model); - break; - - case LLAssetType::AT_OBJECT: - action = new LLObjectBridgeAction(uuid,model); - break; - - case LLAssetType::AT_NOTECARD: - action = new LLNotecardBridgeAction(uuid,model); - break; - - case LLAssetType::AT_ANIMATION: - action = new LLAnimationBridgeAction(uuid,model); - break; - - case LLAssetType::AT_GESTURE: - action = new LLGestureBridgeAction(uuid,model); - break; - - case LLAssetType::AT_LSL_TEXT: - action = new LLLSLTextBridgeAction(uuid,model); - break; - - case LLAssetType::AT_CLOTHING: - case LLAssetType::AT_BODYPART: - action = new LLWearableBridgeAction(uuid,model); - - break; - - default: - break; + case LLAssetType::AT_TEXTURE: + action = new LLTextureBridgeAction(uuid,model); + break; + case LLAssetType::AT_SOUND: + action = new LLSoundBridgeAction(uuid,model); + break; + case LLAssetType::AT_LANDMARK: + action = new LLLandmarkBridgeAction(uuid,model); + break; + case LLAssetType::AT_CALLINGCARD: + action = new LLCallingCardBridgeAction(uuid,model); + break; + case LLAssetType::AT_OBJECT: + action = new LLObjectBridgeAction(uuid,model); + break; + case LLAssetType::AT_NOTECARD: + action = new LLNotecardBridgeAction(uuid,model); + break; + case LLAssetType::AT_ANIMATION: + action = new LLAnimationBridgeAction(uuid,model); + break; + case LLAssetType::AT_GESTURE: + action = new LLGestureBridgeAction(uuid,model); + break; + case LLAssetType::AT_LSL_TEXT: + action = new LLLSLTextBridgeAction(uuid,model); + break; + case LLAssetType::AT_CLOTHING: + case LLAssetType::AT_BODYPART: + action = new LLWearableBridgeAction(uuid,model); + break; + default: + break; } return action; } -//static +// static void LLInvFVBridgeAction::doAction(LLAssetType::EType asset_type, const LLUUID& uuid,LLInventoryModel* model) { @@ -5060,8 +5031,8 @@ LLViewerInventoryItem* LLInvFVBridgeAction::getItem() const return NULL; } -//virtual -void LLTextureBridgeAction::doIt() +// virtual +void LLTextureBridgeAction::doIt() { if (getItem()) { @@ -5071,8 +5042,8 @@ void LLTextureBridgeAction::doIt() LLInvFVBridgeAction::doIt(); } -//virtual -void LLSoundBridgeAction::doIt() +// virtual +void LLSoundBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); if(item) @@ -5084,8 +5055,8 @@ void LLSoundBridgeAction::doIt() } -//virtual -void LLLandmarkBridgeAction::doIt() +// virtual +void LLLandmarkBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); if( item ) @@ -5105,8 +5076,8 @@ void LLLandmarkBridgeAction::doIt() } -//virtual -void LLCallingCardBridgeAction::doIt() +// virtual +void LLCallingCardBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); if(item && item->getCreatorUUID().notNull()) @@ -5117,9 +5088,8 @@ void LLCallingCardBridgeAction::doIt() LLInvFVBridgeAction::doIt(); } -//virtual -void -LLNotecardBridgeAction::doIt() +// virtual +void LLNotecardBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); if (item) @@ -5130,8 +5100,8 @@ LLNotecardBridgeAction::doIt() LLInvFVBridgeAction::doIt(); } -//virtual -void LLGestureBridgeAction::doIt() +// virtual +void LLGestureBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); if (item) @@ -5143,7 +5113,7 @@ void LLGestureBridgeAction::doIt() LLInvFVBridgeAction::doIt(); } -//virtual +// virtual void LLAnimationBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); @@ -5156,18 +5126,18 @@ void LLAnimationBridgeAction::doIt() } -//virtual -void LLObjectBridgeAction::doIt() +// virtual +void LLObjectBridgeAction::doIt() { /* - LLFloaterReg::showInstance("properties", mUUID); + LLFloaterReg::showInstance("properties", mUUID); */ LLInvFVBridgeAction::doIt(); } -//virtual -void LLLSLTextBridgeAction::doIt() +// virtual +void LLLSLTextBridgeAction::doIt() { LLViewerInventoryItem* item = getItem(); if (item) @@ -5224,7 +5194,7 @@ void LLWearableBridgeAction::wearOnAvatar() } } -//virtual +// virtual void LLWearableBridgeAction::doIt() { if(isItemInTrash()) @@ -5268,11 +5238,8 @@ void LLWearableBridgeAction::doIt() // +=================================================+ // | LLLinkItemBridge | // +=================================================+ -// For broken links - +// For broken item links std::string LLLinkItemBridge::sPrefix("Link: "); - - LLUIImagePtr LLLinkItemBridge::getIcon() const { if (LLViewerInventoryItem *item = getItem()) @@ -5284,7 +5251,6 @@ LLUIImagePtr LLLinkItemBridge::getIcon() const } return get_item_icon(LLAssetType::AT_LINK, LLInventoryType::IT_NONE, 0, FALSE); } - void LLLinkItemBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { // *TODO: Translate @@ -5307,15 +5273,11 @@ void LLLinkItemBridge::buildContextMenu(LLMenuGL& menu, U32 flags) hide_context_entries(menu, items, disabled_items); } - // +=================================================+ // | LLLinkBridge | // +=================================================+ -// For broken links. - +// For broken folder links. std::string LLLinkFolderBridge::sPrefix("Link: "); - - LLUIImagePtr LLLinkFolderBridge::getIcon() const { LLFolderType::EType preferred_type = LLFolderType::FT_NONE; @@ -5328,7 +5290,6 @@ LLUIImagePtr LLLinkFolderBridge::getIcon() const } return LLFolderBridge::getIcon(preferred_type); } - void LLLinkFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { // *TODO: Translate @@ -5347,35 +5308,32 @@ void LLLinkFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } hide_context_entries(menu, items, disabled_items); } - -void LLLinkFolderBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLLinkFolderBridge::performAction(LLInventoryModel* model, std::string action) { if ("goto" == action) { - gotoItem(root); + gotoItem(); return; } - LLItemBridge::performAction(root,model,action); + LLItemBridge::performAction(model,action); } - -void LLLinkFolderBridge::gotoItem(LLFolderView* root) +void LLLinkFolderBridge::gotoItem() { const LLUUID &cat_uuid = getFolderID(); if (!cat_uuid.isNull()) { - if (LLFolderViewItem *base_folder = root->getItemByID(cat_uuid)) + if (LLFolderViewItem *base_folder = mRoot->getItemByID(cat_uuid)) { if (LLInventoryModel* model = getInventoryModel()) { model->fetchDescendentsOf(cat_uuid); } base_folder->setOpen(TRUE); - root->setSelectionFromRoot(base_folder,TRUE); - root->scrollToShowSelection(); + mRoot->setSelectionFromRoot(base_folder,TRUE); + mRoot->scrollToShowSelection(); } } } - const LLUUID &LLLinkFolderBridge::getFolderID() const { if (LLViewerInventoryItem *link_item = getItem()) diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 22e454d645..44165594ee 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -44,6 +44,7 @@ class LLInventoryPanel; class LLInventoryModel; class LLMenuGL; +class LLCallingCardObserver; enum EInventoryIcon { @@ -134,6 +135,7 @@ public: LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, LLInventoryPanel* inventory, + LLFolderView* root, const LLUUID& uuid, U32 flags = 0x00); virtual ~LLInvFVBridge() {} @@ -199,7 +201,7 @@ protected: menuentry_vec_t &disabled_items); protected: - LLInvFVBridge(LLInventoryPanel* inventory, const LLUUID& uuid); + LLInvFVBridge(LLInventoryPanel* inventory, LLFolderView* root, const LLUUID& uuid); LLInventoryObject* getInventoryObject() const; LLInventoryModel* getInventoryModel() const; @@ -221,9 +223,11 @@ protected: void removeBatchNoCheck(LLDynamicArray& batch); protected: LLHandle mInventoryPanel; + LLFolderView* mRoot; const LLUUID mUUID; // item id LLInventoryType::EType mInvType; void purgeItem(LLInventoryModel *model, const LLUUID &uuid); + }; /** @@ -238,6 +242,7 @@ public: LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, LLInventoryPanel* inventory, + LLFolderView* root, const LLUUID& uuid, U32 flags = 0x00) const; }; @@ -246,15 +251,17 @@ public: class LLItemBridge : public LLInvFVBridge { public: - LLItemBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLInvFVBridge(inventory, uuid) {} + LLItemBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLInvFVBridge(inventory, root, uuid) {} - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void selectItem(); virtual void restoreItem(); virtual void restoreToWorld(); - virtual void gotoItem(LLFolderView* root); + virtual void gotoItem(); virtual LLUIImagePtr getIcon() const; virtual const std::string& getDisplayName() const; virtual std::string getLabelSuffix() const; @@ -292,7 +299,7 @@ public: BOOL drop); BOOL dragCategoryIntoFolder(LLInventoryCategory* inv_category, BOOL drop); - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); virtual void closeItem(); virtual BOOL isItemRenameable() const; @@ -332,9 +339,10 @@ public: LLViewerInventoryCategory* getCategory() const; protected: - LLFolderBridge(LLInventoryPanel* inventory, const LLUUID& uuid) - : LLInvFVBridge(inventory, uuid), - + LLFolderBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLInvFVBridge(inventory, root, uuid), mCallingCards(FALSE), mWearables(FALSE), mMenu(NULL) {} @@ -383,8 +391,10 @@ public: LLUIImagePtr getIcon() const; protected: - LLScriptBridge( LLInventoryPanel* inventory, const LLUUID& uuid ) : - LLItemBridge(inventory, uuid) {} + LLScriptBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid ) : + LLItemBridge(inventory, root, uuid) {} }; @@ -395,11 +405,16 @@ public: virtual LLUIImagePtr getIcon() const; virtual void openItem(); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); protected: - LLTextureBridge(LLInventoryPanel* inventory, const LLUUID& uuid, LLInventoryType::EType type) : - LLItemBridge(inventory, uuid), mInvType(type) {} + LLTextureBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + LLInventoryType::EType type) : + LLItemBridge(inventory, root, uuid), + mInvType(type) + {} bool canSaveTexture(void); LLInventoryType::EType mInvType; }; @@ -415,39 +430,31 @@ public: static void openSoundPreview(void*); protected: - LLSoundBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLItemBridge(inventory, uuid) {} + LLSoundBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLItemBridge(inventory, root, uuid) {} }; class LLLandmarkBridge : public LLItemBridge { friend class LLInvFVBridge; public: - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual LLUIImagePtr getIcon() const; virtual void openItem(); protected: - LLLandmarkBridge(LLInventoryPanel* inventory, const LLUUID& uuid, U32 flags = 0x00); + LLLandmarkBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + U32 flags = 0x00); protected: BOOL mVisited; }; -class LLCallingCardBridge; - -class LLCallingCardObserver : public LLFriendObserver -{ -public: - LLCallingCardObserver(LLCallingCardBridge* bridge) : mBridgep(bridge) {} - virtual ~LLCallingCardObserver() { mBridgep = NULL; } - virtual void changed(U32 mask); - -protected: - LLCallingCardBridge* mBridgep; -}; - class LLCallingCardBridge : public LLItemBridge { friend class LLInvFVBridge; @@ -455,7 +462,7 @@ public: virtual std::string getLabelSuffix() const; //virtual const std::string& getDisplayName() const; virtual LLUIImagePtr getIcon() const; - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); //virtual void renameItem(const std::string& new_name); @@ -466,7 +473,9 @@ public: void refreshFolderViewItem(); protected: - LLCallingCardBridge( LLInventoryPanel* inventory, const LLUUID& uuid ); + LLCallingCardBridge(LLInventoryPanel* inventory, + LLFolderView* folder, + const LLUUID& uuid ); ~LLCallingCardBridge(); protected: @@ -482,8 +491,10 @@ public: virtual void openItem(); protected: - LLNotecardBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLItemBridge(inventory, uuid) {} + LLNotecardBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLItemBridge(inventory, root, uuid) {} }; class LLGestureBridge : public LLItemBridge @@ -497,7 +508,7 @@ public: virtual LLFontGL::StyleFlags getLabelStyle() const; virtual std::string getLabelSuffix() const; - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); virtual BOOL removeItem(); @@ -506,8 +517,10 @@ public: static void playGesture(const LLUUID& item_id); protected: - LLGestureBridge(LLInventoryPanel* inventory, const LLUUID& uuid) - : LLItemBridge(inventory, uuid) {} + LLGestureBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) + : LLItemBridge(inventory, root, uuid) {} }; @@ -515,15 +528,17 @@ class LLAnimationBridge : public LLItemBridge { friend class LLInvFVBridge; public: - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual LLUIImagePtr getIcon() const; virtual void openItem(); protected: - LLAnimationBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLItemBridge(inventory, uuid) {} + LLAnimationBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLItemBridge(inventory, root, uuid) {} }; @@ -532,7 +547,7 @@ class LLObjectBridge : public LLItemBridge friend class LLInvFVBridge; public: virtual LLUIImagePtr getIcon() const; - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); virtual LLFontGL::StyleFlags getLabelStyle() const; virtual std::string getLabelSuffix() const; @@ -540,10 +555,12 @@ public: virtual BOOL renameItem(const std::string& new_name); LLInventoryObject* getObject() const; - protected: - LLObjectBridge(LLInventoryPanel* inventory, const LLUUID& uuid, LLInventoryType::EType type, U32 flags); - + LLObjectBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + LLInventoryType::EType type, + U32 flags); protected: static LLUUID sContextMenuItemID; // Only valid while the context menu is open. LLInventoryType::EType mInvType; @@ -560,8 +577,10 @@ public: virtual void openItem(); protected: - LLLSLTextBridge( LLInventoryPanel* inventory, const LLUUID& uuid ) : - LLItemBridge(inventory, uuid) {} + LLLSLTextBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid ) : + LLItemBridge(inventory, root, uuid) {} }; @@ -570,7 +589,7 @@ class LLWearableBridge : public LLItemBridge friend class LLInvFVBridge; public: virtual LLUIImagePtr getIcon() const; - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual std::string getLabelSuffix() const; @@ -596,13 +615,12 @@ public: void removeFromAvatar(); protected: - LLWearableBridge(LLInventoryPanel* inventory, const LLUUID& uuid, LLAssetType::EType asset_type, LLInventoryType::EType inv_type, EWearableType wearable_type) : - LLItemBridge(inventory, uuid), - mAssetType( asset_type ), - mInvType(inv_type), - mWearableType(wearable_type) - {} - + LLWearableBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + LLAssetType::EType asset_type, + LLInventoryType::EType inv_type, + EWearableType wearable_type); protected: LLAssetType::EType mAssetType; LLInventoryType::EType mInvType; @@ -619,8 +637,10 @@ public: virtual void buildContextMenu(LLMenuGL& menu, U32 flags); protected: - LLLinkItemBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLItemBridge(inventory, uuid) {} + LLLinkItemBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLItemBridge(inventory, root, uuid) {} protected: static std::string sPrefix; @@ -635,12 +655,14 @@ public: virtual LLUIImagePtr getIcon() const; virtual void buildContextMenu(LLMenuGL& menu, U32 flags); - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); - virtual void gotoItem(LLFolderView* root); + virtual void performAction(LLInventoryModel* model, std::string action); + virtual void gotoItem(); protected: - LLLinkFolderBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLItemBridge(inventory, uuid) {} + LLLinkFolderBridge(LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLItemBridge(inventory, root, uuid) {} const LLUUID &getFolderID() const; protected: @@ -660,22 +682,21 @@ public: // This method is a convenience function which creates the correct // type of bridge action based on some basic information static LLInvFVBridgeAction* createAction(LLAssetType::EType asset_type, - const LLUUID& uuid,LLInventoryModel* model); - + const LLUUID& uuid, + LLInventoryModel* model); static void doAction(LLAssetType::EType asset_type, const LLUUID& uuid, LLInventoryModel* model); static void doAction(const LLUUID& uuid, LLInventoryModel* model); - virtual void doIt() { }; + virtual void doIt() {}; virtual ~LLInvFVBridgeAction(){}//need this because of warning on OSX protected: - LLInvFVBridgeAction(const LLUUID& id,LLInventoryModel* model):mUUID(id),mModel(model){} - + LLInvFVBridgeAction(const LLUUID& id, LLInventoryModel* model) : + mUUID(id), mModel(model) {} LLViewerInventoryItem* getItem() const; protected: const LLUUID& mUUID; // item id LLInventoryModel* mModel; - }; diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 4d490b0d24..c6c2d23a4b 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -506,8 +506,8 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id) objectp->getType(), LLInventoryType::IT_CATEGORY, this, + mFolderRoot, objectp->getUUID()); - if (new_listener) { LLFolderViewFolder::Params params; @@ -542,6 +542,7 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id) item->getActualType(), item->getInventoryType(), this, + mFolderRoot, item->getUUID(), item->getFlags()); diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 9a22d9ccf0..9cc79d95b8 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -989,7 +989,7 @@ void LLLandmarksPanel::onCustomAction(const LLSD& userdata) std::string command_name = userdata.asString(); if("more_info" == command_name) { - cur_item->getListener()->performAction(mCurrentSelectedList->getRootFolder(),mCurrentSelectedList->getModel(),"about"); + cur_item->getListener()->performAction(mCurrentSelectedList->getModel(),"about"); } else if ("teleport" == command_name) { diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index e4f13cdeda..8be4c8402c 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -1044,7 +1044,7 @@ void LLPanelMainInventory::onCustomAction(const LLSD& userdata) { return; } - current_item->getListener()->performAction(getActivePanel()->getRootFolder(), getActivePanel()->getModel(), "goto"); + current_item->getListener()->performAction(getActivePanel()->getModel(), "goto"); } if (command_name == "find_links") diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 988b5576c2..f70a06cde9 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -128,7 +128,7 @@ public: virtual void pasteFromClipboard(); virtual void pasteLinkFromClipboard(); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual BOOL isUpToDate() const { return TRUE; } virtual BOOL hasChildren() const { return FALSE; } virtual LLInventoryType::EType getInventoryType() const { return LLInventoryType::IT_NONE; } @@ -595,7 +595,7 @@ BOOL LLTaskInvFVBridge::dragOrDrop(MASK mask, BOOL drop, } // virtual -void LLTaskInvFVBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLTaskInvFVBridge::performAction(LLInventoryModel* model, std::string action) { if (action == "task_buy") { @@ -917,7 +917,7 @@ public: virtual LLUIImagePtr getIcon() const; virtual void openItem(); - virtual void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + virtual void performAction(LLInventoryModel* model, std::string action); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); static void openSoundPreview(void* data); }; @@ -954,7 +954,7 @@ void LLTaskSoundBridge::openSoundPreview(void* data) } // virtual -void LLTaskSoundBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLTaskSoundBridge::performAction(LLInventoryModel* model, std::string action) { if (action == "task_play") { @@ -964,7 +964,7 @@ void LLTaskSoundBridge::performAction(LLFolderView* root, LLInventoryModel* mode send_sound_trigger(item->getAssetUUID(), 1.0); } } - LLTaskInvFVBridge::performAction(root, model, action); + LLTaskInvFVBridge::performAction(model, action); } void LLTaskSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags) diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 09a93e3714..eb13115677 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -242,7 +242,7 @@ void LLPanelOutfitsInventory::onWearButtonClick() LLFolderViewEventListener* listenerp = getCorrectListenerForAction(); if (listenerp) { - listenerp->performAction(NULL, NULL,"replaceoutfit"); + listenerp->performAction(NULL, "replaceoutfit"); } } @@ -251,7 +251,7 @@ void LLPanelOutfitsInventory::onAdd() LLFolderViewEventListener* listenerp = getCorrectListenerForAction(); if (listenerp) { - listenerp->performAction(NULL, NULL,"addtooutfit"); + listenerp->performAction(NULL, "addtooutfit"); } } @@ -260,7 +260,7 @@ void LLPanelOutfitsInventory::onRemove() LLFolderViewEventListener* listenerp = getCorrectListenerForAction(); if (listenerp) { - listenerp->performAction(NULL, NULL,"removefromoutfit"); + listenerp->performAction(NULL, "removefromoutfit"); } } diff --git a/indra/newview/llplacesinventorybridge.cpp b/indra/newview/llplacesinventorybridge.cpp index f003a9b9ec..b4f960f4ac 100644 --- a/indra/newview/llplacesinventorybridge.cpp +++ b/indra/newview/llplacesinventorybridge.cpp @@ -122,7 +122,7 @@ void LLPlacesFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } //virtual -void LLPlacesFolderBridge::performAction(LLFolderView* root, LLInventoryModel* model, std::string action) +void LLPlacesFolderBridge::performAction(LLInventoryModel* model, std::string action) { if ("expand" == action) { @@ -136,7 +136,7 @@ void LLPlacesFolderBridge::performAction(LLFolderView* root, LLInventoryModel* m } else { - LLFolderBridge::performAction(root, model, action); + LLFolderBridge::performAction(model, action); } } @@ -158,6 +158,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge( LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, LLInventoryPanel* inventory, + LLFolderView* root, const LLUUID& uuid, U32 flags/* = 0x00*/) const { @@ -169,7 +170,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge( { llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; } - new_listener = new LLPlacesLandmarkBridge(inv_type, inventory, uuid, flags); + new_listener = new LLPlacesLandmarkBridge(inv_type, inventory, root, uuid, flags); break; case LLAssetType::AT_CATEGORY: if (actual_asset_type == LLAssetType::AT_LINK_FOLDER) @@ -180,11 +181,12 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge( actual_asset_type, inv_type, inventory, + root, uuid, flags); break; } - new_listener = new LLPlacesFolderBridge(inv_type, inventory, uuid); + new_listener = new LLPlacesFolderBridge(inv_type, inventory, root, uuid); break; default: new_listener = LLInventoryFVBridgeBuilder::createBridge( @@ -192,6 +194,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge( actual_asset_type, inv_type, inventory, + root, uuid, flags); } diff --git a/indra/newview/llplacesinventorybridge.h b/indra/newview/llplacesinventorybridge.h index e90cc45356..7e5170cc33 100644 --- a/indra/newview/llplacesinventorybridge.h +++ b/indra/newview/llplacesinventorybridge.h @@ -48,8 +48,15 @@ public: /*virtual*/ void buildContextMenu(LLMenuGL& menu, U32 flags); protected: - LLPlacesLandmarkBridge(LLInventoryType::EType type, LLInventoryPanel* inventory, const LLUUID& uuid, U32 flags = 0x00) - : LLLandmarkBridge(inventory, uuid, flags) {mInvType = type;} + LLPlacesLandmarkBridge(LLInventoryType::EType type, + LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + U32 flags = 0x00) : + LLLandmarkBridge(inventory, root, uuid, flags) + { + mInvType = type; + } }; /** @@ -61,12 +68,17 @@ class LLPlacesFolderBridge : public LLFolderBridge public: /*virtual*/ void buildContextMenu(LLMenuGL& menu, U32 flags); - /*virtual*/ void performAction(LLFolderView* root, LLInventoryModel* model, std::string action); + /*virtual*/ void performAction(LLInventoryModel* model, std::string action); protected: - LLPlacesFolderBridge(LLInventoryType::EType type, LLInventoryPanel* inventory, const LLUUID& uuid) - : LLFolderBridge(inventory, uuid) {mInvType = type;} - + LLPlacesFolderBridge(LLInventoryType::EType type, + LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid) : + LLFolderBridge(inventory, root, uuid) + { + mInvType = type; + } LLFolderViewFolder* getFolder(); }; @@ -79,13 +91,13 @@ protected: class LLPlacesInventoryBridgeBuilder : public LLInventoryFVBridgeBuilder { public: - /*virtual*/ LLInvFVBridge* createBridge( - LLAssetType::EType asset_type, - LLAssetType::EType actual_asset_type, - LLInventoryType::EType inv_type, - LLInventoryPanel* inventory, - const LLUUID& uuid, - U32 flags = 0x00) const; + /*virtual*/ LLInvFVBridge* createBridge(LLAssetType::EType asset_type, + LLAssetType::EType actual_asset_type, + LLInventoryType::EType inv_type, + LLInventoryPanel* inventory, + LLFolderView* root, + const LLUUID& uuid, + U32 flags = 0x00) const; }; #endif // LL_LLPLACESINVENTORYBRIDGE_H diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index 73880563d7..18e56a9c01 100644 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -161,7 +161,7 @@ void LLSidepanelInventory::performActionOnSelection(const std::string &action) { return; } - current_item->getListener()->performAction(panel_main_inventory->getActivePanel()->getRootFolder(), panel_main_inventory->getActivePanel()->getModel(), action); + current_item->getListener()->performAction(panel_main_inventory->getActivePanel()->getModel(), action); } void LLSidepanelInventory::onWearButtonClicked() -- cgit v1.3 From 825e4df30d411de2b41864c5b63ef2ea5d317ebd Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Fri, 2 Apr 2010 11:12:59 -0400 Subject: EXT-6689 : INFRASTRUCTURE : LLInventoryBridge code cleanup Moved a bunch of local llinventorybridge functions into .cpp. Did a bunch of superficial cleanup of llinventorybridge and related files. --- indra/newview/llinventorybridge.cpp | 657 +++++++++++++++++------------- indra/newview/llinventorybridge.h | 295 +++----------- indra/newview/llinventoryfunctions.h | 10 +- indra/newview/llplacesinventorybridge.cpp | 2 +- 4 files changed, 427 insertions(+), 537 deletions(-) (limited to 'indra/newview/llinventorybridge.cpp') diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 2a570ecebb..10a3713c1e 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -70,6 +70,18 @@ #include "llwearablelist.h" #include "llpaneloutfitsinventory.h" +typedef std::pair two_uuids_t; +typedef std::list two_uuids_list_t; + +struct LLMoveInv +{ + LLUUID mObjectID; + LLUUID mCategoryID; + two_uuids_list_t mMoveList; + void (*mCallback)(S32, void*); + void* mUserData; +}; + using namespace LLOldEvents; // Helpers @@ -93,6 +105,7 @@ void remove_inventory_category_from_avatar(LLInventoryCategory* category); void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_id); bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, LLMoveInv*); bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& response); +void teleport_via_landmark(const LLUUID& asset_id); std::string ICON_NAME[ICON_NAME_COUNT] = { @@ -864,17 +877,6 @@ void LLInvFVBridge::changeCategoryParent(LLInventoryModel* model, model->notifyObservers(); } - -const std::string safe_inv_type_lookup(LLInventoryType::EType inv_type) -{ - const std::string rv= LLInventoryType::lookup(inv_type); - if(rv.empty()) - { - return std::string(""); - } - return rv; -} - LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, @@ -889,7 +891,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_TEXTURE: if(!(inv_type == LLInventoryType::IT_TEXTURE || inv_type == LLInventoryType::IT_SNAPSHOT)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLTextureBridge(inventory, root, uuid, inv_type); break; @@ -897,7 +899,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_SOUND: if(!(inv_type == LLInventoryType::IT_SOUND)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLSoundBridge(inventory, root, uuid); break; @@ -905,7 +907,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_LANDMARK: if(!(inv_type == LLInventoryType::IT_LANDMARK)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLLandmarkBridge(inventory, root, uuid, flags); break; @@ -913,7 +915,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_CALLINGCARD: if(!(inv_type == LLInventoryType::IT_CALLINGCARD)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLCallingCardBridge(inventory, root, uuid); break; @@ -921,7 +923,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_SCRIPT: if(!(inv_type == LLInventoryType::IT_LSL)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLScriptBridge(inventory, root, uuid); break; @@ -929,7 +931,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_OBJECT: if(!(inv_type == LLInventoryType::IT_OBJECT || inv_type == LLInventoryType::IT_ATTACHMENT)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLObjectBridge(inventory, root, uuid, inv_type, flags); break; @@ -937,7 +939,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_NOTECARD: if(!(inv_type == LLInventoryType::IT_NOTECARD)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLNotecardBridge(inventory, root, uuid); break; @@ -945,7 +947,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_ANIMATION: if(!(inv_type == LLInventoryType::IT_ANIMATION)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLAnimationBridge(inventory, root, uuid); break; @@ -953,7 +955,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_GESTURE: if(!(inv_type == LLInventoryType::IT_GESTURE)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLGestureBridge(inventory, root, uuid); break; @@ -961,7 +963,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_LSL_TEXT: if(!(inv_type == LLInventoryType::IT_LSL)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLLSLTextBridge(inventory, root, uuid); break; @@ -970,7 +972,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type, case LLAssetType::AT_BODYPART: if(!(inv_type == LLInventoryType::IT_WEARABLE)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLWearableBridge(inventory, root, uuid, asset_type, inv_type, (EWearableType)flags); break; @@ -4950,50 +4952,123 @@ void LLWearableBridge::removeFromAvatar() } } -LLInvFVBridgeAction* LLInvFVBridgeAction::createAction(LLAssetType::EType asset_type, - const LLUUID& uuid, - LLInventoryModel* model) +// +=================================================+ +// | LLLinkItemBridge | +// +=================================================+ +// For broken item links +std::string LLLinkItemBridge::sPrefix("Link: "); +LLUIImagePtr LLLinkItemBridge::getIcon() const { - LLInvFVBridgeAction* action = NULL; - switch(asset_type) + if (LLViewerInventoryItem *item = getItem()) { - case LLAssetType::AT_TEXTURE: - action = new LLTextureBridgeAction(uuid,model); - break; - case LLAssetType::AT_SOUND: - action = new LLSoundBridgeAction(uuid,model); - break; - case LLAssetType::AT_LANDMARK: - action = new LLLandmarkBridgeAction(uuid,model); - break; - case LLAssetType::AT_CALLINGCARD: - action = new LLCallingCardBridgeAction(uuid,model); - break; - case LLAssetType::AT_OBJECT: - action = new LLObjectBridgeAction(uuid,model); - break; - case LLAssetType::AT_NOTECARD: - action = new LLNotecardBridgeAction(uuid,model); - break; - case LLAssetType::AT_ANIMATION: - action = new LLAnimationBridgeAction(uuid,model); - break; - case LLAssetType::AT_GESTURE: - action = new LLGestureBridgeAction(uuid,model); - break; - case LLAssetType::AT_LSL_TEXT: - action = new LLLSLTextBridgeAction(uuid,model); - break; - case LLAssetType::AT_CLOTHING: - case LLAssetType::AT_BODYPART: - action = new LLWearableBridgeAction(uuid,model); - break; - default: - break; + U32 attachment_point = (item->getFlags() & 0xff); // low byte of inventory flags + bool is_multi = LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags(); + + return get_item_icon(item->getActualType(), item->getInventoryType(), attachment_point, is_multi); + } + return get_item_icon(LLAssetType::AT_LINK, LLInventoryType::IT_NONE, 0, FALSE); +} +void LLLinkItemBridge::buildContextMenu(LLMenuGL& menu, U32 flags) +{ + // *TODO: Translate + lldebugs << "LLLink::buildContextMenu()" << llendl; + menuentry_vec_t items; + menuentry_vec_t disabled_items; + + items.push_back(std::string("Find Original")); + disabled_items.push_back(std::string("Find Original")); + + if(isItemInTrash()) + { + addTrashContextMenuOptions(items, disabled_items); + } + else + { + items.push_back(std::string("Properties")); + addDeleteContextMenuOptions(items, disabled_items); + } + hide_context_entries(menu, items, disabled_items); +} + +// +=================================================+ +// | LLLinkBridge | +// +=================================================+ +// For broken folder links. +std::string LLLinkFolderBridge::sPrefix("Link: "); +LLUIImagePtr LLLinkFolderBridge::getIcon() const +{ + LLFolderType::EType preferred_type = LLFolderType::FT_NONE; + if (LLViewerInventoryItem *item = getItem()) + { + if (const LLViewerInventoryCategory* cat = item->getLinkedCategory()) + { + preferred_type = cat->getPreferredType(); + } + } + return LLFolderBridge::getIcon(preferred_type); +} +void LLLinkFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) +{ + // *TODO: Translate + lldebugs << "LLLink::buildContextMenu()" << llendl; + menuentry_vec_t items; + menuentry_vec_t disabled_items; + + if (isItemInTrash()) + { + addTrashContextMenuOptions(items, disabled_items); + } + else + { + items.push_back(std::string("Find Original")); + addDeleteContextMenuOptions(items, disabled_items); + } + hide_context_entries(menu, items, disabled_items); +} +void LLLinkFolderBridge::performAction(LLInventoryModel* model, std::string action) +{ + if ("goto" == action) + { + gotoItem(); + return; + } + LLItemBridge::performAction(model,action); +} +void LLLinkFolderBridge::gotoItem() +{ + const LLUUID &cat_uuid = getFolderID(); + if (!cat_uuid.isNull()) + { + if (LLFolderViewItem *base_folder = mRoot->getItemByID(cat_uuid)) + { + if (LLInventoryModel* model = getInventoryModel()) + { + model->fetchDescendentsOf(cat_uuid); + } + base_folder->setOpen(TRUE); + mRoot->setSelectionFromRoot(base_folder,TRUE); + mRoot->scrollToShowSelection(); + } } - return action; +} +const LLUUID &LLLinkFolderBridge::getFolderID() const +{ + if (LLViewerInventoryItem *link_item = getItem()) + { + if (const LLViewerInventoryCategory *cat = link_item->getLinkedCategory()) + { + const LLUUID& cat_uuid = cat->getUUID(); + return cat_uuid; + } + } + return LLUUID::null; } +/******************************************************************************** + ** + ** BRIDGE ACTIONS + **/ + // static void LLInvFVBridgeAction::doAction(LLAssetType::EType asset_type, const LLUUID& uuid,LLInventoryModel* model) @@ -5006,7 +5081,7 @@ void LLInvFVBridgeAction::doAction(LLAssetType::EType asset_type, } } -//static +// static void LLInvFVBridgeAction::doAction(const LLUUID& uuid, LLInventoryModel* model) { llassert(model); @@ -5026,128 +5101,231 @@ void LLInvFVBridgeAction::doAction(const LLUUID& uuid, LLInventoryModel* model) LLViewerInventoryItem* LLInvFVBridgeAction::getItem() const { - if(mModel) + if (mModel) return (LLViewerInventoryItem*)mModel->getItem(mUUID); return NULL; } -// virtual -void LLTextureBridgeAction::doIt() +class LLTextureBridgeAction: public LLInvFVBridgeAction { - if (getItem()) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLFloaterReg::showInstance("preview_texture", LLSD(mUUID), TAKE_FOCUS_YES); + if (getItem()) + { + LLFloaterReg::showInstance("preview_texture", LLSD(mUUID), TAKE_FOCUS_YES); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLTextureBridgeAction(){} +protected: + LLTextureBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - -// virtual -void LLSoundBridgeAction::doIt() +class LLSoundBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if(item) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLFloaterReg::showInstance("preview_sound", LLSD(mUUID), TAKE_FOCUS_YES); + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLFloaterReg::showInstance("preview_sound", LLSD(mUUID), TAKE_FOCUS_YES); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLSoundBridgeAction(){} +protected: + LLSoundBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - - -// virtual -void LLLandmarkBridgeAction::doIt() +class LLLandmarkBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if( item ) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - // Opening (double-clicking) a landmark immediately teleports, - // but warns you the first time. - LLSD payload; - payload["asset_id"] = item->getAssetUUID(); - - LLSD args; - args["LOCATION"] = item->getName(); - - LLNotificationsUtil::add("TeleportFromLandmark", args, payload); + LLViewerInventoryItem* item = getItem(); + if (item) + { + // Opening (double-clicking) a landmark immediately teleports, + // but warns you the first time. + LLSD payload; + payload["asset_id"] = item->getAssetUUID(); + + LLSD args; + args["LOCATION"] = item->getName(); + + LLNotificationsUtil::add("TeleportFromLandmark", args, payload); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLLandmarkBridgeAction(){} +protected: + LLLandmarkBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - - -// virtual -void LLCallingCardBridgeAction::doIt() +class LLCallingCardBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if(item && item->getCreatorUUID().notNull()) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLAvatarActions::showProfile(item->getCreatorUUID()); + LLViewerInventoryItem* item = getItem(); + if (item && item->getCreatorUUID().notNull()) + { + LLAvatarActions::showProfile(item->getCreatorUUID()); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLCallingCardBridgeAction(){} +protected: + LLCallingCardBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} - LLInvFVBridgeAction::doIt(); -} +}; -// virtual -void LLNotecardBridgeAction::doIt() +class LLNotecardBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if (item) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLFloaterReg::showInstance("preview_notecard", LLSD(item->getUUID()), TAKE_FOCUS_YES); + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLFloaterReg::showInstance("preview_notecard", LLSD(item->getUUID()), TAKE_FOCUS_YES); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLNotecardBridgeAction(){} +protected: + LLNotecardBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - -// virtual -void LLGestureBridgeAction::doIt() +class LLGestureBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if (item) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLPreviewGesture* preview = LLPreviewGesture::show(mUUID, LLUUID::null); - preview->setFocus(TRUE); + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLPreviewGesture* preview = LLPreviewGesture::show(mUUID, LLUUID::null); + preview->setFocus(TRUE); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLGestureBridgeAction(){} +protected: + LLGestureBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - -// virtual -void LLAnimationBridgeAction::doIt() +class LLAnimationBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if (item) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLFloaterReg::showInstance("preview_anim", LLSD(mUUID), TAKE_FOCUS_YES); + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLFloaterReg::showInstance("preview_anim", LLSD(mUUID), TAKE_FOCUS_YES); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLAnimationBridgeAction(){} +protected: + LLAnimationBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - - -// virtual -void LLObjectBridgeAction::doIt() +class LLObjectBridgeAction: public LLInvFVBridgeAction { - /* - LLFloaterReg::showInstance("properties", mUUID); - */ - LLInvFVBridgeAction::doIt(); -} - + friend class LLInvFVBridgeAction; +public: + virtual void doIt() + { + /* + LLFloaterReg::showInstance("properties", mUUID); + */ + LLInvFVBridgeAction::doIt(); + } + virtual ~LLObjectBridgeAction(){} +protected: + LLObjectBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; -// virtual -void LLLSLTextBridgeAction::doIt() +class LLLSLTextBridgeAction: public LLInvFVBridgeAction { - LLViewerInventoryItem* item = getItem(); - if (item) + friend class LLInvFVBridgeAction; +public: + virtual void doIt() { - LLFloaterReg::showInstance("preview_script", LLSD(mUUID), TAKE_FOCUS_YES); + LLViewerInventoryItem* item = getItem(); + if (item) + { + LLFloaterReg::showInstance("preview_script", LLSD(mUUID), TAKE_FOCUS_YES); + } + LLInvFVBridgeAction::doIt(); } + virtual ~LLLSLTextBridgeAction(){} +protected: + LLLSLTextBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} +}; - LLInvFVBridgeAction::doIt(); -} - +class LLWearableBridgeAction: public LLInvFVBridgeAction +{ + friend class LLInvFVBridgeAction; +public: + virtual void doIt() + { + if(isItemInTrash()) + { + LLNotificationsUtil::add("CannotWearTrash"); + } + else if(isAgentInventory()) + { + if(!get_is_item_worn(mUUID)) + { + wearOnAvatar(); + } + } + else + { + // must be in the inventory library. copy it to our inventory + // and put it on right away. + LLViewerInventoryItem* item = getItem(); + if(item && item->isComplete()) + { + LLPointer cb = new WearOnAvatarCallback(); + copy_inventory_item( + gAgent.getID(), + item->getPermissions().getOwner(), + item->getUUID(), + LLUUID::null, + std::string(), + cb); + } + else if(item) + { + // *TODO: We should fetch the item details, and then do + // the operation above. + LLNotificationsUtil::add("CannotWearInfoNotComplete"); + } + } + LLInvFVBridgeAction::doIt(); + } + virtual ~LLWearableBridgeAction(){} +protected: + LLWearableBridgeAction(const LLUUID& id,LLInventoryModel* model) : LLInvFVBridgeAction(id,model) {} + BOOL isItemInTrash() const; + // return true if the item is in agent inventory. if false, it + // must be lost or in the inventory library. + BOOL isAgentInventory() const; + void wearOnAvatar(); +}; BOOL LLWearableBridgeAction::isItemInTrash() const { @@ -5194,155 +5372,50 @@ void LLWearableBridgeAction::wearOnAvatar() } } -// virtual -void LLWearableBridgeAction::doIt() -{ - if(isItemInTrash()) - { - LLNotificationsUtil::add("CannotWearTrash"); - } - else if(isAgentInventory()) - { - if(!get_is_item_worn(mUUID)) - { - wearOnAvatar(); - } - } - else - { - // must be in the inventory library. copy it to our inventory - // and put it on right away. - LLViewerInventoryItem* item = getItem(); - if(item && item->isComplete()) - { - LLPointer cb = new WearOnAvatarCallback(); - copy_inventory_item( - gAgent.getID(), - item->getPermissions().getOwner(), - item->getUUID(), - LLUUID::null, - std::string(), - cb); - } - else if(item) - { - // *TODO: We should fetch the item details, and then do - // the operation above. - LLNotificationsUtil::add("CannotWearInfoNotComplete"); - } - } - - LLInvFVBridgeAction::doIt(); -} - -// +=================================================+ -// | LLLinkItemBridge | -// +=================================================+ -// For broken item links -std::string LLLinkItemBridge::sPrefix("Link: "); -LLUIImagePtr LLLinkItemBridge::getIcon() const -{ - if (LLViewerInventoryItem *item = getItem()) - { - U32 attachment_point = (item->getFlags() & 0xff); // low byte of inventory flags - bool is_multi = LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags(); - - return get_item_icon(item->getActualType(), item->getInventoryType(), attachment_point, is_multi); - } - return get_item_icon(LLAssetType::AT_LINK, LLInventoryType::IT_NONE, 0, FALSE); -} -void LLLinkItemBridge::buildContextMenu(LLMenuGL& menu, U32 flags) -{ - // *TODO: Translate - lldebugs << "LLLink::buildContextMenu()" << llendl; - menuentry_vec_t items; - menuentry_vec_t disabled_items; - - items.push_back(std::string("Find Original")); - disabled_items.push_back(std::string("Find Original")); - - if(isItemInTrash()) - { - addTrashContextMenuOptions(items, disabled_items); - } - else - { - items.push_back(std::string("Properties")); - addDeleteContextMenuOptions(items, disabled_items); - } - hide_context_entries(menu, items, disabled_items); -} - -// +=================================================+ -// | LLLinkBridge | -// +=================================================+ -// For broken folder links. -std::string LLLinkFolderBridge::sPrefix("Link: "); -LLUIImagePtr LLLinkFolderBridge::getIcon() const +LLInvFVBridgeAction* LLInvFVBridgeAction::createAction(LLAssetType::EType asset_type, + const LLUUID& uuid, + LLInventoryModel* model) { - LLFolderType::EType preferred_type = LLFolderType::FT_NONE; - if (LLViewerInventoryItem *item = getItem()) + LLInvFVBridgeAction* action = NULL; + switch(asset_type) { - if (const LLViewerInventoryCategory* cat = item->getLinkedCategory()) - { - preferred_type = cat->getPreferredType(); - } + case LLAssetType::AT_TEXTURE: + action = new LLTextureBridgeAction(uuid,model); + break; + case LLAssetType::AT_SOUND: + action = new LLSoundBridgeAction(uuid,model); + break; + case LLAssetType::AT_LANDMARK: + action = new LLLandmarkBridgeAction(uuid,model); + break; + case LLAssetType::AT_CALLINGCARD: + action = new LLCallingCardBridgeAction(uuid,model); + break; + case LLAssetType::AT_OBJECT: + action = new LLObjectBridgeAction(uuid,model); + break; + case LLAssetType::AT_NOTECARD: + action = new LLNotecardBridgeAction(uuid,model); + break; + case LLAssetType::AT_ANIMATION: + action = new LLAnimationBridgeAction(uuid,model); + break; + case LLAssetType::AT_GESTURE: + action = new LLGestureBridgeAction(uuid,model); + break; + case LLAssetType::AT_LSL_TEXT: + action = new LLLSLTextBridgeAction(uuid,model); + break; + case LLAssetType::AT_CLOTHING: + case LLAssetType::AT_BODYPART: + action = new LLWearableBridgeAction(uuid,model); + break; + default: + break; } - return LLFolderBridge::getIcon(preferred_type); + return action; } -void LLLinkFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) -{ - // *TODO: Translate - lldebugs << "LLLink::buildContextMenu()" << llendl; - menuentry_vec_t items; - menuentry_vec_t disabled_items; - if (isItemInTrash()) - { - addTrashContextMenuOptions(items, disabled_items); - } - else - { - items.push_back(std::string("Find Original")); - addDeleteContextMenuOptions(items, disabled_items); - } - hide_context_entries(menu, items, disabled_items); -} -void LLLinkFolderBridge::performAction(LLInventoryModel* model, std::string action) -{ - if ("goto" == action) - { - gotoItem(); - return; - } - LLItemBridge::performAction(model,action); -} -void LLLinkFolderBridge::gotoItem() -{ - const LLUUID &cat_uuid = getFolderID(); - if (!cat_uuid.isNull()) - { - if (LLFolderViewItem *base_folder = mRoot->getItemByID(cat_uuid)) - { - if (LLInventoryModel* model = getInventoryModel()) - { - model->fetchDescendentsOf(cat_uuid); - } - base_folder->setOpen(TRUE); - mRoot->setSelectionFromRoot(base_folder,TRUE); - mRoot->scrollToShowSelection(); - } - } -} -const LLUUID &LLLinkFolderBridge::getFolderID() const -{ - if (LLViewerInventoryItem *link_item = getItem()) - { - if (const LLViewerInventoryCategory *cat = link_item->getLinkedCategory()) - { - const LLUUID& cat_uuid = cat->getUUID(); - return cat_uuid; - } - } - return LLUUID::null; -} +/** Bridge Actions + ** + ********************************************************************************/ diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 44165594ee..e7b3785a48 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -45,78 +45,12 @@ class LLInventoryPanel; class LLInventoryModel; class LLMenuGL; class LLCallingCardObserver; - -enum EInventoryIcon -{ - TEXTURE_ICON_NAME, - SOUND_ICON_NAME, - CALLINGCARD_ONLINE_ICON_NAME, - CALLINGCARD_OFFLINE_ICON_NAME, - LANDMARK_ICON_NAME, - LANDMARK_VISITED_ICON_NAME, - SCRIPT_ICON_NAME, - CLOTHING_ICON_NAME, - OBJECT_ICON_NAME, - OBJECT_MULTI_ICON_NAME, - NOTECARD_ICON_NAME, - BODYPART_ICON_NAME, - SNAPSHOT_ICON_NAME, - - BODYPART_SHAPE_ICON_NAME, - BODYPART_SKIN_ICON_NAME, - BODYPART_HAIR_ICON_NAME, - BODYPART_EYES_ICON_NAME, - CLOTHING_SHIRT_ICON_NAME, - CLOTHING_PANTS_ICON_NAME, - CLOTHING_SHOES_ICON_NAME, - CLOTHING_SOCKS_ICON_NAME, - CLOTHING_JACKET_ICON_NAME, - CLOTHING_GLOVES_ICON_NAME, - CLOTHING_UNDERSHIRT_ICON_NAME, - CLOTHING_UNDERPANTS_ICON_NAME, - CLOTHING_SKIRT_ICON_NAME, - CLOTHING_ALPHA_ICON_NAME, - CLOTHING_TATTOO_ICON_NAME, - - ANIMATION_ICON_NAME, - GESTURE_ICON_NAME, - - LINKITEM_ICON_NAME, - LINKFOLDER_ICON_NAME, - - ICON_NAME_COUNT -}; - -extern std::string ICON_NAME[ICON_NAME_COUNT]; - -typedef std::pair two_uuids_t; -typedef std::list two_uuids_list_t; -typedef std::pair uuid_move_list_t; - -struct LLMoveInv -{ - LLUUID mObjectID; - LLUUID mCategoryID; - two_uuids_list_t mMoveList; - void (*mCallback)(S32, void*); - void* mUserData; -}; - -struct LLAttachmentRezAction -{ - LLUUID mItemID; - S32 mAttachPt; -}; +class LLViewerJointAttachment; typedef std::vector menuentry_vec_t; -const std::string safe_inv_type_lookup(LLInventoryType::EType inv_type); -void hide_context_entries(LLMenuGL& menu, - const menuentry_vec_t &entries_to_show, - const menuentry_vec_t &disabled_entries); - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLInvFVBridge (& its derived classes) +// Class LLInvFVBridge // // Short for Inventory-Folder-View-Bridge. This is an // implementation class to be able to view inventory items. @@ -177,7 +111,7 @@ public: virtual void pasteFromClipboard() {} virtual void pasteLinkFromClipboard() {} void getClipboardEntries(bool show_asset_id, menuentry_vec_t &items, - menuentry_vec_t &disabled_items, U32 flags); + menuentry_vec_t &disabled_items, U32 flags); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual BOOL startDrag(EDragAndDropType* type, LLUUID* id) const; virtual BOOL dragOrDrop(MASK mask, BOOL drop, @@ -227,17 +161,18 @@ protected: const LLUUID mUUID; // item id LLInventoryType::EType mInvType; void purgeItem(LLInventoryModel *model, const LLUUID &uuid); - }; -/** - * This class intended to build Folder View Bridge via LLInvFVBridge::createBridge. - * It can be overridden with another way of creation necessary Inventory-Folder-View-Bridge. - */ +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLInvFVBridge +// +// This class intended to build Folder View Bridge via LLInvFVBridge::createBridge. +// It can be overridden with another way of creation necessary Inventory-Folder-View-Bridge. +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class LLInventoryFVBridgeBuilder { public: - virtual ~LLInventoryFVBridgeBuilder(){} + virtual ~LLInventoryFVBridgeBuilder() {} virtual LLInvFVBridge* createBridge(LLAssetType::EType asset_type, LLAssetType::EType actual_asset_type, LLInventoryType::EType inv_type, @@ -247,6 +182,48 @@ public: U32 flags = 0x00) const; }; +// Used by LLItemBridge::getIcon +enum EInventoryIcon +{ + TEXTURE_ICON_NAME, + SOUND_ICON_NAME, + CALLINGCARD_ONLINE_ICON_NAME, + CALLINGCARD_OFFLINE_ICON_NAME, + LANDMARK_ICON_NAME, + LANDMARK_VISITED_ICON_NAME, + SCRIPT_ICON_NAME, + CLOTHING_ICON_NAME, + OBJECT_ICON_NAME, + OBJECT_MULTI_ICON_NAME, + NOTECARD_ICON_NAME, + BODYPART_ICON_NAME, + SNAPSHOT_ICON_NAME, + + BODYPART_SHAPE_ICON_NAME, + BODYPART_SKIN_ICON_NAME, + BODYPART_HAIR_ICON_NAME, + BODYPART_EYES_ICON_NAME, + CLOTHING_SHIRT_ICON_NAME, + CLOTHING_PANTS_ICON_NAME, + CLOTHING_SHOES_ICON_NAME, + CLOTHING_SOCKS_ICON_NAME, + CLOTHING_JACKET_ICON_NAME, + CLOTHING_GLOVES_ICON_NAME, + CLOTHING_UNDERSHIRT_ICON_NAME, + CLOTHING_UNDERPANTS_ICON_NAME, + CLOTHING_SKIRT_ICON_NAME, + CLOTHING_ALPHA_ICON_NAME, + CLOTHING_TATTOO_ICON_NAME, + + ANIMATION_ICON_NAME, + GESTURE_ICON_NAME, + + LINKITEM_ICON_NAME, + LINKFOLDER_ICON_NAME, + + ICON_NAME_COUNT +}; +extern std::string ICON_NAME[ICON_NAME_COUNT]; class LLItemBridge : public LLInvFVBridge { @@ -290,7 +267,6 @@ protected: mutable std::string mDisplayName; }; - class LLFolderBridge : public LLInvFVBridge { friend class LLInvFVBridge; @@ -397,7 +373,6 @@ protected: LLItemBridge(inventory, root, uuid) {} }; - class LLTextureBridge : public LLItemBridge { friend class LLInvFVBridge; @@ -450,7 +425,6 @@ protected: LLFolderView* root, const LLUUID& uuid, U32 flags = 0x00); - protected: BOOL mVisited; }; @@ -465,19 +439,15 @@ public: virtual void performAction(LLInventoryModel* model, std::string action); virtual void openItem(); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); - //virtual void renameItem(const std::string& new_name); - //virtual BOOL removeItem(); virtual BOOL dragOrDrop(MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data); void refreshFolderViewItem(); - protected: LLCallingCardBridge(LLInventoryPanel* inventory, LLFolderView* folder, const LLUUID& uuid ); ~LLCallingCardBridge(); - protected: LLCallingCardObserver* mObserver; }; @@ -489,7 +459,6 @@ class LLNotecardBridge : public LLItemBridge public: virtual LLUIImagePtr getIcon() const; virtual void openItem(); - protected: LLNotecardBridge(LLInventoryPanel* inventory, LLFolderView* root, @@ -523,7 +492,6 @@ protected: : LLItemBridge(inventory, root, uuid) {} }; - class LLAnimationBridge : public LLItemBridge { friend class LLInvFVBridge; @@ -541,7 +509,6 @@ protected: LLItemBridge(inventory, root, uuid) {} }; - class LLObjectBridge : public LLItemBridge { friend class LLInvFVBridge; @@ -568,14 +535,12 @@ protected: BOOL mIsMultiObject; }; - class LLLSLTextBridge : public LLItemBridge { friend class LLInvFVBridge; public: virtual LLUIImagePtr getIcon() const; virtual void openItem(); - protected: LLLSLTextBridge(LLInventoryPanel* inventory, LLFolderView* root, @@ -583,7 +548,6 @@ protected: LLItemBridge(inventory, root, uuid) {} }; - class LLWearableBridge : public LLItemBridge { friend class LLInvFVBridge; @@ -632,45 +596,38 @@ class LLLinkItemBridge : public LLItemBridge friend class LLInvFVBridge; public: virtual const std::string& getPrefix() { return sPrefix; } - virtual LLUIImagePtr getIcon() const; virtual void buildContextMenu(LLMenuGL& menu, U32 flags); - protected: LLLinkItemBridge(LLInventoryPanel* inventory, LLFolderView* root, const LLUUID& uuid) : LLItemBridge(inventory, root, uuid) {} - protected: static std::string sPrefix; }; - class LLLinkFolderBridge : public LLItemBridge { friend class LLInvFVBridge; public: virtual const std::string& getPrefix() { return sPrefix; } - virtual LLUIImagePtr getIcon() const; virtual void buildContextMenu(LLMenuGL& menu, U32 flags); virtual void performAction(LLInventoryModel* model, std::string action); virtual void gotoItem(); - protected: LLLinkFolderBridge(LLInventoryPanel* inventory, LLFolderView* root, const LLUUID& uuid) : LLItemBridge(inventory, root, uuid) {} const LLUUID &getFolderID() const; - protected: static std::string sPrefix; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLInvFVBridgeAction (& its derived classes) +// Class LLInvFVBridgeAction // // This is an implementation class to be able to // perform action to view inventory items. @@ -680,7 +637,7 @@ class LLInvFVBridgeAction { public: // This method is a convenience function which creates the correct - // type of bridge action based on some basic information + // type of bridge action based on some basic information. static LLInvFVBridgeAction* createAction(LLAssetType::EType asset_type, const LLUUID& uuid, LLInventoryModel* model); @@ -689,149 +646,21 @@ public: static void doAction(const LLUUID& uuid, LLInventoryModel* model); virtual void doIt() {}; - virtual ~LLInvFVBridgeAction(){}//need this because of warning on OSX + virtual ~LLInvFVBridgeAction() {} // need this because of warning on OSX protected: LLInvFVBridgeAction(const LLUUID& id, LLInventoryModel* model) : mUUID(id), mModel(model) {} LLViewerInventoryItem* getItem() const; protected: - const LLUUID& mUUID; // item id + const LLUUID& mUUID; // item id LLInventoryModel* mModel; }; - -class LLTextureBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLTextureBridgeAction(){} -protected: - LLTextureBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLSoundBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLSoundBridgeAction(){} -protected: - LLSoundBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLLandmarkBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLLandmarkBridgeAction(){} -protected: - LLLandmarkBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLCallingCardBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLCallingCardBridgeAction(){} -protected: - LLCallingCardBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLNotecardBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLNotecardBridgeAction(){} -protected: - LLNotecardBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLGestureBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLGestureBridgeAction(){} -protected: - LLGestureBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLAnimationBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLAnimationBridgeAction(){} -protected: - LLAnimationBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLObjectBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLObjectBridgeAction(){} -protected: - LLObjectBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLLSLTextBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt() ; - virtual ~LLLSLTextBridgeAction(){} -protected: - LLLSLTextBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - -}; - - -class LLWearableBridgeAction: public LLInvFVBridgeAction -{ - friend class LLInvFVBridgeAction; -public: - virtual void doIt(); - virtual ~LLWearableBridgeAction(){} -protected: - LLWearableBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){} - - - BOOL isItemInTrash() const; - // return true if the item is in agent inventory. if false, it - // must be lost or in the inventory library. - BOOL isAgentInventory() const; - - void wearOnAvatar(); - -}; - void wear_inventory_item_on_avatar(LLInventoryItem* item); -class LLViewerJointAttachment; -void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment); +void rez_attachment(LLViewerInventoryItem* item, + LLViewerJointAttachment* attachment); // Move items from an in-world object's "Contents" folder to a specified // folder in agent inventory. @@ -841,13 +670,9 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id, void (*callback)(S32, void*) = NULL, void* user_data = NULL); - - -void teleport_via_landmark(const LLUUID& asset_id); - // Utility function to hide all entries except those in the list void hide_context_entries(LLMenuGL& menu, - const menuentry_vec_t &entries_to_show, - const menuentry_vec_t &disabled_entries); + const menuentry_vec_t &entries_to_show, + const menuentry_vec_t &disabled_entries); #endif // LL_LLINVENTORYBRIDGE_H diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index eb33763670..e3cd988e39 100644 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -52,7 +52,6 @@ // and override the () operator to return TRUE if you want to collect // the category or item passed in. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLInventoryCollectFunctor { public: @@ -62,7 +61,6 @@ public: static bool itemTransferCommonlyAllowed(LLInventoryItem* item); }; - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLAssetIDMatches // @@ -116,14 +114,12 @@ protected: LLAssetType::EType mType; }; - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLIsNotType // // Implementation of a LLInventoryCollectFunctor which returns FALSE if the // type is the type passed in during construction, otherwise false. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLIsNotType : public LLInventoryCollectFunctor { public: @@ -156,7 +152,6 @@ protected: // Simple class that collects calling cards that are not null, and not // the agent. Duplicates are possible. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLBuddyCollector : public LLInventoryCollectFunctor { public: @@ -172,7 +167,6 @@ public: // Simple class that collects calling cards that are not null, and not // the agent. Duplicates are discarded. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLUniqueBuddyCollector : public LLInventoryCollectFunctor { public: @@ -202,13 +196,11 @@ protected: LLUUID mBuddyID; }; - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLNameCategoryCollector // // Collects categories based on case-insensitive match of prefix //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLNameCategoryCollector : public LLInventoryCollectFunctor { public: @@ -270,7 +262,7 @@ public: virtual void doItem(LLFolderViewItem* item); BOOL wasItemSelected() { return mItemSelected; } protected: - BOOL mItemSelected; + BOOL mItemSelected; }; class LLOpenFilteredFolders : public LLFolderViewFunctor diff --git a/indra/newview/llplacesinventorybridge.cpp b/indra/newview/llplacesinventorybridge.cpp index b4f960f4ac..f59a55cb8b 100644 --- a/indra/newview/llplacesinventorybridge.cpp +++ b/indra/newview/llplacesinventorybridge.cpp @@ -168,7 +168,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge( case LLAssetType::AT_LANDMARK: if(!(inv_type == LLInventoryType::IT_LANDMARK)) { - llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << safe_inv_type_lookup(inv_type) << " on uuid " << uuid << llendl; + llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl; } new_listener = new LLPlacesLandmarkBridge(inv_type, inventory, root, uuid, flags); break; -- cgit v1.3 From 568d6ed229e6d8a32d761482e06828ccc61209a4 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Fri, 2 Apr 2010 15:19:44 -0400 Subject: EXT-5940 : INFRASTRUCTURE: Typedef all vector's Fixed some more typedefs that I missed in first checkin. --- indra/newview/llagentwearablesfetch.cpp | 8 ++++---- indra/newview/llappearancemgr.h | 2 +- indra/newview/llavatarlist.cpp | 7 ++++--- indra/newview/llavatarlist.h | 6 ++---- indra/newview/llcallfloater.cpp | 4 ++-- indra/newview/llgesturemgr.cpp | 2 +- indra/newview/llinventorybridge.cpp | 2 +- indra/newview/llinventoryobserver.cpp | 12 ++++++++---- indra/newview/llinventoryobserver.h | 16 ++++++---------- indra/newview/llpanelpeople.cpp | 6 +++--- indra/newview/llparticipantlist.cpp | 6 +++--- indra/newview/llsidepanelappearance.cpp | 2 +- indra/newview/lltooldraganddrop.cpp | 10 +++++----- indra/newview/llviewermenu.cpp | 2 +- indra/newview/llviewermessage.cpp | 6 +++--- 15 files changed, 45 insertions(+), 46 deletions(-) (limited to 'indra/newview/llinventorybridge.cpp') diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp index 7a9ecd1c7f..1f22ba040d 100644 --- a/indra/newview/llagentwearablesfetch.cpp +++ b/indra/newview/llagentwearablesfetch.cpp @@ -89,7 +89,7 @@ void LLInitialWearablesFetch::processContents() class LLFetchAndLinkObserver: public LLInventoryFetchObserver { public: - LLFetchAndLinkObserver(LLInventoryFetchObserver::item_ref_t& ids): + LLFetchAndLinkObserver(uuid_vec_t& ids): m_ids(ids), LLInventoryFetchObserver(true) // retry for missing items { @@ -103,7 +103,7 @@ public: // Link to all fetched items in COF. LLPointer link_waiter = new LLUpdateAppearanceOnDestroy; - for (LLInventoryFetchObserver::item_ref_t::iterator it = m_ids.begin(); + for (uuid_vec_t::iterator it = m_ids.begin(); it != m_ids.end(); ++it) { @@ -124,7 +124,7 @@ public: } } private: - LLInventoryFetchObserver::item_ref_t m_ids; + uuid_vec_t m_ids; }; void LLInitialWearablesFetch::processWearablesMessage() @@ -132,7 +132,7 @@ void LLInitialWearablesFetch::processWearablesMessage() if (!mAgentInitialWearables.empty()) // We have an empty current outfit folder, use the message data instead. { const LLUUID current_outfit_id = LLAppearanceMgr::instance().getCOF(); - LLInventoryFetchObserver::item_ref_t ids; + uuid_vec_t ids; for (U8 i = 0; i < mAgentInitialWearables.size(); ++i) { // Populate the current outfit folder with links to the wearables passed in the message diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 5a499026e8..423d9bde69 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -298,7 +298,7 @@ public: } CallAfterCategoryFetchStage2 *stage2 = new CallAfterCategoryFetchStage2(mCallable); - LLInventoryFetchObserver::item_ref_t ids; + uuid_vec_t ids; for(S32 i = 0; i < count; ++i) { ids.push_back(item_array.get(i)->getUUID()); diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 6ec62a61a0..407c5b6153 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -39,6 +39,7 @@ #include "llcallingcard.h" // for LLAvatarTracker #include "llcachename.h" #include "llrecentpeople.h" +#include "lluuid.h" #include "llvoiceclient.h" #include "llviewercontrol.h" // for gSavedSettings @@ -53,7 +54,7 @@ static const unsigned ADD_LIMIT = 50; bool LLAvatarList::contains(const LLUUID& id) { - const uuid_vector_t& ids = getIDs(); + const uuid_vec_t& ids = getIDs(); return std::find(ids.begin(), ids.end(), id) != ids.end(); } @@ -303,9 +304,9 @@ void LLAvatarList::refresh() bool LLAvatarList::filterHasMatches() { - uuid_vector_t values = getIDs(); + uuid_vec_t values = getIDs(); - for (uuid_vector_t::const_iterator it=values.begin(); it != values.end(); it++) + for (uuid_vec_t::const_iterator it=values.begin(); it != values.end(); it++) { std::string name; const LLUUID& buddy_id = *it; diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index 5a55975413..0203617867 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -53,8 +53,6 @@ class LLAvatarList : public LLFlatListView { LOG_CLASS(LLAvatarList); public: - typedef uuid_vec_t uuid_vector_t; - struct Params : public LLInitParam::Block { Optional ignore_online_status, // show all items as online @@ -74,7 +72,7 @@ public: void setNameFilter(const std::string& filter); void setDirty(bool val = true, bool force_refresh = false); - uuid_vector_t& getIDs() { return mIDs; } + uuid_vec_t& getIDs() { return mIDs; } bool contains(const LLUUID& id); void setContextMenu(LLAvatarListItem::ContextMenu* menu) { mContextMenu = menu; } @@ -122,7 +120,7 @@ private: LLTimer* mLITUpdateTimer; // last interaction time update timer std::string mIconParamName; std::string mNameFilter; - uuid_vector_t mIDs; + uuid_vec_t mIDs; LLUUID mSessionID; LLAvatarListItem::ContextMenu* mContextMenu; diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 132e4f0933..df3fe522b5 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -660,8 +660,8 @@ void LLCallFloater::setVoiceRemoveTimer(const LLUUID& voice_speaker_id) bool LLCallFloater::removeVoiceLeftParticipant(const LLUUID& voice_speaker_id) { - LLAvatarList::uuid_vector_t& speaker_uuids = mAvatarList->getIDs(); - LLAvatarList::uuid_vector_t::iterator pos = std::find(speaker_uuids.begin(), speaker_uuids.end(), voice_speaker_id); + uuid_vec_t& speaker_uuids = mAvatarList->getIDs(); + uuid_vec_t::iterator pos = std::find(speaker_uuids.begin(), speaker_uuids.end(), voice_speaker_id); if(pos != speaker_uuids.end()) { speaker_uuids.erase(pos); diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp index fbacbd704f..c13ebba923 100644 --- a/indra/newview/llgesturemgr.cpp +++ b/indra/newview/llgesturemgr.cpp @@ -1031,7 +1031,7 @@ void LLGestureMgr::onLoadComplete(LLVFS *vfs, else { // Watch this item and set gesture name when item exists in inventory - item_ref_t ids; + uuid_vec_t ids; ids.push_back(item_id); self.fetchItems(ids); } diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 10a3713c1e..47d0837ba1 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2007,7 +2007,7 @@ void LLRightClickInventoryFetchDescendentsObserver::done() LLRightClickInventoryFetchObserver* outfit; outfit = new LLRightClickInventoryFetchObserver(mCompleteFolders.front(), mCopyItems); - LLInventoryFetchObserver::item_ref_t ids; + uuid_vec_t ids; for(S32 i = 0; i < count; ++i) { ids.push_back(item_array.get(i)->getUUID()); diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp index 9913be2e88..128f16ecf5 100644 --- a/indra/newview/llinventoryobserver.cpp +++ b/indra/newview/llinventoryobserver.cpp @@ -108,6 +108,10 @@ void LLInventoryCompletionObserver::watchItem(const LLUUID& id) } } +LLInventoryFetchObserver::LLInventoryFetchObserver(bool retry_if_missing) : + mRetryIfMissing(retry_if_missing) +{ +} void LLInventoryFetchObserver::changed(U32 mask) { @@ -115,7 +119,7 @@ void LLInventoryFetchObserver::changed(U32 mask) // appropriate. if(!mIncomplete.empty()) { - for(item_ref_t::iterator it = mIncomplete.begin(); it < mIncomplete.end(); ) + for(uuid_vec_t::iterator it = mIncomplete.begin(); it < mIncomplete.end(); ) { LLViewerInventoryItem* item = gInventory.getItem(*it); if(!item) @@ -220,11 +224,11 @@ void fetch_items_from_llsd(const LLSD& items_llsd) } void LLInventoryFetchObserver::fetchItems( - const LLInventoryFetchObserver::item_ref_t& ids) + const uuid_vec_t& ids) { LLUUID owner_id; LLSD items_llsd; - for(item_ref_t::const_iterator it = ids.begin(); it < ids.end(); ++it) + for(uuid_vec_t::const_iterator it = ids.begin(); it < ids.end(); ++it) { LLViewerInventoryItem* item = gInventory.getItem(*it); if(item) @@ -475,7 +479,7 @@ void LLInventoryExistenceObserver::changed(U32 mask) // appropriate. if(!mMIA.empty()) { - for(item_ref_t::iterator it = mMIA.begin(); it < mMIA.end(); ) + for(uuid_vec_t::iterator it = mMIA.begin(); it < mMIA.end(); ) { LLViewerInventoryItem* item = gInventory.getItem(*it); if(!item) diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h index e1c8bd3faf..14948f4e49 100644 --- a/indra/newview/llinventoryobserver.h +++ b/indra/newview/llinventoryobserver.h @@ -109,19 +109,17 @@ protected: class LLInventoryFetchObserver : public LLInventoryObserver { public: - LLInventoryFetchObserver(bool retry_if_missing = false): mRetryIfMissing(retry_if_missing) {} + LLInventoryFetchObserver(bool retry_if_missing = false); virtual void changed(U32 mask); - typedef uuid_vec_t item_ref_t; - bool isEverythingComplete() const; - void fetchItems(const item_ref_t& ids); + void fetchItems(const uuid_vec_t& ids); virtual void done() {}; protected: bool mRetryIfMissing; - item_ref_t mComplete; - item_ref_t mIncomplete; + uuid_vec_t mComplete; + uuid_vec_t mIncomplete; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -192,10 +190,8 @@ public: protected: virtual void done() = 0; - - typedef uuid_vec_t item_ref_t; - item_ref_t mExist; - item_ref_t mMIA; + uuid_vec_t mExist; + uuid_vec_t mMIA; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 7f5e63adee..4c24670f47 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -652,8 +652,8 @@ void LLPanelPeople::updateFriendList() av_tracker.copyBuddyList(all_buddies); // save them to the online and all friends vectors - LLAvatarList::uuid_vector_t& online_friendsp = mOnlineFriendList->getIDs(); - LLAvatarList::uuid_vector_t& all_friendsp = mAllFriendList->getIDs(); + uuid_vec_t& online_friendsp = mOnlineFriendList->getIDs(); + uuid_vec_t& all_friendsp = mAllFriendList->getIDs(); all_friendsp.clear(); online_friendsp.clear(); @@ -746,7 +746,7 @@ void LLPanelPeople::buttonSetAction(const std::string& btn_name, const commit_si bool LLPanelPeople::isFriendOnline(const LLUUID& id) { - LLAvatarList::uuid_vector_t ids = mOnlineFriendList->getIDs(); + uuid_vec_t ids = mOnlineFriendList->getIDs(); return std::find(ids.begin(), ids.end(), id) != ids.end(); } diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index 268738d88c..79a6d80716 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -248,8 +248,8 @@ bool LLParticipantList::onAddItemEvent(LLPointer event, co bool LLParticipantList::onRemoveItemEvent(LLPointer event, const LLSD& userdata) { - LLAvatarList::uuid_vector_t& group_members = mAvatarList->getIDs(); - LLAvatarList::uuid_vector_t::iterator pos = std::find(group_members.begin(), group_members.end(), event->getValue().asUUID()); + uuid_vec_t& group_members = mAvatarList->getIDs(); + uuid_vec_t::iterator pos = std::find(group_members.begin(), group_members.end(), event->getValue().asUUID()); if(pos != group_members.end()) { group_members.erase(pos); @@ -260,7 +260,7 @@ bool LLParticipantList::onRemoveItemEvent(LLPointer event, bool LLParticipantList::onClearListEvent(LLPointer event, const LLSD& userdata) { - LLAvatarList::uuid_vector_t& group_members = mAvatarList->getIDs(); + uuid_vec_t& group_members = mAvatarList->getIDs(); group_members.clear(); mAvatarList->setDirty(); return true; diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 6d53f9c049..89c60fed34 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -354,7 +354,7 @@ void LLSidepanelAppearance::fetchInventory() { mNewOutfitBtn->setEnabled(false); - LLInventoryFetchObserver::item_ref_t ids; + uuid_vec_t ids; LLUUID item_id; for(S32 type = (S32)WT_SHAPE; type < (S32)WT_COUNT; ++type) { diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index f37efd778f..617518ab57 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -267,8 +267,8 @@ void LLCategoryDropObserver::done() { // *FIX: coalesce these... LLInventoryItem* item = NULL; - item_ref_t::iterator it = mComplete.begin(); - item_ref_t::iterator end = mComplete.end(); + uuid_vec_t::iterator it = mComplete.begin(); + uuid_vec_t::iterator end = mComplete.end(); for(; it < end; ++it) { item = gInventory.getItem(*it); @@ -326,8 +326,8 @@ void LLCategoryDropDescendentsObserver::done() { unique_ids.insert(items.get(i)->getUUID()); } - LLInventoryFetchObserver::item_ref_t ids; - std::back_insert_iterator copier(ids); + uuid_vec_t ids; + std::back_insert_iterator copier(ids); std::copy(unique_ids.begin(), unique_ids.end(), copier); LLCategoryDropObserver* dropper; dropper = new LLCategoryDropObserver(mObjectID, mSource); @@ -2567,7 +2567,7 @@ EAcceptance LLToolDragAndDrop::dad3dUpdateInventoryCategory( // If every item is accepted, send it on if (drop && (ACCEPT_YES_COPY_SINGLE <= rv)) { - LLInventoryFetchObserver::item_ref_t ids; + uuid_vec_t ids; for (LLInventoryModel::item_array_t::const_iterator item_iter = items.begin(); item_iter != items.end(); ++item_iter) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index a8b1257cf6..0277005a89 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6153,7 +6153,7 @@ class LLAttachmentEnableDrop : public view_listener_t // if a fetch is already out there (being sent from a slow sim) // we refetch and there are 2 fetches LLWornItemFetchedObserver* wornItemFetched = new LLWornItemFetchedObserver(); - LLInventoryFetchObserver::item_ref_t items; //add item to the inventory item to be fetched + uuid_vec_t items; //add item to the inventory item to be fetched items.push_back((*attachment_iter)->getItemID()); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 7346b2a76e..9b39cbfdf1 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1203,7 +1203,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& // This is an offer from an agent. In this case, the back // end has already copied the items into your inventory, // so we can fetch it out of our inventory. - LLInventoryFetchObserver::item_ref_t items; + uuid_vec_t items; items.push_back(mObjectID); LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(from_string); open_agent_offer->fetchItems(items); @@ -1601,7 +1601,7 @@ void inventory_offer_handler(LLOfferInfo* info) p.name = "UserGiveItem"; // Prefetch the item into your local inventory. - LLInventoryFetchObserver::item_ref_t items; + uuid_vec_t items; items.push_back(info->mObjectID); LLInventoryFetchObserver* fetch_item = new LLInventoryFetchObserver(); fetch_item->fetchItems(items); @@ -2120,7 +2120,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) if (is_muted) { // Prefetch the offered item so that it can be discarded by the appropriate observer. (EXT-4331) - LLInventoryFetchObserver::item_ref_t items; + uuid_vec_t items; items.push_back(info->mObjectID); LLInventoryFetchObserver* fetch_item = new LLInventoryFetchObserver(); fetch_item->fetchItems(items); -- cgit v1.3 From 2eba9819df8c473137b0f45d5873794362b14562 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Mon, 5 Apr 2010 15:02:36 -0400 Subject: EXT-6703 : LLInventory.h cleanup and create new LLInventoryDefines Took out enums and flags from LLInventory into LLInventoryDefines Did a bunch of header file reformatting for LLInventory.h Change made to simulator files as well. --- indra/llinventory/CMakeLists.txt | 2 + indra/llinventory/llinventory.cpp | 40 ++-- indra/llinventory/llinventory.h | 307 ++++++++++++------------------ indra/llinventory/llinventorydefines.cpp | 37 ++++ indra/llinventory/llinventorydefines.h | 106 +++++++++++ indra/llmessage/message_prehash.cpp | 2 +- indra/newview/llassetuploadresponders.cpp | 3 +- indra/newview/llcompilequeue.cpp | 26 +-- indra/newview/llcompilequeue.h | 12 +- indra/newview/llfloaterbulkpermission.cpp | 9 +- indra/newview/llfloaterbulkpermission.h | 4 +- indra/newview/llfloaterbuy.cpp | 11 +- indra/newview/llfloaterbuy.h | 2 +- indra/newview/llfloaterbuycontents.cpp | 9 +- indra/newview/llfloaterbuycontents.h | 2 +- indra/newview/llfloateropenobject.cpp | 4 +- indra/newview/llfloaterproperties.cpp | 16 +- indra/newview/llinventorybridge.cpp | 17 +- indra/newview/llinventoryfunctions.cpp | 3 +- indra/newview/llpanelcontents.cpp | 3 +- indra/newview/llpanelgroupnotices.cpp | 3 +- indra/newview/llpanelobjectinventory.cpp | 19 +- indra/newview/llpanelobjectinventory.h | 6 +- indra/newview/llpreview.cpp | 2 +- indra/newview/llpreviewgesture.cpp | 3 +- indra/newview/llpreviewnotecard.cpp | 1 + indra/newview/llpreviewscript.cpp | 3 +- indra/newview/llsidepaneliteminfo.cpp | 15 +- indra/newview/lltooldraganddrop.cpp | 1 + indra/newview/lltracker.cpp | 7 +- indra/newview/llviewerinventory.cpp | 3 +- indra/newview/llviewermenu.cpp | 9 +- indra/newview/llviewermessage.cpp | 9 +- indra/newview/llviewermessage.h | 2 +- indra/newview/llviewerobject.cpp | 27 +-- indra/newview/llviewerobject.h | 6 +- indra/newview/llviewertexteditor.cpp | 4 +- indra/newview/llvoinventorylistener.h | 2 +- 38 files changed, 414 insertions(+), 323 deletions(-) create mode 100644 indra/llinventory/llinventorydefines.cpp create mode 100644 indra/llinventory/llinventorydefines.h (limited to 'indra/newview/llinventorybridge.cpp') diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index b358f0a013..a563db901a 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -20,6 +20,7 @@ set(llinventory_SOURCE_FILES llcategory.cpp lleconomy.cpp llinventory.cpp + llinventorydefines.cpp llinventorytype.cpp lllandmark.cpp llnotecard.cpp @@ -36,6 +37,7 @@ set(llinventory_HEADER_FILES llcategory.h lleconomy.h llinventory.h + llinventorydefines.h llinventorytype.h lllandmark.h llnotecard.h diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp index d665deb605..e123d255c4 100644 --- a/indra/llinventory/llinventory.cpp +++ b/indra/llinventory/llinventory.cpp @@ -31,10 +31,10 @@ */ #include "linden_common.h" - #include "llinventory.h" #include "lldbstrings.h" +#include "llinventorydefines.h" #include "llxorcipher.h" #include "llsd.h" #include "message.h" @@ -43,9 +43,8 @@ #include "llsdutil.h" ///---------------------------------------------------------------------------- -/// exported functions +/// Exported functions ///---------------------------------------------------------------------------- - static const std::string INV_ITEM_ID_LABEL("item_id"); static const std::string INV_FOLDER_ID_LABEL("folder_id"); static const std::string INV_PARENT_ID_LABEL("parent_id"); @@ -64,15 +63,14 @@ static const std::string INV_CREATION_DATE_LABEL("created_at"); // key used by agent-inventory-service static const std::string INV_ASSET_TYPE_LABEL_WS("type_default"); static const std::string INV_FOLDER_ID_LABEL_WS("category_id"); + ///---------------------------------------------------------------------------- /// Local function declarations, constants, enums, and typedefs ///---------------------------------------------------------------------------- - const U8 TASK_INVENTORY_ITEM_KEY = 0; const U8 TASK_INVENTORY_ASSET_KEY = 1; const LLUUID MAGIC_ID("3c115e51-04f4-523c-9fa6-98aff1034730"); - ///---------------------------------------------------------------------------- /// Class LLInventoryObject @@ -99,7 +97,7 @@ LLInventoryObject::LLInventoryObject() : { } -LLInventoryObject::~LLInventoryObject( void ) +LLInventoryObject::~LLInventoryObject() { } @@ -458,11 +456,18 @@ void LLInventoryItem::setCreationDate(time_t creation_date_utc) mCreationDate = creation_date_utc; } +// Currently only used in the Viewer to handle calling cards +// where the creator is actually used to store the target. +void LLInventoryItem::setCreator(const LLUUID& creator) +{ + mPermissions.setCreator(creator); +} + void LLInventoryItem::accumulatePermissionSlamBits(const LLInventoryItem& old_item) { // Remove any pre-existing II_FLAGS_PERM_OVERWRITE_MASK flags // because we now detect when they should be set. - setFlags( old_item.getFlags() | (getFlags() & ~(LLInventoryItem::II_FLAGS_PERM_OVERWRITE_MASK)) ); + setFlags( old_item.getFlags() | (getFlags() & ~(LLInventoryItemFlags::II_FLAGS_PERM_OVERWRITE_MASK)) ); // Enforce the PERM_OVERWRITE flags for any masks that are different // but only for AT_OBJECT's since that is the only asset type that can @@ -473,20 +478,20 @@ void LLInventoryItem::accumulatePermissionSlamBits(const LLInventoryItem& old_it U32 flags_to_be_set = 0; if(old_permissions.getMaskNextOwner() != getPermissions().getMaskNextOwner()) { - flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; + flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; } if(old_permissions.getMaskEveryone() != getPermissions().getMaskEveryone()) { - flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; + flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; } if(old_permissions.getMaskGroup() != getPermissions().getMaskGroup()) { - flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; + flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; } LLSaleInfo old_sale_info = old_item.getSaleInfo(); if(old_sale_info != getSaleInfo()) { - flags_to_be_set |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_SALE; + flags_to_be_set |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_SALE; } setFlags(getFlags() | flags_to_be_set); } @@ -1304,19 +1309,6 @@ void LLInventoryItem::unpackBinaryBucket(U8* bin_bucket, S32 bin_bucket_size) setCreationDate(now); } -// returns TRUE if a should appear before b -BOOL item_dictionary_sort( LLInventoryItem* a, LLInventoryItem* b ) -{ - return (LLStringUtil::compareDict( a->getName().c_str(), b->getName().c_str() ) < 0); -} - -// returns TRUE if a should appear before b -BOOL item_date_sort( LLInventoryItem* a, LLInventoryItem* b ) -{ - return a->getCreationDate() < b->getCreationDate(); -} - - ///---------------------------------------------------------------------------- /// Class LLInventoryCategory ///---------------------------------------------------------------------------- diff --git a/indra/llinventory/llinventory.h b/indra/llinventory/llinventory.h index 9faecbea85..d5a64ea441 100644 --- a/indra/llinventory/llinventory.h +++ b/indra/llinventory/llinventory.h @@ -33,8 +33,6 @@ #ifndef LL_LLINVENTORY_H #define LL_LLINVENTORY_H -#include - #include "lldarray.h" #include "llfoldertype.h" #include "llinventorytype.h" @@ -45,180 +43,95 @@ #include "llsd.h" #include "lluuid.h" -// consts for Key field in the task inventory update message -extern const U8 TASK_INVENTORY_ITEM_KEY; -extern const U8 TASK_INVENTORY_ASSET_KEY; - -// anonymous enumeration to specify a max inventory buffer size for -// use in packBinaryBucket() -enum -{ - MAX_INVENTORY_BUFFER_SIZE = 1024 -}; - - +class LLMessageSystem; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLInventoryObject -// -// This is the base class for inventory objects that handles the -// common code between items and categories. The 'mParentUUID' member -// means the parent category since all inventory objects except each -// user's root category are in some category. Each user's root -// category will have mParentUUID==LLUUID::null. +// LLInventoryObject +// Base class for inventory objects that handles the common code between items +// and categories. The 'mParentUUID' member means the parent category since all +// inventory objects except each user's root category are in some category. Each +// user's root category will have mParentUUID==LLUUID::null. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -class LLMessageSystem; - class LLInventoryObject : public LLRefCount { -protected: - LLUUID mUUID; - LLUUID mParentUUID; - LLAssetType::EType mType; - std::string mName; +public: + typedef std::list > object_list_t; -protected: - virtual ~LLInventoryObject( void ); - + //-------------------------------------------------------------------- + // Initialization + //-------------------------------------------------------------------- public: MEM_TYPE_NEW(LLMemType::MTYPE_INVENTORY); - LLInventoryObject(const LLUUID& uuid, const LLUUID& parent_uuid, - LLAssetType::EType type, const std::string& name); LLInventoryObject(); + LLInventoryObject(const LLUUID& uuid, + const LLUUID& parent_uuid, + LLAssetType::EType type, + const std::string& name); void copyObject(const LLInventoryObject* other); // LLRefCount requires custom copy +protected: + virtual ~LLInventoryObject(); - // accessors - virtual const LLUUID& getUUID() const; + //-------------------------------------------------------------------- + // Accessors + //-------------------------------------------------------------------- +public: + virtual const LLUUID& getUUID() const; // inventoryID that this item points to + virtual const LLUUID& getLinkedUUID() const; // inventoryID that this item points to, else this item's inventoryID const LLUUID& getParentUUID() const; - virtual const LLUUID& getLinkedUUID() const; // get the inventoryID that this item points to, else this item's inventoryID virtual const std::string& getName() const; virtual LLAssetType::EType getType() const; LLAssetType::EType getActualType() const; // bypasses indirection for linked items BOOL getIsLinkType() const; - // mutators - will not call updateServer(); + + //-------------------------------------------------------------------- + // Mutators + // Will not call updateServer + //-------------------------------------------------------------------- +public: void setUUID(const LLUUID& new_uuid); virtual void rename(const std::string& new_name); void setParent(const LLUUID& new_parent); void setType(LLAssetType::EType type); - // file support - implemented here so that a minimal information - // set can be transmitted between simulator and viewer. -// virtual BOOL importFile(LLFILE* fp); + //-------------------------------------------------------------------- + // File Support + // Implemented here so that a minimal information set can be transmitted + // between simulator and viewer. + //-------------------------------------------------------------------- +public: + // virtual BOOL importFile(LLFILE* fp); virtual BOOL exportFile(LLFILE* fp, BOOL include_asset_key = TRUE) const; - virtual BOOL importLegacyStream(std::istream& input_stream); virtual BOOL exportLegacyStream(std::ostream& output_stream, BOOL include_asset_key = TRUE) const; - // virtual methods virtual void removeFromServer(); virtual void updateParentOnServer(BOOL) const; virtual void updateServer(BOOL) const; + + //-------------------------------------------------------------------- + // Member Variables + //-------------------------------------------------------------------- +protected: + LLUUID mUUID; + LLUUID mParentUUID; + LLAssetType::EType mType; + std::string mName; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLInventoryItem -// -// An inventory item represents something that the current user has in -// their inventory. +// LLInventoryItem +// An inventory item represents something that the current user has in +// his inventory. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLInventoryItem : public LLInventoryObject { public: typedef LLDynamicArray > item_array_t; - -protected: - LLPermissions mPermissions; - LLUUID mAssetUUID; - std::string mDescription; - LLSaleInfo mSaleInfo; - LLInventoryType::EType mInventoryType; - U32 mFlags; - time_t mCreationDate; // seconds from 1/1/1970, UTC - -public: - - /** - * Anonymous enumeration for specifying the inventory item flags. - */ - enum - { - // The shared flags at the top are shared among all inventory - // types. After that section, all values of flags are type - // dependent. The shared flags will start at 2^30 and work - // down while item type specific flags will start at 2^0 and - // work up. - II_FLAGS_NONE = 0, - - - // - // Shared flags - // - // - - // This value means that the asset has only one reference in - // the system. If the inventory item is deleted, or the asset - // id updated, then we can remove the old reference. - II_FLAGS_SHARED_SINGLE_REFERENCE = 0x40000000, - - - // - // Landmark flags - // - II_FLAGS_LANDMARK_VISITED = 1, - - // - // Object flags - // - - // flag to indicate that object permissions should have next - // owner perm be more restrictive on rez. We bump this into - // the second byte of the flags since the low byte is used to - // track attachment points. - II_FLAGS_OBJECT_SLAM_PERM = 0x100, - - // flag to indicate that the object sale information has been changed. - II_FLAGS_OBJECT_SLAM_SALE = 0x1000, - - // These flags specify which permissions masks to overwrite - // upon rez. Normally, if no permissions slam (above) or - // overwrite flags are set, the asset's permissions are - // used and the inventory's permissions are ignored. If - // any of these flags are set, the inventory's permissions - // take precedence. - II_FLAGS_OBJECT_PERM_OVERWRITE_BASE = 0x010000, - II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER = 0x020000, - II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP = 0x040000, - II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE = 0x080000, - II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER = 0x100000, - - // flag to indicate whether an object that is returned is composed - // of muiltiple items or not. - II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS = 0x200000, - - // - // wearables use the low order byte of flags to store the - // EWearableType enumeration found in newview/llwearable.h - // - II_FLAGS_WEARABLES_MASK = 0xff, - - // these bits need to be cleared whenever the asset_id is updated - // on a pre-existing inventory item (DEV-28098 and DEV-30997) - II_FLAGS_PERM_OVERWRITE_MASK = II_FLAGS_OBJECT_SLAM_PERM - | II_FLAGS_OBJECT_SLAM_SALE - | II_FLAGS_OBJECT_PERM_OVERWRITE_BASE - | II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER - | II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP - | II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE - | II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER, - }; - -protected: - ~LLInventoryItem(); // ref counted + //-------------------------------------------------------------------- + // Initialization + //-------------------------------------------------------------------- public: - MEM_TYPE_NEW(LLMemType::MTYPE_INVENTORY); LLInventoryItem(const LLUUID& uuid, const LLUUID& parent_uuid, @@ -237,10 +150,14 @@ public: // is prohibited LLInventoryItem(const LLInventoryItem* other); virtual void copyItem(const LLInventoryItem* other); // LLRefCount requires custom copy - void generateUUID() { mUUID.generate(); } +protected: + ~LLInventoryItem(); // ref counted - // accessors + //-------------------------------------------------------------------- + // Accessors + //-------------------------------------------------------------------- +public: virtual const LLUUID& getLinkedUUID() const; virtual const LLPermissions& getPermissions() const; virtual const LLUUID& getCreatorUUID() const; @@ -252,8 +169,12 @@ public: virtual time_t getCreationDate() const; virtual U32 getCRC32() const; // really more of a checksum. - // mutators - will not call updateServer(), and will never fail - // (though it may correct to sane values) + //-------------------------------------------------------------------- + // Mutators + // Will not call updateServer and will never fail + // (though it may correct to sane values) + //-------------------------------------------------------------------- +public: void setAssetUUID(const LLUUID& asset_id); void setDescription(const std::string& new_desc); void setSaleInfo(const LLSaleInfo& sale_info); @@ -261,62 +182,68 @@ public: void setInventoryType(LLInventoryType::EType inv_type); void setFlags(U32 flags); void setCreationDate(time_t creation_date_utc); + void setCreator(const LLUUID& creator); // only used for calling cards // Check for changes in permissions masks and sale info - // and set the corresponding bits in mFlags + // and set the corresponding bits in mFlags. void accumulatePermissionSlamBits(const LLInventoryItem& old_item); - - // This is currently only used in the Viewer to handle calling cards - // where the creator is actually used to store the target. - void setCreator(const LLUUID& creator) { mPermissions.setCreator(creator); } - // Put this inventory item onto the current outgoing mesage. It - // assumes you have already called nextBlock(). + // Put this inventory item onto the current outgoing mesage. + // Assumes you have already called nextBlock(). virtual void packMessage(LLMessageSystem* msg) const; - // unpack returns TRUE if the inventory item came through the - // network ok. It uses a simple crc check which is defeatable, but - // we want to detect network mangling somehow. + // Returns TRUE if the inventory item came through the network correctly. + // Uses a simple crc check which is defeatable, but we want to detect + // network mangling somehow. virtual BOOL unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); - // file support + + //-------------------------------------------------------------------- + // File Support + //-------------------------------------------------------------------- +public: virtual BOOL importFile(LLFILE* fp); virtual BOOL exportFile(LLFILE* fp, BOOL include_asset_key = TRUE) const; - virtual BOOL importLegacyStream(std::istream& input_stream); virtual BOOL exportLegacyStream(std::ostream& output_stream, BOOL include_asset_key = TRUE) const; - // helper functions - - // pack all information needed to reconstruct this item into the given binary bucket. - // perm_override is optional + //-------------------------------------------------------------------- + // Helper Functions + //-------------------------------------------------------------------- +public: + // Pack all information needed to reconstruct this item into the given binary bucket. S32 packBinaryBucket(U8* bin_bucket, LLPermissions* perm_override = NULL) const; void unpackBinaryBucket(U8* bin_bucket, S32 bin_bucket_size); LLSD asLLSD() const; void asLLSD( LLSD& sd ) const; bool fromLLSD(const LLSD& sd); + //-------------------------------------------------------------------- + // Member Variables + //-------------------------------------------------------------------- +protected: + LLPermissions mPermissions; + LLUUID mAssetUUID; + std::string mDescription; + LLSaleInfo mSaleInfo; + LLInventoryType::EType mInventoryType; + U32 mFlags; + time_t mCreationDate; // seconds from 1/1/1970, UTC }; -BOOL item_dictionary_sort(LLInventoryItem* a,LLInventoryItem* b); -BOOL item_date_sort(LLInventoryItem* a, LLInventoryItem* b); - - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLInventoryCategory -// -// An instance of this class represents a category of inventory -// items. Users come with a set of default categories, and can create -// new ones as needed. +// An instance of this class represents a category/folder of inventory +// items. Users come with a set of default categories, and can create +// new ones as needed. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - class LLInventoryCategory : public LLInventoryObject { public: typedef LLDynamicArray > cat_array_t; -protected: - ~LLInventoryCategory(); - + //-------------------------------------------------------------------- + // Initialization + //-------------------------------------------------------------------- public: MEM_TYPE_NEW(LLMemType::MTYPE_INVENTORY); LLInventoryCategory(const LLUUID& uuid, const LLUUID& parent_uuid, @@ -325,40 +252,48 @@ public: LLInventoryCategory(); LLInventoryCategory(const LLInventoryCategory* other); void copyCategory(const LLInventoryCategory* other); // LLRefCount requires custom copy +protected: + ~LLInventoryCategory(); - // accessors and mutators + //-------------------------------------------------------------------- + // Accessors And Mutators + //-------------------------------------------------------------------- +public: LLFolderType::EType getPreferredType() const; void setPreferredType(LLFolderType::EType type); - // For messaging system support - virtual void packMessage(LLMessageSystem* msg) const; - virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); - LLSD asLLSD() const; bool fromLLSD(const LLSD& sd); - // file support + //-------------------------------------------------------------------- + // Messaging + //-------------------------------------------------------------------- +public: + virtual void packMessage(LLMessageSystem* msg) const; + virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); + + //-------------------------------------------------------------------- + // File Support + //-------------------------------------------------------------------- +public: virtual BOOL importFile(LLFILE* fp); virtual BOOL exportFile(LLFILE* fp, BOOL include_asset_key = TRUE) const; - virtual BOOL importLegacyStream(std::istream& input_stream); virtual BOOL exportLegacyStream(std::ostream& output_stream, BOOL include_asset_key = TRUE) const; + //-------------------------------------------------------------------- + // Member Variables + //-------------------------------------------------------------------- protected: - // May be the type that this category was "meant" to hold (although it may hold any type). - LLFolderType::EType mPreferredType; + LLFolderType::EType mPreferredType; // Type that this category was "meant" to hold (although it may hold any type). }; //----------------------------------------------------------------------------- -// Useful bits +// Convertors +// These functions convert between structured data and an inventory +// item, appropriate for serialization. //----------------------------------------------------------------------------- - -typedef std::list > InventoryObjectList; - -// These functions convert between structured data and an inventory -// item, appropriate for serialization. LLSD ll_create_sd_from_inventory_item(LLPointer item); -//LLPointer ll_create_item_from_sd(const LLSD& sd_item); LLSD ll_create_sd_from_inventory_category(LLPointer cat); LLPointer ll_create_category_from_sd(const LLSD& sd_cat); diff --git a/indra/llinventory/llinventorydefines.cpp b/indra/llinventory/llinventorydefines.cpp new file mode 100644 index 0000000000..a9610d4d4b --- /dev/null +++ b/indra/llinventory/llinventorydefines.cpp @@ -0,0 +1,37 @@ +/** + * @file llinventorydefines.cpp + * @brief Implementation of the inventory defines. + * + * $LicenseInfo:firstyear=2001&license=viewergpl$ + * + * Copyright (c) 2001-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "linden_common.h" +#include "llinventorydefines.h" + +const U8 TASK_INVENTORY_ITEM_KEY = 0; +const U8 TASK_INVENTORY_ASSET_KEY = 1; diff --git a/indra/llinventory/llinventorydefines.h b/indra/llinventory/llinventorydefines.h new file mode 100644 index 0000000000..ccf1a356de --- /dev/null +++ b/indra/llinventory/llinventorydefines.h @@ -0,0 +1,106 @@ +/** + * @file llinventorydefines.h + * @brief LLInventoryDefines + * + * $LicenseInfo:firstyear=2001&license=viewergpl$ + * + * Copyright (c) 2001-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_LLINVENTORYDEFINES_H +#define LL_LLINVENTORYDEFINES_H + +// Consts for "key" field in the task inventory update message +extern const U8 TASK_INVENTORY_ITEM_KEY; +extern const U8 TASK_INVENTORY_ASSET_KEY; + +// Max inventory buffer size (for use in packBinaryBucket) +enum +{ + MAX_INVENTORY_BUFFER_SIZE = 1024 +}; + +//-------------------------------------------------------------------- +// Inventory item flags enums +// The shared flags at the top are shared among all inventory +// types. After that section, all values of flags are type +// dependent. The shared flags will start at 2^30 and work +// down while item type specific flags will start at 2^0 and work up. +//-------------------------------------------------------------------- +class LLInventoryItemFlags +{ +public: + enum EType + { + II_FLAGS_NONE = 0, + + II_FLAGS_SHARED_SINGLE_REFERENCE = 0x40000000, + // The asset has only one reference in the system. If the + // inventory item is deleted, or the assetid updated, then we + // can remove the old reference. + + II_FLAGS_LANDMARK_VISITED = 1, + + II_FLAGS_OBJECT_SLAM_PERM = 0x100, + // Object permissions should have next owner perm be more + // restrictive on rez. We bump this into the second byte of the + // flags since the low byte is used to track attachment points. + + II_FLAGS_OBJECT_SLAM_SALE = 0x1000, + // The object sale information has been changed. + + II_FLAGS_OBJECT_PERM_OVERWRITE_BASE = 0x010000, + II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER = 0x020000, + II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP = 0x040000, + II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE = 0x080000, + II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER = 0x100000, + // Specify which permissions masks to overwrite + // upon rez. Normally, if no permissions slam (above) or + // overwrite flags are set, the asset's permissions are + // used and the inventory's permissions are ignored. If + // any of these flags are set, the inventory's permissions + // take precedence. + + II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS = 0x200000, + // Whether a returned object is composed of multiple items. + + II_FLAGS_WEARABLES_MASK = 0xff, + // Wearables use the low order byte of flags to store the + // EWearableType enumeration found in newview/llwearable.h + + II_FLAGS_PERM_OVERWRITE_MASK = (II_FLAGS_OBJECT_SLAM_PERM | + II_FLAGS_OBJECT_SLAM_SALE | + II_FLAGS_OBJECT_PERM_OVERWRITE_BASE | + II_FLAGS_OBJECT_PERM_OVERWRITE_OWNER | + II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP | + II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE | + II_FLAGS_OBJECT_PERM_OVERWRITE_NEXT_OWNER), + // These bits need to be cleared whenever the asset_id is updated + // on a pre-existing inventory item (DEV-28098 and DEV-30997) + }; +}; + +#endif // LL_LLINVENTORYDEFINES_H diff --git a/indra/llmessage/message_prehash.cpp b/indra/llmessage/message_prehash.cpp index 9e3986f257..a118e21ffb 100644 --- a/indra/llmessage/message_prehash.cpp +++ b/indra/llmessage/message_prehash.cpp @@ -1147,7 +1147,7 @@ char* _PREHASH_ForceObjectSelect = LLMessageStringTable::getInstance()->getStrin char* _PREHASH_Price = LLMessageStringTable::getInstance()->getString("Price"); char* _PREHASH_SunDirection = LLMessageStringTable::getInstance()->getString("SunDirection"); char* _PREHASH_FromName = LLMessageStringTable::getInstance()->getString("FromName"); -char* _PREHASH_ChangeInventoryItemFlags = LLMessageStringTable::getInstance()->getString("ChangeInventoryItemFlags"); +char* _PREHASH_ChangeInventoryItemFlags = LLMessageStringTable::getInstance()->getString("ChangLLInventoryItemFlags"); char* _PREHASH_Force = LLMessageStringTable::getInstance()->getString("Force"); char* _PREHASH_TransactionBlock = LLMessageStringTable::getInstance()->getString("TransactionBlock"); char* _PREHASH_PowersMask = LLMessageStringTable::getInstance()->getString("PowersMask"); diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp index 370ecc0665..2f90d652e4 100644 --- a/indra/newview/llassetuploadresponders.cpp +++ b/indra/newview/llassetuploadresponders.cpp @@ -39,6 +39,7 @@ #include "llcompilequeue.h" #include "llfloaterbuycurrency.h" #include "llfilepicker.h" +#include "llinventorydefines.h" #include "llinventoryobserver.h" #include "llinventorypanel.h" #include "llpermissionsflags.h" @@ -288,7 +289,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content) mPostData["name"].asString(), mPostData["description"].asString(), LLSaleInfo::DEFAULT, - LLInventoryItem::II_FLAGS_NONE, + LLInventoryItemFlags::II_FLAGS_NONE, creation_date_now); gInventory.updateItem(item); gInventory.notifyObservers(); diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index a96981a108..feb8c540ef 100644 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -114,7 +114,7 @@ BOOL LLFloaterScriptQueue::postBuild() // worked on. // NOT static, virtual! void LLFloaterScriptQueue::inventoryChanged(LLViewerObject* viewer_object, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32, void* q_id) { @@ -305,7 +305,7 @@ LLFloaterCompileQueue::~LLFloaterCompileQueue() } void LLFloaterCompileQueue::handleInventory(LLViewerObject *viewer_object, - InventoryObjectList* inv) + LLInventoryObject::object_list_t* inv) { // find all of the lsl, leaving off duplicates. We'll remove // all matching asset uuids on compilation success. @@ -313,8 +313,8 @@ void LLFloaterCompileQueue::handleInventory(LLViewerObject *viewer_object, typedef std::multimap > uuid_item_map; uuid_item_map asset_item_map; - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it) { if((*it)->getType() == LLAssetType::AT_LSL_TEXT) @@ -625,14 +625,14 @@ LLFloaterResetQueue::~LLFloaterResetQueue() } void LLFloaterResetQueue::handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv) + LLInventoryObject::object_list_t* inv) { // find all of the lsl, leaving off duplicates. We'll remove // all matching asset uuids on compilation success. LLDynamicArray names; - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it) { if((*it)->getType() == LLAssetType::AT_LSL_TEXT) @@ -677,14 +677,14 @@ LLFloaterRunQueue::~LLFloaterRunQueue() } void LLFloaterRunQueue::handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv) + LLInventoryObject::object_list_t* inv) { // find all of the lsl, leaving off duplicates. We'll remove // all matching asset uuids on compilation success. LLDynamicArray names; - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it) { if((*it)->getType() == LLAssetType::AT_LSL_TEXT) @@ -732,14 +732,14 @@ LLFloaterNotRunQueue::~LLFloaterNotRunQueue() } void LLFloaterNotRunQueue::handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv) + LLInventoryObject::object_list_t* inv) { // find all of the lsl, leaving off duplicates. We'll remove // all matching asset uuids on compilation success. LLDynamicArray names; - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it) { if((*it)->getType() == LLAssetType::AT_LSL_TEXT) diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h index 2d061f5d8a..4fde2572af 100644 --- a/indra/newview/llcompilequeue.h +++ b/indra/newview/llcompilequeue.h @@ -76,13 +76,13 @@ protected: // This is the callback method for the viewer object currently // being worked on. /*virtual*/ void inventoryChanged(LLViewerObject* obj, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32 serial_num, void* queue); // This is called by inventoryChanged virtual void handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv) = 0; + LLInventoryObject::object_list_t* inv) = 0; static void onCloseBtn(void* user_data); @@ -145,7 +145,7 @@ protected: // This is called by inventoryChanged virtual void handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv); + LLInventoryObject::object_list_t* inv); // This is the callback for when each script arrives static void scriptArrived(LLVFS *vfs, const LLUUID& asset_id, @@ -192,7 +192,7 @@ protected: // This is called by inventoryChanged virtual void handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv); + LLInventoryObject::object_list_t* inv); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -210,7 +210,7 @@ protected: // This is called by inventoryChanged virtual void handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv); + LLInventoryObject::object_list_t* inv); }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -228,7 +228,7 @@ protected: // This is called by inventoryChanged virtual void handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv); + LLInventoryObject::object_list_t* inv); }; #endif // LL_LLCOMPILEQUEUE_H diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp index b2f700069f..766fc0723c 100644 --- a/indra/newview/llfloaterbulkpermission.cpp +++ b/indra/newview/llfloaterbulkpermission.cpp @@ -37,6 +37,7 @@ #include "llfloaterperms.h" // for utilities #include "llagent.h" #include "llchat.h" +#include "llinventorydefines.h" #include "llviewerwindow.h" #include "llviewerobject.h" #include "llviewerobjectlist.h" @@ -116,7 +117,7 @@ void LLFloaterBulkPermission::doApply() // worked on. // NOT static, virtual! void LLFloaterBulkPermission::inventoryChanged(LLViewerObject* viewer_object, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32, void* q_id) { @@ -250,12 +251,12 @@ void LLFloaterBulkPermission::doCheckUncheckAll(BOOL check) } -void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, InventoryObjectList* inv) +void LLFloaterBulkPermission::handleInventory(LLViewerObject* viewer_obj, LLInventoryObject::object_list_t* inv) { LLScrollListCtrl* list = getChild("queue output"); - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it) { LLAssetType::EType asstype = (*it)->getType(); diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h index bffcff7059..80dc88fbb1 100644 --- a/indra/newview/llfloaterbulkpermission.h +++ b/indra/newview/llfloaterbulkpermission.h @@ -63,13 +63,13 @@ private: // This is the callback method for the viewer object currently // being worked on. /*virtual*/ void inventoryChanged(LLViewerObject* obj, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32 serial_num, void* queue); // This is called by inventoryChanged void handleInventory(LLViewerObject* viewer_obj, - InventoryObjectList* inv); + LLInventoryObject::object_list_t* inv); void updateInventory(LLViewerObject* object, diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp index 589f570d96..44c82f1941 100644 --- a/indra/newview/llfloaterbuy.cpp +++ b/indra/newview/llfloaterbuy.cpp @@ -44,6 +44,7 @@ #include "llinventorymodel.h" // for gInventory #include "llfloaterreg.h" #include "llfloaterinventory.h" // for get_item_icon +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llnotificationsutil.h" #include "llselectmgr.h" @@ -195,7 +196,7 @@ void LLFloaterBuy::show(const LLSaleInfo& sale_info) } void LLFloaterBuy::inventoryChanged(LLViewerObject* obj, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32 serial_num, void* data) { @@ -220,8 +221,8 @@ void LLFloaterBuy::inventoryChanged(LLViewerObject* obj, return; } - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it ) { LLInventoryObject* obj = (LLInventoryObject*)(*it); @@ -246,8 +247,8 @@ void LLFloaterBuy::inventoryChanged(LLViewerObject* obj, // Compute icon for this item BOOL item_is_multi = FALSE; - if ( inv_item->getFlags() & LLInventoryItem::II_FLAGS_LANDMARK_VISITED - || inv_item->getFlags() & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS) + if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED + || inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS) { item_is_multi = TRUE; } diff --git a/indra/newview/llfloaterbuy.h b/indra/newview/llfloaterbuy.h index ab38e082dc..411c8fb00e 100644 --- a/indra/newview/llfloaterbuy.h +++ b/indra/newview/llfloaterbuy.h @@ -65,7 +65,7 @@ protected: void requestObjectInventories(); /*virtual*/ void inventoryChanged(LLViewerObject* obj, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32 serial_num, void* data); diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp index 0daef27af2..1d989ad0fd 100644 --- a/indra/newview/llfloaterbuycontents.cpp +++ b/indra/newview/llfloaterbuycontents.cpp @@ -44,6 +44,7 @@ #include "llagent.h" // for agent id #include "llcheckboxctrl.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llinventorymodel.h" // for gInventory #include "llfloaterreg.h" @@ -142,7 +143,7 @@ void LLFloaterBuyContents::show(const LLSaleInfo& sale_info) void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32 serial_num, void* data) { @@ -176,8 +177,8 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj, LLInventoryType::EType inv_type; S32 wearable_count = 0; - InventoryObjectList::const_iterator it = inv->begin(); - InventoryObjectList::const_iterator end = inv->end(); + LLInventoryObject::object_list_t::const_iterator it = inv->begin(); + LLInventoryObject::object_list_t::const_iterator end = inv->end(); for ( ; it != end; ++it ) { @@ -215,7 +216,7 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj, LLSD row; BOOL item_is_multi = FALSE; - if ( inv_item->getFlags() & LLInventoryItem::II_FLAGS_LANDMARK_VISITED ) + if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED ) { item_is_multi = TRUE; } diff --git a/indra/newview/llfloaterbuycontents.h b/indra/newview/llfloaterbuycontents.h index 8045a46c9f..ab161adfea 100644 --- a/indra/newview/llfloaterbuycontents.h +++ b/indra/newview/llfloaterbuycontents.h @@ -59,7 +59,7 @@ public: protected: void requestObjectInventories(); /*virtual*/ void inventoryChanged(LLViewerObject* obj, - InventoryObjectList* inv, + LLInventoryObject::object_list_t* inv, S32 serial_num, void* data); diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp index ec50ed596c..71bfae316a 100644 --- a/indra/newview/llfloateropenobject.cpp +++ b/indra/newview/llfloateropenobject.cpp @@ -121,12 +121,12 @@ void LLFloaterOpenObject::refresh() { // this folder is coming from an object, as there is only one folder in an object, the root, // we need to collect the entire contents and handle them as a group - InventoryObjectList inventory_objects; + LLInventoryObject::object_list_t inventory_objects; object->getInventoryContents(inventory_objects); if (!inventory_objects.empty()) { - for (InventoryObjectList::iterator it = inventory_objects.begin(); + for (LLInventoryObject::object_list_t::iterator it = inventory_objects.begin(); it != inventory_objects.end(); ++it) { diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index 5c0593ad29..bb9d151cd2 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -38,12 +38,12 @@ #include "llcachename.h" #include "lldbstrings.h" #include "llfloaterreg.h" -#include "llinventory.h" #include "llagent.h" #include "llbutton.h" #include "llcheckboxctrl.h" #include "llavataractions.h" +#include "llinventorydefines.h" #include "llinventoryobserver.h" #include "llinventorymodel.h" #include "lllineeditor.h" @@ -380,9 +380,9 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item) if (item->getType() == LLAssetType::AT_OBJECT) { U32 flags = item->getFlags(); - slam_perm = flags & LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; - overwrite_everyone = flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; - overwrite_group = flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; + slam_perm = flags & LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; + overwrite_everyone = flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; + overwrite_group = flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; } std::string perm_string; @@ -693,7 +693,7 @@ void LLFloaterProperties::onCommitPermissions() if((perm.getMaskNextOwner()!=item->getPermissions().getMaskNextOwner()) && (item->getType() == LLAssetType::AT_OBJECT)) { - flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; } // If everyone permissions have changed (and this is an object) // then set the overwrite everyone permissions flag so they @@ -701,7 +701,7 @@ void LLFloaterProperties::onCommitPermissions() if ((perm.getMaskEveryone()!=item->getPermissions().getMaskEveryone()) && (item->getType() == LLAssetType::AT_OBJECT)) { - flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; } // If group permissions have changed (and this is an object) // then set the overwrite group permissions flag so they @@ -709,7 +709,7 @@ void LLFloaterProperties::onCommitPermissions() if ((perm.getMaskGroup()!=item->getPermissions().getMaskGroup()) && (item->getType() == LLAssetType::AT_OBJECT)) { - flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; } new_item->setFlags(flags); if(mObjectID.isNull()) @@ -821,7 +821,7 @@ void LLFloaterProperties::updateSaleInfo() if (item->getType() == LLAssetType::AT_OBJECT) { U32 flags = new_item->getFlags(); - flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_SALE; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_SALE; new_item->setFlags(flags); } diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 47d0837ba1..09168b4f31 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -50,6 +50,7 @@ #include "llimfloater.h" #include "llimview.h" #include "llinventoryclipboard.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llinventorymodel.h" #include "llinventorymodelbackgroundfetch.h" @@ -1858,7 +1859,7 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id, // this folder is coming from an object, as there is only one folder in an object, the root, // we need to collect the entire contents and handle them as a group - InventoryObjectList inventory_objects; + LLInventoryObject::object_list_t inventory_objects; object->getInventoryContents(inventory_objects); if (inventory_objects.empty()) @@ -1872,8 +1873,8 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id, // coming from a task. Need to figure out if the person can // move/copy this item. - InventoryObjectList::iterator it = inventory_objects.begin(); - InventoryObjectList::iterator end = inventory_objects.end(); + LLInventoryObject::object_list_t::iterator it = inventory_objects.begin(); + LLInventoryObject::object_list_t::iterator end = inventory_objects.end(); for ( ; it != end; ++it) { // coming from a task. Need to figure out if the person can @@ -1903,7 +1904,7 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id, if(drop && accept) { it = inventory_objects.begin(); - InventoryObjectList::iterator first_it = inventory_objects.begin(); + LLInventoryObject::object_list_t::iterator first_it = inventory_objects.begin(); LLMoveInv* move_inv = new LLMoveInv; move_inv->mObjectID = object_id; move_inv->mCategoryID = category_id; @@ -2946,7 +2947,7 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response { if (cat_and_wear && cat_and_wear->mWear) { - InventoryObjectList inventory_objects; + LLInventoryObject::object_list_t inventory_objects; object->getInventoryContents(inventory_objects); int contents_count = inventory_objects.size()-1; //subtract one for containing folder @@ -3373,7 +3374,7 @@ LLLandmarkBridge::LLLandmarkBridge(LLInventoryPanel* inventory, LLItemBridge(inventory, root, uuid) { mVisited = FALSE; - if (flags & LLInventoryItem::II_FLAGS_LANDMARK_VISITED) + if (flags & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED) { mVisited = TRUE; } @@ -4013,7 +4014,7 @@ LLObjectBridge::LLObjectBridge(LLInventoryPanel* inventory, { mAttachPt = (flags & 0xff); // low bye of inventory flags - mIsMultiObject = ( flags & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) ? TRUE: FALSE; + mIsMultiObject = ( flags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) ? TRUE: FALSE; } LLUIImagePtr LLObjectBridge::getIcon() const @@ -4962,7 +4963,7 @@ LLUIImagePtr LLLinkItemBridge::getIcon() const if (LLViewerInventoryItem *item = getItem()) { U32 attachment_point = (item->getFlags() & 0xff); // low byte of inventory flags - bool is_multi = LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags(); + bool is_multi = LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags(); return get_item_icon(item->getActualType(), item->getInventoryType(), attachment_point, is_multi); } diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 3e16dfea5f..ecb8f723e8 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -41,6 +41,7 @@ #include "llagentwearables.h" #include "llcallingcard.h" #include "llfloaterreg.h" +#include "llinventorydefines.h" #include "llsdserialize.h" #include "llfiltereditor.h" #include "llspinctrl.h" @@ -409,7 +410,7 @@ void LLOpenFoldersWithSelection::doFolder(LLFolderViewFolder* folder) static void assign_clothing_bodypart_icon(EInventoryIcon &idx, U32 attachment_point) { - const EWearableType wearable_type = EWearableType(LLInventoryItem::II_FLAGS_WEARABLES_MASK & attachment_point); + const EWearableType wearable_type = EWearableType(LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK & attachment_point); switch(wearable_type) { case WT_SHAPE: diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp index 2a7d097f94..f4c0a842e7 100644 --- a/indra/newview/llpanelcontents.cpp +++ b/indra/newview/llpanelcontents.cpp @@ -40,6 +40,7 @@ #include "llerror.h" #include "llfloaterreg.h" #include "llfontgl.h" +#include "llinventorydefines.h" #include "llmaterialtable.h" #include "llpermissionsflags.h" #include "llrect.h" @@ -180,7 +181,7 @@ void LLPanelContents::onClickNewScript(void *userdata) LLTrans::getString("PanelContentsNewScript"), desc, LLSaleInfo::DEFAULT, - LLViewerInventoryItem::II_FLAGS_NONE, + LLInventoryItemFlags::II_FLAGS_NONE, time_corrected()); object->saveScript(new_item, TRUE, true); diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp index 5f913d5469..8da19d1574 100644 --- a/indra/newview/llpanelgroupnotices.cpp +++ b/indra/newview/llpanelgroupnotices.cpp @@ -38,6 +38,7 @@ #include "llinventory.h" #include "llviewerinventory.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llinventorymodel.h" #include "llfloaterinventory.h" @@ -329,7 +330,7 @@ void LLPanelGroupNotices::setItem(LLPointer inv_item) mInventoryItem = inv_item; BOOL item_is_multi = FALSE; - if ( inv_item->getFlags() & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) + if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) { item_is_multi = TRUE; }; diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index f70a06cde9..df74c5dd47 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -50,6 +50,7 @@ #include "llfloaterbuycurrency.h" #include "llfloaterreg.h" #include "llinventorybridge.h" +#include "llinventorydefines.h" #include "llinventoryfilter.h" #include "llinventoryfunctions.h" #include "llpreviewanim.h" @@ -344,7 +345,7 @@ time_t LLTaskInvFVBridge::getCreationDate() const LLUIImagePtr LLTaskInvFVBridge::getIcon() const { BOOL item_is_multi = FALSE; - if ( mFlags & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) + if ( mFlags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) { item_is_multi = TRUE; } @@ -1208,7 +1209,7 @@ LLTaskObjectBridge::LLTaskObjectBridge( LLUIImagePtr LLTaskObjectBridge::getIcon() const { BOOL item_is_multi = FALSE; - if ( mFlags & LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) + if ( mFlags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS ) { item_is_multi = TRUE; } @@ -1615,7 +1616,7 @@ void LLPanelObjectInventory::reset() } void LLPanelObjectInventory::inventoryChanged(LLViewerObject* object, - InventoryObjectList* inventory, + LLInventoryObject::object_list_t* inventory, S32 serial_num, void* data) { @@ -1632,7 +1633,7 @@ void LLPanelObjectInventory::inventoryChanged(LLViewerObject* object, // refresh any properties floaters that are hanging around. if(inventory) { - for (InventoryObjectList::const_iterator iter = inventory->begin(); + for (LLInventoryObject::object_list_t::const_iterator iter = inventory->begin(); iter != inventory->end(); ) { LLInventoryObject* item = *iter++; @@ -1665,7 +1666,7 @@ void LLPanelObjectInventory::updateInventory() if (objectp) { LLInventoryObject* inventory_root = objectp->getInventoryRoot(); - InventoryObjectList contents; + LLInventoryObject::object_list_t contents; objectp->getInventoryContents(contents); if (inventory_root) { @@ -1719,7 +1720,7 @@ void LLPanelObjectInventory::updateInventory() // leads to an N^2 based on the category count. This could be greatly // speeded with an efficient multimap implementation, but we don't // have that in our current arsenal. -void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root, InventoryObjectList& contents) +void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root, LLInventoryObject::object_list_t& contents) { if (!inventory_root) { @@ -1748,7 +1749,7 @@ void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root typedef std::pair obj_folder_pair; -void LLPanelObjectInventory::createViewsForCategory(InventoryObjectList* inventory, +void LLPanelObjectInventory::createViewsForCategory(LLInventoryObject::object_list_t* inventory, LLInventoryObject* parent, LLFolderViewFolder* folder) { @@ -1757,8 +1758,8 @@ void LLPanelObjectInventory::createViewsForCategory(InventoryObjectList* invento LLTaskInvFVBridge* bridge; LLFolderViewItem* view; - InventoryObjectList::iterator it = inventory->begin(); - InventoryObjectList::iterator end = inventory->end(); + LLInventoryObject::object_list_t::iterator it = inventory->begin(); + LLInventoryObject::object_list_t::iterator end = inventory->end(); for( ; it != end; ++it) { LLInventoryObject* obj = *it; diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h index bc339ece35..d015929841 100644 --- a/indra/newview/llpanelobjectinventory.h +++ b/indra/newview/llpanelobjectinventory.h @@ -82,12 +82,12 @@ public: protected: void reset(); /*virtual*/ void inventoryChanged(LLViewerObject* object, - InventoryObjectList* inventory, + LLInventoryObject::object_list_t* inventory, S32 serial_num, void* user_data); void updateInventory(); - void createFolderViews(LLInventoryObject* inventory_root, InventoryObjectList& contents); - void createViewsForCategory(InventoryObjectList* inventory, + void createFolderViews(LLInventoryObject* inventory_root, LLInventoryObject::object_list_t& contents); + void createViewsForCategory(LLInventoryObject::object_list_t* inventory, LLInventoryObject* parent, LLFolderViewFolder* folder); void clearContents(); diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp index d5ec3a36c3..d0db77dcbe 100644 --- a/indra/newview/llpreview.cpp +++ b/indra/newview/llpreview.cpp @@ -36,7 +36,7 @@ #include "llpreview.h" #include "lllineeditor.h" -#include "llinventory.h" +#include "llinventorydefines.h" #include "llinventorymodel.h" #include "llresmgr.h" #include "lltextbox.h" diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index 11cde47744..fce90e4c44 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -42,7 +42,9 @@ #include "llstring.h" #include "lldir.h" #include "llfloaterreg.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" +#include "llinventorymodel.h" #include "llinventorymodelbackgroundfetch.h" #include "llmultigesture.h" #include "llnotificationsutil.h" @@ -58,7 +60,6 @@ #include "lldelayedgestureerror.h" #include "llfloatergesture.h" // for some label constants #include "llgesturemgr.h" -#include "llinventorymodel.h" #include "llkeyboard.h" #include "lllineeditor.h" #include "llradiogroup.h" diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index bfd9a840f2..75702dc8e5 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -42,6 +42,7 @@ #include "llviewerwindow.h" #include "llbutton.h" #include "llfloaterreg.h" +#include "llinventorydefines.h" #include "llinventorymodel.h" #include "lllineeditor.h" #include "llnotificationsutil.h" diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 4167408fc3..6b0e524f8c 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -41,6 +41,7 @@ #include "llcombobox.h" #include "lldir.h" #include "llfloaterreg.h" +#include "llinventorydefines.h" #include "llinventorymodel.h" #include "llkeyboard.h" #include "lllineeditor.h" @@ -1578,7 +1579,7 @@ void LLLiveLSLEditor::loadAsset() DEFAULT_SCRIPT_NAME, DEFAULT_SCRIPT_DESC, LLSaleInfo::DEFAULT, - LLInventoryItem::II_FLAGS_NONE, + LLInventoryItemFlags::II_FLAGS_NONE, time_corrected()); mAssetStatus = PREVIEW_ASSET_LOADED; } diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index 0275736f6d..9b073943b4 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -40,6 +40,7 @@ #include "llbutton.h" #include "llfloaterreg.h" #include "llgroupactions.h" +#include "llinventorydefines.h" #include "llinventorymodel.h" #include "llinventoryobserver.h" #include "lllineeditor.h" @@ -439,9 +440,9 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) if (item->getType() == LLAssetType::AT_OBJECT) { U32 flags = item->getFlags(); - slam_perm = flags & LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; - overwrite_everyone = flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; - overwrite_group = flags & LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; + slam_perm = flags & LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; + overwrite_everyone = flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; + overwrite_group = flags & LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; } std::string perm_string; @@ -752,7 +753,7 @@ void LLSidepanelItemInfo::onCommitPermissions() if((perm.getMaskNextOwner()!=item->getPermissions().getMaskNextOwner()) && (item->getType() == LLAssetType::AT_OBJECT)) { - flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_PERM; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_PERM; } // If everyone permissions have changed (and this is an object) // then set the overwrite everyone permissions flag so they @@ -760,7 +761,7 @@ void LLSidepanelItemInfo::onCommitPermissions() if ((perm.getMaskEveryone()!=item->getPermissions().getMaskEveryone()) && (item->getType() == LLAssetType::AT_OBJECT)) { - flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_EVERYONE; } // If group permissions have changed (and this is an object) // then set the overwrite group permissions flag so they @@ -768,7 +769,7 @@ void LLSidepanelItemInfo::onCommitPermissions() if ((perm.getMaskGroup()!=item->getPermissions().getMaskGroup()) && (item->getType() == LLAssetType::AT_OBJECT)) { - flags |= LLInventoryItem::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_PERM_OVERWRITE_GROUP; } new_item->setFlags(flags); if(mObjectID.isNull()) @@ -880,7 +881,7 @@ void LLSidepanelItemInfo::updateSaleInfo() if (item->getType() == LLAssetType::AT_OBJECT) { U32 flags = new_item->getFlags(); - flags |= LLInventoryItem::II_FLAGS_OBJECT_SLAM_SALE; + flags |= LLInventoryItemFlags::II_FLAGS_OBJECT_SLAM_SALE; new_item->setFlags(flags); } diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 617518ab57..c977377f3a 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -50,6 +50,7 @@ #include "llhudeffecttrail.h" #include "llimview.h" #include "llinventorybridge.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llmutelist.h" #include "llpreviewnotecard.h" diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index 9a69adae31..cc074287c4 100644 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -39,6 +39,7 @@ #include "llgl.h" #include "llrender.h" #include "llinventory.h" +#include "llinventorydefines.h" #include "llpointer.h" #include "llstring.h" #include "lluuid.h" @@ -742,10 +743,10 @@ void LLTracker::setLandmarkVisited() LLInventoryItem* i = gInventory.getItem( mTrackedLandmarkItemID ); LLViewerInventoryItem* item = (LLViewerInventoryItem*)i; if ( item - && !(item->getFlags()&LLInventoryItem::II_FLAGS_LANDMARK_VISITED)) + && !(item->getFlags()&LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED)) { U32 flags = item->getFlags(); - flags |= LLInventoryItem::II_FLAGS_LANDMARK_VISITED; + flags |= LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED; item->setFlags(flags); LLMessageSystem* msg = gMessageSystem; msg->newMessage("ChangeInventoryItemFlags"); @@ -798,7 +799,7 @@ void LLTracker::cacheLandmarkPosition() mLandmarkHasBeenVisited = FALSE; LLInventoryItem* item = gInventory.getItem(mTrackedLandmarkItemID); if ( item - && item->getFlags()&LLInventoryItem::II_FLAGS_LANDMARK_VISITED) + && item->getFlags()&LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED) { mLandmarkHasBeenVisited = TRUE; } diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index db0d57c10c..353ffee66f 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -43,6 +43,7 @@ #include "llfolderview.h" #include "llviewercontrol.h" #include "llconsole.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llinventorymodel.h" #include "llinventorymodelbackgroundfetch.h" @@ -1481,7 +1482,7 @@ EWearableType LLViewerInventoryItem::getWearableType() const llwarns << "item is not a wearable" << llendl; return WT_INVALID; } - return EWearableType(getFlags() & LLInventoryItem::II_FLAGS_WEARABLES_MASK); + return EWearableType(getFlags() & LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK); } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 0277005a89..24a6b12905 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -73,6 +73,7 @@ #include "llhudmanager.h" #include "llimview.h" #include "llinventorybridge.h" +#include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llpanellogin.h" #include "llpanelblockedlist.h" @@ -3863,15 +3864,15 @@ BOOL enable_deed_object_to_group(void*) * No longer able to support viewer side manipulations in this way * void god_force_inv_owner_permissive(LLViewerObject* object, - InventoryObjectList* inventory, + LLInventoryObject::object_list_t* inventory, S32 serial_num, void*) { typedef std::vector > item_array_t; item_array_t items; - InventoryObjectList::const_iterator inv_it = inventory->begin(); - InventoryObjectList::const_iterator inv_end = inventory->end(); + LLInventoryObject::object_list_t::const_iterator inv_it = inventory->begin(); + LLInventoryObject::object_list_t::const_iterator inv_end = inventory->end(); for ( ; inv_it != inv_end; ++inv_it) { if(((*inv_it)->getType() != LLAssetType::AT_CATEGORY)) @@ -6971,7 +6972,7 @@ void handle_grab_texture(void* data) name, LLStringUtil::null, LLSaleInfo::DEFAULT, - LLInventoryItem::II_FLAGS_NONE, + LLInventoryItemFlags::II_FLAGS_NONE, creation_date_now); item->updateServer(TRUE); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 9b39cbfdf1..598e55e2c8 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -41,6 +41,7 @@ #include "lleventtimer.h" #include "llfloaterreg.h" #include "llfollowcamparams.h" +#include "llinventorydefines.h" #include "llregionhandle.h" #include "llsdserialize.h" #include "llteleportflags.h" @@ -5227,7 +5228,7 @@ void process_derez_container(LLMessageSystem *msg, void**) } void container_inventory_arrived(LLViewerObject* object, - InventoryObjectList* inventory, + LLInventoryObject::object_list_t* inventory, S32 serial_num, void* data) { @@ -5247,8 +5248,8 @@ void container_inventory_arrived(LLViewerObject* object, LLFolderType::FT_NONE, LLTrans::getString("AcquiredItems")); - InventoryObjectList::const_iterator it = inventory->begin(); - InventoryObjectList::const_iterator end = inventory->end(); + LLInventoryObject::object_list_t::const_iterator it = inventory->begin(); + LLInventoryObject::object_list_t::const_iterator end = inventory->end(); for ( ; it != end; ++it) { if ((*it)->getType() != LLAssetType::AT_CATEGORY) @@ -5284,7 +5285,7 @@ void container_inventory_arrived(LLViewerObject* object, { // we're going to get one fake root category as well as the // one actual object - InventoryObjectList::iterator it = inventory->begin(); + LLInventoryObject::object_list_t::iterator it = inventory->begin(); if ((*it)->getType() == LLAssetType::AT_CATEGORY) { diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h index 0ba4ac0c8d..4015cca77b 100644 --- a/indra/newview/llviewermessage.h +++ b/indra/newview/llviewermessage.h @@ -129,7 +129,7 @@ void process_frozen_message(LLMessageSystem* msg, void**); void process_derez_container(LLMessageSystem *msg, void**); void container_inventory_arrived(LLViewerObject* object, - std::list >* inventory, //InventoryObjectList + std::list >* inventory, //LLInventoryObject::object_list_t S32 serial_num, void* data); diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index e6d14079c9..ee89680fea 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -46,6 +46,7 @@ #include "llfontgl.h" #include "llframetimer.h" #include "llinventory.h" +#include "llinventorydefines.h" #include "llmaterialtable.h" #include "llmutelist.h" #include "llnamevalue.h" @@ -2177,8 +2178,8 @@ void LLViewerObject::deleteInventoryItem(const LLUUID& item_id) { if(mInventory) { - InventoryObjectList::iterator it = mInventory->begin(); - InventoryObjectList::iterator end = mInventory->end(); + LLInventoryObject::object_list_t::iterator it = mInventory->begin(); + LLInventoryObject::object_list_t::iterator end = mInventory->end(); for( ; it != end; ++it ) { if((*it)->getUUID() == item_id) @@ -2488,7 +2489,7 @@ void LLViewerObject::processTaskInv(LLMessageSystem* msg, void** user_data) } else { - object->mInventory = new InventoryObjectList(); + object->mInventory = new LLInventoryObject::object_list_t(); } LLPointer obj; obj = new LLInventoryObject(object->mID, LLUUID::null, @@ -2544,7 +2545,7 @@ void LLViewerObject::loadTaskInvFile(const std::string& filename) } else { - mInventory = new InventoryObjectList; + mInventory = new LLInventoryObject::object_list_t; } while(ifs.good()) { @@ -2677,8 +2678,8 @@ LLInventoryObject* LLViewerObject::getInventoryObject(const LLUUID& item_id) LLInventoryObject* rv = NULL; if(mInventory) { - InventoryObjectList::iterator it = mInventory->begin(); - InventoryObjectList::iterator end = mInventory->end(); + LLInventoryObject::object_list_t::iterator it = mInventory->begin(); + LLInventoryObject::object_list_t::iterator end = mInventory->end(); for ( ; it != end; ++it) { if((*it)->getUUID() == item_id) @@ -2691,12 +2692,12 @@ LLInventoryObject* LLViewerObject::getInventoryObject(const LLUUID& item_id) return rv; } -void LLViewerObject::getInventoryContents(InventoryObjectList& objects) +void LLViewerObject::getInventoryContents(LLInventoryObject::object_list_t& objects) { if(mInventory) { - InventoryObjectList::iterator it = mInventory->begin(); - InventoryObjectList::iterator end = mInventory->end(); + LLInventoryObject::object_list_t::iterator it = mInventory->begin(); + LLInventoryObject::object_list_t::iterator end = mInventory->end(); for( ; it != end; ++it) { if ((*it)->getType() != LLAssetType::AT_CATEGORY) @@ -2726,8 +2727,8 @@ LLViewerInventoryItem* LLViewerObject::getInventoryItemByAsset(const LLUUID& ass { LLViewerInventoryItem* item = NULL; - InventoryObjectList::iterator it = mInventory->begin(); - InventoryObjectList::iterator end = mInventory->end(); + LLInventoryObject::object_list_t::iterator it = mInventory->begin(); + LLInventoryObject::object_list_t::iterator end = mInventory->end(); for( ; it != end; ++it) { LLInventoryObject* obj = *it; @@ -4089,8 +4090,8 @@ S32 LLViewerObject::countInventoryContents(LLAssetType::EType type) S32 count = 0; if( mInventory ) { - InventoryObjectList::const_iterator it = mInventory->begin(); - InventoryObjectList::const_iterator end = mInventory->end(); + LLInventoryObject::object_list_t::const_iterator it = mInventory->begin(); + LLInventoryObject::object_list_t::const_iterator end = mInventory->end(); for( ; it != end ; ++it ) { if( (*it)->getType() == type ) diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 266c40d493..be83fb7ef8 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -88,7 +88,7 @@ typedef enum e_object_update_type // callback typedef for inventory typedef void (*inventory_callback)(LLViewerObject*, - InventoryObjectList*, + LLInventoryObject::object_list_t*, S32 serial_num, void*); @@ -409,7 +409,7 @@ public: void updateInventory(LLViewerInventoryItem* item, U8 key, bool is_new); void updateInventoryLocal(LLInventoryItem* item, U8 key); // Update without messaging. LLInventoryObject* getInventoryObject(const LLUUID& item_id); - void getInventoryContents(InventoryObjectList& objects); + void getInventoryContents(LLInventoryObject::object_list_t& objects); LLInventoryObject* getInventoryRoot(); LLViewerInventoryItem* getInventoryItemByAsset(const LLUUID& asset_id); S16 getInventorySerial() const { return mInventorySerialNum; } @@ -629,7 +629,7 @@ protected: F32 mPixelArea; // Apparent area in pixels // This is the object's inventory from the viewer's perspective. - InventoryObjectList* mInventory; + LLInventoryObject::object_list_t* mInventory; class LLInventoryCallbackInfo { public: diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index c9b3886fef..59efae4cb2 100644 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -40,8 +40,8 @@ #include "llfloaterreg.h" #include "llfloaterworldmap.h" #include "llfocusmgr.h" -#include "llinventory.h" #include "llinventorybridge.h" +#include "llinventorydefines.h" #include "llinventorymodel.h" #include "lllandmark.h" #include "lllandmarkactions.h" @@ -525,7 +525,7 @@ LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const case LLAssetType::AT_SOUND: img_name = "Inv_Sound"; break; case LLAssetType::AT_CLOTHING: img_name = "Inv_Clothing"; break; case LLAssetType::AT_OBJECT: - img_name = LLInventoryItem::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags() ? + img_name = LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS & item->getFlags() ? "Inv_Object_Multi" : "Inv_Object"; break; case LLAssetType::AT_CALLINGCARD: img_name = "Inv_CallingCard"; break; diff --git a/indra/newview/llvoinventorylistener.h b/indra/newview/llvoinventorylistener.h index 335e867fca..1531e6e339 100644 --- a/indra/newview/llvoinventorylistener.h +++ b/indra/newview/llvoinventorylistener.h @@ -42,7 +42,7 @@ class LLVOInventoryListener { public: virtual void inventoryChanged(LLViewerObject* object, - InventoryObjectList* inventory, + LLInventoryObject::object_list_t* inventory, S32 serial_num, void* user_data) = 0; -- cgit v1.3 From 785d4c34b62b7ca76b292e0001c516ba8fa738bc Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Tue, 6 Apr 2010 10:19:15 -0400 Subject: EXT-4151 : Immediately check if a fetchObserver filter is done, else add to observer list automatically Preliminary work to clean up naming conventions. --- indra/newview/llagentwearables.cpp | 4 ++-- indra/newview/llagentwearablesfetch.cpp | 20 ++++++++--------- indra/newview/llappearancemgr.h | 8 +++---- indra/newview/llfloatergesture.cpp | 4 ++-- indra/newview/llfriendcard.cpp | 2 +- indra/newview/llgesturemgr.cpp | 2 +- indra/newview/llinventorybridge.cpp | 10 ++++----- indra/newview/llinventorymodel.cpp | 2 +- indra/newview/llinventorymodelbackgroundfetch.cpp | 2 +- indra/newview/llinventoryobserver.cpp | 26 +++++++++++------------ indra/newview/llinventoryobserver.h | 8 +++---- indra/newview/llpaneloutfitedit.cpp | 2 +- indra/newview/llsidepanelappearance.cpp | 2 +- indra/newview/llstartup.cpp | 2 +- indra/newview/lltooldraganddrop.cpp | 8 +++---- indra/newview/llviewerinventory.cpp | 2 +- indra/newview/llviewerinventory.h | 2 +- indra/newview/llviewermenu.cpp | 2 +- indra/newview/llviewermessage.cpp | 12 +++++------ 19 files changed, 59 insertions(+), 61 deletions(-) (limited to 'indra/newview/llinventorybridge.cpp') diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 0542e73bfd..9d3b5763e8 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -954,7 +954,7 @@ void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgs // that will trigger when the complete information is fetched. uuid_vec_t folders; folders.push_back(current_outfit_id); - outfit->fetchDescendents(folders); + outfit->fetch(folders); if(outfit->isEverythingComplete()) { // everything is already here - call done. @@ -2070,7 +2070,7 @@ void LLAgentWearables::populateMyOutfitsFolder(void) folders.push_back(outfits->mMyOutfitsID); gInventory.addObserver(outfits); - outfits->fetchDescendents(folders); + outfits->fetch(folders); if (outfits->isEverythingComplete()) { outfits->done(); diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp index 1f22ba040d..3d6740f5a1 100644 --- a/indra/newview/llagentwearablesfetch.cpp +++ b/indra/newview/llagentwearablesfetch.cpp @@ -69,7 +69,7 @@ void LLInitialWearablesFetch::processContents() LLInventoryModel::cat_array_t cat_array; LLInventoryModel::item_array_t wearable_array; LLFindWearables is_wearable; - gInventory.collectDescendentsIf(mCompleteFolders.front(), cat_array, wearable_array, + gInventory.collectDescendentsIf(mComplete.front(), cat_array, wearable_array, LLInventoryModel::EXCLUDE_TRASH, is_wearable); LLAppearanceMgr::instance().setAttachmentInvLinkEnable(true); @@ -173,7 +173,7 @@ void LLInitialWearablesFetch::processWearablesMessage() // Need to fetch the inventory items for ids, then create links to them after they arrive. LLFetchAndLinkObserver *fetcher = new LLFetchAndLinkObserver(ids); - fetcher->fetchItems(ids); + fetcher->fetch(ids); // If no items to be fetched, done will never be triggered. // TODO: Change LLInventoryFetchObserver::fetchItems to trigger done() on this condition. if (fetcher->isEverythingComplete()) @@ -282,13 +282,13 @@ void LLLibraryOutfitsFetch::folderDone() mLibraryClothingID = cat->getUUID(); } - mCompleteFolders.clear(); + mComplete.clear(); // Get the complete information on the items in the inventory. uuid_vec_t folders; folders.push_back(mClothingID); folders.push_back(mLibraryClothingID); - fetchDescendents(folders); + fetch(folders); if (isEverythingComplete()) { done(); @@ -336,9 +336,9 @@ void LLLibraryOutfitsFetch::outfitsDone() mImportedClothingID = cat->getUUID(); } - mCompleteFolders.clear(); + mComplete.clear(); - fetchDescendents(folders); + fetch(folders); if (isEverythingComplete()) { done(); @@ -433,9 +433,9 @@ void LLLibraryOutfitsFetch::importedFolderFetch() uuid_vec_t folders; folders.push_back(mImportedClothingID); - mCompleteFolders.clear(); + mComplete.clear(); - fetchDescendents(folders); + fetch(folders); if (isEverythingComplete()) { done(); @@ -463,8 +463,8 @@ void LLLibraryOutfitsFetch::importedFolderDone() mImportedClothingFolders.push_back(cat->getUUID()); } - mCompleteFolders.clear(); - fetchDescendents(folders); + mComplete.clear(); + fetch(folders); if (isEverythingComplete()) { done(); diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 423d9bde69..40b8844731 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -282,14 +282,14 @@ public: // happen. LLInventoryModel::cat_array_t cat_array; LLInventoryModel::item_array_t item_array; - gInventory.collectDescendents(mCompleteFolders.front(), + gInventory.collectDescendents(mComplete.front(), cat_array, item_array, LLInventoryModel::EXCLUDE_TRASH); S32 count = item_array.count(); if(!count) { - llwarns << "Nothing fetched in category " << mCompleteFolders.front() + llwarns << "Nothing fetched in category " << mComplete.front() << llendl; //dec_busy_count(); gInventory.removeObserver(this); @@ -307,7 +307,7 @@ public: gInventory.removeObserver(this); // do the fetch - stage2->fetchItems(ids); + stage2->fetch(ids); if(stage2->isEverythingComplete()) { // everything is already here - call done. @@ -331,7 +331,7 @@ void callAfterCategoryFetch(const LLUUID& cat_id, T callable) CallAfterCategoryFetchStage1 *stage1 = new CallAfterCategoryFetchStage1(callable); uuid_vec_t folders; folders.push_back(cat_id); - stage1->fetchDescendents(folders); + stage1->fetch(folders); if (stage1->isEverythingComplete()) { stage1->done(); diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp index 0aca12bc5e..8ee8d13a9c 100644 --- a/indra/newview/llfloatergesture.cpp +++ b/indra/newview/llfloatergesture.cpp @@ -148,7 +148,7 @@ void LLFloaterGesture::done() if (!unloaded_folders.empty()) { LL_DEBUGS("Gesture")<< "Fetching subdirectories....." << LL_ENDL; - fetchDescendents(unloaded_folders); + fetch(unloaded_folders); } else { @@ -202,7 +202,7 @@ BOOL LLFloaterGesture::postBuild() folders.push_back(mGestureFolderID); //perform loading Gesture directory anyway to make sure that all subdirectory are loaded too. See method done() for details. gInventory.addObserver(this); - fetchDescendents(folders); + fetch(folders); if (mGestureList) { diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp index a848128d67..6f069cca17 100644 --- a/indra/newview/llfriendcard.cpp +++ b/indra/newview/llfriendcard.cpp @@ -413,7 +413,7 @@ void LLFriendCardsManager::fetchAndCheckFolderDescendents(const LLUUID& folder_i uuid_vec_t folders; folders.push_back(folder_id); - fetch->fetchDescendents(folders); + fetch->fetch(folders); if(fetch->isEverythingComplete()) { // everything is already here - call done. diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp index c13ebba923..a4342a4bc9 100644 --- a/indra/newview/llgesturemgr.cpp +++ b/indra/newview/llgesturemgr.cpp @@ -1033,7 +1033,7 @@ void LLGestureMgr::onLoadComplete(LLVFS *vfs, // Watch this item and set gesture name when item exists in inventory uuid_vec_t ids; ids.push_back(item_id); - self.fetchItems(ids); + self.fetch(ids); } self.mActive[item_id] = gesture; diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 09168b4f31..b552b5ac07 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1974,7 +1974,7 @@ void LLRightClickInventoryFetchDescendentsObserver::done() { // Avoid passing a NULL-ref as mCompleteFolders.front() down to // gInventory.collectDescendents() - if( mCompleteFolders.empty() ) + if( mComplete.empty() ) { llwarns << "LLRightClickInventoryFetchDescendentsObserver::done with empty mCompleteFolders" << llendl; dec_busy_count(); @@ -1988,7 +1988,7 @@ void LLRightClickInventoryFetchDescendentsObserver::done() // happen. LLInventoryModel::cat_array_t cat_array; LLInventoryModel::item_array_t item_array; - gInventory.collectDescendents(mCompleteFolders.front(), + gInventory.collectDescendents(mComplete.front(), cat_array, item_array, LLInventoryModel::EXCLUDE_TRASH); @@ -2007,7 +2007,7 @@ void LLRightClickInventoryFetchDescendentsObserver::done() #endif LLRightClickInventoryFetchObserver* outfit; - outfit = new LLRightClickInventoryFetchObserver(mCompleteFolders.front(), mCopyItems); + outfit = new LLRightClickInventoryFetchObserver(mComplete.front(), mCopyItems); uuid_vec_t ids; for(S32 i = 0; i < count; ++i) { @@ -2026,7 +2026,7 @@ void LLRightClickInventoryFetchDescendentsObserver::done() inc_busy_count(); // do the fetch - outfit->fetchItems(ids); + outfit->fetch(ids); outfit->done(); //Not interested in waiting and this will be right 99% of the time. //Uncomment the following code for laggy Inventory UI. /* if(outfit->isEverythingComplete()) @@ -2723,7 +2723,7 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { folders.push_back(category->getUUID()); } - fetch->fetchDescendents(folders); + fetch->fetch(folders); inc_busy_count(); if(fetch->isEverythingComplete()) { diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index b6202c6a8c..e63da1ebb9 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -1326,7 +1326,7 @@ bool LLInventoryModel::fetchDescendentsOf(const LLUUID& folder_id) //{ // known_descendents += items->count(); //} - return cat->fetchDescendents(); + return cat->fetch(); } void LLInventoryModel::cache( diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp index 72e5c0dd75..cfbc2c3e05 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.cpp +++ b/indra/newview/llinventorymodelbackgroundfetch.cpp @@ -257,7 +257,7 @@ void LLInventoryModelBackgroundFetch::backgroundFetch() { // category exists but has no children yet, fetch the descendants // for now, just request every time and rely on retry timer to throttle - if (cat->fetchDescendents()) + if (cat->fetch()) { mFetchTimer.reset(); mTimelyFetchPending = TRUE; diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp index 128f16ecf5..83e1bbd5a0 100644 --- a/indra/newview/llinventoryobserver.cpp +++ b/indra/newview/llinventoryobserver.cpp @@ -223,8 +223,7 @@ void fetch_items_from_llsd(const LLSD& items_llsd) } } -void LLInventoryFetchObserver::fetchItems( - const uuid_vec_t& ids) +void LLInventoryFetchObserver::fetch(const uuid_vec_t& ids) { LLUUID owner_id; LLSD items_llsd; @@ -266,30 +265,29 @@ void LLInventoryFetchObserver::fetchItems( // virtual void LLInventoryFetchDescendentsObserver::changed(U32 mask) { - for(uuid_vec_t::iterator it = mIncompleteFolders.begin(); it < mIncompleteFolders.end();) + for(uuid_vec_t::iterator it = mIncomplete.begin(); it < mIncomplete.end();) { LLViewerInventoryCategory* cat = gInventory.getCategory(*it); if(!cat) { - it = mIncompleteFolders.erase(it); + it = mIncomplete.erase(it); continue; } if(isComplete(cat)) { - mCompleteFolders.push_back(*it); - it = mIncompleteFolders.erase(it); + mComplete.push_back(*it); + it = mIncomplete.erase(it); continue; } ++it; } - if(mIncompleteFolders.empty()) + if(mIncomplete.empty()) { done(); } } -void LLInventoryFetchDescendentsObserver::fetchDescendents( - const uuid_vec_t& ids) +void LLInventoryFetchDescendentsObserver::fetch(const uuid_vec_t& ids) { for(uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it) { @@ -297,19 +295,19 @@ void LLInventoryFetchDescendentsObserver::fetchDescendents( if(!cat) continue; if(!isComplete(cat)) { - cat->fetchDescendents(); //blindly fetch it without seeing if anything else is fetching it. - mIncompleteFolders.push_back(*it); //Add to list of things being downloaded for this observer. + cat->fetch(); //blindly fetch it without seeing if anything else is fetching it. + mIncomplete.push_back(*it); //Add to list of things being downloaded for this observer. } else { - mCompleteFolders.push_back(*it); + mComplete.push_back(*it); } } } bool LLInventoryFetchDescendentsObserver::isEverythingComplete() const { - return mIncompleteFolders.empty(); + return mIncomplete.empty(); } bool LLInventoryFetchDescendentsObserver::isComplete(LLViewerInventoryCategory* cat) @@ -413,7 +411,7 @@ void LLInventoryFetchComboObserver::fetch( if(!cat) continue; if(!gInventory.isCategoryComplete(*fit)) { - cat->fetchDescendents(); + cat->fetch(); lldebugs << "fetching folder " << *fit <fetchDescendents(folders); + mFetchLook->fetch(folders); if (mFetchLook->isEverythingComplete()) { mFetchLook->done(); diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 89c60fed34..a11b0b44d5 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -389,7 +389,7 @@ void LLSidepanelAppearance::fetchInventory() } LLCurrentlyWornFetchObserver *fetch_worn = new LLCurrentlyWornFetchObserver(this); - fetch_worn->fetchItems(ids); + fetch_worn->fetch(ids); // If no items to be fetched, done will never be triggered. // TODO: Change LLInventoryFetchObserver::fetchItems to trigger done() on this condition. if (fetch_worn->isEverythingComplete()) diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 4f1bcde302..d7c8b5fcd4 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1771,7 +1771,7 @@ bool idle_startup() } } // no need to add gesture to inventory observer, it's already made in constructor - LLGestureMgr::instance().fetchItems(item_ids); + LLGestureMgr::instance().fetch(item_ids); } } gDisplaySwapBuffers = TRUE; diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index c977377f3a..1e81e675e6 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -306,8 +306,8 @@ void LLCategoryDropDescendentsObserver::done() { gInventory.removeObserver(this); - uuid_vec_t::iterator it = mCompleteFolders.begin(); - uuid_vec_t::iterator end = mCompleteFolders.end(); + uuid_vec_t::iterator it = mComplete.begin(); + uuid_vec_t::iterator end = mComplete.end(); LLViewerInventoryCategory::cat_array_t cats; LLViewerInventoryItem::item_array_t items; for(; it != end; ++it) @@ -332,7 +332,7 @@ void LLCategoryDropDescendentsObserver::done() std::copy(unique_ids.begin(), unique_ids.end(), copier); LLCategoryDropObserver* dropper; dropper = new LLCategoryDropObserver(mObjectID, mSource); - dropper->fetchItems(ids); + dropper->fetch(ids); if (dropper->isEverythingComplete()) { dropper->done(); @@ -2577,7 +2577,7 @@ EAcceptance LLToolDragAndDrop::dad3dUpdateInventoryCategory( ids.push_back(item->getUUID()); } LLCategoryDropObserver* dropper = new LLCategoryDropObserver(obj->getID(), mSource); - dropper->fetchItems(ids); + dropper->fetch(ids); if (dropper->isEverythingComplete()) { dropper->done(); diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 353ffee66f..444d397146 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -519,7 +519,7 @@ void LLViewerInventoryCategory::removeFromServer( void ) gAgent.sendReliableMessage(); } -bool LLViewerInventoryCategory::fetchDescendents() +bool LLViewerInventoryCategory::fetch() { if((VERSION_UNKNOWN == mVersion) && mDescendentsRequested.hasExpired()) //Expired check prevents multiple downloads. diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index 3577bd8791..2db88c2ff8 100644 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -212,7 +212,7 @@ public: void setVersion(S32 version) { mVersion = version; } // Returns true if a fetch was issued. - bool fetchDescendents(); + bool fetch(); // used to help make cacheing more robust - for example, if // someone is getting 4 packets but logs out after 3. the viewer diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 24a6b12905..d91b6d0b1e 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6158,7 +6158,7 @@ class LLAttachmentEnableDrop : public view_listener_t items.push_back((*attachment_iter)->getItemID()); - wornItemFetched->fetchItems(items); + wornItemFetched->fetch(items); gInventory.addObserver(wornItemFetched); } } diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 598e55e2c8..a471876ce1 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1207,7 +1207,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& uuid_vec_t items; items.push_back(mObjectID); LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(from_string); - open_agent_offer->fetchItems(items); + open_agent_offer->fetch(items); if(catp || (itemp && itemp->isComplete())) { open_agent_offer->done(); @@ -1605,7 +1605,7 @@ void inventory_offer_handler(LLOfferInfo* info) uuid_vec_t items; items.push_back(info->mObjectID); LLInventoryFetchObserver* fetch_item = new LLInventoryFetchObserver(); - fetch_item->fetchItems(items); + fetch_item->fetch(items); if(fetch_item->isEverythingComplete()) { fetch_item->done(); @@ -2124,7 +2124,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) uuid_vec_t items; items.push_back(info->mObjectID); LLInventoryFetchObserver* fetch_item = new LLInventoryFetchObserver(); - fetch_item->fetchItems(items); + fetch_item->fetch(items); delete fetch_item; // Same as closing window @@ -2855,8 +2855,8 @@ public: LLInventoryModel::cat_array_t land_cats; LLInventoryModel::item_array_t land_items; - uuid_vec_t::iterator it = mCompleteFolders.begin(); - uuid_vec_t::iterator end = mCompleteFolders.end(); + uuid_vec_t::iterator it = mComplete.begin(); + uuid_vec_t::iterator end = mComplete.end(); for(; it != end; ++it) { gInventory.collectDescendentsIf( @@ -2927,7 +2927,7 @@ BOOL LLPostTeleportNotifiers::tick() if(!folders.empty()) { LLFetchInWelcomeArea* fetcher = new LLFetchInWelcomeArea; - fetcher->fetchDescendents(folders); + fetcher->fetch(folders); if(fetcher->isEverythingComplete()) { fetcher->done(); -- cgit v1.3