From 701ae96ff685847c8ddb46a4460fd70940733255 Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Thu, 13 Dec 2018 12:37:18 +0200 Subject: [PATCH 01/13] SL-10228 FIXED HTTP/HTTPS URL in the object name is represented as a hyperlink in message floater --- .../skins/default/xui/en/notifications.xml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index cc57e1375a..23a8d21f8a 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -1845,7 +1845,7 @@ You are not allowed to terraform parcel [PARCEL]. name="CannotCopyWarning" type="alertmodal"> You do not have permission to copy the following items: -[ITEMS] +<nolink>[ITEMS]</nolink> and will lose it from your inventory if you give it away. Do you really want to offer these items? confirm fail -Copy failed because you lack permission to copy the object '[OBJ_NAME]'. +Copy failed because you lack permission to copy the object <nolink>'[OBJ_NAME]'</nolink>. fail -Copy failed because the object '[OBJ_NAME]' cannot be transferred to you. +Copy failed because the object <nolink>'[OBJ_NAME]'</nolink> cannot be transferred to you. fail -Copy failed because the object '[OBJ_NAME]' contributes to navmesh. +Copy failed because the object <nolink>'[OBJ_NAME]'</nolink> contributes to navmesh. fail -Cannot save '[OBJ_NAME]' to object contents because the object it was rezzed from no longer exists. +Cannot save <nolink>'[OBJ_NAME]'</nolink> to object contents because the object it was rezzed from no longer exists. fail -Cannot save '[OBJ_NAME]' to object contents because you do not have permission to modify the object '[DEST_NAME]'. +Cannot save <nolink>'[OBJ_NAME]'</nolink> to object contents because you do not have permission to modify the object <nolink>'[DEST_NAME]'</nolink>. fail -Cannot save '[OBJ_NAME]' back to inventory -- this operation has been disabled. +Cannot save <nolink>'[OBJ_NAME]'</nolink> back to inventory -- this operation has been disabled. fail -You cannot copy your selection because you do not have permission to copy the object '[OBJ_NAME]'. +You cannot copy your selection because you do not have permission to copy the object <nolink>'[OBJ_NAME]'</nolink>. fail -You cannot copy your selection because the object '[OBJ_NAME]' is not transferrable. +You cannot copy your selection because the object <nolink>'[OBJ_NAME]'</nolink> is not transferrable. fail -You cannot copy your selection because the object '[OBJ_NAME]' is not transferrable. +You cannot copy your selection because the object <nolink>'[OBJ_NAME]'</nolink> is not transferrable. fail -Removal of the object '[OBJ_NAME]' from the simulator is disallowed by the permissions system. +Removal of the object <nolink>'[OBJ_NAME]'</nolink> from the simulator is disallowed by the permissions system. fail -Cannot save your selection because you do not have permission to modify the object '[OBJ_NAME]'. +Cannot save your selection because you do not have permission to modify the object <nolink>'[OBJ_NAME]'</nolink>. fail -Cannot save your selection because the object '[OBJ_NAME]' is not copyable. +Cannot save your selection because the object <nolink>'[OBJ_NAME]'</nolink> is not copyable. fail -You cannot take your selection because you do not have permission to modify the object '[OBJ_NAME]'. +You cannot take your selection because you do not have permission to modify the object <nolink>'[OBJ_NAME]'</nolink>. Date: Wed, 12 Dec 2018 20:21:21 +0200 Subject: [PATCH 02/13] SL-10231 Bug in texture cache size computation --- indra/newview/lltexturecache.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 633e025478..eb4b914e18 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -1038,11 +1038,11 @@ S64 LLTextureCache::initCache(ELLPath location, S64 max_size, BOOL texture_cache { llassert_always(getPending() == 0) ; //should not start accessing the texture cache before initialized. - S64 header_size = (max_size / 100) * 36; //0.36 * max_size - S64 max_entries = header_size / (TEXTURE_CACHE_ENTRY_SIZE + TEXTURE_FAST_CACHE_ENTRY_SIZE); + S64 entries_size = (max_size * 36) / 100; //0.36 * max_size + S64 max_entries = entries_size / (TEXTURE_CACHE_ENTRY_SIZE + TEXTURE_FAST_CACHE_ENTRY_SIZE); sCacheMaxEntries = (S32)(llmin((S64)sCacheMaxEntries, max_entries)); - header_size = sCacheMaxEntries * TEXTURE_CACHE_ENTRY_SIZE; - max_size -= header_size; + entries_size = sCacheMaxEntries * (TEXTURE_CACHE_ENTRY_SIZE + TEXTURE_FAST_CACHE_ENTRY_SIZE); + max_size -= entries_size; if (sCacheMaxTexturesSize > 0) sCacheMaxTexturesSize = llmin(sCacheMaxTexturesSize, max_size); else From 80054757ed0eee816c253a7707576252b7e89d9e Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 13 Dec 2018 00:10:52 +0200 Subject: [PATCH 03/13] SL-1481 Time limit should be per object --- indra/newview/llviewerobject.cpp | 14 +++++++------- indra/newview/llviewerobject.h | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 079a9f0372..007adf2a72 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -261,6 +261,7 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe mLastInterpUpdateSecs(0.f), mLastMessageUpdateSecs(0.f), mLatestRecvPacketID(0), + mRegionCrossExpire(0), mData(NULL), mAudioSourcep(NULL), mAudioGain(1.f), @@ -2636,8 +2637,7 @@ void LLViewerObject::interpolateLinearMotion(const F64SecondsImplicit& frame_tim new_pos.mV[VZ] = llmax(min_height, new_pos.mV[VZ]); // Check to see if it's going off the region - LLVector3 temp(new_pos); - static F64SecondsImplicit region_cross_expire = 0; // frame time we detected region crossing in + wait time + LLVector3 temp(new_pos.mV[VX], new_pos.mV[VY], 0.f); if (temp.clamp(0.f, mRegionp->getWidth())) { // Going off this region, so see if we might end up on another region LLVector3d old_pos_global = mRegionp->getPosGlobalFromRegion(getPositionRegion()); @@ -2664,28 +2664,28 @@ void LLViewerObject::interpolateLinearMotion(const F64SecondsImplicit& frame_tim // Note: theoretically we can find time from velocity, acceleration and // distance from border to new position, but it is not going to work // if 'phase_out' activates - if (region_cross_expire == 0) + if (mRegionCrossExpire == 0) { // Workaround: we can't accurately figure out time when we cross border // so just write down time 'after the fact', it is far from optimal in // case of lags, but for lags sMaxUpdateInterpolationTime will kick in first LL_DEBUGS("Interpolate") << "Predicted region crossing, new position " << new_pos << LL_ENDL; - region_cross_expire = frame_time + sMaxRegionCrossingInterpolationTime; + mRegionCrossExpire = frame_time + sMaxRegionCrossingInterpolationTime; } - else if (frame_time > region_cross_expire) + else if (frame_time > mRegionCrossExpire) { // Predicting crossing over 1s, stop motion // Stop motion LL_DEBUGS("Interpolate") << "Predicting region crossing for too long, stopping at " << new_pos << LL_ENDL; new_v.clear(); setAcceleration(LLVector3::zero); - region_cross_expire = 0; + mRegionCrossExpire = 0; } } } else { - region_cross_expire = 0; + mRegionCrossExpire = 0; } // Set new position and velocity diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 990c392531..8b1535851e 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -772,6 +772,7 @@ protected: F64Seconds mLastInterpUpdateSecs; // Last update for purposes of interpolation F64Seconds mLastMessageUpdateSecs; // Last update from a message from the simulator TPACKETID mLatestRecvPacketID; // Latest time stamp on message from simulator + F64SecondsImplicit mRegionCrossExpire; // frame time we detected region crossing in + wait time // extra data sent from the sim...currently only used for tree species info U8* mData; From 5111e0c921d17b83b41aef02b6334a8361ce1181 Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Thu, 13 Dec 2018 18:21:11 +0200 Subject: [PATCH 04/13] SL-10229 FIXED Group icon doesn't display by default in the People and Profile floaters after creating new group --- indra/newview/llpanelgroupgeneral.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index f85a2ffbc1..b53cd222e7 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -461,11 +461,12 @@ bool LLPanelGroupGeneral::createGroupCallback(const LLSD& notification, const LL // Yay! We are making a new group! U32 enrollment_fee = (mCtrlEnrollmentFee->get() ? (U32) mSpinEnrollmentFee->get() : 0); - + LLUUID insignia_id = mInsignia->getImageItemID().isNull() ? LLUUID::null : mInsignia->getImageAssetID(); + LLGroupMgr::getInstance()->sendCreateGroupRequest(mGroupNameEditor->getText(), mEditCharter->getText(), mCtrlShowInGroupList->get(), - mInsignia->getImageAssetID(), + insignia_id, enrollment_fee, mCtrlOpenEnrollment->get(), false, From bf2efcf43e5efaf91220a0c77f3db792636edeb1 Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Fri, 14 Dec 2018 16:48:54 +0200 Subject: [PATCH 05/13] SL-10233 FIXED 'Default' button doesn't work in 'Pick:Texture' floater for multiple selections with different textures --- indra/newview/lltexturectrl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index a5a2eec246..1a2a10f721 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -131,7 +131,7 @@ LLFloaterTexturePicker::~LLFloaterTexturePicker() void LLFloaterTexturePicker::setImageID(const LLUUID& image_id, bool set_selection /*=true*/) { - if( mImageAssetID != image_id && mActive) + if( ((mImageAssetID != image_id) || mTentative) && mActive) { mNoCopyTextureSelected = FALSE; mViewModel->setDirty(); // *TODO: shouldn't we be using setValue() here? From 514e4f661bbf4355ead4e60288c0075cc945b597 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 13 Dec 2018 20:01:01 +0200 Subject: [PATCH 06/13] SL-10236 The "Attach To", "Attach To HUD", and "Wear" options aren't greyed out --- indra/newview/llinventorybridge.cpp | 5 ++++- indra/newview/lloutfitslist.cpp | 21 +++++++++++++++++++-- indra/newview/llviewermenu.cpp | 18 ++++++------------ 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 1987e15850..e7367d5ced 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -7344,7 +7344,10 @@ void LLFolderViewGroupedItemBridge::groupFilterContextMenu(folder_view_item_dequ { if (!LLAppearanceMgr::instance().canAddWearables(ids) && canWearSelected(ids)) { - disabled_items.push_back(std::string("Wearable Add")); + disabled_items.push_back(std::string("Wearable And Object Wear")); + disabled_items.push_back(std::string("Wearable Add")); + disabled_items.push_back(std::string("Attach To")); + disabled_items.push_back(std::string("Attach To HUD")); } } disable_context_entries_if_present(menu, disabled_items); diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index 892fa385d7..f2a284a561 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -621,8 +621,14 @@ void LLOutfitsList::applyFilterToTab( bool LLOutfitsList::canWearSelected() { + if (!isAgentAvatarValid()) + { + return false; + } + uuid_vec_t selected_items; getSelectedItemsUUIDs(selected_items); + S32 nonreplacable_objects = 0; for (uuid_vec_t::const_iterator it = selected_items.begin(); it != selected_items.end(); ++it) { @@ -633,10 +639,21 @@ bool LLOutfitsList::canWearSelected() { return false; } + + const LLViewerInventoryItem* item = gInventory.getItem(id); + if (!item) + { + return false; + } + + if (item->getType() == LLAssetType::AT_OBJECT) + { + nonreplacable_objects++; + } } - // All selected items can be worn. - return true; + // All selected items can be worn. But do we have enough space for them? + return nonreplacable_objects == 0 || gAgentAvatarp->canAttachMoreObjects(nonreplacable_objects); } void LLOutfitsList::wearSelectedItems() diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 6c52f118ad..ba68ce4cf4 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -7068,6 +7068,10 @@ BOOL object_selected_and_point_valid() BOOL object_is_wearable() { + if (!isAgentAvatarValid()) + { + return FALSE; + } if (!object_selected_and_point_valid()) { return FALSE; @@ -7076,17 +7080,7 @@ BOOL object_is_wearable() { return FALSE; } - LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection(); - for (LLObjectSelection::valid_root_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_root_begin(); - iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++) - { - LLSelectNode* node = *iter; - if (node->mPermissions->getOwner() == gAgent.getID()) - { - return TRUE; - } - } - return FALSE; + return gAgentAvatarp->canAttachMoreObjects(); } @@ -9207,7 +9201,7 @@ void initialize_menus() enable.add("Object.EnableOpen", boost::bind(&enable_object_open)); enable.add("Object.EnableTouch", boost::bind(&enable_object_touch, _1)); enable.add("Object.EnableDelete", boost::bind(&enable_object_delete)); - enable.add("Object.EnableWear", boost::bind(&object_selected_and_point_valid)); + enable.add("Object.EnableWear", boost::bind(&object_is_wearable)); enable.add("Object.EnableStandUp", boost::bind(&enable_object_stand_up)); enable.add("Object.EnableSit", boost::bind(&enable_object_sit, _1)); From 2b2b6d40847d9d1bcd070a16003834389d954f32 Mon Sep 17 00:00:00 2001 From: maxim_productengine Date: Tue, 18 Dec 2018 11:41:32 +0200 Subject: [PATCH 07/13] SL-10251 show correct fee for 'save to disk' option on Japanese localization --- indra/newview/skins/default/xui/ja/panel_snapshot_options.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml b/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml index ebaab7c122..04dfc0176d 100644 --- a/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml +++ b/indra/newview/skins/default/xui/ja/panel_snapshot_options.xml @@ -1,7 +1,7 @@