diff options
| author | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-01-11 03:24:36 +0200 | 
|---|---|---|
| committer | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-01-11 03:24:36 +0200 | 
| commit | 30446d6afc974ff07bde69b0f969bc5fbd3902ef (patch) | |
| tree | ce9fd9c39ebfb403c3de88ec8973e37024a570ab /indra/newview | |
| parent | 3892685922c4a64d05f98ba12c55fe6e5bc26497 (diff) | |
MAINT-6018 Open URL dialog spam
Added the ability to close all notifications from one owner at once
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llchiclet.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llscriptfloater.cpp | 12 | ||||
| -rwxr-xr-x | indra/newview/llscriptfloater.h | 5 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/menu_script_chiclet.xml | 8 | 
4 files changed, 29 insertions, 0 deletions
| diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index dedb06c945..ad26bbd491 100755 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -1092,6 +1092,10 @@ void LLScriptChiclet::onMenuItemClicked(const LLSD& user_data)  	{  		LLScriptFloaterManager::instance().removeNotification(getSessionId());  	} +	else if ("end_owner" == action) +	{ +		LLScriptFloaterManager::instance().removeAllNotificationsByOwner(getSessionId()); +	}  }  void LLScriptChiclet::createPopupMenu() diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index 1d021ec28f..b5b5bc855d 100755 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -420,6 +420,18 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id)  	toggleScriptFloater(notification_id, set_new_message);  } +void LLScriptFloaterManager::removeAllNotificationsByOwner(const LLUUID& notification_id) +{ +	LLNotificationPtr notification = LLNotifications::instance().find(notification_id); +	if (notification != NULL && !notification->isCancelled()) +	{ +		LLSD payload = notification->getPayload(); +		LLUUID owner = payload.get("owner_id").asUUID(); + +		LLNotifications::instance().cancelByOwner(owner); +	} +} +  void LLScriptFloaterManager::removeNotification(const LLUUID& notification_id)  {  	LLNotificationPtr notification = LLNotifications::instance().find(notification_id); diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index 70451194b3..bb35526cf7 100755 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -60,6 +60,11 @@ public:  	void onAddNotification(const LLUUID& notification_id);  	/** +	* Removes all notifications by owner id. +	*/ +	void removeAllNotificationsByOwner(const LLUUID& notification_id); + +	/**  	 * Removes notification.  	 */  	void removeNotification(const LLUUID& notification_id); diff --git a/indra/newview/skins/default/xui/en/menu_script_chiclet.xml b/indra/newview/skins/default/xui/en/menu_script_chiclet.xml index db29d9cebc..ceeef1cd46 100755 --- a/indra/newview/skins/default/xui/en/menu_script_chiclet.xml +++ b/indra/newview/skins/default/xui/en/menu_script_chiclet.xml @@ -16,4 +16,12 @@           function="ScriptChiclet.Action"           parameter="end" />      </menu_item_call> +	<menu_item_call +	 label="Close by owner" +	 layout="topleft" +	 name="CloseByOwner"> +		<menu_item_call.on_click +		 function="ScriptChiclet.Action" +		 parameter="end_owner" /> +	</menu_item_call>  </menu> | 
