summaryrefslogtreecommitdiff
path: root/indra/newview/lltexturectrl.cpp
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-07-28 10:30:51 -0500
committerRunitaiLinden <davep@lindenlab.com>2023-07-28 10:30:51 -0500
commit8c4fcd76ba9b25f10242682b0169a1b20bc27b86 (patch)
treefe88a247becbef8b80f4a6adf6c0827c30001764 /indra/newview/lltexturectrl.cpp
parentff4477397b443fae59a4d7b98b2b894eb1dc77e0 (diff)
parent2e591ffbd581ba2a51c8eccb2b975452c4c31fe3 (diff)
Merge branch 'DRTVWR-559' of github.com:secondlife/viewer into DRTVWR-559
Diffstat (limited to 'indra/newview/lltexturectrl.cpp')
-rw-r--r--indra/newview/lltexturectrl.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index 0dd1ff5483..c13376d0a6 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -232,12 +232,20 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id, bool set_selecti
mInventoryPanel->setSelection(item_id, TAKE_FOCUS_NO);
}
}
-
-
-
}
}
+void LLFloaterTexturePicker::setImageIDFromItem(const LLInventoryItem* itemp, bool set_selection)
+{
+ LLUUID asset_id = itemp->getAssetUUID();
+ if (mInventoryPickType == LLTextureCtrl::PICK_MATERIAL && asset_id.isNull())
+ {
+ // If an inventory item has a null asset, consider it a valid blank material(gltf)
+ asset_id = LLGLTFMaterialList::BLANK_MATERIAL_ASSET_ID;
+ }
+ setImageID(asset_id, set_selection);
+}
+
void LLFloaterTexturePicker::setActive( BOOL active )
{
if (!active && getChild<LLUICtrl>("Pipette")->getValue().asBoolean())
@@ -388,7 +396,7 @@ BOOL LLFloaterTexturePicker::handleDragAndDrop(
{
if (drop)
{
- setImageID( item->getAssetUUID() );
+ setImageIDFromItem(item);
commitIfImmediateSet();
}
@@ -685,6 +693,11 @@ void LLFloaterTexturePicker::draw()
const LLUUID& LLFloaterTexturePicker::findItemID(const LLUUID& asset_id, BOOL copyable_only, BOOL ignore_library)
{
+ if (asset_id.isNull())
+ {
+ return LLUUID::null;
+ }
+
LLViewerInventoryCategory::cat_array_t cats;
LLViewerInventoryItem::item_array_t items;
LLAssetIDMatches asset_id_matches(asset_id);
@@ -860,7 +873,7 @@ void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem
{
mNoCopyTextureSelected = TRUE;
}
- setImageID(itemp->getAssetUUID(),false);
+ setImageIDFromItem(itemp, false);
mViewModel->setDirty(); // *TODO: shouldn't we be using setValue() here?
if(!mPreviewSettingChanged)