summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterimcontainer.cpp
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2025-10-30 16:59:51 +0200
committerMnikolenko Productengine <mnikolenko@productengine.com>2025-10-30 16:59:51 +0200
commitcf048cf9c3ebd9ca8ee1e606b69bc459b62ed1c5 (patch)
tree9864a2073a056ee6fd6b7391a2c39b885bb09363 /indra/newview/llfloaterimcontainer.cpp
parent21e9b38f06e187414d30c12c8c69ebf7b4e4e636 (diff)
#4013 Update voice moderator options; show notifications when muted; add stub code for info request
Diffstat (limited to 'indra/newview/llfloaterimcontainer.cpp')
-rw-r--r--indra/newview/llfloaterimcontainer.cpp35
1 files changed, 5 insertions, 30 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index c25fbdcc51..ac8234bf24 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -92,6 +92,7 @@ LLFloaterIMContainer::LLFloaterIMContainer(const LLSD& seed, const Params& param
mAutoResize = false;
LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::IM, this);
+ LLNearbyVoiceModeration::getInstance();
}
LLFloaterIMContainer::~LLFloaterIMContainer()
@@ -543,7 +544,7 @@ void LLFloaterIMContainer::idleUpdate()
dynamic_cast<LLConversationItemParticipant*>((*current_participant_model).get());
if (participant_model)
{
- participant_model->setModeratorOptionsVisible(isNearbyChatModerator());
+ participant_model->setModeratorOptionsVisible(LLNearbyVoiceModeration::getInstance()->isNearbyChatModerator());
}
current_participant_model++;
@@ -2037,7 +2038,7 @@ LLConversationViewParticipant* LLFloaterIMContainer::createConversationViewParti
bool LLFloaterIMContainer::enableModerateContextMenuItem(const std::string& userdata, bool is_self)
{
- if (isNearbyChatModerator() && isNearbyChatSpeakerSelected())
+ if (LLNearbyVoiceModeration::getInstance()->isNearbyChatModerator() && isNearbyChatSpeakerSelected())
{
// Determine here which actions are allowed
if ("can_moderate_voice" == userdata)
@@ -2046,7 +2047,7 @@ bool LLFloaterIMContainer::enableModerateContextMenuItem(const std::string& user
}
else if (("can_mute" == userdata))
{
- return true;
+ return !is_self;
}
else if ("can_unmute" == userdata)
{
@@ -2199,30 +2200,12 @@ void LLFloaterIMContainer::moderateVoice(const std::string& command, const LLUUI
{
if ("selected" == command)
{
- // Toggle the voice icon display
- LLAvatarActions::toggleMuteVoice(userID);
-
// Request a mute/unmute using a capability request via the simulator
- const bool mute_state = LLAvatarActions::isVoiceMuted(userID);
- LLNearbyVoiceModeration::getInstance()->requestMuteIndividual(userID, mute_state);
+ LLNearbyVoiceModeration::getInstance()->requestMuteIndividual(userID, !isMuted(userID));
}
else
if ("mute_all" == command)
{
- // TODO: the SpatialVoiceModerationRequest has an mute_all/unmute_all
- // verb but we do not have an equivalent of LLAvatarActions::toggleMuteVoice(userID);
- // to visually mute all the speaker icons in the conversation floater
-
- // Mute visually too
- conversations_widgets_map::const_iterator iter = mConversationsWidgets.begin();
- conversations_widgets_map::const_iterator end = mConversationsWidgets.end();
- const LLUUID * conversation_uuidp = NULL;
- while(iter != end)
- {
- const LLUUID id = (*iter).first;
- ++iter;
- }
-
// Send the mute_all request to the server
const bool mute_state = true;
LLNearbyVoiceModeration::getInstance()->requestMuteAll(mute_state);
@@ -2230,8 +2213,6 @@ void LLFloaterIMContainer::moderateVoice(const std::string& command, const LLUUI
else
if ("unmute_all" == command)
{
- // TODO: same idea as "mute_all" above
-
// Send the unmute_all request to the server
const bool mute_state = false;
LLNearbyVoiceModeration::getInstance()->requestMuteAll(mute_state);
@@ -2381,12 +2362,6 @@ bool LLFloaterIMContainer::isNearbyChatSpeakerSelected()
return conversation_uuidp->isNull();
}
-bool LLFloaterIMContainer::isNearbyChatModerator()
-{
- // TODO: Need a better heurestic for determining if this person is a moderator :)
- return true;
-}
-
void LLFloaterIMContainer::toggleAllowTextChat(const LLUUID& participant_uuid)
{
LLIMSpeakerMgr * speaker_managerp = dynamic_cast<LLIMSpeakerMgr*>(getSpeakerMgrForSelectedParticipant());