diff options
16 files changed, 1378 insertions, 28 deletions
diff --git a/share/qtcreator/qmldesigner/aiAssistantQmlSources/ResponseStatePopup.qml b/share/qtcreator/qmldesigner/aiAssistantQmlSources/ResponseStatePopup.qml index 7d8b063c910..11dd565e9b2 100644 --- a/share/qtcreator/qmldesigner/aiAssistantQmlSources/ResponseStatePopup.qml +++ b/share/qtcreator/qmldesigner/aiAssistantQmlSources/ResponseStatePopup.qml @@ -94,9 +94,19 @@ Rectangle { id: messageText color: StudioTheme.Values.themeTextColor - wrapMode: Text.WordWrap + wrapMode: Text.NoWrap + elide: Text.ElideRight Layout.fillWidth: true + + HelperWidgets.ToolTipArea { + id: messageTextTooltip + + anchors.fill: parent + acceptedButtons: Qt.NoButton + enabled: messageText.truncated + tooltip: messageText.text + } } Row { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CascadesSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CascadesSection.qml new file mode 100644 index 00000000000..1031950bed7 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CascadesSection.qml @@ -0,0 +1,121 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + caption: qsTr("Cascades") + width: parent.width + + SectionLayout { + + PropertyLabel { + text: qsTr("No. Splits") + tooltip: qsTr("Sets the number of cascade splits for this light.") + } + + SecondColumnLayout { + ComboBox { + id: numSplitsComboBox + valueType: ComboBox.ValueType.Integer + model: [0, 1, 2, 3] + backendValue: backendValues.csmNumSplits + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + visible: numSplitsComboBox.currentIndex > 0 + text: qsTr("Blend ratio") + tooltip: qsTr("Sets how much of the shadow of any cascade should be blended together with the previous one.") + } + + SecondColumnLayout { + visible: numSplitsComboBox.currentIndex > 0 + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.01 + backendValue: backendValues.csmBlendRatio + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + visible: numSplitsComboBox.currentIndex > 0 + text: qsTr("Split 1") + tooltip: qsTr("Sets where the first cascade of the shadow map split occurs.") + } + + SecondColumnLayout { + visible: numSplitsComboBox.currentIndex > 0 + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.01 + backendValue: backendValues.csmSplit1 + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + visible: numSplitsComboBox.currentIndex > 1 + text: qsTr("Split 2") + tooltip: qsTr("Sets where the second cascade of the shadow map split occurs.") + } + + SecondColumnLayout { + visible: numSplitsComboBox.currentIndex > 1 + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.01 + backendValue: backendValues.csmSplit2 + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + visible: numSplitsComboBox.currentIndex > 2 + text: qsTr("Split 3") + tooltip: qsTr("Sets where the third cascade of the shadow map split occurs.") + } + + SecondColumnLayout { + visible: numSplitsComboBox.currentIndex > 2 + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.01 + backendValue: backendValues.csmSplit3 + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CustomMaterialSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CustomMaterialSection.qml index 07c59ec7c94..6aa37ff68de 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CustomMaterialSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/CustomMaterialSection.qml @@ -91,6 +91,40 @@ Section { } PropertyLabel { + text: qsTr("Source Alpha Blend") + tooltip: qsTr("Sets the source alpha blend factor.") + } + + SecondColumnLayout { + ComboBox { + scope: "CustomMaterial" + model: ["NoBlend", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"] + backendValue: backendValues.sourceAlphaBlend + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Destination Alpha Blend") + tooltip: qsTr("Sets the destination alpha blend factor.") + } + + SecondColumnLayout { + ComboBox { + scope: "CustomMaterial" + model: ["NoBlend", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"] + backendValue: backendValues.destinationAlphaBlend + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Always Dirty") tooltip: qsTr("Sets the material to refresh every time it is used by QtQuick3D.") } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DebugSettingsSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DebugSettingsSection.qml index 4805272aa22..65211a96fbf 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DebugSettingsSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DebugSettingsSection.qml @@ -27,14 +27,13 @@ Section { ExpandingSpacer {} } - PropertyLabel { + PropertyLabel { text: qsTr("Override Mode") tooltip: qsTr("Changes how all materials are rendered to only reflect a particular aspect of the overall rendering process") } SecondColumnLayout { ComboBox { - id: backgroundModeComboBox scope: "DebugSettings" model: ["None", "BaseColor", "Roughness", "Metalness", "Diffuse", "Specular", "ShadowOcclusion", "Emission", "AmbientOcclusion", "Normals", "Tangents", "Binormals", "FO"] backendValue: backendValues.materialOverride @@ -44,5 +43,101 @@ Section { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Shadow Boxes") + tooltip: qsTr("A bounding box is drawn for every directional light's shadowmap.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.drawDirectionalLightShadowBoxes.valueToString + backendValue: backendValues.drawDirectionalLightShadowBoxes + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Shadow Cast Bounds") + tooltip: qsTr("A bounding box is drawn for the shadow casting objects.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.drawShadowCastingBounds.valueToString + backendValue: backendValues.drawShadowCastingBounds + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Shadow Receive Bounds") + tooltip: qsTr("A bounding box is drawn for the shadow receiving objects.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.drawShadowReceivingBounds.valueToString + backendValue: backendValues.drawShadowReceivingBounds + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Cascades") + tooltip: qsTr("A frustum is drawn with splits indicating where the shadowmap cascades begin and end.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.drawCascades.valueToString + backendValue: backendValues.drawCascades + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Cascade Intersection") + tooltip: qsTr("The intersection of the shadowmap cascades and the casting and receiving objects of the scene is drawn.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.drawSceneCascadeIntersection.valueToString + backendValue: backendValues.drawSceneCascadeIntersection + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Disable Shadow Camera") + tooltip: qsTr("The camera update is disabled for the shadowmap.\nThis means that the view frustum will be locked in space just for the shadowmap calculations.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.disableShadowCameraUpdate.valueToString + backendValue: backendValues.disableShadowCameraUpdate + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DirectionalLightSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DirectionalLightSpecifics.qml index 0f12f8239f0..c20ece86e38 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DirectionalLightSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/DirectionalLightSpecifics.qml @@ -11,4 +11,8 @@ Column { AbstractLightSection { width: parent.width } + + CascadesSection { + width: parent.width + } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/AxisHelperSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/AxisHelperSection.qml index 8dcd4627053..15df9f56fbe 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/AxisHelperSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/AxisHelperSection.qml @@ -21,7 +21,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.enableAxisLines.valueToString backendValue: backendValues.enableAxisLines implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -37,7 +37,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.enableXYGrid.valueToString backendValue: backendValues.enableXYGrid implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -53,7 +53,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.enableXZGrid.valueToString backendValue: backendValues.enableXZGrid implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -70,7 +70,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.enableYZGrid.valueToString backendValue: backendValues.enableYZGrid implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/InfiniteGridSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/InfiniteGridSection.qml index cc0703712ea..d10660c6fbc 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/InfiniteGridSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/InfiniteGridSection.qml @@ -32,7 +32,7 @@ Column { } CheckBox { - text: backendValues.gridAxes ? qsTr("On") : qsTr("Off") + text: backendValues.gridAxes.valueToString backendValue: backendValues.gridAxes implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/WasdControllerSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/WasdControllerSection.qml index c00ff721adb..083b58407a3 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/WasdControllerSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Helpers/WasdControllerSection.qml @@ -37,7 +37,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.xInvert.valueToString backendValue: backendValues.xInvert implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -53,7 +53,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.yInvert.valueToString backendValue: backendValues.yInvert implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -69,7 +69,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.mouseEnabled.valueToString backendValue: backendValues.mouseEnabled implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -85,7 +85,7 @@ Column { SecondColumnLayout { CheckBox { - text: qsTr("Enabled") + text: backendValues.keysEnabled.valueToString backendValue: backendValues.keysEnabled implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/HeightFieldShapeSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/HeightFieldShapeSection.qml index 80c6f428e97..ba577e9e54a 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/HeightFieldShapeSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/HeightFieldShapeSection.qml @@ -94,5 +94,21 @@ Section { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Image") + tooltip: qsTr("Sets the image holding the heightMap.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.Image" + backendValue: backendValues.image + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsNodeSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsNodeSection.qml index 26fdf0e4d87..d382639e512 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsNodeSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsNodeSection.qml @@ -98,6 +98,42 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Filter Group") + tooltip: qsTr("Sets the filter group this body is part of.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 32 + decimals: 0 + backendValue: backendValues.filterGroup + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Filter Ignore Groups") + tooltip: qsTr("Sets the filter groups this body should filter out collisions with. This number is interpreted as a bitmask.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 2147483647 + decimals: 0 + backendValue: backendValues.filterIgnoreGroups + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsWorldSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsWorldSection.qml index 3299e984bec..10647800327 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsWorldSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/Physics/PhysicsWorldSection.qml @@ -262,5 +262,55 @@ Section { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Threads") + tooltip: qsTr("Sets the number of threads used for the physical simulation.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: -1 + maximumValue: 999999 + decimals: 0 + backendValue: backendValues.numThreads + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Report Kinematic Collisions") + tooltip: qsTr("Sets if collisions between pairs of kinematic dynamic rigid bodies triggers a contact report.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.reportKinematicKinematicCollisions.valueToString + backendValue: backendValues.reportKinematicKinematicCollisions + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Report Static Collisions") + tooltip: qsTr("Sets if collisions between a static rigid body and a kinematic dynamic rigid body triggers a contact report.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.reportStaticKinematicCollisions.valueToString + backendValue: backendValues.reportStaticKinematicCollisions + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/PrincipledMaterialSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/PrincipledMaterialSection.qml index 8e70e920401..3dc8ce78c6e 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/PrincipledMaterialSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/PrincipledMaterialSection.qml @@ -121,6 +121,41 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Use Single Channel") + tooltip: qsTr("Use only a single channel from baseColorMap.") + } + + SecondColumnLayout { + CheckBox { + id: baseColorSingleChannelCheckBox + text: backendValues.baseColorSingleChannelEnabled.valueToString + backendValue: backendValues.baseColorSingleChannelEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Channel") + tooltip: qsTr("Sets the texture channel used to read the base color value from baseColorMap.") + } + + SecondColumnLayout { + ComboBox { + enabled: baseColorSingleChannelCheckBox.checked + scope: "Material" + model: ["R", "G", "B", "A"] + backendValue: backendValues.baseColorChannel + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -404,6 +439,22 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Invert Channel") + tooltip: qsTr("Invert the values of the opacity map.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.invertOpacityMapValue.valueToString + backendValue: backendValues.invertOpacityMapValue + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -502,6 +553,41 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Use Single Channel") + tooltip: qsTr("Use only a single channel from emissiveMap.") + } + + SecondColumnLayout { + CheckBox { + id: emissiveSingleChannelCheckBox + text: backendValues.emissiveSingleChannelEnabled.valueToString + backendValue: backendValues.emissiveSingleChannelEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Channel") + tooltip: qsTr("Sets the texture channel used to read the emissive value from emissiveMap.") + } + + SecondColumnLayout { + ComboBox { + enabled: emissiveSingleChannelCheckBox.checked + scope: "Material" + model: ["R", "G", "B", "A"] + backendValue: backendValues.emissiveChannel + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -730,6 +816,102 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Normal Strength") + tooltip: qsTr("Sets the normal strength of the clearcoat layer.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + sliderIndicatorVisible: true + backendValue: backendValues.clearcoatNormalStrength + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Power") + tooltip: qsTr("Sets the fresnel power.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1000 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.clearcoatFresnelPower + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Enable scale and bias") + tooltip: qsTr("Sets whether fresnel scale and bias are enabled.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.clearcoatFresnelScaleBiasEnabled.valueToString + backendValue: backendValues.clearcoatFresnelScaleBiasEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Scale") + tooltip: qsTr("Sets the fresnel scale.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 5 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.clearcoatFresnelScale + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Bias") + tooltip: qsTr("Sets the fresnel bias.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.clearcoatFresnelBias + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -894,18 +1076,101 @@ Column { } Section { - caption: qsTr("Advanced") + caption: qsTr("Fresnel") + width: parent.width + + SectionLayout { + PropertyLabel { + text: qsTr("Fresnel Power") + tooltip: qsTr("Sets the fresnel power.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1000 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.fresnelPower + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Enable scale and bias") + tooltip: qsTr("Sets whether fresnel scale and bias are enabled.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.fresnelScaleBiasEnabled.valueToString + backendValue: backendValues.fresnelScaleBiasEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Scale") + tooltip: qsTr("Sets the fresnel scale.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 5 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.fresnelScale + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Bias") + tooltip: qsTr("Sets the fresnel bias.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.fresnelBias + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + caption: qsTr("Vertex Color") width: parent.width SectionLayout { PropertyLabel { - text: qsTr("Vertex Colors") + text: qsTr("Show Colors") tooltip: qsTr("Sets whether vertex colors are used to modulate the base color.") } SecondColumnLayout { CheckBox { - text: backendValues.vertexColorsEnabled ? qsTr("Enabled") : qsTr("Disabled") + text: backendValues.vertexColorsEnabled.valueToString backendValue: backendValues.vertexColorsEnabled implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -915,6 +1180,154 @@ Column { } PropertyLabel { + text: qsTr("Enable Masks") + tooltip: qsTr("Sets whether vertex colors mask are used.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.vertexColorsMaskEnabled.valueToString + backendValue: backendValues.vertexColorsMaskEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + ListModel { + id: colorMaskModel + + ListElement { + name: qsTr("Roughness") + flag: "RoughnessMask" + } + ListElement { + name: qsTr("Normal Strength") + flag: "NormalStrengthMask" + } + ListElement { + name: qsTr("Specular Amount") + flag: "SpecularAmountMask" + } + ListElement { + name: qsTr("Clearcoat Amount") + flag: "ClearcoatAmountMask" + } + ListElement { + name: qsTr("Clearcoat Roughness Amount") + flag: "ClearcoatRoughnessAmountMask" + } + ListElement { + name: qsTr("Clearcoat Normal Strength") + flag: "ClearcoatNormalStrengthMask" + } + ListElement { + name: qsTr("Height Amount") + flag: "HeightAmountMask" + } + ListElement { + name: qsTr("Metalness") + flag: "MetalnessMask" + } + ListElement { + name: qsTr("Occlusion Amount") + flag: "OcclusionAmountMask" + } + ListElement { + name: qsTr("Thickness Factor") + flag: "ThicknessFactorMask" + } + ListElement { + name: qsTr("Transmission Factor") + flag: "TransmissionFactorMask" + } + } + + PropertyLabel { + text: qsTr("Mask R") + tooltip: qsTr("Sets the properties masked by the vertex color red channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorRedMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "PrincipledMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask G") + tooltip: qsTr("Sets the properties masked by the vertex color green channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorGreenMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "PrincipledMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask B") + tooltip: qsTr("Sets the properties masked by the vertex color blue channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorBlueMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "PrincipledMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask A") + tooltip: qsTr("Sets the properties masked by the vertex color alpha channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorAlphaMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "PrincipledMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + } + } + + Section { + caption: qsTr("Advanced") + width: parent.width + + SectionLayout { + PropertyLabel { text: qsTr("Point Size") tooltip: qsTr("Sets the size of the points rendered, when the geometry is using a primitive type of points.") } @@ -993,16 +1406,35 @@ Column { } PropertyLabel { - text: qsTr("Reflection Map") - tooltip: qsTr("Sets a texture used for specular highlights on the material.") + text: qsTr("Use Single Channel") + tooltip: qsTr("Use only a single channel from specularMap.") } SecondColumnLayout { - ItemFilterComboBox { - typeFilter: "QtQuick3D.Texture" - backendValue: backendValues.specularReflectionMap + CheckBox { + id: specularSingleChannelCheckBox + text: backendValues.specularSingleChannelEnabled.valueToString + backendValue: backendValues.specularSingleChannelEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Channel") + tooltip: qsTr("Sets the texture channel used to read the specular value from specularMap.") + } + + SecondColumnLayout { + ComboBox { + enabled: specularSingleChannelCheckBox.checked + scope: "Material" + model: ["R", "G", "B", "A"] + backendValue: backendValues.specularChannel implicitWidth: StudioTheme.Values.singleControlColumnWidth - + StudioTheme.Values.actionIndicatorWidth + + StudioTheme.Values.actionIndicatorWidth } ExpandingSpacer {} @@ -1027,6 +1459,22 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Reflection Map") + tooltip: qsTr("Sets a texture used for specular highlights on the material.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.specularReflectionMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/ShadowSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/ShadowSection.qml index 96c01c13724..11d74289872 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/ShadowSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/ShadowSection.qml @@ -119,6 +119,48 @@ Section { PropertyLabel { visible: shadowCheckBox.checked + text: qsTr("Soft Shadow Quality") + tooltip: qsTr("Sets the quality of the soft shadows.") + } + + SecondColumnLayout { + visible: shadowCheckBox.checked + ComboBox { + scope: "Light" + model: ["Hard", "PCF4", "PCF8", "PCF16", "PCF32", "PCF64"] + backendValue: backendValues.softShadowQuality + enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + visible: shadowCheckBox.checked + text: qsTr("PCF Factor") + tooltip: qsTr("Sets the PCF (percentage-closer filtering) factor.") + } + + SecondColumnLayout { + visible: shadowCheckBox.checked + SpinBox { + minimumValue: 0 + maximumValue: 9999999 + decimals: 1 + stepSize: 0.1 + backendValue: backendValues.pcfFactor + enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + visible: shadowCheckBox.checked text: qsTr("Far Distance") tooltip: qsTr("Sets the maximum distance for the shadow map.") } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/SpecularGlossyMaterialSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/SpecularGlossyMaterialSection.qml index 17ef2c272af..04e7216932f 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/SpecularGlossyMaterialSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/SpecularGlossyMaterialSection.qml @@ -122,6 +122,41 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Use Single Channel") + tooltip: qsTr("Use only a single channel from albedoMap.") + } + + SecondColumnLayout { + CheckBox { + id: albedoSingleChannelCheckBox + text: backendValues.albedoSingleChannelEnabled.valueToString + backendValue: backendValues.albedoSingleChannelEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Channel") + tooltip: qsTr("Sets the texture channel used to read the albedo value from albedoMap.") + } + + SecondColumnLayout { + ComboBox { + enabled: albedoSingleChannelCheckBox.checked + scope: "Material" + model: ["R", "G", "B", "A"] + backendValue: backendValues.albedoChannel + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -155,6 +190,41 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Use Single Channel") + tooltip: qsTr("Use only a single channel from specularMap.") + } + + SecondColumnLayout { + CheckBox { + id: specularSingleChannelCheckBox + text: backendValues.specularSingleChannelEnabled.valueToString + backendValue: backendValues.specularSingleChannelEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Channel") + tooltip: qsTr("Sets the texture channel used to read the specular value from specularMap.") + } + + SecondColumnLayout { + ComboBox { + enabled: specularSingleChannelCheckBox.checked + scope: "Material" + model: ["R", "G", "B", "A"] + backendValue: backendValues.specularChannel + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -378,6 +448,22 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Invert Channel") + tooltip: qsTr("Invert the values of the opacity map.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.invertOpacityMapValue.valueToString + backendValue: backendValues.invertOpacityMapValue + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -476,6 +562,41 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Use Single Channel") + tooltip: qsTr("Use only a single channel from emissiveMap.") + } + + SecondColumnLayout { + CheckBox { + id: emissiveSingleChannelCheckBox + text: backendValues.emissiveSingleChannelEnabled.valueToString + backendValue: backendValues.emissiveSingleChannelEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Channel") + tooltip: qsTr("Sets the texture channel used to read the emissive value from emissiveMap.") + } + + SecondColumnLayout { + ComboBox { + enabled: emissiveSingleChannelCheckBox.checked + scope: "Material" + model: ["R", "G", "B", "A"] + backendValue: backendValues.emissiveChannel + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -704,6 +825,102 @@ Column { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Normal Strength") + tooltip: qsTr("Sets the normal strength of the clearcoat layer.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + sliderIndicatorVisible: true + backendValue: backendValues.clearcoatNormalStrength + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Power") + tooltip: qsTr("Sets the fresnel power.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1000 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.clearcoatFresnelPower + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Enable scale and bias") + tooltip: qsTr("Sets whether fresnel scale and bias are enabled.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.clearcoatFresnelScaleBiasEnabled.valueToString + backendValue: backendValues.clearcoatFresnelScaleBiasEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Scale") + tooltip: qsTr("Sets the fresnel scale.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 5 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.clearcoatFresnelScale + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Bias") + tooltip: qsTr("Sets the fresnel bias.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.clearcoatFresnelBias + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } @@ -848,18 +1065,101 @@ Column { } Section { - caption: qsTr("Advanced") + caption: qsTr("Fresnel") + width: parent.width + + SectionLayout { + PropertyLabel { + text: qsTr("Fresnel Power") + tooltip: qsTr("Sets the fresnel power.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1000 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.fresnelPower + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Enable scale and bias") + tooltip: qsTr("Sets whether fresnel scale and bias are enabled.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.fresnelScaleBiasEnabled.valueToString + backendValue: backendValues.fresnelScaleBiasEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Scale") + tooltip: qsTr("Sets the fresnel scale.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 5 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.fresnelScale + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Bias") + tooltip: qsTr("Sets the fresnel bias.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + decimals: 2 + + backendValue: backendValues.fresnelBias + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + caption: qsTr("Vertex Color") width: parent.width SectionLayout { PropertyLabel { - text: qsTr("Vertex Colors") + text: qsTr("Show Colors") tooltip: qsTr("Sets whether vertex colors are used to modulate the base color.") } SecondColumnLayout { CheckBox { - text: backendValues.vertexColorsEnabled ? qsTr("Enabled") : qsTr("Disabled") + text: backendValues.vertexColorsEnabled.valueToString backendValue: backendValues.vertexColorsEnabled implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -869,6 +1169,147 @@ Column { } PropertyLabel { + text: qsTr("Enable Masks") + tooltip: qsTr("Sets whether vertex colors mask are used.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.vertexColorsMaskEnabled.valueToString + backendValue: backendValues.vertexColorsMaskEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + ListModel { + id: colorMaskModel + + ListElement { + name: qsTr("Glossiness") + flag: "GlossinessMask" + } + ListElement { + name: qsTr("Normal Strength") + flag: "NormalStrengthMask" + } + ListElement { + name: qsTr("Clearcoat Amount") + flag: "ClearcoatAmountMask" + } + ListElement { + name: qsTr("Clearcoat Roughness Amount") + flag: "ClearcoatRoughnessAmountMask" + } + ListElement { + name: qsTr("Clearcoat Normal Strength") + flag: "ClearcoatNormalStrengthMask" + } + ListElement { + name: qsTr("Height Amount") + flag: "HeightAmountMask" + } + ListElement { + name: qsTr("Occlusion Amount") + flag: "OcclusionAmountMask" + } + ListElement { + name: qsTr("Thickness Factor") + flag: "ThicknessFactorMask" + } + ListElement { + name: qsTr("Transmission Factor") + flag: "TransmissionFactorMask" + } + } + + PropertyLabel { + text: qsTr("Mask R") + tooltip: qsTr("Sets the properties masked by the vertex color red channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorRedMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "SpecularGlossyMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask G") + tooltip: qsTr("Sets the properties masked by the vertex color green channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorGreenMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "SpecularGlossyMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask B") + tooltip: qsTr("Sets the properties masked by the vertex color blue channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorBlueMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "SpecularGlossyMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask A") + tooltip: qsTr("Sets the properties masked by the vertex color alpha channel.") + } + + SecondColumnLayout { + FlagsComboBox { + backendValue: backendValues.vertexColorAlphaMask + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + itemsModel: colorMaskModel + scope: "SpecularGlossyMaterial" + zeroFlag: "NoMask" + } + + ExpandingSpacer {} + } + } + } + + Section { + caption: qsTr("Advanced") + width: parent.width + + SectionLayout { + + PropertyLabel { text: qsTr("Point Size") tooltip: qsTr("Sets the size of the points rendered, when the geometry is using a primitive type of points.") } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/TextureSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/TextureSection.qml index 9ae63653bb6..673da3cb92f 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/TextureSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/TextureSection.qml @@ -105,7 +105,7 @@ Section { SecondColumnLayout { CheckBox { id: flipVcheckBox - text: backendValues.flipV ? backendValues.flipV.valueToString : "" + text: backendValues.flipV.valueToString backendValue: backendValues.flipV implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -122,7 +122,7 @@ Section { SecondColumnLayout { CheckBox { id: flipUCheckBox - text: backendValues.flipU ? backendValues.flipU.valueToString : "" + text: backendValues.flipU.valueToString backendValue: backendValues.flipU implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -139,7 +139,7 @@ Section { SecondColumnLayout { CheckBox { id: autoOrientationCheckBox - text: backendValues.autoOrientation ? backendValues.autoOrientation.valueToString : "" + text: backendValues.autoOrientation.valueToString backendValue: backendValues.autoOrientation implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth @@ -198,6 +198,23 @@ Section { } PropertyLabel { + text: qsTr("Depth Tiling") + tooltip: qsTr("Sets how the texture is mapped when the Z scaling value is greater than 1.") + } + + SecondColumnLayout { + ComboBox { + scope: "Texture" + model: ["ClampToEdge", "MirroredRepeat", "Repeat"] + backendValue: backendValues.tilingModeDepth + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("UV Index") tooltip: qsTr("Sets the UV coordinate index used by this texture.") } @@ -329,7 +346,7 @@ Section { SecondColumnLayout { CheckBox { id: generateMipmapscheckBox - text: backendValues.generateMipmaps ? backendValues.generateMipmaps.valueToString : "" + text: backendValues.generateMipmaps.valueToString backendValue: backendValues.generateMipmaps implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/View3DSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/View3DSection.qml index bdd9a012706..1cc70c2c13e 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/View3DSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick3D/View3DSection.qml @@ -75,5 +75,41 @@ Section { ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Texture Width") + tooltip: qsTr("Sets the explicit width of the backing texture in pixels.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 999999 + decimals: 0 + backendValue: backendValues.explicitTextureWidth + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Texture Height") + tooltip: qsTr("Sets the explicit height of the backing texture in pixels.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 999999 + decimals: 0 + backendValue: backendValues.explicitTextureHeight + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } } } |
