From 5665c5320c50180e69e3616613b7796da919a721 Mon Sep 17 00:00:00 2001
From: pavelkproductengine <pavelkproductengine@lindenlab.com>
Date: Fri, 31 Jul 2015 17:49:45 +0300
Subject: MAINT-5394 [Project Notice] The PERMISSION_DEBIT notification is not
 distinct enough on the Project Notice viewer.

---
 indra/newview/llfloaternotificationstabbed.cpp |  6 +++++-
 indra/newview/llnotificationlistitem.cpp       | 12 +++++++++++-
 indra/newview/llnotificationlistitem.h         |  7 +++++++
 3 files changed, 23 insertions(+), 2 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/llfloaternotificationstabbed.cpp b/indra/newview/llfloaternotificationstabbed.cpp
index 57109c6763..5823983b76 100644
--- a/indra/newview/llfloaternotificationstabbed.cpp
+++ b/indra/newview/llfloaternotificationstabbed.cpp
@@ -396,6 +396,7 @@ void LLFloaterNotificationsTabbed::onStoreToast(LLPanel* info_panel, LLUUID id)
     p.paid_from_id = payload["from_id"];
     p.paid_to_id = payload["dest_id"];
     p.inventory_offer = payload["inventory_offer"];
+    p.notification_priority = notify->getPriority();
     addItem(p);
 }
 
@@ -403,7 +404,10 @@ void LLFloaterNotificationsTabbed::onStoreToast(LLPanel* info_panel, LLUUID id)
 void LLFloaterNotificationsTabbed::onItemClick(LLNotificationListItem* item)
 {
     LLUUID id = item->getID();
-    //LLFloaterReg::showInstance("inspect_toast", id);
+    if (item->showPopup())
+    {
+        LLFloaterReg::showInstance("inspect_toast", id);
+    }
 }
 
 //---------------------------------------------------------------------------------
diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp
index a22da59a5d..2b10457e99 100644
--- a/indra/newview/llnotificationlistitem.cpp
+++ b/indra/newview/llnotificationlistitem.cpp
@@ -566,9 +566,19 @@ BOOL LLTransactionNotificationListItem::postBuild()
 
 LLSystemNotificationListItem::LLSystemNotificationListItem(const Params& p)
     : LLNotificationListItem(p),
-    mSystemNotificationIcon(NULL)
+    mSystemNotificationIcon(NULL),
+    mIsCaution(false)
 {
     buildFromFile("panel_notification_list_item.xml");
+    mIsCaution = p.notification_priority >= NOTIFICATION_PRIORITY_HIGH;
+    if (mIsCaution)
+    {
+        mTitleBox->setColor(LLUIColorTable::instance().getColor("NotifyCautionBoxColor"));
+        mTitleBoxExp->setColor(LLUIColorTable::instance().getColor("NotifyCautionBoxColor"));
+        mNoticeTextExp->setReadOnlyColor(LLUIColorTable::instance().getColor("NotifyCautionBoxColor"));
+        mTimeBox->setColor(LLUIColorTable::instance().getColor("NotifyCautionBoxColor"));
+        mTimeBoxExp->setColor(LLUIColorTable::instance().getColor("NotifyCautionBoxColor"));
+    }
 }
 
 BOOL LLSystemNotificationListItem::postBuild()
diff --git a/indra/newview/llnotificationlistitem.h b/indra/newview/llnotificationlistitem.h
index 86b1128de0..4df21951a1 100644
--- a/indra/newview/llnotificationlistitem.h
+++ b/indra/newview/llnotificationlistitem.h
@@ -59,6 +59,7 @@ public:
         LLDate          time_stamp;
         LLDate          received_time;
         LLSD            inventory_offer;
+        e_notification_priority notification_priority;
         Params()        {};
     };
 
@@ -87,6 +88,7 @@ public:
     boost::signals2::connection setOnItemCloseCallback(item_callback_t cb) { return mOnItemClose.connect(cb); }
     boost::signals2::connection setOnItemClickCallback(item_callback_t cb) { return mOnItemClick.connect(cb); }
     
+    virtual bool showPopup() { return true; }
     void setExpanded(BOOL value);
     virtual BOOL postBuild();
 
@@ -162,6 +164,8 @@ public:
     static std::set<std::string> getTypes();
     virtual BOOL postBuild();
 
+    /*virtual*/ bool showPopup() { return false; }
+
 private:
     friend class LLNotificationListItem;
     LLGroupInviteNotificationListItem(const Params& p);
@@ -188,6 +192,8 @@ public:
     static std::set<std::string> getTypes();
     virtual BOOL postBuild();
 
+    /*virtual*/ bool showPopup() { return false; }
+
 private:
     friend class LLNotificationListItem;
     LLGroupNoticeNotificationListItem(const Params& p);
@@ -232,6 +238,7 @@ private:
     LLSystemNotificationListItem & operator=(LLSystemNotificationListItem &);
     LLIconCtrl* mSystemNotificationIcon;
     LLIconCtrl* mSystemNotificationIconExp;
+    bool mIsCaution;
 };
 
 #endif // LL_LLNOTIFICATIONLISTITEM_H
-- 
cgit v1.2.3