SL-18233 Double clicking material in an object shows notecard
parent
a63fcfc9d5
commit
6b46793771
|
|
@ -180,6 +180,16 @@ LLMaterialEditor::LLMaterialEditor(const LLSD& key)
|
|||
}
|
||||
}
|
||||
|
||||
void LLMaterialEditor::setObjectID(const LLUUID& object_id)
|
||||
{
|
||||
LLPreview::setObjectID(object_id);
|
||||
const LLInventoryItem* item = getItem();
|
||||
if (item)
|
||||
{
|
||||
mAssetID = item->getAssetUUID();
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLMaterialEditor::postBuild()
|
||||
{
|
||||
mBaseColorTextureCtrl = getChild<LLTextureCtrl>("base_color_texture");
|
||||
|
|
@ -751,7 +761,8 @@ bool LLMaterialEditor::decodeAsset(const std::vector<char>& buffer)
|
|||
|
||||
if (loader.LoadASCIIFromString(&model_in, &error_msg, &warn_msg, data.c_str(), data.length(), ""))
|
||||
{
|
||||
return setFromGltfModel(model_in, true);
|
||||
// assets are only supposed to have one item
|
||||
return setFromGltfModel(model_in, 0, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1878,8 +1889,8 @@ void LLMaterialEditor::onLoadComplete(const LLUUID& asset_uuid,
|
|||
|
||||
editor->decodeAsset(buffer);
|
||||
|
||||
BOOL allow_modify = editor->canModify(editor->mObjectID, editor->getItem());
|
||||
BOOL source_library = editor->mObjectID.isNull() && gInventory.isObjectDescendentOf(editor->mItemUUID, gInventory.getLibraryRootFolderID());
|
||||
BOOL allow_modify = editor->canModify(editor->mObjectUUID, editor->getItem());
|
||||
BOOL source_library = editor->mObjectUUID.isNull() && gInventory.isObjectDescendentOf(editor->mItemUUID, gInventory.getLibraryRootFolderID());
|
||||
editor->setEnableEditing(allow_modify && !source_library);
|
||||
editor->setHasUnsavedChanges(false);
|
||||
editor->mAssetStatus = PREVIEW_ASSET_LOADED;
|
||||
|
|
@ -2083,5 +2094,5 @@ void LLMaterialEditor::loadDefaults()
|
|||
{
|
||||
tinygltf::Model model_in;
|
||||
model_in.materials.resize(1);
|
||||
setFromGltfModel(model_in, true);
|
||||
setFromGltfModel(model_in, 0, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,6 +143,9 @@ public:
|
|||
void onClickCancel();
|
||||
void onCancelMsgCallback(const LLSD& notification, const LLSD& response);
|
||||
|
||||
// llpreview
|
||||
void setObjectID(const LLUUID& object_id) override;
|
||||
|
||||
// llpanel
|
||||
BOOL postBuild() override;
|
||||
void onClickCloseBtn(bool app_quitting = false) override;
|
||||
|
|
@ -211,7 +214,6 @@ private:
|
|||
friend class LLMaterialFilePicker;
|
||||
|
||||
LLUUID mAssetID;
|
||||
LLUUID mObjectID;
|
||||
|
||||
LLTextureCtrl* mBaseColorTextureCtrl;
|
||||
LLTextureCtrl* mMetallicTextureCtrl;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
#include "llinventoryicon.h"
|
||||
#include "llinventoryfilter.h"
|
||||
#include "llinventoryfunctions.h"
|
||||
#include "llmaterialeditor.h"
|
||||
#include "llpreviewanim.h"
|
||||
#include "llpreviewgesture.h"
|
||||
#include "llpreviewnotecard.h"
|
||||
|
|
@ -1197,17 +1198,17 @@ void LLTaskMaterialBridge::openItem()
|
|||
LLSD floater_key;
|
||||
floater_key["taskid"] = mPanel->getTaskUUID();
|
||||
floater_key["itemid"] = mUUID;
|
||||
LLPreviewNotecard* preview = LLFloaterReg::showTypedInstance<LLPreviewNotecard>("preview_notecard", floater_key, TAKE_FOCUS_YES);
|
||||
if (preview)
|
||||
LLMaterialEditor* mat = LLFloaterReg::showTypedInstance<LLMaterialEditor>("material_editor", floater_key, TAKE_FOCUS_YES);
|
||||
if (mat)
|
||||
{
|
||||
preview->setObjectID(mPanel->getTaskUUID());
|
||||
mat->setObjectID(mPanel->getTaskUUID());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLTaskMaterialBridge::removeItem()
|
||||
{
|
||||
LLFloaterReg::hideInstance("preview_notecard", LLSD(mUUID));
|
||||
LLFloaterReg::hideInstance("material_editor", LLSD(mUUID));
|
||||
return LLTaskInvFVBridge::removeItem();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue