summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloaterregioninfo.cpp42
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml1
2 files changed, 28 insertions, 15 deletions
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 38fa3bd153..25f1fb8c13 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -103,6 +103,8 @@
const S32 TERRAIN_TEXTURE_COUNT = 4;
const S32 CORNER_COUNT = 4;
+const U32 MAX_LISTED_NAMES = 100;
+
#define TMP_DISABLE_WLES // STORM-1180
///----------------------------------------------------------------------------
@@ -3828,12 +3830,11 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
}
std::string names;
- bool single = true;
-
+ U32 listed_names = 0;
LLSD::array_const_iterator end_it = notification["payload"]["allowed_ids"].endArray();
for (LLSD::array_const_iterator iter = notification["payload"]["allowed_ids"].beginArray();
- iter != end_it;
- iter++)
+ iter != end_it;
+ iter++)
{
if (iter + 1 != end_it)
{
@@ -3851,28 +3852,32 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
LLNotificationsUtil::add("OwnerCanNotBeDenied");
break;
}
-
+
sendEstateAccessDelta(flags, id);
if ((flags & (ESTATE_ACCESS_ALLOWED_GROUP_ADD | ESTATE_ACCESS_ALLOWED_GROUP_REMOVE)) == 0)
{
// fill the name list for confirmation
- LLAvatarName av_name;
- if (LLAvatarNameCache::get(id, &av_name))
+ if (listed_names < MAX_LISTED_NAMES)
{
- if (!names.empty())
+ LLAvatarName av_name;
+ if (LLAvatarNameCache::get(id, &av_name))
{
- names += ", ";
- single = false;
- }
- names += av_name.getCompleteName();
+ if (!names.empty())
+ {
+ names += ", ";
+ }
+ names += av_name.getCompleteName();
+ }
}
+ listed_names++;
}
}
- LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
- if (panel)
+ if (listed_names > MAX_LISTED_NAMES)
{
- panel->setPendingUpdate(true);
+ LLSD args;
+ args["EXTRA_COUNT"] = llformat("%d", listed_names - MAX_LISTED_NAMES);
+ names += " " + LLTrans::getString("AndNMore", args);
}
if (!names.empty()) // show the conirmation
@@ -3902,6 +3907,7 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
args["ESTATE"] = LLTrans::getString("RegionInfoThisEstate");
}
+ bool single = (listed_names == 1);
if (flags & (ESTATE_ACCESS_ALLOWED_AGENT_ADD | ESTATE_ACCESS_BANNED_AGENT_ADD))
{
LLNotificationsUtil::add(single ? "AgentWasAddedToList" : "AgentsWereAddedToList", args);
@@ -3912,6 +3918,12 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
}
}
+ LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
+ if (panel)
+ {
+ panel->setPendingUpdate(true);
+ }
+
return false;
}
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index fd2749bb81..d4327b0c7c 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2661,6 +2661,7 @@ If you continue to receive this message, please contact Second Life support for
<string name="RegionInfoAllEstates">all estates</string>
<string name="RegionInfoManagedEstates">managed estates</string>
<string name="RegionInfoThisEstate">this estate</string>
+ <string name="AndNMore">and [EXTRA_COUNT] more</string>
<!-- script limits floater -->
<string name="ScriptLimitsParcelScriptMemory">Parcel Script Memory</string>