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");
}
}