diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/CMakeLists.txt | 2 | ||||
-rw-r--r-- | indra/newview/llfloaterbulkythumbs.cpp | 443 | ||||
-rw-r--r-- | indra/newview/llfloaterbulkythumbs.h | 72 | ||||
-rw-r--r-- | indra/newview/llviewerfloaterreg.cpp | 4 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/floater_bulky_thumbs.xml | 66 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 8 |
6 files changed, 1 insertions, 594 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 79fa3ec5b5..24a8e083bb 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -185,7 +185,6 @@ set(viewer_SOURCE_FILES llfloaterbigpreview.cpp llfloaterbuildoptions.cpp llfloaterbulkpermission.cpp - llfloaterbulkythumbs.cpp llfloaterbump.cpp llfloaterbuy.cpp llfloaterbuycontents.cpp @@ -833,7 +832,6 @@ set(viewer_HEADER_FILES llfloaterbigpreview.h llfloaterbuildoptions.h llfloaterbulkpermission.h - llfloaterbulkythumbs.h llfloaterbump.h llfloaterbuy.h llfloaterbuycontents.h diff --git a/indra/newview/llfloaterbulkythumbs.cpp b/indra/newview/llfloaterbulkythumbs.cpp deleted file mode 100644 index 02adf90acf..0000000000 --- a/indra/newview/llfloaterbulkythumbs.cpp +++ /dev/null @@ -1,443 +0,0 @@ -/** - * @file llfloaterbulkythumbs.cpp - * @author Callum Prentice - * @brief LLFloaterBulkyThumbs class implementation - * - * $LicenseInfo:firstyear=2008&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$ - */ - -/** - * Floater that appears when buying an object, giving a preview - * of its contents and their permissions. - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloaterbulkythumbs.h" -#include "lluictrlfactory.h" -#include "llclipboard.h" -#include "llinventorymodel.h" -#include "llinventoryfunctions.h" -#include "lltexteditor.h" -#include "llmediactrl.h" -#include "lluuid.h" -#include "llaisapi.h" - -LLFloaterBulkyThumbs::LLFloaterBulkyThumbs(const LLSD& key) - : LLFloater("floater_bulky_thumbs") -{ -} - -LLFloaterBulkyThumbs::~LLFloaterBulkyThumbs() -{ -} - -BOOL LLFloaterBulkyThumbs::postBuild() -{ - mPasteItemsBtn = getChild<LLUICtrl>("paste_items_btn"); - mPasteItemsBtn->setCommitCallback(boost::bind(&LLFloaterBulkyThumbs::onPasteItems, this)); - - mPasteTexturesBtn = getChild<LLUICtrl>("paste_textures_btn"); - mPasteTexturesBtn->setCommitCallback(boost::bind(&LLFloaterBulkyThumbs::onPasteTextures, this)); - - mOutputLog = getChild<LLTextEditor>("output_log"); - mOutputLog->setMaxTextLength(0xffff * 0x10); - - mMergeItemsTexturesBtn = getChild<LLUICtrl>("merge_items_textures"); - mMergeItemsTexturesBtn->setCommitCallback(boost::bind(&LLFloaterBulkyThumbs::onMergeItemsTextures, this)); - mMergeItemsTexturesBtn->setEnabled(false); - - mWriteThumbnailsBtn = getChild<LLUICtrl>("write_items_thumbnails"); - mWriteThumbnailsBtn->setCommitCallback(boost::bind(&LLFloaterBulkyThumbs::onWriteThumbnails, this)); - mWriteThumbnailsBtn->setEnabled(false); - - mDisplayThumbnaillessItemsBtn = getChild<LLUICtrl>("display_thumbless_items"); - mDisplayThumbnaillessItemsBtn->setCommitCallback(boost::bind(&LLFloaterBulkyThumbs::onDisplayThumbnaillessItems, this)); - mDisplayThumbnaillessItemsBtn->setEnabled(true); - - return true; -} - -void LLFloaterBulkyThumbs::recordInventoryItemEntry(LLViewerInventoryItem* item) -{ - const std::string name = item->getName(); - - std::map<std::string, LLUUID>::iterator iter = mItemNamesIDs.find(name); - if (iter == mItemNamesIDs.end()) - { - LLUUID id = item->getUUID(); - mItemNamesIDs.insert({name, id}); - - mOutputLog->appendText( - STRINGIZE( - "ITEM " << mItemNamesIDs.size() << "> " << - name << - //" | " << - //id.asString() << - std::endl - ), false); - } - else - { - // dupe - do not save - } - - if (item->getThumbnailUUID() == LLUUID::null) - { - mOutputLog->appendText( - STRINGIZE( - "ITEM " << mItemNamesIDs.size() << "> " << - name << - " has no thumbnail" << - //id.asString() << - std::endl - ), false); - } -} - -void LLFloaterBulkyThumbs::onPasteItems() -{ - if (!LLClipboard::instance().hasContents()) - { - return; - } - - mOutputLog->appendText( - STRINGIZE( - "\n==== Pasting items from inventory ====" << - std::endl - ), false); - - std::vector<LLUUID> objects; - LLClipboard::instance().pasteFromClipboard(objects); - size_t count = objects.size(); - - for (size_t i = 0; i < count; i++) - { - const LLUUID& entry = objects.at(i); - - const LLInventoryCategory* cat = gInventory.getCategory(entry); - if (cat) - { - LLInventoryModel::cat_array_t cat_array; - LLInventoryModel::item_array_t item_array; - - LLIsType is_object(LLAssetType::AT_OBJECT); - gInventory.collectDescendentsIf(cat->getUUID(), - cat_array, - item_array, - LLInventoryModel::EXCLUDE_TRASH, - is_object); - - LLIsType is_bodypart(LLAssetType::AT_BODYPART); - gInventory.collectDescendentsIf(cat->getUUID(), - cat_array, - item_array, - LLInventoryModel::EXCLUDE_TRASH, - is_bodypart); - - LLIsType is_clothing(LLAssetType::AT_CLOTHING); - gInventory.collectDescendentsIf(cat->getUUID(), - cat_array, - item_array, - LLInventoryModel::EXCLUDE_TRASH, - is_clothing); - - for (size_t i = 0; i < item_array.size(); i++) - { - LLViewerInventoryItem* item = item_array.at(i); - recordInventoryItemEntry(item); - } - } - - LLViewerInventoryItem* item = gInventory.getItem(entry); - if (item) - { - const LLAssetType::EType item_type = item->getType(); - if (item_type == LLAssetType::AT_OBJECT || item_type == LLAssetType::AT_BODYPART || item_type == LLAssetType::AT_CLOTHING) - { - recordInventoryItemEntry(item); - } - } - } - - mOutputLog->setCursorAndScrollToEnd(); - - mMergeItemsTexturesBtn->setEnabled(true); -} - -void LLFloaterBulkyThumbs::recordTextureItemEntry(LLViewerInventoryItem* item) -{ - const std::string name = item->getName(); - - std::map<std::string, LLUUID>::iterator iter = mTextureNamesIDs.find(name); - if (iter == mTextureNamesIDs.end()) - { - LLUUID id = item->getAssetUUID(); - mTextureNamesIDs.insert({name, id}); - - mOutputLog->appendText( - STRINGIZE( - "TEXTURE " << mTextureNamesIDs.size() << "> " << - name << - //" | " << - //id.asString() << - std::endl - ), false); - } - else - { - // dupe - do not save - } -} - -void LLFloaterBulkyThumbs::onPasteTextures() -{ - if (!LLClipboard::instance().hasContents()) - { - return; - } - - mOutputLog->appendText( - STRINGIZE( - "\n==== Pasting textures from inventory ====" << - std::endl - ), false); - - std::vector<LLUUID> objects; - LLClipboard::instance().pasteFromClipboard(objects); - size_t count = objects.size(); - - for (size_t i = 0; i < count; i++) - { - const LLUUID& entry = objects.at(i); - - const LLInventoryCategory* cat = gInventory.getCategory(entry); - if (cat) - { - LLInventoryModel::cat_array_t cat_array; - LLInventoryModel::item_array_t item_array; - - LLIsType is_object(LLAssetType::AT_TEXTURE); - gInventory.collectDescendentsIf(cat->getUUID(), - cat_array, - item_array, - LLInventoryModel::EXCLUDE_TRASH, - is_object); - - for (size_t i = 0; i < item_array.size(); i++) - { - LLViewerInventoryItem* item = item_array.at(i); - recordTextureItemEntry(item); - } - } - - LLViewerInventoryItem* item = gInventory.getItem(entry); - if (item) - { - const LLAssetType::EType item_type = item->getType(); - if (item_type == LLAssetType::AT_TEXTURE) - { - recordTextureItemEntry(item); - } - } - } - - mOutputLog->setCursorAndScrollToEnd(); - - mMergeItemsTexturesBtn->setEnabled(true); -} - -void LLFloaterBulkyThumbs::onMergeItemsTextures() -{ - mOutputLog->appendText( - STRINGIZE( - "\n==== Matching items and textures for " << - mItemNamesIDs.size() << - " entries ====" << - std::endl - ), false); - - std::map<std::string, LLUUID>::iterator item_iter = mItemNamesIDs.begin(); - size_t index = 1; - - while (item_iter != mItemNamesIDs.end()) - { - std::string item_name = (*item_iter).first; - - mOutputLog->appendText( - STRINGIZE( - "MATCHING ITEM (" << index++ << "/" << mItemNamesIDs.size() << ") " << item_name << "> " - ), false); - - std::map<std::string, LLUUID>::iterator texture_iter = mTextureNamesIDs.find(item_name); - if (texture_iter != mTextureNamesIDs.end()) - { - mOutputLog->appendText( - STRINGIZE( - "MATCHED" << - std::endl - ), false); - - mNameItemIDTextureId.insert({item_name, {(*item_iter).second, (*texture_iter).second}}); - } - else - { - mOutputLog->appendText( - STRINGIZE( - "NO MATCH FOUND" << - std::endl - ), false); - } - - ++item_iter; - } - - mOutputLog->appendText( - STRINGIZE( - "==== Matched list of items and textures has " << - mNameItemIDTextureId.size() << - " entries ====" << - std::endl - ), true); - - //std::map<std::string, std::pair< LLUUID, LLUUID>>::iterator iter = mNameItemIDTextureId.begin(); - //while (iter != mNameItemIDTextureId.end()) - //{ - // std::string output_line = (*iter).first; - // output_line += "\n"; - // output_line += "item ID: "; - // output_line += ((*iter).second).first.asString(); - // output_line += "\n"; - // output_line += "thumbnail texture ID: "; - // output_line += ((*iter).second).second.asString(); - // output_line += "\n"; - // mOutputLog->appendText(output_line, true); - - // ++iter; - //} - mOutputLog->setCursorAndScrollToEnd(); - - mWriteThumbnailsBtn->setEnabled(true); -} - -#if 1 -// *TODO$: LLInventoryCallback should be deprecated to conform to the new boost::bind/coroutine model. -// temp code in transition -void bulkyInventoryCb(LLPointer<LLInventoryCallback> cb, LLUUID id) -{ - if (cb.notNull()) - { - cb->fire(id); - } -} -#endif - -bool writeThumbnailID(LLUUID item_id, LLUUID thumbnail_asset_id) -{ - if (AISAPI::isAvailable()) - { - - LLSD updates; - updates["thumbnail"] = LLSD().with("asset_id", thumbnail_asset_id.asString()); - - LLPointer<LLInventoryCallback> cb; - - AISAPI::completion_t cr = boost::bind(&bulkyInventoryCb, cb, _1); - AISAPI::UpdateItem(item_id, updates, cr); - - return true; - } - else - { - LL_WARNS() << "Unable to write inventory thumbnail because the AIS API is not available" << LL_ENDL; - return false; - } -} - -void LLFloaterBulkyThumbs::onWriteThumbnails() -{ - mOutputLog->appendText( - STRINGIZE( - "\n==== Writing thumbnails for " << - mNameItemIDTextureId.size() << - " entries ====" << - std::endl - ), false); - - std::map<std::string, std::pair< LLUUID, LLUUID>>::iterator iter = mNameItemIDTextureId.begin(); - size_t index = 1; - - while (iter != mNameItemIDTextureId.end()) - { - mOutputLog->appendText( - STRINGIZE( - "WRITING THUMB (" << index++ << "/" << mNameItemIDTextureId.size() << ")> " << - (*iter).first << - "\n" << - "item ID: " << - ((*iter).second).first.asString() << - "\n" << - "thumbnail texture ID: " << - ((*iter).second).second.asString() << - "\n" - ), true); - - LLUUID item_id = ((*iter).second).first; - LLUUID thumbnail_asset_id = ((*iter).second).second; - - writeThumbnailID(item_id, thumbnail_asset_id); - - ++iter; - } - mOutputLog->setCursorAndScrollToEnd(); -} - -void LLFloaterBulkyThumbs::onDisplayThumbnaillessItems() -{ - //std::map<std::string, LLUUID>::iterator item_iter = mItemNamesIDs.begin(); - //size_t index = 1; - - //mOutputLog->appendText("======= Items with no thumbnail =======", false); - - //while (item_iter != mItemNamesIDs.end()) - //{ - // std::string item_name = (*item_iter).first; - - // //mOutputLog->appendText( - // // STRINGIZE( - // // "MATCHING ITEM (" << index++ << "/" << mItemNamesIDs.size() << ") " << item_name << "> " - // // ), false); - - // std::map<std::string, LLUUID>::iterator texture_iter = mTextureNamesIDs.find(item_name); - // if (texture_iter == mTextureNamesIDs.end()) - // { - // mOutputLog->appendText( - // STRINGIZE( - // "MISSING:" << - - // std::endl - // ), false); - - // } - //} -} diff --git a/indra/newview/llfloaterbulkythumbs.h b/indra/newview/llfloaterbulkythumbs.h deleted file mode 100644 index 10133553a6..0000000000 --- a/indra/newview/llfloaterbulkythumbs.h +++ /dev/null @@ -1,72 +0,0 @@ -/** - * @file llfloaterbulkythumbs.h - * @author Callum Prentice - * @brief Helper floater for bulk processing of inventory thumbnails - * - * $LicenseInfo:firstyear=2008&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$ - */ - -#ifndef LL_LLFLOATERBULKYTHUMBS_H -#define LL_LLFLOATERBULKYTHUMBS_H - -#include "llfloater.h" -class LLTextEditor; -class LLMediaCtrl; -class LLViewerInventoryItem; -class LLUUID; - -class LLFloaterBulkyThumbs: - public LLFloater -{ - friend class LLFloaterReg; - private: - LLFloaterBulkyThumbs(const LLSD& key); - BOOL postBuild() override; - ~LLFloaterBulkyThumbs(); - - LLUICtrl* mPasteItemsBtn; - void onPasteItems(); - - LLUICtrl* mPasteTexturesBtn; - void onPasteTextures(); - - LLTextEditor* mOutputLog; - - LLUICtrl* mMergeItemsTexturesBtn; - void onMergeItemsTextures(); - - LLUICtrl* mWriteThumbnailsBtn; - void onWriteThumbnails(); - - LLUICtrl* mDisplayThumbnaillessItemsBtn; - void onDisplayThumbnaillessItems(); - - void recordInventoryItemEntry(LLViewerInventoryItem* item); - void recordTextureItemEntry(LLViewerInventoryItem* item); - - std::map<std::string, LLUUID> mItemNamesIDs; - std::map<std::string, LLUUID> mTextureNamesIDs; - - std::map<std::string, std::pair< LLUUID, LLUUID>> mNameItemIDTextureId; -}; - -#endif // LL_LLFLOATERBULKYTHUMBS_H diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 093fc0d7b3..1721ce4b1e 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -47,7 +47,6 @@ #include "llfloaterbeacons.h" #include "llfloaterbuildoptions.h" #include "llfloaterbulkpermission.h" -#include "llfloaterbulkythumbs.h" #include "llfloaterbump.h" #include "llfloaterbuy.h" #include "llfloaterbuycontents.h" @@ -330,8 +329,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("build", "floater_tools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTools>); LLFloaterReg::add("build_options", "floater_build_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterBuildOptions>); LLFloaterReg::add("bumps", "floater_bumps.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterBump>); - LLFloaterReg::add("bulky_thumbs", "floater_bulky_thumbs.xml", (LLFloaterBuildFunc) &LLFloaterReg::build<LLFloaterBulkyThumbs>); - + LLFloaterReg::add("camera", "floater_camera.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCamera>); LLFloaterReg::add("camera_presets", "floater_camera_presets.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCameraPresets>); LLFloaterReg::add("chat_voice", "floater_voice_chat_volume.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChatVoiceVolume>); diff --git a/indra/newview/skins/default/xui/en/floater_bulky_thumbs.xml b/indra/newview/skins/default/xui/en/floater_bulky_thumbs.xml deleted file mode 100644 index d23fd1247f..0000000000 --- a/indra/newview/skins/default/xui/en/floater_bulky_thumbs.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<floater - legacy_header_height="18" - can_resize="true" - height="600" - layout="topleft" - min_height="175" - min_width="500" - name="contents" - help_topic="contents" - title="BULKY THUMBS" - width="500"> - <button - follows="left|top" - height="20" - label="Paste items from Inventory" - layout="topleft" - left="10" - name="paste_items_btn" - top="26 " - width="200" /> - <button - follows="left|top" - height="20" - label="Paste textures from Inventory" - layout="topleft" - left="250" - name="paste_textures_btn" - top="26 " - width="200" /> - <text_editor - height="510" - follows="top|left|right|bottom" - left="10" - name="output_log" - top_pad="10" - width="480"> - </text_editor> - <button - follows="left|bottom" - height="20" - label="Merge items and textures" - layout="bottomleft" - left="10" - name="merge_items_textures" - bottom="8" - width="100" /> - <button - follows="left|bottom" - height="20" - label="Write Thumbnails" - layout="bottomleft" - left="150" - name="write_items_thumbnails" - bottom="8" - width="100" /> - <button - follows="left|bottom" - height="20" - label="Missing Thumbnails" - layout="bottomleft" - left="250" - name="display_thumbless_items" - bottom="8" - width="100" /> -</floater>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 1fe26cee2c..ce5b2e3cd8 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3485,14 +3485,6 @@ function="World.EnvPreset" function="Advanced.WebContentTest" parameter="http://duckduckgo.com"/> </menu_item_call> - <menu_item_call - label="Bulky Thumbs" - name="Bulky Thumbs" - shortcut="control|alt|shift|Y"> - <menu_item_call.on_click - function="Floater.Show" - parameter="bulky_thumbs" /> - </menu_item_call> <menu_item_call label="Inventory Thumbnails Helper" name="Inventory Thumbnails Helper" |