summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/lltexturectrl.cpp18
-rw-r--r--indra/newview/lltexturectrl.h1
2 files changed, 14 insertions, 5 deletions
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index 0dd1ff5483..b3310a1f9a 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();
}
@@ -860,7 +868,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)
diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h
index c66e618782..ba310dd9a6 100644
--- a/indra/newview/lltexturectrl.h
+++ b/indra/newview/lltexturectrl.h
@@ -357,6 +357,7 @@ public:
protected:
void refreshLocalList();
void refreshInventoryFilter();
+ void setImageIDFromItem(const LLInventoryItem* itemp, bool set_selection = true);
LLPointer<LLViewerTexture> mTexturep;
LLPointer<LLFetchedGLTFMaterial> mGLTFMaterial;