summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/llnotifications.cpp6
-rw-r--r--indra/llui/llnotifications.h4
-rw-r--r--indra/newview/lltoastalertpanel.cpp4
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml24
4 files changed, 30 insertions, 8 deletions
diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index 6710e9993d..7bafd711cb 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -67,7 +67,8 @@ LLNotificationForm::FormIgnore::FormIgnore()
: text("text"),
control("control"),
invert_control("invert_control", false),
- save_option("save_option", false)
+ save_option("save_option", false),
+ session_only("session_only", false)
{}
LLNotificationForm::FormButton::FormButton()
@@ -125,6 +126,7 @@ bool handleIgnoredNotification(const LLSD& payload)
switch(form->getIgnoreType())
{
case LLNotificationForm::IGNORE_WITH_DEFAULT_RESPONSE:
+ case LLNotificationForm::IGNORE_WITH_DEFAULT_RESPONSE_SESSION_ONLY:
response = pNotif->getResponseTemplate(LLNotification::WITH_DEFAULT_BUTTON);
break;
case LLNotificationForm::IGNORE_WITH_LAST_RESPONSE:
@@ -197,7 +199,7 @@ LLNotificationForm::LLNotificationForm(const std::string& name, const LLNotifica
if (!p.ignore.save_option)
{
- mIgnore = IGNORE_WITH_DEFAULT_RESPONSE;
+ mIgnore = p.ignore.session_only ? IGNORE_WITH_DEFAULT_RESPONSE_SESSION_ONLY : IGNORE_WITH_DEFAULT_RESPONSE;
}
else
{
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index b06d7cbf4c..ccdfb90054 100644
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -179,6 +179,7 @@ public:
Optional<bool> save_option;
Optional<std::string> control;
Optional<bool> invert_control;
+ Optional<bool> session_only;
FormIgnore();
};
@@ -232,7 +233,8 @@ public:
typedef enum e_ignore_type
{
IGNORE_NO,
- IGNORE_WITH_DEFAULT_RESPONSE,
+ IGNORE_WITH_DEFAULT_RESPONSE,
+ IGNORE_WITH_DEFAULT_RESPONSE_SESSION_ONLY,
IGNORE_WITH_LAST_RESPONSE,
IGNORE_SHOW_AGAIN
} EIgnoreType;
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index bbce717c20..dbf0893e43 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -351,6 +351,10 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal
{
setCheckBox(LLNotifications::instance().getGlobalString("skipnexttime"), ignore_label);
}
+ if (form->getIgnoreType() == LLNotificationForm::IGNORE_WITH_DEFAULT_RESPONSE_SESSION_ONLY)
+ {
+ setCheckBox(LLNotifications::instance().getGlobalString("skipnexttimesessiononly"), ignore_label);
+ }
else if (form->getIgnoreType() == LLNotificationForm::IGNORE_WITH_LAST_RESPONSE)
{
setCheckBox(LLNotifications::instance().getGlobalString("alwayschoose"), ignore_label);
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 6147005d22..4ae809b3fb 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -4,6 +4,11 @@
Don&apos;t show me this again
</global>
+ <global name="skipnexttimesessiononly">
+
+ Don&apos;t show me this again (for this session only)
+ </global>
+
<global name="alwayschoose">
Always choose this option
@@ -6004,11 +6009,20 @@ You cannot undo this action.
<unique/>
[QUESTION]
<tag>confirm</tag>
- <usetemplate
- ignoretext="Confirm before deleting items"
- name="okcancelignore"
- notext="Cancel"
- yestext="OK"/>
+ <form name="form">
+ <ignore name="ignore"
+ session_only="true"
+ text="Confirm before deleting items"/>
+ <button
+ default="true"
+ index="0"
+ name="Yes"
+ text="OK"/>
+ <button
+ index="1"
+ name="No"
+ text="Cancel"/>
+ </form>
</notification>
<notification