summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Borovkov <iborovkov@productengine.com>2009-12-11 15:15:41 +0200
committerIgor Borovkov <iborovkov@productengine.com>2009-12-11 15:15:41 +0200
commit178ce6df01b0e73476fbde03d7c72622c443f5b7 (patch)
treeecfa2e9fdff7d0e04432df0a71226a643eea83ce
parent12fb5d3a2de9fe49c75b302353f09fc724245a1b (diff)
parent5aecd0b93f6d79ef447aca241b082f0fb468d78b (diff)
merge
--HG-- branch : product-engine
-rw-r--r--indra/llui/CMakeLists.txt2
-rw-r--r--indra/llui/llpanel.cpp1
-rw-r--r--indra/newview/CMakeLists.txt4
-rw-r--r--indra/newview/llagentwearables.cpp1
-rw-r--r--indra/newview/llappviewer.cpp2
-rw-r--r--indra/newview/llassetuploadresponders.cpp1
-rw-r--r--indra/newview/llcallingcard.cpp1
-rw-r--r--indra/newview/llchannelmanager.cpp11
-rw-r--r--indra/newview/llchannelmanager.h5
-rw-r--r--indra/newview/llchiclet.cpp5
-rw-r--r--indra/newview/lldelayedgestureerror.cpp1
-rw-r--r--indra/newview/lleventnotifier.cpp1
-rw-r--r--indra/newview/llfirstuse.cpp1
-rw-r--r--indra/newview/llfloaterauction.cpp1
-rw-r--r--indra/newview/llfloaterbuy.cpp1
-rw-r--r--indra/newview/llfloaterbuycontents.cpp1
-rw-r--r--indra/newview/llfloaterbuyland.cpp1
-rw-r--r--indra/newview/llfloaterfriends.cpp1
-rw-r--r--indra/newview/llfloatergodtools.cpp2
-rw-r--r--indra/newview/llfloaterhud.cpp1
-rw-r--r--indra/newview/llfloaterland.cpp1
-rw-r--r--indra/newview/llfloateropenobject.cpp1
-rw-r--r--indra/newview/llfloaterperms.cpp1
-rw-r--r--indra/newview/llfloaterregioninfo.cpp2
-rw-r--r--indra/newview/llfloatersellland.cpp1
-rw-r--r--indra/newview/llgesturemgr.cpp1
-rw-r--r--indra/newview/llimpanel.cpp1
-rw-r--r--indra/newview/llimview.cpp1
-rw-r--r--indra/newview/lllandmarklist.cpp1
-rw-r--r--indra/newview/llmenucommands.cpp1
-rw-r--r--indra/newview/llpanelclassified.cpp1
-rw-r--r--indra/newview/llpanelgrouproles.cpp1
-rw-r--r--indra/newview/llpanellogin.cpp1
-rw-r--r--indra/newview/llparticipantlist.cpp56
-rw-r--r--indra/newview/llparticipantlist.h22
-rw-r--r--indra/newview/llpreviewgesture.cpp1
-rw-r--r--indra/newview/llpreviewnotecard.cpp1
-rw-r--r--indra/newview/llpreviewscript.cpp1
-rw-r--r--indra/newview/llstartup.cpp1
-rw-r--r--indra/newview/llstatusbar.cpp1
-rw-r--r--indra/newview/lltoastalertpanel.cpp6
-rw-r--r--indra/newview/lltoastalertpanel.h19
-rw-r--r--indra/newview/lltoastgroupnotifypanel.cpp1
-rw-r--r--indra/newview/llviewercontrol.cpp5
-rw-r--r--indra/newview/llviewerinventory.cpp1
-rw-r--r--indra/newview/llviewermessage.cpp24
-rw-r--r--indra/newview/llviewerparcelmgr.cpp1
-rw-r--r--indra/newview/llviewertexteditor.cpp1
-rw-r--r--indra/newview/llviewerwindow.cpp9
-rw-r--r--indra/newview/llvoavatar.cpp1
-rw-r--r--indra/newview/llwearablelist.cpp1
-rw-r--r--indra/newview/llweb.cpp4
52 files changed, 112 insertions, 102 deletions
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index 74b49b846e..82ec02d2eb 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -26,7 +26,6 @@ include_directories(
)
set(llui_SOURCE_FILES
- llalertdialog.cpp
llbutton.cpp
llcheckboxctrl.cpp
llclipboard.cpp
@@ -112,7 +111,6 @@ set(llui_SOURCE_FILES
set(llui_HEADER_FILES
CMakeLists.txt
- llalertdialog.h
llbutton.h
llcallbackmap.h
llcheckboxctrl.h
diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp
index 750b190953..de2b43bf13 100644
--- a/indra/llui/llpanel.cpp
+++ b/indra/llui/llpanel.cpp
@@ -37,7 +37,6 @@
#define LLPANEL_CPP
#include "llpanel.h"
-#include "llalertdialog.h"
#include "llfocusmgr.h"
#include "llfontgl.h"
#include "llrect.h"
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index be6bce8054..a9dc1eed24 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -227,7 +227,6 @@ set(viewer_SOURCE_FILES
llgroupactions.cpp
llgrouplist.cpp
llgroupmgr.cpp
- llgroupnotify.cpp
llhomelocationresponder.cpp
llhudeffect.cpp
llhudeffectbeam.cpp
@@ -298,7 +297,6 @@ set(viewer_SOURCE_FILES
llnotificationofferhandler.cpp
llnotificationscripthandler.cpp
llnotificationtiphandler.cpp
- llnotify.cpp
lloutputmonitorctrl.cpp
lloverlaybar.cpp
llpanelavatar.cpp
@@ -734,7 +732,6 @@ set(viewer_HEADER_FILES
llgroupactions.h
llgrouplist.h
llgroupmgr.h
- llgroupnotify.h
llhomelocationresponder.h
llhudeffect.h
llhudeffectbeam.h
@@ -800,7 +797,6 @@ set(viewer_HEADER_FILES
llnetmap.h
llnotificationhandler.h
llnotificationmanager.h
- llnotify.h
lloutputmonitorctrl.h
lloverlaybar.h
llpanelavatar.h
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 3114a37ada..1e2eac39eb 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -41,7 +41,6 @@
#include "llinventoryobserver.h"
#include "llinventorypanel.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llviewerregion.h"
#include "llvoavatarself.h"
#include "llwearable.h"
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 9a1b749ba7..2fc7a630ae 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -39,7 +39,6 @@
#include "llfeaturemanager.h"
#include "lluictrlfactory.h"
#include "lltexteditor.h"
-#include "llalertdialog.h"
#include "llerrorcontrol.h"
#include "llviewertexturelist.h"
#include "llgroupmgr.h"
@@ -109,7 +108,6 @@
#include "apr_dso.h"
#include <boost/lexical_cast.hpp>
-#include "llnotify.h"
#include "llviewerkeyboard.h"
#include "lllfsthread.h"
#include "llworkerthread.h"
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 1d03cc8823..a2322e28b4 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -39,7 +39,6 @@
#include "llcompilequeue.h"
#include "llfloaterbuycurrency.h"
#include "llfilepicker.h"
-#include "llnotify.h"
#include "llinventoryobserver.h"
#include "llinventorypanel.h"
#include "llpermissionsflags.h"
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index 714bd20ab8..82413878ad 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -55,7 +55,6 @@
#include "llinventorymodel.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llresmgr.h"
#include "llimview.h"
#include "llviewercontrol.h"
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 415c118ff1..cbb566b3a7 100644
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -228,3 +228,14 @@ void LLChannelManager::muteAllChannels(bool mute)
}
}
+void LLChannelManager::killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher)
+{
+ LLScreenChannel
+ * screen_channel =
+ dynamic_cast<LLScreenChannel*> (findChannelByID(channel_id));
+ if (screen_channel != NULL)
+ {
+ screen_channel->killMatchedToasts(matcher);
+ }
+}
+
diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h
index 4b66a1ef89..c2be39122f 100644
--- a/indra/newview/llchannelmanager.h
+++ b/indra/newview/llchannelmanager.h
@@ -109,6 +109,11 @@ public:
*/
void muteAllChannels(bool mute);
+ /**
+ * Kills matched toasts from specified toast screen channel.
+ */
+ void killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher);
+
private:
LLScreenChannel* createChannel(LLChannelManager::Params& p);
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 30967677e8..9671c048ef 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -53,6 +53,7 @@
#include "llgroupmgr.h"
#include "llnotificationmanager.h"
#include "lltransientfloatermgr.h"
+#include "llsyswellwindow.h"
static LLDefaultChildRegistry::Register<LLChicletPanel> t1("chiclet_panel");
static LLDefaultChildRegistry::Register<LLIMWellChiclet> t2_0("chiclet_im_well");
@@ -233,6 +234,10 @@ LLNotificationChiclet::LLNotificationChiclet(const Params& p)
connectCounterUpdatersToSignal("notify");
connectCounterUpdatersToSignal("groupnotify");
connectCounterUpdatersToSignal("offer");
+
+ // ensure that notification well window exists, to synchronously
+ // handle toast add/delete events.
+ LLNotificationWellWindow::getInstance();
}
void LLNotificationChiclet::connectCounterUpdatersToSignal(const std::string& notification_type)
diff --git a/indra/newview/lldelayedgestureerror.cpp b/indra/newview/lldelayedgestureerror.cpp
index 411cb331a8..ead377deb0 100644
--- a/indra/newview/lldelayedgestureerror.cpp
+++ b/indra/newview/lldelayedgestureerror.cpp
@@ -36,7 +36,6 @@
#include <list>
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llcallbacklist.h"
#include "llinventory.h"
#include "llviewerinventory.h"
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index b64799bd86..edfb9dc864 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -37,7 +37,6 @@
#include "llnotificationsutil.h"
#include "message.h"
-#include "llnotify.h"
#include "lleventinfo.h"
#include "llfloaterreg.h"
#include "llfloaterworldmap.h"
diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp
index 0bcdad5da1..7fd0e070be 100644
--- a/indra/newview/llfirstuse.cpp
+++ b/indra/newview/llfirstuse.cpp
@@ -40,7 +40,6 @@
// viewer includes
#include "llagent.h" // for gAgent.inPrelude()
-#include "llnotify.h"
#include "llviewercontrol.h"
#include "llui.h"
#include "llappviewer.h"
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index b63bcccf6b..c1a4a845e5 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -48,7 +48,6 @@
#include "llcombobox.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llsavedsettingsglue.h"
#include "llviewertexturelist.h"
#include "llviewerparcelmgr.h"
diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp
index 16a5bb63e7..fba557c656 100644
--- a/indra/newview/llfloaterbuy.cpp
+++ b/indra/newview/llfloaterbuy.cpp
@@ -41,7 +41,6 @@
#include "llfloaterbuy.h"
#include "llagent.h" // for agent id
-#include "llalertdialog.h"
#include "llinventorymodel.h" // for gInventory
#include "llfloaterreg.h"
#include "llfloaterinventory.h" // for get_item_icon
diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp
index 39c7bc02af..0daef27af2 100644
--- a/indra/newview/llfloaterbuycontents.cpp
+++ b/indra/newview/llfloaterbuycontents.cpp
@@ -43,7 +43,6 @@
#include "llcachename.h"
#include "llagent.h" // for agent id
-#include "llalertdialog.h"
#include "llcheckboxctrl.h"
#include "llinventoryfunctions.h"
#include "llinventorymodel.h" // for gInventory
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index 3a8c3ab4d2..9b88923e7e 100644
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -49,7 +49,6 @@
#include "lliconctrl.h"
#include "lllineeditor.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llparcel.h"
#include "llslurl.h"
#include "llstatusbar.h"
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index 1482d3fe21..56291c57a6 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -50,7 +50,6 @@
#include "llinventorymodel.h"
#include "llnamelistctrl.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llresmgr.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp
index 04ba11530a..e1409b8ad5 100644
--- a/indra/newview/llfloatergodtools.cpp
+++ b/indra/newview/llfloatergodtools.cpp
@@ -45,7 +45,6 @@
#include "message.h"
#include "llagent.h"
-#include "llalertdialog.h"
#include "llbutton.h"
#include "llcheckboxctrl.h"
#include "llcombobox.h"
@@ -69,7 +68,6 @@
#include "llviewerwindow.h"
#include "llworld.h"
#include "llfloateravatarpicker.h"
-#include "llnotify.h"
#include "llxfermanager.h"
#include "llvlcomposition.h"
#include "llsurface.h"
diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp
index 14cff3bcc3..d2ee3e44c5 100644
--- a/indra/newview/llfloaterhud.cpp
+++ b/indra/newview/llfloaterhud.cpp
@@ -37,7 +37,6 @@
// Viewer libs
#include "llviewercontrol.h"
#include "llmediactrl.h"
-#include "llalertdialog.h"
// Linden libs
#include "llnotificationsutil.h"
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index ed0f24d160..7a4a12d3dc 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -55,7 +55,6 @@
#include "llavataractions.h"
#include "lllineeditor.h"
#include "llnamelistctrl.h"
-#include "llnotify.h"
#include "llpanellandaudio.h"
#include "llpanellandmedia.h"
#include "llradiogroup.h"
diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp
index 56a86c2cb7..51c18196f2 100644
--- a/indra/newview/llfloateropenobject.cpp
+++ b/indra/newview/llfloateropenobject.cpp
@@ -44,7 +44,6 @@
#include "llnotificationsutil.h"
#include "lltextbox.h"
-#include "llalertdialog.h"
#include "llinventorybridge.h"
#include "llfloaterinventory.h"
#include "llinventorymodel.h"
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 17bb8221ad..7edc27d4c3 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -32,7 +32,6 @@
*/
#include "llviewerprecompiledheaders.h"
-#include "llalertdialog.h"
#include "llcheckboxctrl.h"
#include "llfloaterperms.h"
#include "llviewercontrol.h"
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 05a46ad894..4e5b7e45ac 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -46,7 +46,6 @@
#include "message.h"
#include "llagent.h"
-#include "llalertdialog.h"
#include "llappviewer.h"
#include "llfloateravatarpicker.h"
#include "llbutton.h"
@@ -62,7 +61,6 @@
#include "llfloaterwindlight.h"
#include "llinventorymodel.h"
#include "lllineeditor.h"
-#include "llalertdialog.h"
#include "llnamelistctrl.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index 49e8f9c956..e5260aa7b9 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -39,7 +39,6 @@
#include "lllineeditor.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llparcel.h"
#include "llselectmgr.h"
#include "lltexturectrl.h"
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index 4f487ddf04..df7aa9eabf 100644
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -52,7 +52,6 @@
#include "llagent.h"
#include "lldelayedgestureerror.h"
#include "llinventorymodel.h"
-#include "llnotify.h"
#include "llviewermessage.h"
#include "llvoavatarself.h"
#include "llviewerstats.h"
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index e6ded5f371..8b6762ce38 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -66,7 +66,6 @@
#include "llimview.h" // for LLIMModel to get other avatar id in chat
#include "llkeyboard.h"
#include "lllineeditor.h"
-#include "llnotify.h"
#include "llpanelimcontrolpanel.h"
#include "llrecentpeople.h"
#include "llresmgr.h"
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 65874f87e8..5edb36a025 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -72,7 +72,6 @@
#include "llviewerwindow.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llnearbychat.h"
#include "llviewerregion.h"
#include "llvoicechannel.h"
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index d613cf6ba4..bd9d22c327 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -39,7 +39,6 @@
#include "llappviewer.h"
#include "llagent.h"
-#include "llnotify.h"
#include "llvfile.h"
#include "llviewerstats.h"
diff --git a/indra/newview/llmenucommands.cpp b/indra/newview/llmenucommands.cpp
index 28ddaa61c4..a2aef9ba63 100644
--- a/indra/newview/llmenucommands.cpp
+++ b/indra/newview/llmenucommands.cpp
@@ -49,7 +49,6 @@
#include "llfloaterchat.h"
#include "llfloaterworldmap.h"
#include "lllineeditor.h"
-#include "llnotify.h"
#include "llstatusbar.h"
#include "llimview.h"
#include "lltextbox.h"
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 70d92442ad..0dae667e7f 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -48,7 +48,6 @@
#include "message.h"
#include "llagent.h"
-#include "llalertdialog.h"
#include "llavataractions.h"
#include "llbutton.h"
#include "llcheckboxctrl.h"
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index b6c58808ae..29b647415c 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -44,7 +44,6 @@
#include "llnamelistctrl.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llpanelgrouproles.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index a729b8c06f..47dc2fb984 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -62,7 +62,6 @@
#include "llviewermenu.h" // for handle_preferences()
#include "llviewernetwork.h"
#include "llviewerwindow.h" // to link into child list
-#include "llnotify.h"
#include "llurlsimstring.h"
#include "lluictrlfactory.h"
#include "llhttpclient.h"
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 9a6cafe0de..e99a9a5d12 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -95,6 +95,7 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av
mSpeakerRemoveListener = new SpeakerRemoveListener(*this);
mSpeakerClearListener = new SpeakerClearListener(*this);
mSpeakerModeratorListener = new SpeakerModeratorUpdateListener(*this);
+ mSpeakerMuteListener = new SpeakerMuteListener(*this);
mSpeakerMgr->addListener(mSpeakerAddListener, "add");
mSpeakerMgr->addListener(mSpeakerRemoveListener, "remove");
@@ -125,6 +126,7 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av
for(LLSpeakerMgr::speaker_list_t::iterator it = speaker_list.begin(); it != speaker_list.end(); it++)
{
const LLPointer<LLSpeaker>& speakerp = *it;
+
addAvatarIDExceptAgent(group_members, speakerp->mID);
if ( speakerp->mIsModerator )
{
@@ -286,6 +288,24 @@ bool LLParticipantList::onModeratorUpdateEvent(LLPointer<LLOldEvents::LLEvent> e
return true;
}
+bool LLParticipantList::onSpeakerMuteEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata)
+{
+ LLPointer<LLSpeaker> speakerp = (LLSpeaker*)event->getSource();
+ if (speakerp.isNull()) return false;
+
+ // update UI on confirmation of moderator mutes
+ if (event->getValue().asString() == "voice")
+ {
+ LLAvatarListItem* item = dynamic_cast<LLAvatarListItem*>(mAvatarList->getItemByValue(speakerp->mID));
+ if (item)
+ {
+ LLOutputMonitorCtrl* indicator = item->getChild<LLOutputMonitorCtrl>("speaking_indicator");
+ indicator->setIsMuted(speakerp->mModeratorMutedVoice);
+ }
+ }
+ return true;
+}
+
void LLParticipantList::sort()
{
if ( !mAvatarList )
@@ -302,13 +322,21 @@ void LLParticipantList::sort()
}
}
-// static
void LLParticipantList::addAvatarIDExceptAgent(std::vector<LLUUID>& existing_list, const LLUUID& avatar_id)
{
- if (gAgent.getID() != avatar_id)
- {
- existing_list.push_back(avatar_id);
- }
+ if (gAgent.getID() == avatar_id) return;
+
+ existing_list.push_back(avatar_id);
+ adjustParticipant(avatar_id);
+}
+
+void LLParticipantList::adjustParticipant(const LLUUID& speaker_id)
+{
+ LLPointer<LLSpeaker> speakerp = mSpeakerMgr->findSpeaker(speaker_id);
+ if (speakerp.isNull()) return;
+
+ // add listener to process moderation changes
+ speakerp->addListener(mSpeakerMuteListener);
}
//
@@ -353,6 +381,11 @@ bool LLParticipantList::SpeakerModeratorUpdateListener::handleEvent(LLPointer<LL
return mParent.onModeratorUpdateEvent(event, userdata);
}
+bool LLParticipantList::SpeakerMuteListener::handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata)
+{
+ return mParent.onSpeakerMuteEvent(event, userdata);
+}
+
LLContextMenu* LLParticipantList::LLParticipantListMenu::createMenu()
{
// set up the callbacks for all of the avatar menu items
@@ -480,6 +513,16 @@ void LLParticipantList::LLParticipantListMenu::moderateVoiceParticipant(const LL
{
if (gAgentID == avatar_id) return; // do not process myself
+ LLPointer<LLSpeaker> speakerp = mParent.mSpeakerMgr->findSpeaker(avatar_id);
+ if (!speakerp) return;
+
+ // *NOTE: mantipov: probably this condition will be incorrect when avatar will be blocked for
+ // text chat via moderation (LLSpeaker::mModeratorMutedText == TRUE)
+ bool is_in_voice = speakerp->mStatus <= LLSpeaker::STATUS_VOICE_ACTIVE || speakerp->mStatus == LLSpeaker::STATUS_MUTED;
+
+ // do not send voice moderation changes for avatars not in voice channel
+ if (!is_in_voice) return;
+
std::string url = gAgent.getRegion()->getCapability("ChatSessionRequest");
LLSD data;
data["method"] = "mute update";
@@ -498,7 +541,7 @@ void LLParticipantList::LLParticipantListMenu::moderateVoiceParticipant(const LL
void LLParticipantList::LLParticipantListMenu::moderateVoiceOtherParticipants(const LLUUID& excluded_avatar_id, bool unmute)
{
LLSpeakerMgr::speaker_list_t speakers;
- mParent.mSpeakerMgr->getSpeakerList(&speakers, true);
+ mParent.mSpeakerMgr->getSpeakerList(&speakers, FALSE);
for (LLSpeakerMgr::speaker_list_t::iterator iter = speakers.begin();
iter != speakers.end(); ++iter)
@@ -510,7 +553,6 @@ void LLParticipantList::LLParticipantListMenu::moderateVoiceOtherParticipants(co
moderateVoiceParticipant(speaker_id, unmute);
}
-
}
bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD& userdata)
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index a130edb553..229769ec09 100644
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
@@ -64,6 +64,7 @@ class LLParticipantList
bool onRemoveItemEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
bool onClearListEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
bool onModeratorUpdateEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
+ bool onSpeakerMuteEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
/**
* Sorts the Avatarlist by stored order
@@ -109,6 +110,14 @@ class LLParticipantList
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
};
+ class SpeakerMuteListener : public BaseSpeakerListner
+ {
+ public:
+ SpeakerMuteListener(LLParticipantList& parent) : BaseSpeakerListner(parent) {}
+
+ /*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
+ };
+
/**
* Menu used in the participant list.
*/
@@ -181,8 +190,18 @@ class LLParticipantList
/**
* Adds specified avatar ID to the existing list if it is not Agent's ID
+ *
+ * @param[in, out] existing_list - vector with avatars' UUIDs already in the list
+ * @param[in] avatar_id - Avatar UUID to be added into the list
+ */
+ void addAvatarIDExceptAgent(std::vector<LLUUID>& existing_list, const LLUUID& avatar_id);
+
+ /**
+ * Adjusts passed participant to work properly.
+ *
+ * Adds SpeakerMuteListener to process moderation actions.
*/
- static void addAvatarIDExceptAgent(std::vector<LLUUID>& existing_list, const LLUUID& avatar_id);
+ void adjustParticipant(const LLUUID& speaker_id);
LLSpeakerMgr* mSpeakerMgr;
LLAvatarList* mAvatarList;
@@ -194,6 +213,7 @@ class LLParticipantList
LLPointer<SpeakerRemoveListener> mSpeakerRemoveListener;
LLPointer<SpeakerClearListener> mSpeakerClearListener;
LLPointer<SpeakerModeratorUpdateListener> mSpeakerModeratorListener;
+ LLPointer<SpeakerMuteListener> mSpeakerMuteListener;
LLParticipantListMenu* mParticipantListMenu;
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 30cb21c83c..f1891aa421 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -59,7 +59,6 @@
#include "llinventorymodel.h"
#include "llkeyboard.h"
#include "lllineeditor.h"
-#include "llnotify.h"
#include "llradiogroup.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index 5d675fcda6..95756ac5f3 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -44,7 +44,6 @@
#include "llinventorymodel.h"
#include "lllineeditor.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llresmgr.h"
#include "roles_constants.h"
#include "llscrollbar.h"
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 8d80310769..646c9fb6a4 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -61,7 +61,6 @@
#include "llvfile.h"
#include "llagent.h"
-#include "llnotify.h"
#include "llmenugl.h"
#include "roles_constants.h"
#include "llselectmgr.h"
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index d8d1760c38..84d6d66413 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -121,7 +121,6 @@
#include "lllogininstance.h" // Host the login module.
#include "llpanellogin.h"
#include "llmutelist.h"
-#include "llnotify.h"
#include "llpanelavatar.h"
#include "llavatarpropertiesprocessor.h"
#include "llpanelevent.h"
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 4915720036..9e72464237 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -50,7 +50,6 @@
#include "llkeyboard.h"
#include "lllineeditor.h"
#include "llmenugl.h"
-#include "llnotify.h"
#include "llimview.h"
#include "llsd.h"
#include "lltextbox.h"
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index a4f5164a8d..c48301fa1e 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -30,10 +30,6 @@
* $/LicenseInfo$
*/
-// *NOTE: this module is a copy-paste of llui/llalertdialog.h
-// Can we re-implement this as a subclass of LLAlertDialog and
-// avoid all this code duplication? It already caused EXT-2232.
-
#include "llviewerprecompiledheaders.h" // must be first include
#include "linden_common.h"
@@ -60,7 +56,7 @@ const F32 DEFAULT_BUTTON_DELAY = 0.5f;
const S32 MSG_PAD = 8;
/*static*/ LLControlGroup* LLToastAlertPanel::sSettings = NULL;
-/*static*/ LLAlertURLLoader* LLToastAlertPanel::sURLLoader;
+/*static*/ LLToastAlertPanel::URLLoader* LLToastAlertPanel::sURLLoader;
//-----------------------------------------------------------------------------
// Private methods
diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h
index 38a635e8a4..875ab82c54 100644
--- a/indra/newview/lltoastalertpanel.h
+++ b/indra/newview/lltoastalertpanel.h
@@ -30,10 +30,6 @@
* $/LicenseInfo$
*/
-// *NOTE: this module is a copy-paste of llui/llalertdialog.h
-// Can we re-implement this as a subclass of LLAlertDialog and
-// avoid all this code duplication? It already caused EXT-2232.
-
#ifndef LL_TOASTALERTPANEL_H
#define LL_TOASTALERTPANEL_H
@@ -41,11 +37,9 @@
#include "llfloater.h"
#include "llui.h"
#include "llnotificationptr.h"
-#include "llalertdialog.h"
class LLButton;
class LLCheckBoxCtrl;
-class LLAlertDialogTemplate;
class LLLineEditor;
/**
@@ -62,7 +56,16 @@ class LLToastAlertPanel
public:
typedef bool (*display_callback_t)(S32 modal);
- static void setURLLoader(LLAlertURLLoader* loader)
+ class URLLoader
+ {
+ public:
+ virtual void load(const std::string& url, bool force_open_externally = 0) = 0;
+ virtual ~URLLoader()
+ {
+ }
+ };
+
+ static void setURLLoader(URLLoader* loader)
{
sURLLoader = loader;
}
@@ -95,7 +98,7 @@ private:
BOOL hasTitleBar() const;
private:
- static LLAlertURLLoader* sURLLoader;
+ static URLLoader* sURLLoader;
static LLControlGroup* sSettings;
struct ButtonData
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index eacc077a65..e49044cdca 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -40,7 +40,6 @@
#include "lliconctrl.h"
#include "llinventoryfunctions.h"
#include "llnotifications.h"
-#include "llnotify.h"
#include "llviewertexteditor.h"
#include "lluiconstants.h"
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 6339d23fa7..91de7d9ba2 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -63,7 +63,6 @@
#include "llviewerjoystick.h"
#include "llviewerparcelmgr.h"
#include "llparcel.h"
-#include "llnotify.h"
#include "lloverlaybar.h"
#include "llkeyboard.h"
#include "llerrorcontrol.h"
@@ -517,14 +516,12 @@ bool toggle_show_snapshot_button(const LLSD& newvalue)
bool toggle_show_navigation_panel(const LLSD& newvalue)
{
LLRect floater_view_rect = gFloaterView->getRect();
- LLRect notify_view_rect = gNotifyBoxView->getRect();
LLNavigationBar* navbar = LLNavigationBar::getInstance();
//if newvalue contains 0 => navbar should turn invisible, so floater_view_rect should get higher,
//and to do this pm=1, else if navbar becomes visible pm=-1 so floater_view_rect gets lower.
int pm=newvalue.asBoolean()?-1:1;
floater_view_rect.mTop += pm*(navbar->getDefNavBarHeight()-navbar->getDefFavBarHeight());
- notify_view_rect.mTop += pm*(navbar->getDefNavBarHeight()-navbar->getDefFavBarHeight());
gFloaterView->setRect(floater_view_rect);
floater_view_rect = gFloaterView->getRect();
navbar->showNavigationPanel(newvalue.asBoolean());
@@ -534,14 +531,12 @@ bool toggle_show_navigation_panel(const LLSD& newvalue)
bool toggle_show_favorites_panel(const LLSD& newvalue)
{
LLRect floater_view_rect = gFloaterView->getRect();
- LLRect notify_view_rect = gNotifyBoxView->getRect();
LLNavigationBar* navbar = LLNavigationBar::getInstance();
//if newvalue contains 0 => favbar should turn invisible, so floater_view_rect should get higher,
//and to do this pm=1, else if favbar becomes visible pm=-1 so floater_view_rect gets lower.
int pm=newvalue.asBoolean()?-1:1;
floater_view_rect.mTop += pm*navbar->getDefFavBarHeight();
- notify_view_rect.mTop += pm*navbar->getDefFavBarHeight();
gFloaterView->setRect(floater_view_rect);
navbar->showFavoritesPanel(newvalue.asBoolean());
return true;
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 9856cb2b7f..72031a699f 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -43,7 +43,6 @@
#include "llviewercontrol.h"
#include "llconsole.h"
#include "llinventorymodel.h"
-#include "llnotify.h"
#include "llgesturemgr.h"
#include "llinventorybridge.h"
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index bdc996c7d9..8fe18c56c9 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -59,7 +59,6 @@
#include "llnearbychat.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llpanelgrouplandmoney.h"
#include "llpanelplaces.h"
#include "llrecentpeople.h"
@@ -973,16 +972,8 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id,
const LLUUID& blocked_id;
};
- using namespace LLNotificationsUI;
- LLChannelManager* channel_manager = LLChannelManager::getInstance();
- LLScreenChannel
- * screen_channel =
- dynamic_cast<LLScreenChannel*> (channel_manager->findChannelByID(
- LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
- if (screen_channel != NULL)
- {
- screen_channel->killMatchedToasts(OfferMatcher(blocked_id));
- }
+ LLNotificationsUI::LLChannelManager::getInstance()->killToastsFromChannel(LLUUID(
+ gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(blocked_id));
}
LLOfferInfo::LLOfferInfo(const LLSD& sd)
@@ -4847,24 +4838,25 @@ bool script_question_cb(const LLSD& notification, const LLSD& response)
LLMuteList::getInstance()->add(LLMute(item_id, notification["payload"]["object_name"].asString(), LLMute::OBJECT));
// purge the message queue of any previously queued requests from the same source. DEV-4879
- class OfferMatcher : public LLNotifyBoxView::Matcher
+ class OfferMatcher : public LLNotificationsUI::LLScreenChannel::Matcher
{
public:
OfferMatcher(const LLUUID& to_block) : blocked_id(to_block) {}
- BOOL matches(const LLNotificationPtr notification) const
+ bool matches(const LLNotificationPtr notification) const
{
if (notification->getName() == "ScriptQuestionCaution"
|| notification->getName() == "ScriptQuestion")
{
return (notification->getPayload()["item_id"].asUUID() == blocked_id);
}
- return FALSE;
+ return false;
}
private:
const LLUUID& blocked_id;
};
- // should do this via the channel
- gNotifyBoxView->purgeMessagesMatching(OfferMatcher(item_id));
+
+ LLNotificationsUI::LLChannelManager::getInstance()->killToastsFromChannel(LLUUID(
+ gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(item_id));
}
if (response["Details"])
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 7a1abfd4e8..be68a2ef42 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -54,7 +54,6 @@
#include "llfloatergroups.h"
#include "llfloatersellland.h"
#include "llfloatertools.h"
-#include "llnotify.h"
#include "llparcelselection.h"
#include "llresmgr.h"
#include "llsdutil.h"
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index e0091145ce..300aea1620 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -51,7 +51,6 @@
#include "llmenugl.h"
#include "llnotecard.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llpanelplaces.h"
#include "llpreview.h"
#include "llpreviewnotecard.h"
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 8529a93527..79c113f036 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -82,7 +82,6 @@
// newview includes
#include "llagent.h"
-#include "llalertdialog.h"
#include "llbox.h"
#include "llconsole.h"
#include "llviewercontrol.h"
@@ -129,7 +128,6 @@
#include "llmorphview.h"
#include "llmoveview.h"
#include "llnavigationbar.h"
-#include "llnotify.h"
#include "lloverlaybar.h"
#include "llpreviewtexture.h"
#include "llprogressview.h"
@@ -1450,7 +1448,6 @@ void LLViewerWindow::initBase()
gDebugView = getRootView()->getChild<LLDebugView>("DebugView");
gDebugView->init();
- gNotifyBoxView = getRootView()->getChild<LLNotifyBoxView>("notify_container");
gToolTipView = getRootView()->getChild<LLToolTipView>("tooltip view");
// Add the progress bar view (startup view), which overrides everything
@@ -1628,8 +1625,6 @@ void LLViewerWindow::shutdownViews()
gMorphView = NULL;
gHUDView = NULL;
-
- gNotifyBoxView = NULL;
}
void LLViewerWindow::shutdownGL()
@@ -1997,9 +1992,6 @@ void LLViewerWindow::draw()
#if LL_DEBUG
LLView::sIsDrawing = FALSE;
#endif
-
- // UI post-draw Updates
- gNotifyBoxView->updateNotifyBoxView();
}
// Takes a single keydown event, usually when UI is visible
@@ -2595,7 +2587,6 @@ void LLViewerWindow::updateUI()
else if (dynamic_cast<LLUICtrl*>(viewp)
&& viewp != gMenuHolder
&& viewp != gFloaterView
- && viewp != gNotifyBoxView
&& viewp != gConsole)
{
if (dynamic_cast<LLFloater*>(viewp))
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 93b0ad4a5b..8828ebff6a 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -64,7 +64,6 @@
#include "llkeyframewalkmotion.h"
#include "llmutelist.h"
#include "llmoveview.h"
-#include "llnotify.h"
#include "llquantize.h"
#include "llregionhandle.h"
#include "llresmgr.h"
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 31047413ef..bd7619f7e5 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -41,7 +41,6 @@
#include "llviewerinventory.h"
#include "llviewerstats.h"
#include "llnotificationsutil.h"
-#include "llnotify.h"
#include "llinventorymodel.h"
#include "lltrans.h"
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 72431bd22f..c056c84e19 100644
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -42,10 +42,9 @@
#include "llviewercontrol.h"
#include "llfloatermediabrowser.h"
#include "llfloaterreg.h"
-#include "llalertdialog.h"
#include "lltoastalertpanel.h"
-class URLLoader : public LLAlertURLLoader
+class URLLoader : public LLToastAlertPanel::URLLoader
{
virtual void load(const std::string& url , bool force_open_externally)
{
@@ -65,7 +64,6 @@ static URLLoader sAlertURLLoader;
// static
void LLWeb::initClass()
{
- LLAlertDialog::setURLLoader(&sAlertURLLoader);
LLToastAlertPanel::setURLLoader(&sAlertURLLoader);
}