diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-16px.png new file mode 100644 index 00000000000..76160da2303 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px.png new file mode 100644 index 00000000000..d905d3d9378 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px@2x.png new file mode 100644 index 00000000000..f54d32a3541 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/colourize-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/colourize-16px.png new file mode 100644 index 00000000000..b7532068447 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/colourize-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px.png new file mode 100644 index 00000000000..ee306f15b63 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px@2x.png new file mode 100644 index 00000000000..c2eca924cc8 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon-16px.png new file mode 100644 index 00000000000..8d963e2bab5 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon.png new file mode 100644 index 00000000000..0cd116d13cd Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon@2x.png new file mode 100644 index 00000000000..3247384285d Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-16px.png new file mode 100644 index 00000000000..1a5337c6609 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px.png new file mode 100644 index 00000000000..451ead0c04a Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px@2x.png new file mode 100644 index 00000000000..d2e10f0afb8 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-16px.png new file mode 100644 index 00000000000..72893106ae9 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px.png new file mode 100644 index 00000000000..3997195f72c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px@2x.png new file mode 100644 index 00000000000..150fa50ea2f Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png deleted file mode 100644 index 564226e949b..00000000000 Binary files a/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png and /dev/null differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-16px.png new file mode 100644 index 00000000000..23ce849b724 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px.png new file mode 100644 index 00000000000..a437e6db7e9 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px@2x.png new file mode 100644 index 00000000000..5d613f94220 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/displace-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/displace-16px.png new file mode 100644 index 00000000000..dc2306b93bc Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/displace-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/displace-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/displace-24px.png new file mode 100644 index 00000000000..9563df40df6 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/displace-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/displace-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/displace-24px@2.png new file mode 100644 index 00000000000..0be970bdf1a Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/displace-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-16px.png new file mode 100644 index 00000000000..d347ecab9a9 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px.png new file mode 100644 index 00000000000..55432f6daf3 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px@2x.png new file mode 100644 index 00000000000..266e7a8524a Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-16px.png new file mode 100644 index 00000000000..ab0e225db13 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px.png new file mode 100644 index 00000000000..559551e68c3 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px@2x.png new file mode 100644 index 00000000000..438de3f6b6f Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-16px.png new file mode 100644 index 00000000000..9a1b1a1e675 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px.png new file mode 100644 index 00000000000..7f409ad2791 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px@2x.png new file mode 100644 index 00000000000..07ba2a0d252 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png deleted file mode 100644 index 1f5f6966c04..00000000000 Binary files a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png and /dev/null differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png deleted file mode 100644 index cf252f08b8c..00000000000 Binary files a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png and /dev/null differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-16px.png new file mode 100644 index 00000000000..c4b16cad6e9 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px.png new file mode 100644 index 00000000000..ad0c8dceecc Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px@2x.png new file mode 100644 index 00000000000..fe1d7bd3946 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/glow-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/glow-16px.png new file mode 100644 index 00000000000..8adc9315bb9 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/glow-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/glow-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/glow-24px.png new file mode 100644 index 00000000000..782a5ce5491 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/glow-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/glow-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/glow-24px@2x.png new file mode 100644 index 00000000000..ae6795a06e0 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/glow-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon-16px.png new file mode 100644 index 00000000000..430d7d250f7 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon.png new file mode 100644 index 00000000000..27bb59e93c1 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon@2x.png new file mode 100644 index 00000000000..95b49e13b0c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/group-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/group-16px.png new file mode 100644 index 00000000000..86be6eacfa6 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/group-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/group-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/group-24px.png new file mode 100644 index 00000000000..956965ec445 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/group-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/group-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/group-24px@2.png new file mode 100644 index 00000000000..dca6f51aa1f Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/group-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-16px.png new file mode 100644 index 00000000000..392d73c1a7b Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px.png new file mode 100644 index 00000000000..1d5320726cc Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px@2x.png new file mode 100644 index 00000000000..78e13d8612f Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/inner-shadow-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/inner-shadow-24px@2.png new file mode 100644 index 00000000000..65ade03c2ad Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/inner-shadow-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-16px.png new file mode 100644 index 00000000000..b28ea51bc32 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px.png new file mode 100644 index 00000000000..b2f839fa498 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px@2x.png new file mode 100644 index 00000000000..a2e1b2b56f6 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-16px.png new file mode 100644 index 00000000000..8c3bad9e9a2 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px.png new file mode 100644 index 00000000000..bba68f6e41d Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px@2x.png new file mode 100644 index 00000000000..e44762c46ea Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-16px.png new file mode 100644 index 00000000000..65044a57ffc Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-16px.png new file mode 100644 index 00000000000..37335f3718c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px.png new file mode 100644 index 00000000000..6e000b43f75 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px@2x.png new file mode 100644 index 00000000000..402face7279 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px.png new file mode 100644 index 00000000000..d74ce59d0ac Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px@2.png new file mode 100644 index 00000000000..317ea842c48 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px.png new file mode 100644 index 00000000000..6b1c0bbfc49 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px@2.png new file mode 100644 index 00000000000..ec1235efd58 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px.png new file mode 100644 index 00000000000..a1eee6f0395 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px@2.png new file mode 100644 index 00000000000..5186c49d855 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px.png new file mode 100644 index 00000000000..30eb79fe91a Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px@2.png new file mode 100644 index 00000000000..30a05f0d933 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px.png new file mode 100644 index 00000000000..22dc552f2e4 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px@2.png new file mode 100644 index 00000000000..4a349f1672e Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px.png new file mode 100644 index 00000000000..d516f612888 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px@2.png new file mode 100644 index 00000000000..ba390d3981c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px.png new file mode 100644 index 00000000000..44a9108b648 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px@2.png new file mode 100644 index 00000000000..762ad9c48ce Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px.png new file mode 100644 index 00000000000..98b89562c15 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px@2.png new file mode 100644 index 00000000000..5c065dd5f9e Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px.png new file mode 100644 index 00000000000..69490a48c2b Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px@2.png new file mode 100644 index 00000000000..f2317926836 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px.png new file mode 100644 index 00000000000..96618339283 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px@2.png new file mode 100644 index 00000000000..40935bae3ce Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px.png new file mode 100644 index 00000000000..7c6b67cf343 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px@2.png new file mode 100644 index 00000000000..f4a2d56c790 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px.png new file mode 100644 index 00000000000..cf71c7c2d2e Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px@2.png new file mode 100644 index 00000000000..f25ef38573f Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-16px.png new file mode 100644 index 00000000000..90c5d17339d Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px.png new file mode 100644 index 00000000000..14a5273f075 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px@2x.png new file mode 100644 index 00000000000..30f2ce75709 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-16px.png new file mode 100644 index 00000000000..c583b5bb29b Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px.png new file mode 100644 index 00000000000..4e0e84ebfad Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px@2x.png new file mode 100644 index 00000000000..83d2e7d2972 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-16px.png new file mode 100644 index 00000000000..e353e783844 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px.png new file mode 100644 index 00000000000..e233a3808e1 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px@2x.png new file mode 100644 index 00000000000..261fa33f249 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-16px.png new file mode 100644 index 00000000000..3b06c5bec06 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px.png new file mode 100644 index 00000000000..3c6868915d5 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px@2x.png new file mode 100644 index 00000000000..c2f4db8efb8 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-16px.png new file mode 100644 index 00000000000..cc35051c894 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px.png new file mode 100644 index 00000000000..e2954c85761 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px@2x.png new file mode 100644 index 00000000000..97e18680b0a Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-16px.png new file mode 100644 index 00000000000..8cbadb537c1 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px.png new file mode 100644 index 00000000000..aaed0555cdf Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px@2x.png new file mode 100644 index 00000000000..e7672ab994c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-16px.png new file mode 100644 index 00000000000..1f77ed3f545 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px.png new file mode 100644 index 00000000000..0092539ff47 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px@2x.png new file mode 100644 index 00000000000..65ccbd3b777 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-16px.png new file mode 100644 index 00000000000..4453938ac64 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px.png new file mode 100644 index 00000000000..60c7a9e8a40 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px@2x.png new file mode 100644 index 00000000000..4d61a7ee48e Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-16px.png new file mode 100644 index 00000000000..092bbcdf54c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px.png new file mode 100644 index 00000000000..215d3e24768 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px@2x.png new file mode 100644 index 00000000000..fcbff9fa606 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-16px.png new file mode 100644 index 00000000000..d4a830f2742 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px.png new file mode 100644 index 00000000000..56d64e1b307 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px@2x.png new file mode 100644 index 00000000000..b4e40ab77bd Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-16px.png new file mode 100644 index 00000000000..34f41f7b310 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px.png new file mode 100644 index 00000000000..6f7ac4d47d0 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px@2x.png new file mode 100644 index 00000000000..294387604e0 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/levels-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/levels-16px.png new file mode 100644 index 00000000000..07cd3642e5e Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/levels-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/levels-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/levels-24px.png new file mode 100644 index 00000000000..de33760c1c5 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/levels-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/levels-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/levels-24px@2.png new file mode 100644 index 00000000000..514d4a516b7 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/levels-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-16px.png new file mode 100644 index 00000000000..10fb5b119a3 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px.png new file mode 100644 index 00000000000..a5f80783136 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px@2x.png new file mode 100644 index 00000000000..642c7194328 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/polygon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/polygon-16px.png new file mode 100644 index 00000000000..b56c7bb714c Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/polygon-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px.png new file mode 100644 index 00000000000..51209ec2d06 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px@2x.png new file mode 100644 index 00000000000..a400ec6ce91 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon-16px.png new file mode 100644 index 00000000000..1c5be822459 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon.png new file mode 100644 index 00000000000..a7e654c9183 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon@2x.png new file mode 100644 index 00000000000..48c99f8c0e0 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon-16px.png new file mode 100644 index 00000000000..4e7b74aae33 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon.png new file mode 100644 index 00000000000..987ef395072 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon@2x.png new file mode 100644 index 00000000000..d57cfc2a27d Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/star-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/star-16px.png new file mode 100644 index 00000000000..ef8957cd5d5 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/star-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/star-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/star-24px.png new file mode 100644 index 00000000000..a8c66f31a3a Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/star-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/star-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/star-24px@2x.png new file mode 100644 index 00000000000..220d823b8b6 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/star-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-16px.png new file mode 100644 index 00000000000..ee7cc512cb0 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/text-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-24px.png new file mode 100644 index 00000000000..29a81f5d6c9 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/text-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-24px@2x.png new file mode 100644 index 00000000000..1df8f765de4 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/text-24px@2x.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/theshold-24px@2.png b/share/qtcreator/qmldesigner/itemLibrary/images/theshold-24px@2.png new file mode 100644 index 00000000000..74243f38a72 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/theshold-24px@2.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/threshold-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/threshold-16px.png new file mode 100644 index 00000000000..006d4957ed6 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/threshold-16px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/threshold-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/threshold-24px.png new file mode 100644 index 00000000000..aeef8104cd0 Binary files /dev/null and b/share/qtcreator/qmldesigner/itemLibrary/images/threshold-24px.png differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png deleted file mode 100644 index 22904f2f8b9..00000000000 Binary files a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png and /dev/null differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png deleted file mode 100644 index ac7be01bb71..00000000000 Binary files a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png and /dev/null differ diff --git a/share/qtcreator/qmldesigner/itemLibrary/qtquicklayouts.metainfo b/share/qtcreator/qmldesigner/itemLibrary/qtquicklayouts.metainfo new file mode 100644 index 00000000000..563eceba140 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/qtquicklayouts.metainfo @@ -0,0 +1,74 @@ +MetaInfo { + Type { + name: "QtQuick.Layouts.RowLayout" + icon: "images/row-layouts-icon-16px.png" + + ItemLibraryEntry { + name: "Row Layout" + category: "Qt Quick - Layouts" + libraryIcon: "images/row-layouts-icon.png" + version: "1.0" + requiredImport: "QtQuick.Layouts" + + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + toolTip: qsTr("Organizes items in a row.") + } + } + + Type { + name: "QtQuick.Layouts.ColumnLayout" + icon: "images/column-layouts-icon-16px.png" + + ItemLibraryEntry { + name: "Column Layout" + category: "Qt Quick - Layouts" + libraryIcon: "images/column-layouts-icon.png" + version: "1.0" + requiredImport: "QtQuick.Layouts" + + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + toolTip: qsTr("Organizes items in a column.") + } + } + + Type { + name: "QtQuick.Layouts.GridLayout" + icon: "images/grid-layouts-icon-16px.png" + + ItemLibraryEntry { + name: "Grid Layout" + category: "Qt Quick - Layouts" + libraryIcon: "images/grid-layouts-icon.png" + version: "1.0" + requiredImport: "QtQuick.Layouts" + + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + toolTip: qsTr("Organizes items in a grid.") + } + } + + Type { + name: "QtQuick.Layouts.StackLayout" + icon: "images/stack-layouts-icon-16px.png" + + Hints { + isStackedContainer: true + indexPropertyForStackedContainer: "currentIndex" + } + + ItemLibraryEntry { + name: "Stack Layout" + category: "Qt Quick - Layouts" + libraryIcon: "images/stack-layouts-icon.png" + version: "1.0" + requiredImport: "QtQuick.Layouts" + + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + toolTip: qsTr("Organizes items in a grid. Only the top item is visible.") + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/qtquickultralitecomponents.metainfo b/share/qtcreator/qmldesigner/itemLibrary/qtquickultralitecomponents.metainfo new file mode 100644 index 00000000000..634f14e0dc8 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/qtquickultralitecomponents.metainfo @@ -0,0 +1,18 @@ +MetaInfo { + Type { + name: "QtQuickUltralite.Studio.Components.ArcItem" + icon: "images/item-arc-16px.png" + + ItemLibraryEntry { + name: "ArcItem" + category: "QtQuickUltralite - Components" + libraryIcon: "images/item-arc-24px.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Studio.Components" + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + Property { name: "fillColor"; type: "QColor"; value: "transparent"; } + toolTip: qsTr("An arc that begins and ends at given positions.") + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/qtquickultraliteextras.metainfo b/share/qtcreator/qmldesigner/itemLibrary/qtquickultraliteextras.metainfo new file mode 100644 index 00000000000..6d96d7a6570 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/qtquickultraliteextras.metainfo @@ -0,0 +1,61 @@ +MetaInfo { + Type { + name: "QtQuickUltralite.Extras.ColorizedImage" + icon: "images/image-icon16.png" + + ItemLibraryEntry { + name: "Colorized Image" + category: "QtQuickUltralite - Extras" + libraryIcon: "images/image-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Extras" + + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + Property { name: "source"; type: "QUrl"; value:"qrc:/qtquickplugin/images/template_image.png"; } + + toolTip: qsTr("Displays a colorized image.") + } + } + Type { + name: "QtQuickUltralite.Extras.StaticText" + icon: "images/text-icon16.png" + + ItemLibraryEntry { + name: "Static Text" + category: "QtQuickUltralite - Extras" + libraryIcon: "images/text-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Extras" + + Property { name: "font.pixelSize"; type: "int"; value: 12; } + Property { name: "text"; type: "binding"; value: "qsTr(\"Static Text\")"; } + + toolTip: qsTr("Enables optimized drawing of text.") + } + } + + Type { + name: "QtQuickUltralite.Extras.AnimatedSpriteDirectory" + icon: "images/animated-image-icon16.png" + + ItemLibraryEntry { + name: "AnimatedSprite Directory" + category: "QtQuickUltralite - Extras" + libraryIcon: "images/animated-image-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Extras" + + Property { name: "width"; type: "int"; value: 100; } + Property { name: "height"; type: "int"; value: 100; } + Property { name: "currentFrame"; type: "int"; value: 0; } + Property { name: "frameDuration"; type: "int"; value: 30; } + Property { name: "loops"; type: "int"; value: -1; } + Property { name: "running"; type: "bool"; value: true; } + Property { name: "paused"; type: "bool"; value: false; } + Property { name: "sourcePath"; type: "string"; value: ""; } + + toolTip: qsTr("Draws a sprite animation stored in a directory.") + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/qtquickultralitelayers.metainfo b/share/qtcreator/qmldesigner/itemLibrary/qtquickultralitelayers.metainfo new file mode 100644 index 00000000000..2481ca246cc --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/qtquickultralitelayers.metainfo @@ -0,0 +1,106 @@ +MetaInfo { + Type { + name: "QtQuickUltralite.Layers.ApplicationScreens" + icon: "images/item-icon16.png" + + ItemLibraryEntry { + name: "Application Screens" + category: "QtQuickUltralite - Layers" + libraryIcon: "images/item-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Layers" + + toolTip: qsTr("An application container for multiple screens.") + } + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: true + } + } + Type { + name: "QtQuickUltralite.Layers.ImageLayer" + icon: "images/item-icon16.png" + + ItemLibraryEntry { + name: "Image Layer" + category: "QtQuickUltralite - Layers" + libraryIcon: "images/item-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Layers" + + Property { name: "renderingHints"; type: "enum"; value: "ImageLayer.OptimizeForSpeed"; } + Property { name: "platformId"; type: "int"; value: 0; } + Property { name: "width"; type: "int"; value: 200; } + Property { name: "height"; type: "int"; value: 200; } + + toolTip: qsTr("A layer consisting of a single image.") + } + } + Type { + name: "QtQuickUltralite.Layers.ItemLayer" + icon: "images/item-icon16.png" + + ItemLibraryEntry { + name: "Item Layer" + category: "QtQuickUltralite - Layers" + libraryIcon: "images/item-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Layers" + + Property { name: "depth"; type: "enum"; value: "ItemLayer.Bpp32"; } + Property { name: "renderingHints"; type: "enum"; value: "ItemLayer.OptimizeForSpeed"; } + Property { name: "refreshInterval"; type: "int"; value: 1; } + Property { name: "platformId"; type: "int"; value: 0; } + Property { name: "width"; type: "int"; value: 200; } + Property { name: "height"; type: "int"; value: 200; } + + toolTip: qsTr("A layer containing dynamic Qt Quick Ultralite items.") + } + } + Type { + name: "QtQuickUltralite.Layers.Screen" + icon: "images/item-icon16.png" + + ItemLibraryEntry { + name: "Screen" + category: "QtQuickUltralite - Layers" + libraryIcon: "images/item-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Layers" + + Property { name: "width"; type: "int"; value: 200; } + Property { name: "height"; type: "int"; value: 200; } + + toolTip: qsTr("Contains QML items to be shown on a specific screen.") + } + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: true + } + } + Type { + name: "QtQuickUltralite.Layers.SpriteLayer" + icon: "images/item-icon16.png" + + ItemLibraryEntry { + name: "Sprite Layer" + category: "QtQuickUltralite - Layers" + libraryIcon: "images/item-icon.png" + version: "1.0" + requiredImport: "QtQuickUltralite.Layers" + + Property { name: "depth"; type: "enum"; value: "SpriteLayer.Bpp32"; } + Property { name: "platformId"; type: "int"; value: 0; } + Property { name: "width"; type: "int"; value: 200; } + Property { name: "height"; type: "int"; value: 200; } + + toolTip: qsTr("A sprite layer which can contain multiple image and item layers.") + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/studiocomponents.metainfo b/share/qtcreator/qmldesigner/itemLibrary/studiocomponents.metainfo new file mode 100644 index 00000000000..31cfeb78828 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/studiocomponents.metainfo @@ -0,0 +1,175 @@ +MetaInfo { + Type { + name: "QtQuick.Studio.Components.GroupItem" + icon: "images/group-16px.png" + + ItemLibraryEntry { + name: "Group" + category: "Studio Components" + libraryIcon: "images/group-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("Groups several Studio Components.") + } + } + + Type { + name: "QtQuick.Studio.Components.ArcItem" + icon: "images/item-arc-16px.png" + + ItemLibraryEntry { + name: "Arc" + category: "Studio Components" + libraryIcon: "images/item-arc-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + Property { name: "fillColor"; type: "QColor"; value: "transparent"; } + toolTip: qsTr("An arc that begins and ends at given positions.") + } + } + + Type { + name: "QtQuick.Studio.Components.PieItem" + icon: "images/item-pie-16px.png" + + ItemLibraryEntry { + name: "Pie" + category: "Studio Components" + libraryIcon: "images/item-pie-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("A pie slice or a pie with a slice missing from it.") + } + } + + Type { + name: "QtQuick.Studio.Components.TriangleItem" + icon: "images/item-triangle-16px.png" + + ItemLibraryEntry { + name: "Triangle" + category: "Studio Components" + libraryIcon: "images/item-triangle-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("A triangle with different dimensions and shapes is enclosed in an invisible rectangle.") + } + } + + Type { + name: "QtQuick.Studio.Components.SvgPathItem" + icon: "images/item-svg-16px.png" + + ItemLibraryEntry { + name: "SVG Path Item" + category: "Studio Components" + libraryIcon: "images/item-svg-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("Allows to implement vector shape paths from another design tool such as Adobe Illustrator or Figma.") + } + } + + Type { + name: "QtQuick.Studio.Components.FlipableItem" + icon: "images/item-flippable-16px.png" + + ItemLibraryEntry { + name: "Flipable" + category: "Studio Components" + libraryIcon: "images/item-flippable-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("A component that can be visibly flipped between its front and back sides, like a card.") + } + } + + Type { + name: "QtQuick.Studio.Components.RectangleItem" + icon: "images/custom-rectangle-16px.png" + + ItemLibraryEntry { + name: "Rectangle" + category: "Studio Components" + libraryIcon: "images/custom-rectangle-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + Property { name: "adjustBorderRadius"; type: "bool"; value: "true"; } + toolTip: qsTr("An extended rectangle painted with a solid fill color or linear, conical, or radial gradients and corners that you can shape independently of each other.") + } + } + + Type { + name: "QtQuick.Studio.Components.RegularPolygonItem" + icon: "images/polygon-16px.png" + + ItemLibraryEntry { + name: "Regular Polygon" + category: "Studio Components" + libraryIcon: "images/polygon-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("A regular polygon with a variable amount of edges painted with a solid fill color or linear gradient and an optional border.") + } + } + + Type { + name: "QtQuick.Studio.Components.EllipseItem" + icon: "images/ellipse-16px.png" + + ItemLibraryEntry { + name: "Ellipse" + category: "Studio Components" + libraryIcon: "images/ellipse-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("An ellipse painted with a solid fill color or linear gradient and an optional border.") + } + } + + Type { + name: "QtQuick.Studio.Components.BorderItem" + icon: "images/custom-border-16px.png" + + ItemLibraryEntry { + name: "Border" + category: "Studio Components" + libraryIcon: "images/custom-border-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + Property { name: "adjustBorderRadius"; type: "bool"; value: "true"; } + toolTip: qsTr("An extended border painted without solid fill color, having corners that you can shape independently of each other.") + } + } + + Type { + name: "QtQuick.Studio.Components.TextItem" + icon: "images/text-16px.png" + + ItemLibraryEntry { + name: "Text" + category: "Studio Components" + libraryIcon: "images/text-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("A text painted with a solid fill color or linear gradient and an optional border.") + + Property { name: "text"; type: "binding"; value: "qsTr(\"Text Item\")"; } + Property { name: "font.pixelSize"; type: "int"; value: 32; } + } + } + + Type { + name: "QtQuick.Studio.Components.StarItem" + icon: "images/star-16px.png" + + ItemLibraryEntry { + name: "Star" + category: "Studio Components" + libraryIcon: "images/star-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Components" + toolTip: qsTr("A star-shaped polygon, painted with a solid fill color or linear gradient and an optional border.") + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/studiodesigneffects.metainfo b/share/qtcreator/qmldesigner/itemLibrary/studiodesigneffects.metainfo new file mode 100644 index 00000000000..dec733311e4 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/studiodesigneffects.metainfo @@ -0,0 +1,15 @@ +MetaInfo { + Type { + name: "QtQuick.Studio.DesignEffects.DesignEffect" + icon: "images/drop-shadow-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + hideInNavigator: true + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/studioeffects.metainfo b/share/qtcreator/qmldesigner/itemLibrary/studioeffects.metainfo new file mode 100644 index 00000000000..16aeb522759 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/studioeffects.metainfo @@ -0,0 +1,314 @@ +MetaInfo { + + Type { + name: "QtQuick.Studio.Effects.BrightnessContrastEffect" + icon: "images/brightness-contrast-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Brightness Contrast" + category: "Effects" + libraryIcon: "images/brightness-contrast-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.ColorizeEffect" + icon: "images/colourize-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Colorize" + category: "Effects" + libraryIcon: "images/colourize-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.ColorOverlayEffect" + icon: "images/colourize-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Color Overlay" + category: "Effects" + libraryIcon: "images/colourize-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.DesaturationEffect" + icon: "images/desaturation-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Desaturation" + category: "Effects" + libraryIcon: "images/desaturation-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.DisplaceEffect" + icon: "images/displace-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Displace" + category: "Effects" + libraryIcon: "images/displace-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.DropShadowEffect" + icon: "images/drop-shadow-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Drop Shadow" + category: "Effects" + libraryIcon: "images/drop-shadow-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.FastBlurEffect" + icon: "images/fast-blur-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Fast Blur" + category: "Effects" + libraryIcon: "images/fast-blur-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.GammaAdjustEffect" + icon: "images/gamma-adjust-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Gamma Adjust" + category: "Effects" + libraryIcon: "images/gamma-adjust-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.GlowEffect" + icon: "images/glow-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Glow" + category: "Effects" + libraryIcon: "images/glow-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.HueSaturationEffect" + icon: "images/hue-saturation-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Hue Saturation" + category: "Effects" + libraryIcon: "images/hue-saturation-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.LevelAdjustEffect" + icon: "images/levels-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Level Adjust" + category: "Effects" + libraryIcon: "images/levels-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.OpacityMaskEffect" + icon: "images/opacity-mask-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Opacity Mask" + category: "Effects" + libraryIcon: "images/opacity-mask-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } + + Type { + name: "QtQuick.Studio.Effects.ThresholdMaskEffect" + icon: "images/threshold-16px.png" + + Hints { + canBeDroppedInFormEditor: false + canBeDroppedInNavigator: true + isMovable: false + isResizable: false + canBeReparented: false + visibleInNavigator: true + forceNonDefaultProperty: "layer.effect" + setParentProperty: "layer.enabled: true" + } + + ItemLibraryEntry { + name: "Threshold Mask" + category: "Effects" + libraryIcon: "images/threshold-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.Effects" + } + } +} diff --git a/share/qtcreator/qmldesigner/itemLibrary/studiologichelper.metainfo b/share/qtcreator/qmldesigner/itemLibrary/studiologichelper.metainfo new file mode 100644 index 00000000000..20dee639a81 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/studiologichelper.metainfo @@ -0,0 +1,156 @@ +MetaInfo { + Type { + name: "QtQuick.Studio.LogicHelper.BidirectionalBinding" + icon: "images/lc-bidirectional-binding-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "Bi Direct. Binding" + category: "Studio Logic Helper" + libraryIcon: "images/lc-bidirectional-binding-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + + Type { + name: "QtQuick.Studio.LogicHelper.MinMaxMapper" + icon: "images/lc-min-max-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "Min Max Mapper" + category: "Studio Logic Helper" + libraryIcon: "images/lc-min-max-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + + Type { + name: "QtQuick.Studio.LogicHelper.RangeMapper" + icon: "images/lc-range-mapper-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "Range Mapper" + category: "Studio Logic Helper" + libraryIcon: "images/lc-range-mapper-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + + Type { + name: "QtQuick.Studio.LogicHelper.StringMapper" + icon: "images/lc-string-mapper-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "String Mapper" + category: "Studio Logic Helper" + libraryIcon: "images/lc-string-mapper-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + + Type { + name: "QtQuick.Studio.LogicHelper.AndOperator" + icon: "images/lc-and-operator-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "And Operator" + category: "Studio Logic Helper" + libraryIcon: "images/lc-and-operator-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + + Type { + name: "QtQuick.Studio.LogicHelper.OrOperator" + icon: "images/lc-or-operator-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "Or Operator" + category: "Studio Logic Helper" + libraryIcon: "images/lc-or-operator-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + + Type { + name: "QtQuick.Studio.LogicHelper.NotOperator" + icon: "images/lc-not-operator-16px.png" + + Hints { + visibleInNavigator: true + canBeDroppedInNavigator: true + canBeDroppedInFormEditor: false + canBeContainer: false + visibleInLibrary: true + visibleInNavigator: true + } + + ItemLibraryEntry { + name: "Not Operator" + category: "Studio Logic Helper" + libraryIcon: "images/lc-not-operator-24px.png" + version: "1.0" + requiredImport: "QtQuick.Studio.LogicHelper" + } + } + +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcArrowSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcArrowSpecifics.qml new file mode 100644 index 00000000000..2c119b372c7 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcArrowSpecifics.qml @@ -0,0 +1,130 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + caption: qsTr("Arc Arrow") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { text: qsTr("Color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: true + shapeGradients: true + } + + PropertyLabel { text: qsTr("Thickness") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.thickness + decimals: 1 + minimumValue: 1 + maximumValue: 500 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Arrow Size") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.arrowSize + decimals: 1 + minimumValue: 1 + maximumValue: 500 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Radius") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.radius + decimals: 1 + minimumValue: 1 + maximumValue: 500 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Arc start") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.begin + decimals: 1 + minimumValue: -720 + maximumValue: 720 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Arc end") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.end + decimals: 1 + minimumValue: -720 + maximumValue: 720 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Flip") } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.flip + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcItemSpecifics.qml new file mode 100644 index 00000000000..e5b41a28187 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcItemSpecifics.qml @@ -0,0 +1,221 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + caption: qsTr("Arc Item") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color inside the Arc stroke. This only works if the Full outline option is selected and the Arc stroke is not thick enough to fill the space.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the color of the Arc.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the thickness of the Arc.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Arc start") + tooltip: qsTr("Sets the start angle of the Arc.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.begin + decimals: 1 + minimumValue: -720 + maximumValue: 720 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Arc end") + tooltip: qsTr("Sets the end angle of the Arc.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.end + decimals: 1 + minimumValue: -720 + maximumValue: 720 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection {} + + Section { + caption: qsTr("Outline") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Outline width") + tooltip: qsTr("Sets the width of the outline that follows the Arc.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.arcWidth + decimals: 1 + minimumValue: 0 + maximumValue: backendValues.maxArcWidth.value + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap } + + CheckBox { + text: qsTr("Full outline")//backendValues.outlineArc.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.outlineArc + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Round outline") + tooltip: qsTr("Toggles the Full outline to have rounded edges.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.round + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Round start") + tooltip: qsTr("Toggles the starting edge of the Full outline to be rounded.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.roundBegin.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.roundBegin + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Round end") + tooltip: qsTr("Toggles the end edge of the Full outline to be rounded.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.roundEnd.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.roundEnd + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BevelSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BevelSection.qml new file mode 100644 index 00000000000..94c9d9483f4 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BevelSection.qml @@ -0,0 +1,110 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Corner Bevel") + + SectionLayout { + PropertyLabel { + text: qsTr("Top") + tooltip: qsTr("Sets a flat cut on the top left or right corners.") + } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.topLeftBevel + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.bevelCorner + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.topRightBevel + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.bevelCorner + rotation: 90 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Bottom") + tooltip: qsTr("Sets a flat cut on the bottom left or right corners.") + } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.bottomLeftBevel + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.bevelCorner + rotation: 270 + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.bottomRightBevel + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.bevelCorner + rotation: 180 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Global") + tooltip: qsTr("Sets a flat cut on all of the corners.") + } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.bevel + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + IconLabel { icon: StudioTheme.Constants.bevelAll } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderItemSpecifics.qml new file mode 100644 index 00000000000..ab5cf9d6f8f --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderItemSpecifics.qml @@ -0,0 +1,171 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Border Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the Border.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the Border.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Draw Edges") + + SectionLayout { + PropertyLabel { + text: qsTr("Vertical") + tooltip: qsTr("Toggles the top or bottom edges of the border.") + } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.drawTop + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.drawBottom + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + rotation: 180 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Horizontal") + tooltip: qsTr("Toggles the left or right edges of the border.") + } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.drawLeft + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + rotation: 270 + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.drawRight + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + rotation: 90 + } + + ExpandingSpacer {} + } + } + } + + CornerRadiusSection {} + + BevelSection {} + + StrokeDetailsSection { + showBorderMode: true + showRadiusAdjustmentment: true + showJoinStyle: true + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderModeComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderModeComboBox.qml new file mode 100644 index 00000000000..5172a1f9624 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderModeComboBox.qml @@ -0,0 +1,59 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +ComboBox { + model: ["Inside", "Middle", "Outside"] + backendValue: backendValues.borderMode + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + useInteger: true + manualMapping: true + + property bool block: false + + onValueFromBackendChanged: fromBackendToFrontend() + + onCurrentTextChanged: { + if (!__isCompleted) + return + + if (block) + return + + if (currentText === "Inside") + backendValues.borderMode.value = 0 + + if (currentText === "Middle") + backendValues.borderMode.value = 1 + + if (currentText === "Outside") + backendValues.borderMode.value = 2 + } + + Connections { + target: modelNodeBackend + function onSelectionChanged() { fromBackendToFrontend() } + } + + function fromBackendToFrontend() { + if (!__isCompleted || backendValues.borderMode === undefined) + return + + block = true + + if (backendValues.borderMode.value === 0) + currentIndex = 0 + if (backendValues.borderMode.value === 1) + currentIndex = 1 + if (backendValues.borderMode.value === 2) + currentIndex = 2 + + block = false + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CapComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CapComboBox.qml new file mode 100644 index 00000000000..a19e2418ac4 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CapComboBox.qml @@ -0,0 +1,60 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +ComboBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + model: ["FlatCap", "SquareCap", "RoundCap"] + backendValue: backendValues.capStyle + useInteger: true + manualMapping: true + + property bool block: false + + onValueFromBackendChanged: fromBackendToFrontend() + + onCurrentTextChanged: { + if (!__isCompleted) + return + + if (block) + return + + if (currentText === "FlatCap") + backendValues.capStyle.value = 0 + + if (currentText === "SquareCap") + backendValues.capStyle.value = 16 + + if (currentText === "RoundCap") + backendValues.capStyle.value = 32 + } + + Connections { + target: modelNodeBackend + function onSelectionChanged() { fromBackendToFrontend() } + } + + function fromBackendToFrontend() + { + if (!__isCompleted || backendValues.capStyle === undefined) + return + + block = true + + if (backendValues.capStyle.value === 0) + currentIndex = 0 + if (backendValues.capStyle.value === 16) + currentIndex = 1 + if (backendValues.capStyle.value === 32) + currentIndex = 2 + + block = false + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CornerRadiusSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CornerRadiusSection.qml new file mode 100644 index 00000000000..b51c7b2dcdf --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CornerRadiusSection.qml @@ -0,0 +1,132 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Corner Radiuses") + + SectionLayout { + PropertyLabel { + text: qsTr("Top") + tooltip: qsTr("Toggles the top left or right corner to a rounded shape.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.topLeftRadius + decimals: 1 + minimumValue: 0 + maximumValue: 0xffff + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.cornerB + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.topRightRadius + decimals: 1 + minimumValue: 0 + maximumValue: 0xffff + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.cornerB + rotation: 90 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Bottom") + tooltip: qsTr("Toggles the bottom left or right corner to a rounded shape.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.bottomLeftRadius + decimals: 1 + minimumValue: 0 + maximumValue: 0xffff + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.cornerB + rotation: 270 + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.bottomRightRadius + decimals: 1 + minimumValue: 0 + maximumValue: 0xffff + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.cornerA + icon1: StudioTheme.Constants.cornerB + rotation: 180 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Global") + tooltip: qsTr("Toggles all the corners into a rounded shape.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 0xffff + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + IconLabel { + icon: StudioTheme.Constants.cornersAll + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/DashPatternEditor.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/DashPatternEditor.qml new file mode 100644 index 00000000000..2641470772e --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/DashPatternEditor.qml @@ -0,0 +1,173 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import QtQuickDesignerTheme +import StudioTheme as StudioTheme + +GridLayout { + id: root + rowSpacing: StudioTheme.Values.sectionRowSpacing + columnSpacing: 0 + rows: 2 + columns: 5 + Layout.fillWidth: true + + property bool __block: false + property int labelWidth: 46 + property bool enableEditors: true + property variant backendValue: backendValues.dashPattern + property string expression: backendValue.expression + + onExpressionChanged: root.parseExpression() + + function createArray() { + if (root.__block) + return + + var array = [] + array.push(dash01.value) + array.push(gap01.value) + array.push(dash02.value) + array.push(gap02.value) + + root.__block = true + root.backendValue.expression = '[' + array.toString() + ']' + root.__block = false + } + + function parseExpression() { + if (root.__block) + return + + root.__block = true + + dash01.value = 0 + gap01.value = 0 + dash02.value = 0 + gap02.value = 0 + + var array = backendValue.expression.toString() + array = array.replace("[", "") + array = array.replace("]", "") + array = array.split(',') + + try { + dash01.value = array[0] + gap01.value = array[1] + dash02.value = array[2] + gap02.value = array[3] + } catch (err) { + } + + root.__block = false + } + + Connections { + target: modelNodeBackend + function onSelectionChanged() { parseExpression() } + } + + ActionIndicator { + id: actionIndicator + __parentControl: dash01 + icon.visible: dash01.hover || gap01.hover || dash02.hover || gap02.hover + icon.color: extFuncLogic.color + icon.text: extFuncLogic.glyph + enabled: root.enableEditors + onClicked: extFuncLogic.show() + + ExtendedFunctionLogic { + id: extFuncLogic + backendValue: root.backendValue + } + } + + DoubleSpinBox { + id: dash01 + + property color textColor: colorLogic.textColor + + implicitWidth: StudioTheme.Values.twoControlColumnWidth + maximumValue: 1000 + ColorLogic { + id: colorLogic + backendValue: backendValues.dashPattern + } + enabled: root.enableEditors + onValueChanged: root.createArray() + } + + ControlLabel { + text: qsTr("Dash") + color: Theme.color(Theme.PanelTextColorLight) + elide: Text.ElideRight + width: root.labelWidth + horizontalAlignment: Text.AlignLeft + leftPadding: StudioTheme.Values.controlLabelGap + } + + DoubleSpinBox { + id: gap01 + + property color textColor: colorLogic.textColor + + implicitWidth: StudioTheme.Values.twoControlColumnWidth + maximumValue: 1000 + enabled: root.enableEditors + onValueChanged: root.createArray() + } + + ControlLabel { + text: qsTr("Gap") + color: Theme.color(Theme.PanelTextColorLight) + elide: Text.ElideRight + width: root.labelWidth + horizontalAlignment: Text.AlignLeft + leftPadding: StudioTheme.Values.controlLabelGap + } + + Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth } + + DoubleSpinBox { + id: dash02 + + property color textColor: colorLogic.textColor + + implicitWidth: StudioTheme.Values.twoControlColumnWidth + maximumValue: 1000 + enabled: root.enableEditors + onValueChanged: root.createArray() + } + + ControlLabel { + text: qsTr("Dash") + color: Theme.color(Theme.PanelTextColorLight) + elide: Text.ElideRight + width: root.labelWidth + horizontalAlignment: Text.AlignLeft + leftPadding: StudioTheme.Values.controlLabelGap + } + + DoubleSpinBox { + id: gap02 + + property color textColor: colorLogic.textColor + + implicitWidth: StudioTheme.Values.twoControlColumnWidth + maximumValue: 1000 + enabled: root.enableEditors + onValueChanged: root.createArray() + } + + ControlLabel { + text: qsTr("Gap") + color: Theme.color(Theme.PanelTextColorLight) + elide: Text.ElideRight + width: root.labelWidth + horizontalAlignment: Text.AlignLeft + leftPadding: StudioTheme.Values.controlLabelGap + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/EllipseItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/EllipseItemSpecifics.qml new file mode 100644 index 00000000000..7ea6869d288 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/EllipseItemSpecifics.qml @@ -0,0 +1,93 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Ellipse Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the Ellipse.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showBorderMode: true + showJoinStyle: false + showCapStyle: false + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/FlipableItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/FlipableItemSpecifics.qml new file mode 100644 index 00000000000..52b259f7c83 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/FlipableItemSpecifics.qml @@ -0,0 +1,119 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioControls as StudioControls +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + caption: qsTr("Flipped Status") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Rotational axis") + tooltip: qsTr("Sets the rotation along with the x-axis or y-axis.") + } + + SecondColumnLayout { + ComboBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + backendValue: backendValues.rotationalAxis + model: ["X Axis", "Y Axis"] + useInteger: true + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Flip angle") + tooltip: qsTr("Sets the angle of the components to produce the flipping effect.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.flipAngle + minimumValue: -360 + maximumValue: 360 + stepSize: 10 + sliderIndicatorVisible: true + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + } + } + + Section { + caption: qsTr("Opacity") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Front") + tooltip: qsTr("Sets the visibility percentage of the front side component within the Flipable component.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.opacityFront // TODO convert to % + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + sliderIndicatorVisible: true + } + + // Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + // ControlLabel { text: "%" } + + ExpandingSpacer {} + } + PropertyLabel { + text: qsTr("Back") + tooltip: qsTr("Sets the visibility percentage of the back side component within the Flipable component.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.opacityBack // TODO convert to % + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + sliderIndicatorVisible: true + } + + // Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + // ControlLabel { text: "%" } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/GroupItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/GroupItemSpecifics.qml new file mode 100644 index 00000000000..f6c92b9e96e --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/GroupItemSpecifics.qml @@ -0,0 +1,6 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick + +Item {} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/PieItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/PieItemSpecifics.qml new file mode 100644 index 00000000000..39f068301a9 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/PieItemSpecifics.qml @@ -0,0 +1,137 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Pie Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the Pie.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Pie start") + tooltip: qsTr("Sets the starting angle of the Pie.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.begin + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: -360 + maximumValue: 360 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Pie end") + tooltip: qsTr("Sets the ending angle of the Pie.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.end + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: -360 + maximumValue: 360 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showHideLine: true + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RectangleItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RectangleItemSpecifics.qml new file mode 100644 index 00000000000..3c4769afa8b --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RectangleItemSpecifics.qml @@ -0,0 +1,98 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Rectangle Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the Rectangle.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + } + } + + CornerRadiusSection {} + + BevelSection {} + + StrokeDetailsSection { + showBorderMode: true + showRadiusAdjustmentment: true + showJoinStyle: true + showCapStyle: false + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RegularPolygonItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RegularPolygonItemSpecifics.qml new file mode 100644 index 00000000000..faa2c46ea66 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RegularPolygonItemSpecifics.qml @@ -0,0 +1,146 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Regular Polygon Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the enclosed Regular Polygon.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Side count") + tooltip: qsTr("Sets the number of edges for the Regular Polygon.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.sideCount + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 0 + minimumValue: 3 + maximumValue: 100 + stepSize: 1 + } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showBorderMode: false + showJoinStyle: true + showCapStyle: false + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Radiuses") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("Sets the radius of the corners in the Regular Polygon.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 0 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.triangleCornerB + icon1: StudioTheme.Constants.triangleCornerA + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StarItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StarItemSpecifics.qml new file mode 100644 index 00000000000..82c171b643a --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StarItemSpecifics.qml @@ -0,0 +1,165 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Star Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the enclosed Star.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Count") + tooltip: qsTr("Sets the number of TODO for the Star.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.count + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 0 + minimumValue: 3 + maximumValue: 60 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Ratio") + tooltip: qsTr("TODO") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.ratio + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 3 + minimumValue: 0.001 + maximumValue: 1.0 + stepSize: 0.01 + } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showBorderMode: false + showJoinStyle: true + showCapStyle: false + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Radiuses") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("Sets the radius of the corners in the Regular Polygon.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 0 + minimumValue: backendValues.minRadius.value + maximumValue: backendValues.maxRadius.value + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.triangleCornerB + icon1: StudioTheme.Constants.triangleCornerA + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StraightArrowSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StraightArrowSpecifics.qml new file mode 100644 index 00000000000..eb9da0c5ee1 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StraightArrowSpecifics.qml @@ -0,0 +1,129 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + caption: qsTr("Straight Arrow") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { text: qsTr("Color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: true + shapeGradients: true + } + + PropertyLabel { text: qsTr("Thickness") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.thickness + decimals: 1 + minimumValue: 1 + maximumValue: 500 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Arrow Size") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.arrowSize + decimals: 1 + minimumValue: 1 + maximumValue: 500 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Radius") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.radius + decimals: 1 + minimumValue: 1 + maximumValue: 500 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Flip") } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.flip + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Rotate") } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.rotate + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Corner") } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.corner + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Flip Corner") } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.flipCorner + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StrokeDetailsSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StrokeDetailsSection.qml new file mode 100644 index 00000000000..40df9ecafe5 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StrokeDetailsSection.qml @@ -0,0 +1,150 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Stroke Details") + + property bool showCapStyle: true + + property bool showBorderMode: false + property bool showRadiusAdjustmentment: false + property bool showJoinStyle: false + property bool showHideLine: false + + SectionLayout { + PropertyLabel { + text: qsTr("Border mode") + tooltip: qsTr("Sets the way the border gets drawn along the boundary.") + visible: showBorderMode + } + + SecondColumnLayout { + visible: showBorderMode + BorderModeComboBox {} + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Adjust radius") + tooltip: qsTr("Toggles the corners to adapt the radius of the component.") + visible: showRadiusAdjustmentment + } + + SecondColumnLayout { + visible: showRadiusAdjustmentment + CheckBox { + id: adjustRadiusBox + text: qsTr("Adjust border radius") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + backendValue: backendValues.adjustBorderRadius + } + } + + PropertyLabel { + text: qsTr("Stroke style") + tooltip: qsTr("Sets the style of the stroke. Selecting None would make it without a stroke.") + } + + SecondColumnLayout { + ComboBox { + id: strokeStyle + model: ["None", "Solid", "Dash", "Dot", "Dash Dot", "Dash Dot Dot"] + backendValue: backendValues.strokeStyle + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + useInteger: true + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Join style") + tooltip: qsTr("Sets the style of the connecting points of the edges.") + visible: showJoinStyle + } + + SecondColumnLayout { + visible: showJoinStyle + ComboBox { + model: ["Miter Join", "Bevel Join", "Round Join"] + backendValue: backendValues.joinStyle + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + useInteger: true + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Cap style") + tooltip: qsTr("Sets the line ends as square or rounded.") + visible: showCapStyle + } + + SecondColumnLayout { + visible: showCapStyle + CapComboBox {} + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Dash pattern") + tooltip: qsTr("Sets the Dash length and gap in the Stroke.") + Layout.alignment: Qt.AlignTop + Layout.topMargin: 5 + } + + DashPatternEditor { + enableEditors: strokeStyle.currentIndex === 2 + } + + PropertyLabel { + text: qsTr("Dash offset") + tooltip: qsTr("Sets the starting point of the dash pattern for a line.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.dashOffset + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Hide line") + visible: showHideLine + } + + SecondColumnLayout { + visible: showHideLine + CheckBox { + backendValue: backendValues.hideLine + text: qsTr("hide inside line") + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/SvgPathItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/SvgPathItemSpecifics.qml new file mode 100644 index 00000000000..13edbac4d59 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/SvgPathItemSpecifics.qml @@ -0,0 +1,117 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme +import StudioControls as StudioControls + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("SVG Path Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the SVG Path Item.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + StudioControls.CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onClicked: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showJoinStyle: true + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Path Info") + + SectionLayout { + PropertyLabel { + text: qsTr("Path data") + tooltip: qsTr("Sets a data string that specifies the SVG Path.") + } + + SecondColumnLayout{ + LineEdit { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + backendValue: backendValues.path + showTranslateCheckBox: false + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TextItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TextItemSpecifics.qml new file mode 100644 index 00000000000..9c178ce50c9 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TextItemSpecifics.qml @@ -0,0 +1,115 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Text Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the Text.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Text") + tooltip: qsTr("Sets the text to display.") + } + + SecondColumnLayout { + LineEdit { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + backendValue: backendValues.text + } + + Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showBorderMode: false + showJoinStyle: true + showCapStyle: false + } + + FontSection { + showHinting: false + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TriangleItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TriangleItemSpecifics.qml new file mode 100644 index 00000000000..3629f3ed84f --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TriangleItemSpecifics.qml @@ -0,0 +1,268 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioControls as StudioControls +import StudioTheme as StudioTheme + +Column { + id: root + anchors.left: parent.left + anchors.right: parent.right + + property int spinBoxWidth: 100 + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Triangle Item") + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color to fill the Triangle.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the stroke color of the boundary.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + supportGradient: false + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the stroke thickness of the boundary.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + } + } + + StrokeDetailsSection { + showCapStyle: false + showJoinStyle: true + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Radiuses") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("Sets the radius of the corners and the radius for the edges of the intersections in the Triangle.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: 0 + maximumValue: backendValues.maxRadius.value + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.triangleCornerB + icon1: StudioTheme.Constants.triangleCornerA + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + backendValue: backendValues.arcRadius + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: 1 + maximumValue: 10000 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.triangleArcB + icon1: StudioTheme.Constants.triangleArcA + } +/* + TODO QDS-4836 + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + LinkIndicator2D {} +*/ + + ExpandingSpacer {} + } + } + } + + Section { + caption: qsTr("Margin") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Vertical") + tooltip: qsTr("Sets the top and bottom margins for the Triangle component.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: -10000 + maximumValue: 10000 + stepSize: 1 + backendValue: backendValues.topMargin + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + iconColor: StudioTheme.Values.themeTextColor + tooltip: qsTr("The margin above the item.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + id: spinBoxBottomMargin + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: -10000 + maximumValue: 10000 + stepSize: 1 + backendValue: backendValues.bottomMargin + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + iconColor: StudioTheme.Values.themeTextColor + rotation: 180 + tooltip: qsTr("The margin below the item.") + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Horizontal") + tooltip: qsTr("Sets the left and right margins for the Triangle component.") + } + + SecondColumnLayout { + SpinBox { + id: spinBoxLeftMargin + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: -10000 + maximumValue: 10000 + stepSize: 1 + backendValue: backendValues.leftMargin + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + iconColor: StudioTheme.Values.themeTextColor + rotation: 270 + tooltip: qsTr("The left margin of the item.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + id: spinBoxRightMargin + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + decimals: 1 + minimumValue: -10000 + maximumValue: 10000 + stepSize: 1 + backendValue: backendValues.rightMargin + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + MultiIconLabel { + icon0: StudioTheme.Constants.paddingFrame + icon1: StudioTheme.Constants.paddingEdge + iconColor: StudioTheme.Values.themeTextColor + rotation: 90 + tooltip: qsTr("The right margin of the item.") + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/DesignEffects/DesignEffectPane.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/DesignEffects/DesignEffectPane.qml new file mode 100644 index 00000000000..3123a9461c8 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/DesignEffects/DesignEffectPane.qml @@ -0,0 +1,46 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +PropertyEditorPane { + id: itemPane + + ComponentSection {} + + DynamicPropertiesSection { + propertiesModel: PropertyEditorDynamicPropertiesModel {} + visible: !hasMultiSelection + } + + Column { + anchors.left: parent.left + anchors.right: parent.right + + Loader { + id: specificsTwo + + property string theSource: specificQmlData + + anchors.left: parent.left + anchors.right: parent.right + visible: specificsTwo.theSource !== "" + sourceComponent: specificQmlComponent + + onTheSourceChanged: { + specificsTwo.active = false + specificsTwo.active = true + } + } + + Loader { + id: specificsOne + anchors.left: parent.left + anchors.right: parent.right + source: specificsUrl + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BlendEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BlendEffectSpecifics.qml new file mode 100644 index 00000000000..cbe7bcc2612 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BlendEffectSpecifics.qml @@ -0,0 +1,116 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Blend") + + SectionLayout { + PropertyLabel { + text: qsTr("Mode") + tooltip: qsTr("The mode which is used when foreground source is blended over " + + "source.") + } + + SecondColumnLayout { + ComboBox { + id: blendMode + backendValue: backendValues.mode + useInteger: true + manualMapping: true + model: ["normal", "addition", "average", "color", "colorBurn", "colorDodge", + "darken", "darkerColor", "difference", "divide", "exclusion", "hardLight", + "hue", "lighten", "lighterColor", "lightness", "multiply", "negation", + "saturation", "screen", "subtract", "softLight"] + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + + property bool block: false + + onValueFromBackendChanged: blendMode.fromBackendToFrontend() + + onCurrentTextChanged: { + if (!__isCompleted) + return + + if (block) + return + + backendValues.mode.value = blendMode.model[blendMode.currentIndex] + } + + Connections { + target: modelNodeBackend + onSelectionChanged: blendMode.fromBackendToFrontend() + } + + function fromBackendToFrontend() { + if (!__isCompleted) + return + + block = true + + currentIndex = blendMode.model.indexOf(backendValues.mode.value) + + block = false + } + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Foreground source") + tooltip: qsTr("The component that is going to be blended over the source.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.Item" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.foregroundSource + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BrightnessContrastEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BrightnessContrastEffectSpecifics.qml new file mode 100644 index 00000000000..76b10637024 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BrightnessContrastEffectSpecifics.qml @@ -0,0 +1,86 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Brightness and Contrast") + + SectionLayout { + PropertyLabel { + text: qsTr("Brightness") + tooltip: qsTr("The increase or decrease of source brightness.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.brightness + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Contrast") + tooltip: qsTr("The increase or decrease of source contrast. The decrease of the " + + "contrast is linear, but the increase is applied with a " + + "non-linear curve to allow very high contrast adjustment at the " + + "high end of the value range.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.contrast + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorOverlayEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorOverlayEffectSpecifics.qml new file mode 100644 index 00000000000..899ce37c481 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorOverlayEffectSpecifics.qml @@ -0,0 +1,52 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Overlay Color") + + SectionLayout { + PropertyLabel { text: qsTr("Overlay color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorizeEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorizeEffectSpecifics.qml new file mode 100644 index 00000000000..23acdc74322 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorizeEffectSpecifics.qml @@ -0,0 +1,104 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Colorize") + + SectionLayout { + PropertyLabel { + text: qsTr("Hue") + tooltip: qsTr("The hue value which is used to colorize the source.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.hue + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Lightness") + tooltip: qsTr("The increase or decrease of source lightness value. Unlike hue and " + + "saturation properties, lightness does not set the used value, but " + + "it shifts the existing source pixel lightness value.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.lightness + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Saturation") + tooltip: qsTr("The saturation value which is used to colorize the source.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.saturation + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DesaturationEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DesaturationEffectSpecifics.qml new file mode 100644 index 00000000000..c35ee94036c --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DesaturationEffectSpecifics.qml @@ -0,0 +1,64 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Desaturation") + + SectionLayout { + PropertyLabel { + text: qsTr("Desaturation") + tooltip: qsTr("How much the source colors are desaturated.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.desaturation + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DirectionalBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DirectionalBlurEffectSpecifics.qml new file mode 100644 index 00000000000..82d7013fbe5 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DirectionalBlurEffectSpecifics.qml @@ -0,0 +1,125 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Directional Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Angle") + tooltip: qsTr("The direction for the blur. Blur is applied to both sides of each " + + "pixel. Therefore, setting the direction to 0 and 180 produces " + + "the same result.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.angle + decimals: 1 + minimumValue: -180 + maximumValue: 180 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for blur calculation. A larger value produces " + + "better quality, but is slower to render.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Length") + tooltip: qsTr("The perceived amount of movement for each pixel. The movement is " + + "divided evenly to both sides of each pixel.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.length + decimals: 1 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DisplaceEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DisplaceEffectSpecifics.qml new file mode 100644 index 00000000000..2eb26b9b161 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DisplaceEffectSpecifics.qml @@ -0,0 +1,82 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Displace") + + SectionLayout { + PropertyLabel { + text: qsTr("Displacement") + tooltip: qsTr("The scale for the displacement. The bigger the scale, the bigger " + + "the displacement of the pixels.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.displacement + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Displacement source") + tooltip: qsTr("The component that is going to be used as the displacement map.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.Item" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.displacementSource + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DropShadowEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DropShadowEffectSpecifics.qml new file mode 100644 index 00000000000..e004f8c8ab8 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DropShadowEffectSpecifics.qml @@ -0,0 +1,195 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Drop Shadow Color") + + SectionLayout { + PropertyLabel { text: qsTr("Drop shadow color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Drop Shadow") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The softness of the shadow. A larger radius causes the edges of the " + + "shadow to appear more blurry.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for edge softening blur calculation. Ideally, " + + "this value should be twice as large as the highest required " + + "radius value plus one.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 201 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Spread") + tooltip: qsTr("The part of the shadow color that is strengthened near the source " + + "edges.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.spread + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Offsets") + + SectionLayout { + PropertyLabel { + text: qsTr("Offset") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.horizontalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The horizontal offset + text: qsTr("H", "horizontal") + tooltip: qsTr("The horizontal offset for the rendered shadow compared to the " + + "inner shadow component's horizontal position.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + backendValue: backendValues.verticalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The vertical offset + text: qsTr("V", "vertical") + tooltip: qsTr("The vertical offset for the rendered shadow compared to the " + + "inner shadow component's vertical position. ") + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/FastBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/FastBlurEffectSpecifics.qml new file mode 100644 index 00000000000..60802abb503 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/FastBlurEffectSpecifics.qml @@ -0,0 +1,83 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Fast Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The distance of the neighboring pixels which affect the blurring of " + + "an individual pixel. A larger radius increases the blur effect.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GammaAdjustEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GammaAdjustEffectSpecifics.qml new file mode 100644 index 00000000000..1afafcdf6c7 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GammaAdjustEffectSpecifics.qml @@ -0,0 +1,64 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Gamma Adjust") + + SectionLayout { + PropertyLabel { + text: qsTr("Gamma") + tooltip: qsTr("The change factor for how the luminance of each pixel is altered.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.gamma + decimals: 2 + minimumValue: 0 + maximumValue: 100 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GaussianBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GaussianBlurEffectSpecifics.qml new file mode 100644 index 00000000000..5a7b8acb5d9 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GaussianBlurEffectSpecifics.qml @@ -0,0 +1,123 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Gaussian Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The distance of the neighboring pixels which affect the blurring of " + + "an individual pixel. A larger radius increases the blur effect.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Deviation") + tooltip: qsTr("A parameter to the gaussian function that is used when calculating " + + "neighboring pixel weights for the blurring.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.deviation + decimals: 2 + minimumValue: 0 + maximumValue: 50 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for blur calculation. A larger value produces " + + "better quality, but is slower to render.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GlowEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GlowEffectSpecifics.qml new file mode 100644 index 00000000000..9acf5ed5b30 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GlowEffectSpecifics.qml @@ -0,0 +1,142 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Glow Color") + + SectionLayout { + PropertyLabel { text: qsTr("Glow color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Glow") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The softness of the glow. A larger radius causes the edges of the " + + "glow to appear more blurry. Depending on the radius value, value " + + "of the samples should be set to sufficiently large to ensure the " + + "visual quality.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for edge softening blur calculation. A larger " + + "value produces better quality, but is slower to render. Ideally, " + + "this value should be twice as large as the highest required " + + "radius value plus one.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 1 + minimumValue: 0 + maximumValue: 201 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Spread") + tooltip: qsTr("The part of the glow color that is strengthened near the source " + + "edges.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.spread + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/HueSaturationEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/HueSaturationEffectSpecifics.qml new file mode 100644 index 00000000000..0b955e41472 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/HueSaturationEffectSpecifics.qml @@ -0,0 +1,103 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Hue and Saturation") + + SectionLayout { + PropertyLabel { + text: qsTr("Hue") + tooltip: qsTr("The hue value which is added to the source hue value.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.hue + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Lightness") + tooltip: qsTr("The lightness value which is added to the source saturation value.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.lightness + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Saturation") + tooltip: qsTr("The saturation value value which is added to the source saturation " + + "value.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.saturation + decimals: 2 + minimumValue: -1 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/InnerShadowEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/InnerShadowEffectSpecifics.qml new file mode 100644 index 00000000000..25b75bd25fc --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/InnerShadowEffectSpecifics.qml @@ -0,0 +1,194 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Inner Shadow Color") + + SectionLayout { + PropertyLabel { text: qsTr("Inner shadow color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Inner Shadow") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The softness of the shadow. A larger radius causes the edges of the " + + "shadow to appear more blurry.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for edge softening blur calculation. Ideally, " + + "this value should be twice as large as the highest required " + + "radius value plus one.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 201 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Spread") + tooltip: qsTr("The part of the shadow color that is strengthened near the source " + + "edges.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.spread + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Fast") + tooltip: qsTr("The blurring algorithm that is used to produce the softness for the " + + "effect.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.fast + text: backendValues.fast.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Offsets") + + SectionLayout { + PropertyLabel { + text: qsTr("Offset") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.horizontalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The horizontal offset + text: qsTr("H", "horizontal") + tooltip: qsTr("The horizontal offset for the rendered shadow compared to the " + + "inner shadow component's horizontal position.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + backendValue: backendValues.verticalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The vertical offset + text: qsTr("V", "vertical") + tooltip: qsTr("The vertical offset for the rendered shadow compared to the " + + "inner shadow component's vertical position. ") + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/LevelAdjustEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/LevelAdjustEffectSpecifics.qml new file mode 100644 index 00000000000..46d2c9218c3 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/LevelAdjustEffectSpecifics.qml @@ -0,0 +1,161 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Level Adjust") + + SectionLayout { + PropertyLabel { + text: qsTr("Gamma") + tooltip: qsTr("The change factor for how the luminance of each pixel is altered.") + } + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 100 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.gammaR + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: qsTr("R", "red") + } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 100 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.gammaG + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: qsTr("G", "green") + } + + ExpandingSpacer {} + } + + PropertyLabel {} + + SecondColumnLayout { + SpinBox { + minimumValue: 0 + maximumValue: 100 + decimals: 2 + stepSize: 0.1 + backendValue: backendValues.gammaB + sliderIndicatorVisible: true + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + text: qsTr("B", "blue") + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Input") + + SectionLayout { + PropertyLabel { text: qsTr("Minimum") } + + ColorEditor { + backendValue: backendValues.minimumInput + supportGradient: false + } + + PropertyLabel { text: qsTr("Maximum") } + + ColorEditor { + backendValue: backendValues.maximumInput + supportGradient: false + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Output") + + SectionLayout { + PropertyLabel { text: qsTr("Minimum") } + + ColorEditor { + backendValue: backendValues.minimumOutput + supportGradient: false + } + + PropertyLabel { text: qsTr("Maximum") } + + ColorEditor { + backendValue: backendValues.maximumOutput + supportGradient: false + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/MaskedBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/MaskedBlurEffectSpecifics.qml new file mode 100644 index 00000000000..569ae43103e --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/MaskedBlurEffectSpecifics.qml @@ -0,0 +1,102 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Masked Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The distance of the neighboring pixels which affect the blurring of " + + "an individual pixel. A larger radius increases the blur effect.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for blur calculation. A larger value produces " + + "better quality, but is slower to render.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask source") + tooltip: qsTr("The component that controls the final intensity of the blur.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.Item" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.maskSource + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/OpacityMaskEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/OpacityMaskEffectSpecifics.qml new file mode 100644 index 00000000000..68e168c408d --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/OpacityMaskEffectSpecifics.qml @@ -0,0 +1,78 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Opacity Mask") + + SectionLayout { + PropertyLabel { + text: qsTr("Invert") + tooltip: qsTr("Controls how the alpha values of the source mask will behave.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.invert + text: backendValues.invert.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask source") + tooltip: qsTr("The component that is going to be used as the mask.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.Item" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.maskSource + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RadialBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RadialBlurEffectSpecifics.qml new file mode 100644 index 00000000000..8a2082cecbf --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RadialBlurEffectSpecifics.qml @@ -0,0 +1,162 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Radial Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Angle") + tooltip: qsTr("The direction for the blur and at the same time the level of " + + "blurring. The larger the angle, the more the result becomes " + + "blurred. The quality of the blur depends on samples property.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.angle + decimals: 1 + minimumValue: 0 + maximumValue: 360 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel for blur calculation. A larger value produces " + + "better quality, but is slower to render. This property is not " + + "intended to be animated. Changing this property may cause the " + + "underlying OpenGL shaders to be recompiled.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 200 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Offsets") + + SectionLayout { + PropertyLabel { + text: qsTr("Offset") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.horizontalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The horizontal offset + text: qsTr("H", "horizontal") + tooltip: qsTr("The horizontal offset for the rendered shadow compared to the " + + "inner shadow component's horizontal position.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + backendValue: backendValues.verticalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The vertical offset + text: qsTr("V", "vertical") + tooltip: qsTr("The vertical offset for the rendered shadow compared to the " + + "inner shadow component's vertical position. ") + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RecursiveBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RecursiveBlurEffectSpecifics.qml new file mode 100644 index 00000000000..f073f4a4dbf --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RecursiveBlurEffectSpecifics.qml @@ -0,0 +1,103 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Recursive Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Loops") + tooltip: qsTr("The amount of blur iterations that are going to be performed for " + + "the source.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.loops + decimals: 0 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Radius") + tooltip: qsTr("The distance of the neighboring pixels which affect the blurring of " + + "an individual pixel. A larger radius increases the blur effect.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + decimals: 1 + minimumValue: 0 + maximumValue: 16 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ThresholdMaskEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ThresholdMaskEffectSpecifics.qml new file mode 100644 index 00000000000..3526c6ed0ba --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ThresholdMaskEffectSpecifics.qml @@ -0,0 +1,100 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Threshold Mask") + + SectionLayout { + PropertyLabel { + text: qsTr("Spread") + tooltip: qsTr("The smoothness of the mask edges near the threshold alpha value.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.spread + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Threshold") + tooltip: qsTr("A threshold value for the mask pixels.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.threshold + decimals: 2 + minimumValue: 0 + maximumValue: 1 + stepSize: 0.1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Mask source") + tooltip: qsTr("The component that is going to be used as the mask.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.Item" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.maskSource + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ZoomBlurEffectSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ZoomBlurEffectSpecifics.qml new file mode 100644 index 00000000000..451cfc892c4 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ZoomBlurEffectSpecifics.qml @@ -0,0 +1,159 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Zoom Blur") + + SectionLayout { + PropertyLabel { + text: qsTr("Length") + tooltip: qsTr("The maximum perceived amount of movement for each pixel. The amount " + + "is smaller near the center and reaches the specified value at the " + + "edges.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.length + decimals: 1 + minimumValue: 0 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Samples") + tooltip: qsTr("Samples per pixel to calculate blur. A larger value produces better " + + "quality, but is slower to render.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.samples + decimals: 0 + minimumValue: 0 + maximumValue: 200 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Offsets") + + SectionLayout { + PropertyLabel { + text: qsTr("Offset") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.horizontalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The horizontal offset + text: qsTr("H", "horizontal") + tooltip: qsTr("The horizontal offset for the rendered shadow compared to the " + + "inner shadow component's horizontal position.") + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + backendValue: backendValues.verticalOffset + decimals: 1 + minimumValue: -1000 + maximumValue: 1000 + stepSize: 1 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The vertical offset + text: qsTr("V", "vertical") + tooltip: qsTr("The vertical offset for the rendered shadow compared to the " + + "inner shadow component's vertical position. ") + } + + ExpandingSpacer {} + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Caching and Border") + + SectionLayout { + PropertyLabel { + text: qsTr("Cached") + tooltip: qsTr("Caches the effect output pixels to improve the rendering " + + "performance.") + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.cached + text: backendValues.cached.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Transparent border") + tooltip: qsTr("Pads the exterior of the component with a transparent edge, making " + + "sampling outside the source texture use transparency instead of " + + "the edge pixels.") + } + + SecondColumnLayout { + CheckBox { + backendValue: backendValues.transparentBorder + text: backendValues.transparentBorder.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/AndOperatorSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/AndOperatorSpecifics.qml new file mode 100644 index 00000000000..35fa0ee9ba8 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/AndOperatorSpecifics.qml @@ -0,0 +1,51 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("AND Operator") + + SectionLayout { + PropertyLabel { text: qsTr("Input 01") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input01 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Input 02") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input02 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.output + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/BidirectionalBindingSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/BidirectionalBindingSpecifics.qml new file mode 100644 index 00000000000..2948e227776 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/BidirectionalBindingSpecifics.qml @@ -0,0 +1,75 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Bidrectional Binding") + + SectionLayout { + PropertyLabel { + text: qsTr("Target 01") + tooltip: qsTr("Target of the binding.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQml.QtObject" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.target01 + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Property 01") } + + SecondColumnLayout { + LineEdit { + backendValue: backendValues.property01 + showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Target 02") + tooltip: qsTr("Target Flow Item whose state is changed.") + } + + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQml.QtObject" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.target02 + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Property 02") } + + SecondColumnLayout { + LineEdit { + backendValue: backendValues.property02 + showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/MinMaxMapperSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/MinMaxMapperSpecifics.qml new file mode 100644 index 00000000000..450a4aae0b2 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/MinMaxMapperSpecifics.qml @@ -0,0 +1,111 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Min Max Mapper") + + SectionLayout { + PropertyLabel { text: qsTr("Input") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Min") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.minimum + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Max") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.maximum + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.output + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Below min") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.belowMinimum + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Above max") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.aboveMaximum + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Out of range") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.outOfRange + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/NotOperatorSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/NotOperatorSpecifics.qml new file mode 100644 index 00000000000..07969f6a1c8 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/NotOperatorSpecifics.qml @@ -0,0 +1,39 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("NOT Operator") + + SectionLayout { + PropertyLabel { text: qsTr("Input") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.output + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/OrOperatorSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/OrOperatorSpecifics.qml new file mode 100644 index 00000000000..9b2b51e655b --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/OrOperatorSpecifics.qml @@ -0,0 +1,51 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("OR Operator") + + SectionLayout { + PropertyLabel { text: qsTr("Input 01") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input01 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Input 02") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input02 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output") } + + SecondColumnLayout { + CheckBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.output + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/RangeMapperSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/RangeMapperSpecifics.qml new file mode 100644 index 00000000000..a9c8e4661dd --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/RangeMapperSpecifics.qml @@ -0,0 +1,105 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Ranger Mapper") + + SectionLayout { + PropertyLabel { text: qsTr("Input") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Input min") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.inputMinimum + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Input max") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.inputMaximum + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output min") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.outputMinimum + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output max") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.outputMaximum + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.output + decimals: 2 + minimumValue: -Number.MAX_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/StringMapperSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/StringMapperSpecifics.qml new file mode 100644 index 00000000000..83a8e414c5e --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/StringMapperSpecifics.qml @@ -0,0 +1,57 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("String Mapper") + + SectionLayout { + PropertyLabel { text: qsTr("Input") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.input + decimals: 2 + minimumValue: Number.MIN_VALUE + maximumValue: Number.MAX_VALUE + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Decimal places") } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.decimals + minimumValue: 0 + maximumValue: 20 + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Output text") } + + SecondColumnLayout { + LineEdit { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.text + showTranslateCheckBox: false + } + + ExpandingSpacer {} + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/AnimatedSpriteDirectorySpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/AnimatedSpriteDirectorySpecifics.qml new file mode 100644 index 00000000000..163d55b453b --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/AnimatedSpriteDirectorySpecifics.qml @@ -0,0 +1,130 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + + caption: qsTr("Animated Sprite Directory") + + SectionLayout { + PropertyLabel { + text: qsTr("Current frame") + tooltip: qsTr("Set this property to advance the current frame") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.currentFrame + minimumValue: 0 + maximumValue: Number.MAX_VALUE + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + enabled: backendValue.isAvailable + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Frame duration") + tooltip: qsTr("Duration of each frame of the animation in milliseconds") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.frameDuration + minimumValue: 0 + maximumValue: Number.MAX_VALUE + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + enabled: backendValue.isAvailable + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Loops") + tooltip: qsTr("Indicate the number of times the animation should reply, set to -1 for Infinite") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.loops + minimumValue: -1 + maximumValue: Number.MAX_VALUE + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + enabled: backendValue.isAvailable + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Running") + tooltip: qsTr("Indicates whether the application is running or not") + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.running + text: backendValues.running.valueToString + backendValue: backendValues.running + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Paused") + tooltip: qsTr("Indicate whether the animation is paused or not") + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.paused + text: backendValues.paused.valueToString + backendValue: backendValues.paused + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + PropertyLabel { + text: qsTr("Source path") + tooltip: qsTr("Path to the directory with images for the sprite animation") + } + + SecondColumnLayout { + + // QDS-11080: use UrlChooser instead when it supports folder selection + LineEdit { + backendValue: backendValues.sourcePath + showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/ColorizedImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/ColorizedImageSpecifics.qml new file mode 100644 index 00000000000..0261f43d176 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/ColorizedImageSpecifics.qml @@ -0,0 +1,79 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +//! [ColorizedImage compatibility] +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Colorized Image") + + SectionLayout { + PropertyLabel { text: qsTr("Image color") } + + ColorEditor { + backendValue: backendValues.color + supportGradient: false + } + + PropertyLabel { text: qsTr("Source") } + + SecondColumnLayout { + UrlChooser { + backendValue: backendValues.source + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Fill mode") } + + SecondColumnLayout { + ComboBox { + scope: "Image" + model: ["Stretch", "PreserveAspectFit", "PreserveAspectCrop", "Tile", "TileVertically", "TileHorizontally", "Pad"] + backendValue: backendValues.fillMode + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Alignment H") } + + SecondColumnLayout { + ComboBox { + scope: "Image" + model: ["AlignLeft", "AlignRight", "AlignHCenter"] + backendValue: backendValues.horizontalAlignment + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Alignment V") } + + SecondColumnLayout { + ComboBox { + scope: "Image" + model: ["AlignTop", "AlignBottom", "AlignVCenter"] + backendValue: backendValues.verticalAlignment + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + } + + ExpandingSpacer {} + } + } +} +//! [ColorizedImage compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/StaticTextSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/StaticTextSpecifics.qml new file mode 100644 index 00000000000..1e9422206a4 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/StaticTextSpecifics.qml @@ -0,0 +1,34 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets + +//! [StaticText compatibility] +Column { + anchors.left: parent.left + anchors.right: parent.right + + CharacterSection { + richTextEditorAvailable: true + showLineHeight: true + showVerticalAlignment: true + } + + TextExtrasSection { + showElide: true + showWrapMode: true + showFormatProperty: true + showFontSizeMode: true + showLineHeight: true + } + + FontExtrasSection { + showStyle: true + } + + PaddingSection {} +} + +//! [StaticText compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ApplicationScreensSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ApplicationScreensSpecifics.qml new file mode 100644 index 00000000000..6d4384ead2e --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ApplicationScreensSpecifics.qml @@ -0,0 +1,17 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick + +import HelperWidgets +import QtQuick.Layouts + +//! [ApplicationScreens compatibility] +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Application Screens") + + //ApplicationScreens type has no properties +} +//! [ApplicationScreens compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ImageLayerSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ImageLayerSpecifics.qml new file mode 100644 index 00000000000..5eb5a3508e7 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ImageLayerSpecifics.qml @@ -0,0 +1,56 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +//! [ImageLayer compatibility] +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Image Layer") + + SectionLayout { + PropertyLabel { text: qsTr("Platform ID") } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.platformId + minimumValue: 0 + maximumValue: 2000 + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Rendering hints") } + + SecondColumnLayout { + ComboBox { + model: ["OptimizeForSpeed", "OptimizeForSize", "StaticContents"] + backendValue: backendValues.renderingHints + scope: "ImageLayer" + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Source") } + + SecondColumnLayout { + UrlChooser { + backendValue: backendValues.source + } + + ExpandingSpacer {} + } + } +} +//! [ImageLayer compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ItemLayerSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ItemLayerSpecifics.qml new file mode 100644 index 00000000000..f5c101683ff --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ItemLayerSpecifics.qml @@ -0,0 +1,75 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +//! [ItemLayer compatibility] +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Item Layer") + + SectionLayout { + PropertyLabel { text: qsTr("Platform ID") } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.platformId + minimumValue: 0 + maximumValue: 2000 + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Rendering hints") } + + SecondColumnLayout { + ComboBox { + model: ["OptimizeForSpeed", "OptimizeForSize", "StaticContents"] + backendValue: backendValues.renderingHints + scope: "ItemLayer" + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Depth") } + + SecondColumnLayout { + ComboBox { + model: ["Bpp16", "Bpp16Alpha", "Bpp24", "Bpp32", "Bpp32Alpha"] + backendValue: backendValues.depth + scope: "ItemLayer" + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Refresh interval") } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.refreshInterval + minimumValue: 0 + maximumValue: 1000 + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + } +} +//! [ItemLayer compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ScreenSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ScreenSpecifics.qml new file mode 100644 index 00000000000..9354c65d0a7 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ScreenSpecifics.qml @@ -0,0 +1,86 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +//! [Screen compatibility] +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Screen") + + SectionLayout { + PropertyLabel { text: qsTr("Output Device") } + + SecondColumnLayout { + LineEdit { + backendValue: backendValues.outputDevice + showTranslateCheckBox: false + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Background color") } + + ColorEditor { + backendValue: backendValues.backgroundColor + supportGradient: false + } + + PropertyLabel { text: qsTr("Application size") } + + SecondColumnLayout { + SpinBox { + id: widthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.defaultApplicationWidth + maximumValue: 0xffff + minimumValue: 0 + decimals: 0 + enabled: true + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The width of the object + text: qsTr("W", "width") + tooltip: widthSpinBox.enabled ? qsTr("Width") : root.disbaledTooltip + enabled: widthSpinBox.enabled + } + + Spacer { implicitWidth: StudioTheme.Values.controlGap } + + SpinBox { + id: heightSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.defaultApplicationHeight + maximumValue: 0xffff + minimumValue: 0 + decimals: 0 + enabled: true + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { + //: The height of the object + text: qsTr("H", "height") + tooltip: heightSpinBox.enabled ? qsTr("Height") : root.disbaledTooltip + enabled: heightSpinBox.enabled + } + + ExpandingSpacer {} + } + } +} +//! [Screen compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/SpriteLayerSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/SpriteLayerSpecifics.qml new file mode 100644 index 00000000000..d21f999b509 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/SpriteLayerSpecifics.qml @@ -0,0 +1,47 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +//! [SpriteLayer compatibility] +Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Sprite Layer") + + SectionLayout { + PropertyLabel { text: qsTr("Platform ID") } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.platformId + minimumValue: 0 + maximumValue: 2000 + decimals: 0 + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + } + + ExpandingSpacer {} + } + + PropertyLabel { text: qsTr("Depth") } + + SecondColumnLayout { + ComboBox { + model: ["Bpp8", "Bpp16", "Bpp16Alpha", "Bpp24", "Bpp32", "Bpp32Alpha"] + backendValue: backendValues.depth + scope: "SpriteLayer" + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + } + + ExpandingSpacer {} + } + } +} +//! [SpriteLayer compatibility] diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Studio/Components/ArcItemSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Studio/Components/ArcItemSpecifics.qml new file mode 100644 index 00000000000..49b32e8f9ba --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Studio/Components/ArcItemSpecifics.qml @@ -0,0 +1,282 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick +import QtQuick.Layouts +import HelperWidgets +import StudioTheme as StudioTheme + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + caption: qsTr("Arc Item") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Fill color") + tooltip: qsTr("Sets the color inside the Arc stroke. This only works if the Full outline option is selected and the Arc stroke is not thick enough to fill the space.") + } + + ColorEditor { + backendValue: backendValues.fillColor + supportGradient: true + shapeGradients: true + mcuGradients: true + } + + PropertyLabel { + text: qsTr("Stroke color") + tooltip: qsTr("Sets the color of the Arc.") + } + + ColorEditor { + backendValue: backendValues.strokeColor + } + + PropertyLabel { + text: qsTr("Stroke width") + tooltip: qsTr("Sets the thickness of the Arc.") + } + + SecondColumnLayout { + SpinBox { + id: strokeWidthSpinBox + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.strokeWidth + decimals: 1 + minimumValue: -1 + maximumValue: 200 + stepSize: 1 + + property real previousValue: 0 + + onValueChanged: { + if (strokeWidthSpinBox.value > 0) + strokeWidthSpinBox.previousValue = strokeWidthSpinBox.value + } + + Component.onCompleted: strokeWidthSpinBox.previousValue + = Math.max(1, backendValues.strokeWidth.value) + } + + Spacer { + implicitWidth: StudioTheme.Values.twoControlColumnGap + + StudioTheme.Values.actionIndicatorWidth + } + + CheckBox { + id: strokeWidthCheckBox + text: qsTr("Hide") + implicitWidth: StudioTheme.Values.twoControlColumnWidth + checked: (backendValues.strokeWidth.value < 0) + actionIndicator.visible: false + + onCheckedChanged: backendValues.strokeWidth.value + = (strokeWidthCheckBox.checked ? -1 : strokeWidthSpinBox.previousValue) + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Arc start") + tooltip: qsTr("Sets the start angle of the Arc.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.begin + decimals: 1 + minimumValue: -720 + maximumValue: 720 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Arc end") + tooltip: qsTr("Sets the end angle of the Arc.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.end + decimals: 1 + minimumValue: -720 + maximumValue: 720 + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.controlLabelGap } + + ControlLabel { text: "°" } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Cap style") + tooltip: qsTr("Sets the line ends as square or rounded.") + } + + SecondColumnLayout { + // copied from CapComboBox + ComboBox { + implicitWidth: StudioTheme.Values.singleControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + width: implicitWidth + model: ["Flat Cap", "Square Cap", "Round Cap"] + backendValue: backendValues.capStyle + useInteger: true + manualMapping: true + + property bool block: false + + onValueFromBackendChanged: fromBackendToFrontend() + + onCurrentTextChanged: { + if (!__isCompleted) + return + + if (block) + return + + if (currentText === "Flat Cap") + backendValues.capStyle.value = 0 + + if (currentText === "Square Cap") + backendValues.capStyle.value = 16 + + if (currentText === "Round Cap") + backendValues.capStyle.value = 32 + } + + Connections { + target: modelNodeBackend + function onSelectionChanged() { fromBackendToFrontend() } + } + + function fromBackendToFrontend() + { + if (!__isCompleted || backendValues.capStyle === undefined) + return + + block = true + + if (backendValues.capStyle.value === 0) + currentIndex = 0 + if (backendValues.capStyle.value === 16) + currentIndex = 1 + if (backendValues.capStyle.value === 32) + currentIndex = 2 + + block = false + } + } + } + + ExpandingSpacer {} + } + } + + Section { + caption: qsTr("Outline") + + anchors.left: parent.left + anchors.right: parent.right + + SectionLayout { + PropertyLabel { + text: qsTr("Outline width") + tooltip: qsTr("Sets the width of the outline that follows the Arc.") + } + + SecondColumnLayout { + SpinBox { + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.arcWidth + decimals: 1 + minimumValue: 0 + maximumValue: backendValues.maxArcWidth.value + stepSize: 1 + } + + Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap } + + CheckBox { + text: qsTr("Full outline")//backendValues.outlineArc.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.outlineArc + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Round outline") + tooltip: qsTr("Toggles the Full outline to have rounded edges.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.round.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.round + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Round start") + tooltip: qsTr("Toggles the starting edge of the Full outline to be rounded.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.roundBegin.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.roundBegin + } + + ExpandingSpacer {} + } + + PropertyLabel { + text: qsTr("Round end") + tooltip: qsTr("Toggles the end edge of the Full outline to be rounded.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.roundEnd.valueToString + implicitWidth: StudioTheme.Values.twoControlColumnWidth + + StudioTheme.Values.actionIndicatorWidth + backendValue: backendValues.roundEnd + } + + ExpandingSpacer {} + } + } + } +} diff --git a/src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp index be5057cd3ec..4361322af28 100644 --- a/src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp @@ -391,6 +391,7 @@ namespace { qmldirPaths.push_back(qmlRootPath + "/QtQuick3D"); qmldirPaths.push_back(qmlRootPath + "/Qt5Compat"); qmldirPaths.push_back(qmlRootPath + "/QtMultimedia"); + qmldirPaths.push_back(qmlRootPath + "/QtQuickUltralite"); } }