summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/uipparser/Qt3DSUIPParserImpl.cpp14
-rw-r--r--src/uipparser/Qt3DSUIPParserImpl.h3
2 files changed, 12 insertions, 5 deletions
diff --git a/src/uipparser/Qt3DSUIPParserImpl.cpp b/src/uipparser/Qt3DSUIPParserImpl.cpp
index 02bd3ad..4190915 100644
--- a/src/uipparser/Qt3DSUIPParserImpl.cpp
+++ b/src/uipparser/Qt3DSUIPParserImpl.cpp
@@ -842,16 +842,19 @@ void CUIPParserImpl::AddFloat4Attribute(TPropertyDescAndValueList &outDescList,
void CUIPParserImpl::AddStringAttribute(IPresentation &inPresentation,
TPropertyDescAndValueList &outDescList,
- CRegisteredString inAttStrName, const char *inValue)
+ CRegisteredString inAttStrName, const char *inValue,
+ bool addSourceAsString)
{
qt3ds::foundation::CStringHandle theString = inPresentation.GetStringTable().GetHandle(inValue);
UVariant theValue;
theValue.m_StringHandle = theString.handle();
outDescList.push_back(
eastl::make_pair(SPropertyDesc(inAttStrName, ATTRIBUTETYPE_STRING), theValue));
- if (CHash::HashAttribute(inAttStrName.c_str()) == Q3DStudio::ATTRIBUTE_SOURCEPATH && inValue
- && *inValue)
+ if ((addSourceAsString
+ || CHash::HashAttribute(inAttStrName.c_str()) == Q3DStudio::ATTRIBUTE_SOURCEPATH)
+ && inValue && *inValue) {
AddSourcePath(inValue, false);
+ }
}
void CUIPParserImpl::AddElementRefAttribute(TPropertyDescAndValueList &outDescList,
@@ -944,7 +947,10 @@ void CUIPParserImpl::GetAttributeList(IPresentation &inPresentation,
const char *theDataPtr = "";
if (!IsTrivial(inValue))
theReader.Read(theDataPtr);
- AddStringAttribute(inPresentation, outDescList, inPropNameStrs[0], theDataPtr);
+ bool addSourceAsString = inAdditionalType
+ == ERuntimeAdditionalMetaDataType::ERuntimeAdditionalMetaDataTypeTexture;
+ AddStringAttribute(inPresentation, outDescList, inPropNameStrs[0], theDataPtr,
+ addSourceAsString);
break;
}
case ERuntimeDataModelDataTypeLong4: {
diff --git a/src/uipparser/Qt3DSUIPParserImpl.h b/src/uipparser/Qt3DSUIPParserImpl.h
index 85f8c18..939ba35 100644
--- a/src/uipparser/Qt3DSUIPParserImpl.h
+++ b/src/uipparser/Qt3DSUIPParserImpl.h
@@ -661,7 +661,8 @@ protected:
ERuntimeAdditionalMetaDataType inAdditionalType,
CRegisteredString *inAttStrNames, qt3dsdm::SFloat4 &inValue);
void AddStringAttribute(IPresentation &inPresentation, TPropertyDescAndValueList &outDescList,
- CRegisteredString inAttStrName, const char *inValue);
+ CRegisteredString inAttStrName, const char *inValue,
+ bool addSourceAsString = false);
void AddElementRefAttribute(TPropertyDescAndValueList &outDescList,
CRegisteredString inAttStrName, SElement *inElement);