From dca61519934ed9fafa9107f7d604cce32296ef02 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 18 Mar 2025 13:27:34 +0200 Subject: [PATCH] QmlDesigner: Add specifics and metainfo for studio and layout types Some obsolete studio types such as FlowView and MultiText were not added. Also removed some unused images. Fixes: QDS-14928 Task-number: QDS-14927 Change-Id: I889d30e3be000056d2d367c7b7aad4825dbecd3f Reviewed-by: Mahmoud Badri Reviewed-by: Marco Bubke --- .../images/brightness-contrast-16px.png | Bin 0 -> 226 bytes .../images/brightness-contrast-24px.png | Bin 0 -> 284 bytes .../images/brightness-contrast-24px@2x.png | Bin 0 -> 517 bytes .../itemLibrary/images/colourize-16px.png | Bin 0 -> 388 bytes .../itemLibrary/images/colourize-24px.png | Bin 0 -> 492 bytes .../itemLibrary/images/colourize-24px@2x.png | Bin 0 -> 835 bytes .../images/column-layouts-icon-16px.png | Bin 0 -> 113 bytes .../images/column-layouts-icon.png | Bin 0 -> 118 bytes .../images/column-layouts-icon@2x.png | Bin 0 -> 121 bytes .../itemLibrary/images/custom-border-16px.png | Bin 0 -> 170 bytes .../itemLibrary/images/custom-border-24px.png | Bin 0 -> 208 bytes .../images/custom-border-24px@2x.png | Bin 0 -> 305 bytes .../images/custom-rectangle-16px.png | Bin 0 -> 135 bytes .../images/custom-rectangle-24px.png | Bin 0 -> 169 bytes .../images/custom-rectangle-24px@2x.png | Bin 0 -> 237 bytes .../itemLibrary/images/default-icon.png | Bin 813 -> 0 bytes .../itemLibrary/images/desaturation-16px.png | Bin 0 -> 162 bytes .../itemLibrary/images/desaturation-24px.png | Bin 0 -> 173 bytes .../images/desaturation-24px@2x.png | Bin 0 -> 214 bytes .../itemLibrary/images/displace-16px.png | Bin 0 -> 335 bytes .../itemLibrary/images/displace-24px.png | Bin 0 -> 722 bytes .../itemLibrary/images/displace-24px@2.png | Bin 0 -> 1431 bytes .../itemLibrary/images/drop-shadow-16px.png | Bin 0 -> 119 bytes .../itemLibrary/images/drop-shadow-24px.png | Bin 0 -> 129 bytes .../images/drop-shadow-24px@2x.png | Bin 0 -> 125 bytes .../itemLibrary/images/ellipse-16px.png | Bin 0 -> 272 bytes .../itemLibrary/images/ellipse-24px.png | Bin 0 -> 367 bytes .../itemLibrary/images/ellipse-24px@2x.png | Bin 0 -> 640 bytes .../itemLibrary/images/fast-blur-16px.png | Bin 0 -> 258 bytes .../itemLibrary/images/fast-blur-24px.png | Bin 0 -> 401 bytes .../itemLibrary/images/fast-blur-24px@2x.png | Bin 0 -> 718 bytes .../itemLibrary/images/flipable-icon.png | Bin 678 -> 0 bytes .../itemLibrary/images/flipable-icon16.png | Bin 466 -> 0 bytes .../itemLibrary/images/gamma-adjust-16px.png | Bin 0 -> 273 bytes .../itemLibrary/images/gamma-adjust-24px.png | Bin 0 -> 624 bytes .../images/gamma-adjust-24px@2x.png | Bin 0 -> 1232 bytes .../itemLibrary/images/glow-16px.png | Bin 0 -> 376 bytes .../itemLibrary/images/glow-24px.png | Bin 0 -> 574 bytes .../itemLibrary/images/glow-24px@2x.png | Bin 0 -> 1114 bytes .../images/grid-layouts-icon-16px.png | Bin 0 -> 96 bytes .../itemLibrary/images/grid-layouts-icon.png | Bin 0 -> 103 bytes .../images/grid-layouts-icon@2x.png | Bin 0 -> 130 bytes .../itemLibrary/images/group-16px.png | Bin 0 -> 136 bytes .../itemLibrary/images/group-24px.png | Bin 0 -> 152 bytes .../itemLibrary/images/group-24px@2.png | Bin 0 -> 179 bytes .../images/hue-saturation-16px.png | Bin 0 -> 371 bytes .../images/hue-saturation-24px.png | Bin 0 -> 585 bytes .../images/hue-saturation-24px@2x.png | Bin 0 -> 1065 bytes .../images/inner-shadow-24px@2.png | Bin 0 -> 554 bytes .../itemLibrary/images/iso-icons-16px.png | Bin 0 -> 235 bytes .../itemLibrary/images/iso-icons-24px.png | Bin 0 -> 308 bytes .../itemLibrary/images/iso-icons-24px@2x.png | Bin 0 -> 421 bytes .../itemLibrary/images/item-arc-16px.png | Bin 0 -> 397 bytes .../itemLibrary/images/item-arc-24px.png | Bin 0 -> 575 bytes .../itemLibrary/images/item-arc-24px@2x.png | Bin 0 -> 1069 bytes .../itemLibrary/images/item-arrow-16px.png | Bin 0 -> 118 bytes .../images/item-arrow-arc-16px.png | Bin 0 -> 372 bytes .../images/item-arrow-arc-24px.png | Bin 0 -> 544 bytes .../images/item-arrow-arc-24px@2x.png | Bin 0 -> 231 bytes .../images/item-arrow-down-24px.png | Bin 0 -> 125 bytes .../images/item-arrow-down-24px@2.png | Bin 0 -> 169 bytes .../images/item-arrow-down-left-24px.png | Bin 0 -> 134 bytes .../images/item-arrow-down-left-24px@2.png | Bin 0 -> 171 bytes .../images/item-arrow-down-right-24px.png | Bin 0 -> 131 bytes .../images/item-arrow-down-right-24px@2.png | Bin 0 -> 168 bytes .../images/item-arrow-left-24px.png | Bin 0 -> 130 bytes .../images/item-arrow-left-24px@2.png | Bin 0 -> 162 bytes .../images/item-arrow-left-down-24px.png | Bin 0 -> 130 bytes .../images/item-arrow-left-down-24px@2.png | Bin 0 -> 169 bytes .../images/item-arrow-left-up-24px.png | Bin 0 -> 132 bytes .../images/item-arrow-left-up-24px@2.png | Bin 0 -> 170 bytes .../images/item-arrow-right-24px.png | Bin 0 -> 130 bytes .../images/item-arrow-right-24px@2.png | Bin 0 -> 165 bytes .../images/item-arrow-right-down-24px.png | Bin 0 -> 132 bytes .../images/item-arrow-right-down-24px@2.png | Bin 0 -> 170 bytes .../images/item-arrow-right-up-24px.png | Bin 0 -> 130 bytes .../images/item-arrow-right-up-24px@2.png | Bin 0 -> 169 bytes .../itemLibrary/images/item-arrow-up-24px.png | Bin 0 -> 125 bytes .../images/item-arrow-up-24px@2.png | Bin 0 -> 164 bytes .../images/item-arrow-up-left-24px.png | Bin 0 -> 131 bytes .../images/item-arrow-up-left-24px@2.png | Bin 0 -> 168 bytes .../images/item-arrow-up-right-24px.png | Bin 0 -> 133 bytes .../images/item-arrow-up-right-24px@2.png | Bin 0 -> 168 bytes .../images/item-flippable-16px.png | Bin 0 -> 320 bytes .../images/item-flippable-24px.png | Bin 0 -> 390 bytes .../images/item-flippable-24px@2x.png | Bin 0 -> 529 bytes .../itemLibrary/images/item-pie-16px.png | Bin 0 -> 315 bytes .../itemLibrary/images/item-pie-24px.png | Bin 0 -> 436 bytes .../itemLibrary/images/item-pie-24px@2x.png | Bin 0 -> 758 bytes .../itemLibrary/images/item-svg-16px.png | Bin 0 -> 401 bytes .../itemLibrary/images/item-svg-24px.png | Bin 0 -> 613 bytes .../itemLibrary/images/item-svg-24px@2x.png | Bin 0 -> 1118 bytes .../itemLibrary/images/item-triangle-16px.png | Bin 0 -> 169 bytes .../itemLibrary/images/item-triangle-24px.png | Bin 0 -> 204 bytes .../images/item-triangle-24px@2x.png | Bin 0 -> 287 bytes .../images/lc-and-operator-16px.png | Bin 0 -> 238 bytes .../images/lc-and-operator-24px.png | Bin 0 -> 347 bytes .../images/lc-and-operator-24px@2x.png | Bin 0 -> 586 bytes .../images/lc-bidirectional-binding-16px.png | Bin 0 -> 241 bytes .../images/lc-bidirectional-binding-24px.png | Bin 0 -> 329 bytes .../lc-bidirectional-binding-24px@2x.png | Bin 0 -> 531 bytes .../itemLibrary/images/lc-min-max-16px.png | Bin 0 -> 291 bytes .../itemLibrary/images/lc-min-max-24px.png | Bin 0 -> 346 bytes .../itemLibrary/images/lc-min-max-24px@2x.png | Bin 0 -> 378 bytes .../images/lc-not-operator-16px.png | Bin 0 -> 257 bytes .../images/lc-not-operator-24px.png | Bin 0 -> 427 bytes .../images/lc-not-operator-24px@2x.png | Bin 0 -> 760 bytes .../images/lc-or-operator-16px.png | Bin 0 -> 351 bytes .../images/lc-or-operator-24px.png | Bin 0 -> 553 bytes .../images/lc-or-operator-24px@2x.png | Bin 0 -> 1088 bytes .../images/lc-range-mapper-16px.png | Bin 0 -> 163 bytes .../images/lc-range-mapper-24px.png | Bin 0 -> 174 bytes .../images/lc-range-mapper-24px@2x.png | Bin 0 -> 191 bytes .../images/lc-string-mapper-16px.png | Bin 0 -> 149 bytes .../images/lc-string-mapper-24px.png | Bin 0 -> 167 bytes .../images/lc-string-mapper-24px@2x.png | Bin 0 -> 195 bytes .../itemLibrary/images/levels-16px.png | Bin 0 -> 108 bytes .../itemLibrary/images/levels-24px.png | Bin 0 -> 177 bytes .../itemLibrary/images/levels-24px@2.png | Bin 0 -> 142 bytes .../itemLibrary/images/opacity-mask-16px.png | Bin 0 -> 150 bytes .../itemLibrary/images/opacity-mask-24px.png | Bin 0 -> 154 bytes .../images/opacity-mask-24px@2x.png | Bin 0 -> 202 bytes .../itemLibrary/images/polygon-16px.png | Bin 0 -> 320 bytes .../itemLibrary/images/polygon-24px.png | Bin 0 -> 460 bytes .../itemLibrary/images/polygon-24px@2x.png | Bin 0 -> 848 bytes .../images/row-layouts-icon-16px.png | Bin 0 -> 115 bytes .../itemLibrary/images/row-layouts-icon.png | Bin 0 -> 120 bytes .../images/row-layouts-icon@2x.png | Bin 0 -> 126 bytes .../images/stack-layouts-icon-16px.png | Bin 0 -> 157 bytes .../itemLibrary/images/stack-layouts-icon.png | Bin 0 -> 154 bytes .../images/stack-layouts-icon@2x.png | Bin 0 -> 165 bytes .../itemLibrary/images/star-16px.png | Bin 0 -> 325 bytes .../itemLibrary/images/star-24px.png | Bin 0 -> 444 bytes .../itemLibrary/images/star-24px@2x.png | Bin 0 -> 721 bytes .../itemLibrary/images/text-16px.png | Bin 0 -> 141 bytes .../itemLibrary/images/text-24px.png | Bin 0 -> 126 bytes .../itemLibrary/images/text-24px@2x.png | Bin 0 -> 156 bytes .../itemLibrary/images/theshold-24px@2.png | Bin 0 -> 218 bytes .../itemLibrary/images/threshold-16px.png | Bin 0 -> 147 bytes .../itemLibrary/images/threshold-24px.png | Bin 0 -> 174 bytes .../itemLibrary/images/webview-icon.png | Bin 804 -> 0 bytes .../itemLibrary/images/webview-icon16.png | Bin 519 -> 0 bytes .../itemLibrary/qtquicklayouts.metainfo | 74 +++++ .../qtquickultralitecomponents.metainfo | 18 + .../qtquickultraliteextras.metainfo | 61 ++++ .../qtquickultralitelayers.metainfo | 106 ++++++ .../itemLibrary/studiocomponents.metainfo | 175 ++++++++++ .../itemLibrary/studiodesigneffects.metainfo | 15 + .../itemLibrary/studioeffects.metainfo | 314 ++++++++++++++++++ .../itemLibrary/studiologichelper.metainfo | 156 +++++++++ .../Studio/Components/ArcArrowSpecifics.qml | 130 ++++++++ .../Studio/Components/ArcItemSpecifics.qml | 221 ++++++++++++ .../Studio/Components/BevelSection.qml | 110 ++++++ .../Studio/Components/BorderItemSpecifics.qml | 171 ++++++++++ .../Studio/Components/BorderModeComboBox.qml | 59 ++++ .../QtQuick/Studio/Components/CapComboBox.qml | 60 ++++ .../Studio/Components/CornerRadiusSection.qml | 132 ++++++++ .../Studio/Components/DashPatternEditor.qml | 173 ++++++++++ .../Components/EllipseItemSpecifics.qml | 93 ++++++ .../Components/FlipableItemSpecifics.qml | 119 +++++++ .../Studio/Components/GroupItemSpecifics.qml | 6 + .../Studio/Components/PieItemSpecifics.qml | 137 ++++++++ .../Components/RectangleItemSpecifics.qml | 98 ++++++ .../RegularPolygonItemSpecifics.qml | 146 ++++++++ .../Studio/Components/StarItemSpecifics.qml | 165 +++++++++ .../Components/StraightArrowSpecifics.qml | 129 +++++++ .../Components/StrokeDetailsSection.qml | 150 +++++++++ .../Components/SvgPathItemSpecifics.qml | 117 +++++++ .../Studio/Components/TextItemSpecifics.qml | 115 +++++++ .../Components/TriangleItemSpecifics.qml | 268 +++++++++++++++ .../Studio/DesignEffects/DesignEffectPane.qml | 46 +++ .../Studio/Effects/BlendEffectSpecifics.qml | 116 +++++++ .../BrightnessContrastEffectSpecifics.qml | 86 +++++ .../Effects/ColorOverlayEffectSpecifics.qml | 52 +++ .../Effects/ColorizeEffectSpecifics.qml | 104 ++++++ .../Effects/DesaturationEffectSpecifics.qml | 64 ++++ .../DirectionalBlurEffectSpecifics.qml | 125 +++++++ .../Effects/DisplaceEffectSpecifics.qml | 82 +++++ .../Effects/DropShadowEffectSpecifics.qml | 195 +++++++++++ .../Effects/FastBlurEffectSpecifics.qml | 83 +++++ .../Effects/GammaAdjustEffectSpecifics.qml | 64 ++++ .../Effects/GaussianBlurEffectSpecifics.qml | 123 +++++++ .../Studio/Effects/GlowEffectSpecifics.qml | 142 ++++++++ .../Effects/HueSaturationEffectSpecifics.qml | 103 ++++++ .../Effects/InnerShadowEffectSpecifics.qml | 194 +++++++++++ .../Effects/LevelAdjustEffectSpecifics.qml | 161 +++++++++ .../Effects/MaskedBlurEffectSpecifics.qml | 102 ++++++ .../Effects/OpacityMaskEffectSpecifics.qml | 78 +++++ .../Effects/RadialBlurEffectSpecifics.qml | 162 +++++++++ .../Effects/RecursiveBlurEffectSpecifics.qml | 103 ++++++ .../Effects/ThresholdMaskEffectSpecifics.qml | 100 ++++++ .../Effects/ZoomBlurEffectSpecifics.qml | 159 +++++++++ .../LogicHelper/AndOperatorSpecifics.qml | 51 +++ .../BidirectionalBindingSpecifics.qml | 75 +++++ .../LogicHelper/MinMaxMapperSpecifics.qml | 111 +++++++ .../LogicHelper/NotOperatorSpecifics.qml | 39 +++ .../LogicHelper/OrOperatorSpecifics.qml | 51 +++ .../LogicHelper/RangeMapperSpecifics.qml | 105 ++++++ .../LogicHelper/StringMapperSpecifics.qml | 57 ++++ .../AnimatedSpriteDirectorySpecifics.qml | 130 ++++++++ .../Extras/ColorizedImageSpecifics.qml | 79 +++++ .../Extras/StaticTextSpecifics.qml | 34 ++ .../Layers/ApplicationScreensSpecifics.qml | 17 + .../Layers/ImageLayerSpecifics.qml | 56 ++++ .../Layers/ItemLayerSpecifics.qml | 75 +++++ .../Layers/ScreenSpecifics.qml | 86 +++++ .../Layers/SpriteLayerSpecifics.qml | 47 +++ .../Studio/Components/ArcItemSpecifics.qml | 282 ++++++++++++++++ .../project/qmldesignerprojectmanager.cpp | 1 + 209 files changed, 7258 insertions(+) create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/brightness-contrast-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/colourize-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/colourize-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/column-layouts-icon@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/custom-border-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/custom-border-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/custom-rectangle-24px@2x.png delete mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/desaturation-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/desaturation-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/displace-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/displace-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/displace-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/drop-shadow-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/ellipse-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/ellipse-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/fast-blur-24px@2x.png delete mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png delete mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/gamma-adjust-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/glow-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/glow-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/glow-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/grid-layouts-icon@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/group-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/group-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/group-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/hue-saturation-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/inner-shadow-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/iso-icons-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arc-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arc-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-arc-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-left-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-down-right-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-down-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-left-up-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-down-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-right-up-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-left-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-arrow-up-right-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-flippable-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-pie-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-pie-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-svg-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-svg-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/item-triangle-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-and-operator-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-bidirectional-binding-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-min-max-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-not-operator-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-or-operator-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-range-mapper-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/lc-string-mapper-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/levels-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/levels-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/levels-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/opacity-mask-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/polygon-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/polygon-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/row-layouts-icon@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/stack-layouts-icon@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/star-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/star-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/star-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/text-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/text-24px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/text-24px@2x.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/theshold-24px@2.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/threshold-16px.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/threshold-24px.png delete mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png delete mode 100644 share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png create mode 100644 share/qtcreator/qmldesigner/itemLibrary/qtquicklayouts.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/qtquickultralitecomponents.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/qtquickultraliteextras.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/qtquickultralitelayers.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/studiocomponents.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/studiodesigneffects.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/studioeffects.metainfo create mode 100644 share/qtcreator/qmldesigner/itemLibrary/studiologichelper.metainfo create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcArrowSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/ArcItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BevelSection.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/BorderModeComboBox.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CapComboBox.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/CornerRadiusSection.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/DashPatternEditor.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/EllipseItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/FlipableItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/GroupItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/PieItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RectangleItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/RegularPolygonItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StarItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StraightArrowSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/StrokeDetailsSection.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/SvgPathItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TextItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Components/TriangleItemSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/DesignEffects/DesignEffectPane.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BlendEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/BrightnessContrastEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorOverlayEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ColorizeEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DesaturationEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DirectionalBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DisplaceEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/DropShadowEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/FastBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GammaAdjustEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GaussianBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/GlowEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/HueSaturationEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/InnerShadowEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/LevelAdjustEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/MaskedBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/OpacityMaskEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RadialBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/RecursiveBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ThresholdMaskEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/Effects/ZoomBlurEffectSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/AndOperatorSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/BidirectionalBindingSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/MinMaxMapperSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/NotOperatorSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/OrOperatorSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/RangeMapperSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Studio/LogicHelper/StringMapperSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/AnimatedSpriteDirectorySpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/ColorizedImageSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Extras/StaticTextSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ApplicationScreensSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ImageLayerSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ItemLayerSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/ScreenSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Layers/SpriteLayerSpecifics.qml create mode 100644 share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuickUltralite/Studio/Components/ArcItemSpecifics.qml 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 0000000000000000000000000000000000000000..76160da230378343ce69373c8bb4b4ce2d6b7e35 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmW!d_r6q7#LQN0#@xxv}9ml z;4caC3ufTt6EKU*?3*%c>B;-ge-*Gz@MmCP2=a7s4B?PXPDuD*^F57=Ss>#tdy^{< zkI(P_|NZy>k8W(_K4CuL$Nq+c@<$S0{6AzMe`dnplLc~T68<0lAa^F=Z+pUlr4PCu k-g?M(Xl+9@S1}udLcQ0`Afwu23=9kmp00i_>zopr0N7DsWdHyG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d905d3d9378ff9aba6525af7244fcc937d7ad7fd GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8NFbnVrab;j&SV1~CvTMgW z1_lPfk|4ie1||UwO~>@6mfi)M51)AS{s%vY`&R}Ah89m3#}JK)rIRiSH7oG2_&YkW zw*LJ;|E=@tRIQ!IZ}TWl_mFp8%^S6KMc~4M)h+YqTQyhh`co6R{x6F{{p0 zz`&qV666=mz``jYDW#ySYv>x6m{eNc)Y36?){29tE?vFx?Dg9(-+%u4`|l@D;CluJ zMnz8-#}JR>bEn-bYBu0;)i)8~P?@k{OH0ertN-hh<#J|BW4N|f&h&f5nxm5%m$qg` zZlCLM{aUKjp+v`PC*-p?CAin=xK(c6Xpwi~Z_R{I>7sgH`Mar?-(B2o_cHbPuauSh zbyUwEWfX6Zvn#NO-M_8FC5(ZgWA*%-pI?Us?q_BA_*~|=%+CGO=5scb&n`AiHJ@(F zU{N0(pZD6@f?>{bu359hA2Au+UB%FlP{KT~w}yuyW|l5)M{)l-2P$;gHLmrfbIu_I=KbwUD$n>Pt}vTD^>FO z;@h+K3corpIXB1~e^Gesu4>!!v+%sWNL}hj?}_od|0F%%&-eewoQ!?;`qO&%dJ0}j SvS(mmVDNPHb6Mw<&;$T?S@Zz_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b7532068447a9c08575cf040e14d89af34421a2a GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7y**tVLo9lyUbf8+2^494 znC`@4FW|DpH&r!iiPyqbo-EUdj-yHn8#jE=U$OTeYj$p#B8QTgm|<(v#t9C~E`>}q z=}UMj-W2g9&Qq`0dDHCTi1fYPXYHQz$Shcu)zL1YI`hDTh7a5_2PF=xOupB!YFF=7 zmDjR6)*7}2Gq1|xn{RN?*5=iL+`ac#H@n&#^yz=9?pE8rq4oWb%k1ir^P~boxhwj9 z@3_eMli&EM*s3f!?TTqn!WPFK4wg9-H0k)-`en@Xk89T)nd>I~K&S4pzMRRvyNscw zY^Qr)R!xczE#=ZL6j#1;BvWV0oi}_Htm*}pC!ep{)p4jW#&^@Liu)=zbC}tBe=vT& zaU@$NukAZ;_@p(Z>04Jb&&j!Fsbl(E-`D(gt-+bFtClivUqtVil9H^y_3R!luGt&Pu-zY5Z=oZcLV_;xl@O1TaS?83{1OOX2s3-sc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ee306f15b6350fd31bd3fe39834a871b464e40bc GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8Nm>=L1;>y6luwoE{_9-%& z3=9k=B|(0{3`}gCT>Ju}GV%&48d|yr=8paWfx$6}X<5xP=4{%s@4(43=gwcgb?5$r zCof;W{rLIIw;z8$K0b1kfq~(Kr;B5VMsVqcyJC$F60Hw?g@h(O(Qi4DAoBa)`m>H{ zOJ}}0{5tQf&S<$&8g z1_p+Zk|4ie21XWEHcl=cK7L_QNhujQc?A_+ePeS=TRSIDU%#m6nArHt{KATkp1%GG z6Q@p_K7YaDP5bsAIDGuX$+H(P-?)9}?!AYPo;-c=^7Xs-A3uHm_WjqNznsm!^BEWz z=X<(1hIkyGI`w+kAqNrH^{mlr7TnOz+92)yri)dyM`_pp|Isxw7&*^OI8*C&?UuD= z`dJ^PNlAYe%N0t>&*6cfv&+q9)r2QsI8tu-DgU$Dy{sq7i{^B0m-xw1G1uf{+GCc6 z>hnhq2QHsr$^2kd#-oqCGuzf}?90!wEqZ>eyJy;+iix%Eb+;$pXFBJ9`7`T-o3HJC zPv`^|35?Zt6%pweD*GVuqXVH+r?A*R~pjSSFZ2XK7Z)^)slzD zd}3CG-|@fY=eKwRUqtQ{jpsanN{-Yg3cl24db6rl^lbTuom^{MOXuWDhE{)9y?iYF zey3~`L5*IgGZ~U)=T(T{PD9nKX>|+t<7UsY9gaR2_( z&+Zp8FfcHd1o;IsI6S+N#=yWJ=IP=X!XcadBQze_%ku=NahxtU!(Mg Qfq{X+)78&qol`;+0N&an@&Et; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0cd116d13cd2efa5c1c62a6f4d982b052304ff9b GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|CT0c(hPjegvl$o|I0Jk_T>t<7UsY9gaR2_( z&+Zp8FfcHd1o;IsI6S+N#=yWJ?djqe!V#UE(7?1dbafbm=G6-qI38*2%4A?>m?@=~#GEr{=|Tqq(+rEnd`ss$d$KZ^ YXXH$&oauIffq{X+)78&qol`;+0AvjY#}_}El=ULN#vNQgQX zkjD^oAmUuWI)<>W`HaDHf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..451ead0c04a5a1223f07560698b591dd85ea4c34 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|7G?$p2BAoW(+ms@iUB?$t_%zeEAWEa&$cNH z3=CW)L4Lsu>;lGiiEHnC{PXJV0wo3ph7eB|#}J9|bP0l+XkK!#9VJ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72893106ae9ca6d29b2171d7c243b3c54b87063a GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdCT0c(hNQXTpBNYzcmjMvTp1V`R=|KUn_xc! z0|RqOkY6xE)J<1i=>i4@26ayt#}JO_IYB{)WB1ZV$1X)?=HLh^ktJFN9m@_n zDl|(rO+NFW?ZFa*C5ntuMFBdlg?wGkfqNPrSw3Q5xU(w2l0SUkM+OE422WQ%mvv4F FO#pUhH@N@+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..150fa50ea2fb40e65e718cfc175b99693b79ce6e GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-7G?$phNU`BwlFX-CtiTIuKij4- zFfeeH1o;IsNNYN_uR8VS%danwD(n~-7z#aI978NlCnrd(aZpVb<;o~->gZl~h@nxT z@R^oR=TkNZ&eNe02U6JBj%noxoo1DY2v1~X{(JaZG%Q-e|yQz{EjrrIztFrD{waSW-rwI$THN61m6PC!gWBb$+hrDZ|uF{kqy z0^G&nnTy531+{Ydq@}dAC+$A=&8ew1P}y)sjJIBR#EcmUJ*|cpFK09dp3>j~wEhY<~F6zW3GlXICa`PW3YS<1F2O++eO>s-wWAt65)L%WS8gUir){ za+=~)uZf&}H{G6Ryxb9?<76~*ONiFgAQLIktgTTOdnS~c&3-A9JvVuCgwByZH|36_ zNfSI&7TkVo$KC3*U7Sf`V`}8)Vit#)N)tJbJT81uV&(s*u0Ac1<;Km8+b)~3%&|LtP`9>0(I z<#&!F%4M5&Y%CJoWS#%e>jr!ND|^K^We2}rcC7gFPkPR0x%RJ9Ri_#+=9nU5Q}LJ4 zugiU5nZB#ei67PpT?{YQ+I5&i3Pwz{-E?pAE&;LFb}M-W4Zb^N zjz3?_IK0g6T79qLfjtR=VH)1CuO=D@29)bJT#RR%n(Wj*ImLC+R`2u&kNd@R?C)N) zOr1ONK*l7;YqDI2Rgy(!o=)fFkUM>KZMXujdx35llimHjOD*o4y%Tb5{gRtn zlWxB?`>&>4wEnvC(bI3sR!5jh@m@Ca^Y6d>@(J?;H=To9uH~8XB2+L=qJC-AedhZpJ=$f(-M2z1bkwFnGH9xvXz?dp_;ClDpdR v?C(EoZx(YqwJL;gU=S}3t}CcHzS_>d-*Q#D-j`qo1_lOCS3j3^P6Md literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5d613f942205b475124d502e77e6ae4103f03c57 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-7G?$phNU`BwlFX-2nG0rxH2#>tUv`Jb8m$( zFfg!|1o;Is2*`I#m#|!ToPmKM&(p;*#NzbYD~`NOfec43%yem2ncVu@zeFd-~IZX a_r6qq%-r&tHI#vYfx*+&&t;ucLK6V1Hb%t& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dc2306b93bc09d2d7da2c291d6d6aa33b45e685d GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+ig~&?hDb=39<=oqVUS^e z@IUoJp||5Jc8+y(q+FZS>>ak4q&PM@N1Jfy`cAYkV|6$WSusC@PR%!`?8wbFGmuiM9bj(js^8ULdTHN6|PlA?F}yz2guxA5PG zsGQ7e6QX}9J<9u=6!<3diof1(EhV{`D;O{TN?KP}e6X>jVqGZny^g29PDk!mN;(}f z)p}9%W1rVu9p!%3`oH|HTIfnEJzCXPTez}qPQe~Gp9sl7?qe3ucZt59w_{}?%kHVy0&a0Oeq~@_VDNPHb6Mw<&;$UKjgoW# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9563df40df64252001a80b9cf9affb6b359f33f0 GIT binary patch literal 722 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL8W_r3fhIn+Yof_TI7bwy; zKi)oVMW;;hF2RZ1zk*$kOnBUSIcANtsE_=etppM^4C z7+x^+Rn1WQW1O(8KF?n|hNbN1bLj`W+T*jQMT&)7y_QqBN=?4QTOn@-$D5De{6eK| zr`|ZX%Xo|M9^PNcpY`%y{wy;2Du1lfYx}j;tKQZv{Qh=^%M)jV?dmV4Ki$)|jWu=M z_3aki8??46Z0f%F@~qs`n1rVDE6!Fo>alq9b)3*Wa7!|D?yH@t&Gx(2q?jL#mh#=! zd~1P{X@siQx7n+#E`8o>tCT&>=nc!Jf;g9NYNnOK1ve&5IsUt0!KyMQu}Nif!Wi9| h(lc^$^YRM{OG?WsDywSh8ycHi zTH89h`zK7CGV|I zJAd)=mFqWd-oA79{)2~)o;-X0;^nK??>>C|{N?Mn?>~P2`u*qcKdyZ#Hy9Y0+C5zy zLnI`p9_)gH9ds(_#{zuvQZ<~q$gB) zK~v&)VS$y?829cpShMg^s+Q83Z^1uiv?x3m*V<(yxUlz7fQ?hwza@ueb8qJIk`~zZ z$69p1`Jp4GZV#nIKHCRAEI+)Y_0R<2t|iMu=3ZKG!!1)csE{DNNYD}U@_aV%EToa46SkD^u^x4@UCL(wjgSKM3k zxp~?(&$>;qe81vWdxPkdQ-Zo56+=t;IHK%ZZ*O?8$1gOQsYP03kCaZv@s(B6819C7 zaVM@ku1eUBXzkTt)(>#taV=Hr*9vV%zgBDuCb};)UQ*- z7&7I&Vmlp*LT_9APrcJQqs(jZX@#>|*)j{)svi(!+aYLF8yjoBR+Rbdly`@8vdb4w z4}8aP;oC2dZ)aRYawq;S6BnH<{z&1;w;~;Ovl!NQpMBR??PZQ#t1fFoDE@MU|{fc^>bP0l+XkK5|Sl` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..266e7a8524a6bbf19a69ae67681b4e8f06548eff GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-CT0c(2CW=H5e5bZ&H$efR|W=#6<}~(rcaiE zfq|(c$S;^dAY0{b3U71S_+)goFf}ZhQ7sjrLbEED8rsHf1lK!OURt X*G|v>fZA&Y1_lOCS3j3^P6m{c5Un2ws6&|Inoc9l;12qz;k}bp*^`er#CUG$UYX^UH_?FP|Yqpm2@i+EA7#J8BJYD@<);T3K0RWs+Zw3GW literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..559551e68c34bfdd714a0d794a034a632095cec3 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8NNDJ@@ab2-u#sB~RSI`)w z+1&4;dI3 zrhB?LhG?8Gz4TV7NkPEjV(1?a&e+8lE*+}cDEgJzIAb-->o;!RzH|5fgC|d)y?yub=dVBB%B_4142%w*E{-7{$LCIaUDRYC;5Ly%BUCGh zv3j}3N3JMM*KdFCug;8e?_k_yTYuBoIpOnLEn5{Y|A!aU>$aTiR=V%9Z|!IQO2^WB zUMm9H`fe$Gxy!%f(Ti`hTMC(+CT$E*D9%XnTi1HfdW!&mMdFs`url+~gLj9@Km}!bv|Hw+^4HY@}|P>y)I8T`~3Ab?Fqm8ReP=2_x5$anosgh>1$rDT$jT8 zc-yZE4T&!PvtPfvSd{7Bxslo&dqFkwb3*!R=a6{WMc1x2Ci?76m^3@bbK)R}7Z7&z)D8M5W{Y`UMi^9oX_m?g!9P())mb$?Uwv?uWK1P+%#HP&$RAhU|?YI MboFyt=akR{0Kx!ds{jB1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7f409ad27912151d1c7132a3fc9e31a131baefd7 GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoBRpLkLp(a?PTlLp>?qQ@ z-{o@Tkthx|jg6Po-Ya;?JuvG^NL6U}+zfsF=Ifh^Y2);EtNEuWC` z?$4XG({>i0Gk^YW6SL&fRo_=tO<%k+bw+ukdID2U#|aJB@beaDR$5FtKBd|Q#}%1<9-+6VJnpRJ2wtG9l)o=c z<6vBqW#0L^6_(+vqL|$r)EOB*c>Ub8d^4}MqyAx;?c1McM>N#6RR$z8mT58Uk>cJE z$+%%EbB4t0g;8f1Yr+^ROvN57WIC{VBg1xwiHUI*zETb@a*d~X4zylA6Z)pSmMJFi z-r;>(4aI^xx7h^cZ7F>qaf2-?@8{g2XXZ+uWG?+@^vm%$zIgYu1_lNO22WQ%mvv4F FO#s=mrA+_; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..07ba2a0d252fcae33111a5385dfe309ef23617ed GIT binary patch literal 718 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_nF4%5Tp1V`R*Y<*v+~y+ z1_p-Ek|4ie21XWEHcl=cUOoXq5m7O5MP)U0Egd~eSFfP(h{)KacQ?X#zYae3;C0-Xx!BdxfHuI#B1dgJr|E3_x^`&(m8!-j`8Q)(wm;1 z=a=5RL&@KedAF+>lR^2ReaRBsCO5)AAHE{U&X;)N``O0zmNRZX58!cI6VA8yzzIF~ zvV=zymH7<>p3Ts$*!_4$bVbzLLZ5WjxS%-&Z2X@~{Z{;Zkk=oaRPg;S6t;8`*G0C_ z*%MS&dN~#OhcZqw3VlDJWW_5dC-Dg-D_=Q&atoE5#1zWvArzvju+ciCB&VY&EhhM&CVZrotZGBcGO<-PC)UTxaoz*(_DD V=~a@CC<6lngQu&X%Q~loCIAuXV}}3$ literal 0 HcmV?d00001 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 1f5f6966c046938979a1be4f2aac2833aa06950f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4kiW$hJ4Xg>lqjrBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFnM^oIEGZ*nlsgRb!DK)vH!)K}F%81}XF_|!5Rr)DT=GAp+3;pYiBar>#=w_V?CWv`#zdH%tT^!eBF?X%x* zH9z_OyZ59o{)_ddpJu=QwQ6a2+k6+Lk4ZL%rhIfdn)H!v*4ec60e;IbD?4@A`jzgE z?LPWx{^2MU##Pr}Z*5#)uE#U&v}(cLxO^Kq zc|P{lSH1jFBkMR@VqRpL&Az|$!>*{cY|V^2-j-QQ@T_twIbX)^>ewgVnqwBNA>ySr zSt`g{u0Q2f=|=g_Odi?Yn~pCD2w7WJ$8eB4V#T@pj#vIUBrNdijSAfL+Wf*)?z<1m zcF#WhtZx5u$zNRwYZ{mLdDjFv&D?aXqu*_D-1_ppaf^etyzcN^e)($F){7Z$%B;Vb zH-=nG*?sq2(M|&<*2KSc_EWu%J}x{X-Fxh8+U5wI0^1)o`#e;bthYw-#=a}C;BYzr zvqtZs9asBd4c^8F*;aF(eXex56jYFCG_ygV`>{69BECf_U#tF}7R(jnToAUp^$k-a zLo(0K4xJ4VX0usYV^ZHfe8E;^HP=Gmkoq~1m=deGK`UE4YL03i{gYyJGR0^|ibK2X z!C!v7>J!Rjh00%azCP2+y&-7jlOoGAm)AP!lx9uXpuCUsd4%NlpoIYkBr=Wk9(Dw^ zDZ5GQ{CZlZc*i!mfnkTn^wS~vGrc>1yi;D)C!n~(cLQ6}hJ6|KcVk!O?b%ypBggXR k)Aoh4D$88#SS1)PzFuK)yZEsb0|Nttr>mdKI;Vst0H{7N9{>OV 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 cf252f08b8c45ca10c08ac810c8ccfdf895b8efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFqU|_IEGZ*>IpLJYYGsFdB7bw<;Kht)6B9vrm|nC zV6pB`^7YSu%W2W1b}KsL080{MROAZpj&*hEmAgGI_?B@U`aiR>{@xz-E3ZpEC*Awk zc>C=!%k)JW-+uqy?~%|@zBjIt>Gn3syu$`HC;xdd#C@Ce)T8h56tAU88#PWBEexnw zH%a`#SHI<(ZCnv3vNVS&)ho#`n~gb8gth5Biw9@C z%ujteCJVN(=wtX_QW&MLd_zn4tj8@E1e zwXd2m#|Gg9uUX3y=U#evK5g^cvhIk|*yT}IvqaakIx-y0+n&57G_%{Fx$5)JJ$LhF zFXP;p8hJx@&$r1!Kb6h0Or&_D6yKaEv6Ag|`@uf@PtEn#`EN8T*mf3hmNT+3{N-f7 V+@$hVj)8%J!PC{xWt~$(69B=u$xi?P 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 0000000000000000000000000000000000000000..c4b16cad6e972725ff67c4de3a94056ba44d7925 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+-0*a943Us5J?O8^oFK#S z;Qp!kX4W%m81%BkEq7!*d9?5SLyw?+465wv>UrlG%h{i9ILx%2>guU}zPL0&C(36< z_0;W3g3S?=*R1{-*yEUDYNG0H*kgNgeGt!LrIp7F)b3h+SSr$dVx?72!MZe+Unea} z)#VezE{A;yo;GFi*=_u-FH%E;dd!R`Eq$T-`ruy6#aiq3YP#5W&$7F!sy{7RAhlnr e%*XY(yz1A6RY~lNQWzK*7(8A5T-G@yGywo{1#&9@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad0c8dceecc5f6d74bcbad003ca32fd0b6eb1f4c GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL8%spKkLp(ayUbD@ZA1cE3 zA--o>hamU0AeknQgO0p{E`?sR{rD#Cn!-HS%PTPORk(J<)G`gtrOq2$x9!^Ya%NC# ziRRx0E*dL541R3PoF<^cr>7g{A#+c#uYEFJ{Z`JtK3l_fcF&hq+O)aozFc z8Ak(LbV^kNT-GIv|2r7GYVZFgE%E&w>t|V>)s4zuBlE!7qV0Rvf8Bj~-ZuhRC(N{e z(0c4khKtYEhvrd?H8($`7nGV7m@^6Q2>*OsIqBzrk%(h=XVq8h7ML^5U(7$fyS_m8 zgWK&d#-ZQ$v}*ql<$rv%V@B@jmphuy+=)N2yueOLEX3bUUN7z0vURLR#UWo${cGHK zYhhhuCeNdc=y$uKr_A(Uwe3-$?%#Pc&##Kw%HDkT`JTyKW#XSsZaXa^X#bF>>SLnu zz0L#5NA=b;T86(VFlV}a^xf$*)58zCY^*n9mff0}cJGMaRo34MO6R7ptMvW)U~kZZ zYUQLw(v6HY?Q2tCN!zraHN8>cQgbJi)%8hb%;9Zr8FKGkj-*7#9T#7F=gRZ~@2|oi iltQZBuB?Pv; zl)TBnz%a8U$S;_Ik%^gwm5rT)lZ#hCSVUAzQch7>RZT-vOGj5v-_XR=+``Jn*3QAv z&BM#v*DoM2I5a#WCO#oCIW;XkBQrZEH!r`Su)L z`wt&Keg5+8`;VW$e*gLVk1=zjDFXwOgr|#Rh=gSC!A|?hg$&0(zK@u!9PYWYM8j** z7Cj})OSK(d?Lv32xRh(ePFZdG?DPF^)n<=x#;s4UzL$S9<(mC$HH)Hc4xQWfa@XHk z=(1JVr^a^Soc=HVizlV6j4ex&du^i)rcc`4-9yo5`q zZfTMD$|@o6-k|Cp!zB#IvipNpA1IRZUV4W^KzM?7T~gMQuJ`JJ z?`?~oD+Si=+%mCaqsdOwmZvjfULTwB{nT1tMV;MGgN{kRVEpwoNSwvUtx;>|C9Z=> zR~a5h7CkJGn5AONv};OKD910`NnFnx{(3E~k*j-p`V!Bd6QM=X%Nw;^m#{Yc_F9#| z^y12Gfz)lRGFZ@JMqC3 znZJ$u9gn@1P3&O5TFdPc8&)KHgmb$#>v`FneQ!g(US99uj6F3?+P6C* o&6?}!rFF{}7A&xf?)=Amzopr0FyzDssI20 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8adc9315bb9ba73634b5aa5a3136e140bfc9cded GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0y~yVBlk5U=ZM7V_;xVo8o81z`$tl>EaloF|qgj#;mE1 z0!KgI|2|P8FsCUY(S&hzLVBhmON+)G_8D6I3(Odqqdcordw(%FCCE7lC~kFCDw}kz z!R%lNr<-!e**hC*;x0C(KA&Uz|L#q{;F*^Fp*;ri-{j(wm6g67ySc9MT_SV3&pP2X zZbwcB8yLTTT*=z^k?XzJ{UcmyUiKXw;<0IQhxL|y6kOc#!{o;yr`~E=`;9jqCpz9& zcMQ0%!&d%+(#4D>gqV>ep7i_n$W_YtGJF*UuFEvp-P0b-quc^!5)L#@|1x zDec?#^30x&-4!v{%BIiU{!y%U^53?@uk=my59;fD7u?vY`i94CSIFwtvJE1F(Xq*= z&RE_#kUB^AH~YQ^&Mq}_>9;>#Ihez|vTj>z!m0UN8`PQeYb9Q_v(0<7;39j)H-7`A jJ}$ex8cKZaJMVM+jQaIGJ3*6yfq}u()z4*}Q$iB}woavf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..782a5ce5491a07e66bbaf3f6b86d26231d3d1237 GIT binary patch literal 574 zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qV36QoW?*1Aneexgfq~&nfKP}k0|Uc~;R2Gh z4*D}NFgTY4`2{mDGI4VAh=_{IDyV2`X&YErI(d2f2Zux?BxaS=)i-xdnm2#ZvgPYH zZ`rzS`@zGQh{kQUf)h`AHhI^hajv*3~sR!Gmni3e= zF7mr~iA_~j)phS{GcKCl_5Sbu;QAwr6P~~D|ChO?<>?E{^~Sr)RZ8C6LDNlDOTUc6M#Zov6>X-GS3? z{kc3X<*NCSoLAH8mfl&nU46s%U3p&VVP?-QcCJ|}@!Kp#dzHtE6*CkY7e0E&ap$#@ k{NnZA*V!%ZXnbLwQEjnymD%y_3=9kmp00i_>zopr0FNRk#sB~S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ae6795a06e0fcdab0529e2b91886993efcac7f76 GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0y~yV9;S;U@+idW?*25^~<=-z`!^=z$e6&fq`MgC>WF> z@Nwf3V+IC>j*=k1UQNog5bc?Cr!6?Gk5J$*wXV@oS*TRVFP zCudhTZ~uU>@YsZ;+%w;YyXbdZG2^gy@JR zsmr+&kMFDBR&{@K?YWy}_rA`4?$~)CL1*Vi_jkD}$<2%!702#fdUSUN`_#((_nXeV zlhxOfxR>U7`>@8-_(f|~?R94D4|teu?9(K5wl011{)}a;fg(SSE%GUOu!H%)#>R{` z*O|fwSJrMy(0$}IQG3&|rmI#S<(VgXcPBiQI)721^}@X6OG+2`w7Y5E?_*xCndulJ za7AP9!F_gKRpwf+u4#T{tZ>R?GRq69;`&j-^*Zl{#U?+;?~j?52Hx1^q}jwSQX-#I zS;}R&L}ST<35z~(MRFMj%vd(zs65x=fE_-H>|V|R5{p>o9#YkaS@J<#s#R0NC*Z<_ zB_B>QM)&oL#3jwT#Cv0xUnbjJlQZ+3T-BdvzG(Su%=`1mRy}#0n%HpRN~ueJ3+AU; zzkKq^sU}Zv--bU*d!0Aey{SIoT-n0BwcDoUXcUKOaAnxU{h`fG*I1?sDb8qJBzfzH z9Ph#@pTC@Vb4pFuEIiHqoJHdCyEiUfyDZK3{o9tUCc8eyUui#m<#69)Tko2J1J^94 zS@5@}Z>iv$x_L`RYtS6E{)N}3Bu~88qV;a$3%gaBKO7IAXA3d)JgldGajmMVI=Fwoz=iXV z85kI3JY5_^IA$jQ`2XLYnL~a;f?CJ_{|yO?t~i}xWq8*s?|<);b{qo(1B0ilpUXO@ GgeCyB{2^li literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..95b49e13b0c99f687ea818de27fc35528a630d2f GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-CT0c(2CW=H5e5bZ&H$ef*Z=?jS5;M=I&mU% zjkO&E0|R48kY6x^!?PP{3=9nFo-U3d8t0P}6!;9*HZ`-EoV#-2!UY2Z!#kD<^2two hHW(b3#@E5jaR0~=T`x&hc?Jds22WQ%mvv4FO#sanC$9hi literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..86be6eacfa66b89dc1fbd4f1d85e8fba31c0e465 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7{5@S9Lo9le7l;_Fi`e+c zUd(usvXauX#Ev9JpBYXG7xpF{Ex2cMWO nCR}LTI@W4S%h6dfjNwP&&Z43+y44$rjF6*2UngBSdFa-br literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dca6f51aa1f626a15b7f25011ed338235c1a2478 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-7G?$phNU`BwlFX-s08?gxH2#>tRMuYS36`d zFfeeJ1o;Isu*tb6)HhB(`R1=$i2V)*1_onK7sn6_|KtRTs04GCoTI86PcyV1dFQ!9 zrHtdjgd4F9-bu5$xg0zeGzNACb{^C-+`_QUxhj$1RVSe^~q=TlQ_&BI9*4 z-^zwz4t@e#?-P8I~$H(X5QR8Z~N`dc{6mJzi79qE;0XqC#bJ4G>p$`N~CGk zlSJkzQB1x3ChSIM8)9DaIxH0xc(c;<$=MajliAmLuJhYzopr0Lpo?%K!iX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1d5320726cc3423ff8aa2d4434d75dfc2580cb2d GIT binary patch literal 585 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8N*dE{$;>y6luwn=T>&dm* z3=9l5B|(0{3{1@I+`Ix3k}|6524*&Hfg$0g71cG3Z9TmcX3Sl_dgG2gCr_WdaPivp z8#iw~eDwIqv*+)=eEa_M*Pp-t&fV$NW?*1s^>lFzk&sM1*jjeTfx-1)JKOdL>l~Y% zC;a|@|7xm#W|Y<9?IGEVNn7HS)FH2hj4_vtE{RKMgs|=Dnewq=(>#)-;Lzf1hy^Q5O?m(7i1sZR_)89j>r zAmR{xjY(|NErAz|yph2(PGuc%w)6S&h(*AnYG%WFy@1Ig@`*i%w)Ww@$#1z@Wv|_xI`!?Z{?}_}O%S?z^XtR%&6D;qoS*Et_>oA| RLy&LSw&TKEp0s$Q%fsr8wW=xHy_`CsF=8fwDgSZ z;;QPJy84Ee_O713{z+4(&zikt`HHpcH*MarYtP<&hfbb4edgT7D_5`IyZ_+P<7Y2k zz5ej=)0b~Qe*XIX_n)O%XBPtlldY$VV~B)g@4-$bqeKa|3+irO*WTP-&k?EgTTD^P zx>dt8*XDaYr~Uh$mx~>rFNnLmf9-0Unfq`3y56$i^sLQ=Zw8lJ>`UT5b)U}rlVx%~ z|I^|hM++vFb{+l^=st~alkAU^hPkawxyOGTl+gXYIoIL#8(ZDvf@uphmpNt_&JrrP z^3SXAMbptzkB_(b)PqG>^>gkq9Tl0A6O`k;(RU-KdSRD>h+~(46 z%Y)d{POZxfWHOswqvF1Whkc9B(B#WnaaqPn^P~IH$pOauX4E{9ms1aX+_#yr&|K%9 zwAqtm+!u=uvc+zBaF|beTXVVdpDFix*Qu`lvuIXK_q%03GdUb4E%OnOx8h%6@#08( zLfbNx3*ML4@=sH}H7()e-Ah-xQ@Iv%Z)1+)OL%RhF>PV+nnlYtdj-CAIjhy$m(FD` z;@PDlQrDFpFl9m1;)v!|E{t6=A%R^QA(mWIG)*+hG|LuV&^YB0=;JVPnTNBX<3y(( zCwJco(-g8wx+I)TT0fqgzEJh?;pGOtiaU6_yd;*bi@ue&JAo@)gU5V>U$@;t#($yB zT*+7YGlZ>lUo+T5-YQbPruj7EbkzsF18uAdN^8pN&Q%FUDE)c2X6x6U`>qMxDJ!dP zXRysOzqjHP+ky{kq_?R4Qv4;nMe?;=%~QUkL8<#}=jwesaBXwNuP?`nw8V-If094? Y{M;vz{+qKI7#J8lUHx3vIVCg!03I_Ov;Y7A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..65ade03c2adeb2d3b3f7153cb8094924576eca02 GIT binary patch literal 554 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F6mRwr#`_A&|Cp)9Qid?>V_S8BX#YQ&alOb7kS(zdnYUPm{5enF>4pmq=g-WWVJlqi>Hj^$FaDFr<;`*Pr+ELB|G8lM zmdRJ*Uw1d!OIkH$Q1G6TPO$5zV%X!3KhRO z8V=qrON#o*z)-W7zv003p9}(f3gtVj4Y~HLzu7tQL9d;|N0((~AHILMCg^dGTQkA> z!0ovaZxie*@~wh`ik7f6t}jT^skr$2sM|LCnzPl48b3}ctMb(t_5~UpXgs+3|G#OB zvD_bAnN`$SIqJ_icpDmVuJH8nI%MT_Ah+)4ZmwU2mJ#l=pL#FwpLWVpVuzE}KDoFn z65FyGJUCXQI+~gUE)VeD^zVkVteQihy=g(FqxPk5B1PwFnHv(1KFq%rIhTQffx*+& K&t;ucLK6T1lksW* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b28ea51bc3296b671807e72ac1a4a8090329198b GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdq5|d_r6q7#LO%4Gx?sJj1}i zz*iFF7tFxODIg_p5?;OF$b&Ecx_{>vFfcI0d%8G=aLBSAbmVMxU|>BU$ntU1AGtCC zZca79$rT12?%X;}9ea4{*%(T=6D$~BGjDlr-uO?>+~9hVmdKI;Vst0DGrgj{pDw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b2f839fa498018a6c500dbdaa959b2d5499c6c69 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8N@Cfh;ab;j&SV0Z2l>Lr0 z0|SG2NswPK10x5gfP|F1kx6KHW%axThmPET@cGL>4X4ur3=9k{o-U3d8t13>ISL(8 z5IMSHt;Sl9jZW|CgT)&T=yRX#s!UYy`g>qo-}j#tv2BMAC2x7n@cy-fMZ@z-b3uiB zPwgrLxZf-fnUpYfrE5ouw_xoizEBq3;LQh4UQt?<87$p6e^yAt(`o$ClW!HCG2MFn w+Ld=Jr@Yzs{nT?!%jH~)0_Q2l{XNUxV=5YHIX}^qfq{X+)78&qol`;+006p+c>n+a literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a2e1b2b56f6c17ed9ff47b2ed29fca406335d92a GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_JOX?|Tp1V`R!{>hWxpfM zz`!70666=mz{tTVAR%RBY!Vt?Sv_yTp(FPneE#yU|BU7x1_p+&o-U3d9>=d{R7u+t{uDG1H#4}*&U608N+;&g6q!6=HTb0qKdZ|jo!*x^Gf{({)awhE5 zUV89Oakv-L4yjB%4(C=AahXisSBy)2JwG!p+?tTyy`;7Fq7}z8uO&-WxBUC?_@n>w zEo_?MKA4|pziu7_0|SGn LtDnm{r-UW|e~H0{ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8c3bad9e9a22eea4fff5888d75b0fdf29ee8f752 GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7Lp)s^Lo9lyUb4*=b(A>z z@xGs)(Aqx?LL5#!5jSpjD>Q}Ovbo`9;F@zOLh}b>l7Pt8jRGylCxlHjDf_1BvU|aV zXVVTk9ohcq-6?}Srg>S<=6sf)cXO`a;xjhw(K}jN@BM3%wdwA-yX$`F0~@)7t>2{o z9t&RMeq{T8_LOIadycj`9|(J2V5zik`n?-J_#^J$ZO}75|A6_~tV`*8-d}%Sxa(y7 zqc=z1oYURY*Dm;x+i3IQ(me-0?lW$`s%LDUw6kfx`;oI7cN%|YiwnE9yy@t&?Y3;+ zt6JAzt=pJzX-b_;p~LkjlbiM~D^WMTop1C)&M)lu-beQ*>L+O%`}4S^olAcvd?$C; zZPwWq8BN(~{^b|?Zr)#2+Hh7#FnCQ*PxY!O{hlY-zwI0!{gG* z2}Xe%j9i3xBUpsG_jVTEJgN7wm3w;S`QO&YcXl4WqOG9?0m^((mq-6W7bB;w7f$ayZ#C9Ti{vZe&l=W&3kVI{w=P$wQ_aRs?=v` zHAiPTeYD7X80q5Ul$LiO@XNyG6J{UX7L^uv?61?s>Mw3b)`z8~tvkf9PV7^7*36%~ zX8CSjw$WHgjqBmkUbezrtzVb**|y$!?Dt@5p2)H9S2iw9sCyxxr*zEV+M!#U?#!G2 zcFVz{ucbbsOvkNN)6@9Nwr^PWN<#C=xzuMH`5s6cMr?3@RS{*7T`_6q(WxoV8nc>q zbE*1g&)mruKjr@u%b4SLJ7%mtU>b8Mca827wT*k_1dU(lpAC9!&HLcUq>XXC^Eb1! z|Ld3$dBc_eW6{i{h|r4srPD<>7n-;qu{rlBcy@yNua3>4pWok<7rboI^YDKI|6`A% zpZuFwon+yAbdc)-f5C>I6_IyiL2L-HhO&|%zhDMNCT12^Hg*n99$r3v0TD528960&4J~bb14CmATYCpbCl@zwKmXw9 z*toQe%&eTe{KAU5hNhO*&Yr&h2@|JGoi=^;f~Ct>ty#Nn+xA_1_Z>WR{KUz#=PzEq zdhO<&yZ0VGdi>SWY%;kb~i(=Si4wJ(?z-QMbDU-|a$@7aTUpWmszF^^qwxcaGPmvPMYfoAnTJw4tS_?cUNwc6PD=JxcOa3Zwx*vUG@8ahy?O#&Y9bBgAeqJ%?ib}#}hj^~bSDxf4<;<9s z`6YP!&5i}X>sP*XKeF^)v9eG9zre?C4Utm&wmKF6<>lSXaEr_2&zsie$<1v}(q1jg z9u>2Do&CY-+Z4RklI@H`<;jK^?I|qGEL{c)jmB43n{bLO%-kyVJn6RyhseT2dp3Xf zX;zI&S5mDPbUt4xsNv+hPrR+7&#qDF%hN|3FKiaLFW|6cpUaUM`Ixm)Y0ri-X0ffo zuJZ&n4jCU^8FiyHKS)r+DRr~-^dce2X&fSnp3gd)S6}H}?%Al6QniQgsfF`t?f|iA e?J_KX*;Uqrd9Odov4DYrfx*+&&t;ucLK6VCVIw=L$CND+*HF^BZSKaBB%q=3Hxd;X;nHHa~-j*o_;RYDcCWkyzBahoM!F%Sk7P zV`}fQHI2{ioPC&9_%Q#Rt?~c=>1pTg%;PiqEI920OL<|7e?{}(jvWWyhaS?*N!ZyJ zZgE(Q?Z;)QuU$XX?2_)K)Eo@{)63z@xh_6%&4+95x+%|O_AR`x_)p{chBJ$f+1ngR z46b_D#lAyW(0Int;y>#?{atkV^qKcN;#Kdv9qBe)zqzA4^aTUI)SY()_C47)O7|XT zi(0j^nOog?SkLxj)vvg0-ahLkSI@kOPx`PkWMli?YYU=3CFi6+E4jM=%$n5^+4{U@ zA6F-TTC?VTYUrCj9;HVt`o{(GeQ&L}sOEOWEG&lk?fwfPjn^X%oD4lG&f}HD{{7U1 eIzOSqmRc!+9S0lS?=dhiFnGH9xvX77RRj zah1Zo7VQo#pTy4|a}F;zS{TOp)A7zRtFv#d`yM+k_t@QBBas|CN&7>x#JMw{c#Mh# z_^n-cZ?Tj)FuBzyiuEU3jl=q@x5aagKJSR=`4;5-X+5vOUe^2jtxufkl~`3c;~3|f z{*HT14-D>I`@xf#oR*dPOfzOZ!@dIvE`KyuZj*~SHk0fARA)S+E1NORQl&~ zB=XMM5AWkOF6W9iSPL3nesD%VY)yW&z>C!kd$NLz1PxnPPFicHedW)4HKv)Cjk=+Z z+di&MDqfIyxBtqU-fbV3C4G)adzY>7K}6sCn!4e=V}EB&{}z|VcSXiOR&4QwQ)jmR zh`4;R*rI>6py74LJy+B=6nlQLULY%IU%2oY$1PXqx9=b6xpi|zuUQmbv4_dg|M2b^ zM}BOo6cGGu(N(^>#?yV8+x|8DN=ahXAFD)}{0;Y&tlDb5tB7rP;pci$EB9x!gbwJ> zIdjH+M;K54x=wH77X=c>zdgGBY0nSG5?8)@##fzvGOw>b5@TRsVDNPHb6Mw<&;$V4 C@c768 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..402face7279e17ea689cf95b7604dab469d45309 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*R`aNA7LnI_w4{r259Khgk@N~CoOd5lVk(1kpjCv8bj~dIo zXBs&jd#1O~Ea|t3{5t0}vC0nv=p}#OY?N!+7_B+=aX6@9OTGzeQrV<#PKX z2j=8c=d=_Q6e89iv|w)fdV;0*#dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4NQ1x_i4B?1QPFRtgknqFbChgDt0|);6XPCj3xFbeZdGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(DQV04B?3GJz*$#K!Jf_;~hl?Zi|DGvkE`N3S3b1F1S#y jo#!?)b^5%&c_QMc*^_;gl)l}_WB>tAS3j3^P6dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(Drn34B?1QUXh%T@WY=gjWMZC;a@#Nhdskbd4+%cN9z|P iu}eraWJyFwFdRLha!)?r@CpM11B0ilpUXO@geCxc5+$bq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5186c49d8555b6de93edadd9234e89530bd0702d GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*R0z6$DLnOk_p4lka>>$8$@SMv+2M-p9tINMBCZ5`HDN%=Q ze&d?5wCm5gw=q3t-}Qf@t;|Cn=DT-|V-`BupDAeN+8f|)bpLbII(3Nyl6@PBnR&DO WBVs@8>|kJEVDNPHb6Mw<&;$T{BRWF> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..30eb79fe91a2adbab9bd5b50c828f3097ec48c00 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|MrH;EhFd$=?`B|NU<>dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(DHO~4B?1QPB_3S((r?snfdeodY(W3{~O<6{#dWUw$U+3 i!E%DshNw3T47aa~tbe)qu`>e$1B0ilpUXO@geCyHxhUcQ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..30a05f0d933a4404410ed1d2933cd26a6b35d983 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*RygXeTLnI`(9z4igTe~DWM4fZA&yh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..22dc552f2e43d90858a1ccf248b7fecdce980437 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|MrH;EhFd$=?`B|NU<>dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(DHO~4B?1QUh)5b`$Ky^o=M3GZinCemyr1J-#J5|t<(5l hLqZ#Wz#N7{415);RchMpA`A=+44$rjF6*2UngHC*Czk*K literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4a349f1672efd111d1e8e66eb700bc981dd94839 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*R0zF+ELnOl2o?gh?;2_{~QISJMth{$ZPP)v}KrU4U!Iu6T z6V7A?_}hv$I8VIN62HPzMRlS{9rJ`Gr*c`Q2U_%QdGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(D8I}4B?1QPDt=bXn4RcaOMYd)6D-42EXk&p8e-vnD{7Q k*T4VrZT~F{0{9pn?o_RMR8}^Nfq{X+)78&qol`;+06}9a_W%F@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba390d3981c74eda3c9041aa9ba83ab101bdd18d GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*Rf;?RuLnOl2o?gh?;2_{~QISJMth{$ZPP)v}KrYoeE&_H* zXXmJ{SUyiBb7IfdoMvFxi94p_;K| XdEcYPXAVsa3=9mOu6{1-oD!M<2LLzc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..44a9108b6486872bbae2e5735e22ea4ef26eacc6 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|MrH;EhFd$=?`B|NU<>dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(DHO~4B?1QPB_3C(J*6vhO)6;wky(5wqIG&}w!c S^#TS41_n=8KbLh*2~7a&95t%| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..98b89562c153be34c452dddd96cf219adcb1716c GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|MrH;EhFd$=?`B|NU<>dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(D8I}4B?1Q-thl_|G|I%>t!S~${QG2uiGai{P@r4)NJ4r kvyZXqr=-FR-X_M~iSnUs#y|EmFfcH9y85}Sb4q9e06t$SYybcN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5c065dd5f9e5c76be79d175908f9a3a12d050f63 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*Rf;?RuLnOl2o>|D-;2^?sQI+FKq)hLG3z7j+O9Plb9eK+C z=uDk=fdAPQ3?ZTo*E;$33uMNIR;bjnO<2-wU^Z)GK<^y?JI79>^2}+Quvz`uk(@oh YvRnQ<&U02{U|?YIboFyt=akR{0F9_SMgRZ+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..69490a48c2bbcb3394fc34841b26240a1823a649 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|MrH;EhFd$=?`B|NU<>dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(DHO~4B?1QPDoBjU`VXfn3ms=@S9m6=08Kz|N4dt289;? h{_}VIe|+FS1Cxt|D-U?9Qz&|Sbor_a^n29HEXYIgM6u?xs@Z2ja+f&^w We=It}8WdGab;jQuwuoEU6b6j z7#J8BOM?7@862M7NMm4NQ1x_i4B?1QPMDC8z>qAhv99^ie}OYU_A~a({4dXN*`RPy cfh;paE30V4%HN633=9kmp00i_>zopr0LiW-tpET3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..40935bae3ce04617a66661bcc5f329b0af7ece4b GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*Rd^}woLnOk_p5G|gpdi9>F`0uyvoT1=*K4tew}MJRjPS8~ zRf)YB%~PlBTGDSbr^vF@D%bM(+d2KrZcTD25{`}9D-0I@R{ovuzg>0j(jOr=1>+WK RFfcGMc)I$ztaD0e0sve9G;06= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7c6b67cf343ff6f72511a46a78db6b7ccc7b669d GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|MrH;EhFd$=?`B|NU<>dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(Drn34B?1QP6$XyNceH!z=1#i?V0TbZZm(Z*VxwH)%Zlh jj$tE{fboQ;*9gTe~DWM4f12ZXL literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f4a2d56c790df066eca468cd96fb5ec256e760ed GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*R0z6$DLnOk_Uf9ihK!L~gqWX)(mYgQ{)3-zdWuCki$vL21 zBUP{Bt<_~B@xg8FKBZEF4-1^wneT5{tIA&VCw|)M&ljwuc`^bV)QdiAR5xYUaqGA0 VNv_dGab;j&Sg~Tonfohr z7#J8BOM?7@862M7NMm4N(Dih24B?3GJ+V;mfC2-$7#J8BJYD@<);T3K0RXY~CfWc1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f25ef38573ffb2f85b6925daae8345d22d05f2f4 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-MrH;EhTJpRM;I6w*aCb)Tp1V`R;*ZY=KcyD z1_lPkk|4ie28U-i(ij*R0z6$DLnOk_p54gX;K0Lt;C4%3f(n~M(pLG-NsnAL=Ctvy z@Y|HcZkE9BZV?!2dPp>FMOusYnE-jKHQUbevt;=19lCz*vCc8N$Pe%dab;j&SV2c{%=2;| z0|SFfNswPK10yRNzo3wUl8U*tO-Mvkd39~W>;;Rq?cRUz+KrnpU%&bGh5?$1j%e*qbo>{29ybmlw2|n@0TlHR-{W z|KESQOsL)U_VPRy&(+uWZaX|z;iTEL+B=_0W-`t`@ip+Uv6zEm>}M|aIVC5L`!%^* z&5x`0_%PM)_jkr@ht-U^?aJE@XxP6H`oGeU+a`{sWc2~|{15)0czQCfRF$PZyO|z1 qbBXdt;i)Ix4t1UqabeA0#m}`}`b|zw>>UOM1_n=8KbLh*2~7Zq>%Oo6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..30f2ce75709c779c6dca9308ed3572c4bb5c693d GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_@&kNATp1V`R?ra~^Ss>0 zz`&qV666=mz{t$TD<~wZq+(=k;};QCP+e0yb-|)-`ww2Yar4>hH(!7J{JXKVtfH{0up8i`OsI}VH`?ks7x!+}KT15C1tf~)0 z8O19~m*-mH9!!MK3mgIR97 zT$`WDg97$|KQkvc9K5<<|9ppLm33@;*B;~*+9CDjJ@+4luHQ^|51Mp5%({@z!J2qS z{Dr#($HTq_0(?w6{x8^=(3I`4xUu~=TQ57`I#yp6k?T#%n7X|kCN~~jy5Qu4eS&OL zKTMqR!QEUTIk&a`PO4(H>8_w}pCm85xxQPd&cW+Prz2f{nKlga>^M5Q13=9mOu6{1-oD!MUrimq7D`Og4n_Tk_sm6SI zeEqED=e_CY&Rm%?WoBv2!u~K9ncEB8PTo1hG567n;>neq8fWw^qI^%B(W_!DXexC1 zqx0^y>&?Yl#S5Kd98NXbwS)?)H-~ac;j7l@UY&yT%tCXQ3 zu|(VH&6>DLIWOL;iho(Z>Y(+zNtNpxU&V3F^b8W?UsbnK&toOOK~3a>8ZMXn`&g^` zA3S54yP%-yBj@a%=mojyf!yyH?yWiZi(U1AV;{pCnZ1l2G7}ij$QH1@NHt?&I1=`M zgtQcY7L!IOr z1_p+Jk|4ie21X`kHg*m!ZXRBKAxSxT1r1GY9UDg{XP1De#H8eujGUsf@|wE(hUS*m zw)W1hnRDhZSh{TU;UhGN?;xe@ zB`I6Y^99W>E;nQ-I5=?^1B*iz3kSnb*LDtz9A>2lPngRDI^&Ouo_`+wD|!MO!`k4T z)8^K$e+O1(2HxUN7g_liX7*tnZ0Fh!J_>dT_SJ z4>LFAOn0qy4#o~LXL5K7PO=Kr9zMmuC4T0N>BSijF0;t0Wz1S|hGn~&hta{6oKG}Y z-@p5|C0y*pJBOT;FaEcDH;e9NEc(4WcqYrY-;=)j-DCMu|MvJ=5eB1g%EDPczRAyN z_gUBdwR6ReZ@>QW>{K@_d0Sr@uP=D@=l&T_R6cbENkqK5n=_-SXkz{UYb9&a{yw`q cv-AbOtoH_Qhh|=71_lNOPgg&ebxsLQ0Itq?28YsZ} z;l7^Z1a+;Ji0JN&`ED%^UWOVx7Z06M+gmott*5EXEb4{^PsCGwf!_@slRiz1^El(o zDe*_cNZNe0O4Y2NR?qL8zH>X}naR9|Ty~E&rzt;LE@!m)pwYAfsnt7dTc7WU+LL+b zFk75ON3`kd4Gqgqo_U|a{=`2*{>!<k)bHHTRme#JxAy zH!tm)U122h{ewhwt?%TS$KTe@5tMU1a@UzB<(c!HgW_{C4a1Y__8&-mVWDntJ!zlR zu$V^OX`y~z9+&M7#J8lUHx3v IIVCg!0K?3-rT_o{ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e233a3808e1b07e04ff06b406707e5871503d29b GIT binary patch literal 613 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8NxDntJ;>y6luwpoZU#Bl^ zVqjo!FA4GsW?*Dy5fYYGR8mn@*U>dFF%1ZfijK?3Dk!X}t#54Y=Fb{`W7dL2 zOO~$Kwfn%qL&wgXy?o`y?K@ANzIpflcT{N9X&)&lJ9>kkh%T>$xPF_sc{|B!%t{nU> z8{Y2_<~Gg2U$61wY(upNS?43GeJ!&W3AJrL6k#c$x^gG;v-8nCxz&7cW_?mw-CM)k z|M7+eA`BGsc+pAAk8cUrPo)G__u$Y%eiA$ux-@DC}fy-zS_l+2> zlC6!dA^VgHmN!=~(6}#9mu$7;#({u&CLb0luXl(F;@)v>qVxjQOg`bcGY-UfG4jsc z!5XB+EIIcCL+aOqTT2cVEnKg;=klQ<-eZ4T$J*kan3Ps_i53kvJ4Ci44$rj JF6*2UngBZ_Io|*P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..261fa33f24992f09829105f85bb4b3ac9f829b29 GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_O9FgCTp1V`R*VArhCt+N zV^#(RhU$_azhDMNCT12^Hg*n99)1BqQE^Er897xo4J{ob6LSko8wVFJZ(l$Ez@X@u z*tmqGYCcR`i7>~j?S*W{%JGj&Rei>>5A<;_w3!b|G>e+ zM~@vpdHVc?OIL2)zW4Ca(`V0LynOZM?YsA1zkUDl^Y1@}kZ3Cg1|~UA7sn6@$*Bi9 zqlFSBSTAsANG5qn>8;!{Gi6q0s?e=PJ3`+rYYRx}erUC5vBCHA?C;G_@tpop!1t-< zv9;9s$$|E#KDkeRex>YKt-)T4rITiUSkRJgC`yamaHrT|cJsVcu`^CQnIT_3*3EVOqMkUn%Zw%Xam1Sz z@spbM8mEPBPN>(aJUIDAgmTx{)J&tWFrHbP`U4%8`(4fxzwotNZLe^u>GF(UHNuv> z@flvGi+Rd>x;}C(yKZvyj)v$m&6e!LCar;sl%1cd>f8%BS+bzxwe?ij8*2hQcO-o8 z@!G^_w!JP$vZ43;ghz{bU74nfw8usG25>GuVyz{-;X{_l?oy4w@3WmgFH&%NYImx_ zL$xXU>u(WhjqJ%u`{lx&Lf$Q06Q`vZ(;1wzxXHp*W*Ng&_7x8Vr!q{b?6Ni2D)_&6 zMti|h4Yk0F>|Im1EANWj6bmUizTk!1J@qbMi;h4Yh4=bLi!CIU{%D?K#`V}tW{ZSK zE`yuqqk=EZNg@ZNj#gXDS{A`v;Bt}M-LXqq!C~S3hQ)2(UArX~{OHo!7ie>o$yFru zOn^?p>_z;cUxITU&R8TGx+O?P+2TiGX12d`=<@1l@5{{x|4*NZ0VmF9Dt%I6U|_KIba4#fkYzo{D0o1DhhgIfE(;M6ku&>usV?MS*!_X; z(3Z|LUcu=VGD#WUhov~z*;p7|Sl4LEdPlB6YJvO<9%h5%mCR2V7#J8lUHx3vIVCg! E0F4+n9RL6T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c6868915d52ce4c10a21ad98e1ba81f845c3493 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|7G?$p2BAoW(+ms@q5(c3t_%zeD=+|uYR^&z z1_rj0AirP+Mvs6K=QEW)sW31wBzU?whDb=V9%K|`GT>p@_{DI;>?S_eAK~soKmIs8 zuoI{dXW1;vVYOKxMvkSQJ8>GHQ+s3!H~+(fu4kOuUmVaWY;?DIFe!3@a&bc>=Yx~t p4^AtiS*qsy#~? z7#P?}g8YIR7(D_`oX=GHq{6_!u-VhaF~s6@>Dk?)%?1K4fj3t$sNZf%cAv7KM%es7 z;%|M%mI+^PKIeSSYTmN#sc^-j`a`=u{{Qh#pQl?=IqBGmtZjygZ6`bplq@xbJ5rb? zb}P7e1*kD-vM8886kO>zv%o`D=96-oOH_cG+7dzGOM=QuwE=2uOVrs?6slZ~E$}Hh z;Zbtpa?eDI_O3n8116fZOBcGhF5*As;yQ_6oXN#ei8XbRLg%4Qg^3eSILX}QU=lPVBlarkQ#V#iq~weWtsU$H+M`(llQOw#xxe}+0k=K&>>dv3Js~8v<7(8A5T-G@yGywoYmtjQ! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e2954c8576100f8695818aa27609d518898b51e9 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJol{{S>Ln>}1{rUgjo>`Ys zn7Nmc+i3an)!kWa)2B>*`1N4D%@2J6d&Wnh4l-UEA|E`B9vyh&ki&Z9cB6%O$9cw$ ztfr42@C(>8J^Ja8!+u29VGmmdKI;Vst041q~ A)c^nh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..97e18680b0a48bf9f7bb281db73ed42b6fae849d GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM__6GQbxOR7T{{R2KyR&mB zqNV+6s~H#=>`H?Cf*BYXS=fX`M8(7rw$v$Csdnp)c07c5%5 zWZn7=TeofBwfpp$v*+HtefRmx*B?KB{r+>{`;H ze4I(aGwt)`q6xou)eC%=3wx4$SeSvK>ENXJSVo3KCq7XIiR03o3+8SNX0X4>nDFD` ziRKu|@;@6}ig{hUx2ZHRrk|2*P$+Hx7s}M2xm#+-vj}Fx`KAJw@=9|xR~X-&@+sWG zV|C*U{acb%S&_^4OmLX6OPNz-_IfFo_pRU7y}Q=J{gO$t&MSP&+>bI$27TK<%$IuD zB6IbRd+PnF{!>*~_UwwE=&ychNBo@1_w4ES)uxMbyT(TT*KeFu!~E)u*Y5GA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8cbadb537c15f816b4858bf04d1ad795de45333c GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7c6hothE&{2`t$$4J+o>9 z>+A&oaPc@_)zs79>vBF$nz0yJP)r~heJH(q~1el+? z2z4-~Y*bMA#`-8?0;7224dxDSPmaHA3g1{>wz59r&4>`-e$aTfV~+R&#eeedOi4$c tDTxV9HVkAlm^5jHgyz|E42*0HobL_1ZgOhtGcYhPc)I$ztaD0e0svclQgi?S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aaed0555cdf3f46e028fe98f77d3c9aac1317379 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo1w36GLn>}1{rUgjo>`Ys zn7Nmc+pw!@*Dj7#nwr|m_n9;fh)?Sg`PtCm_+OJxDaO&!=fXw1NrgL^!k0{(C6Mus z`PjR2ekrHD8Z6{GwiddmDKmbY?ZETtRLmETY0QsY9scll*m{_VNUAV>v{Jan`Y1`^ zA9qoypul{lN4XAfn2z*oa!gEi$l*Ft7V!B=3Vu#%A h>R-&wz{JCF&D#0Ui$yCs85kHCJYD@<);T3K0RY52dU5~& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e7672ab994c39a59bc6bebb12230c2e795287717 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_76tf(xOR7T{{R2KyR&o9 zqQm7o7BMg|n3e?j1v4-(v#_$U^YRPIDe9Y9So#KrM8u~QmR8nGnLc~|ww=5896EaZ zVfkA6B+xh_A<;D;4cVNV|=x{ zRA7V6l@b6gFo*a-eob-*=Y~7Nxo1gF(q@T1@)j!}L$nY-qGegI7afbW;3J!LY lG#TzZ`YZWUGmWo;d0DyNj`-jy{R|8Y44$rjF6*2UngBRD^VI+V literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f77ed3f545647a9295c4dea0a76cae47bb4138d GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7UU|AWhE&{2`t$$4J+o>9 ztIL;?(u1sCr%rvyatJ@&q{3dr_4w3O?aqx7Ys8KuBrOn_kklX|F#Y7I)A5Hmm~9%^ zJDM9T#5(3~h&)mB>q};dVVXi&V-^=fQeMom<}Xb?fAZhI;OO&~wcY#w%$YOw4QFH> zWP1ILL(bQWs2ds?H5smKJW)~bziz|2)8hI@|9*aEf5IBB5XW#Nz96&ZRbq;fsj2Jq z-|R=K8!QAnjy77by;{2e1(#zLr|V;Lg*dJw^Bi>8kGMM2G~Oxsz|-+t-o7TI!(6td ty&_=Q*puMdZ>8U@Xo%gDsTa4p5wYumkbOH44$rjF6*2UngD>tcB%jX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0092539ff475075bcc90f9c610a7875c3c7560b0 GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4rT@hhU+WOo?>8N$PDlaaqaHxT(M%ssZ*!^ z|Np;&N&sT!+O=!fty{Ni*RI{Wcb__SYPXHa9tH*mnUWyCULkpb zsySo!Dt@nysSmgrPW+5ia+{z!fz#>Ke}jmM3v<`_-)ehUw0_n63-fc&ui|uZQ0fVD zuWc0(oFQ4cJ45W!8L10Ol6ThUR(!WeQBcZUb+07YC-mLM&x$SQZrt6o^Xi}FuYdKg d+I!7kRE~SUM7zNE#fw1h^>p=fS?83{1OSd-rMCb8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..65ccbd3b777a4abb6f168c7d3ad097ff101a1c94 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_Vgr0aT)R6vSFBiZ>eQ+K z|NpNb3qVX*xpL*Yb?Y{7-n@JF?*04sA3uKl)TvXA-%{=~FffRf1o;IsFfcH%vayR9 z8T$tY7xqowaOvf%x4-&Z7G7pxVA$sA;uzv_{O#16e1{YSToOw>(l@FD;w6X zSYYgXIpfl2r$Ysk5@$N{%;<T=#xl~G;U$_NbYu@;dr{if-7qRlg5X}A2tH(nUXw{k{{YnQtb&a zQ?`*+D4Y;`i08;ehZyD~>l-Y%J1iS2^sbbiblAh2#=t!57>B|-)<@R^dVf!NqIywS zco$=MVaAb}LKAr{n2vmHF-dyDs}vxprRLB~awR z$DMUPXSui)t$p_fd7WH8chiCR1l^lA0%oLWUYwn%c(Y^ErcF~0_2uYHnZ>Fq&CRW& z^Cx4{^XgYUdFwNu8NOd>`E};ID`)mT-&g%^@A-;(;@w88k_6p*Yt}5gys*?_w%6bH zJb##F78##nbSr4ERaqRB!X7y%Sy(rb|3g>mmdCu|5l*!e_?9NTS){q`#Q7P{;LS&3d}Lq(#$Yap3Kp z3sP?}gqz=*T&8n#-~V4bzPUOX&pc>nwdLIZk{EF*hgUy%{@&92e`w<)4(=U1U)?q* m?RfMqCHP~$=zS(0hHHIcs(ELl!WkGC7(8A5T-G@yGywpDr^bf> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4d61a7ee48e27030a4a0c9832add73d1d7bce1a0 GIT binary patch literal 760 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F~)nHk;T8z^!7 ze45V`o~MmL%X4MJB`Kp*`9t9HPm zug5{kkKY|_u~1#+yzTzF|10li&ac%wyYtPO^>u4EU%!|A{%id7_rJf{P0PK#P~mn* zz=5+I224E+$_F@p>}L(B2;H`Ii^$W5)lyPtcv6H4_{CTw9b~^8@SP$4#CMOB++ouh zk}izm2^?mJjCZg+RNySQbF_rBFvogN%VmR|Q-p#ek`(m2Y%29GqA|s@h=h(A?^_>^^-anXrs_d$`4WCVW=>~y!4x%zG+c!iX z`lGYxugKLpskKI{etB$Ux~Uw&dU|2_;_Gb88@Synw@5C(Ih*Bfm#J__+3J1X&5!o8 zN6nu7_gwYc#+;aUg5h^67TaECtPj1;a{Qs9PGigJTGc!4tQ*ArQf4vUZm)SGc4qqN zTE^gqTsEy=&niQSUNGwQCVznCApBId--pQSUHtsmH)Y4Yp+l@oh?^0L}Z z`qSd`;g3$upZ0V5C0N=qVDifN&mzI_%z5>{yK7rF RF)%PNc)I$ztaD0e0sxS0VY&bS literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..092bbcdf54cd4b7936decb3f36d96686614b09c9 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7)jVAsLn>~~xxCSvDN*A1 z$KB2wJ&SR%IaxawA58Yzj+I!z8h3(Nc?z%?W7u@6}r)+HC zo|7ODc3|Rj>2FW1+j;jq=DM!&FZ4i z!%W32p-HThT3aUx1s#g;h>VIWHGn=(K{&}-2-APFQ%a=3f zqFKa3p|po$zZ6Yx@VWFHR#b7elh$e!IhV#SWI2Jmz;RC?yP#p%>VM`NzxfC7zBD*= zKR!YJSb|`ZB6rsUPQM31c`H`z_)*R_i{H3Lt(o`5V}@4>{AQN7Q&)sXD%DQ;y|bKa z>77T5)^g^RuID?$CiTO|uYs{c(%NB3v&OZ0=M;`^i*sy+hmBkd-FHRYdh#?ZauNSg zzDE&NvToh;U8bweWuN*Yd8d;8){A;V%YL$_bG=M!Y5yQv^(04XrNJgs`|m}GB3ut- zvu5sRdbddG-u|SptL|p$JB}Y)zp%&i;%}KBH(VE8=DXJZFuJPqtWCu6JICf5oDkkC zs}Wnhs8#*S*^s+jqB4mh^LMs;N+dlB{v}uOt;YVfr_4(ABU1Vwx13v@7r(QaV@4Cp z%U`qfD`!6aT)!_P_RkBR4^Q6~%yjy8vZUqlV)<|Xwdz6)SW$ z^@eHRHea+tXL0EA|B3&Y`7amVJG0yBa-;m`n$OSnR=>0Tp5xzrHS6l0$X6M0dU5L; z`v3KRefd(({sHUBlm9<*y-3lNV9INfejruBacYliqsayKGuP+-W?R?v`GL~US1Y+r z_^3B(E6jN=)#P}j?yPPB;~chh$Ij&%3ku7G9TY#Xe?Gvx&Zl00Rq15T2X>K$$qM3k zzOtBC$?H7%sKuA1D#6y|VE;~h=HDU%fi-O9JJOG={krC@#fIL^wVuST-umS2Gj-aWzD1qnr(^>;Vzx{o0E;yTY^m zmd!`V=HTO${w_ z;J>$ghS$@}SDHdK6}Ii2c>J>Ojpj!Rd=2NmL$+ddYTcw^zv#-C{cXmn=+u^-m{McXanks6dEW#3AxOMUYHLI?i zSu=!Km3nh5nya0S9x5v^yb&l~pT)l;`s(ou=T}cqVB53IC%8yEnz6h4%`@9WqR+DC zA4ro^51Zxpx_s-wSwAf8okh~mv^#Riwp~4Ao1h=pB&z-4$nD!&y&;+cD>esDeY8R0 zQ{iIqD{b@TMYJazIUf>M|NqL7ce^eswKl)!I=1=Vy_JhLrly`;;iU5X)^X2io4#%A z^3^%|+nu%fd+Ic)lYS?RLgO_21HYV27WzJKe!Prkf(g^`Ime5E^&$dq`rE`w43=0WQ}@NQ@Cj|{}hc`2hK_? zw65>tU7Nh_%nog?j=g#5VHHzC)JktY?|gp1`qjS4ddKQEv>!ZgQs~BbGh$=U4r8qv zb=emSRc1M!(0eaAA>~23iR=31tAZCyPRnM!<*PpBWT;4H=)zV4KulcWZ@BMpkR?jNIaL(!LeYP;&ZUzPh22WQ%mvv4FO#lX) B@&*6^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d4a830f27420d1dc7fb3f6265f30ff9c1ca18888 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdoVYd_r8iJ3CjbSaIsqssI1~ z!`TjsdsZ?qFtC&a`2{mDFfeSMoHmPrfx*(##W92FVdQ&MBb@ E00%cS^Z)<= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..56d64e1b307411d7fe057c606bb666a2a56d041d GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|7G?$p2BAoW(+ms@q5(c3uHBuTD^{#Hb?Vgr z|Nr4^2gN-r85kH?N`m}?85kHCHcw8Q#lXPe;_2cTA~7}Dz>SHg!h%O&A0xAI$7804 zJ0_eAOezp$VPq6nQx#Ab;c=L=#Y93~mzSU2wcqfLNr$b5%%eMPZ!8xvu`tBuSVYab Rv&s-;uBWS?%Q~loCID2TH9Ps)hP`Ou}ms$(Mr4=K>@0F9Fj^VD%{;^QS0Zxl&-+n jAJSx8&$F?nkC%aAy7l)XCQ7RHAd5U*{an^LB{Ts5QyV<* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..34f41f7b31051e11fa187a685f8a42773df932a9 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdCT0c(hNQXTpBNYzI0Jk_T)R6v|NsBr-Psvh zdEg2I0|Qe@kY6wZL)qlB77PpwmYyz-Asn*F9IQ-iYy$5R5(1K5L~P~qFfr9MG%ztW zG-xp}?J#O#+uD|-K1ZriD2}_ag;{w50~3SZ4^gfM!Ynfw7#J8lUHx3vIVCg!001^8 A@c;k- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6f7ac4d47d0a8931360a459ba884c50265495b8d GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|CT0c(hPjegvl$o|I0Jk_T)R6v|NsBr-Psvh zdEg2I0|Qe@kY6wZL)qlB77Ppw-kvUwAso@k9IVW28b=RENxeF7V8e>W#>SQ0ex+-p zwsLePWibTt#5nPCOGr5FZIPPBwAGr!bVHL5XBMw&cTyHZaFq50O*Xb2rx{jkG}4PZ TxN{l<0|SGntDnm{r-UW|IGr-D literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..294387604e05cde52c1948fbe09ed9f9e5dbabbf GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-CT0c(2CW=H5e5bZ&H$ef*Y3{F|NsAYcXozW z9=O85z`#@zwTue%s=-LQ^vJyh9a#KFZs63TcNC^bj-it%tqeLXRg{aur^#-J7Y=s ymZ@j1hNZ6jnfZ-B@m!zC#QjVba#Qpo7|K^45^Q{FEyuvXz~JfX=d#Wzp$Py?G)Pkb literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..07cd3642e5e432e75de45681906691439b02b3fa GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdMrH;E236Z!B?bltwg8_HR|W=#6)RSpxxYe( zfq{XsB*-tA!Qt7BGzJC+5l=G$zS7%^gVDNPH Kb6Mw<&;$UWvKgZQ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..de33760c1c503b5a201718af821735e245072d9c GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|7G?$p2BAoW(+ms@asfUet_%zeD{uqr=^w8% zFfeeI1o;IsaPkS%H%vJGXx>&Q7X}6fOHUWa5Q*^Q6)#={Bs4Uhn`z9u;&dV}FKtUvb-fuz`&s8>Eak-;h$W<$e7ONW1!{e%IT(RAaGzp0+Vr!h?}a% jL<2@+H&wTJEDW6Qmjwv@u+?K=U|{fc^>bP0l+XkK)YK(& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..10fb5b119a34d40867118379e1779beef88c8b52 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdqsCd_r6q7#LQpSaI>}*}c1W zLm0v$3%SNiJNoka3}c8^eV2 vTuBlPl0F(r89a`TjvUOA2V4)ZF)=jH7fyN99a`FiVRtcFqRU3*0RC*3^225F4v|t?@1J@<#KL^Zf_!$@&7(8A5T-G@yGywqM CQ!lIl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..642c71943289efef655e077040727596321873c5 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-7G?$phNU`BwlFX-NCfzVxH2#>Ts(Vr#flXd z&z{}8dpDeI7-6c)z`(#(666=mz$hRfFCV}9=28X*hGPs?V-Ni3TUotzpOMFp-o?t1F% x?8M1-LG?jH31{*ahb0UF7eilg_N8z#WISa$>66VSz`(%3;OXk;vd$@?2>{;xMA85N literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b56c7bb714cab773defe879307678fbfc2bdbf84 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7**#qxLo9liPPX-8aTI91 zzdBEV)zHxNBa_^L0A^+7gWNMXl{z?@lrkR3XFXCpcHs(?=v%SE3War^_DAqlDBbm z-@AVd33&|(oCoGEj7qt$BzfixAEOW3f%z)_I?w<3eM)V3p!3|ujKN@Y@}zj%2mIyr zEVuGyChvK1B7G7&LkJ7QgLmdC?)6EzzgF+w|M$yR-Hs=A4ZrJuh&WmJYHmFgdH$#L ZmlFk?Lf_Z!VPIfj@O1TaS?83{1OTuOfDixx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..51209ec2d063f2c1f5998f36c77cf315a51f152c GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoCwsa$hIn*too1LF;waL3 z-qu)SQJAJqP7brsNA(+QE*n1cXDqy-q8%od+0&{fFzMJeC2ljWX=T@%%)*j%8y$`m zJ(KB9NiDx0{pIaG+pDurpZU(qTz;=5SI0O;OV&Y-ue~?PD>L+xVuMZc+~xbuyB=}4 z^t)|A?$#yGw_Uf&E3or*hadA-wj@#^-OHbFc zs=U9s?<%tlL&EQ_w`(Up*zOXf~`!$n6;iZ9+-8a_$4tbS$hU8j@BIX0@=dqmk(zI7+ z*?LW1g}(R4&o(OwhXHa3dXteZWP)EnXFZX#Y_Ws^Pb%@+Uw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a400ec6ce916ab2e39aaefba1c56bfcfbe23c5c4 GIT binary patch literal 848 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_g9Cg*Tvx1E@&Et-6)>=R z_3AZi){>Q$>&t%iX$Yt}%x5S6P|twLrXOF_gT`c{Df#3(QmAF*=f%2lgY zK}ckE$RaCY0HOfKqdpA@o0Th9u2``G7YR`VQD7VM+MI!bA-^QZFPMRWk%^g^m5rT? zn^!okEMI{t#R+ zMRmy!p(&R;^(&uG*%IEcB-2Z}ZK0l5=EEe0(;)_o74a({tP^Vw+0?|W71{oMF4w(R zjiy>N7y~{#Ws2W4@Cm#nFlm$0lr8=F`&gFlDN{(D9u)R*v8@~D`OqI*Jvb--2(I%F z7v%T(Q!-hiVdnD|J*FS)&Hdarnk~7xXtC>(?8*hr$Bj~EEN8YintJcTwUz8*ZW-$L zn7tiu-DudF7t67byIGH?O2boJ=>~_eub_$R1(8}NvB1tPOpPZq85kHCJYD@<);T3K F0RV0@y*vN_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1c5be822459c59606c817724d97adc2073935f71 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRdCT0c(hNQXTpBNYzI0Jk_T>t<7UsY9gaR2_( z&+Zp8FfcHd1o;IsI6S+N#=yWJ;pyTS!V#UE(9j&}aKOOS)TqaVX$>zQL%}c6*RPKJ Se#gMTz~JfX=d#Wzp$Py3h$FxN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a7e654c9183d6e77f3a67d2b2fb4b29c5983a7de GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|CT0c(hPjegvl$o|I0Jk_T>t<7UsY9gaR2_( z&+Zp8FfcHd1o;IsI6S+N#=yWJ>*?Yc!V#UEpun>wjPW2B+tmvz6Bi0zS-QYYn2jOR YLjLTz&zxr&7#J8lUHx3vIVCg!0KG#c8UO$Q literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..48c99f8c0e05d1e4b21244068048f1ad5b707a37 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-CT0c(2CW=H5e5bZ&H$ef*Z=?jS5;LV+`s?y zv-^b%3=E7VL4Lsu4$p3+F)%PFd%8G=XapxGNSsL!l`&aRIIXQMt*y51C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..987ef395072a4545c3df0847ad0fe7aaa8eeae48 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|7G?$p2BAoW(+ms@`~f~8t_%zeD`4Q_*|R$$ zyf-i~Fff+{`2{lw$lLC@UB$q_VD9PS7$Om#Y|zHc#>OTrF0SmTsO;#N$Z>o^tbl=wXV314 z@ZP|{z`$G*vcWMX2?vJlE!-Ru+FV>*T#cTNjv}0l z3X=tWm|EF3v%IuB&bUIGkuxZSVOoQQoM?|%j~9;;=d9=a4EM~FB65!0F=1d}VDNPH Kb6Mw<&;$VN>MijA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ef8957cd5d5f7317b331257e8efa904e7a63526d GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7c|2VlLo9lyPB!#vb`)sc zZ+|4}3!j>np{owF=S1NZM)ePFw%S>fUpYXOdxZ?43>(K&L*G5X-6?I+x(eVsqm zCZeq3^D{&1-Q1EDS8LbbI+giqr%Hj?w{Y)(-^UXqrg2_Auv(76cY)-it=1NOkAl5J zDz55n2%NZ^?VHmc1~<`J@2x(t`ZTyLn=Sjm@S)g&%Cnt&7-SRX70-Mv{$L{gZ%j==KZ7((QR(A(BVJzwzyn+_|4Eu2ei? z?_a~y59OH58?#x@>R;Mlz*NH^?w2C=aeCa>c~8HzADCL&;=5q32=fD%XAaUgx_&Ow fIUTZFtd61SrOm38sp(-13=9mOu6{1-oD!M8Nm>l2};>y6l@c;k+6)RU# z4Xs!~p;12#*M~4LFc_2s`2{mDFtT&<@bL?XDeD-UTG}``1;-{Or$fD;<*d{Qv)d#mbe# z6`9U4<6~f8@G1%N3ua(oWai-J;};T>l9rKG*3iFG?@d*fzj7>^TNli=7&Mhb@ zEvs#8YHjcBpE`H>`W^fBA2@R2{Ke}x?ml?<=<%C(A3uHl@$2v9h0*gF7#Kr6T^vIs zB&QzawmuZV!1kcub6V7*mZI1!C8f;RJ4M;||NnQqHP80&Im_a6zmtv%h^z{ov2$0` z%$q!JS}Ck*HkX<^IV~F*+r9a|lcH!@EFre?rd0_C7XY-i~k4nRdc;+PU)I8ray(Hr$E}xV&g@SHRneQF7TGYwrgg zerr`{V*j)MyxKnv{~4Jvmg@scuuGrY=Y*W#(#H$GTOR%WvXR zcSrunc^VaNZCa|U0(LJsqIxB5$_&TM?x5&^k27}cOFPtjYR1M&*%jv{rJWBZ=IrQP zdT4?nd(rbAmU*omPg#5BIG;;@Q7YbfSG=vpLsVkd?F0JK z`;!v(rnj1v{G8Sa_UxT8^BZ|DK0MAS!gr5faaX~DCnXaj48QPxeRTPfaMO{`3=9km Mp00i_>zopr0B(0;`2YX_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ee7cc512cb01c6470423beca7e94fe0f0bd40646 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdu#id_r6q7#LO{fn!=iQ49N7@};wdIT;ujG(BA$LpY+73mTc&SPpZZ2unD4jDbmk*(LBqLQqkmVGxT^ gghQB>q6EWYcEP?AEuqgD7#J8lUHx3vIVCg!0JS709RL6T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..29a81f5d6c950323196ab8b52c50e64775b3f815 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|CT0c(hPjegvl$o|I0Jk_Tp1V`R)E2EnLb$t z1_q{*AirP+fozq#F$@e0N}eu`Aso@k5v*)H86nNrywv`PFgIWGVq=>X(4$~(u^@=S Y!e3{L5+nB>1_lNOPgg&ebxsLQ0Msxa5C8xG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1df8f765de423fb281f311f311d019c86651ca8f GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-7G?$phNU`BwlFX-@CW#WxH2#>tUvF>p-{uB(489Ld4SQ0iMPkA x$LoT3lP4#Kf{>fTG^LoPqpYkJygOJJzDGtRMnBpS;zd zfq{XiB*-tAfl)wSLD%5Hvk#v>hfb;a&A`AA=IP=XV&R``QT)t;Im|)6Q#dnoWrS+O zgC`DNbBYQJ4{9+oF>5VcvP7jJl!-%xE$9%(&BXM8#zPCHFfg?{YHlogc7|b%ki!In m2}0KC=Z@$xvV57qz%W;xJ3_ioN7@};wdIT;uj^gUf1LpY+7ivklEnAO-68B5qi7$mj03mf~VpWSCj!xc_C&@fi#Z3=E#G KelF{r5}E)w-8VD< literal 0 HcmV?d00001 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 22904f2f8b941d72561ace0d7898ad9e6838a878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4kiW$hJ4Xg>lqjrBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFdg%BaSW-rwPdQNf0m;_Yihv(0g;J;LLy9^oQbYI z57j>u-`vqC$}ObOBHL)-GQrW6sd0hPzVo+l#ISv?soc8b&h6OJS65cPa(n#!x2e?G zgZ8(QHqOxA7Nd7``MmiVCcjQs9J=!HQqsm7;sL9#-s-)mz3gfhYrK-Z=xo2`)x|H$ zrRt*;D7wpAUFeY=7bPYweRC zPdxwpwd!ut#(>9vZs+CYwPY<{zWn<2>-zfoEji4Mx)qZqs9!nu*l^+rMahFAv%kY`og`srmCazYrg_a(dJJ@iu8J0q$v?uE&c zU3c}48rNmnCtlGDo1wO2HUG*uIi(aS9=0B#dmVRQmTglX-JVEdEaODE-QJN~$EXH1jM z_SjS(*T3LFfrK1T`yB=znTD5##heZ8Zq>E^PcDtC8*CSm&G-M>QiXvsf42V>Okj8%5x+%FXongD P0|SGntDnm{r-UW|19fr< 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 ac7be01bb71ab272906754f6fe38ee15548e5d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFs}4;aSW-r)icR^{lNf{*8J7?T9j1sJR}5+m0rq! z^#99YXyoXmWcZQG=}7d&-&=QYU-oT*ZTkGJ*Y9P|UHs&8<^1#CKfCU^pMQFjNoZ*F z+G*3Tnpit?H0`+me*N{+MT_p{Wy|P@aqs)W$=1C5a^~inbIzytIWL^B?)AltkgOQD zpN-#s|NZ=PPQKafwO6xDcE+ur>zBU&zOk9a%8k+5T}OylabnFPA6aWfS{Ej z23(iz^bU%5AKlQgaz>(s3?Cb_RM_fJt`_b}`RNgkciw+r*s}6wj#Hz{XZsg3Pd~L| zUGnJTkGEygy>4qVCwZtia8%jI6)PHSDsw;NsIhbX&78I)K`W2g$Sh8=n(K5#aJsIM ziDc)23rQPy+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"); } }