From 94e406157d0b133d51b5dbb95aab296b46eae10e Mon Sep 17 00:00:00 2001
From: Richard Nelson <none@none>
Date: Mon, 16 Aug 2010 14:59:29 -0700
Subject: [PATCH] added ability to cancel all notifications with a given name

---
 indra/llui/llnotifications.cpp | 15 +++++++++++++++
 indra/llui/llnotifications.h   |  1 +
 2 files changed, 16 insertions(+)

diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index 7fa3c2cf659..2da8f1eb1b8 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -1423,6 +1423,21 @@ void LLNotifications::cancel(LLNotificationPtr pNotif)
 	updateItem(LLSD().with("sigtype", "delete").with("id", pNotif->id()), pNotif);
 }
 
+void LLNotifications::cancelByName(const std::string& name)
+{
+	for (LLNotificationSet::iterator it=mItems.begin(), end_it = mItems.end(), next_it = it;
+		it != end_it;
+		it = next_it, ++next_it)
+	{
+		LLNotificationPtr pNotif = *it;
+		if (pNotif->getName() == name)
+		{
+			pNotif->cancel();
+			updateItem(LLSD().with("sigtype", "delete").with("id", pNotif->id()), pNotif);
+		}
+	}
+}
+
 void LLNotifications::update(const LLNotificationPtr pNotif)
 {
 	LLNotificationSet::iterator it=mItems.find(pNotif);
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index 1cdd744a685..fcf988222d8 100644
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -900,6 +900,7 @@ class LLNotifications :
 
 	void add(const LLNotificationPtr pNotif);
 	void cancel(LLNotificationPtr pNotif);
+	void cancelByName(const std::string& name);
 	void update(const LLNotificationPtr pNotif);
 
 	LLNotificationPtr find(LLUUID uuid);
-- 
GitLab