diff options
Diffstat (limited to 'indra/newview/llplacesinventorybridge.cpp')
-rw-r--r-- | indra/newview/llplacesinventorybridge.cpp | 250 |
1 files changed, 125 insertions, 125 deletions
diff --git a/indra/newview/llplacesinventorybridge.cpp b/indra/newview/llplacesinventorybridge.cpp index 471e1c24f3..2d207a9eee 100644 --- a/indra/newview/llplacesinventorybridge.cpp +++ b/indra/newview/llplacesinventorybridge.cpp @@ -1,25 +1,25 @@ -/** +/** * @file llplacesinventorybridge.cpp * @brief Implementation of the Inventory-Folder-View-Bridge classes for Places Panel. * * $LicenseInfo:firstyear=2009&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -38,162 +38,162 @@ static const std::string LANDMARKS_INVENTORY_LIST_NAME("landmarks_list"); bool is_landmarks_panel(const LLInventoryPanel* inv_panel) { - if (NULL == inv_panel) - return false; - return inv_panel->getName() == LANDMARKS_INVENTORY_LIST_NAME; + if (NULL == inv_panel) + return false; + return inv_panel->getName() == LANDMARKS_INVENTORY_LIST_NAME; } void fill_items_with_menu_items(std::vector<std::string>& items, LLMenuGL& menu) { - LLView::child_list_const_iter_t itor; - for (itor = menu.beginChild(); itor != menu.endChild(); ++itor) - { - std::string name = (*itor)->getName(); - items.push_back(name); - } + LLView::child_list_const_iter_t itor; + for (itor = menu.beginChild(); itor != menu.endChild(); ++itor) + { + std::string name = (*itor)->getName(); + items.push_back(name); + } } // virtual void LLPlacesLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { - std::vector<std::string> items; - std::vector<std::string> disabled_items; - - if(isItemInTrash()) - { - items.push_back(std::string("Purge Item")); - if (!isItemRemovable() || (gInventory.getCategory(mUUID) && !gInventory.isCategoryComplete(mUUID))) - { - disabled_items.push_back(std::string("Purge Item")); - } - - items.push_back(std::string("Restore Item")); - } - else - { - fill_items_with_menu_items(items, menu); - - // Disabled items are processed via LLLandmarksPanel::isActionEnabled() - // they should be synchronized with Places/My Landmarks/Gear menu. See EXT-1601 - } - - hide_context_entries(menu, items, disabled_items); + std::vector<std::string> items; + std::vector<std::string> disabled_items; + + if(isItemInTrash()) + { + items.push_back(std::string("Purge Item")); + if (!isItemRemovable() || (gInventory.getCategory(mUUID) && !gInventory.isCategoryComplete(mUUID))) + { + disabled_items.push_back(std::string("Purge Item")); + } + + items.push_back(std::string("Restore Item")); + } + else + { + fill_items_with_menu_items(items, menu); + + // Disabled items are processed via LLLandmarksPanel::isActionEnabled() + // they should be synchronized with Places/My Landmarks/Gear menu. See EXT-1601 + } + + hide_context_entries(menu, items, disabled_items); } void LLPlacesFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { - std::vector<std::string> items; - std::vector<std::string> disabled_items; + std::vector<std::string> items; + std::vector<std::string> disabled_items; - LLInventoryPanel* inv_panel = mInventoryPanel.get(); - bool is_open = false; - if (inv_panel) - { - LLFolderViewFolder* folder = dynamic_cast<LLFolderViewFolder*>(inv_panel->getItemByID(mUUID)); - is_open = (NULL != folder) && folder->isOpen(); - } + LLInventoryPanel* inv_panel = mInventoryPanel.get(); + bool is_open = false; + if (inv_panel) + { + LLFolderViewFolder* folder = dynamic_cast<LLFolderViewFolder*>(inv_panel->getItemByID(mUUID)); + is_open = (NULL != folder) && folder->isOpen(); + } - // collect all items' names - fill_items_with_menu_items(items, menu); + // collect all items' names + fill_items_with_menu_items(items, menu); - // remove expand or collapse menu item depend on folder state - std::string collapse_expand_item_to_hide(is_open ? "expand" : "collapse"); - std::vector<std::string>::iterator it = std::find(items.begin(), items.end(), collapse_expand_item_to_hide); - if (it != items.end()) items.erase(it); + // remove expand or collapse menu item depend on folder state + std::string collapse_expand_item_to_hide(is_open ? "expand" : "collapse"); + std::vector<std::string>::iterator it = std::find(items.begin(), items.end(), collapse_expand_item_to_hide); + if (it != items.end()) items.erase(it); - // Disabled items are processed via LLLandmarksPanel::isActionEnabled() - // they should be synchronized with Places/My Landmarks/Gear menu. See EXT-1601 + // Disabled items are processed via LLLandmarksPanel::isActionEnabled() + // they should be synchronized with Places/My Landmarks/Gear menu. See EXT-1601 - // repeat parent functionality - sSelf = getHandle(); // necessary for "New Folder" functionality + // repeat parent functionality + sSelf = getHandle(); // necessary for "New Folder" functionality - hide_context_entries(menu, items, disabled_items); + hide_context_entries(menu, items, disabled_items); } //virtual void LLPlacesFolderBridge::performAction(LLInventoryModel* model, std::string action) { - if ("expand" == action) - { - LLFolderViewFolder* act_folder = getFolder(); - act_folder->toggleOpen(); - } - else if ("collapse" == action) - { - LLFolderViewFolder* act_folder = getFolder(); - act_folder->toggleOpen(); - } - else - { - LLFolderBridge::performAction(model, action); - } + if ("expand" == action) + { + LLFolderViewFolder* act_folder = getFolder(); + act_folder->toggleOpen(); + } + else if ("collapse" == action) + { + LLFolderViewFolder* act_folder = getFolder(); + act_folder->toggleOpen(); + } + else + { + LLFolderBridge::performAction(model, action); + } } LLFolderViewFolder* LLPlacesFolderBridge::getFolder() { - LLFolderViewFolder* folder = NULL; - LLInventoryPanel* inv_panel = mInventoryPanel.get(); - if (inv_panel) - { - folder = dynamic_cast<LLFolderViewFolder*>(inv_panel->getItemByID(mUUID)); - } - - return folder; + LLFolderViewFolder* folder = NULL; + LLInventoryPanel* inv_panel = mInventoryPanel.get(); + if (inv_panel) + { + folder = dynamic_cast<LLFolderViewFolder*>(inv_panel->getItemByID(mUUID)); + } + + return folder; } // virtual LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge( - LLAssetType::EType asset_type, - LLAssetType::EType actual_asset_type, - LLInventoryType::EType inv_type, - LLInventoryPanel* inventory, - LLFolderViewModelInventory* view_model, - LLFolderView* root, - const LLUUID& uuid, - U32 flags/* = 0x00*/) const + LLAssetType::EType asset_type, + LLAssetType::EType actual_asset_type, + LLInventoryType::EType inv_type, + LLInventoryPanel* inventory, + LLFolderViewModelInventory* view_model, + LLFolderView* root, + const LLUUID& uuid, + U32 flags/* = 0x00*/) const { - LLInvFVBridge* new_listener = NULL; - switch(asset_type) - { - case LLAssetType::AT_LANDMARK: - if(!(inv_type == LLInventoryType::IT_LANDMARK)) - { - LL_WARNS() << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << LL_ENDL; - } - new_listener = new LLPlacesLandmarkBridge(inv_type, inventory, root, uuid, flags); - break; - case LLAssetType::AT_CATEGORY: - if (actual_asset_type == LLAssetType::AT_LINK_FOLDER) - { - // *TODO: Create a link folder handler instead if it is necessary - new_listener = LLInventoryFolderViewModelBuilder::createBridge( - asset_type, - actual_asset_type, - inv_type, - inventory, - view_model, - root, - uuid, - flags); - break; - } - new_listener = new LLPlacesFolderBridge(inv_type, inventory, root, uuid); - break; - default: - new_listener = LLInventoryFolderViewModelBuilder::createBridge( - asset_type, - actual_asset_type, - inv_type, - inventory, - view_model, - root, - uuid, - flags); - } - return new_listener; + LLInvFVBridge* new_listener = NULL; + switch(asset_type) + { + case LLAssetType::AT_LANDMARK: + if(!(inv_type == LLInventoryType::IT_LANDMARK)) + { + LL_WARNS() << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << LL_ENDL; + } + new_listener = new LLPlacesLandmarkBridge(inv_type, inventory, root, uuid, flags); + break; + case LLAssetType::AT_CATEGORY: + if (actual_asset_type == LLAssetType::AT_LINK_FOLDER) + { + // *TODO: Create a link folder handler instead if it is necessary + new_listener = LLInventoryFolderViewModelBuilder::createBridge( + asset_type, + actual_asset_type, + inv_type, + inventory, + view_model, + root, + uuid, + flags); + break; + } + new_listener = new LLPlacesFolderBridge(inv_type, inventory, root, uuid); + break; + default: + new_listener = LLInventoryFolderViewModelBuilder::createBridge( + asset_type, + actual_asset_type, + inv_type, + inventory, + view_model, + root, + uuid, + flags); + } + return new_listener; } // EOF |