From f8907b327bb0009047b9cef54fde3d7dc6e8d6ca Mon Sep 17 00:00:00 2001
From: Leyla Farazha <leyla@lindenlab.com>
Date: Wed, 25 May 2011 11:17:47 -0700
Subject: [PATCH] hooking up marketplace inbox to inventory

---
 indra/newview/llfolderviewitem.cpp            |   8 +++--
 indra/newview/llviewerfoldertype.cpp          |  24 ++++++++++---
 indra/newview/llviewerfoldertype.h            |   1 +
 .../skins/default/textures/textures.xml       |   2 +-
 .../textures/widgets/MarketplaceBtn_Off.png   | Bin 711 -> 1067 bytes
 .../widgets/MarketplaceBtn_Selected.png       | Bin 702 -> 1086 bytes
 .../default/xui/en/sidepanel_inventory.xml    |  32 ++++++++++++------
 7 files changed, 49 insertions(+), 18 deletions(-)

diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index e9d1ad3a9e3..d2bbfa2c2b5 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -30,6 +30,7 @@
 // viewer includes
 #include "llfolderview.h"		// Items depend extensively on LLFolderViews
 #include "llfoldervieweventlistener.h"
+#include "llviewerfoldertype.h"
 #include "llinventorybridge.h"	// for LLItemBridge in LLInventorySort::operator()
 #include "llinventoryfilter.h"
 #include "llinventorymodelbackgroundfetch.h"
@@ -1190,8 +1191,11 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height, S32 filter_generation)
 				}
 				else
 				{
-					folderp->setVisible(show_folder_state == LLInventoryFilter::SHOW_ALL_FOLDERS || // always show folders?
-						(folderp->getFiltered(filter_generation) || folderp->hasFilteredDescendants(filter_generation))); // passed filter or has descendants that passed filter
+					bool is_hidden = folderp->getListener() && LLViewerFolderType::lookupIsHiddenType(folderp->getListener()->getPreferredType());
+
+					folderp->setVisible( !is_hidden &&
+						(show_folder_state == LLInventoryFilter::SHOW_ALL_FOLDERS || // always show folders?
+						(folderp->getFiltered(filter_generation) || folderp->hasFilteredDescendants(filter_generation)))); // passed filter or has descendants that passed filter
 				}
 
 				if (folderp->getVisible())
diff --git a/indra/newview/llviewerfoldertype.cpp b/indra/newview/llviewerfoldertype.cpp
index de1c8d14a86..1623357c906 100644
--- a/indra/newview/llviewerfoldertype.cpp
+++ b/indra/newview/llviewerfoldertype.cpp
@@ -40,6 +40,7 @@ struct ViewerFolderEntry : public LLDictionaryEntry
 					  const std::string &icon_name_open,	// name of the folder icon
 					  const std::string &icon_name_closed,
 					  BOOL is_quiet,						// folder doesn't need a UI update when changed
+					  bool is_hidden = false,
 					  const std::string &dictionary_name = empty_string // no reverse lookup needed on non-ensembles, so in most cases just leave this blank
 		) 
 		:
@@ -47,7 +48,8 @@ struct ViewerFolderEntry : public LLDictionaryEntry
 		mNewCategoryName(new_category_name),
 		mIconNameOpen(icon_name_open),
 		mIconNameClosed(icon_name_closed),
-		mIsQuiet(is_quiet)
+		mIsQuiet(is_quiet),
+		mIsHidden(is_hidden)
 	{
 		mAllowedNames.clear();
 	}
@@ -66,7 +68,8 @@ struct ViewerFolderEntry : public LLDictionaryEntry
 		*/
 		mIconNameOpen("Inv_FolderOpen"), mIconNameClosed("Inv_FolderClosed"),
 		mNewCategoryName(new_category_name),
-		mIsQuiet(FALSE)
+		mIsQuiet(FALSE),
+		mIsHidden(false)
 	{
 		const std::string delims (",");
 		LLStringUtilBase<char>::getTokens(allowed_names, mAllowedNames, delims);
@@ -91,6 +94,7 @@ struct ViewerFolderEntry : public LLDictionaryEntry
 	typedef std::vector<std::string> name_vec_t;
 	name_vec_t mAllowedNames;
 	BOOL mIsQuiet;
+	bool mIsHidden;
 };
 
 class LLViewerFolderDictionary : public LLSingleton<LLViewerFolderDictionary>,
@@ -126,9 +130,9 @@ LLViewerFolderDictionary::LLViewerFolderDictionary()
 	addEntry(LLFolderType::FT_CURRENT_OUTFIT, 		new ViewerFolderEntry("Current Outfit",			"Inv_SysOpen",			"Inv_SysClosed",		TRUE));
 	addEntry(LLFolderType::FT_OUTFIT, 				new ViewerFolderEntry("New Outfit",				"Inv_LookFolderOpen",	"Inv_LookFolderClosed",	TRUE));
 	addEntry(LLFolderType::FT_MY_OUTFITS, 			new ViewerFolderEntry("My Outfits",				"Inv_SysOpen",			"Inv_SysClosed",		TRUE));
-	addEntry(LLFolderType::FT_INBOX, 				new ViewerFolderEntry("Inbox",					"Inv_SysOpen",			"Inv_SysClosed",		FALSE));
+	addEntry(LLFolderType::FT_INBOX, 				new ViewerFolderEntry("Inbox",					"Inv_SysOpen",			"Inv_SysClosed",		FALSE, true));
 		 
-	addEntry(LLFolderType::FT_NONE, 				new ViewerFolderEntry("New Folder",				"Inv_FolderOpen",		"Inv_FolderClosed",		FALSE, "default"));
+	addEntry(LLFolderType::FT_NONE, 				new ViewerFolderEntry("New Folder",				"Inv_FolderOpen",		"Inv_FolderClosed",		FALSE, false, "default"));
 
 #if SUPPORT_ENSEMBLES
 	initEnsemblesFromFile();
@@ -255,6 +259,18 @@ BOOL LLViewerFolderType::lookupIsQuietType(LLFolderType::EType folder_type)
 }
 
 
+BOOL LLViewerFolderType::lookupIsHiddenType(LLFolderType::EType folder_type)
+{
+	const ViewerFolderEntry *entry = LLViewerFolderDictionary::getInstance()->lookup(folder_type);
+	if (entry)
+	{
+		return entry->mIsHidden;
+	}
+	return FALSE;
+}
+
+
+
 const std::string &LLViewerFolderType::lookupNewCategoryName(LLFolderType::EType folder_type)
 {
 	const ViewerFolderEntry *entry = LLViewerFolderDictionary::getInstance()->lookup(folder_type);
diff --git a/indra/newview/llviewerfoldertype.h b/indra/newview/llviewerfoldertype.h
index f5938de619b..a348274e8fe 100644
--- a/indra/newview/llviewerfoldertype.h
+++ b/indra/newview/llviewerfoldertype.h
@@ -40,6 +40,7 @@ class LLViewerFolderType : public LLFolderType
 
 	static const std::string&   lookupIconName(EType folder_type, BOOL is_open = FALSE); // folder icon name
 	static BOOL					lookupIsQuietType(EType folder_type); // folder doesn't require UI update when changes have occured
+	static BOOL					lookupIsHiddenType(EType folder_type); // folder doesn't require UI update when changes have occured
 	static const std::string&	lookupNewCategoryName(EType folder_type); // default name when creating new category
 	static LLFolderType::EType	lookupTypeFromNewCategoryName(const std::string& name); // default name when creating new category
 
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 4f19dd9a6d3..ec12d996bf8 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -250,7 +250,7 @@ with the same filename but different name
   <texture name="Locked_Icon" file_name="icons/Locked_Icon.png" preload="false" />
 
   <texture name="MarketplaceBtn_Off" file_name="widgets/MarketplaceBtn_Off.png" preload="true" scale.left="30" scale.top="19" scale.right="35" scale.bottom="4" />
-  <texture name="MarketplaceBtn_Selected" file_name="widgets/MarketplaceBtn_Selected.png" preload="true" scale.left="22" scale.top="16" scale.right="26" scale.bottom="7" />
+  <texture name="MarketplaceBtn_Selected" file_name="widgets/MarketplaceBtn_Selected.png" preload="true" scale.left="30" scale.top="19" scale.right="35" scale.bottom="4" />
 
   <texture name="Microphone_On" file_name="icons/Microphone_On.png" preload="false" />
 
diff --git a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Off.png
index e291a1c5080ee07f6e722220896d22c2e5b503c0..e603c4438400d3091c47b941c9100086cdeb3eae 100644
GIT binary patch
delta 994
zcmV<810DRw1*-@liBL{Q4GJ0x0000DNk~Le0000e0000Z2nGNE0OmPJu8|>Ge*>FI
zL_t(oN7b0iOB+!XhsVT)AQfrMLIrEZjUou5;`{x6KcY?4Xna2x5+Pb_Fk0M+n<OTa
z#3W5>u~-nXn_6A8P$+a!DBTv9-IV?dx969dA=Vb+b&+Y{Bh0`(_sco=%)J>w`29&D
zG=!0`#F!^EzwXK@B$tw#oBMQme|b5$y}kWP4y>)M9m0v+)Pho}e6+N*6fhc%&*$go
zpUuwB`eVu5+?*dS3kwSYa?=V5h2rtz;$mQWdfGQNH6;t+0w;1?M~N-4otT*L$q6`J
z^@3nQX~)OMy>bFhk|63nHa4~|C*ULr&dkjC^?LojoPd)gNX_9N85!A^e-m($1koHr
zLqi@p0Vhe2n!~5l={$F#u(0q=W@hH+wzjqxcZm}o3nxj?U@&;KTCJOxl9G}$g3+&L
z@$vC2FE8&MZ>;b*I7xz|qodxz!9h1K6%`fdMMXvI=;(;qY&Mpjp3X8dGQRM}!#Fre
zf@qHZ{(cuPRaI3N5Old*e=HCPu;b%n*4Ws{)N1uNx_`<O7fzBOnxn6;PvoVtvNDuG
z2m+7C!%j|4nAvP*iHV6UD=X{cZDYeJQqbMo+w0^7C8j1}q9|VD;NXA-gF!|o6PA{i
z_O+?0$sg?;B<Pj|H5!e(y}jMZOKEB8c|kz|+uhy0fz@gatxf7qe@2@>Yi(^6qnQUz
zl3-U?mxtDj$V+i?@p*oJKHJ*b`X|G~!z>{ofz{O1c%zvIPLg1Ecejhu@8E?5-$HP6
zbMpo(D=REJJDZi2m3{B%=y=`I(&CI}9ymn`iZp1C7ZN=Cn;=aR${LAXuCA`Wq;7UM
zH#bK$4~-QgOYEeyf7^NaQ!t#hy1Kd_bgp}kZHv~O<2LcB#7;@Dv$NCL(9mG#g&r|d
z1}RIStdY>A$z(dD$BPSMw~Y;_Yl8Ll^>$w9F>{J_mXnji%FD}tPEJmKpsmVB9qZtY
zc}<Ykh?B};=cT8o$2Bl8a6wztC#*GGLyR{b#=%L-AYC}<f2NHWEPRp@v87R$?(xQn
z90w;!5DU1rw$>&m;Pn3p(jn7PU0rRH6L1P=a0A^&M<$z`fD;LB2yt<7>vXY4a#lG3
zCvr1~UVX?_F!bspIXPKR?QKN|%O!(wffL*W`m_F!4wD<WiRYOdz_ys0nreZYz!+2R
z?Cd;HsZ@IUI7eo>>Ksd~zNxHc%A5gCaKqazNGgbX#C;+q#;9oiBsjtC7okW&4X*D1
Q?f?J)07*qoM6N<$f~_pvq5uE@

delta 635
zcmV->0)+jm2*(8>iBL{Q4GJ0x0000DNk~Le0000m0000N2nGNE08OjR36UXLe*!m2
zL_t(oN7a|RiyCnd#}~EDA@Le*LRx!KEEHdePZR^<V^u`)iHJookPs!<*`1!=!(DG9
zBoHHMf*jbG(&}QJKj6whnsjF7mk1%L#yd!U!UsWThtJoUeJBV&Uq`?bpapa|;5j%Z
zet8SWMx*gnv)O#z>-FZm&~CTif1<abR;%OndR=L?TC+-}a#bporvE$Ta(Rlr)oN7{
zR4Uc8TCJuOi$%FmC~yP%qBrh;2b1LUd6_rZ1TX-OB%94ncmusz09c)AI-Q>I270pq
zxH`#X@{)?f;aHeVrfa|7|Au<(ebl2j3y{m@q<B1jL1i|ZZC9(+_eP_!e>I!UAA`Z5
zLhW&vdh})iQmND=7K@!zQ50pn*=%;mVzKy|NF+8Ei{(Qo6q2aD4yi|P768V15sgO2
zR3O0TeSrPDEX%hpm+O<&YJErTN3BP179boBUwS;AGb)lK{S{yz1isr+`%&xBn+1qO
zB4=K&_mm3!+BbhrU_PIJf5~Jr3bofE_2|8yz!=gGsr(*bxm@1D^VEB4kGs^v1jZ}?
zoOEN@+aVQLlbiK={jJ;WUQ>^~k9zcG0pRjCayp#@-au~_AP@+Q;HEU-4fJLK;7&TS
z+wBA1KyUUq?eqCgZ8qBpZ=koJ)oMl9{S#ato&umRdJCc`J~kK(Q7`d>L$1aD>KM1%
zJ=E*<9bvcIsr&u@Bb`nsYBZXs9Q>j0z}mln&B>uRp2QeJ1v~&A0>>Pn1IHuu{sAF|
VxC+->gP{Nb002ovPDHLkV1kfpDGmSt

diff --git a/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png b/indra/newview/skins/default/textures/widgets/MarketplaceBtn_Selected.png
index 33527f852bfba6e892999aa9007e9a8ea49eda66..fbc164123fbb14c0570d5d18c02126453e082870 100644
GIT binary patch
delta 1013
zcmV<R0}A}U1-=L&iBL{Q4GJ0x0000DNk~Le0000e0000Z2nGNE0OmPJu8|>Ge*>;b
zL_t(oN9~wPOB+!bhGPOQlw{Ec#7m5~c#C&M@h&2`aUrf;=nwD*=u(KKwwofjaN%F*
zBCFCHXji$;jM27>nvA+=3q?z{7P>rr->D8J(sB|DGm8dZ$jp56ooCK>IcLV<`2F)j
ztI$(u*J8cI_z$m`3^<?H>y1=ae^#EAmzRI9s;atx&Mndf8K7@qih<4Va5|kKoH(to
zum9ZG*m%<1+<auE$Uqh{f$f2#sHo^!ZEfwRwzjqpeSLjz`}_O%2L=W#5yu9@0a?fd
zw&x7-E@tecx3~9TbaYf18yibnDKZd}OjosF03P@B^c;+gj3`jjVkw*~e=^+!JObeU
z(9lrQ4k8QdAPca&yL*3da4=~HktG*Uw;`Zz&LB!#@9OGGp?VW`5Lw7%0tNyBy|c43
zg)&drL1ZD53E0rkptrZTr%>JrJBTb~G6B)K^<XfVLiHqMRb5@3#`1V9BihRPr5#zw
zWCGUJ)n!^+TT>{MgpAPTe=}(2VrFJWO0?xYGQMd;7BZQDyt$>NWe>?2ml5*gXncHJ
zgu`Jep>+wgjf{+M+K`1zxqupyGbW>ni3tTExLjIV65HF`f7Qamg238(&gE0aH*El@
zWdR~bGME(&QyY^JpAs{8?D2TS#>U1U0oT^nL~(Jkn3|e8#K3VGf8Vqr3z^Ir#NIDc
zQ&Y2t3vpRtz2utt6-h0&wzh6*b8}Ppd_IA;^#u=<l=VwHvXJQ}U>YYiTqM1e&`4vG
zlam@+!jJj+d9l8}o+WHJ1X|Yl@bIuoTUo!fBMSi2xqvDzM)MKFf!xwdN=n4?^0Ekp
zLWUL>7e!N3)6ePYe`&6%gv-k>0M&m2$bk`NHuqB`wgI=YvLf7Wx4^#c1jWIW$qSD5
zw*b*>(|*5SMfZ;8D>_8MsK~R++1XivV}|yO;Q9KxwkHdj%n<VcRimPHL<<qah)}0p
zE|-{_oBK#$f*0b8_mCwEu%e<Ojfzvzy`zPyqoX5^g3z!Ve@Y_%VukwQePkh%IfFPj
z#7PAgBX<#={!aH_k4+XbWdWjU6m;*19YmJ@fOm;R?hNkWE&dQyqoDsp>>#p`2|2jK
z7xx!9;O5hAfUM$I#-|Uv0vew_N=r*0mz9;V&1mT0TxKi{Ga1N2CbBuOpa=2i4QBBj
z;8I9#4gJUxOL1&y59#)vOk{HiAzavr1hBwA!crBs_~Yd+!ulF;Psl_z;|nJKI3YK5
j5As^9`xxItCbInkK8Z-+3JfNH00000NkvXXu0mjf`uyP=

delta 626
zcmV-&0*(E?2)+d&iBL{Q4GJ0x0000DNk~Le0000W0000N2nGNE0BQwI;gKO(e*!K^
zL_t(YOU;%`YZ_4)hDTkBU8Doz{Vr++uP6$-^&jXD5x0R-O1r5G|AlnXRVk&5$x4%P
zG@3?2>IF9~ffgFO?8d&Y4O0sZn#CC^JTMHN?|J>s=bVwG-yazqgV#V2%zM;-e&^iE
zJ+dtKTrSr)hr{v1?RKxhtsvHPe}M0Bp2F>u%x3db-1r&_g}y|i(N!!KTZ)7Zy6A-a
znPf7V-Ub4J&&g!+I-k#fEEEcpVzDR$)`sJPE;`|U$1PCsi&wc^?xIquXw_<UAQCzl
zg3h~H+Xh%>v)M_xTpkz!U3BgSSY$GpNvTvC7y(@fu+RfwFc#@_dW^kSe~o}HI`shI
zaCm{i7-J4pBcO{;JwPxRoF@{AF<PVU1K+*!dcCvzh(scn`)bfdryc-*iFrI8AEi>M
z(|vTi-L<N!oBQZ=Iyd`j&_$;n08hQS-|s(1`m;l5x7#=W3eapeSBI>pi%va&$K#nH
z(GY{tKNQH8yCE8l#`Ms&e{|8g+kqKU4UxY85bE{%R8f?lc*1E9Sw|N-@FxHcA`aCM
z&*;7p&_$=-0jJaX2`$kunLQ(*i_X6Spd}jire_3n{XYSC9OG=BVNWy+N6!f8qH}v3
zTdmfYcDtQ3F!K3)ebE8vpo>nrrCP1_1Q#brbP4$wGcdv+3W2r3NI5z%rIT)Hv)Nc$
ztyaWlv%RobEN=wAkSb{V2gqO1N%!`x6c=V-14lp>%wyDlL?_+90GI~UL|An_+5i9m
M07*qoM6N<$f*k=Gg8%>k

diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
index a0caf802562..7663db2756a 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
@@ -53,7 +53,7 @@
                  max_dim="125"
                  height="35">
                  <panel
-                      follows="top|left|right"
+                      follows="all"
                       layout="topleft"
                       left="0"
                       name="marketplace_inbox"
@@ -79,18 +79,28 @@
                          ></button>
                          <panel
                              follows="all"
-                             left="0"
+                             left="10"
                              height="90"
-                             width="250"
-                             top="30"
+                             width="330"
+                             top="35"
                            >
-                             <text
-                                 left ="40"
-                                 top="15"
-                                 align="left"
-                                 height="14"
-                                 width="100"
-                                 >Just a panel</text>    
+                             <inventory_panel
+                                bg_opaque_color="DkGray2"
+                                bg_alpha_color="DkGray2"
+                                background_visible="true"
+                                background_opaque="true"
+                                border="false"
+                                bevel_style="none"
+                                follows="all"
+                                height="90"
+                                start_folder="Inbox"
+                                layout="topleft"
+                                left="0"
+                                name="All Items"
+                                sort_order_setting="InventorySortOrder"
+                                show_item_link_overlays="true"
+                                top="0"
+                                width="308" />   
                          </panel>
                      
                  </panel>
-- 
GitLab