summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCallum Prentice <callum@lindenlab.com>2023-08-02 18:13:14 -0700
committerCallum Prentice <callum@lindenlab.com>2023-08-02 18:13:14 -0700
commitc92d6e3f154ca11206a868a29afea0a0ffcc0327 (patch)
treeee97e54117fcce3ba57d6117179e09a514d2ba64
parent03ca9468036fc65e1a75d323bfb6d90b410a304b (diff)
SL-20109: Hacked in some code to write thumbnails now - had to change the ID i saved for the texture from the object ID to the asset ID and then it worked for 3 test items. Next up, tidy up the code, remove hacks and do a run on a local copy of the main SENRA inventory
-rw-r--r--indra/newview/llfloaterbulkythumbs.cpp60
1 files changed, 56 insertions, 4 deletions
diff --git a/indra/newview/llfloaterbulkythumbs.cpp b/indra/newview/llfloaterbulkythumbs.cpp
index 4a6953d96c..f7ee538033 100644
--- a/indra/newview/llfloaterbulkythumbs.cpp
+++ b/indra/newview/llfloaterbulkythumbs.cpp
@@ -39,6 +39,7 @@
#include "llinventoryfunctions.h"
#include "lltexteditor.h"
#include "lluuid.h"
+#include "llaisapi.h"
LLFloaterBulkyThumbs::LLFloaterBulkyThumbs(const LLSD& key)
: LLFloater("floater_bulky_thumbs")
@@ -101,7 +102,8 @@ void LLFloaterBulkyThumbs::recordTextureItemEntry(LLViewerInventoryItem* item)
std::map<std::string, LLUUID>::iterator iter = mTextureNamesIDs.find(name);
if (iter == mTextureNamesIDs.end())
{
- LLUUID id = item->getUUID();
+ //LLUUID id = item->getUUID();
+ LLUUID id = item->getAssetUUID();
mTextureNamesIDs.insert({name, id});
std::string output_line = "TEXR: ";
@@ -199,8 +201,6 @@ void LLFloaterBulkyThumbs::onPasteTextures()
LLInventoryModel::EXCLUDE_TRASH,
is_texture);
- std::cout << "CAT: found " << cat_array.size() << " additional categories" << std::endl;
- std::cout << "ITEM: found " << item_array.size() << " items" << std::endl;
for (size_t i = 0; i < item_array.size(); i++)
{
LLViewerInventoryItem* item = item_array.at(i);
@@ -302,9 +302,55 @@ void LLFloaterBulkyThumbs::onProcessBulkyThumbs()
mWriteBulkyThumbsBtn->setEnabled(true);
}
+#if 1
+// *TODO$: LLInventoryCallback should be deprecated to conform to the new boost::bind/coroutine model.
+// temp code in transition
+void bulkyInventoryCb(LLPointer<LLInventoryCallback> cb, LLUUID id)
+{
+ if (cb.notNull())
+ {
+ cb->fire(id);
+ }
+}
+#endif
+
+bool writeThumbnailID(LLUUID item_id, LLUUID thumbnail_asset_id)
+{
+ if (AISAPI::isAvailable())
+ {
+
+ LLSD updates;
+ updates["thumbnail"] = LLSD().with("asset_id", thumbnail_asset_id.asString());
+
+ LLPointer<LLInventoryCallback> cb;
+
+ AISAPI::completion_t cr = boost::bind(&bulkyInventoryCb, cb, _1);
+ AISAPI::UpdateItem(item_id, updates, cr);
+
+ return true;
+ }
+ else
+ {
+ LL_WARNS() << "Unable to write inventory thumbnail because AIS API is not available" << LL_ENDL;
+ return false;
+ }
+}
+
void LLFloaterBulkyThumbs::onWriteBulkyThumbs()
{
- // look at LLFloaterChangeItemThumbnail::onOpen(const LLSD& key)
+ // look at void LLFloaterChangeItemThumbnail::setThumbnailId(const LLUUID& new_thumbnail_id, const LLUUID& object_id, LLInventoryObject* obj)
+
+ /**
+ * Results I get - compare with what the manual image update code gives us
+ Senra Blake - bottom - sweatpants - green
+ item ID: 1daf6aab-e42f-42aa-5a85-4d73458a355d
+ thumbnail texture ID: cba71b7c-2335-e15c-7646-ead0f9e817fb
+
+ Correct values (from mnala path) are:
+ Updating thumbnail forSenra Blake - bottom - sweatpants - green:
+ ID: 1daf6aab-e42f-42aa-5a85-4d73458a355d
+ THUMB_ID: 8f5db9e7-8d09-c8be-0efd-0a5e4f3c925d
+ */
mInventoryItems->appendText("Writing thumbnails", true);
std::map<std::string, std::pair< LLUUID, LLUUID>>::iterator iter = mNameItemIDTextureId.begin();
@@ -320,6 +366,12 @@ void LLFloaterBulkyThumbs::onWriteBulkyThumbs()
output_line += "\n";
mInventoryItems->appendText(output_line, true);
+
+ LLUUID item_id = ((*iter).second).first;
+ LLUUID thumbnail_asset_id = ((*iter).second).second;
+
+ writeThumbnailID(item_id, thumbnail_asset_id);
+
++iter;
}
mInventoryItems->setCursorAndScrollToEnd();