From e0f5606db36c64f69dc60e0b68752b16acf20734 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Thu, 23 May 2024 15:55:45 +0300
Subject: viewer-private#240 Restore missing marketplace notification

---
 indra/llui/llfolderviewitem.cpp                            | 14 ++++++++++----
 indra/llui/llfolderviewitem.h                              |  4 ++--
 .../xui/en/panel_marketplace_listings_inventory.xml        |  2 +-
 .../default/xui/en/panel_marketplace_listings_listed.xml   |  2 +-
 .../xui/en/panel_marketplace_listings_unassociated.xml     |  2 +-
 .../default/xui/en/panel_marketplace_listings_unlisted.xml |  2 +-
 6 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index a9e1171444..a905e9b59b 100644
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -31,11 +31,12 @@
 #include "llfolderviewitem.h"
 #include "llfolderview.h"
 #include "llfolderviewmodel.h"
-#include "llpanel.h"
 #include "llcallbacklist.h"
 #include "llcriticaldamp.h"
 #include "llclipboard.h"
 #include "llfocusmgr.h"     // gFocusMgr
+#include "llnotificationsutil.h"
+#include "llpanel.h"
 #include "lltrans.h"
 #include "llwindow.h"
 
@@ -105,7 +106,7 @@ LLFolderViewItem::Params::Params()
     item_height("item_height"),
     item_top_pad("item_top_pad"),
     creation_date(),
-    allow_wear("allow_wear", true),
+    marketplace_item("marketplace_item", false),
     allow_drop("allow_drop", true),
     font_color("font_color"),
     font_highlight_color("font_highlight_color"),
@@ -144,7 +145,7 @@ LLFolderViewItem::LLFolderViewItem(const LLFolderViewItem::Params& p)
     mRoot(p.root),
     mViewModelItem(p.listener),
     mIsMouseOverTitle(false),
-    mAllowWear(p.allow_wear),
+    mMarketplaceItem(p.marketplace_item),
     mAllowDrop(p.allow_drop),
     mFontColor(p.font_color),
     mFontHighlightColor(p.font_highlight_color),
@@ -533,10 +534,15 @@ void LLFolderViewItem::buildContextMenu(LLMenuGL& menu, U32 flags)
 
 void LLFolderViewItem::openItem( void )
 {
-    if (mAllowWear || !getViewModelItem()->isItemWearable())
+    if (!mMarketplaceItem || !getViewModelItem()->isItemWearable())
     {
         getViewModelItem()->openItem();
     }
+    else if (mMarketplaceItem)
+    {
+        // Wearing an object from any listing, active or not, is verbotten
+        LLNotificationsUtil::add("AlertMerchantListingCannotWear");
+    }
 }
 
 void LLFolderViewItem::rename(const std::string& new_name)
diff --git a/indra/llui/llfolderviewitem.h b/indra/llui/llfolderviewitem.h
index 351613e387..275fd52c00 100644
--- a/indra/llui/llfolderviewitem.h
+++ b/indra/llui/llfolderviewitem.h
@@ -59,7 +59,7 @@ public:
                                                     item_top_pad;
 
         Optional<time_t>                            creation_date;
-        Optional<bool>                              allow_wear;
+        Optional<bool>                              marketplace_item;
         Optional<bool>                              allow_drop;
 
         Optional<LLUIColor>                         font_color;
@@ -121,7 +121,7 @@ protected:
                                 mIsCurSelection,
                                 mDragAndDropTarget,
                                 mIsMouseOverTitle,
-                                mAllowWear,
+                                mMarketplaceItem,
                                 mAllowDrop,
                                 mSingleFolderMode,
                                 mDoubleClickOverride,
diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml
index a8a306bea9..9586957694 100644
--- a/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_inventory.xml
@@ -21,5 +21,5 @@
     border="false"
     bevel_style="none"
     show_item_link_overlays="true">
-    <item allow_wear="false"/>
+    <item marketplace_item="true"/> 
 </inventory_panel>
diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml
index 0c665fb07e..5f64a5d47a 100644
--- a/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml
+++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_listed.xml
@@ -20,5 +20,5 @@
     border="false"
     bevel_style="none"
     show_item_link_overlays="true">
-    <item allow_wear="false"/>
+    <item marketplace_item="true"/>
 </inventory_panel>
diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml
index 0be405c5b8..ab4d836ba9 100644
--- a/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml
+++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unassociated.xml
@@ -19,5 +19,5 @@
     border="false"
     bevel_style="none"
     show_item_link_overlays="true">
-    <item allow_wear="false"/>
+    <item marketplace_item="true"/>
 </inventory_panel>
diff --git a/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml
index 58122db7f4..303601e65b 100644
--- a/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml
+++ b/indra/newview/skins/default/xui/en/panel_marketplace_listings_unlisted.xml
@@ -20,5 +20,5 @@
     border="false"
     bevel_style="none"
     show_item_link_overlays="true">
-    <item allow_wear="false"/>
+    <item marketplace_item="true"/>
 </inventory_panel>
-- 
cgit v1.2.3