summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llnotifications.cpp8
-rw-r--r--indra/llui/llnotifications.h22
2 files changed, 26 insertions, 4 deletions
diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index c9b4399bef..9ba598995f 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -475,7 +475,8 @@ LLNotification::LLNotification(const LLSDParamAdapter<Params>& p) :
mIgnored(false),
mResponderObj(NULL),
mId(p.id.isProvided() ? p.id : LLUUID::generateNewID()),
- mOfferFromAgent(p.offer_from_agent)
+ mOfferFromAgent(p.offer_from_agent),
+ mIsDND(p.is_dnd)
{
if (p.functor.name.isChosen())
{
@@ -517,6 +518,11 @@ LLSD LLNotification::asLLSD()
p.expiry = mExpiresAt;
p.priority = mPriority;
+ if(mResponder)
+ {
+ p.functor.responder_sd = mResponder->asLLSD();
+ }
+
if(!mResponseFunctorName.empty())
{
p.functor.name = mResponseFunctorName;
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index 42dee4c3e9..092a9acd7c 100644
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -316,17 +316,20 @@ public:
Optional<LLNotificationContext*> context;
Optional<void*> responder;
Optional<bool> offer_from_agent;
+ Optional<bool> is_dnd;
struct Functor : public LLInitParam::ChoiceBlock<Functor>
{
Alternative<std::string> name;
Alternative<LLNotificationFunctorRegistry::ResponseFunctor> function;
Alternative<LLNotificationResponderPtr> responder;
+ Alternative<LLSD> responder_sd;
Functor()
: name("responseFunctor"),
function("functor"),
- responder("responder")
+ responder("responder"),
+ responder_sd("responder_sd")
{}
};
Optional<Functor> functor;
@@ -340,7 +343,8 @@ public:
form_elements("form"),
substitutions("substitutions"),
expiry("expiry"),
- offer_from_agent("offer_from_agent", false)
+ offer_from_agent("offer_from_agent", false),
+ is_dnd("is_dnd", false)
{
time_stamp = LLDate::now();
responder = NULL;
@@ -354,7 +358,8 @@ public:
form_elements("form"),
substitutions("substitutions"),
expiry("expiry"),
- offer_from_agent("offer_from_agent", false)
+ offer_from_agent("offer_from_agent", false),
+ is_dnd("is_dnd", false)
{
functor.name = _name;
name = _name;
@@ -381,6 +386,7 @@ private:
void* mResponderObj; // TODO - refactor/remove this field
LLNotificationResponderPtr mResponder;
bool mOfferFromAgent;
+ bool mIsDND;
// a reference to the template
LLNotificationTemplatePtr mTemplatep;
@@ -521,6 +527,16 @@ public:
return mOfferFromAgent;
}
+ bool isDND() const
+ {
+ return mIsDND;
+ }
+
+ void setDND(const bool flag)
+ {
+ mIsDND = flag;
+ }
+
std::string getType() const;
std::string getMessage() const;
std::string getFooter() const;