diff options
author | Baker Linden <baker@lindenlab.com> | 2013-10-01 15:58:39 -0700 |
---|---|---|
committer | Baker Linden <baker@lindenlab.com> | 2013-10-01 15:58:39 -0700 |
commit | 8bf4760552b61808d403885b6f9d562b1b8f7e6c (patch) | |
tree | 10fb70284bd1c7dd62f64ae438e34240b6c530b9 /indra/newview/llpanelgroupbulk.cpp | |
parent | ce526d40638fcc78724913621ee5c12f792f1859 (diff) |
Hand-merge of some viewer-release code
Diffstat (limited to 'indra/newview/llpanelgroupbulk.cpp')
-rw-r--r-- | indra/newview/llpanelgroupbulk.cpp | 36 |
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(); |