QmlDesigner: Add effect maker runtime nodes binding mechanism

Still some issues related to UI components because it's never tested
Also quick fix for generated paths on windows (not tested)

Task-number: QDS-10987
Change-Id: Ifed4b0f687e8da78206985e031692aa6c9faf947
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Amr Essam
2023-10-18 18:33:42 +03:00
committed by Amr Elsayed
parent a9a74992de
commit 12aeed97b3
7 changed files with 44 additions and 9 deletions

View File

@@ -781,11 +781,11 @@ void EffectMakerModel::updateCustomUniforms()
}
}
QString valueString = value.isEmpty() ? QString() : QString(": %1").arg(value);
QString bindedValueString = bindedValue.isEmpty() ? QString() : QString(": %1").arg(bindedValue);
QString boundValueString = bindedValue.isEmpty() ? QString() : QString(": %1").arg(bindedValue);
// Custom values are not readonly, others inside the effect can be
QString readOnly = uniform->useCustomValue() ? QString() : QStringLiteral("readonly ");
previewEffectPropertiesString += " " + readOnly + "property " + type + " "
+ propertyName + valueString + '\n';
+ propertyName + boundValueString + '\n';
// Define type properties are not added into exports
if (!isDefine) {
if (uniform->useCustomValue()) {
@@ -797,7 +797,7 @@ void EffectMakerModel::updateCustomUniforms()
}
exportedEffectPropertiesString += QStringLiteral(" ") + readOnly
+ "property " + type + " " + propertyName
+ bindedValueString + '\n';
+ boundValueString + '\n';
} else {
// Custom values are not added into root
exportedRootPropertiesString += " property " + type + " " + propertyName
@@ -951,8 +951,8 @@ QString EffectMakerModel::getQmlComponentString(bool localFiles)
s += '\n' + customImagesString;
s += '\n';
s += l2 + "vertexShader: 'file://" + m_vertexShaderFilename + "'\n";
s += l2 + "fragmentShader: 'file://" + m_fragmentShaderFilename + "'\n";
s += l2 + "vertexShader: 'file:///" + m_vertexShaderFilename + "'\n";
s += l2 + "fragmentShader: 'file:///" + m_fragmentShaderFilename + "'\n";
s += l2 + "anchors.fill: parent\n";
if (m_shaderFeatures.enabled(ShaderFeatures::GridMesh)) {
QString gridSize = QString("%1, %2").arg(m_shaderFeatures.gridMeshWidth()).arg(m_shaderFeatures.gridMeshHeight());