From 39d1786baaaa6d9903efaf8f0ed34a0188be39d2 Mon Sep 17 00:00:00 2001 From: Nicky Date: Tue, 15 Apr 2014 22:02:05 +0200 Subject: [PATCH 01/57] Bump version to 4.6.5 --HG-- branch : Firestorm_4.6.5 --- indra/Version | 2 +- indra/newview/VIEWER_VERSION.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/indra/Version b/indra/Version index 46c7f4b92b..727afd90f9 100644 --- a/indra/Version +++ b/indra/Version @@ -1 +1 @@ -VERSION_VIEWER=4.6.2 +VERSION_VIEWER=4.6.5 diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index c78c4964ca..f18045d645 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -4.6.2 +4.6.5 From 3669af270424135dc27314727f6556fe0f6e292b Mon Sep 17 00:00:00 2001 From: andreylproductengine Date: Thu, 3 Apr 2014 19:37:52 +0300 Subject: [PATCH 02/57] MAINT-3870 FIXED The freelook animation never ends so the avatar never gets to the idle status... --HG-- branch : Firestorm_4.6.5 --- indra/newview/llviewerwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index be25753acd..07225754a9 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -3648,6 +3648,8 @@ void LLViewerWindow::updateUI() updateLayout(); + saveLastMouse(mCurrentMousePoint); + // cleanup unused selections when no modal dialogs are open if (LLModalDialog::activeCount() == 0) { From 48b68245c35adc3080e6feb0e9726d0e48aed943 Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 9 Apr 2014 17:06:19 -0700 Subject: [PATCH 03/57] MAINT-2034 : Terrain texture changes caused by changing texture elevation ranges or terraforming can not be seen until after relog or teleporting out and back to the region --HG-- branch : Firestorm_4.6.5 --- indra/newview/llviewerregion.cpp | 33 ++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 3946c33fee..035fa41be9 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1683,40 +1683,69 @@ void LLViewerRegion::unpackRegionHandshake() { LLUUID tmp_id; + bool changed = false; + + // Get the 4 textures for land msg->getUUID("RegionInfo", "TerrainDetail0", tmp_id); + changed |= (tmp_id != compp->getDetailTextureID(0)); compp->setDetailTextureID(0, tmp_id); + msg->getUUID("RegionInfo", "TerrainDetail1", tmp_id); + changed |= (tmp_id != compp->getDetailTextureID(1)); compp->setDetailTextureID(1, tmp_id); + msg->getUUID("RegionInfo", "TerrainDetail2", tmp_id); + changed |= (tmp_id != compp->getDetailTextureID(2)); compp->setDetailTextureID(2, tmp_id); + msg->getUUID("RegionInfo", "TerrainDetail3", tmp_id); + changed |= (tmp_id != compp->getDetailTextureID(3)); compp->setDetailTextureID(3, tmp_id); + // Get the start altitude and range values for land textures F32 tmp_f32; msg->getF32("RegionInfo", "TerrainStartHeight00", tmp_f32); + changed |= (tmp_f32 != compp->getStartHeight(0)); compp->setStartHeight(0, tmp_f32); + msg->getF32("RegionInfo", "TerrainStartHeight01", tmp_f32); + changed |= (tmp_f32 != compp->getStartHeight(1)); compp->setStartHeight(1, tmp_f32); + msg->getF32("RegionInfo", "TerrainStartHeight10", tmp_f32); + changed |= (tmp_f32 != compp->getStartHeight(2)); compp->setStartHeight(2, tmp_f32); + msg->getF32("RegionInfo", "TerrainStartHeight11", tmp_f32); + changed |= (tmp_f32 != compp->getStartHeight(3)); compp->setStartHeight(3, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange00", tmp_f32); + changed |= (tmp_f32 != compp->getHeightRange(0)); compp->setHeightRange(0, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange01", tmp_f32); + changed |= (tmp_f32 != compp->getHeightRange(1)); compp->setHeightRange(1, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange10", tmp_f32); + changed |= (tmp_f32 != compp->getHeightRange(2)); compp->setHeightRange(2, tmp_f32); + msg->getF32("RegionInfo", "TerrainHeightRange11", tmp_f32); + changed |= (tmp_f32 != compp->getHeightRange(3)); compp->setHeightRange(3, tmp_f32); // If this is an UPDATE (params already ready, we need to regenerate // all of our terrain stuff, by if (compp->getParamsReady()) { - //this line creates frame stalls on region crossing and removing it appears to have no effect - //getLand().dirtyAllPatches(); + // Update if the land changed + if (changed) + { + getLand().dirtyAllPatches(); + } } else { From 4639243be9df5fc9fbca8a5ee0599ba9b43a22e4 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 16 Apr 2014 22:37:33 +0200 Subject: [PATCH 04/57] FIRE-13447: RLV shownames restrictions can be circumvented via avatar pie/context menu --HG-- branch : Firestorm_4.6.5 --- indra/newview/skins/default/xui/en/menu_attachment_other.xml | 3 +++ indra/newview/skins/default/xui/en/menu_avatar_other.xml | 3 +++ .../newview/skins/default/xui/en/menu_pie_attachment_other.xml | 3 +++ indra/newview/skins/default/xui/en/menu_pie_avatar_other.xml | 3 +++ 4 files changed, 12 insertions(+) diff --git a/indra/newview/skins/default/xui/en/menu_attachment_other.xml b/indra/newview/skins/default/xui/en/menu_attachment_other.xml index bd40b64ab9..a8a923443c 100755 --- a/indra/newview/skins/default/xui/en/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/en/menu_attachment_other.xml @@ -28,6 +28,9 @@ name="Add to Set"> + + + + Date: Wed, 16 Apr 2014 22:38:39 +0200 Subject: [PATCH 05/57] Always register "RLV.EnableIfNot" enable registrar - RLV enabled check is done in callback method --HG-- branch : Firestorm_4.6.5 --- indra/newview/llviewermenu.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d3ed8fe9a9..e58bb1d8cc 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -10896,10 +10896,7 @@ void initialize_menus() // [RLVa:KB] - Checked: 2010-04-23 (RLVa-1.2.0g) | Added: RLVa-1.2.0 commit.add("RLV.ToggleEnabled", boost::bind(&rlvMenuToggleEnabled)); enable.add("RLV.CheckEnabled", boost::bind(&rlvMenuCheckEnabled)); - if (rlv_handler_t::isEnabled()) - { - enable.add("RLV.EnableIfNot", boost::bind(&rlvMenuEnableIfNot, _2)); - } + enable.add("RLV.EnableIfNot", boost::bind(&rlvMenuEnableIfNot, _2)); // [/RLVa:KB] // Toggle internal web browser From 73eb4e02af1cc805198f7850696b5f1ce38b9367 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 17 Apr 2014 09:28:15 +0200 Subject: [PATCH 06/57] FIRE-12229: Limited to 42 groups on an opensim grid; Patch by Cinder Roxley --HG-- branch : Firestorm_4.6.5 --- indra/newview/fscommon.cpp | 12 +++++++++++ indra/newview/fscommon.h | 1 + indra/newview/fsfloatercontacts.cpp | 7 +++---- indra/newview/llagent.cpp | 5 ++++- indra/newview/llfloatergroups.cpp | 16 ++++++++++---- indra/newview/llpanelpeople.cpp | 12 +++++++---- indra/newview/llstartup.cpp | 7 +++++++ indra/newview/llviewermessage.cpp | 5 ++++- .../xui/en/panel_fs_contacts_groups.xml | 21 +++++++++---------- .../newview/skins/default/xui/en/strings.xml | 4 ++++ 10 files changed, 65 insertions(+), 25 deletions(-) diff --git a/indra/newview/fscommon.cpp b/indra/newview/fscommon.cpp index 4673263a29..7f8e18bce7 100644 --- a/indra/newview/fscommon.cpp +++ b/indra/newview/fscommon.cpp @@ -56,6 +56,8 @@ static const std::string LL_SCOUT = "Scout"; static const std::string LL_TESTER = "Tester"; +extern S32 gMaxAgentGroups; + S32 FSCommon::sObjectAddMsg = 0; void reportToNearbyChat(const std::string& message) @@ -338,3 +340,13 @@ bool FSCommon::checkIsActionEnabled(const LLUUID& av_id, EFSRegistrarFunctionAct return false; } +LLSD FSCommon::populateGroupCount() +{ + LLStringUtil::format_map_t args; + S32 groupcount = gAgent.mGroups.count(); + args["[COUNT]"] = llformat("%d", groupcount); + args["[REMAINING]"] = llformat("%d", gMaxAgentGroups - groupcount); + LLUIString groupcountstring = LLTrans::getString((gMaxAgentGroups ? "groupcountstring" : "groupcountunlimitedstring"), args); + return LLSD(groupcountstring); +} + diff --git a/indra/newview/fscommon.h b/indra/newview/fscommon.h index 9f3adf20f1..403fd4c440 100644 --- a/indra/newview/fscommon.h +++ b/indra/newview/fscommon.h @@ -76,6 +76,7 @@ namespace FSCommon extern S32 sObjectAddMsg; bool checkIsActionEnabled(const LLUUID& av_id, EFSRegistrarFunctionActionType); + LLSD populateGroupCount(); }; #endif // FS_COMMON_H diff --git a/indra/newview/fsfloatercontacts.cpp b/indra/newview/fsfloatercontacts.cpp index efa2ae07fe..ce53ffc9bf 100644 --- a/indra/newview/fsfloatercontacts.cpp +++ b/indra/newview/fsfloatercontacts.cpp @@ -51,6 +51,7 @@ #include "llstartup.h" #include "llviewercontrol.h" #include "llvoiceclient.h" +#include "fscommon.h" //Maximum number of people you can select to do an operation on at once. const U32 MAX_FRIEND_SELECT = 20; @@ -171,15 +172,13 @@ void FSFloaterContacts::updateGroupButtons() LLUUID groupId = getCurrentItemID(); bool isGroup = groupId.notNull(); - LLUICtrl* groupcount = mGroupsTab->getChild("groupcount"); - groupcount->setTextArg("[COUNT]", llformat("%d", gAgent.mGroups.count())); - groupcount->setTextArg("[MAX]", llformat("%d", gMaxAgentGroups)); + mGroupsTab->getChild("groupcount")->setValue(FSCommon::populateGroupCount()); getChildView("chat_btn")->setEnabled(isGroup && gAgent.hasPowerInGroup(groupId, GP_SESSION_JOIN)); getChildView("info_btn")->setEnabled(isGroup); getChildView("activate_btn")->setEnabled(groupId != gAgent.getGroupID()); getChildView("leave_btn")->setEnabled(isGroup); - getChildView("create_btn")->setEnabled(gAgent.mGroups.count() < gMaxAgentGroups); + getChildView("create_btn")->setEnabled((!gMaxAgentGroups) || (gAgent.mGroups.count() < gMaxAgentGroups)); getChildView("invite_btn")->setEnabled(isGroup && gAgent.hasPowerInGroup(groupId, GP_MEMBER_INVITE)); } diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index e80f1aa7c9..6cb4e57e73 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3404,7 +3404,10 @@ BOOL LLAgent::setUserGroupFlags(const LLUUID& group_id, BOOL accept_notices, BOO BOOL LLAgent::canJoinGroups() const { - return mGroups.count() < gMaxAgentGroups; + // [CR] FIRE-12229 + //return mGroups.count() < gMaxAgentGroups; + return ((!gMaxAgentGroups) || (mGroups.count() < gMaxAgentGroups)); + // [/CR] } LLQuaternion LLAgent::getHeadRotation() diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp index d84364a68a..701eac8431 100755 --- a/indra/newview/llfloatergroups.cpp +++ b/indra/newview/llfloatergroups.cpp @@ -46,6 +46,8 @@ #include "lluictrlfactory.h" #include "lltrans.h" +#include "fscommon.h" + using namespace LLOldEvents; // helper functions @@ -171,8 +173,11 @@ void LLPanelGroups::reset() { group_list->operateOnAll(LLCtrlListInterface::OP_DELETE); } - getChild("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count())); - getChild("groupcount")->setTextArg("[MAX]", llformat("%d",gMaxAgentGroups)); + // [CR] FIRE-12229 + //getChild("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count())); + //getChild("groupcount")->setTextArg("[MAX]", llformat("%d",gMaxAgentGroups)); + getChild("groupcount")->setValue(FSCommon::populateGroupCount()); + // [/CR] init_group_list(getChild("group list"), gAgent.getGroupID()); enableButtons(); @@ -182,8 +187,11 @@ BOOL LLPanelGroups::postBuild() { childSetCommitCallback("group list", onGroupList, this); - getChild("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count())); - getChild("groupcount")->setTextArg("[MAX]", llformat("%d",gMaxAgentGroups)); + // [CR] FIRE-12229 + //getChild("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count())); + //getChild("groupcount")->setTextArg("[MAX]", llformat("%d",gMaxAgentGroups)); + getChild("groupcount")->setValue(FSCommon::populateGroupCount()); + // [/CR] LLScrollListCtrl *list = getChild("group list"); if (list) diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 30316678c5..72bb2e350e 100755 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -77,6 +77,7 @@ #include "llevents.h" // for LLEventPumps // Firestorm includes +#include "fscommon.h" #include "fspanelradar.h" #include "lggcontactsets.h" #include "llcombobox.h" @@ -97,8 +98,8 @@ static const std::string BLOCKED_TAB_NAME = "blocked_panel"; // blocked avatars static const std::string CONTACT_SETS_TAB_NAME = "contact_sets_panel"; // [FS:CR] Contact sets static const std::string COLLAPSED_BY_USER = "collapsed_by_user"; - -extern S32 gMaxAgentGroups; +// [FS] FIRE-12229 +//extern S32 gMaxAgentGroups; /** Comparator for comparing avatar items by last interaction date */ class LLAvatarItemRecentComparator : public LLAvatarItemComparator @@ -996,8 +997,11 @@ void LLPanelPeople::updateButtons() LLPanel* groups_panel = mTabContainer->getCurrentPanel(); groups_panel->getChildView("minus_btn")->setEnabled(item_selected && selected_id.notNull()); // a real group selected - groups_panel->getChild("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count())); - groups_panel->getChild("groupcount")->setTextArg("[REMAINING]", llformat("%d",(gMaxAgentGroups-gAgent.mGroups.count()))); + // [CR] FIRE-12229 + //groups_panel->getChild("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count())); + //groups_panel->getChild("groupcount")->setTextArg("[REMAINING]", llformat("%d",(gMaxAgentGroups-gAgent.mGroups.count()))); + getChild("groupcount")->setValue(FSCommon::populateGroupCount()); + // [/CR] } else { diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 7ebd3502ad..3ffb923e3f 100755 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -4093,9 +4093,16 @@ bool process_login_success_response(U32 &first_sim_size_x, U32 &first_sim_size_y } else { +// [CR] FIRE-12229 +#ifdef OPENSIM + gMaxAgentGroups = 0; + LL_INFOS("LLStartup") << "did not receive max-agent-groups. unlimited groups activated" << LL_ENDL; +#else gMaxAgentGroups = DEFAULT_MAX_AGENT_GROUPS; LL_INFOS("LLStartup") << "using gMaxAgentGroups default: " << gMaxAgentGroups << LL_ENDL; +#endif +// [CR] FIRE-12229 } // diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 468422170c..dbd4cce163 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -716,7 +716,10 @@ bool join_group_response(const LLSD& notification, const LLSD& response) S32 max_groups = gMaxAgentGroups; if(gAgent.isInGroup(group_id)) ++max_groups; - if(gAgent.mGroups.count() < max_groups) + // [CR] FIRE-12229 + //if(gAgent.mGroups.count() < max_groups) + if(!max_groups || gAgent.mGroups.count() < max_groups) + // [/CR] FIRE-12229 { accept_invite = true; } diff --git a/indra/newview/skins/default/xui/en/panel_fs_contacts_groups.xml b/indra/newview/skins/default/xui/en/panel_fs_contacts_groups.xml index 35866ef830..2c5b574260 100644 --- a/indra/newview/skins/default/xui/en/panel_fs_contacts_groups.xml +++ b/indra/newview/skins/default/xui/en/panel_fs_contacts_groups.xml @@ -23,17 +23,16 @@ color="ScrollBgWriteableColor" top="-1" width="260" /> - -You belong to [COUNT] out of [MAX] groups. - + +