From d340b74bb952bbcfb7131e05ec9da4d8646691f2 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Mon, 21 Jan 2019 04:55:27 -0500 Subject: [PATCH] Silly git, that's not how merges work! Fix automatic merge errors Also fix some other compile errors --- indra/newview/llappearancemgr.cpp | 9 -- indra/newview/llappearancemgr.h | 9 -- indra/newview/llinventoryactions.cpp | 6 +- indra/newview/llinventorybridge.cpp | 14 +- indra/newview/llinventoryfilter.cpp | 29 +--- indra/newview/llinventoryfilter.h | 1 + indra/newview/llinventorypanel.cpp | 8 +- indra/newview/llmarketplacefunctions.cpp | 179 ++++++++++++----------- indra/newview/llpanelmaininventory.cpp | 2 +- 9 files changed, 115 insertions(+), 142 deletions(-) diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 5529aa626..4e948c8c2 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -530,15 +530,6 @@ LLUpdateAppearanceOnDestroy::~LLUpdateAppearanceOnDestroy() } } -LLRequestServerAppearanceUpdateOnDestroy::~LLRequestServerAppearanceUpdateOnDestroy() -{ - LL_DEBUGS("Avatar") << "ATT requesting server appearance update" << LL_ENDL; - if (!LLApp::isExiting()) - { - LLAppearanceMgr::instance().requestServerAppearanceUpdate(); - } -} - U32 LLUpdateAppearanceOnDestroy::sActiveCallbacks = 0; LLUpdateAppearanceAndEditWearableOnDestroy::LLUpdateAppearanceAndEditWearableOnDestroy(const LLUUID& item_id): diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 3a4b5a1e3..a0c7fc3d8 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -321,15 +321,6 @@ private: nullary_func_t mPostUpdateFunc; }; -class LLRequestServerAppearanceUpdateOnDestroy: public LLInventoryCallback -{ -public: - LLRequestServerAppearanceUpdateOnDestroy() {} - ~LLRequestServerAppearanceUpdateOnDestroy(); - - /* virtual */ void fire(const LLUUID& item_id) {} -}; - // [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-08-31 (Catznip-2.1) class LLUpdateAppearanceAndEditWearableOnDestroy: public LLInventoryCallback { diff --git a/indra/newview/llinventoryactions.cpp b/indra/newview/llinventoryactions.cpp index 018e96b10..52f6115c8 100644 --- a/indra/newview/llinventoryactions.cpp +++ b/indra/newview/llinventoryactions.cpp @@ -693,12 +693,12 @@ struct LLAttachObject : public inventory_panel_listener_t void init_object_inventory_panel_actions(LLPanelObjectInventory *panel) { - (new LLBindMemberListener(panel, "Inventory.DoToSelected", boost::bind(&LLInventoryAction::doToSelected, boost::bind(&LLPanelObjectInventory::getRootFolder, panel), _2))); + (new LLBindMemberListener(panel, "Inventory.DoToSelected", boost::bind(&LLInventoryAction::doToSelected, boost::bind(&LLPanelObjectInventory::getRootFolder, panel), _2, true))); } void init_inventory_actions(LLPanelMainInventory *floater) { - (new LLBindMemberListener(floater, "Inventory.DoToSelected", boost::bind(&LLInventoryAction::doToSelected, boost::bind(&LLPanelMainInventory::getRootFolder, floater), _2))); + (new LLBindMemberListener(floater, "Inventory.DoToSelected", boost::bind(&LLInventoryAction::doToSelected, boost::bind(&LLPanelMainInventory::getRootFolder, floater), _2, true))); (new LLBindMemberListener(floater, "Inventory.CloseAllFolders", boost::bind(&LLInventoryPanel::closeAllFolders, boost::bind(&LLPanelMainInventory::getPanel, floater)))); (new LLBindMemberListener(floater, "Inventory.EmptyTrash", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "", LLFolderType::FT_TRASH))); (new LLBindMemberListener(floater, "Inventory.DoCreate", boost::bind(&do_create, &gInventory, boost::bind(&LLPanelMainInventory::getPanel, floater), _2, (LLFolderBridge*)0))); @@ -711,7 +711,7 @@ void init_inventory_actions(LLPanelMainInventory *floater) void init_inventory_panel_actions(LLInventoryPanel *panel) { - (new LLBindMemberListener(panel, "Inventory.DoToSelected", boost::bind(&LLInventoryAction::doToSelected, boost::bind(&LLInventoryPanel::getRootFolder, panel), _2))); + (new LLBindMemberListener(panel, "Inventory.DoToSelected", boost::bind(&LLInventoryAction::doToSelected, boost::bind(&LLInventoryPanel::getRootFolder, panel), _2, true))); (new LLAttachObject())->registerListener(panel, "Inventory.AttachObject"); (new LLBindMemberListener(panel, "Inventory.CloseAllFolders", boost::bind(&LLInventoryPanel::closeAllFolders, panel))); (new LLBindMemberListener(panel, "Inventory.EmptyTrash", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyTrash", LLFolderType::FT_TRASH))); diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 23180a1ec..668a49015 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1203,13 +1203,13 @@ LLInventoryObject* LLInvFVBridge::getInventoryObject() const LLInventoryModel* LLInvFVBridge::getInventoryModel() const { LLInventoryPanel* panel = mInventoryPanel.get(); - return panel ? panel->getModel() : NULL; + return panel ? panel->getModel() : nullptr; } LLInventoryFilter* LLInvFVBridge::getInventoryFilter() const { LLInventoryPanel* panel = mInventoryPanel.get(); - return panel ? panel->getFilter() : NULL; + return panel ? &panel->getFilter() : nullptr; } BOOL LLInvFVBridge::isItemInTrash() const @@ -3621,7 +3621,7 @@ void LLFolderBridge::perform_pasteFromClipboard(bool only_copies) // move_inventory_item() is not enough, as we have to update inventory locally too if (LLAssetType::AT_CATEGORY == obj->getType()) { - LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *) model->getCategory(item_id); + LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *)model->getCategory(item_id); llassert(vicat); if (vicat) { @@ -3673,7 +3673,7 @@ void LLFolderBridge::perform_pasteFromClipboard(bool only_copies) // Do a "copy" to "paste" a regular copy clipboard if (LLAssetType::AT_CATEGORY == obj->getType()) { - LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *) model->getCategory(item_id); + LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *)model->getCategory(item_id); llassert(vicat); if (vicat) { @@ -3687,7 +3687,7 @@ void LLFolderBridge::perform_pasteFromClipboard(bool only_copies) } } } -// [SL:KB] - Patch: Inventory-Links | Checked: 2010-04-12 (Catznip-2.2.0a) | Added: Catznip-2.0.0a + // [SL:KB] - Patch: Inventory-Links | Checked: 2010-04-12 (Catznip-2.2.0a) | Added: Catznip-2.0.0a else if (!move_is_into_marketplacelistings && !only_copies && LLAssetType::lookupIsLinkType(item->getActualType())) { link_inventory_object( @@ -3695,7 +3695,7 @@ void LLFolderBridge::perform_pasteFromClipboard(bool only_copies) item, NULL); } -// [/SL:KB] + // [/SL:KB] else { LLViewerInventoryItem* viitem = dynamic_cast(item); @@ -3722,6 +3722,8 @@ void LLFolderBridge::perform_pasteFromClipboard(bool only_copies) } } } + } + } } // Change mode to copy for next paste LLInventoryClipboard::instance().setCutMode(false); diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 5932fc95d..d5c9f7936 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -49,18 +49,18 @@ #include "lltrans.h" LLInventoryFilter::FilterOps::FilterOps(const Params& p) -: mFilterObjectTypes(p.object_types), - mFilterCategoryTypes(p.category_types), +: mFilterTypes(p.types), + mFilterObjectTypes(p.object_types), mFilterWearableTypes(p.wearable_types), + mFilterCategoryTypes(p.category_types), + mFilterLinks(p.links), + mFilterUUID(p.uuid), mMinDate(p.date_range.min_date), mMaxDate(p.date_range.max_date), mHoursAgo(p.hours_ago), mDateSearchDirection(p.date_search_direction), mShowFolderState(p.show_folder_state), mPermissions(p.permissions), - mFilterTypes(p.types), - mFilterUUID(p.uuid), - mFilterLinks(p.links), mFilterWornItems(p.worn_items) { } @@ -69,13 +69,10 @@ LLInventoryFilter::FilterOps::FilterOps(const Params& p) /// Class LLInventoryFilter ///---------------------------------------------------------------------------- LLInventoryFilter::LLInventoryFilter(const Params& p) -: mName(p.name), - mFilterBehavior(FILTER_NONE), - mFilterOps(p.filter_ops), +: mFilterOps(p.filter_ops), mFilterSubString(p.substring), + mName(p.name), mFilterModified(FILTER_NONE), - mFilterOps(), - mFilterSubString(), mCurrentGeneration(0), mFirstRequiredGeneration(0), mFirstSuccessGeneration(0) @@ -1305,18 +1302,6 @@ bool LLInventoryFilter::showAllResults() const return hasFilterString(); } -bool LLInventoryFilter::areDateLimitsSet() -{ - return mFilterOps.mMinDate != time_min() - || mFilterOps.mMaxDate != time_max() - || mFilterOps.mHoursAgo != 0; -} - -bool LLInventoryFilter::showAllResults() const -{ - return hasFilterString(); -} - bool LLInventoryFilter::FilterOps::DateRange::validateBlock( bool emit_errors /*= true*/ ) const diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h index 52a01046a..50efbd5e0 100644 --- a/indra/newview/llinventoryfilter.h +++ b/indra/newview/llinventoryfilter.h @@ -151,6 +151,7 @@ public: mMaxDate; U32 mHoursAgo; U32 mDateSearchDirection; + EFolderShow mShowFolderState; PermissionMask mPermissions; diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 1e2db53ac..ae7bf60a1 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -165,8 +165,8 @@ LLUUID getStartFolder(const std::string& start_folder) const LLFolderType::EType preferred_type = LLViewerFolderType::lookupTypeFromNewCategoryName(start_folder); return (preferred_type != LLFolderType::FT_NONE) - ? gInventory.findCategoryUUIDForType(preferred_type, false, false) - : gInventory.getCategory(static_cast(start_folder)) ? static_cast(mStartFolder) // Singu Note: if start folder is an id of a folder, use it + ? gInventory.findCategoryUUIDForType(preferred_type, false) + : gInventory.getCategory(static_cast(start_folder)) ? static_cast(start_folder) // Singu Note: if start folder is an id of a folder, use it : LLUUID::null; } @@ -443,7 +443,7 @@ void LLInventoryPanel::setFilterSubString(const std::string& string) if (string.empty()) { // Unlike v3, do not clear other filters. Text is independent. - getFilter()->setFilterSubString(LLStringUtil::null); + getFilter().setFilterSubString(LLStringUtil::null); getRootFolder()->restoreFolderState(); LLOpenFoldersWithSelection opener; getRootFolder()->applyFunctorRecursively(opener); @@ -1296,7 +1296,7 @@ void LLInventoryPanel::updateSelection() namespace LLInventoryAction { - bool doToSelected(LLFolderView* root, std::string action); + bool doToSelected(LLFolderView* root, std::string action, BOOL user_confirm = TRUE); } void LLInventoryPanel::doToSelected(const LLSD& userdata) diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp index 9d02371c0..5cb1d952b 100644 --- a/indra/newview/llmarketplacefunctions.cpp +++ b/indra/newview/llmarketplacefunctions.cpp @@ -44,8 +44,7 @@ #include "llviewerregion.h" #include "hippogridmanager.h" -#include "json/reader.h" // JSON -#include "json/writer.h" // JSON +#include "llsdutil.h" // // Helpers @@ -248,11 +247,10 @@ public: return; } - Json::Value root; - Json::Reader reader; - if (!reader.parse(body, root)) + LLSD result; + if (LLSDSerialize::fromNotation(result, strstrm, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE) { - log_SLM_warning("Get /listings", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + log_SLM_warning("Get /listings", getStatus(), "Json parsing failed", LLStringUtil::null, body); LLMarketplaceData::instance().setSLMDataFetched(MarketplaceFetchCodes::MARKET_FETCH_FAILED); update_marketplace_category(mExpectedFolderId, false); gInventory.notifyObservers(); @@ -262,18 +260,18 @@ public: log_SLM_infos("Get /listings", getStatus(), body); // Extract the info from the Json string - Json::ValueIterator it = root["listings"].begin(); + auto it = result["listings"].beginArray(); - while (it != root["listings"].end()) + while (it != result["listings"].endArray()) { - Json::Value listing = *it; + auto listing = *it; - int listing_id = listing["id"].asInt(); - bool is_listed = listing["is_listed"].asBool(); + int listing_id = listing["id"].asInteger(); + bool is_listed = listing["is_listed"].asBoolean(); std::string edit_url = listing["edit_url"].asString(); std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); - int count = listing["inventory_info"]["count_on_hand"].asInt(); + int count = listing["inventory_info"]["count_on_hand"].asInteger(); LLUUID folder_id(folder_uuid_string); LLUUID version_id(version_uuid_string); @@ -322,11 +320,10 @@ public: return; } - Json::Value root; - Json::Reader reader; - if (!reader.parse(body, root)) + LLSD result; + if (LLSDSerialize::fromNotation(result, strstrm, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE) { - log_SLM_warning("Post /listings", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + log_SLM_warning("Post /listings", getStatus(), "Json parsing failed", LLStringUtil::null, body); update_marketplace_category(mExpectedFolderId, false); gInventory.notifyObservers(); return; @@ -335,18 +332,18 @@ public: log_SLM_infos("Post /listings", getStatus(), body); // Extract the info from the Json string - Json::ValueIterator it = root["listings"].begin(); + auto it = result["listings"].beginArray(); - while (it != root["listings"].end()) + while (it != result["listings"].endArray()) { - Json::Value listing = *it; + auto listing = *it; - int listing_id = listing["id"].asInt(); - bool is_listed = listing["is_listed"].asBool(); + int listing_id = listing["id"].asInteger(); + bool is_listed = listing["is_listed"].asBoolean(); std::string edit_url = listing["edit_url"].asString(); std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); - int count = listing["inventory_info"]["count_on_hand"].asInt(); + int count = listing["inventory_info"]["count_on_hand"].asInteger(); LLUUID folder_id(folder_uuid_string); LLUUID version_id(version_uuid_string); @@ -397,11 +394,10 @@ public: return; } - Json::Value root; - Json::Reader reader; - if (!reader.parse(body, root)) + LLSD result; + if (LLSDSerialize::fromNotation(result, strstrm, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE) { - log_SLM_warning("Get /listing", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + log_SLM_warning("Get /listing", getStatus(), "Json parsing failed", LLStringUtil::null, body); update_marketplace_category(mExpectedFolderId, false); gInventory.notifyObservers(); return; @@ -410,18 +406,18 @@ public: log_SLM_infos("Get /listing", getStatus(), body); // Extract the info from the Json string - Json::ValueIterator it = root["listings"].begin(); + auto it = result["listings"].beginArray(); - while (it != root["listings"].end()) + while (it != result["listings"].endArray()) { - Json::Value listing = *it; + auto listing = *it; - int listing_id = listing["id"].asInt(); - bool is_listed = listing["is_listed"].asBool(); + int listing_id = listing["id"].asInteger(); + bool is_listed = listing["is_listed"].asBoolean(); std::string edit_url = listing["edit_url"].asString(); std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); - int count = listing["inventory_info"]["count_on_hand"].asInt(); + int count = listing["inventory_info"]["count_on_hand"].asInteger(); LLUUID folder_id(folder_uuid_string); LLUUID version_id(version_uuid_string); @@ -473,11 +469,10 @@ public: return; } - Json::Value root; - Json::Reader reader; - if (!reader.parse(body, root)) + LLSD result; + if (LLSDSerialize::fromNotation(result, strstrm, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE) { - log_SLM_warning("Put /listing", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + log_SLM_warning("Put /listing", getStatus(), "Json parsing failed", LLStringUtil::null, body); update_marketplace_category(mExpectedFolderId, false); gInventory.notifyObservers(); return; @@ -486,18 +481,18 @@ public: log_SLM_infos("Put /listing", getStatus(), body); // Extract the info from the Json string - Json::ValueIterator it = root["listings"].begin(); + auto it = result["listings"].beginArray(); - while (it != root["listings"].end()) + while (it != result["listings"].endArray()) { - Json::Value listing = *it; + auto listing = *it; - int listing_id = listing["id"].asInt(); - bool is_listed = listing["is_listed"].asBool(); + int listing_id = listing["id"].asInteger(); + bool is_listed = listing["is_listed"].asBoolean(); std::string edit_url = listing["edit_url"].asString(); std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); - int count = listing["inventory_info"]["count_on_hand"].asInt(); + int count = listing["inventory_info"]["count_on_hand"].asInteger(); LLUUID folder_id(folder_uuid_string); LLUUID version_id(version_uuid_string); @@ -561,11 +556,10 @@ public: return; } - Json::Value root; - Json::Reader reader; - if (!reader.parse(body, root)) + LLSD result; + if (LLSDSerialize::fromNotation(result, strstrm, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE) { - log_SLM_warning("Put /associate_inventory", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + log_SLM_warning("Put /associate_inventory", getStatus(), "Json parsing failed", LLStringUtil::null, body); update_marketplace_category(mExpectedFolderId, false); update_marketplace_category(mSourceFolderId, false); gInventory.notifyObservers(); @@ -575,18 +569,18 @@ public: log_SLM_infos("Put /associate_inventory", getStatus(), body); // Extract the info from the Json string - Json::ValueIterator it = root["listings"].begin(); + auto it = result["listings"].beginArray(); - while (it != root["listings"].end()) + while (it != result["listings"].endArray()) { - Json::Value listing = *it; + auto listing = *it; - int listing_id = listing["id"].asInt(); - bool is_listed = listing["is_listed"].asBool(); + int listing_id = listing["id"].asInteger(); + bool is_listed = listing["is_listed"].asBoolean(); std::string edit_url = listing["edit_url"].asString(); std::string folder_uuid_string = listing["inventory_info"]["listing_folder_id"].asString(); std::string version_uuid_string = listing["inventory_info"]["version_folder_id"].asString(); - int count = listing["inventory_info"]["count_on_hand"].asInt(); + int count = listing["inventory_info"]["count_on_hand"].asInteger(); LLUUID folder_id(folder_uuid_string); LLUUID version_id(version_uuid_string); @@ -648,11 +642,11 @@ public: return; } - Json::Value root; - Json::Reader reader; - if (!reader.parse(body, root)) + + LLSD result; + if (LLSDSerialize::fromNotation(result, strstrm, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE) { - log_SLM_warning("Delete /listing", getStatus(), "Json parsing failed", reader.getFormatedErrorMessages(), body); + log_SLM_warning("Delete /listing", getStatus(), "Json parsing failed", LLStringUtil::null, body); update_marketplace_category(mExpectedFolderId, false); gInventory.notifyObservers(); return; @@ -661,13 +655,13 @@ public: log_SLM_infos("Delete /listing", getStatus(), body); // Extract the info from the Json string - Json::ValueIterator it = root["listings"].begin(); + auto it = result["listings"].beginArray(); - while (it != root["listings"].end()) + while (it != result["listings"].endArray()) { - Json::Value listing = *it; + auto listing = *it; - int listing_id = listing["id"].asInt(); + int listing_id = listing["id"].asInteger(); LLUUID folder_id = LLMarketplaceData::instance().getListingFolder(listing_id); LLMarketplaceData::instance().deleteListing(folder_id); @@ -1328,20 +1322,23 @@ void LLMarketplaceData::createSLMListing(const LLUUID& folder_id, const LLUUID& headers.addHeader("Accept", "application/json"); headers.addHeader("Content-Type", "application/json"); - // Build the json message - Json::Value root; - Json::FastWriter writer; - LLViewerInventoryCategory* category = gInventory.getCategory(folder_id); - root["listing"]["name"] = category->getName(); - root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); - root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); - root["listing"]["inventory_info"]["count_on_hand"] = count; + LLSD invInfo; + invInfo["listing_folder_id"] = folder_id; + invInfo["version_folder_id"] = version_id; + invInfo["count_on_hand"] = count; + LLSD listing; + listing["name"] = category->getName(); + listing["inventory_info"] = invInfo; + LLSD postData; + postData["listing"] = listing; - std::string json_str = writer.write(root); + std::stringstream json; + LLSDSerialize::toPrettyNotation(postData, json); + auto json_str = json.str(); // postRaw() takes ownership of the buffer and releases it later. - size_t size = json_str.size(); + size_t size = json_str.length(); U8* data = new U8[size]; memcpy(data, (U8*)(json_str.c_str()), size); @@ -1358,9 +1355,6 @@ void LLMarketplaceData::updateSLMListing(const LLUUID& folder_id, S32 listing_id headers.addHeader("Accept", "application/json"); headers.addHeader("Content-Type", "application/json"); - Json::Value root; - Json::FastWriter writer; - // Note : auto unlist if the count is 0 (out of stock) if (is_listed && (count == 0)) { @@ -1368,14 +1362,20 @@ void LLMarketplaceData::updateSLMListing(const LLUUID& folder_id, S32 listing_id LLNotificationsUtil::add("AlertMerchantStockFolderEmpty"); } - // Note : we're assuming that sending unchanged info won't break anything server side... - root["listing"]["id"] = listing_id; - root["listing"]["is_listed"] = is_listed; - root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); - root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); - root["listing"]["inventory_info"]["count_on_hand"] = count; + LLSD invInfo; + invInfo["listing_folder_id"] = folder_id; + invInfo["version_folder_id"] = version_id; + invInfo["count_on_hand"] = count; + LLSD listing; + listing["inventory_info"] = invInfo; + listing["id"] = listing_id; + listing["is_listed"] = is_listed; + LLSD postData; + postData["listing"] = listing; - std::string json_str = writer.write(root); + std::stringstream json; + LLSDSerialize::toPrettyNotation(postData, json); + auto json_str = json.str(); // postRaw() takes ownership of the buffer and releases it later. size_t size = json_str.size(); @@ -1395,15 +1395,18 @@ void LLMarketplaceData::associateSLMListing(const LLUUID& folder_id, S32 listing headers.addHeader("Accept", "application/json"); headers.addHeader("Content-Type", "application/json"); - Json::Value root; - Json::FastWriter writer; + LLSD invInfo; + invInfo["listing_folder_id"] = folder_id; + invInfo["version_folder_id"] = version_id; + LLSD listing; + listing["id"] = listing_id; + listing["inventory_info"] = invInfo; + LLSD postData; + postData["listing"] = listing; - // Note : we're assuming that sending unchanged info won't break anything server side... - root["listing"]["id"] = listing_id; - root["listing"]["inventory_info"]["listing_folder_id"] = folder_id.asString(); - root["listing"]["inventory_info"]["version_folder_id"] = version_id.asString(); - - std::string json_str = writer.write(root); + std::stringstream json; + LLSDSerialize::toPrettyNotation(postData, json); + auto json_str = json.str(); // postRaw() takes ownership of the buffer and releases it later. size_t size = json_str.size(); diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 3353a09c0..2b0d9d2f9 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -1094,7 +1094,7 @@ void LLFloaterInventoryFinder::draw() filtered_by_all_types = FALSE; } - if (!filtered_by_all_types || (mInventoryView->getPanel()->getFilter().getFilterTypes() & LLInventoryFilter::FILTERTYPE_DATE)) + if (!filtered_by_all_types || (mPanelMainInventory->getPanel()->getFilter().getFilterTypes() & LLInventoryFilter::FILTERTYPE_DATE)) { // don't include folders in filter, unless I've selected everything or filtering by date filter &= ~(0x1 << LLInventoryType::IT_CATEGORY);