From cd4c44fe7a0873d6845c40440fccb5755ba02c9f Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Fri, 2 Jul 2010 14:56:12 -0400 Subject: EXT-8198 Incorrect right-click options for library folders Only adding "--no options--" when right-click context menu is empty. Normal priority bug but rather annoying visually. --- indra/newview/llinventorybridge.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 96dba5717a..79a18115a7 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2617,11 +2617,6 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) gInventory.addObserver(fetch); } } - else - { - mItems.push_back(std::string("--no options--")); - mDisabledItems.push_back(std::string("--no options--")); - } // Preemptively disable system folder removal if more than one item selected. if ((flags & FIRST_SELECTED_ITEM) == 0) @@ -2635,6 +2630,12 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) mDisabledItems.push_back(std::string("Share")); } + if (mItems.empty()) + { + mItems.push_back(std::string("--no options--")); + mDisabledItems.push_back(std::string("--no options--")); + } + hide_context_entries(menu, mItems, mDisabledItems); } -- cgit v1.2.3 From ae8d5132850783cab152d8b0cc3a431e249d6844 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Fri, 2 Jul 2010 16:11:06 -0400 Subject: EXT-6701 FIXED Script Floater shows "MissingString..." when object is attached to invalid attachment index Added string entry. --- indra/newview/skins/default/xui/en/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index f7611b6833..1e8d0d2fe5 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2159,6 +2159,7 @@ Clears (deletes) the media and all params from the given face. HUD Bottom Left HUD Bottom HUD Bottom Right + Invalid Attachment Point Line [LINE], Column [COLUMN] -- cgit v1.2.3 From d7a1237f87048a49cf047b501987fcd82dd052e0 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Tue, 6 Jul 2010 12:01:25 -0400 Subject: EXT-8247 FIXED In-world object info in Edit->General menu clipped Trivial change to move down the Name: field by a few pixels. --- indra/newview/skins/default/xui/en/floater_tools.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 34c1b25f8c..194a93977f 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -823,7 +823,7 @@ height="10" left="10" name="Name:" - top="0" + top="5" width="90"> Name: -- cgit v1.2.3 From 301b670c2eadbc6f8b6f5d2df2c8901e625fccfb Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 6 Jul 2010 12:32:24 -0400 Subject: Added back static VFS cache, removed artwork-common tarball (which is currently only used for those two smallish files) --- indra/newview/CMakeLists.txt | 2 -- indra/newview/app_settings/static_data.db2 | Bin 0 -> 6279234 bytes indra/newview/app_settings/static_index.db2 | Bin 0 -> 21658 bytes 3 files changed, 2 deletions(-) create mode 100644 indra/newview/app_settings/static_data.db2 create mode 100644 indra/newview/app_settings/static_index.db2 diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 92f701551b..65502209f7 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1321,8 +1321,6 @@ set(viewer_APPSETTINGS_FILES ${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg ) -use_prebuilt_binary(artwork-common) - source_group("App Settings" FILES ${viewer_APPSETTINGS_FILES}) set_source_files_properties(${viewer_APPSETTINGS_FILES} diff --git a/indra/newview/app_settings/static_data.db2 b/indra/newview/app_settings/static_data.db2 new file mode 100644 index 0000000000..2733d50595 Binary files /dev/null and b/indra/newview/app_settings/static_data.db2 differ diff --git a/indra/newview/app_settings/static_index.db2 b/indra/newview/app_settings/static_index.db2 new file mode 100644 index 0000000000..8b37cd7692 Binary files /dev/null and b/indra/newview/app_settings/static_index.db2 differ -- cgit v1.2.3 From 9d96da4b94c875b8f32e9893f37142ba07b0c453 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Tue, 6 Jul 2010 12:44:43 -0400 Subject: EXT-8249 FIX coverity fix - eliminating fallthrough for switch statement Code reviewed by Seraph --- indra/newview/llappearancemgr.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 17efc28a6a..f8cff42412 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -989,16 +989,15 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up { removeCOFItemLinks(gAgentWearables.getWearableItemID(item_to_wear->getWearableType(), wearable_count-1), false); } + addCOFItemLink(item_to_wear, do_update); } + break; case LLAssetType::AT_BODYPART: // TODO: investigate wearables may not be loaded at this point EXT-8231 // Remove the existing wearables of the same type. // Remove existing body parts anyway because we must not be able to wear e.g. two skins. - if (item_to_wear->getType() == LLAssetType::AT_BODYPART) - { - removeCOFLinksOfType(item_to_wear->getWearableType(), false); - } + removeCOFLinksOfType(item_to_wear->getWearableType(), false); addCOFItemLink(item_to_wear, do_update); break; -- cgit v1.2.3 From d1d38d6e9d6254d4ea40cc486426d2d8c528f58a Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 6 Jul 2010 14:34:31 -0400 Subject: Updated static cache files from hg.lindenlab.com/vir/viewer-cache --- indra/newview/app_settings/static_data.db2 | Bin 6279234 -> 576578 bytes indra/newview/app_settings/static_index.db2 | Bin 21658 -> 9894 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/indra/newview/app_settings/static_data.db2 b/indra/newview/app_settings/static_data.db2 index 2733d50595..f85aa81601 100644 Binary files a/indra/newview/app_settings/static_data.db2 and b/indra/newview/app_settings/static_data.db2 differ diff --git a/indra/newview/app_settings/static_index.db2 b/indra/newview/app_settings/static_index.db2 index 8b37cd7692..a5440f96f2 100644 Binary files a/indra/newview/app_settings/static_index.db2 and b/indra/newview/app_settings/static_index.db2 differ -- cgit v1.2.3 From ced040f8aef5a764c2e6fb261d5bbecd4df75064 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Tue, 6 Jul 2010 15:47:17 -0400 Subject: EXT-8244 FIXED Not wearable links could be added to COF by drag-n-drop in the Inventory Fixed the dnd behavior so that you can only drag appropriate items into the COF or Outfits folder. Did a bit of superficial code cleanup in terms of adding comments and relocating blocks of code. The actual coding fix was pretty small despite the diff; most of the diff is superficial cleanup. --- indra/newview/llinventorybridge.cpp | 135 ++++++++++++++++++++++++------------ 1 file changed, 90 insertions(+), 45 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 79a18115a7..ec4ef422e2 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2848,6 +2848,9 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response return false; } +// This is used both for testing whether an item can be dropped +// into the folder, as well as performing the actual drop, depending +// if drop == TRUE. BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, BOOL drop) { @@ -2867,8 +2870,23 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, LLViewerObject* object = NULL; if(LLToolDragAndDrop::SOURCE_AGENT == source) { + const LLUUID &trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); + const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT); + const LLUUID& favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE); + + const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id); + const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); + const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); + const BOOL move_is_outof_current_outfit = LLAppearanceMgr::instance().getIsInCOF(inv_item->getUUID()); + const BOOL folder_allows_reorder = (mUUID == favorites_id); + + //-------------------------------------------------------------------------------- + // Determine if item can be moved. + // + BOOL is_movable = TRUE; - switch( inv_item->getActualType() ) + + switch (inv_item->getActualType()) { case LLAssetType::AT_CATEGORY: is_movable = !LLFolderType::lookupIsProtectedType(((LLInventoryCategory*)inv_item)->getPreferredType()); @@ -2876,41 +2894,50 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, default: break; } - - const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); - const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id); - const LLUUID current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT); - const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); - const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); - const BOOL move_is_outof_current_outfit = LLAppearanceMgr::instance().getIsInCOF(inv_item->getUUID()); - // Can't explicitly drag things out of the COF. if (move_is_outof_current_outfit) { is_movable = FALSE; } - - if(is_movable && move_is_into_trash) + if (move_is_into_trash) { - is_movable = inv_item->getIsLinkType() || !get_is_item_worn(inv_item->getUUID()); + is_movable &= inv_item->getIsLinkType() || !get_is_item_worn(inv_item->getUUID()); } - - if ( is_movable ) + if (is_movable) { // Don't allow creating duplicates in the Calling Card/Friends // subfolders, see bug EXT-1599. Check is item direct descendent // of target folder and forbid item's movement if it so. // Note: isItemDirectDescendentOfCategory checks if // passed category is in the Calling Card/Friends folder - is_movable = ! LLFriendCardsManager::instance() - .isObjDirectDescendentOfCategory (inv_item, getCategory()); + is_movable &= !LLFriendCardsManager::instance().isObjDirectDescendentOfCategory(inv_item, getCategory()); + } + + // + //-------------------------------------------------------------------------------- + + //-------------------------------------------------------------------------------- + // Determine if item can be moved & dropped + // + + accept = TRUE; + + if (!is_movable) + accept = FALSE; + if ((mUUID == inv_item->getParentUUID()) && !folder_allows_reorder) + accept = FALSE; + if (move_is_into_current_outfit || move_is_into_outfit) + { + if ((inv_item->getInventoryType() != LLInventoryType::IT_WEARABLE) && + (inv_item->getInventoryType() != LLInventoryType::IT_GESTURE) && + (inv_item->getInventoryType() != LLInventoryType::IT_OBJECT)) + accept = FALSE; + } + if (move_is_into_current_outfit && get_is_item_worn(inv_item->getUUID())) + { + accept = FALSE; } - const LLUUID& favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE); - const BOOL folder_allows_reorder = (mUUID == favorites_id); - - // we can move item inside a folder only if this folder is Favorites. See EXT-719 - accept = is_movable && ((mUUID != inv_item->getParentUUID()) || folder_allows_reorder); if(accept && drop) { if (inv_item->getType() == LLAssetType::AT_GESTURE @@ -2918,10 +2945,8 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, { LLGestureMgr::instance().deactivateGesture(inv_item->getUUID()); } - // If an item is being dragged between windows, unselect - // everything in the active window so that we don't follow - // the selection to its new location (which is very - // annoying). + // If an item is being dragged between windows, unselect everything in the active window + // so that we don't follow the selection to its new location (which is very annoying). LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE); if (active_panel) { @@ -2932,7 +2957,12 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, } } - // if dragging from/into favorites folder only reorder items + //-------------------------------------------------------------------------------- + // Destination folder logic + // + + // REORDER + // (only reorder the item) if ((mUUID == inv_item->getParentUUID()) && folder_allows_reorder) { LLInventoryPanel* panel = dynamic_cast(mInventoryPanel.get()); @@ -2944,7 +2974,10 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, gInventory.rearrangeFavoriteLandmarks(srcItemId, destItemId); } } - else if (favorites_id == mUUID) // if target is the favorites folder we use copy + + // FAVORITES folder + // (copy the item) + else if (favorites_id == mUUID) { // use callback to rearrange favorite landmarks after adding // to have new one placed before target (on which it was dropped). See EXT-4312. @@ -2964,38 +2997,50 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, std::string(), cb); } + // CURRENT OUTFIT or OUTFIT folder + // (link the item) else if (move_is_into_current_outfit || move_is_into_outfit) { - // BAP - should skip if dup. - if (move_is_into_current_outfit) + if ((inv_item->getInventoryType() == LLInventoryType::IT_WEARABLE) || + (inv_item->getInventoryType() == LLInventoryType::IT_GESTURE) || + (inv_item->getInventoryType() == LLInventoryType::IT_OBJECT)) { - LLAppearanceMgr::instance().addCOFItemLink(inv_item); - } - else - { - LLPointer cb = NULL; - link_inventory_item( - gAgent.getID(), - inv_item->getLinkedUUID(), - mUUID, - inv_item->getName(), - inv_item->getDescription(), - LLAssetType::AT_LINK, - cb); + // BAP - should skip if dup. + if (move_is_into_current_outfit) + { + LLAppearanceMgr::instance().addCOFItemLink(inv_item); + } + else + { + LLPointer cb = NULL; + link_inventory_item( + gAgent.getID(), + inv_item->getLinkedUUID(), + mUUID, + inv_item->getName(), + inv_item->getDescription(), + LLAssetType::AT_LINK, + cb); + } } } + // NORMAL or TRASH folder + // (move the item, restamp if into trash) else { - // restamp if the move is into the trash. LLInvFVBridge::changeItemParent( model, (LLViewerInventoryItem*)inv_item, mUUID, move_is_into_trash); } + + // + //-------------------------------------------------------------------------------- + } } - else if(LLToolDragAndDrop::SOURCE_WORLD == source) + else if (LLToolDragAndDrop::SOURCE_WORLD == source) { // Make sure the object exists. If we allowed dragging from // anonymous objects, it would be possible to bypass @@ -3013,7 +3058,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item, BOOL is_move = FALSE; if((perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID()) && perm.allowTransferTo(gAgent.getID()))) -// || gAgent.isGodlike()) + // || gAgent.isGodlike()) { accept = TRUE; -- cgit v1.2.3 From fcfaa698215c7d8516c5bc175dc9dd19996f32ca Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Tue, 6 Jul 2010 18:13:46 -0400 Subject: EXT-8020 FIX outfit textures are blurry on opening outfit editor We believe this fix should help with the blurry textures - we weren't updating our local bake of your avatars' appearance. Added a line to trigger this refresh. Code reviewed by Seraph --- indra/newview/llagentcamera.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index ec3c7452e5..c70bbb985f 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -2310,6 +2310,7 @@ void LLAgentCamera::changeCameraToCustomizeAvatar() setAnimationDuration(turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP); } + gAgentAvatarp->invalidateAll(); gAgentAvatarp->updateMeshTextures(); } } -- cgit v1.2.3 From b50ab890529d408bf36e7874a217e687a5bbc46f Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Tue, 6 Jul 2010 16:29:07 -0600 Subject: EXT-7983: FIXED: viewer gets confused about position of objects that cross a region boundary. worked together with davep. --- indra/newview/llviewerobject.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 9027caa4ce..9a2866832a 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -762,7 +762,17 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, // Coordinates of objects on simulators are region-local. U64 region_handle; mesgsys->getU64Fast(_PREHASH_RegionData, _PREHASH_RegionHandle, region_handle); - mRegionp = LLWorld::getInstance()->getRegionFromHandle(region_handle); + + { + LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(region_handle); + if(regionp != mRegionp && regionp && mRegionp) + { + LLVector3 delta_pos = mRegionp->getOriginAgent() - regionp->getOriginAgent(); + setPosition(getPosition() + delta_pos) ; //update the region position immediately. + } + mRegionp = regionp ; + } + if (!mRegionp) { U32 x, y; -- cgit v1.2.3