summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelgroupbulk.cpp
diff options
context:
space:
mode:
authorBaker Linden <baker@lindenlab.com>2013-10-01 15:58:39 -0700
committerBaker Linden <baker@lindenlab.com>2013-10-01 15:58:39 -0700
commit8bf4760552b61808d403885b6f9d562b1b8f7e6c (patch)
tree10fb70284bd1c7dd62f64ae438e34240b6c530b9 /indra/newview/llpanelgroupbulk.cpp
parentce526d40638fcc78724913621ee5c12f792f1859 (diff)
Hand-merge of some viewer-release code
Diffstat (limited to 'indra/newview/llpanelgroupbulk.cpp')
-rw-r--r--indra/newview/llpanelgroupbulk.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/indra/newview/llpanelgroupbulk.cpp b/indra/newview/llpanelgroupbulk.cpp
index ed05a5c7d1..86ac1867df 100644
--- a/indra/newview/llpanelgroupbulk.cpp
+++ b/indra/newview/llpanelgroupbulk.cpp
@@ -172,6 +172,12 @@ void LLPanelGroupBulkImpl::handleRemove()
if (selection.empty())
return;
+ std::vector<LLScrollListItem*>::iterator iter;
+ for(iter = selection.begin(); iter != selection.end(); ++iter)
+ {
+ mInviteeIDs.erase((*iter)->getUUID());
+ }
+
mBulkAgentList->deleteSelectedItems();
mRemoveButton->setEnabled(FALSE);
@@ -195,26 +201,23 @@ void LLPanelGroupBulkImpl::addUsers(const std::vector<std::string>& names, const
{
std::string name;
LLUUID id;
+
+ if(names.size() + mInviteeIDs.size() > MAX_GROUP_INVITES)
+ {
+ // Fail! Show a warning and don't add any names.
+ LLSD msg;
+ msg["MESSAGE"] = mTooManySelected;
+ LLNotificationsUtil::add("GenericAlert", msg);
+ return;
+ }
+
for (S32 i = 0; i < (S32)names.size(); ++i)
{
name = names[i];
id = agent_ids[i];
- // Make sure this agent isn't already in the list.
- bool already_in_list = false;
- std::vector<LLScrollListItem*> items = mBulkAgentList->getAllData();
- std::vector<LLScrollListItem*>::iterator iter = items.begin();
- for (; iter != items.end(); ++iter)
- {
- LLScrollListItem* item = *iter;
- if (item->getUUID() == id)
- {
- already_in_list = true;
- break;
- }
- }
- if (already_in_list)
+ if(mInviteeIDs.find(id) != mInviteeIDs.end())
{
continue;
}
@@ -225,7 +228,8 @@ void LLPanelGroupBulkImpl::addUsers(const std::vector<std::string>& names, const
row["columns"][0]["value"] = name;
mBulkAgentList->addElement(row);
-
+ mInviteeIDs.insert(id);
+
// We've successfully added someone to the list.
if(mOKButton && !mOKButton->getEnabled())
mOKButton->setEnabled(TRUE);
@@ -254,6 +258,8 @@ LLPanelGroupBulk::~LLPanelGroupBulk()
void LLPanelGroupBulk::clear()
{
+ mImplementation->mInviteeIDs.clear();
+
if(mImplementation->mBulkAgentList)
mImplementation->mBulkAgentList->deleteAllItems();