Merchant Outbox!

Enter: LLFloaterOutbox, floater_merchant_outbox, LLMarketplaceFunctions, LLPanelMarketplaceOutboxInventory, and panel_outbox_inventory

LLView now has childFromPoint() from v-d.
LLInventoryBridge{
Sync includes with v-d.
Let's ENABLE_MERCHANT_SEND_TO_MARKETPLACE_CONTEXT_MENU for ease of access and tweak it to work.
Uncomment related code.
Catch if we're moving objects into the outbox during pasteFromClipboard()
}
LLInventoryPanel: start_folder attribute for inventory_panels, this could be quite useful in the future
Sync LLToolDragAndDrop with Catznip/v-d
Add the outbox to the World menu, since that seems to involve most commerce. Perhaps we should add a menu entry to the outbox itself to open its floater?
Fix the inventory merchant menu entries, thanks Shyotl..
Merchant Outbox Strings!
This commit is contained in:
Lirusaito
2012-11-06 20:23:36 -05:00
parent d0a0aa7a65
commit 7a35a43bd4
21 changed files with 1897 additions and 67 deletions

View File

@@ -44,6 +44,7 @@
#include "llscrollcontainer.h"
#include "llviewerassettype.h"
#include "llpanelmaininventory.h"
#include "llpanelmarketplaceoutboxinventory.h"
#include "llsdserialize.h"
@@ -130,6 +131,7 @@ void LLInvPanelComplObserver::done()
LLInventoryPanel::LLInventoryPanel(const std::string& name,
const std::string& sort_order_setting,
const std::string& start_folder,
const LLRect& rect,
LLInventoryModel* inventory,
BOOL allow_multi_select,
@@ -140,6 +142,7 @@ LLInventoryPanel::LLInventoryPanel(const std::string& name,
mFolderRoot(NULL),
mScroller(NULL),
mSortOrderSetting(sort_order_setting),
mStartFolder(start_folder),
mInventory(inventory),
mAllowMultiSelect(allow_multi_select),
mViewsInitialized(false),
@@ -154,12 +157,38 @@ LLInventoryPanel::LLInventoryPanel(const std::string& name,
void LLInventoryPanel::buildFolderView()
{
// Determine the root folder in case specified, and
// build the views starting with that folder.
//std::string start_folder_name(params.start_folder());
const LLFolderType::EType preferred_type = LLViewerFolderType::lookupTypeFromNewCategoryName(mStartFolder);
LLUUID root_id;
if ("LIBRARY" == mStartFolder)
{
root_id = gInventory.getLibraryRootFolderID();
}
else
{
root_id = (preferred_type != LLFolderType::FT_NONE)
? gInventory.findCategoryUUIDForType(preferred_type, false, false)
: LLUUID::null;
}
if ((root_id == LLUUID::null) && !mStartFolder.empty())
{
llwarns << "No category found that matches start_folder: " << mStartFolder << llendl;
root_id = LLUUID::generateNewID();
}
LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(LLAssetType::AT_CATEGORY,
LLAssetType::AT_CATEGORY,
LLInventoryType::IT_CATEGORY,
this,
NULL,
LLUUID::null);
root_id);
mFolderRoot = createFolderView(new_listener, true/*params.use_label_suffix()*/);
}
@@ -247,6 +276,7 @@ class LLInventoryRecentItemsPanel : public LLInventoryPanel
public:
LLInventoryRecentItemsPanel(const std::string& name,
const std::string& sort_order_setting,
const std::string& start_folder,
const LLRect& rect,
LLInventoryModel* inventory,
BOOL allow_multi_select,
@@ -270,12 +300,19 @@ LLView* LLInventoryPanel::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
std::string sort_order(INHERIT_SORT_ORDER);
node->getAttributeString("sort_order", sort_order);
if(name != "Recent Items")
panel = new LLInventoryPanel(name, sort_order,
std::string start_folder;
node->getAttributeString("start_folder", start_folder);
if(name == "Recent Items")
panel = new LLInventoryRecentItemsPanel(name, sort_order, start_folder,
rect, &gInventory,
allow_multi_select, parent);
else if(name == "panel_outbox_inventory")
panel = new LLOutboxInventoryPanel(name, sort_order, start_folder,
rect, &gInventory,
allow_multi_select, parent);
else
panel = new LLInventoryRecentItemsPanel(name, sort_order,
panel = new LLInventoryPanel(name, sort_order, start_folder,
rect, &gInventory,
allow_multi_select, parent);
@@ -1058,11 +1095,12 @@ static const LLRecentInventoryBridgeBuilder RECENT_ITEMS_BUILDER;
LLInventoryRecentItemsPanel:: LLInventoryRecentItemsPanel(const std::string& name,
const std::string& sort_order_setting,
const std::string& start_folder,
const LLRect& rect,
LLInventoryModel* inventory,
BOOL allow_multi_select,
LLView *parent_view) :
LLInventoryPanel(name, sort_order_setting,rect,inventory,allow_multi_select,parent_view)
LLView *parent_view) :
LLInventoryPanel(name, sort_order_setting, start_folder,rect,inventory,allow_multi_select,parent_view)
{
mInvFVBridgeBuilder = &RECENT_ITEMS_BUILDER;
}