diff options
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | indra/newview/llfloateroutbox.cpp | 623 | ||||
| -rwxr-xr-x | indra/newview/llfloateroutbox.h | 116 | ||||
| -rwxr-xr-x | indra/newview/llinventorybridge.cpp | 241 | ||||
| -rwxr-xr-x | indra/newview/llinventorybridge.h | 10 | ||||
| -rwxr-xr-x | indra/newview/llinventoryfunctions.cpp | 158 | ||||
| -rwxr-xr-x | indra/newview/llinventoryfunctions.h | 4 | ||||
| -rwxr-xr-x | indra/newview/llinventorypanel.cpp | 24 | ||||
| -rwxr-xr-x | indra/newview/llnotificationhandler.h | 16 | ||||
| -rwxr-xr-x | indra/newview/llnotificationmanager.cpp | 7 | ||||
| -rwxr-xr-x | indra/newview/lltooldraganddrop.cpp | 15 | ||||
| -rwxr-xr-x | indra/newview/llviewerfloaterreg.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerfoldertype.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/llviewermenu.cpp | 41 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/menu_inventory.xml | 8 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/menu_viewer.xml | 7 | 
16 files changed, 42 insertions, 1234 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index af51c6dc36..9fc48169fd 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -270,7 +270,6 @@ set(viewer_SOURCE_FILES      llfloaternotificationsconsole.cpp      llfloaterobjectweights.cpp      llfloateropenobject.cpp -    llfloateroutbox.cpp      llfloaterpathfindingcharacters.cpp      llfloaterpathfindingconsole.cpp      llfloaterpathfindinglinksets.cpp @@ -880,7 +879,6 @@ set(viewer_HEADER_FILES      llfloaternotificationsconsole.h      llfloaterobjectweights.h      llfloateropenobject.h -    llfloateroutbox.h      llfloaterpathfindingcharacters.h      llfloaterpathfindingconsole.h      llfloaterpathfindinglinksets.h diff --git a/indra/newview/llfloateroutbox.cpp b/indra/newview/llfloateroutbox.cpp deleted file mode 100755 index f61b50003d..0000000000 --- a/indra/newview/llfloateroutbox.cpp +++ /dev/null @@ -1,623 +0,0 @@ -/**  - * @file llfloateroutbox.cpp - * @brief Implementation of the merchant outbox window - * - * $LicenseInfo:firstyear=2001&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloateroutbox.h" - -#include "llfloaterreg.h" -#include "llfolderview.h" -#include "llinventorybridge.h" -#include "llinventorymodelbackgroundfetch.h" -#include "llinventoryobserver.h" -#include "llinventorypanel.h" -#include "llmarketplacefunctions.h" -#include "llnotificationhandler.h" -#include "llnotificationmanager.h" -#include "llnotificationsutil.h" -#include "lltextbox.h" -#include "lltransientfloatermgr.h" -#include "lltrans.h" -#include "llviewernetwork.h" -#include "llwindowshade.h" - - -///---------------------------------------------------------------------------- -/// LLOutboxNotification class -///---------------------------------------------------------------------------- - -LLNotificationsUI::LLOutboxNotification::LLOutboxNotification() -	: LLSystemNotificationHandler("Outbox", "outbox") -{ -} - -bool LLNotificationsUI::LLOutboxNotification::processNotification(const LLNotificationPtr& notify) -{ -	LLFloaterOutbox* outbox_floater = LLFloaterReg::getTypedInstance<LLFloaterOutbox>("outbox"); -	 -	outbox_floater->showNotification(notify); - -	return false; -} - -void LLNotificationsUI::LLOutboxNotification::onDelete(LLNotificationPtr p) -{ -	LLNotificationsUI::LLNotificationHandler * notification_handler = dynamic_cast<LLNotificationsUI::LLNotificationHandler*>(LLNotifications::instance().getChannel("AlertModal").get()); -	if (notification_handler) -	{ -		notification_handler->onDelete(p); -	} -} - -///---------------------------------------------------------------------------- -/// LLOutboxAddedObserver helper class -///---------------------------------------------------------------------------- - -class LLOutboxAddedObserver : public LLInventoryCategoryAddedObserver -{ -public: -	LLOutboxAddedObserver(LLFloaterOutbox * outboxFloater) -		: LLInventoryCategoryAddedObserver() -		, mOutboxFloater(outboxFloater) -	{ -	} -	 -	void done() -	{ -		for (cat_vec_t::iterator it = mAddedCategories.begin(); it != mAddedCategories.end(); ++it) -		{ -			LLViewerInventoryCategory* added_category = *it; -			 -			LLFolderType::EType added_category_type = added_category->getPreferredType(); -			 -			if (added_category_type == LLFolderType::FT_OUTBOX) -			{ -				mOutboxFloater->initializeMarketPlace(); -			} -		} -	} -	 -private: -	LLFloaterOutbox *	mOutboxFloater; -}; - -///---------------------------------------------------------------------------- -/// LLFloaterOutbox -///---------------------------------------------------------------------------- - -LLFloaterOutbox::LLFloaterOutbox(const LLSD& key) -	: LLFloater(key) -	, mCategoriesObserver(NULL) -	, mCategoryAddedObserver(NULL) -	, mImportBusy(false) -	, mImportButton(NULL) -	, mInventoryFolderCountText(NULL) -	, mInventoryImportInProgress(NULL) -	, mInventoryPlaceholder(NULL) -	, mInventoryText(NULL) -	, mInventoryTitle(NULL) -	, mOutboxId(LLUUID::null) -	, mOutboxItemCount(0) -	, mOutboxTopLevelDropZone(NULL) -	, mWindowShade(NULL) -{ -} - -LLFloaterOutbox::~LLFloaterOutbox() -{ -	if (mCategoriesObserver && gInventory.containsObserver(mCategoriesObserver)) -	{ -		gInventory.removeObserver(mCategoriesObserver); -	} -	delete mCategoriesObserver; -	 -	if (mCategoryAddedObserver && gInventory.containsObserver(mCategoryAddedObserver)) -	{ -		gInventory.removeObserver(mCategoryAddedObserver); -	} -	delete mCategoryAddedObserver; -} - -BOOL LLFloaterOutbox::postBuild() -{ -	mInventoryFolderCountText = getChild<LLTextBox>("outbox_folder_count"); -	mInventoryImportInProgress = getChild<LLView>("import_progress_indicator"); -	mInventoryPlaceholder = getChild<LLView>("outbox_inventory_placeholder_panel"); -	mInventoryText = mInventoryPlaceholder->getChild<LLTextBox>("outbox_inventory_placeholder_text"); -	mInventoryTitle = mInventoryPlaceholder->getChild<LLTextBox>("outbox_inventory_placeholder_title"); -	 -	mImportButton = getChild<LLButton>("outbox_import_btn"); -	mImportButton->setCommitCallback(boost::bind(&LLFloaterOutbox::onImportButtonClicked, this)); - -	mOutboxTopLevelDropZone = getChild<LLPanel>("outbox_generic_drag_target"); - -	LLFocusableElement::setFocusReceivedCallback(boost::bind(&LLFloaterOutbox::onFocusReceived, this)); - -	// Observe category creation to catch outbox creation (moot if already existing) -	mCategoryAddedObserver = new LLOutboxAddedObserver(this); -	gInventory.addObserver(mCategoryAddedObserver); -	 -    // Setup callbacks for importer -	LLMarketplaceInventoryImporter& importer = LLMarketplaceInventoryImporter::instance(); -    importer.setInitializationErrorCallback(boost::bind(&LLFloaterOutbox::initializationReportError, this, _1, _2)); -    importer.setStatusChangedCallback(boost::bind(&LLFloaterOutbox::importStatusChanged, this, _1)); -    importer.setStatusReportCallback(boost::bind(&LLFloaterOutbox::importReportResults, this, _1, _2)); -     -	return TRUE; -} - -void LLFloaterOutbox::cleanOutbox() -{ -    // Note: we cannot delete the mOutboxInventoryPanel as that point -    // as this is called through callback observers of the panel itself. -    // Doing so would crash rapidly. -	 -	// Invalidate the outbox data -    mOutboxId.setNull(); -    mOutboxItemCount = 0; -} - -void LLFloaterOutbox::onClose(bool app_quitting) -{ -	if (mWindowShade) -	{ -		delete mWindowShade; - -		mWindowShade = NULL; -	} -} - -void LLFloaterOutbox::onOpen(const LLSD& key) -{ -	// -	// Initialize the Market Place or go update the outbox -	// -	if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) -	{ -		initializeMarketPlace(); -	} -	else  -	{ -		setupOutbox(); -	} -	 -	// -	// Update the floater view -	// -	updateView(); -	 -	// -	// Trigger fetch of outbox contents -	// -	fetchOutboxContents(); -} - -void LLFloaterOutbox::onFocusReceived() -{ -	fetchOutboxContents(); -} - -void LLFloaterOutbox::fetchOutboxContents() -{ -	if (mOutboxId.notNull()) -	{ -		LLInventoryModelBackgroundFetch::instance().start(mOutboxId); -	} -} - -void LLFloaterOutbox::setupOutbox() -{ -	if (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() != MarketplaceStatusCodes::MARKET_PLACE_MERCHANT) -	{ -		// If we are *not* a merchant or we have no market place connection established yet, do nothing -		return; -	} -		 -	// We are a merchant. Get the outbox, create it if needs be. -	LLUUID outbox_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, true); -	if (outbox_id.isNull()) -	{ -		// We should never get there unless the inventory fails badly -		LL_ERRS() << "Inventory problem: failure to create the outbox for a merchant!" << LL_ENDL; -		return; -	} -     -    // Consolidate Merchant Outbox -    // We shouldn't have to do that but with a client/server system relying on a "well known folder" convention, things get messy and conventions get broken down eventually -    gInventory.consolidateForType(outbox_id, LLFolderType::FT_OUTBOX); -     -    if (outbox_id == mOutboxId) -    { -        LL_WARNS() << "Inventory warning: Merchant outbox already set" << LL_ENDL; -        return; -    } -    mOutboxId = outbox_id; - -	// No longer need to observe new category creation -	if (mCategoryAddedObserver && gInventory.containsObserver(mCategoryAddedObserver)) -	{ -		gInventory.removeObserver(mCategoryAddedObserver); -		delete mCategoryAddedObserver; -		mCategoryAddedObserver = NULL; -	} -	llassert(!mCategoryAddedObserver); -	 -	// Create observer for outbox modifications : clear the old one and create a new one -	if (mCategoriesObserver && gInventory.containsObserver(mCategoriesObserver)) -	{ -		gInventory.removeObserver(mCategoriesObserver); -		delete mCategoriesObserver; -	} -    mCategoriesObserver = new LLInventoryCategoriesObserver(); -    gInventory.addObserver(mCategoriesObserver); -    mCategoriesObserver->addCategory(mOutboxId, boost::bind(&LLFloaterOutbox::onOutboxChanged, this)); -	llassert(mCategoriesObserver); -	 -	// Set up the outbox inventory view -	LLInventoryPanel* inventory_panel = mOutboxInventoryPanel.get(); -    if (inventory_panel) -    { -        delete inventory_panel; -    } -    inventory_panel = LLUICtrlFactory::createFromFile<LLInventoryPanel>("panel_outbox_inventory.xml", mInventoryPlaceholder->getParent(), LLInventoryPanel::child_registry_t::instance()); -    mOutboxInventoryPanel = inventory_panel->getInventoryPanelHandle(); -	llassert(mOutboxInventoryPanel.get() != NULL); -	 -	// Reshape the inventory to the proper size -	LLRect inventory_placeholder_rect = mInventoryPlaceholder->getRect(); -	inventory_panel->setShape(inventory_placeholder_rect); -	 -	// Set the sort order newest to oldest -	inventory_panel->getFolderViewModel()->setSorter(LLInventoryFilter::SO_FOLDERS_BY_NAME);	 -	inventory_panel->getFilter().markDefault(); -     -	// Get the content of the outbox -	fetchOutboxContents(); -} - -void LLFloaterOutbox::initializeMarketPlace() -{ -	// -	// Initialize the marketplace import API -	// -	LLMarketplaceInventoryImporter& importer = LLMarketplaceInventoryImporter::instance(); -    if (!importer.isInitialized()) -    { -        importer.initialize(); -    } -} - -void LLFloaterOutbox::setStatusString(const std::string& statusString) -{ -	llassert(mInventoryFolderCountText != NULL); - -	mInventoryFolderCountText->setText(statusString); -} - -void LLFloaterOutbox::updateFolderCount() -{ -	if (mOutboxInventoryPanel.get() && mOutboxId.notNull()) -	{ -        U32 item_count = 0; - -        if (mOutboxId.notNull()) -        { -            LLInventoryModel::cat_array_t * cats; -            LLInventoryModel::item_array_t * items; -            gInventory.getDirectDescendentsOf(mOutboxId, cats, items); - -            item_count = cats->size() + items->size(); -        } -	 -        mOutboxItemCount = item_count; -    } -    else -    { -        // If there's no outbox, the number of items in it should be set to 0 for consistency -        mOutboxItemCount = 0; -    } - -	if (!mImportBusy) -	{ -		updateFolderCountStatus(); -	} -} - -void LLFloaterOutbox::updateFolderCountStatus() -{ -	if (mOutboxInventoryPanel.get() && mOutboxId.notNull()) -	{ -		switch (mOutboxItemCount) -		{ -			case 0:	setStatusString(getString("OutboxFolderCount0"));	break; -			case 1:	setStatusString(getString("OutboxFolderCount1"));	break; -			default: -			{ -				std::string item_count_str = llformat("%d", mOutboxItemCount); -				 -				LLStringUtil::format_map_t args; -				args["[NUM]"] = item_count_str; -				 -				setStatusString(getString("OutboxFolderCountN", args)); -				break; -			} -		} -	} - -	mImportButton->setEnabled(mOutboxItemCount > 0); -} - -void LLFloaterOutbox::updateView() -{ -	updateFolderCount(); -	LLInventoryPanel* panel = mOutboxInventoryPanel.get(); - -	if (mOutboxItemCount > 0) -	{ -		panel->setVisible(TRUE); -		mInventoryPlaceholder->setVisible(FALSE); -		mOutboxTopLevelDropZone->setVisible(TRUE); -	} -	else -	{ -		if (panel) -		{ -			panel->setVisible(FALSE); -		} -		 -		// Show the drop zone if there is an outbox folder -		mOutboxTopLevelDropZone->setVisible(mOutboxId.notNull()); - -		mInventoryPlaceholder->setVisible(TRUE); - -		std::string outbox_text; -		std::string outbox_title; -		std::string outbox_tooltip; -		 -		const LLSD& subs = LLMarketplaceData::getMarketplaceStringSubstitutions(); -		U32 mkt_status = LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus(); -		 -		if (mOutboxId.notNull()) -		{ -            // Does the outbox needs recreation? -            if ((mOutboxInventoryPanel.get() == NULL) || !gInventory.getCategory(mOutboxId)) -            { -                setupOutbox(); -            } -			// "Outbox is empty!" message strings -			outbox_text = LLTrans::getString("InventoryOutboxNoItems", subs); -			outbox_title = LLTrans::getString("InventoryOutboxNoItemsTitle"); -			outbox_tooltip = LLTrans::getString("InventoryOutboxNoItemsTooltip"); -		} -		else if (mkt_status <= MarketplaceStatusCodes::MARKET_PLACE_INITIALIZING) -		{ -			// "Initializing!" message strings -			outbox_text = LLTrans::getString("InventoryOutboxInitializing", subs); -			outbox_title = LLTrans::getString("InventoryOutboxInitializingTitle"); -			outbox_tooltip = LLTrans::getString("InventoryOutboxInitializingTooltip"); -		} -		else if (mkt_status == MarketplaceStatusCodes::MARKET_PLACE_NOT_MERCHANT) -		{ -			// "Not a merchant!" message strings -			outbox_text = LLTrans::getString("InventoryOutboxNotMerchant", subs); -			outbox_title = LLTrans::getString("InventoryOutboxNotMerchantTitle"); -			outbox_tooltip = LLTrans::getString("InventoryOutboxNotMerchantTooltip"); -		} -		else -		{ -			// "Errors!" message strings -			outbox_text = LLTrans::getString("InventoryOutboxError", subs); -			outbox_title = LLTrans::getString("InventoryOutboxErrorTitle"); -			outbox_tooltip = LLTrans::getString("InventoryOutboxErrorTooltip"); -		} -		 -		mInventoryText->setValue(outbox_text); -		mInventoryTitle->setValue(outbox_title); -		mInventoryPlaceholder->getParent()->setToolTip(outbox_tooltip); -	} -} - -bool isAccepted(EAcceptance accept) -{ -	return (accept >= ACCEPT_YES_COPY_SINGLE); -} - -BOOL LLFloaterOutbox::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, -										EDragAndDropType cargo_type, -										void* cargo_data, -										EAcceptance* accept, -										std::string& tooltip_msg) -{ -	if ((mOutboxInventoryPanel.get() == NULL) || -		(mWindowShade && mWindowShade->isShown()) || -		LLMarketplaceInventoryImporter::getInstance()->isImportInProgress() || -        mOutboxId.isNull()) -	{ -		return FALSE; -	} -	 -	LLView * handled_view = childrenHandleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); -	BOOL handled = (handled_view != NULL); - -	// Determine if the mouse is inside the inventory panel itself or just within the floater -	bool pointInInventoryPanel = false; -	bool pointInInventoryPanelChild = false; -	LLInventoryPanel* panel = mOutboxInventoryPanel.get(); -	LLFolderView* root_folder = panel->getRootFolder(); -	if (panel->getVisible()) -	{ -		S32 inv_x, inv_y; -		localPointToOtherView(x, y, &inv_x, &inv_y, panel); - -		pointInInventoryPanel = panel->getRect().pointInRect(inv_x, inv_y); - -		LLView * inventory_panel_child_at_point = panel->childFromPoint(inv_x, inv_y, true); -		pointInInventoryPanelChild = (inventory_panel_child_at_point != root_folder); -	} -	 -	// Pass all drag and drop for this floater to the outbox inventory control -	if (!handled || !isAccepted(*accept)) -	{ -		// Handle the drag and drop directly to the root of the outbox if we're not in the inventory panel -		// (otherwise the inventory panel itself will handle the drag and drop operation, without any override) -		if (!pointInInventoryPanel) -		{ -			handled = root_folder->handleDragAndDropToThisFolder(mask, drop, cargo_type, cargo_data, accept, tooltip_msg); -		} - -		mOutboxTopLevelDropZone->setBackgroundVisible(handled && !drop && isAccepted(*accept)); -	} -	else -	{ -		mOutboxTopLevelDropZone->setBackgroundVisible(!pointInInventoryPanelChild); -	} -	 -	return handled; -} - -BOOL LLFloaterOutbox::handleHover(S32 x, S32 y, MASK mask) -{ -	mOutboxTopLevelDropZone->setBackgroundVisible(FALSE); - -	return LLFloater::handleHover(x, y, mask); -} - -void LLFloaterOutbox::onMouseLeave(S32 x, S32 y, MASK mask) -{ -	mOutboxTopLevelDropZone->setBackgroundVisible(FALSE); - -	LLFloater::onMouseLeave(x, y, mask); -} - -void LLFloaterOutbox::onImportButtonClicked() -{ -    if (mOutboxInventoryPanel.get()) -    { -        mOutboxInventoryPanel.get()->clearSelection(); -    } -     -	mImportBusy = LLMarketplaceInventoryImporter::instance().triggerImport(); -} - -void LLFloaterOutbox::onOutboxChanged() -{ -    LLViewerInventoryCategory* category = gInventory.getCategory(mOutboxId); -	if (mOutboxId.notNull() && category) -    { -        fetchOutboxContents(); -        updateView(); -    } -    else -    { -        cleanOutbox(); -    } -} - -void LLFloaterOutbox::importReportResults(U32 status, const LLSD& content) -{ -	if (status == MarketplaceErrorCodes::IMPORT_DONE) -	{ -		LLNotificationsUtil::add("OutboxImportComplete"); -	} -	else if (status == MarketplaceErrorCodes::IMPORT_DONE_WITH_ERRORS) -	{ -		const LLSD& subs = LLMarketplaceData::getMarketplaceStringSubstitutions(); - -		LLNotificationsUtil::add("OutboxImportHadErrors", subs); -	} -	else -	{ -		char status_string[16]; -		sprintf(status_string, "%d", status); -		 -		LLSD subs; -		subs["[ERROR_CODE]"] = status_string; -		 -		LLNotificationsUtil::add("OutboxImportFailed", subs); -	} -	 -	updateView(); -} - -void LLFloaterOutbox::importStatusChanged(bool inProgress) -{ -	if (mOutboxId.isNull() && (LLMarketplaceInventoryImporter::getInstance()->getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_MERCHANT)) -	{ -		setupOutbox(); -	} -	 -	if (inProgress) -	{ -		if (mImportBusy) -		{ -			setStatusString(getString("OutboxImporting")); -		} -		else -		{ -			setStatusString(getString("OutboxInitializing")); -		} -		 -		mImportBusy = true; -		mImportButton->setEnabled(false); -		mInventoryImportInProgress->setVisible(true); -	} -	else -	{ -		setStatusString(""); -		mImportBusy = false; -		mImportButton->setEnabled(mOutboxItemCount > 0); -		mInventoryImportInProgress->setVisible(false); -	} -	 -	updateView(); -} - -void LLFloaterOutbox::initializationReportError(U32 status, const LLSD& content) -{ -	if (status >= MarketplaceErrorCodes::IMPORT_BAD_REQUEST) -	{ -		char status_string[16]; -		sprintf(status_string, "%d", status); -		 -		LLSD subs; -		subs["[ERROR_CODE]"] = status_string; -		 -		LLNotificationsUtil::add("OutboxInitFailed", subs); -	} -	 -	updateView(); -} - -void LLFloaterOutbox::showNotification(const LLNotificationPtr& notification) -{ -	LLNotificationsUI::LLNotificationHandler * notification_handler = dynamic_cast<LLNotificationsUI::LLNotificationHandler*>(LLNotifications::instance().getChannel("AlertModal").get()); -	llassert(notification_handler); -	 -	notification_handler->processNotification(notification); -} - - - diff --git a/indra/newview/llfloateroutbox.h b/indra/newview/llfloateroutbox.h deleted file mode 100755 index 2cf69fc3cc..0000000000 --- a/indra/newview/llfloateroutbox.h +++ /dev/null @@ -1,116 +0,0 @@ -/**  - * @file llfloateroutbox.h - * @brief Implementation of the merchant outbox window - * - * $LicenseInfo:firstyear=2001&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * ABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -#ifndef LL_LLFLOATEROUTBOX_H -#define LL_LLFLOATEROUTBOX_H - -#include "llfloater.h" -#include "llfoldertype.h" -#include "llinventoryfilter.h" -#include "llnotificationptr.h" - - -class LLButton; -class LLInventoryCategoriesObserver; -class LLInventoryCategoryAddedObserver; -class LLInventoryPanel; -class LLLoadingIndicator; -class LLNotification; -class LLTextBox; -class LLView; -class LLWindowShade; - - -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLFloaterOutbox -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -class LLFloaterOutbox : public LLFloater -{ -public: -	LLFloaterOutbox(const LLSD& key); -	~LLFloaterOutbox(); -	 -	void initializeMarketPlace(); - -	// virtuals -	BOOL postBuild(); -	BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, -						   EDragAndDropType cargo_type, -						   void* cargo_data, -						   EAcceptance* accept, -						   std::string& tooltip_msg); -	 -	void showNotification(const LLNotificationPtr& notification); - -	BOOL handleHover(S32 x, S32 y, MASK mask); -	void onMouseLeave(S32 x, S32 y, MASK mask); - -protected: -	void setupOutbox(); -    void cleanOutbox(); -	void fetchOutboxContents(); - -	void importReportResults(U32 status, const LLSD& content); -	void importStatusChanged(bool inProgress); -	void initializationReportError(U32 status, const LLSD& content); -	 -	void onClose(bool app_quitting); -	void onOpen(const LLSD& key); - -	void onFocusReceived(); - -	void onImportButtonClicked(); -	void onOutboxChanged(); -	 -	void setStatusString(const std::string& statusString); -	 -	void updateFolderCount(); -	void updateFolderCountStatus(); -	void updateView(); - -private: -	LLInventoryCategoriesObserver *		mCategoriesObserver; -	LLInventoryCategoryAddedObserver *	mCategoryAddedObserver; -	 -	bool			mImportBusy; -	LLButton *		mImportButton; -	 -	LLTextBox *		mInventoryFolderCountText; -	LLView *		mInventoryImportInProgress; -	LLView *		mInventoryPlaceholder; -	LLTextBox *		mInventoryText; -	LLTextBox *		mInventoryTitle; -	 -	LLUUID				mOutboxId; -	LLHandle<LLInventoryPanel> mOutboxInventoryPanel; -	U32					mOutboxItemCount; -	LLPanel *			mOutboxTopLevelDropZone; -	 -	LLWindowShade *	mWindowShade; -}; - -#endif // LL_LLFLOATEROUTBOX_H diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 605f71f412..0c70b074bf 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -124,11 +124,6 @@ bool isRemoveAction(const std::string& action)  	return ("take_off" == action || "detach" == action || "deactivate" == action);  } -bool isMarketplaceCopyAction(const std::string& action) -{ -	return (("copy_to_outbox" == action) || ("move_to_outbox" == action)); -} -  bool isMarketplaceSendAction(const std::string& action)  {  	return ("send_to_marketplace" == action); @@ -777,14 +772,6 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,  			{  				items.push_back(std::string("Marketplace Separator")); -                if (gMenuHolder->getChild<LLView>("MerchantOutbox")->getVisible()) -                { -                    items.push_back(std::string("Merchant Copy")); -                    if (!canListOnOutboxNow()) -                    { -                        disabled_items.push_back(std::string("Merchant Copy")); -                    } -                }                  if (gMenuHolder->getChild<LLView>("MarketplaceListings")->getVisible())                  {                      items.push_back(std::string("Marketplace Copy")); @@ -799,8 +786,8 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,  		}  	} -	// Don't allow items to be pasted directly into the COF or the inbox/outbox -	if (!isCOFFolder() && !isInboxFolder() && !isOutboxFolder()) +	// Don't allow items to be pasted directly into the COF or the inbox +	if (!isCOFFolder() && !isInboxFolder())  	{  		items.push_back(std::string("Paste"));  	} @@ -838,10 +825,6 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	{  		addTrashContextMenuOptions(items, disabled_items);  	}	 -	else if(isOutboxFolder()) -	{ -		addOutboxContextMenuOptions(flags, items, disabled_items); -	}  	else  	{  		items.push_back(std::string("Share")); @@ -942,19 +925,6 @@ void LLInvFVBridge::addOpenRightClickMenuOption(menuentry_vec_t &items)  		items.push_back(std::string("Open"));  } -void LLInvFVBridge::addOutboxContextMenuOptions(U32 flags, -												menuentry_vec_t &items, -												menuentry_vec_t &disabled_items) -{ -	items.push_back(std::string("Rename")); -	items.push_back(std::string("Delete")); -	 -	if ((flags & FIRST_SELECTED_ITEM) == 0) -	{ -		disabled_items.push_back(std::string("Rename")); -	} -} -  void LLInvFVBridge::addMarketplaceContextMenuOptions(U32 flags,  												menuentry_vec_t &items,  												menuentry_vec_t &disabled_items) @@ -1204,41 +1174,6 @@ BOOL LLInvFVBridge::isMarketplaceListingsFolder() const  	return gInventory.isObjectDescendentOf(mUUID, folder_id);  } -BOOL LLInvFVBridge::isOutboxFolder() const -{ -	const LLUUID outbox_id = getOutboxFolder(); - -	if (outbox_id.isNull()) -	{ -		return FALSE; -	} - -	return gInventory.isObjectDescendentOf(mUUID, outbox_id); -} - -BOOL LLInvFVBridge::isOutboxFolderDirectParent() const -{ -	BOOL outbox_is_parent = FALSE; -	 -	const LLInventoryCategory *cat = gInventory.getCategory(mUUID); - -	if (cat) -	{ -		const LLUUID outbox_id = getOutboxFolder(); -		 -		outbox_is_parent = (outbox_id.notNull() && (outbox_id == cat->getParentUUID())); -	} -	 -	return outbox_is_parent; -} - -const LLUUID LLInvFVBridge::getOutboxFolder() const -{ -	const LLUUID outbox_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); - -	return outbox_id; -} -  BOOL LLInvFVBridge::isItemPermissive() const  {  	return FALSE; @@ -1495,56 +1430,6 @@ bool LLInvFVBridge::canListOnMarketplace() const  	return true;  } -// *TODO : Suppress canListOnOutboxNow() once we deprecate Merchant Outbox completely -bool LLInvFVBridge::canListOnOutboxNow() const -{ -	bool can_list = true; - -	// Do not allow listing while import is in progress -	if (LLMarketplaceInventoryImporter::instanceExists()) -	{ -		can_list = !LLMarketplaceInventoryImporter::instance().isImportInProgress(); -	} -	 -	const LLInventoryObject* obj = getInventoryObject(); -	can_list &= (obj != NULL); - -	if (can_list) -	{ -		const LLUUID& object_id = obj->getLinkedUUID(); -		can_list = object_id.notNull(); - -		if (can_list) -		{ -			LLFolderViewFolder * object_folderp =   mInventoryPanel.get() ? mInventoryPanel.get()->getFolderByID(object_id) : NULL; -			if (object_folderp) -			{ -				can_list = !static_cast<LLFolderBridge*>(object_folderp->getViewModelItem())->isLoading(); -			} -		} -		 -		if (can_list) -		{ -			// Get outbox id -			const LLUUID & outbox_id = getInventoryModel()->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); -			LLFolderViewItem * outbox_itemp =   mInventoryPanel.get() ? mInventoryPanel.get()->getItemByID(outbox_id) : NULL; - -			if (outbox_itemp) -			{ -				MASK mask = 0x0; -				BOOL drop = FALSE; -				EDragAndDropType cargo_type = LLViewerAssetType::lookupDragAndDropType(obj->getActualType()); -				void * cargo_data = (void *) obj; -				std::string tooltip_msg; -				 -				can_list = outbox_itemp->getViewModelItem()->dragOrDrop(mask, drop, cargo_type, cargo_data, tooltip_msg); -			} -		} -	} -	 -	return can_list; -} -  bool LLInvFVBridge::canListOnMarketplaceNow() const  {  	bool can_list = true; @@ -1714,16 +1599,6 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)  		folder_view_itemp->getViewModelItem()->pasteLinkFromClipboard();  		return;  	} -	else if (isMarketplaceCopyAction(action)) -	{ -		LL_INFOS() << "Copy item to marketplace action!" << LL_ENDL; - -		LLInventoryItem* itemp = model->getItem(mUUID); -		if (!itemp) return; - -		const LLUUID outbox_id = getInventoryModel()->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); -		copy_item_to_outbox(itemp, outbox_id, LLUUID::null, LLToolDragAndDrop::getOperationId()); -	}  	else if (("move_to_marketplace_listings" == action) || ("copy_to_marketplace_listings" == action) || ("copy_or_move_to_marketplace_listings" == action))  	{  		LLInventoryItem* itemp = model->getItem(mUUID); @@ -2455,13 +2330,10 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  	const LLUUID &cat_id = inv_cat->getUUID();  	const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); -	const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);  	const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);      const LLUUID from_folder_uuid = inv_cat->getParentUUID();  	const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id); -	const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id);  -	const BOOL move_is_from_outbox = model->isObjectDescendentOf(cat_id, outbox_id);  	const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id);      const BOOL move_is_from_marketplacelistings = model->isObjectDescendentOf(cat_id, marketplacelistings_id); @@ -2602,9 +2474,9 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  			}  		} -		if (is_movable && (move_is_into_outbox || move_is_into_marketplacelistings)) +		if (is_movable && move_is_into_marketplacelistings)  		{ -            const LLViewerInventoryCategory * master_folder = (move_is_into_outbox ? model->getFirstDescendantOf(outbox_id, mUUID) : model->getFirstDescendantOf(marketplacelistings_id, mUUID)); +            const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(marketplacelistings_id, mUUID);              LLViewerInventoryCategory * dest_folder = getCategory();              S32 bundle_size = (drop ? 1 : LLToolDragAndDrop::instance().getCargoCount());              is_movable = can_move_folder_to_marketplace(master_folder, dest_folder, inv_cat, tooltip_msg, bundle_size); @@ -2713,10 +2585,6 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  				BOOL append = true;  				LLAppearanceMgr::instance().wearInventoryCategory(inv_cat, false, append);  			} -			else if (move_is_into_outbox && !move_is_from_outbox) -			{ -				copy_folder_to_outbox(inv_cat, mUUID, cat_id, LLToolDragAndDrop::getOperationId()); -			}  			else if (move_is_into_marketplacelistings)  			{  				move_folder_to_marketplacelistings(inv_cat, mUUID); @@ -2767,7 +2635,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  	}  	else if (LLToolDragAndDrop::SOURCE_WORLD == source)  	{ -		if (move_is_into_outbox || move_is_into_marketplacelistings) +		if (move_is_into_marketplacelistings)  		{  			tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory");  			accept = FALSE; @@ -2779,7 +2647,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  	}  	else if (LLToolDragAndDrop::SOURCE_LIBRARY == source)  	{ -		if (move_is_into_outbox || move_is_into_marketplacelistings) +		if (move_is_into_marketplacelistings)  		{  			tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory");  			accept = FALSE; @@ -3296,16 +3164,6 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)  		removeSystemFolder();  	}  #endif -	else if (isMarketplaceCopyAction(action)) -	{ -		LL_INFOS() << "Copy folder to marketplace action!" << LL_ENDL; - -		LLInventoryCategory * cat = gInventory.getCategory(mUUID); -		if (!cat) return; - -		const LLUUID outbox_id = getInventoryModel()->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); -		copy_folder_to_outbox(cat, outbox_id, cat->getUUID(), LLToolDragAndDrop::getOperationId()); -	}  	else if (("move_to_marketplace_listings" == action) || ("copy_to_marketplace_listings" == action) || ("copy_or_move_to_marketplace_listings" == action))  	{  		LLInventoryCategory * cat = gInventory.getCategory(mUUID); @@ -3546,7 +3404,6 @@ void LLFolderBridge::perform_pasteFromClipboard()  	if (model && isClipboardPasteable())  	{          const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); -		const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);          const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);  		const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false);  		const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false); @@ -3554,7 +3411,6 @@ void LLFolderBridge::perform_pasteFromClipboard()  		const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);  		const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);  		const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); -		const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id);          const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id);  		const BOOL move_is_into_favorites = (mUUID == favorites_id); @@ -3562,10 +3418,10 @@ void LLFolderBridge::perform_pasteFromClipboard()  		LLClipboard::instance().pasteFromClipboard(objects);          LLViewerInventoryCategory * dest_folder = getCategory(); -		if (move_is_into_outbox || move_is_into_marketplacelistings) +		if (move_is_into_marketplacelistings)  		{              std::string error_msg; -            const LLViewerInventoryCategory * master_folder = (move_is_into_outbox ? model->getFirstDescendantOf(outbox_id, mUUID) : model->getFirstDescendantOf(marketplacelistings_id, mUUID)); +            const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(marketplacelistings_id, mUUID);              int index = 0;              for (std::vector<LLUUID>::const_iterator iter = objects.begin(); iter != objects.end(); ++iter)              { @@ -3744,17 +3600,15 @@ void LLFolderBridge::pasteLinkFromClipboard()  	if(model)  	{  		const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false); -		const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);          const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);  		const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);  		const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);  		const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);  		const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT); -		const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id);          const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id); -		if (move_is_into_outbox || move_is_into_marketplacelistings) +		if (move_is_into_marketplacelistings)  		{  			// Notify user of failure somehow -- play error sound?  modal dialog?  			return; @@ -3875,10 +3729,6 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items  		items.clear(); // clear any items that used to exist  		addTrashContextMenuOptions(items, disabled_items);  	} -	else if(isOutboxFolder()) -	{ -		addOutboxContextMenuOptions(flags, items, disabled_items); -	}  	else if(isAgentInventory()) // do not allow creating in library  	{  		LLViewerInventoryCategory *cat = getCategory(); @@ -3886,7 +3736,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items  		// Not sure what the right thing is to do here.  		if (!isCOFFolder() && cat && (cat->getPreferredType() != LLFolderType::FT_OUTFIT))  		{ -			if (!isInboxFolder() && !isOutboxFolder()) // don't allow creation in inbox or outbox +			if (!isInboxFolder()) // don't allow creation in inbox  			{  				// Do not allow to create 2-level subfolder in the Calling Card/Friends folder. EXT-694.  				if (!LLFriendCardsManager::instance().isCategoryInFriendFolder(cat)) @@ -3948,7 +3798,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items  		disabled_items.push_back(std::string("Delete System Folder"));  	} -	if (!isOutboxFolder() && !isMarketplaceListingsFolder()) +	if (!isMarketplaceListingsFolder())  	{  		items.push_back(std::string("Share"));  		if (!canShare()) @@ -3994,7 +3844,6 @@ void LLFolderBridge::buildContextMenuFolderOptions(U32 flags,   menuentry_vec_t&  	if (trash_id == mUUID) return;  	if (isItemInTrash()) return;  	if (!isAgentInventory()) return; -	if (isOutboxFolder()) return;  	if (!isItemRemovable())  	{ @@ -4588,7 +4437,6 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  	const LLUUID ¤t_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false);  	const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false);  	const LLUUID &landmarks_id = model->findCategoryUUIDForType(LLFolderType::FT_LANDMARK, false); -	const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);  	const LLUUID &marketplacelistings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);  	const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);      const LLUUID from_folder_uuid = inv_item->getParentUUID(); @@ -4598,8 +4446,6 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  	const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);  	const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);  	const BOOL move_is_into_landmarks = (mUUID == landmarks_id) || model->isObjectDescendentOf(mUUID, landmarks_id); -	const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id); -	const BOOL move_is_from_outbox = model->isObjectDescendentOf(inv_item->getUUID(), outbox_id);      const BOOL move_is_into_marketplacelistings = model->isObjectDescendentOf(mUUID, marketplacelistings_id);      const BOOL move_is_from_marketplacelistings = model->isObjectDescendentOf(inv_item->getUUID(), marketplacelistings_id); @@ -4675,9 +4521,9 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  		{  			accept = can_move_to_landmarks(inv_item);  		} -		else if (user_confirm && (move_is_into_outbox || move_is_into_marketplacelistings)) +		else if (user_confirm && move_is_into_marketplacelistings)  		{ -            const LLViewerInventoryCategory * master_folder = (move_is_into_outbox ? model->getFirstDescendantOf(outbox_id, mUUID) : model->getFirstDescendantOf(marketplacelistings_id, mUUID)); +            const LLViewerInventoryCategory * master_folder = model->getFirstDescendantOf(marketplacelistings_id, mUUID);              LLViewerInventoryCategory * dest_folder = getCategory();              accept = can_move_item_to_marketplace(master_folder, dest_folder, inv_item, tooltip_msg, LLToolDragAndDrop::instance().getCargoCount() - LLToolDragAndDrop::instance().getCargoIndex());  		} @@ -4762,19 +4608,6 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  			{  				dropToOutfit(inv_item, move_is_into_current_outfit);  			} -            // MERCHANT OUTBOX folder -            // Move the item -			else if (move_is_into_outbox) -			{ -				if (move_is_from_outbox) -				{ -					move_item_within_outbox(inv_item, mUUID, LLToolDragAndDrop::getOperationId()); -				} -				else -				{ -					copy_item_to_outbox(inv_item, mUUID, LLUUID::null, LLToolDragAndDrop::getOperationId()); -				} -			}              // MARKETPLACE LISTINGS folder              // Move the item              else if (move_is_into_marketplacelistings) @@ -4861,7 +4694,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  		{  			accept = FALSE;  		} -		else if (move_is_into_outbox || move_is_into_marketplacelistings) +		else if (move_is_into_marketplacelistings)  		{  			tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory");  			accept = FALSE; @@ -4899,7 +4732,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  	}  	else if(LLToolDragAndDrop::SOURCE_NOTECARD == source)  	{ -		if (move_is_into_outbox || move_is_into_marketplacelistings) +		if (move_is_into_marketplacelistings)  		{  			tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory");  			accept = FALSE; @@ -4933,7 +4766,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  		{  			accept = TRUE; -			if (move_is_into_outbox || move_is_into_marketplacelistings) +			if (move_is_into_marketplacelistings)  			{  				tooltip_msg = LLTrans::getString("TooltipOutboxNotInInventory");  				accept = FALSE; @@ -5102,10 +4935,6 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	{  		addTrashContextMenuOptions(items, disabled_items);  	}	 -	else if(isOutboxFolder()) -	{ -		addOutboxContextMenuOptions(flags, items, disabled_items); -	}      else if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items); @@ -5175,11 +5004,7 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	menuentry_vec_t items;  	menuentry_vec_t disabled_items; -	if (isOutboxFolder()) -	{ -		addOutboxContextMenuOptions(flags, items, disabled_items); -	} -    else if (isMarketplaceListingsFolder()) +    if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items);  		items.push_back(std::string("Properties")); @@ -5256,11 +5081,7 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	menuentry_vec_t disabled_items;  	LL_DEBUGS() << "LLLandmarkBridge::buildContextMenu()" << LL_ENDL; -	if(isOutboxFolder()) -	{ -		addOutboxContextMenuOptions(flags, items, disabled_items); -	} -    else if (isMarketplaceListingsFolder()) +    if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items);  		items.push_back(std::string("Properties")); @@ -5554,10 +5375,6 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	{  		addTrashContextMenuOptions(items, disabled_items);  	}	 -	else if(isOutboxFolder()) -	{ -		items.push_back(std::string("Delete")); -	}      else if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items); @@ -5846,10 +5663,6 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	{  		addTrashContextMenuOptions(items, disabled_items);  	} -	else if(isOutboxFolder()) -	{ -		items.push_back(std::string("Delete")); -	}      else if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items); @@ -5906,11 +5719,7 @@ void LLAnimationBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	menuentry_vec_t disabled_items;  	LL_DEBUGS() << "LLAnimationBridge::buildContextMenu()" << LL_ENDL; -	if(isOutboxFolder()) -	{ -		items.push_back(std::string("Delete")); -	} -    else if (isMarketplaceListingsFolder()) +    if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items);  		items.push_back(std::string("Properties")); @@ -6171,10 +5980,6 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	{  		addTrashContextMenuOptions(items, disabled_items);  	}	 -	else if(isOutboxFolder()) -	{ -		items.push_back(std::string("Delete")); -	}      else if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items); @@ -6399,10 +6204,6 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  	{  		addTrashContextMenuOptions(items, disabled_items);  	} -	else if(isOutboxFolder()) -	{ -		items.push_back(std::string("Delete")); -	}      else if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items); @@ -6705,10 +6506,6 @@ void LLMeshBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  		items.push_back(std::string("Restore Item"));  	} -	else if(isOutboxFolder()) -	{ -		addOutboxContextMenuOptions(flags, items, disabled_items); -	}      else if (isMarketplaceListingsFolder())      {  		addMarketplaceContextMenuOptions(flags, items, disabled_items); diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 7e7cf9c7dd..30419ae930 100755 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -77,7 +77,6 @@ public:  	bool canShare() const;  	bool canListOnMarketplace() const; -	bool canListOnOutboxNow() const;  	bool canListOnMarketplaceNow() const;  	//-------------------------------------------------------------------- @@ -145,9 +144,6 @@ protected:  	virtual void addDeleteContextMenuOptions(menuentry_vec_t &items,  											 menuentry_vec_t &disabled_items);  	virtual void addOpenRightClickMenuOption(menuentry_vec_t &items); -	virtual void addOutboxContextMenuOptions(U32 flags, -											 menuentry_vec_t &items, -											 menuentry_vec_t &disabled_items);  	virtual void addMarketplaceContextMenuOptions(U32 flags,  											 menuentry_vec_t &items,  											 menuentry_vec_t &disabled_items); @@ -164,9 +160,7 @@ protected:  	BOOL isCOFFolder() const;       // true if COF or descendant of  	BOOL isInboxFolder() const;     // true if COF or descendant of   marketplace inbox -	BOOL isOutboxFolderDirectParent() const;  	BOOL isMarketplaceListingsFolder() const;     // true if descendant of Marketplace listings folder -	const LLUUID getOutboxFolder() const;  	virtual BOOL isItemPermissive() const;  	static void changeItemParent(LLInventoryModel* model, @@ -182,10 +176,6 @@ protected:      BOOL callback_cutToClipboard(const LLSD& notification, const LLSD& response);      BOOL perform_cutToClipboard(); -public: -	BOOL isOutboxFolder() const;    // true if COF or descendant of   marketplace outbox - -protected:  	LLHandle<LLInventoryPanel> mInventoryPanel;  	LLFolderView* mRoot;  	const LLUUID mUUID;	// item id diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 916e9ad8f3..973bf59125 100755 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -782,11 +782,6 @@ void reset_inventory_filter()  	}  } -void open_outbox() -{ -	LLFloaterReg::showInstance("outbox"); -} -  void open_marketplace_listings()  {  	LLFloaterReg::showInstance("marketplace_listings"); @@ -808,157 +803,6 @@ LLUUID create_folder_for_item(LLInventoryItem* item, const LLUUID& destFolderId)  	return created_folder_id;  } -void move_to_outbox_cb_action(const LLSD& payload) -{ -	LLViewerInventoryItem * viitem = gInventory.getItem(payload["item_id"].asUUID()); -	LLUUID dest_folder_id = payload["dest_folder_id"].asUUID(); - -	if (viitem) -	{	 -		// when moving item directly into outbox create folder with that name -		if (dest_folder_id == gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false)) -		{ -			dest_folder_id = create_folder_for_item(viitem, dest_folder_id); -		} - -		LLUUID parent = viitem->getParentUUID(); - -		gInventory.changeItemParent( -			viitem, -			dest_folder_id, -			false); - -		LLUUID top_level_folder = payload["top_level_folder"].asUUID(); - -		if (top_level_folder != LLUUID::null) -		{ -			LLViewerInventoryCategory* category; - -			while (parent.notNull()) -			{ -				LLInventoryModel::cat_array_t* cat_array; -				LLInventoryModel::item_array_t* item_array; -				gInventory.getDirectDescendentsOf(parent,cat_array,item_array); - -				LLUUID next_parent; - -				category = gInventory.getCategory(parent); - -				if (!category) break; - -				next_parent = category->getParentUUID(); - -				if (cat_array->empty() && item_array->empty()) -				{ -					gInventory.removeCategory(parent); -				} - -				if (parent == top_level_folder) -				{ -					break; -				} - -				parent = next_parent; -			} -		} - -		open_outbox(); -	} -} - -void copy_item_to_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, const LLUUID& top_level_folder, S32 operation_id) -{ -	// Collapse links directly to items/folders -	LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; -	LLViewerInventoryCategory * linked_category = viewer_inv_item->getLinkedCategory(); -	if (linked_category != NULL) -	{ -		copy_folder_to_outbox(linked_category, dest_folder, top_level_folder, operation_id); -	} -	else -	{ -		LLViewerInventoryItem * linked_item = viewer_inv_item->getLinkedItem(); -		if (linked_item != NULL) -		{ -			inv_item = (LLInventoryItem *) linked_item; -		} -		 -		// Check for copy permissions -		if (inv_item->getPermissions().allowOperationBy(PERM_COPY, gAgent.getID(), gAgent.getGroupID())) -		{ -			// when moving item directly into outbox create folder with that name -			if (dest_folder == gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false)) -			{ -				dest_folder = create_folder_for_item(inv_item, dest_folder); -			} -			 -			copy_inventory_item(gAgent.getID(), -								inv_item->getPermissions().getOwner(), -								inv_item->getUUID(), -								dest_folder, -								inv_item->getName(), -								LLPointer<LLInventoryCallback>(NULL)); - -			open_outbox(); -		} -		else -		{ -			LLSD payload; -			payload["item_id"] = inv_item->getUUID(); -			payload["dest_folder_id"] = dest_folder; -			payload["top_level_folder"] = top_level_folder; -			payload["operation_id"] = operation_id; -			 -			LLMarketplaceInventoryNotifications::addNoCopyNotification(payload, move_to_outbox_cb_action); -		} -	} -} - -void move_item_within_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, S32 operation_id) -{ -	// when moving item directly into outbox create folder with that name -	if (dest_folder == gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false)) -	{ -		dest_folder = create_folder_for_item(inv_item, dest_folder); -	} -	 -	LLViewerInventoryItem * viewer_inv_item = (LLViewerInventoryItem *) inv_item; - -	gInventory.changeItemParent( -					   viewer_inv_item, -					   dest_folder, -					   false); -} - -void copy_folder_to_outbox(LLInventoryCategory* inv_cat, const LLUUID& dest_folder, const LLUUID& top_level_folder, S32 operation_id) -{ -	LLUUID new_folder_id = gInventory.createNewCategory(dest_folder, LLFolderType::FT_NONE, inv_cat->getName()); -	gInventory.notifyObservers(); - -	LLInventoryModel::cat_array_t* cat_array; -	LLInventoryModel::item_array_t* item_array; -	gInventory.getDirectDescendentsOf(inv_cat->getUUID(),cat_array,item_array); - -	// copy the vector because otherwise the iterator won't be happy if we delete from it -	LLInventoryModel::item_array_t item_array_copy = *item_array; - -	for (LLInventoryModel::item_array_t::iterator iter = item_array_copy.begin(); iter != item_array_copy.end(); iter++) -	{ -		LLInventoryItem* item = *iter; -		copy_item_to_outbox(item, new_folder_id, top_level_folder, operation_id); -	} - -	LLInventoryModel::cat_array_t cat_array_copy = *cat_array; - -	for (LLInventoryModel::cat_array_t::iterator iter = cat_array_copy.begin(); iter != cat_array_copy.end(); iter++) -	{ -		LLViewerInventoryCategory* category = *iter; -		copy_folder_to_outbox(category, new_folder_id, top_level_folder, operation_id); -	} - -	open_outbox(); -} -  ///----------------------------------------------------------------------------  // Marketplace functions  // @@ -975,7 +819,7 @@ S32 depth_nesting_in_marketplace(LLUUID cur_uuid)      {          return -1;      } -    // If not a descendent of the marketplace listings root, then the nesting depth is -1 by definition +    // If not a descendant of the marketplace listings root, then the nesting depth is -1 by definition      if (!gInventory.isObjectDescendentOf(cur_uuid, marketplace_listings_uuid))      {          return -1; diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index 6ae8fd0f13..8aa8370f91 100755 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -75,10 +75,6 @@ void copy_inventory_category(LLInventoryModel* model, LLViewerInventoryCategory*  // Generates a string containing the path to the item specified by item_id.  void append_path(const LLUUID& id, std::string& path); -void copy_item_to_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, const LLUUID& top_level_folder, S32 operation_id); -void move_item_within_outbox(LLInventoryItem* inv_item, LLUUID dest_folder, S32 operation_id); -void copy_folder_to_outbox(LLInventoryCategory* inv_cat, const LLUUID& dest_folder, const LLUUID& top_level_folder, S32 operation_id); -  typedef boost::function<void(std::string& validation_message, S32 depth, LLError::ELevel log_level)> validation_callback_t;  bool can_move_item_to_marketplace(const LLInventoryCategory* root_folder, LLInventoryCategory* dest_folder, LLInventoryItem* inv_item, std::string& tooltip_msg, S32 bundle_size = 1, bool from_paste = false); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 5194cba891..02d378bc51 100755 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -1437,16 +1437,20 @@ BOOL LLInventoryPanel::handleKeyHere( KEY key, MASK mask )  		// Open selected items if enter key hit on the inventory panel  		if (mask == MASK_NONE)  		{ -			//Don't allow attaching or opening items from Merchant Outbox -			LLFolderViewItem* folder_item = mFolderRoot.get()->getCurSelectedItem(); -			if(folder_item) -			{ -				LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem(); -				if(bridge && bridge->isOutboxFolder() && (bridge->getInventoryType() != LLInventoryType::IT_CATEGORY)) -				{ -					return handled; -				} -			} + +// @TODO$: Rider: This code is dead with Outbox, however should something similar be  +//  done for VMM? +//   +// 			//Don't allow attaching or opening items from Merchant Outbox +// 			LLFolderViewItem* folder_item = mFolderRoot.get()->getCurSelectedItem(); +// 			if(folder_item) +// 			{ +// 				LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem(); +// 				if(bridge && bridge->is() && (bridge->getInventoryType() != LLInventoryType::IT_CATEGORY)) +// 				{ +// 					return handled; +// 				} +// 			}  			LLInventoryAction::doToSelected(mInventory, mFolderRoot.get(), "open");  			handled = TRUE; diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 3e7f05b5e1..7a183cb298 100755 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -277,22 +277,6 @@ protected:  	virtual void initChannel() {};  }; -/** - * Handler for outbox notifications - */ -class LLOutboxNotification : public LLSystemNotificationHandler -{ -public: -	LLOutboxNotification(); -	virtual ~LLOutboxNotification() {}; -	virtual void onChange(LLNotificationPtr p) { } -	virtual void onDelete(LLNotificationPtr p); -	virtual bool processNotification(const LLNotificationPtr& p); - -protected: -	virtual void initChannel() {}; -}; -	  class LLHandlerUtil  {  public: diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp index 152581c5a0..a6f20a9f27 100755 --- a/indra/newview/llnotificationmanager.cpp +++ b/indra/newview/llnotificationmanager.cpp @@ -61,7 +61,6 @@ void LLNotificationManager::init()  	mChannels.push_back(new LLOfferHandler());  	mChannels.push_back(new LLHintHandler());  	mChannels.push_back(new LLBrowserNotification()); -	mChannels.push_back(new LLOutboxNotification());  	mChannels.push_back(new LLIMHandler());  	mChatHandler = boost::shared_ptr<LLFloaterIMNearbyChatHandler>(new LLFloaterIMNearbyChatHandler()); @@ -70,7 +69,7 @@ void LLNotificationManager::init()  //--------------------------------------------------------------------------  void LLNotificationManager::onChat(const LLChat& msg, const LLSD &args)  { -	if(mChatHandler) -		mChatHandler->processChat(msg, args); -		} +    if(mChatHandler) +        mChatHandler->processChat(msg, args); +} diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 81fbc471b3..8f482c5dca 100755 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -821,21 +821,6 @@ void LLToolDragAndDrop::dragOrDrop( S32 x, S32 y, MASK mask, BOOL drop,  	if (!handled)  	{ -        // *TODO: Suppress the "outbox" case once "marketplace" is used everywhere for everyone -		// Disallow drag and drop to 3D from the outbox -		const LLUUID outbox_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false); -		if (outbox_id.notNull()) -		{ -			for (S32 item_index = 0; item_index < (S32)mCargoIDs.size(); item_index++) -			{ -				if (gInventory.isObjectDescendentOf(mCargoIDs[item_index], outbox_id)) -				{ -					*acceptance = ACCEPT_NO; -					mToolTipMsg = LLTrans::getString("TooltipOutboxDragToWorld"); -					return; -				} -			} -		}  		// Disallow drag and drop to 3D from the marketplace          const LLUUID marketplacelistings_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);  		if (marketplacelistings_id.notNull()) diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 2bd8e5f99c..7e76db20c5 100755 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -91,7 +91,6 @@  #include "llfloaternotificationsconsole.h"  #include "llfloaterobjectweights.h"  #include "llfloateropenobject.h" -#include "llfloateroutbox.h"  #include "llfloaterpathfindingcharacters.h"  #include "llfloaterpathfindingconsole.h"  #include "llfloaterpathfindinglinksets.h" @@ -270,7 +269,6 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("object_weights", "floater_object_weights.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterObjectWeights>);  	LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>); -	LLFloaterReg::add("outbox", "floater_merchant_outbox.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOutbox>);  	LLFloaterReg::add("outgoing_call", "floater_outgoing_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutgoingCallDialog>);  	LLFloaterPayUtil::registerFloater(); diff --git a/indra/newview/llviewerfoldertype.cpp b/indra/newview/llviewerfoldertype.cpp index 158cacbc81..b8ff2cc9b4 100644 --- a/indra/newview/llviewerfoldertype.cpp +++ b/indra/newview/llviewerfoldertype.cpp @@ -137,7 +137,7 @@ LLViewerFolderDictionary::LLViewerFolderDictionary()  	bool boxes_invisible = !gSavedSettings.getBOOL("InventoryOutboxMakeVisible");  	addEntry(LLFolderType::FT_INBOX, 				new ViewerFolderEntry("Received Items",			"Inv_SysOpen",			"Inv_SysClosed",		FALSE,     boxes_invisible)); -	addEntry(LLFolderType::FT_OUTBOX, 				new ViewerFolderEntry("Merchant Outbox",		"Inv_SysOpen",			"Inv_SysClosed",		FALSE,     boxes_invisible)); +	addEntry(LLFolderType::FT_OUTBOX, 				new ViewerFolderEntry("Merchant Outbox",		"Inv_SysOpen",			"Inv_SysClosed",		FALSE,     true));  	addEntry(LLFolderType::FT_BASIC_ROOT, 			new ViewerFolderEntry("Basic Root",				"Inv_SysOpen",			"Inv_SysClosed",		FALSE,     true)); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 2505ae6a9c..d8ec44b132 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -390,32 +390,10 @@ void set_underclothes_menu_options()  void set_merchant_SLM_menu()  { -    // DD-170 : SLM Alpha and Beta program : for the moment, we always show the SLM menu and  -    // tools so that all merchants can try out the UI, even if not migrated. -    // *TODO : Keep SLM UI hidden for non migrated merchant in released viewer -     -    //if (LLMarketplaceData::instance().getSLMStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_MIGRATED_MERCHANT) -    //{ -        // Merchant not migrated: show only the old Merchant Outbox menu -    //    gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE); -    //} -    //else -    //{ -        // All other cases (new merchant, not merchant, migrated merchant): show the new Marketplace Listings menu and enable the tool -        gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(TRUE); -        LLCommand* command = LLCommandManager::instance().getCommand("marketplacelistings"); -		gToolBarView->enableCommand(command->id(), true); -    //} -} - -void set_merchant_outbox_menu(U32 status, const LLSD& content) -{ -    // If the merchant is fully migrated, the API is disabled (503) and we won't show the old menu item. -    // In all other cases, we show it. -    if (status != MarketplaceErrorCodes::IMPORT_SERVER_API_DISABLED) -    { -        gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(TRUE); -    } +    // All other cases (new merchant, not merchant, migrated merchant): show the new Marketplace Listings menu and enable the tool +    gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(TRUE); +    LLCommand* command = LLCommandManager::instance().getCommand("marketplacelistings"); +	gToolBarView->enableCommand(command->id(), true);  }  void check_merchant_status() @@ -434,17 +412,6 @@ void check_merchant_status()          // Launch an SLM test connection to get the merchant status          LLMarketplaceData::instance().initializeSLM(boost::bind(&set_merchant_SLM_menu)); - -        // Do the Merchant Outbox init only once per session -        if (LLMarketplaceInventoryImporter::instance().getMarketPlaceStatus() == MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED) -        { -            // Hide merchant outbox related menu item -            gMenuHolder->getChild<LLView>("MerchantOutbox")->setVisible(FALSE); -             -            // Launch a Merchant Outbox test connection to get the migration status -            LLMarketplaceInventoryImporter::instance().setStatusReportCallback(boost::bind(&set_merchant_outbox_menu,_1, _2)); -            LLMarketplaceInventoryImporter::instance().initialize(); -        }      }  } diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml index 91adec0789..3deb8f7233 100755 --- a/indra/newview/skins/default/xui/en/menu_inventory.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory.xml @@ -785,14 +785,6 @@  	 layout="topleft"  	 name="Marketplace Separator" />  	<menu_item_call -	 label="Copy to Merchant Outbox" -	 layout="topleft" -	 name="Merchant Copy"> -		<menu_item_call.on_click -		 function="Inventory.DoToSelected" -		 parameter="copy_to_outbox" /> -	</menu_item_call> -	<menu_item_call          label="Copy to Marketplace Listings"          layout="topleft"          name="Marketplace Copy"> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 2463c5f43b..52fcfba79d 100755 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -173,13 +173,6 @@          <menu_item_call.on_click           function="BuyCurrency" />        </menu_item_call> -      <menu_item_call -         label="Merchant Outbox..." -         name="MerchantOutbox"> -        <menu_item_call.on_click -         function="Floater.ToggleOrBringToFront" -         parameter="outbox" /> -      </menu_item_call>          <menu_item_call              label="Marketplace listings..."              name="MarketplaceListings"> | 
