diff options
author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-08-16 20:37:40 +0300 |
---|---|---|
committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-08-16 20:37:40 +0300 |
commit | 0132a99b2bee388b4d0c7365a380bca39e83af3b (patch) | |
tree | eabbea8a489a3e8cc0b6727011f86718e80ab97d | |
parent | d8345b03d800ff30781f32ed04dcf74758f8869b (diff) | |
parent | 8027c54637db2d043efb823565d842c5de7b5b8a (diff) |
Merge remote-tracking branch 'origin/tqtc/lts-5.15.6' into tqtc/lts-5.15-opensourcev5.15.6-lts-lgpl
Change-Id: I7d869240a6db633b05d03d09071635428e285475
142 files changed, 4249 insertions, 3412 deletions
diff --git a/.qmake.conf b/.qmake.conf index b8e11611..53c1ac93 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -3,4 +3,4 @@ load(qt_build_config) CONFIG += warning_clean DEFINES += QT_NO_FOREACH -MODULE_VERSION = 5.15.5 +MODULE_VERSION = 5.15.6 diff --git a/src/imports/effectlib/designer/AdditiveColorGradientSection.qml b/src/imports/effectlib/designer/AdditiveColorGradientSection.qml index e41508d7..86021dca 100644 --- a/src/imports/effectlib/designer/AdditiveColorGradientSection.qml +++ b/src/imports/effectlib/designer/AdditiveColorGradientSection.qml @@ -28,33 +28,32 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width Section { - caption: qsTr("Top Color") + caption: qsTr("Additive Color Gradient") width: parent.width - ColorEditor { - caption: qsTr("Top Color") - backendValue: backendValues.topColor - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("Bottom Color") - width: parent.width - ColorEditor { - caption: qsTr("Bottom Color") - backendValue: backendValues.bottomColor - supportGradient: false - isVector3D: true - Layout.fillWidth: true + SectionLayout { + PropertyLabel { text: qsTr("Top Color") } + + ColorEditor { + backendValue: backendValues.topColor + supportGradient: false + isVector3D: true + } + + PropertyLabel { text: qsTr("Bottom Color") } + + ColorEditor { + backendValue: backendValues.ambientColor + supportGradient: false + isVector3D: true + } } } } diff --git a/src/imports/effectlib/designer/AdditiveColorGradientSpecifics.qml b/src/imports/effectlib/designer/AdditiveColorGradientSpecifics.qml index d912265b..8a215c02 100644 --- a/src/imports/effectlib/designer/AdditiveColorGradientSpecifics.qml +++ b/src/imports/effectlib/designer/AdditiveColorGradientSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/BlurSection.qml b/src/imports/effectlib/designer/BlurSection.qml index 9b31c9bb..f517fa18 100644 --- a/src/imports/effectlib/designer/BlurSection.qml +++ b/src/imports/effectlib/designer/BlurSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Strength of the blur.") } + SecondColumnLayout { SpinBox { maximumValue: 0.1 @@ -50,8 +52,11 @@ Column { decimals: 3 stepSize: 0.01 backendValue: backendValues.amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/BlurSpecifics.qml b/src/imports/effectlib/designer/BlurSpecifics.qml index 064d0f80..eac297ac 100644 --- a/src/imports/effectlib/designer/BlurSpecifics.qml +++ b/src/imports/effectlib/designer/BlurSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/BrushStrokesSection.qml b/src/imports/effectlib/designer/BrushStrokesSection.qml index 0913f882..2f7d94cb 100644 --- a/src/imports/effectlib/designer/BrushStrokesSection.qml +++ b/src/imports/effectlib/designer/BrushStrokesSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,17 +40,21 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Noise Sample Texture") tooltip: qsTr("Defines a texture for noise samples.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.noiseSample_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -59,10 +64,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Length") tooltip: qsTr("Length of the brush.") } + SecondColumnLayout { SpinBox { maximumValue: 3 @@ -70,34 +76,47 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.brushLength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Size") tooltip: qsTr("Size of the brush.") } + SecondColumnLayout { SpinBox { maximumValue: 200 minimumValue: 10 decimals: 0 backendValue: backendValues.brushSize - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Angle") tooltip: qsTr("Angle of the brush") } + SecondColumnLayout { SpinBox { maximumValue: 360 minimumValue: 0 decimals: 0 backendValue: backendValues.brushAngle - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/BrushStrokesSpecifics.qml b/src/imports/effectlib/designer/BrushStrokesSpecifics.qml index 584253c7..f5790a1e 100644 --- a/src/imports/effectlib/designer/BrushStrokesSpecifics.qml +++ b/src/imports/effectlib/designer/BrushStrokesSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/ChromaticAberrationSection.qml b/src/imports/effectlib/designer/ChromaticAberrationSection.qml index 43209bba..7024e224 100644 --- a/src/imports/effectlib/designer/ChromaticAberrationSection.qml +++ b/src/imports/effectlib/designer/ChromaticAberrationSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,17 +40,21 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Mask Texture") tooltip: qsTr("Defines a texture for mask.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.maskTexture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -59,23 +64,29 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Amount of aberration.") } + SecondColumnLayout { SpinBox { maximumValue: 1000 minimumValue: -1000 decimals: 0 backendValue: backendValues.aberrationAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Focus Depth") tooltip: qsTr("Focus depth of the aberration.") } + SecondColumnLayout { SpinBox { maximumValue: 10000 @@ -83,8 +94,11 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.focusDepth - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/ChromaticAberrationSpecifics.qml b/src/imports/effectlib/designer/ChromaticAberrationSpecifics.qml index 57f4ac6b..0df8434b 100644 --- a/src/imports/effectlib/designer/ChromaticAberrationSpecifics.qml +++ b/src/imports/effectlib/designer/ChromaticAberrationSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/ColorMasterSection.qml b/src/imports/effectlib/designer/ColorMasterSection.qml index 27bee26a..bf603dc6 100644 --- a/src/imports/effectlib/designer/ColorMasterSection.qml +++ b/src/imports/effectlib/designer/ColorMasterSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Red Strength") tooltip: qsTr("Red strength.") } + SecondColumnLayout { SpinBox { maximumValue: 2 @@ -50,13 +52,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.redStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Green Strength") tooltip: qsTr("Green strength.") } + SecondColumnLayout { SpinBox { maximumValue: 2 @@ -64,13 +71,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.greenStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Blue Strength") tooltip: qsTr("Blue strength.") } + SecondColumnLayout { SpinBox { maximumValue: 2 @@ -78,13 +90,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.blueStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Saturation") tooltip: qsTr("Color saturation.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -92,8 +109,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.saturation - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/ColorMasterSpecifics.qml b/src/imports/effectlib/designer/ColorMasterSpecifics.qml index 4d622f9d..28ad864f 100644 --- a/src/imports/effectlib/designer/ColorMasterSpecifics.qml +++ b/src/imports/effectlib/designer/ColorMasterSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/DepthOfFieldHQBlurSection.qml b/src/imports/effectlib/designer/DepthOfFieldHQBlurSection.qml index 304483ae..83b0d0bf 100644 --- a/src/imports/effectlib/designer/DepthOfFieldHQBlurSection.qml +++ b/src/imports/effectlib/designer/DepthOfFieldHQBlurSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,44 +40,58 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Blur Amount") tooltip: qsTr("Amount of blur.") } + SecondColumnLayout { SpinBox { maximumValue: 50 minimumValue: 0 decimals: 2 backendValue: backendValues.blurAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Focus Distance") tooltip: qsTr("Focus distance of the blur.") } + SecondColumnLayout { SpinBox { maximumValue: 5000 minimumValue: 0 decimals: 0 backendValue: backendValues.focusDistance - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Focus Range") tooltip: qsTr("Focus range of the blur.") } + SecondColumnLayout { SpinBox { maximumValue: 5000 minimumValue: 0 decimals: 0 backendValue: backendValues.focusRange - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/DepthOfFieldHQBlurSpecifics.qml b/src/imports/effectlib/designer/DepthOfFieldHQBlurSpecifics.qml index 94b1674f..05323c0a 100644 --- a/src/imports/effectlib/designer/DepthOfFieldHQBlurSpecifics.qml +++ b/src/imports/effectlib/designer/DepthOfFieldHQBlurSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/DesaturateSection.qml b/src/imports/effectlib/designer/DesaturateSection.qml index 42e5d56c..d5e22f85 100644 --- a/src/imports/effectlib/designer/DesaturateSection.qml +++ b/src/imports/effectlib/designer/DesaturateSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Strength of the desaturate.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -50,8 +52,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/DesaturateSpecifics.qml b/src/imports/effectlib/designer/DesaturateSpecifics.qml index f2536139..e8bd0504 100644 --- a/src/imports/effectlib/designer/DesaturateSpecifics.qml +++ b/src/imports/effectlib/designer/DesaturateSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/DistortionRippleSection.qml b/src/imports/effectlib/designer/DistortionRippleSection.qml index 71b17e5e..379a8eb0 100644 --- a/src/imports/effectlib/designer/DistortionRippleSection.qml +++ b/src/imports/effectlib/designer/DistortionRippleSection.qml @@ -28,122 +28,129 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Distortion") + caption: qsTr("Distortion Ripple") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Radius") tooltip: qsTr("Radius of the effect.") } + SecondColumnLayout { SpinBox { maximumValue: 100 minimumValue: 0 decimals: 2 backendValue: backendValues.radius - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Width") tooltip: qsTr("Width of the distortion.") } + SecondColumnLayout { SpinBox { maximumValue: 100 minimumValue: 2 decimals: 2 backendValue: backendValues.distortionWidth - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Height") tooltip: qsTr("Height of the distortion.") } + SecondColumnLayout { SpinBox { maximumValue: 100 minimumValue: 0 decimals: 2 backendValue: backendValues.distortionHeight - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Phase") tooltip: qsTr("Phase of the distortion.") } + SecondColumnLayout { SpinBox { maximumValue: 360 minimumValue: 0 decimals: 0 backendValue: backendValues.distortionPhase - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } - } - Section { - id: centerSection - width: parent.width - caption: qsTr("Position") - - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - - ColumnLayout { - width: parent.width - 16 + ExpandingSpacer {} + } - Label { - width: 100 + PropertyLabel { text: qsTr("Center") tooltip: qsTr("Center of the distortion.") } - RowLayout { - spacing: centerSection.labelSpinBoxSpacing - Label { - text: qsTr("X") - width: centerSection.labelWidth - } + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 1 minimumValue: 0 decimals: 2 stepSize: 0.1 backendValue: backendValues.center_x - Layout.fillWidth: true - Layout.minimumWidth: centerSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: centerSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: centerSection.labelWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 1 minimumValue: 0 decimals: 2 stepSize: 0.1 backendValue: backendValues.center_y - Layout.fillWidth: true - Layout.minimumWidth: centerSection.spinBoxMinimumWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/DistortionRippleSpecifics.qml b/src/imports/effectlib/designer/DistortionRippleSpecifics.qml index f653eb8b..7e786a06 100644 --- a/src/imports/effectlib/designer/DistortionRippleSpecifics.qml +++ b/src/imports/effectlib/designer/DistortionRippleSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/DistortionSphereSection.qml b/src/imports/effectlib/designer/DistortionSphereSection.qml index 53ea1fdb..44248ceb 100644 --- a/src/imports/effectlib/designer/DistortionSphereSection.qml +++ b/src/imports/effectlib/designer/DistortionSphereSection.qml @@ -28,21 +28,23 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Distortion") + caption: qsTr("Distortion Sphere") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Radius") tooltip: qsTr("Radius of the effect.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -50,13 +52,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.radius - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Height") tooltip: qsTr("Height of the distortion.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -64,62 +71,52 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.distortionHeight - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } - } - - Section { - id: centerSection - width: parent.width - caption: qsTr("Position") - - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - ColumnLayout { - width: parent.width - 16 + ExpandingSpacer {} + } - Label { - width: 100 + PropertyLabel { text: qsTr("Center") tooltip: qsTr("Center of the distortion.") } - RowLayout { - spacing: centerSection.labelSpinBoxSpacing - Label { - text: qsTr("X") - width: centerSection.labelWidth - } + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 1 minimumValue: 0 decimals: 2 stepSize: 0.1 backendValue: backendValues.center_x - Layout.fillWidth: true - Layout.minimumWidth: centerSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: centerSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: centerSection.labelWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 1 minimumValue: 0 decimals: 2 stepSize: 0.1 backendValue: backendValues.center_y - Layout.fillWidth: true - Layout.minimumWidth: centerSection.spinBoxMinimumWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/DistortionSphereSpecifics.qml b/src/imports/effectlib/designer/DistortionSphereSpecifics.qml index 1fc3e4c2..8b2acdd2 100644 --- a/src/imports/effectlib/designer/DistortionSphereSpecifics.qml +++ b/src/imports/effectlib/designer/DistortionSphereSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/DistortionSpiralSection.qml b/src/imports/effectlib/designer/DistortionSpiralSection.qml index c3395be8..386ea39e 100644 --- a/src/imports/effectlib/designer/DistortionSpiralSection.qml +++ b/src/imports/effectlib/designer/DistortionSpiralSection.qml @@ -28,21 +28,23 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Distortion") + caption: qsTr("Distortion Spiral") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Radius") tooltip: qsTr("Radius of the effect.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -50,75 +52,70 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.radius - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Strength") tooltip: qsTr("Strength of the distortion.") } + SecondColumnLayout { SpinBox { maximumValue: 10 minimumValue: -10 decimals: 2 backendValue: backendValues.distortionStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } - } - Section { - id: centerSection - width: parent.width - caption: qsTr("Position") - - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - - ColumnLayout { - width: parent.width - 16 + ExpandingSpacer {} + } - Label { - width: 100 + PropertyLabel { text: qsTr("Center") tooltip: qsTr("Center of the distortion.") } - RowLayout { - spacing: centerSection.labelSpinBoxSpacing - Label { - text: qsTr("X") - width: centerSection.labelWidth - } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.center_x - Layout.fillWidth: true - Layout.minimumWidth: centerSection.spinBoxMinimumWidth + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - RowLayout { - spacing: centerSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: centerSection.labelWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.center_y - Layout.fillWidth: true - Layout.minimumWidth: centerSection.spinBoxMinimumWidth + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/DistortionSpiralSpecifics.qml b/src/imports/effectlib/designer/DistortionSpiralSpecifics.qml index 5efe1495..1cebde66 100644 --- a/src/imports/effectlib/designer/DistortionSpiralSpecifics.qml +++ b/src/imports/effectlib/designer/DistortionSpiralSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/EdgeDetectSection.qml b/src/imports/effectlib/designer/EdgeDetectSection.qml index e81a3ffd..c7b0c572 100644 --- a/src/imports/effectlib/designer/EdgeDetectSection.qml +++ b/src/imports/effectlib/designer/EdgeDetectSection.qml @@ -28,21 +28,23 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Edge") + caption: qsTr("Edge Detect") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Strength") tooltip: qsTr("Strength of the edge.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -50,8 +52,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.edgeStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/EdgeDetectSpecifics.qml b/src/imports/effectlib/designer/EdgeDetectSpecifics.qml index a5e76852..0d920cb7 100644 --- a/src/imports/effectlib/designer/EdgeDetectSpecifics.qml +++ b/src/imports/effectlib/designer/EdgeDetectSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/EffectSection.qml b/src/imports/effectlib/designer/EffectSection.qml index fc71164c..189ecd23 100644 --- a/src/imports/effectlib/designer/EffectSection.qml +++ b/src/imports/effectlib/designer/EffectSection.qml @@ -28,18 +28,21 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Section { caption: qsTr("Effect") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Passes") tooltip: qsTr("Render passes of the effect.") + Layout.alignment: Qt.AlignTop + Layout.topMargin: 5 } + SecondColumnLayout { EditableListView { backendValue: backendValues.passes @@ -51,6 +54,8 @@ Section { onRemove: function(idx) { backendValues.passes.idListRemove(idx) } onReplace: function (idx, value) { backendValues.passes.idListReplace(idx, value) } } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/EffectSpecifics.qml b/src/imports/effectlib/designer/EffectSpecifics.qml index f337d42f..e322b781 100644 --- a/src/imports/effectlib/designer/EffectSpecifics.qml +++ b/src/imports/effectlib/designer/EffectSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/EmbossSection.qml b/src/imports/effectlib/designer/EmbossSection.qml index 688f8555..223f7cc8 100644 --- a/src/imports/effectlib/designer/EmbossSection.qml +++ b/src/imports/effectlib/designer/EmbossSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Strength of the emboss.") } + SecondColumnLayout { SpinBox { maximumValue: 0.01 @@ -50,8 +52,11 @@ Column { decimals: 4 stepSize: 0.001 backendValue: backendValues.amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/EmbossSpecifics.qml b/src/imports/effectlib/designer/EmbossSpecifics.qml index 781d78b9..a8fb19f1 100644 --- a/src/imports/effectlib/designer/EmbossSpecifics.qml +++ b/src/imports/effectlib/designer/EmbossSpecifics.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width diff --git a/src/imports/effectlib/designer/FlipSection.qml b/src/imports/effectlib/designer/FlipSection.qml index a2f494d2..426dd8df 100644 --- a/src/imports/effectlib/designer/FlipSection.qml +++ b/src/imports/effectlib/designer/FlipSection.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width @@ -39,27 +39,36 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Horizontal") tooltip: qsTr("Flip horizontally.") } + SecondColumnLayout { CheckBox { text: backendValues.flipHorizontally.valueToString backendValue: backendValues.flipHorizontally - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Vertical") tooltip: qsTr("Flip vertically.") } + SecondColumnLayout { CheckBox { text: backendValues.flipVertically.valueToString backendValue: backendValues.flipVertically - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/FlipSpecifics.qml b/src/imports/effectlib/designer/FlipSpecifics.qml index 05b203e7..c77e9518 100644 --- a/src/imports/effectlib/designer/FlipSpecifics.qml +++ b/src/imports/effectlib/designer/FlipSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/FxaaSection.qml b/src/imports/effectlib/designer/FxaaSection.qml index b3468d3b..f1a2a9c7 100644 --- a/src/imports/effectlib/designer/FxaaSection.qml +++ b/src/imports/effectlib/designer/FxaaSection.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/FxaaSpecifics.qml b/src/imports/effectlib/designer/FxaaSpecifics.qml index 621e69be..eae8125a 100644 --- a/src/imports/effectlib/designer/FxaaSpecifics.qml +++ b/src/imports/effectlib/designer/FxaaSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/GaussianBlurSection.qml b/src/imports/effectlib/designer/GaussianBlurSection.qml index b4536cd5..a74446f4 100644 --- a/src/imports/effectlib/designer/GaussianBlurSection.qml +++ b/src/imports/effectlib/designer/GaussianBlurSection.qml @@ -28,29 +28,34 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Blur") + caption: qsTr("Gaussian Blur") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Strength of the blur.") } + SecondColumnLayout { SpinBox { maximumValue: 10 minimumValue: 0 decimals: 2 backendValue: backendValues.amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/GaussianBlurSpecifics.qml b/src/imports/effectlib/designer/GaussianBlurSpecifics.qml index 114bac69..8ad52a2d 100644 --- a/src/imports/effectlib/designer/GaussianBlurSpecifics.qml +++ b/src/imports/effectlib/designer/GaussianBlurSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/HDRBloomTonemapSection.qml b/src/imports/effectlib/designer/HDRBloomTonemapSection.qml index d5411c68..87da556c 100644 --- a/src/imports/effectlib/designer/HDRBloomTonemapSection.qml +++ b/src/imports/effectlib/designer/HDRBloomTonemapSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Gamma") tooltip: qsTr("Amount of gamma.") } + SecondColumnLayout { SpinBox { maximumValue: 4 @@ -50,39 +52,54 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.gamma - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Exposure") tooltip: qsTr("Amount of exposure.") } + SecondColumnLayout { SpinBox { maximumValue: 9 minimumValue: -9 decimals: 2 backendValue: backendValues.exposure - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Blur Falloff") tooltip: qsTr("Amount of blur falloff.") } + SecondColumnLayout { SpinBox { maximumValue: 10 minimumValue: 0 decimals: 2 backendValue: backendValues.blurFalloff - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Tonemapping Lerp") tooltip: qsTr("Tonemapping linear interpolation value.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -90,13 +107,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.tonemappingLerp - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Bloom Threshold") tooltip: qsTr("Bloom color threshold value.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -104,13 +126,18 @@ Column { decimals: 3 stepSize: 0.1 backendValue: backendValues.bloomThreshold - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Channel Threshold") tooltip: qsTr("Channel color threshold value.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -118,8 +145,11 @@ Column { decimals: 3 stepSize: 0.1 backendValue: backendValues.channelThreshold - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/HDRBloomTonemapSpecifics.qml b/src/imports/effectlib/designer/HDRBloomTonemapSpecifics.qml index a4411299..d7dcabbe 100644 --- a/src/imports/effectlib/designer/HDRBloomTonemapSpecifics.qml +++ b/src/imports/effectlib/designer/HDRBloomTonemapSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/IdComboBox.qml b/src/imports/effectlib/designer/IdComboBox.qml index 4111ad0e..094039c7 100644 --- a/src/imports/effectlib/designer/IdComboBox.qml +++ b/src/imports/effectlib/designer/IdComboBox.qml @@ -59,7 +59,7 @@ ComboBox { comboBox.setCurrentText(comboBox.textValue) } onModelChanged: comboBox.setCurrentText(comboBox.textValue) - onCompressedActivated: comboBox.handleActivate(index) + onCompressedActivated: function(index, reason) { comboBox.handleActivate(index) } Component.onCompleted: comboBox.setCurrentText(comboBox.textValue) onEditTextChanged: { diff --git a/src/imports/effectlib/designer/MotionBlurSection.qml b/src/imports/effectlib/designer/MotionBlurSection.qml index 48d37205..fb57f230 100644 --- a/src/imports/effectlib/designer/MotionBlurSection.qml +++ b/src/imports/effectlib/designer/MotionBlurSection.qml @@ -28,21 +28,23 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Blur") + caption: qsTr("Motion Blur") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Fade Amount") tooltip: qsTr("Specifies how much the blur fades away each frame.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -50,13 +52,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.fadeAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Quality") tooltip: qsTr("Blur quality.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -64,8 +71,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.blurQuality - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/MotionBlurSpecifics.qml b/src/imports/effectlib/designer/MotionBlurSpecifics.qml index 2746f1b8..31de28cb 100644 --- a/src/imports/effectlib/designer/MotionBlurSpecifics.qml +++ b/src/imports/effectlib/designer/MotionBlurSpecifics.qml @@ -28,9 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 - Column { width: parent.width diff --git a/src/imports/effectlib/designer/SCurveTonemapSection.qml b/src/imports/effectlib/designer/SCurveTonemapSection.qml index 044ada8b..4ace9410 100644 --- a/src/imports/effectlib/designer/SCurveTonemapSection.qml +++ b/src/imports/effectlib/designer/SCurveTonemapSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Shoulder Slope") tooltip: qsTr("Set the slope of the curve shoulder.") } + SecondColumnLayout { SpinBox { maximumValue: 3 @@ -50,13 +52,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.shoulderSlope - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Shoulder Emphasis") tooltip: qsTr("Set the emphasis of the curve shoulder.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -64,13 +71,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.shoulderEmphasis - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Toe Slope") tooltip: qsTr("Set the slope of the curve toe.") } + SecondColumnLayout { SpinBox { maximumValue: 3 @@ -78,13 +90,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.toeSlope - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Toe Emphasis") tooltip: qsTr("Set the emphasis of the curve toe.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -92,20 +109,25 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.toeEmphasis - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Color") width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Contrast Boost") tooltip: qsTr("Set the contrast boost amount.") } + SecondColumnLayout { SpinBox { maximumValue: 2 @@ -113,13 +135,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.contrastBoost - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Saturation Level") tooltip: qsTr("Set the color saturation level.") } + SecondColumnLayout { SpinBox { maximumValue: 2 @@ -127,13 +154,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.saturationLevel - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Gamma") tooltip: qsTr("Set the gamma value.") } + SecondColumnLayout { SpinBox { maximumValue: 8 @@ -141,45 +173,63 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.gammaValue - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Use Exposure") tooltip: qsTr("Specifies if the exposure or white point should be used.") } + SecondColumnLayout { CheckBox { text: backendValues.useExposure.valueToString backendValue: backendValues.useExposure - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("White Point") tooltip: qsTr("Set the white point value.") } + SecondColumnLayout { SpinBox { maximumValue: 128 minimumValue: 0.01 decimals: 2 backendValue: backendValues.whitePoint - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Exposure") tooltip: qsTr("Set the exposure value.") } + SecondColumnLayout { SpinBox { maximumValue: 16 minimumValue: 0.01 decimals: 2 backendValue: backendValues.exposureValue - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/SCurveTonemapSpecifics.qml b/src/imports/effectlib/designer/SCurveTonemapSpecifics.qml index ab56628d..863d02a7 100644 --- a/src/imports/effectlib/designer/SCurveTonemapSpecifics.qml +++ b/src/imports/effectlib/designer/SCurveTonemapSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/ScatterSection.qml b/src/imports/effectlib/designer/ScatterSection.qml index acb59a55..ea616ece 100644 --- a/src/imports/effectlib/designer/ScatterSection.qml +++ b/src/imports/effectlib/designer/ScatterSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,17 +40,21 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Noise Sample Texture") tooltip: qsTr("Defines a texture for noise samples.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.noiseSample_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -59,42 +64,56 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Amount of scatter.") } + SecondColumnLayout { SpinBox { maximumValue: 127 minimumValue: 0 decimals: 2 backendValue: backendValues.amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Direction") tooltip: qsTr("Direction of scatter. 0 = both, 1 = horizontal, 2 = vertical.") } + SecondColumnLayout { SpinBox { maximumValue: 2 minimumValue: 0 decimals: 0 backendValue: backendValues.direction - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Randomize") tooltip: qsTr("Specifies if the scatter is random.") } + SecondColumnLayout { CheckBox { text: backendValues.randomize.valueToString backendValue: backendValues.randomize - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/ScatterSpecifics.qml b/src/imports/effectlib/designer/ScatterSpecifics.qml index df84649f..397c78c5 100644 --- a/src/imports/effectlib/designer/ScatterSpecifics.qml +++ b/src/imports/effectlib/designer/ScatterSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/TiltShiftSection.qml b/src/imports/effectlib/designer/TiltShiftSection.qml index ccc6ac56..c1a68131 100644 --- a/src/imports/effectlib/designer/TiltShiftSection.qml +++ b/src/imports/effectlib/designer/TiltShiftSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,11 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Focus Position") tooltip: qsTr("Set the focus position.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -50,13 +52,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.focusPosition - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Focus Width") tooltip: qsTr("Set the focus width.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -64,43 +71,61 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.focusWidth - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Blur Amount") tooltip: qsTr("Set the blur amount.") } + SecondColumnLayout { SpinBox { maximumValue: 10 minimumValue: 0 decimals: 2 backendValue: backendValues.blurAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Vertical") tooltip: qsTr("Specifies if the tilt shift is vertical.") } + SecondColumnLayout { CheckBox { text: backendValues.isVertical.valueToString backendValue: backendValues.isVertical - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Inverted") tooltip: qsTr("Specifies if the tilt shift is inverted.") } + SecondColumnLayout { CheckBox { text: backendValues.isInverted.valueToString backendValue: backendValues.isInverted - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/effectlib/designer/TiltShiftSpecifics.qml b/src/imports/effectlib/designer/TiltShiftSpecifics.qml index 014fe65d..ab571f91 100644 --- a/src/imports/effectlib/designer/TiltShiftSpecifics.qml +++ b/src/imports/effectlib/designer/TiltShiftSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/effectlib/designer/VignetteSection.qml b/src/imports/effectlib/designer/VignetteSection.qml index 49e8629d..73ba7cb3 100644 --- a/src/imports/effectlib/designer/VignetteSection.qml +++ b/src/imports/effectlib/designer/VignetteSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,23 +40,29 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Strength") tooltip: qsTr("Set the vignette strength.") } + SecondColumnLayout { SpinBox { maximumValue: 15 minimumValue: 0 decimals: 2 backendValue: backendValues.vignetteStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Radius") tooltip: qsTr("Set the vignette radius.") } + SecondColumnLayout { SpinBox { maximumValue: 5 @@ -63,21 +70,20 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.vignetteRadius - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Color") - width: parent.width - ColorEditor { - caption: qsTr("Vignette Color") - backendValue: backendValues.vignetteColor - supportGradient: false - isVector3D: true - Layout.fillWidth: true + PropertyLabel { text: qsTr("Vignette Color") } + + ColorEditor { + backendValue: backendValues.vignetteColor + supportGradient: false + isVector3D: true + } } } } diff --git a/src/imports/effectlib/designer/VignetteSpecifics.qml b/src/imports/effectlib/designer/VignetteSpecifics.qml index 022cee3f..ec574c31 100644 --- a/src/imports/effectlib/designer/VignetteSpecifics.qml +++ b/src/imports/effectlib/designer/VignetteSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSection.qml b/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSection.qml index fda6cb61..d3343de9 100644 --- a/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSection.qml +++ b/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSection.qml @@ -28,82 +28,23 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Environment Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { caption: qsTr("Emission") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Intensity") tooltip: qsTr("Set the emission intensity.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -111,68 +52,75 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.intensity - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Map Texture") tooltip: qsTr("Defines a texture for emissive map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.emissive_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("MaskTexture") tooltip: qsTr("Defines a texture for emissive mask.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.emissive_mask_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Emission Color") - width: parent.width - ColorEditor { - caption: qsTr("Emission Color") - backendValue: backendValues.emission_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } + PropertyLabel { text: qsTr("Emission Color") } - Section { - caption: qsTr("Base Color") - width: parent.width - ColorEditor { - caption: qsTr("Base Color") - backendValue: backendValues.base_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true + ColorEditor { + backendValue: backendValues.emission_color + supportGradient: false + isVector3D: true + } } } Section { caption: qsTr("General") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Base Color") } + + ColorEditor { + backendValue: backendValues.base_color + supportGradient: false + isVector3D: true + } + + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -180,8 +128,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSpecifics.qml b/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSpecifics.qml index f8cb4fa0..10f07bae 100644 --- a/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/AluminumAnodizedEmissiveMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + AluminumAnodizedEmissiveMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/AluminumAnodizedMaterialSection.qml b/src/imports/materiallib/designer/AluminumAnodizedMaterialSection.qml index 579ab5c3..71eaec27 100644 --- a/src/imports/materiallib/designer/AluminumAnodizedMaterialSection.qml +++ b/src/imports/materiallib/designer/AluminumAnodizedMaterialSection.qml @@ -28,94 +28,31 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Environment Map") + caption: qsTr("General") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { - caption: qsTr("Shadow Map") - width: parent.width + PropertyLabel { text: qsTr("Base Color") } - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } + ColorEditor { + backendValue: backendValues.base_color + supportGradient: false + isVector3D: true } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - Section { - caption: qsTr("Base Color") - width: parent.width - ColorEditor { - caption: qsTr("Base Color") - backendValue: backendValues.base_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - - Section { - caption: qsTr("General") - width: parent.width - SectionLayout { - Label { + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -123,8 +60,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/AluminumAnodizedMaterialSpecifics.qml b/src/imports/materiallib/designer/AluminumAnodizedMaterialSpecifics.qml index 891a2aa2..ebe6190a 100644 --- a/src/imports/materiallib/designer/AluminumAnodizedMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/AluminumAnodizedMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + AluminumAnodizedMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/AluminumBrushedMaterialSection.qml b/src/imports/materiallib/designer/AluminumBrushedMaterialSection.qml index 71530438..3c74c97c 100644 --- a/src/imports/materiallib/designer/AluminumBrushedMaterialSection.qml +++ b/src/imports/materiallib/designer/AluminumBrushedMaterialSection.qml @@ -28,240 +28,197 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 import StudioTheme 1.0 as StudioTheme Column { id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("Roughness") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } + PropertyLabel { text: qsTr("Metal Color") } + + ColorEditor { + backendValue: backendValues.metal_color + supportGradient: false + isVector3D: true } - Label { + + PropertyLabel { text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") + tooltip: qsTr("Defines a horizontal texture for roughness map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture + backendValue: backendValues.roughness_texture_u_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } - } - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") + tooltip: qsTr("Defines a vertical texture for roughness map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture + backendValue: backendValues.roughness_texture_v_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } Section { - caption: qsTr("Metal Color") + caption: qsTr("Reflection") width: parent.width - ColorEditor { - caption: qsTr("Metal Color") - backendValue: backendValues.metal_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("Roughness") - width: parent.width SectionLayout { - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a horizontal texture for roughness map.") + PropertyLabel { + text: qsTr("Stretch") + tooltip: qsTr("Set the material reflection stretch.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.roughness_texture_u_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.reflection_stretch + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a vertical texture for roughness map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.roughness_texture_v_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { - caption: qsTr("Reflection") + caption: qsTr("Brush") width: parent.width SectionLayout { - Label { - text: qsTr("Stretch") - tooltip: qsTr("Set the material reflection stretch.") + PropertyLabel { + text: qsTr("Strength") + tooltip: qsTr("Set the strength of the brush strokes.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 - backendValue: backendValues.reflection_stretch - Layout.fillWidth: true + backendValue: backendValues.brushing_strength + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a vertical texture for roughness map.") + + PropertyLabel { + text: qsTr("Tiling") + tooltip: qsTr("Sets the tiling repeat of the brush map.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.roughness_texture_v_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor + } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Brush") - width: parent.width + PropertyLabel {} - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Strenght") - tooltip: qsTr("Set the strength of the brush strokes.") + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.brushing_strength - Layout.fillWidth: true - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} } - ColumnLayout { - width: parent.width - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Tiling") - tooltip: qsTr("Sets the tiling repeat of the brush map.") - } - - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } - } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } - } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } - } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} } } } @@ -269,32 +226,42 @@ Column { Section { caption: qsTr("Bump") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Set the bump map bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 2 minimumValue: 0 + maximumValue: 2 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for bump map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.bump_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/AluminumBrushedMaterialSpecifics.qml b/src/imports/materiallib/designer/AluminumBrushedMaterialSpecifics.qml index 94da0a5c..5a8d0f4c 100644 --- a/src/imports/materiallib/designer/AluminumBrushedMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/AluminumBrushedMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + AluminumBrushedMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/AluminumEmissiveMaterialSection.qml b/src/imports/materiallib/designer/AluminumEmissiveMaterialSection.qml index 87b2bfe5..0c98ed29 100644 --- a/src/imports/materiallib/designer/AluminumEmissiveMaterialSection.qml +++ b/src/imports/materiallib/designer/AluminumEmissiveMaterialSection.qml @@ -28,402 +28,393 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("Emission") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } + PropertyLabel { text: qsTr("Emission Color") } - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } + ColorEditor { + backendValue: backendValues.emission_color + supportGradient: false + isVector3D: true } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") + + PropertyLabel { + text: qsTr("Intensity") + tooltip: qsTr("Set the emission intensity.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.intensity + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Emission") - width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Intensity") - tooltip: qsTr("Set the emission intensity.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.intensity - Layout.fillWidth: true - } - } - Label { + PropertyLabel { text: qsTr("Map Texture") tooltip: qsTr("Defines a texture for emissive map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.emissive_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("MaskTexture") tooltip: qsTr("Defines a texture for emissive mask.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.emissive_mask_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Mask Offset") + tooltip: qsTr("Sets the mask offset of emissive map.") } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Mask Offset") - tooltip: qsTr("Sets the mask offset of emissive map.") + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.emissive_mask_offset_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - width: parent.width - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.emissive_mask_offset_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.emissive_mask_offset_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.emissive_mask_offset_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.emissive_mask_offset_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Emission Color") - width: parent.width - ColorEditor { - caption: qsTr("Emission Color") - backendValue: backendValues.emission_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } + PropertyLabel {} - Section { - caption: qsTr("Metal Color") - width: parent.width - ColorEditor { - caption: qsTr("Metal Color") - backendValue: backendValues.metal_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.emissive_mask_offset_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} + } } } Section { caption: qsTr("Roughness") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Metal Color") } + + ColorEditor { + backendValue: backendValues.metal_color + supportGradient: false + isVector3D: true + } + + PropertyLabel { text: qsTr("Map Offset") tooltip: qsTr("Set the material roughness map offset.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness_map_offset - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Map scale") tooltip: qsTr("Set the material roughness map scale.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness_map_scale - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for roughness map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.roughness_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Reflection") width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Map Offset") - tooltip: qsTr("Set the material reclection map offset.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.reflection_map_offset - Layout.fillWidth: true - } - } - Label { - text: qsTr("Map scale") - tooltip: qsTr("Set the material reclection map scale.") + SectionLayout { + PropertyLabel { + text: qsTr("Map Offset") + tooltip: qsTr("Set the material reclection map offset.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.reflection_map_offset + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.reflection_map_scale - Layout.fillWidth: true - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Map scale") + tooltip: qsTr("Set the material reclection map scale.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.reflection_map_scale + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - Label { + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for reflection map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.reflection_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } + + PropertyLabel { + text: qsTr("Tiling") + tooltip: qsTr("Sets the tiling repeat of the reflection map.") } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Tiling") - tooltip: qsTr("Sets the tiling repeat of the reflection map.") + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Bump") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Set the bump map bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 2 minimumValue: 0 + maximumValue: 2 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for bump map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.bump_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/AluminumEmissiveMaterialSpecifics.qml b/src/imports/materiallib/designer/AluminumEmissiveMaterialSpecifics.qml index 577f0eaf..ea3b6776 100644 --- a/src/imports/materiallib/designer/AluminumEmissiveMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/AluminumEmissiveMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + AluminumEmissiveMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/AluminumMaterialSection.qml b/src/imports/materiallib/designer/AluminumMaterialSection.qml index 2f338193..762819c8 100644 --- a/src/imports/materiallib/designer/AluminumMaterialSection.qml +++ b/src/imports/materiallib/designer/AluminumMaterialSection.qml @@ -28,278 +28,253 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("Roughness") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } + PropertyLabel { text: qsTr("Metal Color") } + + ColorEditor { + backendValue: backendValues.metal_color + supportGradient: false + isVector3D: true } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") + + PropertyLabel { + text: qsTr("Map Offset") + tooltip: qsTr("Set the material roughness map offset.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.roughness_map_offset + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } - } - Section { - caption: qsTr("Shadow Map") - width: parent.width + ExpandingSpacer {} + } - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") + PropertyLabel { + text: qsTr("Map scale") + tooltip: qsTr("Set the material roughness map scale.") } + SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.roughness_map_scale + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") + tooltip: qsTr("Defines a texture for roughness map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture + backendValue: backendValues.roughness_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } Section { - caption: qsTr("Metal Color") + caption: qsTr("Reflection") width: parent.width - ColorEditor { - caption: qsTr("Metal Color") - backendValue: backendValues.metal_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("Roughness") - width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Map Offset") - tooltip: qsTr("Set the material roughness map offset.") + tooltip: qsTr("Set the material reclection map offset.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 - backendValue: backendValues.roughness_map_offset - Layout.fillWidth: true + backendValue: backendValues.reflection_map_offset + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Map scale") - tooltip: qsTr("Set the material roughness map scale.") + tooltip: qsTr("Set the material reclection map scale.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 - backendValue: backendValues.roughness_map_scale - Layout.fillWidth: true + backendValue: backendValues.reflection_map_scale + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") - tooltip: qsTr("Defines a texture for roughness map.") + tooltip: qsTr("Defines a texture for reflection map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.roughness_texture_texture + backendValue: backendValues.reflection_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Reflection") - width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Map Offset") - tooltip: qsTr("Set the material reclection map offset.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.reflection_map_offset - Layout.fillWidth: true - } - } - Label { - text: qsTr("Map scale") - tooltip: qsTr("Set the material reclection map scale.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.reflection_map_scale - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for reflection map.") + PropertyLabel { + text: qsTr("Tiling") + tooltip: qsTr("Sets the tiling repeat of the reflection map.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.reflection_texture_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor + } + + ExpandingSpacer {} } - } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Tiling") - tooltip: qsTr("Sets the tiling repeat of the reflection map.") + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.tiling_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.tiling_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Bump") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Set the bump map bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 2 minimumValue: 0 + maximumValue: 2 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for bump map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.bump_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/AluminumMaterialSpecifics.qml b/src/imports/materiallib/designer/AluminumMaterialSpecifics.qml index 642c07c2..bbbdc71d 100644 --- a/src/imports/materiallib/designer/AluminumMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/AluminumMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + AluminumMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/CopperMaterialSection.qml b/src/imports/materiallib/designer/CopperMaterialSection.qml index 345622fb..42632691 100644 --- a/src/imports/materiallib/designer/CopperMaterialSection.qml +++ b/src/imports/materiallib/designer/CopperMaterialSection.qml @@ -28,103 +28,43 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { - caption: qsTr("Environment Map") + caption: qsTr("General") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } + PropertyLabel { text: qsTr("Metal Color") } - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") + ColorEditor { + backendValue: backendValues.metal_color + supportGradient: false + isVector3D: true } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { - caption: qsTr("Metal Color") - width: parent.width - ColorEditor { - caption: qsTr("Metal Color") - backendValue: backendValues.metal_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("General") - width: parent.width - SectionLayout { - Label { + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/CopperMaterialSpecifics.qml b/src/imports/materiallib/designer/CopperMaterialSpecifics.qml index 001c6ba4..85e54ed6 100644 --- a/src/imports/materiallib/designer/CopperMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/CopperMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + CopperMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/CustomMaterialSection.qml b/src/imports/materiallib/designer/CustomMaterialSection.qml index bf540c5e..059774a4 100644 --- a/src/imports/materiallib/designer/CustomMaterialSection.qml +++ b/src/imports/materiallib/designer/CustomMaterialSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,54 +40,77 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Transparency") tooltip: qsTr("Specifies if the material has transparency.") } + SecondColumnLayout { CheckBox { text: backendValues.hasTransparency.valueToString backendValue: backendValues.hasTransparency - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Refraction") tooltip: qsTr("Specifies if the material has refraction.") } + SecondColumnLayout { CheckBox { text: backendValues.hasRefraction.valueToString backendValue: backendValues.hasRefraction - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Always Dirty") tooltip: qsTr("Specifies if the material needs to be refreshed every time it is used.") } + SecondColumnLayout { CheckBox { text: backendValues.alwaysDirty.valueToString backendValue: backendValues.alwaysDirty - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Shader Info") tooltip: qsTr("Shader info for the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.ShaderInfo" - Layout.fillWidth: true backendValue: backendValues.shaderInfo + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Passes") tooltip: qsTr("Render passes of the material.") + Layout.alignment: Qt.AlignTop + Layout.topMargin: 5 } + SecondColumnLayout { EditableListView { backendValue: backendValues.passes @@ -98,6 +122,8 @@ Column { onRemove: function(idx) { backendValues.passes.idListRemove(idx) } onReplace: function (idx, value) { backendValues.passes.idListReplace(idx, value) } } + + ExpandingSpacer {} } } } @@ -108,53 +134,72 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Light Probe") tooltip: qsTr("Defines a texture for overriding or setting an image based lighting texture for use with this material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.lightProbe + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Displacement Map") tooltip: qsTr("Defines a grayscale image used to offset the vertices of geometry across the surface of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.displacementMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Displacement Amount") tooltip: qsTr("Controls the offset amount for the displacement map.") } + SecondColumnLayout { SpinBox { - maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 + maximumValue: 9999999 decimals: 0 backendValue: backendValues.displacementAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Culling Mode") tooltip: qsTr("Defines whether culling is enabled and which mode is actually enabled.") } - ComboBox { - scope: "Material" - model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] - backendValue: backendValues.cullMode - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Material" + model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] + backendValue: backendValues.cullMode + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } } - diff --git a/src/imports/materiallib/designer/CustomMaterialSpecifics.qml b/src/imports/materiallib/designer/CustomMaterialSpecifics.qml index ada74545..8957ad70 100644 --- a/src/imports/materiallib/designer/CustomMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/CustomMaterialSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/materiallib/designer/EnvironmentMapSection.qml b/src/imports/materiallib/designer/EnvironmentMapSection.qml new file mode 100644 index 00000000..4a7639ce --- /dev/null +++ b/src/imports/materiallib/designer/EnvironmentMapSection.qml @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Quick 3D. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import HelperWidgets 2.0 +import StudioTheme 1.0 as StudioTheme + +Section { + caption: qsTr("Environment Map") + width: parent.width + + SectionLayout { + PropertyLabel { + text: qsTr("Enabled") + tooltip: qsTr("Specifies if the environment map is enabled.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.uEnvironmentMappingEnabled.valueToString + backendValue: backendValues.uEnvironmentMappingEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Texture") + tooltip: qsTr("Defines a texture for environment map.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.uEnvironmentTexture_texture + defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } +}
\ No newline at end of file diff --git a/src/imports/materiallib/designer/FrostedGlassMaterialSection.qml b/src/imports/materiallib/designer/FrostedGlassMaterialSection.qml index 65b1f6c1..ad6cbff4 100644 --- a/src/imports/materiallib/designer/FrostedGlassMaterialSection.qml +++ b/src/imports/materiallib/designer/FrostedGlassMaterialSection.qml @@ -28,238 +28,174 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("Bump") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") + PropertyLabel { + text: qsTr("Scale") + tooltip: qsTr("Set the scale of the bump bands.") } + SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true + SpinBox { + minimumValue: 0 + maximumValue: 5 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.bumpScale + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") + + PropertyLabel { + text: qsTr("Bands") + tooltip: qsTr("Set the number of the bump bands.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 0 + maximumValue: 10 + decimals: 0 + backendValue: backendValues.bumpBands + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Shadow Map") - width: parent.width + PropertyLabel { + text: qsTr("Strength") + tooltip: qsTr("Set the glass bump map strength.") + } - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.glass_bfactor + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Internal") + tooltip: qsTr("Specifies if the bump map be used only for the internal lighting.") } + SecondColumnLayout { CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true + text: backendValues.glass_binside.valueToString + backendValue: backendValues.glass_binside + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") + tooltip: qsTr("Defines a texture for bump map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture + backendValue: backendValues.glass_bump_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } + PropertyLabel { + text: qsTr("Coordinates") + tooltip: qsTr("Sets the bump coordinates of the refraction.") + } - Section { - caption: qsTr("Glass Color") - width: parent.width - ColorEditor { - caption: qsTr("Glass Color") - backendValue: backendValues.glass_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.bumpCoords_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } - Section { - caption: qsTr("Band Light Color") - width: parent.width - ColorEditor { - caption: qsTr("Band Light Color") - backendValue: backendValues.intLightCol - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } - Section { - caption: qsTr("Bump") - width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Scale") - tooltip: qsTr("Set the scale of the bump bands.") + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } - SecondColumnLayout { - SpinBox { - maximumValue: 5 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.bumpScale - Layout.fillWidth: true - } - } - Label { - text: qsTr("Bands") - tooltip: qsTr("Set the number of the bump bands.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 10 - minimumValue: 0 - decimals: 0 - backendValue: backendValues.bumpBands - Layout.fillWidth: true - } - } - Label { - text: qsTr("Strength") - tooltip: qsTr("Set the glass bump map strength.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.glass_bfactor - Layout.fillWidth: true - } - } - Label { - text: qsTr("Internal") - tooltip: qsTr("Specifies if the bump map be used only for the internal lighting.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.glass_binside.valueToString - backendValue: backendValues.glass_binside - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for bump map.") + + ExpandingSpacer {} } + + PropertyLabel {} + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.glass_bump_texture - defaultItem: qsTr("Default") - } - } - } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Coordinates") - tooltip: qsTr("Sets the bump coordinates of the refraction.") + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.bumpCoords_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.bumpCoords_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.bumpCoords_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.bumpCoords_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.bumpCoords_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor } + + ExpandingSpacer {} } } } @@ -267,11 +203,21 @@ Column { Section { caption: qsTr("General") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Glass Color") } + + ColorEditor { + backendValue: backendValues.glass_color + supportGradient: false + isVector3D: true + } + + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -279,222 +225,287 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Blur Size") tooltip: qsTr("Set the amount of blurring behind the glass.") } + SecondColumnLayout { SpinBox { - maximumValue: 50 minimumValue: 0 + maximumValue: 50 decimals: 2 backendValue: backendValues.blur_size - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Refract Depth") tooltip: qsTr("Set the refract depth of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 5 minimumValue: 0 + maximumValue: 5 decimals: 2 stepSize: 0.1 backendValue: backendValues.refract_depth - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Fresnel Power") tooltip: qsTr("Set the fresnel power of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 100 minimumValue: 0 + maximumValue: 100 decimals: 2 backendValue: backendValues.uFresnelPower - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Reflectivity") tooltip: qsTr("Set the reflectivity of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.reflectivity_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 2.1 minimumValue: 1.4 + maximumValue: 2.1 decimals: 2 stepSize: 0.1 backendValue: backendValues.glass_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Band Light") width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Falloff") - tooltip: qsTr("Set the light intensity falloff rate.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 10 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.intLightFall - Layout.fillWidth: true - } - } - Label { - text: qsTr("Angle") - tooltip: qsTr("Set the angle of lightsource. Band is perpendicular to this.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 360 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.intLightRot - Layout.fillWidth: true - } - } - Label { - text: qsTr("Brightness") - tooltip: qsTr("Set the brightness of the band light.") + + SectionLayout { + PropertyLabel { text: qsTr("Band Light Color") } + + ColorEditor { + backendValue: backendValues.intLightCol + supportGradient: false + isVector3D: true + } + + PropertyLabel { + text: qsTr("Falloff") + tooltip: qsTr("Set the light intensity falloff rate.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10 + decimals: 2 + backendValue: backendValues.intLightFall + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.intLightBrt - Layout.fillWidth: true - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Angle") + tooltip: qsTr("Set the angle of lightsource. Band is perpendicular to this.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 360 + decimals: 2 + backendValue: backendValues.intLightRot + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Position") - tooltip: qsTr("Sets the Position of the band light in the UV space.") + + PropertyLabel { + text: qsTr("Brightness") + tooltip: qsTr("Set the brightness of the band light.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.intLightBrt + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.intLightPos_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Position") + tooltip: qsTr("Sets the Position of the band light in the UV space.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.intLightPos_x + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.intLightPos_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.intLightPos_y + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Random Gradient Maps") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("1D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient1D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("2D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient2D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("3D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient3D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("4D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient4D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/FrostedGlassMaterialSpecifics.qml b/src/imports/materiallib/designer/FrostedGlassMaterialSpecifics.qml index 21b69720..7ff98b57 100644 --- a/src/imports/materiallib/designer/FrostedGlassMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/FrostedGlassMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + FrostedGlassMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSection.qml b/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSection.qml index 9d9e1062..1c77d2ce 100644 --- a/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSection.qml +++ b/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSection.qml @@ -28,189 +28,123 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("Bump") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") + PropertyLabel { + text: qsTr("Scale") + tooltip: qsTr("Set the scale of the bump bands.") } + SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true + SpinBox { + minimumValue: 0 + maximumValue: 5 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.bumpScale + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") + + PropertyLabel { + text: qsTr("Bands") + tooltip: qsTr("Set the number of the bump bands.") } + SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") + SpinBox { + minimumValue: 0 + maximumValue: 10 + decimals: 0 + backendValue: backendValues.bumpBands + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } - } - Section { - caption: qsTr("Shadow Map") - width: parent.width + ExpandingSpacer {} + } - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") + PropertyLabel { + text: qsTr("Coordinates") + tooltip: qsTr("Sets the bump coordinates of the refraction.") } + SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.bumpCoords_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } - } - } - } + ExpandingSpacer {} + } - Section { - caption: qsTr("Glass Color") - width: parent.width - ColorEditor { - caption: qsTr("Glass Color") - backendValue: backendValues.glass_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } + PropertyLabel {} - Section { - caption: qsTr("Bump") - width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Scale") - tooltip: qsTr("Set the scale of the bump bands.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 5 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.bumpScale - Layout.fillWidth: true - } - } - Label { - text: qsTr("Bands") - tooltip: qsTr("Set the number of the bump bands.") + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.bumpCoords_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 10 - minimumValue: 0 - decimals: 0 - backendValue: backendValues.bumpBands - Layout.fillWidth: true - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Coordinates") - tooltip: qsTr("Sets the bump coordinates of the refraction.") - } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.bumpCoords_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } - } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.bumpCoords_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.bumpCoords_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.bumpCoords_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor } + + ExpandingSpacer {} } } } @@ -218,159 +152,203 @@ Column { Section { caption: qsTr("General") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Glass Color") } + + ColorEditor { + backendValue: backendValues.glass_color + supportGradient: false + isVector3D: true + } + + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Blur Size") tooltip: qsTr("Set the amount of blurring behind the glass.") } + SecondColumnLayout { SpinBox { - maximumValue: 50 minimumValue: 0 + maximumValue: 50 decimals: 2 backendValue: backendValues.blur_size - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Fresnel Power") tooltip: qsTr("Set the fresnel power of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 100 minimumValue: 0 + maximumValue: 100 decimals: 2 backendValue: backendValues.uFresnelPower - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Reflectivity") tooltip: qsTr("Set the reflectivity of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.reflectivity_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 2.1 minimumValue: 1.4 + maximumValue: 2.1 decimals: 2 stepSize: 0.1 backendValue: backendValues.glass_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Noise") width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Scale") - tooltip: qsTr("Set the noise scale.") + + SectionLayout { + PropertyLabel { + text: qsTr("Scale") + tooltip: qsTr("Set the noise scale.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 40 + decimals: 2 + backendValue: backendValues.noiseScale + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 40 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.noiseScale - Layout.fillWidth: true - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Coordinates") + tooltip: qsTr("Sets the noise coordinates.") + } + + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.noiseCoords_x + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor + } + + ExpandingSpacer {} } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Coordinates") - tooltip: qsTr("Sets the noise coordinates.") + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.noiseCoords_y + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.noiseCoords_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisYColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.noiseCoords_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + ExpandingSpacer {} + } + + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 10000 + decimals: 2 + backendValue: backendValues.noiseCoords_z + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Z") - width: materialRoot.labelWidth - color: StudioTheme.Values.theme3DAxisZColor - } - SpinBox { - maximumValue: 10000 - minimumValue: 0 - realDragRange: 1000 - decimals: 2 - backendValue: backendValues.noiseCoords_z - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor } + + ExpandingSpacer {} } } } @@ -378,54 +356,74 @@ Column { Section { caption: qsTr("Random Gradient Maps") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("1D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient1D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("2D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient2D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("3D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient3D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("4D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient4D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSpecifics.qml b/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSpecifics.qml index b18c1ac0..9f8b16af 100644 --- a/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/FrostedGlassSinglePassMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + FrostedGlassSinglePassMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/GlassMaterialSection.qml b/src/imports/materiallib/designer/GlassMaterialSection.qml index 19c0515e..e066307b 100644 --- a/src/imports/materiallib/designer/GlassMaterialSection.qml +++ b/src/imports/materiallib/designer/GlassMaterialSection.qml @@ -28,150 +28,99 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("General") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } + PropertyLabel { text: qsTr("Glass Color") } - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") + ColorEditor { + backendValue: backendValues.glass_color + supportGradient: false + isVector3D: true } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - - Section { - caption: qsTr("Glass Color") - width: parent.width - ColorEditor { - caption: qsTr("Glass Color") - backendValue: backendValues.glass_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("General") - width: parent.width - SectionLayout { - Label { + PropertyLabel { text: qsTr("Fresnel Power") tooltip: qsTr("Set the fresnel power of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 100 minimumValue: 0 + maximumValue: 100 decimals: 2 backendValue: backendValues.uFresnelPower - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Minimum Opacity") tooltip: qsTr("Set the minimum opacity of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.uMinOpacity - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Reflectivity") tooltip: qsTr("Set the reflectivity of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.reflectivity_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 2.1 minimumValue: 1.4 + maximumValue: 2.1 decimals: 2 stepSize: 0.1 backendValue: backendValues.glass_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/GlassMaterialSpecifics.qml b/src/imports/materiallib/designer/GlassMaterialSpecifics.qml index f53b1a43..b3ce4a0c 100644 --- a/src/imports/materiallib/designer/GlassMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/GlassMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + GlassMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/GlassRefractiveMaterialSection.qml b/src/imports/materiallib/designer/GlassRefractiveMaterialSection.qml index f5f7b282..6ec799ac 100644 --- a/src/imports/materiallib/designer/GlassRefractiveMaterialSection.qml +++ b/src/imports/materiallib/designer/GlassRefractiveMaterialSection.qml @@ -28,150 +28,99 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("General") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } + PropertyLabel { text: qsTr("Glass Color") } - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") + ColorEditor { + backendValue: backendValues.glass_color + supportGradient: false + isVector3D: true } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - - Section { - caption: qsTr("Glass Color") - width: parent.width - ColorEditor { - caption: qsTr("Glass Color") - backendValue: backendValues.glass_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("General") - width: parent.width - SectionLayout { - Label { + PropertyLabel { text: qsTr("Fresnel Power") tooltip: qsTr("Set the fresnel power of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 100 minimumValue: 0 + maximumValue: 100 decimals: 2 backendValue: backendValues.uFresnelPower - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the roughness of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Reflectivity") tooltip: qsTr("Set the reflectivity of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.reflectivity_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 2.1 minimumValue: 1.4 + maximumValue: 2.1 decimals: 2 stepSize: 0.1 backendValue: backendValues.glass_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/GlassRefractiveMaterialSpecifics.qml b/src/imports/materiallib/designer/GlassRefractiveMaterialSpecifics.qml index 04684a7a..d5ee4978 100644 --- a/src/imports/materiallib/designer/GlassRefractiveMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/GlassRefractiveMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + GlassRefractiveMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/IdComboBox.qml b/src/imports/materiallib/designer/IdComboBox.qml index be341ae4..4111ad0e 100644 --- a/src/imports/materiallib/designer/IdComboBox.qml +++ b/src/imports/materiallib/designer/IdComboBox.qml @@ -28,9 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 -import HelperWidgets 2.0 as HelperWidgets +import HelperWidgets 2.0 -HelperWidgets.ComboBox { +ComboBox { id: comboBox property alias typeFilter: itemFilterModel.typeFilter @@ -41,7 +41,7 @@ HelperWidgets.ComboBox { textInput.validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } - HelperWidgets.ItemFilterModel { + ItemFilterModel { id: itemFilterModel modelNodeBackendProperty: modelNodeBackend } diff --git a/src/imports/materiallib/designer/PaperArtisticMaterialSection.qml b/src/imports/materiallib/designer/PaperArtisticMaterialSection.qml index 65d9d662..a460243e 100644 --- a/src/imports/materiallib/designer/PaperArtisticMaterialSection.qml +++ b/src/imports/materiallib/designer/PaperArtisticMaterialSection.qml @@ -28,87 +28,23 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - - Section { - caption: qsTr("Environment Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - Section { caption: qsTr("Transmission") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Transmission Weight") tooltip: qsTr("Set the material transmission weight.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -116,13 +52,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.transmission_weight - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Reflection Weight") tooltip: qsTr("Set the material reflection weight.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -130,109 +71,126 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.reflection_weight - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for transmission map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.transmission_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("General") width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Translucency Falloff") - tooltip: qsTr("Set the falloff of the translucency of the material.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 100 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.uTranslucentFalloff - Layout.fillWidth: true - } - } - Label { - text: qsTr("Opacity") - tooltip: qsTr("Set the opacity of the material.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 100 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.uOpacity - Layout.fillWidth: true - } + SectionLayout { + PropertyLabel { + text: qsTr("Translucency Falloff") + tooltip: qsTr("Set the falloff of the translucency of the material.") + } + + SecondColumnLayout { + SpinBox { + maximumValue: 100 + minimumValue: 0 + decimals: 2 + backendValue: backendValues.uTranslucentFalloff + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Texture Tiling") - tooltip: qsTr("Sets the tiling repeat of the reflection map.") + PropertyLabel { + text: qsTr("Opacity") + tooltip: qsTr("Set the opacity of the material.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 100 + decimals: 2 + backendValue: backendValues.uOpacity + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.texture_tiling_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Texture Tiling") + tooltip: qsTr("Sets the tiling repeat of the reflection map.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.texture_tiling_x + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.texture_tiling_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + maximumValue: 1 + minimumValue: 0 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.texture_tiling_y + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Diffuse Map") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Light Wrap") tooltip: qsTr("Set the diffuse light bend of the material.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -240,52 +198,71 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.uDiffuseLightWrap - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for diffuse map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.diffuse_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Bump") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Set the bump map bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 2 minimumValue: 0 + maximumValue: 2 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for bump map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.bump_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/PaperArtisticMaterialSpecifics.qml b/src/imports/materiallib/designer/PaperArtisticMaterialSpecifics.qml index ba115fad..4dc78629 100644 --- a/src/imports/materiallib/designer/PaperArtisticMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/PaperArtisticMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + PaperArtisticMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/PaperOfficeMaterialSection.qml b/src/imports/materiallib/designer/PaperOfficeMaterialSection.qml index c715692e..0ecd9736 100644 --- a/src/imports/materiallib/designer/PaperOfficeMaterialSection.qml +++ b/src/imports/materiallib/designer/PaperOfficeMaterialSection.qml @@ -28,244 +28,249 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - Section { caption: qsTr("Transmission") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Transmission Weight") tooltip: qsTr("Set the material transmission weight.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.transmission_weight - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Reflection Weight") tooltip: qsTr("Set the material reflection weight.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.reflection_weight - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for transmission map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.transmission_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("General") width: parent.width - ColumnLayout { - width: parent.width - 16 - SectionLayout { - Label { - text: qsTr("Translucency Falloff") - tooltip: qsTr("Set the falloff of the translucency of the material.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 100 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.uTranslucentFalloff - Layout.fillWidth: true - } - } - Label { - text: qsTr("Opacity") - tooltip: qsTr("Set the opacity of the material.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 100 - minimumValue: 0 - decimals: 2 - backendValue: backendValues.uOpacity - Layout.fillWidth: true - } + SectionLayout { + PropertyLabel { + text: qsTr("Translucency Falloff") + tooltip: qsTr("Set the falloff of the translucency of the material.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 100 + decimals: 2 + backendValue: backendValues.uTranslucentFalloff + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Opacity") + tooltip: qsTr("Set the opacity of the material.") } - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Texture Tiling") - tooltip: qsTr("Sets the tiling repeat of the reflection map.") + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 100 + decimals: 2 + backendValue: backendValues.uOpacity + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.texture_tiling_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Texture Tiling") + tooltip: qsTr("Sets the tiling repeat of the reflection map.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.texture_tiling_x + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.texture_tiling_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + maximumValue: 1 + minimumValue: 0 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.texture_tiling_y + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Paper Color") } + + ColorEditor { + backendValue: backendValues.paper_color + supportGradient: false + isVector3D: true } } } - Section { - caption: qsTr("Paper Color") - width: parent.width - ColorEditor { - caption: qsTr("Paper Color") - backendValue: backendValues.paper_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } + Section { caption: qsTr("Diffuse Map") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Light Wrap") tooltip: qsTr("Set the diffuse light bend of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.uDiffuseLightWrap - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for diffuse map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.diffuse_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Bump") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Amount") tooltip: qsTr("Set the bump map bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 2 minimumValue: 0 + maximumValue: 2 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_amount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Defines a texture for bump map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.bump_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/PaperOfficeMaterialSpecifics.qml b/src/imports/materiallib/designer/PaperOfficeMaterialSpecifics.qml index 81643b22..18f44369 100644 --- a/src/imports/materiallib/designer/PaperOfficeMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/PaperOfficeMaterialSpecifics.qml @@ -28,12 +28,16 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + ShadowMapSection { + width: parent.width + } + PaperOfficeMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSection.qml b/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSection.qml index e54c1d44..511f2d8d 100644 --- a/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSection.qml +++ b/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSection.qml @@ -28,262 +28,243 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - - Section { - caption: qsTr("Environment Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - - Section { - caption: qsTr("Diffuse Color") - width: parent.width - ColorEditor { - caption: qsTr("Diffuse Color") - backendValue: backendValues.diffuse_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { caption: qsTr("Emission") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Intensity") tooltip: qsTr("Set the emission intensity.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.intensity - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Map Texture") tooltip: qsTr("Defines a texture for emissive map.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.emissive_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("MaskTexture") tooltip: qsTr("Defines a texture for emissive mask.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.emissive_mask_texture_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Emission Color") - width: parent.width - ColorEditor { - caption: qsTr("Emission Color") - backendValue: backendValues.emission_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true + PropertyLabel { text: qsTr("Emission Color") } + + ColorEditor { + backendValue: backendValues.emission_color + supportGradient: false + isVector3D: true + } } } Section { caption: qsTr("General") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Diffuse Color") } + + ColorEditor { + backendValue: backendValues.diffuse_color + supportGradient: false + isVector3D: true + } + + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1.6 minimumValue: 1.4 + maximumValue: 1.6 decimals: 3 stepSize: 0.01 backendValue: backendValues.material_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture Scaling") tooltip: qsTr("Set the texture scaling of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.texture_scaling - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Bump Factor") tooltip: qsTr("Set the strength of the bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_factor - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Random Gradient Maps") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("1D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient1D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("2D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient2D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("3D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient3D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("4D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient4D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSpecifics.qml b/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSpecifics.qml index c101f8b5..93860a35 100644 --- a/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/PlasticStructuredRedEmissiveMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + PlasticStructuredRedEmissiveMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/PlasticStructuredRedMaterialSection.qml b/src/imports/materiallib/designer/PlasticStructuredRedMaterialSection.qml index 29ad1617..5aa55ba9 100644 --- a/src/imports/materiallib/designer/PlasticStructuredRedMaterialSection.qml +++ b/src/imports/materiallib/designer/PlasticStructuredRedMaterialSection.qml @@ -28,205 +28,175 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - Section { - caption: qsTr("Environment Map") + caption: qsTr("General") width: parent.width SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } + PropertyLabel { text: qsTr("Diffuse Color") } - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") + ColorEditor { + backendValue: backendValues.diffuse_color + supportGradient: false + isVector3D: true } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - - Section { - caption: qsTr("Diffuse Color") - width: parent.width - ColorEditor { - caption: qsTr("Diffuse Color") - backendValue: backendValues.diffuse_color - supportGradient: false - isVector3D: true - Layout.fillWidth: true - } - } - Section { - caption: qsTr("General") - width: parent.width - SectionLayout { - Label { + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Set the material roughness.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1.6 minimumValue: 1.4 + maximumValue: 1.6 decimals: 3 stepSize: 0.01 backendValue: backendValues.material_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Texture Scaling") tooltip: qsTr("Set the texture scaling of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.texture_scaling - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Bump Factor") tooltip: qsTr("Set the strength of the bumpiness.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.bump_factor - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } + Section { caption: qsTr("Random Gradient Maps") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("1D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient1D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("2D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient2D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("3D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient3D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("4D") tooltip: qsTr("Defines a texture map used to create the random bumpiness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.randomGradient4D_texture defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/PlasticStructuredRedMaterialSpecifics.qml b/src/imports/materiallib/designer/PlasticStructuredRedMaterialSpecifics.qml index 6f28aec6..51fcf0b8 100644 --- a/src/imports/materiallib/designer/PlasticStructuredRedMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/PlasticStructuredRedMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + PlasticStructuredRedMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/ShadowMapSection.qml b/src/imports/materiallib/designer/ShadowMapSection.qml new file mode 100644 index 00000000..d141f6fa --- /dev/null +++ b/src/imports/materiallib/designer/ShadowMapSection.qml @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Quick 3D. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import HelperWidgets 2.0 +import StudioTheme 1.0 as StudioTheme + +Section { + caption: qsTr("Shadow Map") + width: parent.width + + SectionLayout { + PropertyLabel { + text: qsTr("Enabled") + tooltip: qsTr("Specifies if the shadow map is enabled.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.uShadowMappingEnabled.valueToString + backendValue: backendValues.uShadowMappingEnabled + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Texture") + tooltip: qsTr("Defines a texture for shadow map.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.uBakedShadowTexture_texture + defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } +}
\ No newline at end of file diff --git a/src/imports/materiallib/designer/SteelMilledConcentricMaterialSection.qml b/src/imports/materiallib/designer/SteelMilledConcentricMaterialSection.qml index 182b3ade..6b033712 100644 --- a/src/imports/materiallib/designer/SteelMilledConcentricMaterialSection.qml +++ b/src/imports/materiallib/designer/SteelMilledConcentricMaterialSection.qml @@ -28,110 +28,54 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { - id: materialRoot width: parent.width - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 - - Section { - caption: qsTr("Environment Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the environment map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uEnvironmentMappingEnabled.valueToString - backendValue: backendValues.uEnvironmentMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for environment map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uEnvironmentTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - - Section { - caption: qsTr("Shadow Map") - width: parent.width - - SectionLayout { - Label { - text: qsTr("Enabled") - tooltip: qsTr("Specifies if the shadow map is enabled.") - } - SecondColumnLayout { - CheckBox { - text: backendValues.uShadowMappingEnabled.valueToString - backendValue: backendValues.uShadowMappingEnabled - Layout.fillWidth: true - } - } - Label { - text: qsTr("Texture") - tooltip: qsTr("Defines a texture for shadow map.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.uBakedShadowTexture_texture - defaultItem: qsTr("Default") - } - } - } - } - Section { caption: qsTr("General") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Index of Refraction") tooltip: qsTr("Set the index of refraction for the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 2.97 minimumValue: 0.47 + maximumValue: 2.97 decimals: 2 stepSize: 0.1 backendValue: backendValues.material_ior - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Anisotropy") tooltip: qsTr("Set the anisotropy of the material.") } + SecondColumnLayout { SpinBox { - maximumValue: 1 minimumValue: 0.01 + maximumValue: 1 decimals: 2 stepSize: 0.1 backendValue: backendValues.anisotropy - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -140,74 +84,79 @@ Column { caption: qsTr("Textures") width: parent.width - ColumnLayout { - width: parent.width - 16 - ColumnLayout { - width: parent.width - Label { - width: 100 - text: qsTr("Tiling") - tooltip: qsTr("Sets the tiling repeat of the texture maps.") - } + SectionLayout { - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.texture_tiling_x - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } - } - RowLayout { - spacing: materialRoot.labelSpinBoxSpacing - - Label { - text: qsTr("Y") - width: materialRoot.labelWidth - } - SpinBox { - maximumValue: 100 - minimumValue: 1 - decimals: 0 - backendValue: backendValues.texture_tiling_y - Layout.fillWidth: true - Layout.minimumWidth: materialRoot.spinBoxMinimumWidth - } - } + PropertyLabel { + text: qsTr("Tiling") + tooltip: qsTr("Sets the tiling repeat of the texture maps.") } - SectionLayout { - Label { - text: qsTr("Diffuse") - tooltip: qsTr("Defines a texture for diffuse map.") + + SecondColumnLayout { + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.texture_tiling_x + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.diffuse_texture_texture - defaultItem: qsTr("Default") - } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "X" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + minimumValue: 1 + maximumValue: 100 + decimals: 0 + backendValue: backendValues.texture_tiling_y + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - Label { - text: qsTr("Anisotropy") - tooltip: qsTr("Defines a texture for anisotropy map.") + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "Y" } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Diffuse") + tooltip: qsTr("Defines a texture for diffuse map.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.diffuse_texture_texture + defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.anisotropy_rot_texture_texture - defaultItem: qsTr("Default") - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Anisotropy") + tooltip: qsTr("Defines a texture for anisotropy map.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.anisotropy_rot_texture_texture + defaultItem: qsTr("Default") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/materiallib/designer/SteelMilledConcentricMaterialSpecifics.qml b/src/imports/materiallib/designer/SteelMilledConcentricMaterialSpecifics.qml index 2d357149..41bc1547 100644 --- a/src/imports/materiallib/designer/SteelMilledConcentricMaterialSpecifics.qml +++ b/src/imports/materiallib/designer/SteelMilledConcentricMaterialSpecifics.qml @@ -28,12 +28,20 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width + EnvironmentMapSection { + width: parent.width + } + + ShadowMapSection { + width: parent.width + } + SteelMilledConcentricMaterialSection { width: parent.width } diff --git a/src/imports/materiallib/designer/designer.pri b/src/imports/materiallib/designer/designer.pri index 70fb8b27..f054a8ea 100644 --- a/src/imports/materiallib/designer/designer.pri +++ b/src/imports/materiallib/designer/designer.pri @@ -34,7 +34,9 @@ AUX_QML_FILES += \ $$PWD/SteelMilledConcentricMaterialSection.qml \ $$PWD/SteelMilledConcentricMaterialSpecifics.qml \ $$PWD/CustomMaterialSection.qml \ - $$PWD/CustomMaterialSpecifics.qml + $$PWD/CustomMaterialSpecifics.qml \ + $$PWD/EnvironmentMapSection.qml \ + $$PWD/ShadowMapSection.qml AUX_QML_FILES += \ $$PWD/source/custommaterial_template.qml \ diff --git a/src/imports/quick3d/designer/AreaLightSection.qml b/src/imports/quick3d/designer/AreaLightSection.qml index ad5efa55..487d67c2 100644 --- a/src/imports/quick3d/designer/AreaLightSection.qml +++ b/src/imports/quick3d/designer/AreaLightSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,22 +40,27 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Scope") tooltip: qsTr("Sets the scope of the light. Only the node and its children are affected by this light.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Node" - Layout.fillWidth: true backendValue: backendValues.scope + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Brightness") tooltip: qsTr("Sets the strength of the light.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -62,14 +68,18 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.brightness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Width") tooltip: qsTr("Sets the width of the area light's rectangle.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -77,14 +87,18 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.width - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Height") tooltip: qsTr("Sets the height of the area light's rectangle.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -92,37 +106,30 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.height - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Color") - width: parent.width + PropertyLabel { text: qsTr("Color") } - ColorEditor { - caption: qsTr("Color") - backendValue: backendValues.color - supportGradient: false - Layout.fillWidth: true - } - } + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } - Section { - caption: qsTr("Ambient Color") - width: parent.width - ColorEditor { - caption: qsTr("Ambient Color") - backendValue: backendValues.ambientColor - supportGradient: false - Layout.fillWidth: true + PropertyLabel { text: qsTr("Ambient Color") } + + ColorEditor { + backendValue: backendValues.ambientColor + supportGradient: false + } } } ShadowSection { width: parent.width } - } diff --git a/src/imports/quick3d/designer/AreaLightSpecifics.qml b/src/imports/quick3d/designer/AreaLightSpecifics.qml index 2479e02b..aee47ed2 100644 --- a/src/imports/quick3d/designer/AreaLightSpecifics.qml +++ b/src/imports/quick3d/designer/AreaLightSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/BlendingSection.qml b/src/imports/quick3d/designer/BlendingSection.qml index 2f29301b..f6988c3a 100644 --- a/src/imports/quick3d/designer/BlendingSection.qml +++ b/src/imports/quick3d/designer/BlendingSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,25 +40,44 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Source") tooltip: qsTr("Source blending for a pass.") } - ComboBox { - scope: "Blending" - model: ["Unknown", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"] - backendValue: backendValues.srcBlending - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Blending" + model: ["Unknown", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", + "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", + "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", + "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"] + backendValue: backendValues.srcBlending + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Destination") tooltip: qsTr("Destination blending for a pass.") } - ComboBox { - scope: "Blending" - model: ["Unknown", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha"] - backendValue: backendValues.destBlending - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Blending" + model: ["Unknown", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", + "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", + "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", + "ConstantAlpha", "OneMinusConstantAlpha"] + backendValue: backendValues.destBlending + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/BlendingSpecifics.qml b/src/imports/quick3d/designer/BlendingSpecifics.qml index 6e1567f6..824dbd84 100644 --- a/src/imports/quick3d/designer/BlendingSpecifics.qml +++ b/src/imports/quick3d/designer/BlendingSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/BufferBlitSection.qml b/src/imports/quick3d/designer/BufferBlitSection.qml index b5d26831..efb28901 100644 --- a/src/imports/quick3d/designer/BufferBlitSection.qml +++ b/src/imports/quick3d/designer/BufferBlitSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,27 +40,36 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Source") tooltip: qsTr("Source buffer for the buffer blit.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Buffer" - Layout.fillWidth: true backendValue: backendValues.source + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Destination") tooltip: qsTr("Destination buffer for the buffer blit.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Buffer" - Layout.fillWidth: true backendValue: backendValues.destination + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/BufferBlitSpecifics.qml b/src/imports/quick3d/designer/BufferBlitSpecifics.qml index 289c12f0..7c97bbc5 100644 --- a/src/imports/quick3d/designer/BufferBlitSpecifics.qml +++ b/src/imports/quick3d/designer/BufferBlitSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/BufferInputSection.qml b/src/imports/quick3d/designer/BufferInputSection.qml index 421c312d..ec90b1e1 100644 --- a/src/imports/quick3d/designer/BufferInputSection.qml +++ b/src/imports/quick3d/designer/BufferInputSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,27 +40,37 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Buffer") tooltip: qsTr("Input buffer for a pass.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Buffer" - Layout.fillWidth: true backendValue: backendValues.buffer + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Parameter") tooltip: qsTr("Buffer input buffer name in the shader.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.param - Layout.fillWidth: true showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/BufferInputSpecifics.qml b/src/imports/quick3d/designer/BufferInputSpecifics.qml index 7be28461..b4b1e745 100644 --- a/src/imports/quick3d/designer/BufferInputSpecifics.qml +++ b/src/imports/quick3d/designer/BufferInputSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/BufferSection.qml b/src/imports/quick3d/designer/BufferSection.qml index 7bd7d534..726e870e 100644 --- a/src/imports/quick3d/designer/BufferSection.qml +++ b/src/imports/quick3d/designer/BufferSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,66 +40,99 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Name") tooltip: qsTr("Buffer name.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.name - Layout.fillWidth: true showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Format") tooltip: qsTr("Format of the buffer.") } - ComboBox { - scope: "Buffer" - model: ["Unknown", "R8", "R16", "R16F", "R32I", "R32UI", "R32F", "RG8", "RGBA8", "RGB8", "SRGB8", "SRGB8A8", "RGB565", "RGBA16F", "RG16F", "RG32F", "RGB32F", "RGBA32F", "R11G11B10", "RGB9E5", "Depth16", "Depth24", "Depth32", "Depth24Stencil8"] - backendValue: backendValues.format - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Buffer" + model: ["Unknown", "R8", "R16", "R16F", "R32I", "R32UI", "R32F", "RG8", "RGBA8", + "RGB8", "SRGB8", "SRGB8A8", "RGB565", "RGBA16F", "RG16F", "RG32F", + "RGB32F", "RGBA32F", "R11G11B10", "RGB9E5", "Depth16", "Depth24", + "Depth32", "Depth24Stencil8"] + backendValue: backendValues.format + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Filter") tooltip: qsTr("Texture filter for the buffer.") } - ComboBox { - scope: "Buffer" - model: ["Unknown", "Nearest", "Linear"] - backendValue: backendValues.textureFilterOperation - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Buffer" + model: ["Unknown", "Nearest", "Linear"] + backendValue: backendValues.textureFilterOperation + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Coordinate Operation") tooltip: qsTr("Texture coordinate operation for the buffer.") } - ComboBox { - scope: "Buffer" - model: ["Unknown", "ClampToEdge", "MirroredRepeat", "Repeat"] - backendValue: backendValues.textureCoordOperation - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Buffer" + model: ["Unknown", "ClampToEdge", "MirroredRepeat", "Repeat"] + backendValue: backendValues.textureCoordOperation + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Allocation Flags") tooltip: qsTr("Allocation flags for the buffer.") } - ComboBox { - scope: "Buffer" - model: ["None", "SceneLifetime"] - backendValue: backendValues.bufferFlags - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Buffer" + model: ["None", "SceneLifetime"] + backendValue: backendValues.bufferFlags + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Size Multiplier") tooltip: qsTr("Defines the size multiplier for the buffer.") } + SecondColumnLayout { SpinBox { maximumValue: 10000 @@ -106,8 +140,11 @@ Column { decimals: 2 realDragRange: 30 backendValue: backendValues.sizeMultiplier - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/BufferSpecifics.qml b/src/imports/quick3d/designer/BufferSpecifics.qml index be0b16b2..ba81332c 100644 --- a/src/imports/quick3d/designer/BufferSpecifics.qml +++ b/src/imports/quick3d/designer/BufferSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/CullModeSection.qml b/src/imports/quick3d/designer/CullModeSection.qml index e3de29ca..ae616a6d 100644 --- a/src/imports/quick3d/designer/CullModeSection.qml +++ b/src/imports/quick3d/designer/CullModeSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,15 +40,21 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Mode") tooltip: qsTr("Cull mode for a pass.") } - ComboBox { - scope: "Material" - model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] - backendValue: backendValues.cullMode - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Material" + model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] + backendValue: backendValues.cullMode + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/CullModeSpecifics.qml b/src/imports/quick3d/designer/CullModeSpecifics.qml index 6a22c0d1..2aaa54d9 100644 --- a/src/imports/quick3d/designer/CullModeSpecifics.qml +++ b/src/imports/quick3d/designer/CullModeSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/CustomCameraSection.qml b/src/imports/quick3d/designer/CustomCameraSection.qml index 4acb2057..7e7d449c 100644 --- a/src/imports/quick3d/designer/CustomCameraSection.qml +++ b/src/imports/quick3d/designer/CustomCameraSection.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Section { caption: qsTr("Custom Camera") diff --git a/src/imports/quick3d/designer/CustomCameraSpecifics.qml b/src/imports/quick3d/designer/CustomCameraSpecifics.qml index 15f2ed69..820b5131 100644 --- a/src/imports/quick3d/designer/CustomCameraSpecifics.qml +++ b/src/imports/quick3d/designer/CustomCameraSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/DefaultMaterialSection.qml b/src/imports/quick3d/designer/DefaultMaterialSection.qml index 8af86f44..e7d385c7 100644 --- a/src/imports/quick3d/designer/DefaultMaterialSection.qml +++ b/src/imports/quick3d/designer/DefaultMaterialSection.qml @@ -26,9 +26,11 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -36,37 +38,56 @@ Column { Section { caption: qsTr("Default Material") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Lighting") tooltip: qsTr("Defines which lighting method is used when generating this material.") } - ComboBox { - scope: "DefaultMaterial" - model: ["NoLighting", "FragmentLighting"] - backendValue: backendValues.lighting - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "DefaultMaterial" + model: ["NoLighting", "FragmentLighting"] + backendValue: backendValues.lighting + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Blend Mode") tooltip: qsTr("Determines how the colors of the model rendered blend with those behind it.") } - ComboBox { - scope: "DefaultMaterial" - model: ["SourceOver", "Screen", "Multiply", "Overlay", "ColorBurn", "ColorDodge"] - backendValue: backendValues.blendMode - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "DefaultMaterial" + model: ["SourceOver", "Screen", "Multiply", "Overlay", "ColorBurn", "ColorDodge"] + backendValue: backendValues.blendMode + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Enable Vertex Colors") tooltip: qsTr("Enables the use of vertex colors from the mesh.") } + SecondColumnLayout { CheckBox { text: backendValues.vertexColorsEnabled.valueToString backendValue: backendValues.vertexColorsEnabled - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -74,26 +95,29 @@ Column { Section { caption: qsTr("Diffuse") width: parent.width - Column { - width: parent.width + + SectionLayout { + PropertyLabel { text: qsTr("Diffuse Color") } + ColorEditor { - caption: qsTr("Diffuse Color") backendValue: backendValues.diffuseColor supportGradient: false - Layout.fillWidth: true } - SectionLayout { - Label { - text: qsTr("Diffuse Map") - tooltip: qsTr("Defines a texture to apply to the material.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.diffuseMap - } + + PropertyLabel { + text: qsTr("Diffuse Map") + tooltip: qsTr("Defines a texture to apply to the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.diffuseMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -101,40 +125,48 @@ Column { Section { caption: qsTr("Emissive") width: parent.width - Column { - width: parent.width + + SectionLayout { + PropertyLabel { text: qsTr("Emissive Color") } + ColorEditor { - caption: qsTr("Emissive Color") backendValue: backendValues.emissiveColor supportGradient: false - Layout.fillWidth: true } - SectionLayout { - Label { - text: qsTr("Emissive Factor") - tooltip: qsTr("Determines the amount of self-illumination from the material (will not light other objects).") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.emissiveFactor - Layout.fillWidth: true - } - } - Label { - text: qsTr("Emissive Map") - tooltip: qsTr("Sets a texture to be used to set the emissive factor for different parts of the material.") + + PropertyLabel { + text: qsTr("Emissive Factor") + tooltip: qsTr("Determines the amount of self-illumination from the material (will not light other objects).") + } + + SecondColumnLayout { + SpinBox { + maximumValue: 1 + minimumValue: 0 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.emissiveFactor + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.emissiveMap - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Emissive Map") + tooltip: qsTr("Sets a texture to be used to set the emissive factor for different parts of the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.emissiveMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -142,114 +174,153 @@ Column { Section { caption: qsTr("Specular") width: parent.width - Column { - width: parent.width + + SectionLayout { + PropertyLabel { text: qsTr("Specular Tint") } + ColorEditor { - caption: qsTr("Specular Tint") backendValue: backendValues.specularTint supportGradient: false - Layout.fillWidth: true } - SectionLayout { - Label { - text: qsTr("Specular Amount") - tooltip: qsTr("Controls the strength of specularity (highlights and reflections).") - } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.specularAmount - Layout.fillWidth: true - } - } - Label { - text: qsTr("Specular Map") - tooltip: qsTr("Defines a RGB texture to modulate the amount and the color of specularity across the surface of the material.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.specularMap - } + PropertyLabel { + text: qsTr("Specular Amount") + tooltip: qsTr("Controls the strength of specularity (highlights and reflections).") + } + + SecondColumnLayout { + SpinBox { + maximumValue: 1 + minimumValue: 0 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.specularAmount + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - Label { - text: qsTr("Specular Model") - tooltip: qsTr("Determines which functions are used to calculate specular highlights for lights in the scene.") + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Specular Map") + tooltip: qsTr("Defines a RGB texture to modulate the amount and the color of specularity across the surface of the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.specularMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Specular Model") + tooltip: qsTr("Determines which functions are used to calculate specular highlights for lights in the scene.") + } + + SecondColumnLayout { ComboBox { scope: "DefaultMaterial" model: ["Default", "KGGX", "KWard"] backendValue: backendValues.specularModel - Layout.fillWidth: true - } - Label { - text: qsTr("Reflection Map") - tooltip: qsTr("Sets a texture used for specular highlights on the material.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.specularReflectionMap - } - } - Label { - text: qsTr("Index of Refraction") - tooltip: qsTr("Controls what angles of reflections are affected by the Fresnel power.") - } - SecondColumnLayout { - SpinBox { - maximumValue: 3 - minimumValue: 1 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.indexOfRefraction - Layout.fillWidth: true - } - } - Label { - text: qsTr("Fresnel Power") - tooltip: qsTr("Decreases head-on reflections (looking directly at the surface) while maintaining reflections seen at grazing angles.") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 9999999 - minimumValue: -9999999 - realDragRange: 5000 - decimals: 2 - backendValue: backendValues.fresnelPower - Layout.fillWidth: true - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Reflection Map") + tooltip: qsTr("Sets a texture used for specular highlights on the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.specularReflectionMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - Label { - text: qsTr("Specular Roughness") - tooltip: qsTr("Controls the size of the specular highlight generated from lights and the clarity of reflections in general.") + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Index of Refraction") + tooltip: qsTr("Controls what angles of reflections are affected by the Fresnel power.") + } + + SecondColumnLayout { + SpinBox { + maximumValue: 3 + minimumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.indexOfRefraction + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - SpinBox { - maximumValue: 1 - minimumValue: 0.001 - decimals: 3 - backendValue: backendValues.specularRoughness - Layout.fillWidth: true - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fresnel Power") + tooltip: qsTr("Decreases head-on reflections (looking directly at the surface) while maintaining reflections seen at grazing angles.") + } + + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + realDragRange: 5000 + decimals: 2 + backendValue: backendValues.fresnelPower + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - Label { - text: qsTr("Roughness Map") - tooltip: qsTr("Defines a texture to control the specular roughness of the material.") + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Specular Roughness") + tooltip: qsTr("Controls the size of the specular highlight generated from lights and the clarity of reflections in general.") + } + + SecondColumnLayout { + SpinBox { + maximumValue: 1 + minimumValue: 0.001 + decimals: 3 + backendValue: backendValues.specularRoughness + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.roughnessMap - } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Roughness Map") + tooltip: qsTr("Defines a texture to control the specular roughness of the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.roughnessMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -257,11 +328,13 @@ Column { Section { caption: qsTr("Opacity") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Opacity") tooltip: qsTr("Sets the visibility of the geometry for this material.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -269,19 +342,27 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.opacity - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Opacity Map") tooltip: qsTr("Defines a texture used to control the opacity differently for different parts of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.opacityMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -289,11 +370,13 @@ Column { Section { caption: qsTr("Bump/Normal") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Bump Amount") tooltip: qsTr("Controls the amount of simulated displacement for the bump map or normal map.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -301,48 +384,61 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.bumpAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Bump Map") tooltip: qsTr("Defines a grayscale texture to simulate fine geometry displacement across the surface of the material.") } + SecondColumnLayout { IdComboBox { id: bumpMapComboBox typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.bumpMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth Connections { target: normalMapComboBox.backendValue - onExpressionChanged: { + function onExpressionChanged() { if (normalMapComboBox.backendValue.expression !== "") bumpMapComboBox.backendValue.resetValue() } } } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Normal Map") tooltip: qsTr("Defines a RGB image used to simulate fine geometry displacement across the surface of the material.") } + SecondColumnLayout { IdComboBox { id: normalMapComboBox typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.normalMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth Connections { target: bumpMapComboBox.backendValue - onExpressionChanged: { + function onExpressionChanged() { if (bumpMapComboBox.backendValue.expression !== "") normalMapComboBox.backendValue.resetValue() } } } + + ExpandingSpacer {} } } } @@ -350,11 +446,13 @@ Column { Section { caption: qsTr("Translucency") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Translucency Falloff") tooltip: qsTr("Defines the amount of falloff for the translucency based on the angle of the normals of the object to the light source.") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -362,13 +460,18 @@ Column { realDragRange: 5000 decimals: 2 backendValue: backendValues.translucentFalloff - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Diffuse Light Wrap") tooltip: qsTr("Determines the amount of light wrap for the translucency map.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -376,19 +479,27 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.diffuseLightWrap - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Translucency Map") tooltip: qsTr("Defines a grayscale texture controlling how much light can pass through the material from behind.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.translucencyMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/DefaultMaterialSpecifics.qml b/src/imports/quick3d/designer/DefaultMaterialSpecifics.qml index 632c733d..b0fb9cdc 100644 --- a/src/imports/quick3d/designer/DefaultMaterialSpecifics.qml +++ b/src/imports/quick3d/designer/DefaultMaterialSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/DepthInputSection.qml b/src/imports/quick3d/designer/DepthInputSection.qml index 3811eae7..ad12773b 100644 --- a/src/imports/quick3d/designer/DepthInputSection.qml +++ b/src/imports/quick3d/designer/DepthInputSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,16 +40,21 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Parameter") tooltip: qsTr("Depth input texture name in the shader.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.param - Layout.fillWidth: true showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/DepthInputSpecifics.qml b/src/imports/quick3d/designer/DepthInputSpecifics.qml index 1cdcb4df..e025eff7 100644 --- a/src/imports/quick3d/designer/DepthInputSpecifics.qml +++ b/src/imports/quick3d/designer/DepthInputSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/DirectionalLightSection.qml b/src/imports/quick3d/designer/DirectionalLightSection.qml index b378167b..5441b19d 100644 --- a/src/imports/quick3d/designer/DirectionalLightSection.qml +++ b/src/imports/quick3d/designer/DirectionalLightSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,21 +40,27 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Scope") tooltip: qsTr("Sets the scope of the light. Only the node and its children are affected by this light.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Node" - Layout.fillWidth: true backendValue: backendValues.scope + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Brightness") tooltip: qsTr("Sets the strength of the light.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -61,32 +68,26 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.brightness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Color") - width: parent.width + PropertyLabel { text: qsTr("Color") } - ColorEditor { - caption: qsTr("Color") - backendValue: backendValues.color - supportGradient: false - Layout.fillWidth: true - } - } + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } - Section { - caption: qsTr("Ambient Color") - width: parent.width - ColorEditor { - caption: qsTr("Ambient Color") - backendValue: backendValues.ambientColor - supportGradient: false - Layout.fillWidth: true + PropertyLabel { text: qsTr("Ambient Color") } + + ColorEditor { + backendValue: backendValues.ambientColor + supportGradient: false + } } } diff --git a/src/imports/quick3d/designer/DirectionalLightSpecifics.qml b/src/imports/quick3d/designer/DirectionalLightSpecifics.qml index b1df0b36..4cbd9d8d 100644 --- a/src/imports/quick3d/designer/DirectionalLightSpecifics.qml +++ b/src/imports/quick3d/designer/DirectionalLightSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/FrustumCameraSection.qml b/src/imports/quick3d/designer/FrustumCameraSection.qml index 4b290ef4..a746edf9 100644 --- a/src/imports/quick3d/designer/FrustumCameraSection.qml +++ b/src/imports/quick3d/designer/FrustumCameraSection.qml @@ -28,17 +28,19 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Frustum Camera") SectionLayout { - Label { + PropertyLabel { text: qsTr("Top") tooltip: qsTr("Sets the top plane of the camera view frustum.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -46,13 +48,18 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.top - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Bottom") tooltip: qsTr("Sets the bottom plane of the camera view frustum.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -60,13 +67,18 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.bottom - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Right") tooltip: qsTr("Sets the right plane of the camera view frustum.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -74,13 +86,18 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.right - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Left") tooltip: qsTr("Sets the left plane of the camera view frustum.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -88,8 +105,11 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.left - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/FrustumCameraSpecifics.qml b/src/imports/quick3d/designer/FrustumCameraSpecifics.qml index 55366944..d7605581 100644 --- a/src/imports/quick3d/designer/FrustumCameraSpecifics.qml +++ b/src/imports/quick3d/designer/FrustumCameraSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/IdComboBox.qml b/src/imports/quick3d/designer/IdComboBox.qml index 1d34d73c..c090e303 100644 --- a/src/imports/quick3d/designer/IdComboBox.qml +++ b/src/imports/quick3d/designer/IdComboBox.qml @@ -59,7 +59,7 @@ ComboBox { comboBox.setCurrentText(comboBox.textValue) } onModelChanged: comboBox.setCurrentText(comboBox.textValue) - onCompressedActivated: comboBox.handleActivate(index) + onCompressedActivated: function(index, reason) { comboBox.handleActivate(index) } Component.onCompleted: comboBox.setCurrentText(comboBox.textValue) onEditTextChanged: { diff --git a/src/imports/quick3d/designer/MaterialSection.qml b/src/imports/quick3d/designer/MaterialSection.qml index 67441fe6..32e1f44e 100644 --- a/src/imports/quick3d/designer/MaterialSection.qml +++ b/src/imports/quick3d/designer/MaterialSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Material") @@ -43,34 +44,43 @@ Section { // ### iblProbe override - Label { + PropertyLabel { text: qsTr("Light Probe") tooltip: qsTr("Defines a texture for overriding or setting an image based lighting texture for use with this material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.lightProbe + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Displacement Map") tooltip: qsTr("Defines a grayscale image used to offset the vertices of geometry across the surface of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.displacementMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Displacement Amount") tooltip: qsTr("Controls the offset amount for the displacement map.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -78,19 +88,28 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.displacementAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Culling Mode") tooltip: qsTr("Defines whether culling is enabled and which mode is actually enabled.") } - ComboBox { - scope: "Material" - model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] - backendValue: backendValues.cullMode - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Material" + model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] + backendValue: backendValues.cullMode + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/ModelSection.qml b/src/imports/quick3d/designer/ModelSection.qml index 77ec3261..f04af25d 100644 --- a/src/imports/quick3d/designer/ModelSection.qml +++ b/src/imports/quick3d/designer/ModelSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Model") @@ -37,15 +38,18 @@ Section { SectionLayout { id: tessellationSection - Label { + PropertyLabel { text: qsTr("Source") tooltip: qsTr("Defines the location of the mesh file containing the geometry of this model.") } + SecondColumnLayout { UrlChooser { backendValue: backendValues.source filter: "*.mesh" } + + ExpandingSpacer {} } function hasTessellationMode(mode) { @@ -60,100 +64,130 @@ Section { return true } - Label { + PropertyLabel { text: qsTr("Tessellation Mode") tooltip: qsTr("Defines what method to use to dynamically generate additional geometry for the model.") } + SecondColumnLayout { ComboBox { id: tessellationModeComboBox scope: "Model" model: ["NoTessellation", "Linear", "Phong", "NPatch"] backendValue: backendValues.tessellationMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Edge Tessellation") tooltip: qsTr("Defines the edge multiplier to the tessellation generator.") } + SecondColumnLayout { SpinBox { maximumValue: 64.0 minimumValue: 0.0 decimals: 0 backendValue: backendValues.edgeTessellation - Layout.fillWidth: true enabled: !tessellationSection.hasTessellationMode("NoTessellation") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Inner Tessellation") tooltip: qsTr("Defines the inner multiplier to the tessellation generator.") } + SecondColumnLayout { SpinBox { maximumValue: 64.0 minimumValue: 0.0 decimals: 0 backendValue: backendValues.innerTessellation - Layout.fillWidth: true enabled: !tessellationSection.hasTessellationMode("NoTessellation") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Enable Wireframe Mode") tooltip: qsTr("Enables the wireframe mode if tesselation is enabled.") } + SecondColumnLayout { CheckBox { text: backendValues.isWireframeMode.valueToString backendValue: backendValues.isWireframeMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Casts Shadows") tooltip: qsTr("Enables the geometry of this model to be rendered to the shadow maps.") } + SecondColumnLayout { CheckBox { text: backendValues.castsShadows.valueToString backendValue: backendValues.castsShadows - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Receives Shadows") tooltip: qsTr("Enables the geometry of this model to receive shadows.") } + SecondColumnLayout { CheckBox { text: backendValues.receivesShadows.valueToString backendValue: backendValues.receivesShadows - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Pickable") tooltip: qsTr("Controls whether the model is pickable or not.") } + SecondColumnLayout { CheckBox { text: backendValues.pickable.valueToString backendValue: backendValues.pickable - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Materials") } + SecondColumnLayout { EditableListView { backendValue: backendValues.materials @@ -164,6 +198,8 @@ Section { onRemove: function(idx) { backendValues.materials.idListRemove(idx) } onReplace: function (idx, value) { backendValues.materials.idListReplace(idx, value) } } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/ModelSpecifics.qml b/src/imports/quick3d/designer/ModelSpecifics.qml index 2f7f80ba..7713d307 100644 --- a/src/imports/quick3d/designer/ModelSpecifics.qml +++ b/src/imports/quick3d/designer/ModelSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/NodeSection.qml b/src/imports/quick3d/designer/NodeSection.qml index c9569638..8a90353d 100644 --- a/src/imports/quick3d/designer/NodeSection.qml +++ b/src/imports/quick3d/designer/NodeSection.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 import StudioTheme 1.0 as StudioTheme Column { @@ -40,34 +40,42 @@ Column { caption: qsTr("Node") SectionLayout { - - Label { + PropertyLabel { text: qsTr("Opacity") tooltip: qsTr("Controls the local opacity value of the node.") } - // ### should be a slider - SpinBox { - minimumValue: 0 - maximumValue: 1 - decimals: 2 - stepSize: 0.1 - backendValue: backendValues.opacity - Layout.fillWidth: true - sliderIndicatorVisible: true + SecondColumnLayout { + // ### should be a slider + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + minimumValue: 0 + maximumValue: 1 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.opacity + sliderIndicatorVisible: true + } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Visibility") tooltip: qsTr("Sets the local visibility of the node.") } + SecondColumnLayout { // ### should be a slider CheckBox { text: qsTr("Is Visible") backendValue: backendValues.visible - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -77,274 +85,292 @@ Column { width: parent.width caption: qsTr("Transform") - property int labelWidth: 10 - property int labelSpinBoxSpacing: 0 - property int spinBoxMinimumWidth: 120 + ColumnLayout { + spacing: StudioTheme.Values.transform3DSectionSpacing - GridLayout { - columns: 2 - rows: 2 - columnSpacing: 24 - rowSpacing: 12 - width: parent.width - 16 - - ColumnLayout { - - Label { - width: 100 + SectionLayout { + PropertyLabel { text: qsTr("Translation") tooltip: qsTr("Sets the translation of the node.") } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.x - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisYColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.y - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Z") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisZColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.z - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} } } - ColumnLayout { - - Label { - width: 100 + SectionLayout { + PropertyLabel { text: qsTr("Rotation") tooltip: qsTr("Sets the rotation of the node in degrees.") } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.eulerRotation_x - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisYColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.eulerRotation_y - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Z") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisZColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.eulerRotation_z - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} } } - ColumnLayout { - - Label { + SectionLayout { + PropertyLabel { text: qsTr("Scale") tooltip: qsTr("Sets the scale of the node.") } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 50 decimals: 2 - stepSize: 0.1 backendValue: backendValues.scale_x - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisYColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 50 decimals: 2 - stepSize: 0.1 backendValue: backendValues.scale_y - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Z") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisZColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 50 decimals: 2 - stepSize: 0.1 backendValue: backendValues.scale_z - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} } } - ColumnLayout { - - Label { + SectionLayout { + PropertyLabel { text: qsTr("Pivot") tooltip: qsTr("Sets the pivot of the node.") } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - - Label { - text: qsTr("X") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisXColor - } + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.pivot_x - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Y") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisYColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "X" + color: StudioTheme.Values.theme3DAxisXColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.pivot_y - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } - } - RowLayout { - spacing: transformSection.labelSpinBoxSpacing - Label { - text: qsTr("Z") - width: transformSection.labelWidth - color: StudioTheme.Values.theme3DAxisZColor + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Y" + color: StudioTheme.Values.theme3DAxisYColor } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 - realDragRange: 5000 decimals: 2 backendValue: backendValues.pivot_z - Layout.fillWidth: true - Layout.minimumWidth: transformSection.spinBoxMinimumWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "Z" + color: StudioTheme.Values.theme3DAxisZColor + } + + ExpandingSpacer {} } } - } } } diff --git a/src/imports/quick3d/designer/NodeSpecifics.qml b/src/imports/quick3d/designer/NodeSpecifics.qml index 124e6af9..d503a54d 100644 --- a/src/imports/quick3d/designer/NodeSpecifics.qml +++ b/src/imports/quick3d/designer/NodeSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/Object3DSection.qml b/src/imports/quick3d/designer/Object3DSection.qml index d708a097..55bb6886 100644 --- a/src/imports/quick3d/designer/Object3DSection.qml +++ b/src/imports/quick3d/designer/Object3DSection.qml @@ -28,10 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Section { caption: qsTr("Object") - } diff --git a/src/imports/quick3d/designer/OrthographicCameraSection.qml b/src/imports/quick3d/designer/OrthographicCameraSection.qml index d6504298..d9d7a443 100644 --- a/src/imports/quick3d/designer/OrthographicCameraSection.qml +++ b/src/imports/quick3d/designer/OrthographicCameraSection.qml @@ -28,17 +28,19 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Orthographic Camera") SectionLayout { - Label { + PropertyLabel { text: qsTr("Clip Near") tooltip: qsTr("Sets the near value of the camera view frustum.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -46,14 +48,18 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.clipNear - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Clip Far") tooltip: qsTr("Sets the far value of the camera view frustum.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -62,8 +68,11 @@ Section { decimals: 0 stepSize: 100 backendValue: backendValues.clipFar - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/OrthographicCameraSpecifics.qml b/src/imports/quick3d/designer/OrthographicCameraSpecifics.qml index 3cd98e0d..6444330e 100644 --- a/src/imports/quick3d/designer/OrthographicCameraSpecifics.qml +++ b/src/imports/quick3d/designer/OrthographicCameraSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/PassSection.qml b/src/imports/quick3d/designer/PassSection.qml index da4109b9..b87d263a 100644 --- a/src/imports/quick3d/designer/PassSection.qml +++ b/src/imports/quick3d/designer/PassSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,10 +40,13 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Commands") tooltip: qsTr("Render commands of the pass.") + Layout.alignment: Qt.AlignTop + Layout.topMargin: 5 } + SecondColumnLayout { EditableListView { backendValue: backendValues.commands @@ -54,22 +58,33 @@ Column { onRemove: function(idx) { backendValues.commands.idListRemove(idx) } onReplace: function (idx, value) { backendValues.commands.idListReplace(idx, value) } } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Buffer") tooltip: qsTr("Output buffer for the pass.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Buffer" - Layout.fillWidth: true backendValue: backendValues.output + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Shaders") tooltip: qsTr("Shaders for the pass.") + Layout.alignment: Qt.AlignTop + Layout.topMargin: 5 } + SecondColumnLayout { EditableListView { backendValue: backendValues.shaders @@ -81,6 +96,8 @@ Column { onRemove: function(idx) { backendValues.shaders.idListRemove(idx) } onReplace: function (idx, value) { backendValues.shaders.idListReplace(idx, value) } } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/PassSpecifics.qml b/src/imports/quick3d/designer/PassSpecifics.qml index 2a59fb0b..f0ac1b31 100644 --- a/src/imports/quick3d/designer/PassSpecifics.qml +++ b/src/imports/quick3d/designer/PassSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/PerspectiveCameraSection.qml b/src/imports/quick3d/designer/PerspectiveCameraSection.qml index 153686d5..9cd3a248 100644 --- a/src/imports/quick3d/designer/PerspectiveCameraSection.qml +++ b/src/imports/quick3d/designer/PerspectiveCameraSection.qml @@ -28,17 +28,19 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Perspective Camera") SectionLayout { - Label { + PropertyLabel { text: qsTr("Clip Near") tooltip: qsTr("Sets the near value of the view frustum of the camera.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -46,14 +48,18 @@ Section { realDragRange: 5000 decimals: 0 backendValue: backendValues.clipNear - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Clip Far") tooltip: qsTr("Sets the far value of the view frustum of the camera.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -62,33 +68,46 @@ Section { decimals: 0 stepSize: 100 backendValue: backendValues.clipFar - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Field of View") tooltip: qsTr("Sets the field of view of the camera in degrees.") } + SecondColumnLayout { SpinBox { maximumValue: 1 minimumValue: 180 decimals: 2 backendValue: backendValues.fieldOfView - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("FOV Orientation") tooltip: qsTr("Determines if the field of view property reflects the vertical or the horizontal field of view.") } - ComboBox { - scope: "PerspectiveCamera" - model: ["Vertical", "Horizontal"] - backendValue: backendValues.fieldOfViewOrientation - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "PerspectiveCamera" + model: ["Vertical", "Horizontal"] + backendValue: backendValues.fieldOfViewOrientation + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/PerspectiveCameraSpecifics.qml b/src/imports/quick3d/designer/PerspectiveCameraSpecifics.qml index db48c589..8e1787e0 100644 --- a/src/imports/quick3d/designer/PerspectiveCameraSpecifics.qml +++ b/src/imports/quick3d/designer/PerspectiveCameraSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/PointLightSection.qml b/src/imports/quick3d/designer/PointLightSection.qml index dd50ef0e..df08824b 100644 --- a/src/imports/quick3d/designer/PointLightSection.qml +++ b/src/imports/quick3d/designer/PointLightSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,21 +40,27 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Scope") tooltip: qsTr("Sets the scope of the light. Only the node and its children are affected by this light.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Node" - Layout.fillWidth: true backendValue: backendValues.scope + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Brightness") tooltip: qsTr("Sets the strength of the light.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -61,14 +68,18 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.brightness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Constant Fade") tooltip: qsTr("Sets the constant attenuation of the light.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -76,14 +87,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.constantFade - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Linear Fade") tooltip: qsTr("Sets the linear attenuation of the light.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -91,14 +106,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.linearFade - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Quadratic Fade") tooltip: qsTr("Sets the quadratic attenuation of the light.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -106,37 +125,30 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.quadraticFade - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Color") - width: parent.width + PropertyLabel { text: qsTr("Color") } - ColorEditor { - caption: qsTr("Color") - backendValue: backendValues.color - supportGradient: false - Layout.fillWidth: true - } - } + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } - Section { - caption: qsTr("Ambient Color") - width: parent.width - ColorEditor { - caption: qsTr("Ambient Color") - backendValue: backendValues.ambientColor - supportGradient: false - Layout.fillWidth: true + PropertyLabel { text: qsTr("Ambient Color") } + + ColorEditor { + backendValue: backendValues.ambientColor + supportGradient: false + } } } ShadowSection { width: parent.width } - } diff --git a/src/imports/quick3d/designer/PointLightSpecifics.qml b/src/imports/quick3d/designer/PointLightSpecifics.qml index d765e889..97989dc6 100644 --- a/src/imports/quick3d/designer/PointLightSpecifics.qml +++ b/src/imports/quick3d/designer/PointLightSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/PrincipledMaterialSection.qml b/src/imports/quick3d/designer/PrincipledMaterialSection.qml index c218a8c1..562d3a26 100644 --- a/src/imports/quick3d/designer/PrincipledMaterialSection.qml +++ b/src/imports/quick3d/designer/PrincipledMaterialSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,23 +40,28 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Alpha Mode") tooltip: qsTr("Sets the mode for how the alpha channel of material color is used.") } + SecondColumnLayout { ComboBox { scope: "PrincipledMaterial" model: ["Opaque", "Mask", "Blend"] backendValue: backendValues.alphaMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Alpha Cutoff") tooltip: qsTr("Specifies the cutoff value when using the Mask alphaMode.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -63,27 +69,35 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.alphaCutoff - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Blend Mode") tooltip: qsTr("Determines how the colors of the model rendered blend with those behind it.") } + SecondColumnLayout { ComboBox { scope: "PrincipledMaterial" model: ["SourceOver", "Screen", "Multiply", "Overlay", "ColorBurn", "ColorDodge"] backendValue: backendValues.blendMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Index Of Refraction") tooltip: qsTr("Controls how fast light travels through the material.") } + SecondColumnLayout { SpinBox { minimumValue: 1 @@ -91,21 +105,28 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.indexOfRefraction - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Lighting") tooltip: qsTr("Defines which lighting method is used when generating this material.") } + SecondColumnLayout { ComboBox { scope: "PrincipledMaterial" model: ["NoLighting", "FragmentLighting"] backendValue: backendValues.lighting - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -113,11 +134,13 @@ Column { Section { caption: qsTr("Metalness") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Metalness") tooltip: qsTr("Defines the metalness of the the material.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -125,33 +148,44 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.metalness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Metalness Map") tooltip: qsTr("Sets a texture to be used to set the metalness amount for the different parts of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.metalnessMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Metalness Channel") tooltip: qsTr("Defines the texture channel used to read the metalness value from metalnessMap.") } + SecondColumnLayout { ComboBox { scope: "Material" model: ["R", "G", "B", "A"] backendValue: backendValues.metalnessChannel - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -159,23 +193,29 @@ Column { Section { caption: qsTr("Normal") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Normal Map") tooltip: qsTr("Defines an RGB image used to simulate fine geometry displacement across the surface of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.normalMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Normal Strength") tooltip: qsTr("Controls the amount of simulated displacement for the normalMap.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -183,8 +223,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.normalStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -192,11 +235,13 @@ Column { Section { caption: qsTr("Occlusion") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Occlusion Amount") tooltip: qsTr("Contains the factor used to modify the values from the occlusionMap texture.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -204,33 +249,44 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.occlusionAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Occlusion Map") tooltip: qsTr("Defines a texture used to determine how much indirect light the different areas of the material should receive.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.occlusionMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Occlusion Channel") tooltip: qsTr("Defines the texture channel used to read the occlusion value from occlusionMap.") } + SecondColumnLayout { ComboBox { scope: "Material" model: ["R", "G", "B", "A"] backendValue: backendValues.occlusionChannel - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -238,11 +294,13 @@ Column { Section { caption: qsTr("Opacity") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Opacity") tooltip: qsTr("Drops the opacity of just this material, separate from the model.") } + SecondColumnLayout { SpinBox { maximumValue: 1 @@ -250,33 +308,44 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.opacity - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Opacity Map") tooltip: qsTr("Defines a texture used to control the opacity differently for different parts of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.opacityMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Opacity Channel") tooltip: qsTr("Defines the texture channel used to read the opacity value from opacityMap.") } + SecondColumnLayout { ComboBox { scope: "Material" model: ["R", "G", "B", "A"] backendValue: backendValues.opacityChannel - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -284,11 +353,13 @@ Column { Section { caption: qsTr("Roughness") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Roughness") tooltip: qsTr("Controls the size of the specular highlight generated from lights, and the clarity of reflections in general.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -296,33 +367,44 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.roughness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Roughness Map") tooltip: qsTr("Defines a texture to control the specular roughness of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.roughnessMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Roughness Channel") tooltip: qsTr("Defines the texture channel used to read the roughness value from roughnessMap.") } + SecondColumnLayout { ComboBox { scope: "Material" model: ["R", "G", "B", "A"] backendValue: backendValues.roughnessChannel - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -330,11 +412,13 @@ Column { Section { caption: qsTr("Specular") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Specular Amount") tooltip: qsTr("Controls the strength of specularity (highlights and reflections).") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -342,38 +426,50 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.specularAmount - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Specular Map") tooltip: qsTr("Defines a RGB Texture to modulate the amount and the color of specularity across the surface of the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.specularMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Specular Reflection Map") tooltip: qsTr("Sets a texture used for specular highlights on the material.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.specularReflectionMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Specular Tint") tooltip: qsTr("Defines how much of the base color contributes to the specular reflections.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -381,8 +477,11 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.specularTint - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -391,56 +490,59 @@ Column { caption: qsTr("Base Color") width: parent.width - Column { - width: parent.width + SectionLayout { + PropertyLabel { text: qsTr("Base Color") } ColorEditor { - caption: qsTr("Base Color") backendValue: backendValues.baseColor supportGradient: false - Layout.fillWidth: true } - SectionLayout { - Label { - text: qsTr("Base Color Map") - tooltip: qsTr("Defines a texture used to set the base color of the material.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.baseColorMap - } + + PropertyLabel { + text: qsTr("Base Color Map") + tooltip: qsTr("Defines a texture used to set the base color of the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + backendValue: backendValues.baseColorMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } Section { - caption: qsTr("Emissive Color") + caption: qsTr("Emissive") width: parent.width - Column { - width: parent.width + SectionLayout { + PropertyLabel { text: qsTr("Emissive Color") } ColorEditor { - caption: qsTr("Emissive Color") backendValue: backendValues.emissiveColor supportGradient: false - Layout.fillWidth: true } - SectionLayout { - Label { - text: qsTr("Emissive Map") - tooltip: qsTr("Sets a texture to be used to set the emissive factor for different parts of the material.") - } - SecondColumnLayout { - IdComboBox { - typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true - backendValue: backendValues.emissiveMap - } + + PropertyLabel { + text: qsTr("Emissive Map") + tooltip: qsTr("Sets a texture to be used to set the emissive factor for different parts of the material.") + } + + SecondColumnLayout { + IdComboBox { + typeFilter: "QtQuick3D.Texture" + Layout.fillWidth: true + backendValue: backendValues.emissiveMap + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/PrincipledMaterialSpecifics.qml b/src/imports/quick3d/designer/PrincipledMaterialSpecifics.qml index 8bf490c8..0ab597c3 100644 --- a/src/imports/quick3d/designer/PrincipledMaterialSpecifics.qml +++ b/src/imports/quick3d/designer/PrincipledMaterialSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/RenderStateSection.qml b/src/imports/quick3d/designer/RenderStateSection.qml index 2d8f28ce..ac1f132e 100644 --- a/src/imports/quick3d/designer/RenderStateSection.qml +++ b/src/imports/quick3d/designer/RenderStateSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,26 +40,38 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("State") tooltip: qsTr("Render state to set for a pass.") } - ComboBox { - scope: "RenderState" - model: ["Unknown", "Blend", "CullFace", "DepthTest", "StencilTest", "ScissorTest", "DepthWrite", "Multisample"] - backendValue: backendValues.renderState - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "RenderState" + model: ["Unknown", "Blend", "CullFace", "DepthTest", "StencilTest", + "ScissorTest", "DepthWrite", "Multisample"] + backendValue: backendValues.renderState + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Enabled") tooltip: qsTr("Render state enable state.") } + SecondColumnLayout { CheckBox { text: backendValues.enabled.valueToString backendValue: backendValues.enabled - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/RenderStateSpecifics.qml b/src/imports/quick3d/designer/RenderStateSpecifics.qml index 23ce2c13..f0b7fbed 100644 --- a/src/imports/quick3d/designer/RenderStateSpecifics.qml +++ b/src/imports/quick3d/designer/RenderStateSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/SceneEnvironmentSection.qml b/src/imports/quick3d/designer/SceneEnvironmentSection.qml index eae40e4e..6be38bcb 100644 --- a/src/imports/quick3d/designer/SceneEnvironmentSection.qml +++ b/src/imports/quick3d/designer/SceneEnvironmentSection.qml @@ -28,54 +28,73 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width + Section { caption: qsTr("Scene Environment") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Antialiasing Mode") tooltip: qsTr("Sets the antialiasing mode applied to the scene.") } + SecondColumnLayout { ComboBox { scope: "SceneEnvironment" model: ["NoAA", "SSAA", "MSAA", "ProgressiveAA"] backendValue: backendValues.antialiasingMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Antialiasing Quality") tooltip: qsTr("Sets the level of antialiasing applied to the scene.") } + SecondColumnLayout { ComboBox { scope: "SceneEnvironment" model: ["Medium", "High", "VeryHigh"] backendValue: backendValues.antialiasingQuality - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Temporal AA") tooltip: qsTr("Enables temporal antialiasing using camera jittering and frame blending.") } + SecondColumnLayout { CheckBox { text: backendValues.temporalAAEnabled.valueToString backendValue: backendValues.temporalAAEnabled - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Temporal AA Strength") tooltip: qsTr("Sets the amount of temporal antialiasing applied.") } + SecondColumnLayout { SpinBox { maximumValue: 2.0 @@ -83,49 +102,69 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.temporalAAStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Background Mode") tooltip: qsTr("Controls if and how the background of the scene should be cleared.") } + SecondColumnLayout { ComboBox { scope: "SceneEnvironment" model: ["Transparent", "Unspecified", "Color", "SkyBox"] backendValue: backendValues.backgroundMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Enable Depth Test") tooltip: qsTr("Enables depth testing. Disable to optimize render speed for layers with mostly transparent objects.") } + SecondColumnLayout { CheckBox { text: backendValues.depthTestEnabled.valueToString backendValue: backendValues.depthTestEnabled - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Enable Depth Prepass") tooltip: qsTr("Draw depth buffer as a separate pass. Disable to optimize render speed for layers with low depth complexity.") } + SecondColumnLayout { CheckBox { text: backendValues.depthPrePassEnabled.valueToString backendValue: backendValues.depthPrePassEnabled - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Effect") tooltip: qsTr("A post-processing effect applied to this scene.") + Layout.alignment: Qt.AlignTop + Layout.topMargin: 5 } + SecondColumnLayout { EditableListView { backendValue: backendValues.effects @@ -137,18 +176,16 @@ Column { onRemove: function(idx) { backendValues.effects.idListRemove(idx) } onReplace: function (idx, value) { backendValues.effects.idListReplace(idx, value) } } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Clear Color") - width: parent.width - ColorEditor { - caption: qsTr("Clear Color") - backendValue: backendValues.clearColor - supportGradient: false - Layout.fillWidth: true + PropertyLabel { text: qsTr("Clear Color") } + + ColorEditor { + backendValue: backendValues.clearColor + supportGradient: false + } } } @@ -158,78 +195,99 @@ Column { SectionLayout { - Label { + PropertyLabel { text: qsTr("AO Strength") tooltip: qsTr("Sets the amount of ambient occlusion applied.") } + SecondColumnLayout { SpinBox { maximumValue: 100 minimumValue: 0 decimals: 0 backendValue: backendValues.aoStrength - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("AO Distance") tooltip: qsTr("Sets how far ambient occlusion shadows spread away from objects.") } + SecondColumnLayout { SpinBox { maximumValue: 99999 minimumValue: 0 decimals: 0 backendValue: backendValues.aoDistance - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("AO Softness") tooltip: qsTr("Sets how smooth the edges of the ambient occlusion shading are.") } + SecondColumnLayout { SpinBox { maximumValue: 50 minimumValue: 0 decimals: 0 backendValue: backendValues.aoSoftness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("AO Dither") tooltip: qsTr("Enables scattering of the ambient occlusion shadow band edges to improve smoothness (at the risk of sometimes producing obvious patterned artifacts).") } + SecondColumnLayout { CheckBox { text: backendValues.aoDither.valueToString backendValue: backendValues.aoDither - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("AO Sample Rate") tooltip: qsTr("Sets the ambient occlusion quality (more shades of gray) at the expense of performance.") } + SecondColumnLayout { SpinBox { maximumValue: 4 minimumValue: 2 decimals: 0 backendValue: backendValues.aoSampleRate - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("AO Bias") tooltip: qsTr("Sets the cutoff distance preventing objects from exhibiting ambient occlusion at close distances.") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -237,8 +295,11 @@ Column { realDragRange: 5000 decimals: 2 backendValue: backendValues.aoBias - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } @@ -246,22 +307,29 @@ Column { Section { caption: qsTr("Image Based Lighting") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Light Probe") tooltip: qsTr("Defines a texture for overriding or setting an image based lighting texture for use with the skybox of this scene.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.lightProbe + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Probe Brightness") tooltip: qsTr("Sets the amount of light emitted by the light probe.") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -269,26 +337,34 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.probeBrightness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Fast IBL") tooltip: qsTr("Use a faster approximation to image-based lighting.") } + SecondColumnLayout { CheckBox { text: backendValues.aoDither.valueToString backendValue: backendValues.fastIBL - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Probe Horizon") tooltip: qsTr("Upper limit for horizon darkening of the light probe.") } + SecondColumnLayout { SpinBox { maximumValue: -0.001 @@ -296,22 +372,29 @@ Column { decimals: 3 stepSize: 0.1 backendValue: backendValues.probeHorizon - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Probe FOV") tooltip: qsTr("Image source FOV for the case of using a camera-source as the IBL probe.") } + SecondColumnLayout { SpinBox { maximumValue: 180 minimumValue: 1.0 decimals: 1 backendValue: backendValues.probeFieldOfView - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/SceneEnvironmentSpecifics.qml b/src/imports/quick3d/designer/SceneEnvironmentSpecifics.qml index 86ff5d8b..58ff1ae5 100644 --- a/src/imports/quick3d/designer/SceneEnvironmentSpecifics.qml +++ b/src/imports/quick3d/designer/SceneEnvironmentSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/SetUniformValueSection.qml b/src/imports/quick3d/designer/SetUniformValueSection.qml index 76062779..476797ad 100644 --- a/src/imports/quick3d/designer/SetUniformValueSection.qml +++ b/src/imports/quick3d/designer/SetUniformValueSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,28 +40,39 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Target") tooltip: qsTr("The name of the uniform to change value for a pass.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.target - Layout.fillWidth: true showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Value") tooltip: qsTr("The value of the uniform.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.value - Layout.fillWidth: true showTranslateCheckBox: false writeAsExpression: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/SetUniformValueSpecifics.qml b/src/imports/quick3d/designer/SetUniformValueSpecifics.qml index 96982ef9..8084f8f8 100644 --- a/src/imports/quick3d/designer/SetUniformValueSpecifics.qml +++ b/src/imports/quick3d/designer/SetUniformValueSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/ShaderInfoSection.qml b/src/imports/quick3d/designer/ShaderInfoSection.qml index c678b3a5..436cdbd8 100644 --- a/src/imports/quick3d/designer/ShaderInfoSection.qml +++ b/src/imports/quick3d/designer/ShaderInfoSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,37 +40,56 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Version") tooltip: qsTr("Shader code version to use.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.version - Layout.fillWidth: true showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Type") tooltip: qsTr("Shader type.") } + SecondColumnLayout { LineEdit { backendValue: backendValues.type - Layout.fillWidth: true showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Key") tooltip: qsTr("Shader key.") } - ComboBox { - scope: "ShaderInfo" - model: ["Diffuse", "Specular", "Cutout", "Refraction", "Transparent", "Displace", "Transmissive", "Glossy"] - backendValue: backendValues.shaderKey - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "ShaderInfo" + model: ["Diffuse", "Specular", "Cutout", "Refraction", "Transparent", "Displace", + "Transmissive", "Glossy"] + backendValue: backendValues.shaderKey + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/ShaderInfoSpecifics.qml b/src/imports/quick3d/designer/ShaderInfoSpecifics.qml index 488076c3..5c6cad85 100644 --- a/src/imports/quick3d/designer/ShaderInfoSpecifics.qml +++ b/src/imports/quick3d/designer/ShaderInfoSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/ShaderSection.qml b/src/imports/quick3d/designer/ShaderSection.qml index 86efae5b..0efac933 100644 --- a/src/imports/quick3d/designer/ShaderSection.qml +++ b/src/imports/quick3d/designer/ShaderSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,25 +40,35 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Source") tooltip: qsTr("Shader source code.") } + SecondColumnLayout { UrlChooser { backendValue: backendValues.shader filter: "*.vert *.frag *.glslv *.glslf *.glsl *.vsh *.fsh" } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Stage") tooltip: qsTr("Shader stage.") } - ComboBox { - scope: "Shader" - model: ["Shared", "Vertex", "Fragment", "Geometry", "Compute"] - backendValue: backendValues.stage - Layout.fillWidth: true + + SecondColumnLayout { + ComboBox { + scope: "Shader" + model: ["Shared", "Vertex", "Fragment", "Geometry", "Compute"] + backendValue: backendValues.stage + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/ShaderSpecifics.qml b/src/imports/quick3d/designer/ShaderSpecifics.qml index 3de46b66..00c8a1e5 100644 --- a/src/imports/quick3d/designer/ShaderSpecifics.qml +++ b/src/imports/quick3d/designer/ShaderSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/ShadowSection.qml b/src/imports/quick3d/designer/ShadowSection.qml index ed4a6185..76371a3f 100644 --- a/src/imports/quick3d/designer/ShadowSection.qml +++ b/src/imports/quick3d/designer/ShadowSection.qml @@ -28,77 +28,95 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Shadows") width: parent.width SectionLayout { - - Label { + PropertyLabel { text: qsTr("Casts Shadow") tooltip: qsTr("Enables shadow casting for this light.") } + SecondColumnLayout { CheckBox { id: shadowCheckBox text: backendValues.castsShadow.valueToString backendValue: backendValues.castsShadow - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } // ### all the following should only be shown when shadows are enabled - Label { + PropertyLabel { text: qsTr("Shadow Factor") tooltip: qsTr("Determines how dark the cast shadows should be.") } + SecondColumnLayout { SpinBox { minimumValue: 0.0 maximumValue: 100.0 decimals: 0 backendValue: backendValues.shadowFactor - Layout.fillWidth: true enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Shadow Filter") tooltip: qsTr("Sets how much blur is applied to the shadows.") } + SecondColumnLayout { SpinBox { minimumValue: 1.0 maximumValue: 100.0 decimals: 0 backendValue: backendValues.shadowFilter - Layout.fillWidth: true enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Shadow Map Quality") tooltip: qsTr("Sets the quality of the shadow map created for shadow rendering.") } + SecondColumnLayout { ComboBox { scope: "Light" - model: ["ShadowMapQualityLow", "ShadowMapQualityMedium", "ShadowMapQualityHigh", "ShadowMapQualityVeryHigh"] + model: ["ShadowMapQualityLow", "ShadowMapQualityMedium", "ShadowMapQualityHigh", + "ShadowMapQualityVeryHigh"] backendValue: backendValues.shadowMapQuality - Layout.fillWidth: true enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Shadow Bias") tooltip: qsTr("Sets a slight offset to avoid self-shadowing artifacts.") } + SecondColumnLayout { SpinBox { minimumValue: -1.0 @@ -106,28 +124,33 @@ Section { decimals: 2 stepSize: 0.1 backendValue: backendValues.shadowBias - Layout.fillWidth: true enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Shadow Map Far") tooltip: qsTr("Determines the maximum distance for the shadow map.") } + SecondColumnLayout { SpinBox { - maximumValue: 9999999 minimumValue: -9999999 + maximumValue: 9999999 realDragRange: 5000 decimals: 0 stepSize: 100 backendValue: backendValues.shadowMapFar - Layout.fillWidth: true enabled: shadowCheckBox.backendValue.value === true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } + ExpandingSpacer {} + } } } - diff --git a/src/imports/quick3d/designer/SpotLightSection.qml b/src/imports/quick3d/designer/SpotLightSection.qml index 6b7f361f..f9a0aa36 100644 --- a/src/imports/quick3d/designer/SpotLightSection.qml +++ b/src/imports/quick3d/designer/SpotLightSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,21 +40,27 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Scope") tooltip: qsTr("Sets the scope of the light. Only the node and its children are affected by this light.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Node" - Layout.fillWidth: true backendValue: backendValues.scope + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Brightness") tooltip: qsTr("Sets the strength of the light.") } + SecondColumnLayout { SpinBox { maximumValue: 9999999 @@ -61,14 +68,18 @@ Column { realDragRange: 5000 decimals: 0 backendValue: backendValues.brightness - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Constant Fade") tooltip: qsTr("Sets the constant attenuation of the light.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -76,14 +87,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.constantFade - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Linear Fade") tooltip: qsTr("Sets the linear attenuation of the light.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -91,14 +106,18 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.linearFade - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Quadratic Fade") tooltip: qsTr("Sets the quadratic attenuation of the light.") } + SecondColumnLayout { SpinBox { minimumValue: 0 @@ -106,65 +125,66 @@ Column { decimals: 2 stepSize: 0.1 backendValue: backendValues.quadraticFade - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Cone Angle") tooltip: qsTr("Sets the angle of the light cone.") } + SecondColumnLayout { SpinBox { minimumValue: 0 maximumValue: 180 decimals: 2 backendValue: backendValues.coneAngle - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Inner Cone Angle") tooltip: qsTr("Sets the angle of the inner light cone.") } + SecondColumnLayout { SpinBox { minimumValue: 0 maximumValue: 180 decimals: 2 backendValue: backendValues.innerConeAngle - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - } - } - Section { - caption: qsTr("Color") - width: parent.width + PropertyLabel { text: qsTr("Color") } - ColorEditor { - caption: qsTr("Color") - backendValue: backendValues.color - supportGradient: false - Layout.fillWidth: true - } - } + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } - Section { - caption: qsTr("Ambient Color") - width: parent.width - ColorEditor { - caption: qsTr("Ambient Color") - backendValue: backendValues.ambientColor - supportGradient: false - Layout.fillWidth: true + PropertyLabel { text: qsTr("Ambient Color") } + + ColorEditor { + backendValue: backendValues.ambientColor + supportGradient: false + } } } ShadowSection { width: parent.width } - } diff --git a/src/imports/quick3d/designer/SpotLightSpecifics.qml b/src/imports/quick3d/designer/SpotLightSpecifics.qml index eba4f27f..2b262a14 100644 --- a/src/imports/quick3d/designer/SpotLightSpecifics.qml +++ b/src/imports/quick3d/designer/SpotLightSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/TextureInputSection.qml b/src/imports/quick3d/designer/TextureInputSection.qml index 560b1df1..92a1a17b 100644 --- a/src/imports/quick3d/designer/TextureInputSection.qml +++ b/src/imports/quick3d/designer/TextureInputSection.qml @@ -28,8 +28,9 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Column { width: parent.width @@ -39,27 +40,36 @@ Column { width: parent.width SectionLayout { - Label { + PropertyLabel { text: qsTr("Texture") tooltip: qsTr("Input texture.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" - Layout.fillWidth: true backendValue: backendValues.texture + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + + PropertyLabel { text: qsTr("Enabled") tooltip: qsTr("Texture enable state.") } + SecondColumnLayout { CheckBox { text: backendValues.enabled.valueToString backendValue: backendValues.enabled - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/TextureInputSpecifics.qml b/src/imports/quick3d/designer/TextureInputSpecifics.qml index 32e714e6..08d4cb45 100644 --- a/src/imports/quick3d/designer/TextureInputSpecifics.qml +++ b/src/imports/quick3d/designer/TextureInputSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/TextureSection.qml b/src/imports/quick3d/designer/TextureSection.qml index a3805803..18a3f279 100644 --- a/src/imports/quick3d/designer/TextureSection.qml +++ b/src/imports/quick3d/designer/TextureSection.qml @@ -28,39 +28,48 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Image") width: parent.width + SectionLayout { - Label { + PropertyLabel { text: qsTr("Source") tooltip: qsTr("Holds the location of an image file containing the data used by the texture.") } + SecondColumnLayout { UrlChooser { backendValue: backendValues.source } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Source Item") tooltip: qsTr("Defines an item to be used as the source of the texture.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick.Item" - Layout.fillWidth: true backendValue: backendValues.sourceItem + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { - text: qsTr("U Scale") - tooltip: qsTr("Defines how to scale the U texture coordinate when mapping to UV coordinates of a mesh.") + PropertyLabel { + text: qsTr("Scale") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -68,68 +77,95 @@ Section { realDragRange: 2 decimals: 2 backendValue: backendValues.scaleU - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - Label { - text: qsTr("V Scale") - tooltip: qsTr("Defines how to scale the V texture coordinate when mapping to UV coordinates of a mesh.") - } - SecondColumnLayout { + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "U" + tooltip: qsTr("Defines how to scale the U texture coordinate when mapping to UV coordinates of a mesh.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + SpinBox { maximumValue: 999999 minimumValue: 0 realDragRange: 2 decimals: 2 backendValue: backendValues.scaleV - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "V" + tooltip: qsTr("Defines how to scale the V texture coordinate when mapping to UV coordinates of a mesh.") + } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Texture Mapping") tooltip: qsTr("Defines which method of mapping to use when sampling this texture.") } + SecondColumnLayout { ComboBox { scope: "Texture" model: ["UV", "Environment", "LightProbe"] backendValue: backendValues.mappingMode - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("U Tiling") tooltip: qsTr("Controls how the texture is mapped when the U scaling value is greater than 1.") } + SecondColumnLayout { ComboBox { scope: "Texture" model: ["Unknown", "ClampToEdge", "MirroredRepeat", "Repeat"] backendValue: backendValues.tilingModeHorizontal - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("V Tiling") tooltip: qsTr("Controls how the texture is mapped when the V scaling value is greater than 1.") } + SecondColumnLayout { ComboBox { scope: "Texture" model: ["Unknown", "ClampToEdge", "MirroredRepeat", "Repeat"] backendValue: backendValues.tilingModeVertical - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("UV Rotation") tooltip: qsTr("Rotates the texture around the pivot point.") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -137,14 +173,17 @@ Section { realDragRange: 360 decimals: 0 backendValue: backendValues.rotationUV - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { - text: qsTr("U Position") - tooltip: qsTr("Offsets the U coordinate mapping from left to right.") + PropertyLabel { + text: qsTr("Position") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -153,15 +192,19 @@ Section { decimals: 2 stepSize: 0.1 backendValue: backendValues.positionU - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - Label { - text: qsTr("V Position") - tooltip: qsTr("Offsets the V coordinate mapping from bottom to top.") - } - SecondColumnLayout { + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "U" + tooltip: qsTr("Offsets the U coordinate mapping from left to right.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + SpinBox { maximumValue: 999999 minimumValue: -999999 @@ -169,14 +212,24 @@ Section { decimals: 2 stepSize: 0.1 backendValue: backendValues.positionV - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "V" + tooltip: qsTr("Offsets the V coordinate mapping from bottom to top.") + } + + ExpandingSpacer {} } - Label { - text: qsTr("U Pivot") - tooltip: qsTr("Sets the pivot U position.") + PropertyLabel { + text: qsTr("Pivot") } + SecondColumnLayout { SpinBox { maximumValue: 999999 @@ -185,15 +238,19 @@ Section { decimals: 2 stepSize: 0.1 backendValue: backendValues.pivotU - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - Label { - text: qsTr("V Pivot") - tooltip: qsTr("Sets the pivot V position.") - } - SecondColumnLayout { + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "U" + tooltip: qsTr("Sets the pivot U position.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + SpinBox { maximumValue: 999999 minimumValue: -999999 @@ -201,10 +258,18 @@ Section { decimals: 2 stepSize: 0.1 backendValue: backendValues.pivotV - Layout.fillWidth: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } - } - } + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: "V" + tooltip: qsTr("Sets the pivot V position.") + } + ExpandingSpacer {} + } + } } diff --git a/src/imports/quick3d/designer/TextureSpecifics.qml b/src/imports/quick3d/designer/TextureSpecifics.qml index 8eec6551..e12b5e7c 100644 --- a/src/imports/quick3d/designer/TextureSpecifics.qml +++ b/src/imports/quick3d/designer/TextureSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/imports/quick3d/designer/View3DSection.qml b/src/imports/quick3d/designer/View3DSection.qml index f8f08ad5..132b587a 100644 --- a/src/imports/quick3d/designer/View3DSection.qml +++ b/src/imports/quick3d/designer/View3DSection.qml @@ -28,48 +28,61 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 +import StudioTheme 1.0 as StudioTheme Section { - caption: qsTr("View3D") width: parent.width + caption: qsTr("View3D") SectionLayout { - Label { + PropertyLabel { text: qsTr("Camera") tooltip: qsTr("Specifies which camera is used to render the scene.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Camera" - Layout.fillWidth: true backendValue: backendValues.camera + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Environment") tooltip: qsTr("Specifies the scene environment used to render the scene.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.SceneEnvironment" - Layout.fillWidth: true backendValue: backendValues.environment + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } - Label { + PropertyLabel { text: qsTr("Import Scene") tooltip: qsTr("Defines the reference node of the scene to render to the viewport.") } + SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Node" - Layout.fillWidth: true backendValue: backendValues.importScene + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth } + + ExpandingSpacer {} } } } diff --git a/src/imports/quick3d/designer/View3DSpecifics.qml b/src/imports/quick3d/designer/View3DSpecifics.qml index b0df5386..55d2ede1 100644 --- a/src/imports/quick3d/designer/View3DSpecifics.qml +++ b/src/imports/quick3d/designer/View3DSpecifics.qml @@ -28,8 +28,8 @@ ****************************************************************************/ import QtQuick 2.15 +import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -import QtQuick.Layouts 1.12 Column { width: parent.width diff --git a/src/plugins/assetimporters/assimp/assimpimporter.cpp b/src/plugins/assetimporters/assimp/assimpimporter.cpp index f3660fdd..f74236dc 100644 --- a/src/plugins/assetimporters/assimp/assimpimporter.cpp +++ b/src/plugins/assetimporters/assimp/assimpimporter.cpp @@ -554,7 +554,7 @@ void AssimpImporter::generateNodeProperties(aiNode *node, QTextStream &output, i // Decompose Transform Matrix to get properties aiVector3D scaling; - aiVector3D rotation; + aiQuaternion rotation; aiVector3D translation; transformMatrix.Decompose(scaling, rotation, translation); @@ -564,9 +564,8 @@ void AssimpImporter::generateNodeProperties(aiNode *node, QTextStream &output, i QSSGQmlUtilities::writeQmlPropertyHelper(output, tabLevel, QSSGQmlUtilities::PropertyMap::Node, QStringLiteral("z"), translation.z); // rotation - QSSGQmlUtilities::writeQmlPropertyHelper(output, tabLevel, QSSGQmlUtilities::PropertyMap::Node, QStringLiteral("eulerRotation.x"), qRadiansToDegrees(rotation.x)); - QSSGQmlUtilities::writeQmlPropertyHelper(output, tabLevel, QSSGQmlUtilities::PropertyMap::Node, QStringLiteral("eulerRotation.y"), qRadiansToDegrees(rotation.y)); - QSSGQmlUtilities::writeQmlPropertyHelper(output, tabLevel, QSSGQmlUtilities::PropertyMap::Node, QStringLiteral("eulerRotation.z"), qRadiansToDegrees(rotation.z)); + QQuaternion rot(rotation.w, rotation.x, rotation.y, rotation.z); + QSSGQmlUtilities::writeQmlPropertyHelper(output, tabLevel, QSSGQmlUtilities::PropertyMap::Node, QStringLiteral("rotation"), rot); // scale if (!skipScaling) { @@ -1338,7 +1337,7 @@ void AssimpImporter::processAnimations(QTextStream &output) aiNodeAnim *nodeAnim = itr.value(); generateKeyframes(id, "position", nodeAnim->mNumPositionKeys, nodeAnim->mPositionKeys, keyframeStream, endFrameTime); - generateKeyframes(id, "eulerRotation", nodeAnim->mNumRotationKeys, nodeAnim->mRotationKeys, + generateKeyframes(id, "rotation", nodeAnim->mNumRotationKeys, nodeAnim->mRotationKeys, keyframeStream, endFrameTime); generateKeyframes(id, "scale", nodeAnim->mNumScalingKeys, nodeAnim->mScalingKeys, keyframeStream, endFrameTime); @@ -1367,14 +1366,14 @@ void AssimpImporter::processAnimations(QTextStream &output) namespace { -QVector3D convertToQVector3D(const aiVector3D &vec) +QString convertToQString(const aiVector3D &vec) { - return QVector3D(vec.x, vec.y, vec.z); + return QString("Qt.vector3d(%1, %2, %3)").arg(vec.x, vec.y, vec.z); } -QVector3D convertToQVector3D(const aiQuaternion &q) +QString convertToQString(const aiQuaternion &q) { - return QQuaternion(q.w, q.x, q.y, q.z).toEulerAngles(); + return QString("Qt.quaternion(%1, %2, %3, %4)").arg(q.w, q.x, q.y, q.z); } } @@ -1389,37 +1388,25 @@ void AssimpImporter::generateKeyframes(const QString &id, const QString &propert output << QSSGQmlUtilities::insertTabs(3) << QStringLiteral("property: \"") << propertyName << QStringLiteral("\"\n"); output << QStringLiteral("\n"); - struct Keyframe { - qreal time; - QVector3D value; - }; - - // First, convert all the keyframe values to QVector3D - // so that adjacent keyframes can be compared with qFuzzyCompare. - QList<Keyframe> keyframes; + QList<T> keyframes; for (uint i = 0; i < numKeys; ++i) { - T key = keys[i]; - Keyframe keyframe = {key.mTime, convertToQVector3D(key.mValue)}; - keyframes.push_back(keyframe); - if (i == numKeys-1) - maxKeyframeTime = qMax(maxKeyframeTime, keyframe.time); + if (i > 0 && i < numKeys - 1 + && (keys[i].mValue == keys[i-1].mValue) + && (keys[i].mValue == keys[i+1].mValue)) + continue; + + keyframes.push_back(keys[i]); } + if (numKeys > 0) + maxKeyframeTime = qMax(maxKeyframeTime, keys[numKeys - 1].mTime); + // Output all the Keyframes except similar ones. for (int i = 0; i < keyframes.size(); ++i) { - const Keyframe &keyframe = keyframes[i]; - // Skip keyframes if those are very similar to adjacent ones. - if (i > 0 && i < keyframes.size()-1 - && qFuzzyCompare(keyframe.value, keyframes[i-1].value) - && qFuzzyCompare(keyframe.value, keyframes[i+1].value)) { - keyframes.removeAt(i--); - continue; - } - output << QSSGQmlUtilities::insertTabs(3) << QStringLiteral("Keyframe {\n"); - output << QSSGQmlUtilities::insertTabs(4) << QStringLiteral("frame: ") << keyframe.time << QStringLiteral("\n"); + output << QSSGQmlUtilities::insertTabs(4) << QStringLiteral("frame: ") << keyframes[i].mTime << QStringLiteral("\n"); output << QSSGQmlUtilities::insertTabs(4) << QStringLiteral("value: ") - << QSSGQmlUtilities::variantToQml(keyframe.value) << QStringLiteral("\n"); + << convertToQString(keyframes[i].mValue) << QStringLiteral("\n"); output << QSSGQmlUtilities::insertTabs(3) << QStringLiteral("}\n"); } output << QSSGQmlUtilities::insertTabs(2) << QStringLiteral("}\n"); diff --git a/src/quick3d/qquick3dnode.cpp b/src/quick3d/qquick3dnode.cpp index 5a83fe9b..bc888b7b 100644 --- a/src/quick3d/qquick3dnode.cpp +++ b/src/quick3d/qquick3dnode.cpp @@ -942,7 +942,9 @@ void QQuick3DNode::markAllDirty() This property contains the rotation values for the x, y, and z axis. These values are stored as a vector3d. Rotation order is assumed to - be XYZ. + be ZXY. + + \sa QQuaternion::fromEulerAngles() */ QVector3D QQuick3DNode::eulerRotation() const |