STORM-1567 Mute button for llDialog popup
Updating patch to current version of viewer-developmentmeow-7.2.2
parent
aa1424365e
commit
541e26d947
|
|
@ -565,6 +565,7 @@ Jonathan Yap
|
|||
STORM-1273
|
||||
STORM-1462
|
||||
STORM-1459
|
||||
STORM-1567
|
||||
Kadah Coba
|
||||
STORM-1060
|
||||
Jondan Lundquist
|
||||
|
|
|
|||
|
|
@ -305,10 +305,17 @@ void LLToastNotifyPanel::updateButtonsLayout(const std::vector<index_button_pair
|
|||
S32 left = 0;
|
||||
//reserve place for ignore button
|
||||
S32 bottom_offset = mIsScriptDialog ? (BTN_HEIGHT + IGNORE_BTN_TOP_DELTA + BOTTOM_PAD) : BOTTOM_PAD;
|
||||
S32 ignore_btn_hoffset = 0;
|
||||
S32 max_width = mControlPanel->getRect().getWidth();
|
||||
LLButton* ignore_btn = NULL;
|
||||
LLButton* mute_btn = NULL;
|
||||
for (std::vector<index_button_pair_t>::const_iterator it = buttons.begin(); it != buttons.end(); it++)
|
||||
{
|
||||
if (-2 == it->first)
|
||||
{
|
||||
mute_btn = it->second;
|
||||
continue;
|
||||
}
|
||||
if (it->first == -1)
|
||||
{
|
||||
ignore_btn = it->second;
|
||||
|
|
@ -328,6 +335,8 @@ void LLToastNotifyPanel::updateButtonsLayout(const std::vector<index_button_pair
|
|||
left = btn_rect.mLeft + btn_rect.getWidth() + h_pad;
|
||||
mControlPanel->addChild(btn, -1);
|
||||
}
|
||||
|
||||
U32 ignore_btn_width = 0;
|
||||
if (mIsScriptDialog && ignore_btn != NULL)
|
||||
{
|
||||
LLRect ignore_btn_rect(ignore_btn->getRect());
|
||||
|
|
@ -337,11 +346,28 @@ void LLToastNotifyPanel::updateButtonsLayout(const std::vector<index_button_pair
|
|||
{
|
||||
ignore_btn_left = max_width - ignore_btn_rect.getWidth() - 2 * HPAD;
|
||||
}
|
||||
ignore_btn_hoffset = ignore_btn_left;
|
||||
ignore_btn_rect.setOriginAndSize(ignore_btn_left, BOTTOM_PAD,// always move ignore button at the bottom
|
||||
ignore_btn_rect.getWidth(), ignore_btn_rect.getHeight());
|
||||
ignore_btn->setRect(ignore_btn_rect);
|
||||
ignore_btn_width = ignore_btn_rect.getWidth();
|
||||
mControlPanel->addChild(ignore_btn, -1);
|
||||
}
|
||||
|
||||
if (mIsScriptDialog && mute_btn != NULL)
|
||||
{
|
||||
LLRect mute_btn_rect(mute_btn->getRect());
|
||||
S32 buttons_per_row = max_width / BUTTON_WIDTH; //assume that h_pad far less than BUTTON_WIDTH
|
||||
S32 mute_btn_left = buttons_per_row * BUTTON_WIDTH + (buttons_per_row - 1) * h_pad - mute_btn_rect.getWidth() - ignore_btn_width - (h_pad / 2);
|
||||
if (mute_btn_left + mute_btn_rect.getWidth() > max_width) // make sure that the mute button is in panel
|
||||
{
|
||||
mute_btn_left = max_width - mute_btn_rect.getWidth() - 2 * HPAD;
|
||||
}
|
||||
mute_btn_rect.setOriginAndSize(mute_btn_left, BOTTOM_PAD,// always move mute button at the bottom
|
||||
mute_btn_rect.getWidth(), mute_btn_rect.getHeight());
|
||||
mute_btn->setRect(mute_btn_rect);
|
||||
mControlPanel->addChild(mute_btn);
|
||||
}
|
||||
}
|
||||
|
||||
void LLToastNotifyPanel::adjustPanelForScriptNotice(S32 button_panel_width, S32 button_panel_height)
|
||||
|
|
|
|||
|
|
@ -6544,8 +6544,22 @@ bool callback_script_dialog(const LLSD& notification, const LLSD& response)
|
|||
rtn_text = LLNotification::getSelectedOptionName(response);
|
||||
}
|
||||
|
||||
// Didn't click "Ignore"
|
||||
if (button_idx != -1)
|
||||
// Button -2 = Mute
|
||||
// Button -1 = Ignore - no processing needed for this button
|
||||
// Buttons 0 and above = dialog choices
|
||||
|
||||
if (-2 == button_idx)
|
||||
{
|
||||
std::string object_name = notification["payload"]["object_name"].asString();
|
||||
LLUUID object_id = notification["payload"]["object_id"].asUUID();
|
||||
LLMute mute(object_id, object_name, LLMute::OBJECT);
|
||||
if (LLMuteList::getInstance()->add(mute))
|
||||
{
|
||||
LLPanelBlockedList::showPanelAndSelect(object_id);
|
||||
}
|
||||
}
|
||||
|
||||
if (0 <= button_idx)
|
||||
{
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessage("ScriptDialogReply");
|
||||
|
|
@ -6588,12 +6602,12 @@ void process_script_dialog(LLMessageSystem* msg, void**)
|
|||
std::string message;
|
||||
std::string first_name;
|
||||
std::string last_name;
|
||||
std::string title;
|
||||
std::string object_name;
|
||||
|
||||
S32 chat_channel;
|
||||
msg->getString("Data", "FirstName", first_name);
|
||||
msg->getString("Data", "LastName", last_name);
|
||||
msg->getString("Data", "ObjectName", title);
|
||||
msg->getString("Data", "ObjectName", object_name);
|
||||
msg->getString("Data", "Message", message);
|
||||
msg->getS32("Data", "ChatChannel", chat_channel);
|
||||
|
||||
|
|
@ -6604,6 +6618,7 @@ void process_script_dialog(LLMessageSystem* msg, void**)
|
|||
payload["sender"] = msg->getSender().getIPandPort();
|
||||
payload["object_id"] = object_id;
|
||||
payload["chat_channel"] = chat_channel;
|
||||
payload["object_name"] = object_name;
|
||||
|
||||
// build up custom form
|
||||
S32 button_count = msg->getNumberOfBlocks("Buttons");
|
||||
|
|
@ -6622,7 +6637,7 @@ void process_script_dialog(LLMessageSystem* msg, void**)
|
|||
}
|
||||
|
||||
LLSD args;
|
||||
args["TITLE"] = title;
|
||||
args["TITLE"] = object_name;
|
||||
args["MESSAGE"] = message;
|
||||
LLNotificationPtr notification;
|
||||
if (!first_name.empty())
|
||||
|
|
|
|||
|
|
@ -6275,6 +6275,10 @@ Grant this request?
|
|||
[GROUPNAME]'s '<nolink>[TITLE]</nolink>'
|
||||
[MESSAGE]
|
||||
<form name="form">
|
||||
<button
|
||||
index="-2"
|
||||
name="Mute"
|
||||
text="Block"/>
|
||||
<button
|
||||
index="-1"
|
||||
name="Ignore"
|
||||
|
|
|
|||
Loading…
Reference in New Issue