diff options
| author | Merov Linden <merov@lindenlab.com> | 2014-12-18 22:16:44 -0800 | 
|---|---|---|
| committer | Merov Linden <merov@lindenlab.com> | 2014-12-18 22:16:44 -0800 | 
| commit | d0d5a6a15cf3c573c89ce590030c7a150b19dd05 (patch) | |
| tree | cad972c1b0ce95e343aea30a29565594b83ea3b7 | |
| parent | 00f3850fe2e2527f7f0f663f94cdabc83949b946 (diff) | |
DD-286 : Made stock folders in inventory do checking on paste and drop. Also prevent creation of items in stock folders
| -rwxr-xr-x | indra/newview/llinventorybridge.cpp | 26 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/notifications.xml | 13 | 
2 files changed, 38 insertions, 1 deletions
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index ae3e7c3db0..9c0c30c167 100755 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -3406,11 +3406,11 @@ void LLFolderBridge::perform_pasteFromClipboard()  		std::vector<LLUUID> objects;  		LLClipboard::instance().pasteFromClipboard(objects); +        LLViewerInventoryCategory * dest_folder = getCategory();  		if (move_is_into_outbox || 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)); -            LLViewerInventoryCategory * dest_folder = getCategory();              for (std::vector<LLUUID>::const_iterator iter = objects.begin(); iter != objects.end(); ++iter)              {                  const LLUUID& item_id = (*iter); @@ -3434,6 +3434,25 @@ void LLFolderBridge::perform_pasteFromClipboard()                  return;              }  		} +        else +        { +            // Check that all items can be moved into that folder : for the moment, only stock folder mismatch is checked +            for (std::vector<LLUUID>::const_iterator iter = objects.begin(); iter != objects.end(); ++iter) +            { +                const LLUUID& item_id = (*iter); +                LLInventoryItem *item = model->getItem(item_id); +                LLInventoryCategory *cat = model->getCategory(item_id); + +                if ((item && !dest_folder->acceptItem(item)) || (cat && (dest_folder->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK))) +                { +                    std::string error_msg = LLTrans::getString("TooltipOutboxMixedStock"); +                    LLSD subs; +                    subs["[ERROR_CODE]"] = error_msg; +                    LLNotificationsUtil::add("StockPasteFailed", subs); +                    return; +                } +            } +        }  		const LLUUID parent_id(mUUID); @@ -3675,6 +3694,11 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items      if (getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK)      {          disabled_items.push_back(std::string("New Folder")); +		disabled_items.push_back(std::string("New Script")); +		disabled_items.push_back(std::string("New Note")); +		disabled_items.push_back(std::string("New Gesture")); +		disabled_items.push_back(std::string("New Clothes")); +		disabled_items.push_back(std::string("New Body Parts"));      }      if (marketplace_listings_id == mUUID)      { diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 06aafe45e4..cce166a8bd 100755 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -305,6 +305,19 @@ Initialization with the Marketplace failed because of a system or network error.      <notification          icon="OutboxStatus_Error" +        name="StockPasteFailed" +        type="outbox"> +        Copy or move to Stock Folder failed with error : +         +        '[ERROR_CODE]' +         +        <usetemplate +        name="okbutton" +        yestext="OK"/> +    </notification> +     +    <notification +        icon="OutboxStatus_Error"          name="MerchantPasteFailed"          type="outbox">          Copy or move to Marketplace Listings failed with error :  | 
