From 74ac45e877043fe93d875cdb85d27ab234366e3d Mon Sep 17 00:00:00 2001 From: Areloch Date: Thu, 8 Dec 2022 23:45:56 -0600 Subject: [PATCH] Fixed Edit button tooltip for Shape Asset field Disabled Edit button on image asset field as there's no current image editor Fixed positioning of edit buttons to align with preview Fixed horizontal sizing for the edit control so it keeps to the width of the field Fixed handling on the preview display so if an invalid asset is input, it clears the preview display to help indicate it's invalid Disabled the MaterialSlot handling for TSStatics until it can be further refined --- Engine/source/T3D/assets/ImageAsset.cpp | 25 +++++++++++++++++----- Engine/source/T3D/assets/MaterialAsset.cpp | 19 ++++++++++++++-- Engine/source/T3D/assets/ShapeAsset.cpp | 21 +++++++++++++++--- Engine/source/T3D/tsStatic.cpp | 2 +- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index e090c7838..80f0053f1 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -542,7 +542,7 @@ GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl() // // Create "Open in Editor" button - mEditButton = new GuiBitmapButtonCtrl(); + /*mEditButton = new GuiBitmapButtonCtrl(); dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.editAsset(%d.getText());", retCtrl->getId()); mEditButton->setField("Command", szBuffer); @@ -553,10 +553,10 @@ GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl() mEditButton->setDataField(StringTable->insert("Profile"), NULL, "ToolsGuiButtonProfile"); mEditButton->setDataField(StringTable->insert("tooltipprofile"), NULL, "GuiToolTipProfile"); mEditButton->setDataField(StringTable->insert("hovertime"), NULL, "1000"); - mEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this asset in the Material Editor"); + mEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this asset in the Image Editor"); mEditButton->registerObject(); - addObject(mEditButton); + addObject(mEditButton);*/ // mUseHeightOverride = true; @@ -580,9 +580,10 @@ bool GuiInspectorTypeImageAssetPtr::updateRects() mPreviewBorderButton->resize(previewRect.point, previewRect.extent); mPreviewImage->resize(previewRect.point, previewRect.extent); - mEdit->resize(Point2I(previewRect.point.x + previewRect.extent.x + 10, rowSize * 1.5), Point2I(200, rowSize)); + S32 editPos = previewRect.point.x + previewRect.extent.x + 10; + mEdit->resize(Point2I(editPos, rowSize * 1.5), Point2I(fieldExtent.x - editPos - 5, rowSize)); - mEditButton->resize(Point2I(fieldExtent.x - 100, fieldExtent.y - rowSize), Point2I(100, rowSize)); + //mEditButton->resize(Point2I(fieldExtent.x - 105, previewRect.point.y + previewRect.extent.y - rowSize), Point2I(100, rowSize)); mBrowseButton->setHidden(true); @@ -677,6 +678,13 @@ void GuiInspectorTypeImageAssetPtr::updatePreviewImage() else previewImage = Con::getVariable(mVariableName); + //if what we're working with isn't even a valid asset, don't present like we found a good one + if (!AssetDatabase.isDeclaredAsset(previewImage)) + { + mPreviewImage->_setBitmap(StringTable->EmptyString()); + return; + } + String imgPreviewAssetId = String(previewImage) + "_PreviewImage"; imgPreviewAssetId.replace(":", "_"); imgPreviewAssetId = "ToolsModule:" + imgPreviewAssetId; @@ -702,6 +710,13 @@ void GuiInspectorTypeImageAssetPtr::updatePreviewImage() void GuiInspectorTypeImageAssetPtr::setPreviewImage(StringTableEntry assetId) { + //if what we're working with isn't even a valid asset, don't present like we found a good one + if (!AssetDatabase.isDeclaredAsset(assetId)) + { + mPreviewImage->_setBitmap(StringTable->EmptyString()); + return; + } + String imgPreviewAssetId = String(assetId) + "_PreviewImage"; imgPreviewAssetId.replace(":", "_"); imgPreviewAssetId = "ToolsModule:" + imgPreviewAssetId; diff --git a/Engine/source/T3D/assets/MaterialAsset.cpp b/Engine/source/T3D/assets/MaterialAsset.cpp index 1965451a5..f5ef117ba 100644 --- a/Engine/source/T3D/assets/MaterialAsset.cpp +++ b/Engine/source/T3D/assets/MaterialAsset.cpp @@ -580,9 +580,10 @@ bool GuiInspectorTypeMaterialAssetPtr::updateRects() mPreviewBorderButton->resize(previewRect.point, previewRect.extent); mPreviewImage->resize(previewRect.point, previewRect.extent); - mEdit->resize(Point2I(previewRect.point.x + previewRect.extent.x + 10, rowSize * 1.5), Point2I(200, rowSize)); + S32 editPos = previewRect.point.x + previewRect.extent.x + 10; + mEdit->resize(Point2I(editPos, rowSize * 1.5), Point2I(fieldExtent.x - editPos - 5, rowSize)); - mEditButton->resize(Point2I(fieldExtent.x - 100, fieldExtent.y - rowSize), Point2I(100, rowSize)); + mEditButton->resize(Point2I(fieldExtent.x - 105, previewRect.point.y + previewRect.extent.y - rowSize), Point2I(100, rowSize)); mBrowseButton->setHidden(true); @@ -604,6 +605,13 @@ void GuiInspectorTypeMaterialAssetPtr::updatePreviewImage() else previewImage = Con::getVariable(mVariableName); + //if what we're working with isn't even a valid asset, don't present like we found a good one + if (!AssetDatabase.isDeclaredAsset(previewImage)) + { + mPreviewImage->_setBitmap(StringTable->EmptyString()); + return; + } + String matPreviewAssetId = String(previewImage) + "_PreviewImage"; matPreviewAssetId.replace(":", "_"); matPreviewAssetId = "ToolsModule:" + matPreviewAssetId; @@ -629,6 +637,13 @@ void GuiInspectorTypeMaterialAssetPtr::updatePreviewImage() void GuiInspectorTypeMaterialAssetPtr::setPreviewImage(StringTableEntry assetId) { + //if what we're working with isn't even a valid asset, don't present like we found a good one + if (!AssetDatabase.isDeclaredAsset(assetId)) + { + mPreviewImage->_setBitmap(StringTable->EmptyString()); + return; + } + String matPreviewAssetId = String(assetId) + "_PreviewImage"; matPreviewAssetId.replace(":", "_"); matPreviewAssetId = "ToolsModule:" + matPreviewAssetId; diff --git a/Engine/source/T3D/assets/ShapeAsset.cpp b/Engine/source/T3D/assets/ShapeAsset.cpp index 6eedbfaeb..3f67227e2 100644 --- a/Engine/source/T3D/assets/ShapeAsset.cpp +++ b/Engine/source/T3D/assets/ShapeAsset.cpp @@ -825,7 +825,7 @@ GuiControl* GuiInspectorTypeShapeAssetPtr::constructEditControl() mEditButton->setDataField(StringTable->insert("Profile"), NULL, "ToolsGuiButtonProfile"); mEditButton->setDataField(StringTable->insert("tooltipprofile"), NULL, "GuiToolTipProfile"); mEditButton->setDataField(StringTable->insert("hovertime"), NULL, "1000"); - mEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this asset in the Material Editor"); + mEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this asset in the Shape Editor"); mEditButton->registerObject(); addObject(mEditButton); @@ -852,9 +852,10 @@ bool GuiInspectorTypeShapeAssetPtr::updateRects() mPreviewBorderButton->resize(previewRect.point, previewRect.extent); mPreviewImage->resize(previewRect.point, previewRect.extent); - mEdit->resize(Point2I(previewRect.point.x + previewRect.extent.x + 10, rowSize * 1.5), Point2I(200, rowSize)); + S32 editPos = previewRect.point.x + previewRect.extent.x + 10; + mEdit->resize(Point2I(editPos, rowSize * 1.5), Point2I(fieldExtent.x - editPos - 5, rowSize)); - mEditButton->resize(Point2I(fieldExtent.x - 100, fieldExtent.y - rowSize), Point2I(100, rowSize)); + mEditButton->resize(Point2I(fieldExtent.x - 105, previewRect.point.y + previewRect.extent.y - rowSize), Point2I(100, rowSize)); mBrowseButton->setHidden(true); @@ -876,6 +877,13 @@ void GuiInspectorTypeShapeAssetPtr::updatePreviewImage() else previewImage = Con::getVariable(mVariableName); + //if what we're working with isn't even a valid asset, don't present like we found a good one + if (!AssetDatabase.isDeclaredAsset(previewImage)) + { + mPreviewImage->_setBitmap(StringTable->EmptyString()); + return; + } + String shpPreviewAssetId = String(previewImage) + "_PreviewImage"; shpPreviewAssetId.replace(":", "_"); shpPreviewAssetId = "ToolsModule:" + shpPreviewAssetId; @@ -890,6 +898,13 @@ void GuiInspectorTypeShapeAssetPtr::updatePreviewImage() void GuiInspectorTypeShapeAssetPtr::setPreviewImage(StringTableEntry assetId) { + //if what we're working with isn't even a valid asset, don't present like we found a good one + if (!AssetDatabase.isDeclaredAsset(assetId)) + { + mPreviewImage->_setBitmap(StringTable->EmptyString()); + return; + } + String shpPreviewAssetId = String(assetId) + "_PreviewImage"; shpPreviewAssetId.replace(":", "_"); shpPreviewAssetId = "ToolsModule:" + shpPreviewAssetId; diff --git a/Engine/source/T3D/tsStatic.cpp b/Engine/source/T3D/tsStatic.cpp index 06cbb1db3..a93c90949 100644 --- a/Engine/source/T3D/tsStatic.cpp +++ b/Engine/source/T3D/tsStatic.cpp @@ -1638,7 +1638,7 @@ void TSStatic::getUtilizedAssets(Vector* usedAssetsList) #ifdef TORQUE_TOOLS void TSStatic::onInspect(GuiInspector* inspector) { - if (mShapeAsset == nullptr) + //if (mShapeAsset == nullptr) return; //Put the GameObject group before everything that'd be gameobject-effecting, for orginazational purposes